Felipe Contreras <felipe.contreras@xxxxxxxxx> writes: > On Thu, May 30, 2013 at 7:17 AM, Thomas Rast <trast@xxxxxxxxxxx> wrote: >> Felipe Contreras <felipe.contreras@xxxxxxxxx> writes: >> >>> We are supposedly adding files, to to which cache if 'the_index' is >>> discarded? >> [...] >>> if (!current_head) { >>> discard_cache(); >>> + if (read_cache() < 0) >>> + die(_("cannot read the index")); >>> return; >>> } >> >> It is not obvious to me that this is a correct change. discard_cache() >> without subsequent reloading could also legitimately be used to empty >> the index. So if you are fixing a bug, please justify the change and >> provide a testcase to guard against it in the future. > > So istate->initialized is false, yet somebody can still add entries to > the cache? What happens when somebody else tries to initialize this > cache? All the entries there will be lost, even though nobody > discarded it afterwards. And yet it works, and your patch breaks it. diff --git i/t/t7501-commit.sh w/t/t7501-commit.sh index 195e747..1608254 100755 --- i/t/t7501-commit.sh +++ w/t/t7501-commit.sh @@ -524,4 +524,16 @@ test_expect_success 'commit a file whose name is a dash' ' test_i18ngrep " changed, 5 insertions" output ' +test_expect_success '--only works on to-be-born branch' ' + git checkout --orphan orphan && + echo foo >newfile && + git add newfile && + git commit --only newfile -m"--only on unborn branch" && + cat >expected <<EOF && +100644 blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 newfile +EOF + git ls-tree -r HEAD >actual && + test_cmp expected actual +' + test_done -- Thomas Rast trast@{inf,student}.ethz.ch -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html