Git development
 help / color / mirror / Atom feed
From: "Torsten Bögershausen" <tboegi@web.de>
To: Kevin Willford <kewillf@microsoft.com>
Cc: git@vger.kernel.org, gitster@pobox.com, peff@peff.net, pclouds@gmail.com
Subject: Re: [PATCH 1/1] reset: fix reset when using the sparse-checkout feature.
Date: Fri, 8 Sep 2017 20:54:43 +0200	[thread overview]
Message-ID: <20170908185443.GA15081@tor.lan> (raw)
In-Reply-To: <20170908180050.25188-2-kewillf@microsoft.com>

On Fri, Sep 08, 2017 at 12:00:50PM -0600, Kevin Willford wrote:
> 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>
[]
> 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 ?

> +	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
> +'
> +

  reply	other threads:[~2017-09-08 18:55 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-08 18:00 [PATCH 0/1] reset: fix mixed reset when using sparse-checkout Kevin Willford
2017-09-08 18:00 ` [PATCH 1/1] reset: fix reset when using the sparse-checkout feature Kevin Willford
2017-09-08 18:54   ` Torsten Bögershausen [this message]
2017-09-08 19:04     ` Junio C Hamano
2017-09-08 19:01   ` Junio C Hamano
2017-09-08 20:08     ` Kevin Willford
2017-09-08 19:12   ` Junio C Hamano
2017-09-08 20:02     ` Kevin Willford
2017-09-09  3:18       ` Junio C Hamano
2017-09-09  4:54         ` Kevin Willford
2017-09-11  4:01           ` Junio C Hamano
2017-09-11 11:15             ` Johannes Schindelin
2017-09-12  3:56               ` Junio C Hamano
2017-09-12 20:20                 ` Kevin Willford
2017-09-12 22:29                   ` Jacob Keller
2017-09-12 23:30                     ` Kevin Willford
2017-09-13  1:39                       ` Jacob Keller
2017-09-13 17:09                         ` Kevin Willford
2017-09-13 22:17                         ` Junio C Hamano
2017-09-14 14:26                           ` Kevin Willford
2017-09-15  5:00                             ` Junio C Hamano
2017-09-15 17:21                               ` Kevin Willford
2017-09-15 21:33                                 ` Jacob Keller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170908185443.GA15081@tor.lan \
    --to=tboegi@web.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=kewillf@microsoft.com \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox