diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-08-25 14:48:15 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-08-25 14:48:15 -0700 |
commit | 31f0bce8537a38639385366f05ba43e91bd91e38 (patch) | |
tree | 9cd88531392cb2e783108082beddc15c9d5c1870 | |
parent | 3613339eaf3638f7a22ee55f914308f8bab5f2cf (diff) | |
parent | db137fe91ea4afda7a2073364c610fe61dc769b8 (diff) | |
download | git-31f0bce8537a38639385366f05ba43e91bd91e38.tar.gz |
Merge branch 'aj/fix-read-tree-from-scratch'
* aj/fix-read-tree-from-scratch:
read-tree: Fix regression with creation of a new index file.
-rw-r--r-- | builtin-read-tree.c | 10 | ||||
-rwxr-xr-x | t/t1009-read-tree-new-index.sh | 25 |
2 files changed, 31 insertions, 4 deletions
diff --git a/builtin-read-tree.c b/builtin-read-tree.c index 9c2d634d6d..14c836b169 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]; diff --git a/t/t1009-read-tree-new-index.sh b/t/t1009-read-tree-new-index.sh new file mode 100755 index 0000000000..59b3aa4bc4 --- /dev/null +++ b/t/t1009-read-tree-new-index.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +test_description='test read-tree into a fresh index file' + +. ./test-lib.sh + +test_expect_success setup ' + echo one >a && + git add a && + git commit -m initial +' + +test_expect_success 'non-existent index file' ' + rm -f new-index && + GIT_INDEX_FILE=new-index git read-tree master +' + +test_expect_success 'empty index file' ' + rm -f new-index && + > new-index && + GIT_INDEX_FILE=new-index git read-tree master +' + +test_done + |