git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git-checkout: allow pathspec to recover lost working tree directory
@ 2006-11-15 19:07 Junio C Hamano
  2006-11-16  1:17 ` Anand Kumria
  2006-11-17 15:44 ` Petr Baudis
  0 siblings, 2 replies; 4+ messages in thread
From: Junio C Hamano @ 2006-11-15 19:07 UTC (permalink / raw)
  To: git

It is often wanted on the #git channel that this were to work to
recover removed directory:

	rm -fr Documentation
	git checkout -- Documentation
	git checkout HEAD -- Documentation ;# alternatively

Now it does.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 * Back to fixing usability issues one at a time instead of
   throwing everything away with bathwater.

 git-checkout.sh |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/git-checkout.sh b/git-checkout.sh
index eb28b29..737abd0 100755
--- a/git-checkout.sh
+++ b/git-checkout.sh
@@ -112,7 +112,11 @@ Did you intend to checkout '$@' which ca
 		git-ls-tree --full-name -r "$new" "$@" |
 		git-update-index --index-info || exit $?
 	fi
-	git-checkout-index -f -u -- "$@"
+
+	# Make sure the request is about existing paths.
+	git-ls-files --error-unmatch -- "$@" >/dev/null || exit
+	git-ls-files -- "$@" |
+	git-checkout-index -f -u --stdin
 	exit $?
 else
 	# Make sure we did not fall back on $arg^{tree} codepath
-- 
1.4.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] git-checkout: allow pathspec to recover lost working tree directory
  2006-11-15 19:07 [PATCH] git-checkout: allow pathspec to recover lost working tree directory Junio C Hamano
@ 2006-11-16  1:17 ` Anand Kumria
  2006-11-16  2:00   ` Junio C Hamano
  2006-11-17 15:44 ` Petr Baudis
  1 sibling, 1 reply; 4+ messages in thread
From: Anand Kumria @ 2006-11-16  1:17 UTC (permalink / raw)
  To: git

On Wed, 15 Nov 2006 11:07:19 -0800, Junio C Hamano wrote:

> It is often wanted on the #git channel that this were to work to
> recover removed directory:
> 
> 	rm -fr Documentation
> 	git checkout -- Documentation
> 	git checkout HEAD -- Documentation ;# alternatively
> 
> Now it does.

One thing I often seem to do is make some changes, test them out and
remove the file if it wa a dead end and get my original back with
'cg-restore <file>'. Does this mean that the git equivalent will be 'git
checkout -- <file>' as well?

Thanks,
Anand

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] git-checkout: allow pathspec to recover lost working tree directory
  2006-11-16  1:17 ` Anand Kumria
@ 2006-11-16  2:00   ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2006-11-16  2:00 UTC (permalink / raw)
  To: Anand Kumria; +Cc: git

"Anand Kumria" <wildfire@progsoc.org> writes:

> On Wed, 15 Nov 2006 11:07:19 -0800, Junio C Hamano wrote:
>
>> It is often wanted on the #git channel that this were to work to
>> recover removed directory:
>> 
>> 	rm -fr Documentation
>> 	git checkout -- Documentation
>> 	git checkout HEAD -- Documentation ;# alternatively
>> 
>> Now it does.
>
> One thing I often seem to do is make some changes, test them out and
> remove the file if it wa a dead end and get my original back with
> 'cg-restore <file>'. Does this mean that the git equivalent will be 'git
> checkout -- <file>' as well?

Naming individual files has been supported for a long time.
What this patch adds is an ability to name a whole directory to
restore to the index state or a named commit state).

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] git-checkout: allow pathspec to recover lost working tree directory
  2006-11-15 19:07 [PATCH] git-checkout: allow pathspec to recover lost working tree directory Junio C Hamano
  2006-11-16  1:17 ` Anand Kumria
@ 2006-11-17 15:44 ` Petr Baudis
  1 sibling, 0 replies; 4+ messages in thread
From: Petr Baudis @ 2006-11-17 15:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Wed, Nov 15, 2006 at 08:07:19PM CET, Junio C Hamano wrote:
> diff --git a/git-checkout.sh b/git-checkout.sh
> index eb28b29..737abd0 100755
> --- a/git-checkout.sh
> +++ b/git-checkout.sh
> @@ -112,7 +112,11 @@ Did you intend to checkout '$@' which ca
>  		git-ls-tree --full-name -r "$new" "$@" |
>  		git-update-index --index-info || exit $?
>  	fi
> -	git-checkout-index -f -u -- "$@"
> +
> +	# Make sure the request is about existing paths.
> +	git-ls-files --error-unmatch -- "$@" >/dev/null || exit
> +	git-ls-files -- "$@" |
> +	git-checkout-index -f -u --stdin
>  	exit $?
>  else
>  	# Make sure we did not fall back on $arg^{tree} codepath

Wouldn't it be better to fix git-checkout-index to checkout a whole
directory if specified?

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-11-17 15:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-15 19:07 [PATCH] git-checkout: allow pathspec to recover lost working tree directory Junio C Hamano
2006-11-16  1:17 ` Anand Kumria
2006-11-16  2:00   ` Junio C Hamano
2006-11-17 15:44 ` Petr Baudis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).