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

Re: [PATCH 1/1] reset: fix reset when using the sparse-checkout feature.

From
Torsten Bögershausen <tboegi@web.de>
Date
Sep 8, 2017, 18:54 UTC
Message-ID
<20170908185443.GA15081@tor.lan>
In-Reply-To
<20170908180050.25188-2-kewillf@microsoft.com>
On Fri, Sep 08, 2017 at 12:00:50PM -0600, Kevin Willford wrote:
Show 16 quoted lines
> When using the sparse checkout feature the git reset command will add
> entries to the index that will have the skip-worktree bit off but will
> leave the working directory empty.  File data is lost because the index
> version of the files have been changed but there is nothing that is in the
> working directory.  This will cause the next status call to show either
> deleted for files modified or deleting or nothing for files added.  The
> added files should be shown as untracked and modified files should be
> shown as modified.
> 
> To fix this when the reset is running if there is not a file in the working
> directory and if it will be missing with the new index entry or was not
> missing in the previous version, we create the previous index version of
> the file in the working directory so that status will report correctly
> and the files will be availble for the user to deal with.
> 
> Signed-off-by: Kevin Willford <kewillf@microsoft.com>
[]
Show 16 quoted lines
> diff --git a/t/t7114-reset-sparse-checkout.sh b/t/t7114-reset-sparse-checkout.sh
> new file mode 100755
> index 0000000000..f2a5426847
> --- /dev/null
> +++ b/t/t7114-reset-sparse-checkout.sh
> @@ -0,0 +1,60 @@
> +#!/bin/sh
> +
> +test_description='reset when using a sparse-checkout'
> +
> +. ./test-lib.sh
> +
> +# reset using a sparse-checkout file
> +
> +test_expect_success 'setup' '
> +	test_tick &&
Do we need a test_tick here ?
Show 27 quoted lines
> +	echo "checkout file" >c &&
> +	echo "modify file" >m &&
> +	echo "delete file" >d &&
> +	git add . &&
> +	git commit -m "initial commit" &&
> +	echo "added file" >a &&
> +	echo "modification of a file" >m &&
> +	git rm d &&
> +	git add . &&
> +	git commit -m "second commit" &&
> +	git checkout -b endCommit
> +'
> +
> +test_expect_success 'reset when there is a sparse-checkout' '
> +	echo "/c" >.git/info/sparse-checkout &&
> +	test_config core.sparsecheckout true &&
> +	git checkout -b resetBranch &&
> +	test_path_is_missing m &&
> +	test_path_is_missing a &&
> +	test_path_is_missing d &&
> +	git reset HEAD~1 &&
> +	test "checkout file" = "$(cat c)" &&
> +	test "modification of a file" = "$(cat m)" &&
> +	test "added file" = "$(cat a)" &&
> +	test_path_is_missing d
> +'
> +
Previous: Kevin WillfordNext: Junio C Hamano
Message 3 of 23 in “reset: fix mixed reset when using sparse-checkout”
  1. 0/1 reset: fix mixed reset when using sparse-checkoutKevin Willford, Sep 8, 2017
  2. 1/1 reset: fix reset when using the sparse-checkout feature.Kevin Willford, Sep 8, 2017
  3. Torsten BögershausenSep 8, 2017
  4. Junio C HamanoSep 8, 2017
  5. Junio C HamanoSep 8, 2017
  6. Kevin WillfordSep 8, 2017
  7. Junio C HamanoSep 8, 2017
  8. Kevin WillfordSep 8, 2017
  9. Junio C HamanoSep 9, 2017
  10. Kevin WillfordSep 9, 2017
  11. Junio C HamanoSep 11, 2017
  12. Johannes SchindelinSep 11, 2017
  13. Junio C HamanoSep 12, 2017
  14. Kevin WillfordSep 12, 2017
  15. Jacob KellerSep 12, 2017
  16. Kevin WillfordSep 12, 2017
  17. Jacob KellerSep 13, 2017
  18. Kevin WillfordSep 13, 2017
  19. Junio C HamanoSep 13, 2017
  20. Kevin WillfordSep 14, 2017
  21. Junio C HamanoSep 15, 2017
  22. Kevin WillfordSep 15, 2017
  23. Jacob KellerSep 15, 2017

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.