notes-merge: use opendir/readdir instead of using read_directory()
notes_merge_commit() only needs to list all entries (non-recursively) under a directory, which can be easily accomplished with opendir/readdir and would be more lightweight than read_directory(). read_directory() is designed to list paths inside a working directory. Using it outside of its scope may lead to undesired effects. Apparently, one of the undesired effects of read_directory() is that it doesn't deal with being given absolute paths. This creates problems for notes_merge_commit() when git_path() returns an absolute path, which happens when the current working directory is in a subdirectory of the .git directory. Originally-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Updated-by: Johan Herland <johan@herland.net> Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
01bfec8e52
commit
a0be62c100
@ -558,7 +558,7 @@ foo
|
||||
bar
|
||||
EOF
|
||||
|
||||
test_expect_failure 'switch cwd before committing notes merge' '
|
||||
test_expect_success 'switch cwd before committing notes merge' '
|
||||
git notes add -m foo HEAD &&
|
||||
git notes --ref=other add -m bar HEAD &&
|
||||
test_must_fail git notes merge refs/notes/other &&
|
||||
|
||||
Reference in New Issue
Block a user