I just went through a major merge using kdiff. It was pretty easy to use. I chose it after a quick google showed it was quite popular.




Sent from Samsung tablet



-------- Original message --------
From Enno Borgsteede <ennoborg@gmail.com>
Date: 30/12/2013 13:22 (GMT+01:00)
To John Ralls <jralls@ceridwen.us>
Cc Gramps Development List <gramps-devel@lists.sourceforge.net>
Subject Re: [Gramps-devel] how can I handle merges in git pull?


OK, I ran into the problem again after Vassilii commited my GEDCOM patch to the repo. Now, when I run git pull without rebase, I see:

enno@enno-desktop ~/Gramps $ git pull
error: Your local changes to the following files would be overwritten by merge:
    src/plugins/export/ExportGedcom.py
    src/plugins/lib/libgedcom.py
Please, commit your changes or stash them before you can merge.
Aborting

Status says:

enno@enno-desktop ~/Gramps $ git status -uno
# On branch gramps34
# Your branch and 'origin/maintenance/gramps34' have diverged,
# and have 3 and 3 different commits each, respectively.
#   (use "git pull" to merge the remote branch into yours)
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   src/Filters/Rules/Person/_IsAncestorOf.py
#    modified:   src/Filters/Rules/Person/_IsRelatedWith.py
#    modified:   src/Relationship.py
#    modified:   src/glade/editcitation.glade
#    modified:   src/plugins/export/ExportGedcom.py
#    modified:   src/plugins/lib/libgedcom.py
#    modified:   src/plugins/lib/libpersonview.py
#    modified:   src/plugins/tool/PatchNames.py
#
no changes added to commit (use "git add" and/or "git commit -a")


Of the modified files, most are intentional, as I really want to run my personal hacks, except that the 2 GEDCOM related files should be merged. Same for an earlier local commit of o/nl.po that I did to be able to pull again after that file was changed in the repo.

Now, when I check mergetool, I get:

enno@enno-desktop ~/Gramps $ git mergetool

This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
meld opendiff kdiff3 tkdiff xxdiff tortoisemerge gvimdiff diffuse ecmerge p4merge araxis bc3 codecompare emerge vimdiff
No known merge tool is available.

Which suggests that a merge would probably have been done if I had one of the tools mentioned here, but with so many available, I really have no idea what to choose. Can anyone recommend?

I hope that my intentions are clear. I want to run Gramps with local hacks, without committing or pushing those to the repo, and run regular pulls like I did svn update earlier. It's that simple.

thanks,

Enno



2013/12/25 John Ralls <jralls@ceridwen.us>

On Dec 25, 2013, at 3:01 AM, Enno Borgsteede <ennoborg@gmail.com> wrote:

> John,
>> If you just open the file in your favorite editor, you'll find the conflicts
>> marked with the usual <<<<<<<, =======, and >>>>>>. Fix them up the way you like,
>> save the file and run `git add po/nl.po` to get your changes into the git index.
>> What you do next depends on what state git is in: If it's in the middle of a merge
>> or a rebase, say `git foo --continue` with foo standing in for either merge or
>> rebase.
> Last time I looked at the file, I saw no such marks, and the message that my git (on Linux Mint 16) gave me suggests that it aborted the pull to prevent a conflict. Can such be the case?

It shouldn't have done unless you told it to, with git merge --abort. Otherwise, how would you fix it? It's possible that there's some other problem. Run the pull again and post the output along with the results of `git status -uno`.

>> There's also `git mergetool` which may or may not run a conflict resolution assistant
>> depending on how your distro configured it.
> Ah, ok, I was not aware of different configurations like that, and still feel like a beginner here.

Get the book: http://git-scm.com/book . Electronic versions are free. There's even a Dutch translation!

Regards,
John Ralls