comment
This commit is contained in:
parent
30a81d4644
commit
d01e4b51ae
1 changed files with 61 additions and 0 deletions
|
@ -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.
|
||||
"""]]
|
Loading…
Reference in a new issue