aboutsummaryrefslogtreecommitdiff
path: root/builtin-read-tree.c
diff options
context:
space:
mode:
authorAlexandre Julliard <julliard@winehq.org>2009-08-17 17:35:44 +0200
committerJunio C Hamano <gitster@pobox.com>2009-08-17 09:20:52 -0700
commitdb137fe91ea4afda7a2073364c610fe61dc769b8 (patch)
tree809ba0f3a75bef1c74693daf5153573caf3c53eb /builtin-read-tree.c
parent5a56da58060e50980fab0f4c38203a25440d1530 (diff)
downloadgit-db137fe91ea4afda7a2073364c610fe61dc769b8.tar.gz
git-db137fe91ea4afda7a2073364c610fe61dc769b8.tar.xz
read-tree: Fix regression with creation of a new index file.
Reading the index into an empty file has been broken by 5a56da58060e50980fab0f4c38203a25440d1530, since it causes the existing index to always be loaded first, and dies if it's an empty file: $ GIT_INDEX_FILE=`mktemp` git read-tree master fatal: index file smaller than expected It breaks for instance committing from git.el. This patch reverts to the previous behavior of only loading the index when merging it. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-read-tree.c')
-rw-r--r--builtin-read-tree.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/builtin-read-tree.c b/builtin-read-tree.c
index 9c2d634d6..14c836b16 100644
--- a/builtin-read-tree.c
+++ b/builtin-read-tree.c
@@ -113,13 +113,15 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
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");
-
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];