From: Pat Thoyts Date: Tue, 18 Oct 2011 08:13:54 GMT Subject: Re: [PATCH] git-gui: fix multi selected file operation Message-ID: <87mxcyn2d9.fsf@fox.patthoyts.tk> In-Reply-To: Bert Wesarg writes: >On Tue, Oct 18, 2011 at 00:26, Pat Thoyts > wrote: >> Bert Wesarg writes: >> >>>Hi, >>> >>>On Sun, Oct 16, 2011 at 00:48, Pat Thoyts >>> wrote: >>>> Bert Wesarg writes: >>>> >>>>>The current path for what we see the diff is not in the list of selected >>>>>paths. But when we add single paths (with Ctrl) to the set the current path >>>>>would not be used when the action is performed. >>>>> >>>>>Fix this by explicitly putting the path into the list before we start >>>>>showing the diff. >>>>> >>>>>Signed-off-by: Bert Wesarg >>>>>--- >>>>> git-gui.sh |    1 + >>>>> 1 files changed, 1 insertions(+), 0 deletions(-) >>>>> >>>>>diff --git a/git-gui.sh b/git-gui.sh >>>>>index f897160..e5dd8bc 100755 >>>>>--- a/git-gui.sh >>>>>+++ b/git-gui.sh >>>>>@@ -2474,6 +2474,7 @@ proc toggle_or_diff {w x y} { >>>>>                               [concat $after [list ui_ready]] >>>>>               } >>>>>       } else { >>>>>+              set selected_paths($path) 1 >>>>>               show_diff $path $w $lno >>>>>       } >>>>> } >>>> >>>> It is not clear what I should be looking for to test this. Can you >>>> re-write the commit message to be more clear about what you are >>>> fixing. Is this multiple unstaged files in the staging box? If so I >>>> don't see what path display is changing. >>> >>>Sorry, for this bad description. I will give you a recipe here what to >>>do to expose the problem. I try later to form this into a new commit >>>message: >>> >>>You have 2 modified, not staged files A and B. Your current view shows >>>the diff for A. Adding B to the selection via Ctrl+Button1 and than >>>perform the "Stage To Commit" action from the "Commit" menu results >>>only in the staging of B. >>> >>>Note, using Shift+Button1 (i.e. 'adding a range of files to the >>>selection') results in the staging of both files A and B. >>> >>>Bert >> >> Ah ok - that explains things and I can see the issue now. I think >> something like: >> >> "When staging a selection of files using Shift-Click to choose a range >> of files then using Ctrl-T or the Stage To Commit menu item will stage >> all the selected files. However if a non-sequential range is selected >> using Ctrl-Click then only the last name selected gets staged. This >> commit fixes this to properly stage all selected files by explicitly >> adding the path to the list before showing the diff." > >Thanks for this. A slight, but important, change to the second last sentence: > >"...using Ctrl-Click then all but the first name selected gets staged." > >Its the first which does not get staged. Ie. that one, which was >selected just by a Click to view the diff. > >Bert > Thanks - applied with this change to the message. -- Pat Thoyts http://www.patthoyts.tk/ PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD