Re: using git-difftool -d when cherry-picking
- From
- Jan Smets <jan@smets.cx>
- Date
- Apr 30, 2016, 10:50 UTC
- Message-ID
- <CAH9ve7yExPFi-k2K87FWsCX0xtx+z8H94L2=YNNz6imXGCEtiA@mail.gmail.com>
- In-Reply-To
- <20160430011930.GA26977@gmail.com>
On Sat, Apr 30, 2016 at 3:19 AM, David Aguilar <davvid@gmail.com> wrote:
Show 53 quoted lines
> On Wed, Apr 27, 2016 at 11:12:25AM +0200, Jan Smets wrote: >> Hi >> >> Please consider following example >> >> #!/bin/bash >> rm -rf /tmp/gittest >> mkdir /tmp/gittest >> cd /tmp/gittest >> >> git init >> >> echo $RANDOM > testfile >> git add testfile >> git commit -m test -a >> >> git branch X >> git checkout X >> echo $RANDOM > testfile >> git add testfile >> git commit -m test -a >> >> git checkout master >> echo $RANDOM > testfile >> git add testfile >> git commit -m test -a >> >> git cherry-pick X >> git diff --raw >> git difftool -d >> >> >> This emulates a merge conflict when using git-cerry-pick. >> >> $ git diff --raw >> :000000 100644 0000000... 0000000... U testfile >> :100644 100644 a04e026... 0000000... M testfile >> >> When executing git difftool with the -d option : >> >> /usr/lib/git-core/git-difftool line 260: File exists >> >> A possible solution is to build an unique list in @working_tree >> >> The purpose is to edit/resolve the conflict in the difftool. > > > That could be useful. git-mergetool is intended to be used when > merge conflicts exist, but it sounds like you may have already > found a possible solution by making @working_tree unique. Have > you tested that to see if it skirts around the issue? > > If you have a patch I'd be happy to help review and test it.
Something like this seems to work.
26a27,32
Show 6 quoted lines
> sub uniq
> {
> my %seen;
> grep !$seen{$_}++, @_;
> }
>251a258
> my @unique_working_tree = uniq( @working_tree );
256c263 < for my $file (@working_tree) { ---
> for my $file (@unique_working_tree) {TMTOWTDI
Thanks !
-- Smets Jan jan@smets.cx