diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-01-20 14:44:31 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-20 14:46:35 -0800 |
commit | 6751e0471df1bdc4a1d5e5a3929a531c74e95aeb (patch) | |
tree | 4f25445b5ceb6f83473f60a36c7d09d2e1f0378e /builtin-checkout.c | |
parent | 030b1a77f72a7e3307c7d7881ae570ca1c8ed877 (diff) | |
parent | dea4562bf5d1c27cd6c01b9cb65c3a8b8ee99a69 (diff) | |
download | git-6751e0471df1bdc4a1d5e5a3929a531c74e95aeb.tar.gz |
Merge branch 'jc/cache-unmerge'
* jc/cache-unmerge:
rerere forget path: forget recorded resolution
rerere: refactor rerere logic to make it independent from I/O
rerere: remove silly 1024-byte line limit
resolve-undo: teach "update-index --unresolve" to use resolve-undo info
resolve-undo: "checkout -m path" uses resolve-undo information
resolve-undo: allow plumbing to clear the information
resolve-undo: basic tests
resolve-undo: record resolved conflicts in a new index extension section
builtin-merge.c: use standard active_cache macros
Conflicts:
builtin-ls-files.c
builtin-merge.c
builtin-rerere.c
Diffstat (limited to 'builtin-checkout.c')
-rw-r--r-- | builtin-checkout.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/builtin-checkout.c b/builtin-checkout.c index e44e238c39..d0b1a728cb 100644 --- a/builtin-checkout.c +++ b/builtin-checkout.c @@ -17,6 +17,7 @@ #include "blob.h" #include "xdiff-interface.h" #include "ll-merge.h" +#include "resolve-undo.h" static const char * const checkout_usage[] = { "git checkout [options] <branch>", @@ -234,6 +235,10 @@ static int checkout_paths(struct tree *source_tree, const char **pathspec, if (report_path_error(ps_matched, pathspec, 0)) return 1; + /* "checkout -m path" to recreate conflicted state */ + if (opts->merge) + unmerge_cache(pathspec); + /* Any unmerged paths? */ for (pos = 0; pos < active_nr; pos++) { struct cache_entry *ce = active_cache[pos]; @@ -370,6 +375,7 @@ static int merge_working_tree(struct checkout_opts *opts, if (read_cache_preload(NULL) < 0) return error("corrupt index file"); + resolve_undo_clear(); if (opts->force) { ret = reset_tree(new->commit->tree, opts, 1); if (ret) |