Browse Source

resolve-undo: allow plumbing to clear the information

At the Porcelain level, operations such as merge that populate an
initially cleanly merged index with conflicted entries clear the
resolve-undo information upfront.  Give scripted Porcelains a way
to do the same, by implementing "update-index --clear-resolve-info".

With this, a scripted Porcelain may "update-index --clear-resolve-info"
first and repeatedly run "update-index --cacheinfo" to stuff unmerged
entries to the index, to be resolved by the user with "git add" and
stuff.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 15 years ago
parent
commit
4a39f79d34
  1. 5
      builtin-update-index.c
  2. 12
      t/t2030-unresolve-info.sh

5
builtin-update-index.c

@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
#include "tree-walk.h"
#include "builtin.h"
#include "refs.h"
#include "resolve-undo.h"

/*
* Default to not allowing changes to the list of files. The
@ -703,6 +704,10 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) @@ -703,6 +704,10 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
verbose = 1;
continue;
}
if (!strcmp(path, "--clear-resolve-undo")) {
resolve_undo_clear();
continue;
}
if (!strcmp(path, "-h") || !strcmp(path, "--help"))
usage(update_index_usage);
die("unknown option %s", path);

12
t/t2030-unresolve-info.sh

@ -85,4 +85,16 @@ test_expect_success 'rm records reset clears' ' @@ -85,4 +85,16 @@ test_expect_success 'rm records reset clears' '
check_resolve_undo discarded
'

test_expect_success 'plumbing clears' '
prime_resolve_undo &&
test_tick &&
git commit -m merged &&
echo committing keeps &&
check_resolve_undo kept file initial:file second:file third:file &&

echo plumbing clear &&
git update-index --clear-resolve-undo &&
check_resolve_undo cleared
'

test_done

Loading…
Cancel
Save