Merge branch 'ss/describe-dirty-in-the-right-directory'
"git --work-tree=$there --git-dir=$here describe --dirty" did not work correctly as it did not pay attention to the location of the worktree specified by the user by mistake, which has been corrected. * ss/describe-dirty-in-the-right-directory: t6120: test for describe with a bare repository describe: setup working tree for --dirty
This commit is contained in:
commit
a1e19004e1
@ -630,6 +630,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
|
|||||||
struct argv_array args = ARGV_ARRAY_INIT;
|
struct argv_array args = ARGV_ARRAY_INIT;
|
||||||
int fd, result;
|
int fd, result;
|
||||||
|
|
||||||
|
setup_work_tree();
|
||||||
read_cache();
|
read_cache();
|
||||||
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED,
|
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED,
|
||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
|
@ -143,16 +143,46 @@ test_expect_success 'rename tag Q back to A' '
|
|||||||
test_expect_success 'pack tag refs' 'git pack-refs'
|
test_expect_success 'pack tag refs' 'git pack-refs'
|
||||||
check_describe A-* HEAD
|
check_describe A-* HEAD
|
||||||
|
|
||||||
|
test_expect_success 'describe works from outside repo using --git-dir' '
|
||||||
|
git clone --bare "$TRASH_DIRECTORY" "$TRASH_DIRECTORY/bare" &&
|
||||||
|
git --git-dir "$TRASH_DIRECTORY/bare" describe >out &&
|
||||||
|
grep "^A-[1-9][0-9]\?-g[0-9a-f]\+$" out
|
||||||
|
'
|
||||||
|
|
||||||
check_describe "A-*[0-9a-f]" --dirty
|
check_describe "A-*[0-9a-f]" --dirty
|
||||||
|
|
||||||
|
test_expect_success 'describe --dirty with --work-tree' '
|
||||||
|
(
|
||||||
|
cd "$TEST_DIRECTORY" &&
|
||||||
|
git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out"
|
||||||
|
) &&
|
||||||
|
grep "^A-[1-9][0-9]\?-g[0-9a-f]\+$" out
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'set-up dirty work tree' '
|
test_expect_success 'set-up dirty work tree' '
|
||||||
echo >>file
|
echo >>file
|
||||||
'
|
'
|
||||||
|
|
||||||
check_describe "A-*[0-9a-f]-dirty" --dirty
|
check_describe "A-*[0-9a-f]-dirty" --dirty
|
||||||
|
|
||||||
|
test_expect_success 'describe --dirty with --work-tree (dirty)' '
|
||||||
|
(
|
||||||
|
cd "$TEST_DIRECTORY" &&
|
||||||
|
git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty >"$TRASH_DIRECTORY/out"
|
||||||
|
) &&
|
||||||
|
grep "^A-[1-9][0-9]\?-g[0-9a-f]\+-dirty$" out
|
||||||
|
'
|
||||||
|
|
||||||
check_describe "A-*[0-9a-f].mod" --dirty=.mod
|
check_describe "A-*[0-9a-f].mod" --dirty=.mod
|
||||||
|
|
||||||
|
test_expect_success 'describe --dirty=.mod with --work-tree (dirty)' '
|
||||||
|
(
|
||||||
|
cd "$TEST_DIRECTORY" &&
|
||||||
|
git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --dirty=.mod >"$TRASH_DIRECTORY/out"
|
||||||
|
) &&
|
||||||
|
grep "^A-[1-9][0-9]\?-g[0-9a-f]\+.mod$" out
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'describe --dirty HEAD' '
|
test_expect_success 'describe --dirty HEAD' '
|
||||||
test_must_fail git describe --dirty HEAD
|
test_must_fail git describe --dirty HEAD
|
||||||
'
|
'
|
||||||
@ -303,8 +333,17 @@ test_expect_success 'describe chokes on severely broken submodules' '
|
|||||||
mv .git/modules/sub1/ .git/modules/sub_moved &&
|
mv .git/modules/sub1/ .git/modules/sub_moved &&
|
||||||
test_must_fail git describe --dirty
|
test_must_fail git describe --dirty
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'describe ignoring a broken submodule' '
|
test_expect_success 'describe ignoring a broken submodule' '
|
||||||
git describe --broken >out &&
|
git describe --broken >out &&
|
||||||
|
grep broken out
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'describe with --work-tree ignoring a broken submodule' '
|
||||||
|
(
|
||||||
|
cd "$TEST_DIRECTORY" &&
|
||||||
|
git --git-dir "$TRASH_DIRECTORY/.git" --work-tree "$TRASH_DIRECTORY" describe --broken >"$TRASH_DIRECTORY/out"
|
||||||
|
) &&
|
||||||
test_when_finished "mv .git/modules/sub_moved .git/modules/sub1" &&
|
test_when_finished "mv .git/modules/sub_moved .git/modules/sub1" &&
|
||||||
grep broken out
|
grep broken out
|
||||||
'
|
'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user