This commit is contained in:
Joey Hess 2023-09-13 13:01:19 -04:00
parent 30a81d4644
commit d01e4b51ae
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -0,0 +1,61 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2023-09-13T16:46:35Z"
content="""
I reproduced the behavior you showed.
But git behaves the same way in the same situation. Compare these two commands:
joey@darkstar:~/tmp/bench/dir2>git --work-tree=/home/joey/tmp/bench --git-dir=/home/joey/tmp/bench/.dotfiles annex list
here
|web
||bittorrent
|||
error: pathspec 'dir2/' did not match any file(s) known to git
Did you forget to 'git add'?
list: 1 failed
joey@darkstar:~/tmp/bench/dir2>git --git-dir=../.git --work-tree=.. ls-files --stage --error-unmatch --
error: pathspec 'dir2/' did not match any file(s) known to git
Did you forget to 'git add'?
The second command is actually what the first command runs internally.
Also, the behavior does not have anything to do with --git-dir and --work-tree:
joey@darkstar:~/tmp/bench>git init repo
Initialized empty Git repository in /home/joey/tmp/bench/repo/.git/
joey@darkstar:~/tmp/bench>cd repo
joey@darkstar:~/tmp/bench/repo>git-annex init
init ok
m(recording state in git...)
joey@darkstar:~/tmp/bench/repo>mkdir dir2
joey@darkstar:~/tmp/bench/repo>cd dir2
joey@darkstar:~/tmp/bench/repo/dir2>git-annex list
here
|web
||bittorrent
|||
error: pathspec 'dir2/' did not match any file(s) known to git
Did you forget to 'git add'?
list: 1 failed
So if there's a bug here, it's that `git-annex list` displays an error message
when run in a subdirectory that does not contain any files tracked by git.
Also, many other git-annex commands run `git ls-files --error-unmatch`
and so behave the same when run in such a subdirectory. Including whereis, find,
get, etc.
In fact, annex.skipunknown controls whether `--error-unmatch` is used.
Setting it to true will avoid this behavior. But there were good reasons to
change the annex.skipunknown default to false. And good reasons to use
`--error-unmatch` to implement that.
Also, this behavior is somewhat documented, in the documentation of annex.skipunknown,
it specifically talks about the case where no files in the current (or specified)
directory are tracked by git.
So in my opinion, this does not seem like a bug.
"""]]