mholt / archiver

Easily create & extract archives, and compress & decompress files of various formats
https://pkg.go.dev/github.com/mholt/archiver/v4
MIT License
4.33k stars 381 forks source link

Repo causing problems on windows due to symlink #148

Open veqryn opened 5 years ago

veqryn commented 5 years ago

Git is constantly telling me that there are changes to the file/symlink: vendor/github.com/mholt/archiver/testdata/exist

This breaks the go dep dependency/vendor tool.

The issue appears to be because when windows or bash or git see the symlink, they add a C: to the front of the file name.

prometheus/procfs had a similar issue, that they solved: https://github.com/prometheus/procfs/issues/60 Alternatively, just create the symlinks when the tests are run, rather than commit them to git.

MinGW 03:12:47 ~/workspace/go/src/github.com/ReturnPath/gdzilla$ git status
On branch cduncan_ss-xx_update-prometheus
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   vendor/github.com/mholt/archiver/testdata/exist

no changes added to commit (use "git add" and/or "git commit -a")

MinGW 03:20:37 ~/workspace/go/src/github.com/ReturnPath/gdzilla$ git diff
diff --git a/vendor/github.com/mholt/archiver/testdata/exist b/vendor/github.com/mholt/archiver/testdata/exist
index b8f119655..9728dc4cc 120000
--- a/vendor/github.com/mholt/archiver/testdata/exist
+++ b/vendor/github.com/mholt/archiver/testdata/exist
@@ -1 +1 @@
-/target/does/not/exist
\ No newline at end of file
+C:/target/does/not/exist
\ No newline at end of file

What version of the package or command are you using?

bfece90dc3bb7199e8a397a27eb267a6cdd9589c

What are you trying to do?

on one project that has this as a dependency i am trying to run dep ensure -update

What steps did you take?

Be on windows

What did you expect to happen, and what actually happened instead?

Not have git constantly tell me there are differences, and prevent me from checking out other branches, because it thinks there are changes to this file.

How do you think this should be fixed?

prometheus/procfs had a similar issue, and they fixed it: https://github.com/prometheus/procfs/issues/60 I'm not sure if their fix is necessarily applicable. Maybe don't have the symlinks in the git repo and instead generate them when the tests are run?

mholt commented 2 years ago

Alternatively, just create the symlinks when the tests are run, rather than commit them to git.

I like that idea, and perhaps the tests for v4 (currently in #302 but not sure when I'll get around to adding the tests yet) can adopt this.