git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/4] commit: reload cache properly

From
Thomas Rast <trast@inf.ethz.ch>
Date
May 30, 2013, 12:58 UTC
Message-ID
<8761y0k4ja.fsf@linux-k42r.v.cablecom.net>
In-Reply-To
<CAMP44s1O=VTu8EZi+yOfGMccCpS+pozvZJuDW1mK95U8-YEquA@mail.gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 22 quoted lines
> On Thu, May 30, 2013 at 7:17 AM, Thomas Rast <trast@inf.ethz.ch> wrote:
>> Felipe Contreras <felipe.contreras@gmail.com> 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
Previous: Felipe ContrerasNext: Felipe Contreras
Message 5 of 16 in “cherry-pick: fix memory leaks”
  1. 0/4 cherry-pick: fix memory leaksFelipe Contreras, May 30, 2013
  2. 1/4 commit: reload cache properlyFelipe Contreras, May 30, 2013
  3. Thomas RastMay 30, 2013
  4. Felipe ContrerasMay 30, 2013
  5. Thomas RastMay 30, 2013
  6. Felipe ContrerasMay 30, 2013
  7. Duy NguyenJun 1, 2013
  8. Test 'commit --only' after 'checkout --orphan'Thomas Rast, Jun 1, 2013
  9. Duy NguyenMay 30, 2013
  10. 2/4 read-cache: plug small memory leakFelipe Contreras, May 30, 2013
  11. 3/4 unpack-trees: plug a memory leakFelipe Contreras, May 30, 2013
  12. Junio C HamanoJun 2, 2013
  13. Felipe ContrerasJun 2, 2013
  14. Junio C HamanoJun 2, 2013
  15. Felipe ContrerasJun 2, 2013
  16. 4/4 unpack-trees: free created cache entriesFelipe Contreras, May 30, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.