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

[PATCH] Test 'commit --only' after 'checkout --orphan'

From
Thomas Rast <trast@inf.ethz.ch>
Date
Jun 1, 2013, 11:02 UTC
Message-ID
<78176f4fca45213961f0e4d15ac72012d6a0a10b.1370084247.git.trast@inf.ethz.ch>
In-Reply-To
<CACsJy8A6Hq_LEqAxUTLKP9-TA6aTq+91Wx2vYLhSuMSmRvpYiA@mail.gmail.com>

There are some index handling subtleties in 'commit --only' that are best tested when we have an existing index, but an unborn or empty HEAD. These circumstances are easily produced by 'checkout --orphan', but we did not previously have a test for it.

The main expected failure mode would be: erroneously loading the existing index contents when building the temporary index that is used for --only. Cf.

  http://article.gmane.org/gmane.comp.version-control.git/225969
and subsequent discussion.
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
---
 t/t7501-commit.sh | 13 +++++++++++++
 1 file changed, 13 insertions(+)
diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh
index 195e747..99ce36f 100755
--- a/t/t7501-commit.sh
+++ b/t/t7501-commit.sh
@@ -524,4 +524,17 @@ 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' '
+	# This test relies on having something in the index, as it
+	# would not otherwise actually prove much.  So check this.
+	test -n "$(git ls-files)" &&
+	git checkout --orphan orphan &&
+	echo foo >newfile &&
+	git add newfile &&
+	git commit --only newfile -m"--only on unborn branch" &&
+	echo newfile >expected &&
+	git ls-tree -r --name-only HEAD >actual &&
+	test_cmp expected actual
+'
+
 test_done
-- 
1.8.3.509.g0de0faa
Previous: Duy NguyenNext: Duy Nguyen
Message 8 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.