From: Marc Weber Date: Mon, 06 Oct 2008 15:55:35 GMT Subject: Re: [PATCH 2/2] add--interactive: added [c]heckout Message-ID: <20081006155535.GB28582@gmx.de> In-Reply-To: <20081006145137.GC8203@spearce.org> > Uhm, what is this patch against? git.git? If so why are we creating > a new 1129 line script named something erily close to a script we > already have? I accidently added the dist file git-add--interactive instead of the .perl file.. I'll take more care the next time. Both patches should apply cleanly against git.git master branch c4275591fb ============= 2/2 starting at commit message ========================= From 741d1e87669ced27a41f8be1b7b65836bd969d5a Mon Sep 17 00:00:00 2001 Message-Id: <741d1e87669ced27a41f8be1b7b65836bd969d5a.1223307236.git.marco-oweber@gmx.de> In-Reply-To: References: From: Marc Weber Date: Mon, 6 Oct 2008 14:32:13 +0000 Subject: [PATCH 2/2] add--interactive: added [c]heckout this is convinient for cygwin users not using rxvt. command added last (before quit and help) to not break menu layout and keep exisiting numbering Signed-off-by: Marc Weber --- git-add--interactive.perl | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 5352d16..34629b5 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -532,6 +532,27 @@ sub reset_cmd { print "\n"; } +sub checkout_cmd { + my @update = list_and_choose({ PROMPT => 'Checkout', + HEADER => $status_head, }, + list_modified()); + if (@update) { + if (is_initial_commit()) { + # should never be executed because there can't be modified files + print "error: no revision in repo yet\n"; + } + else { + for (@update) { + system(qw(git checkout --), + $_->{VALUE}); + } + } + refresh(); + say_n_paths('checked out', @update); + } + print "\n"; +} + sub add_untracked_cmd { my @add = list_and_choose({ PROMPT => 'Add untracked' }, list_untracked()); @@ -1074,6 +1095,7 @@ sub main_loop { [ 'add untracked', \&add_untracked_cmd, ], [ 'patch', \&patch_update_cmd, ], [ 'diff', \&diff_cmd, ], + [ 'checkout', \&checkout_cmd, ], [ 'quit', \&quit_cmd, ], [ 'help', \&help_cmd, ], ); -- 1.6.0.2.GIT