Merge branch 'as/describe-broken-refresh-index-fix'
"git describe --dirty --broken" forgot to refresh the index before seeing if there is any chang, ("git describe --dirty" correctly did so), which has been corrected. * as/describe-broken-refresh-index-fix: describe: refresh the index when 'broken' flag is usedmaint
commit
b227482ea0
|
@ -53,6 +53,10 @@ static const char *diff_index_args[] = {
|
||||||
"diff-index", "--quiet", "HEAD", "--", NULL
|
"diff-index", "--quiet", "HEAD", "--", NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *update_index_args[] = {
|
||||||
|
"update-index", "--unmerged", "-q", "--refresh", NULL
|
||||||
|
};
|
||||||
|
|
||||||
struct commit_name {
|
struct commit_name {
|
||||||
struct hashmap_entry entry;
|
struct hashmap_entry entry;
|
||||||
struct object_id peeled;
|
struct object_id peeled;
|
||||||
|
@ -645,6 +649,14 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
if (broken) {
|
if (broken) {
|
||||||
struct child_process cp = CHILD_PROCESS_INIT;
|
struct child_process cp = CHILD_PROCESS_INIT;
|
||||||
|
|
||||||
|
strvec_pushv(&cp.args, update_index_args);
|
||||||
|
cp.git_cmd = 1;
|
||||||
|
cp.no_stdin = 1;
|
||||||
|
cp.no_stdout = 1;
|
||||||
|
run_command(&cp);
|
||||||
|
|
||||||
|
child_process_init(&cp);
|
||||||
strvec_pushv(&cp.args, diff_index_args);
|
strvec_pushv(&cp.args, diff_index_args);
|
||||||
cp.git_cmd = 1;
|
cp.git_cmd = 1;
|
||||||
cp.no_stdin = 1;
|
cp.no_stdin = 1;
|
||||||
|
|
|
@ -671,4 +671,40 @@ test_expect_success 'setup misleading taggerdates' '
|
||||||
|
|
||||||
check_describe newer-tag-older-commit~1 --contains unique-file~2
|
check_describe newer-tag-older-commit~1 --contains unique-file~2
|
||||||
|
|
||||||
|
test_expect_success 'describe --dirty with a file with changed stat' '
|
||||||
|
test_when_finished "rm -fr stat-dirty" &&
|
||||||
|
git init stat-dirty &&
|
||||||
|
(
|
||||||
|
cd stat-dirty &&
|
||||||
|
|
||||||
|
echo A >file &&
|
||||||
|
git add file &&
|
||||||
|
git commit -m A &&
|
||||||
|
git tag A -a -m A &&
|
||||||
|
echo "A" >expect &&
|
||||||
|
|
||||||
|
test-tool chmtime -10 file &&
|
||||||
|
git describe --dirty >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'describe --broken --dirty with a file with changed stat' '
|
||||||
|
test_when_finished "rm -fr stat-dirty" &&
|
||||||
|
git init stat-dirty &&
|
||||||
|
(
|
||||||
|
cd stat-dirty &&
|
||||||
|
|
||||||
|
echo A >file &&
|
||||||
|
git add file &&
|
||||||
|
git commit -m A &&
|
||||||
|
git tag A -a -m A &&
|
||||||
|
echo "A" >expect &&
|
||||||
|
|
||||||
|
test-tool chmtime -10 file &&
|
||||||
|
git describe --dirty --broken >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in New Issue