diff options
Diffstat (limited to 'builtin-read-tree.c')
| -rw-r--r-- | builtin-read-tree.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/builtin-read-tree.c b/builtin-read-tree.c index f5acb1aa93..50413ca17d 100644 --- a/builtin-read-tree.c +++ b/builtin-read-tree.c @@ -110,18 +110,20 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix) git_config(git_default_config, NULL); - newfd = hold_locked_index(&lock_file, 1); - argc = parse_options(argc, argv, unused_prefix, read_tree_options, read_tree_usage, 0); - if (read_cache_unmerged() && (opts.prefix || opts.merge)) - die("You need to resolve your current index first"); + newfd = hold_locked_index(&lock_file, 1); prefix_set = opts.prefix ? 1 : 0; if (1 < opts.merge + opts.reset + prefix_set) die("Which one? -m, --reset, or --prefix?"); - stage = opts.merge = (opts.reset || opts.merge || prefix_set); + + if (opts.reset || opts.merge || opts.prefix) { + if (read_cache_unmerged() && (opts.prefix || opts.merge)) + die("You need to resolve your current index first"); + stage = opts.merge = 1; + } for (i = 0; i < argc; i++) { const char *arg = argv[i]; |
