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
parent
9d9a2f4aba
commit
4a39f79d34
|
@ -9,6 +9,7 @@
|
||||||
#include "tree-walk.h"
|
#include "tree-walk.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "refs.h"
|
#include "refs.h"
|
||||||
|
#include "resolve-undo.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default to not allowing changes to the list of files. The
|
* 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)
|
||||||
verbose = 1;
|
verbose = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!strcmp(path, "--clear-resolve-undo")) {
|
||||||
|
resolve_undo_clear();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!strcmp(path, "-h") || !strcmp(path, "--help"))
|
if (!strcmp(path, "-h") || !strcmp(path, "--help"))
|
||||||
usage(update_index_usage);
|
usage(update_index_usage);
|
||||||
die("unknown option %s", path);
|
die("unknown option %s", path);
|
||||||
|
|
|
@ -85,4 +85,16 @@ test_expect_success 'rm records reset clears' '
|
||||||
check_resolve_undo discarded
|
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
|
test_done
|
||||||
|
|
Loading…
Reference in New Issue