From: "Pap Lôrinc" <paplorinc@yahoo.com>
To: "git@vger.kernel.org" <git@vger.kernel.org>
Subject: Parallel refactoring and git merge nightmare
Date: Wed, 11 Apr 2012 09:13:23 -0700 (PDT) [thread overview]
Message-ID: <1334160803.74554.YahooMailNeo@web160603.mail.bf1.yahoo.com> (raw)
Hello! :)
We are working in parallel on the refactoring of a
small project. The team uses SVN and I decided to give GIT a chance to
demonstrate it's merging capabilities I've read so much good about :).
However
- I must be doing something VERY wrong - every time I try to merge from
the remote svn (git svn fetch and git merge remotebranch) into my
branch, I get hundreds of conflicts, mostly because of moved folders.
I
tried it from the console (latest git), from Idea (11.1.1), from git
extensions, from gitk, from tortoisegit and they all offer me a
one-by-one resolution of the conflicts, that should have been resolved
automatically (in Idea and tortoisegit I can select "theirs" to all the
conflicts, but they still give errors at the end).
I think the
problem arises because git doesn't track
moves, therefore I constantly get conflicts of type "local modified,
remote deleted" (or even both deleted) when in fact it was only modified
and moved, it could have been merged without conflicts (-> apply my
changes and move the file to the new location).
Even if I move
the files manually (eg. from totalcommander) to their final locations (I
have to copy each modified remote file to the new location ... still
faster than going through the hundreds of conflicts in git mergetool
manually, one-by-one), and added the files to the index, I have to hunt
down the duplicated files, and the ones containing the
"<<<<<" conflict markers (which often contain the two
whole files ... not just their differences, even though they are clearly
very similar), delete the merge file leftovers (theirs, base, local
etc), copy the files over manually, that could not be merged etc. This
is madness, I am merging manually!!!
I don't want conflict
markers in my files, it's dangerous. Don't spam my files with garbage
(and commit them later, because it was left unnoticed in the whole
manual merge), use temporary files or whatever.
It would also be
nice if conflicts could be ignored, if the match a certain regexp (eg.
moving the same .java file in parallel might change the package or
import statements, which will result in conflicts ... I don't care, use
whichever, Idea will correct it anyway, I don't want to go through
hundreds of files because of this). Some hooks could be activated on
merge conflicts also.
What am I doing wrong, this manual or
one-by-one merge is absurd :(? I want git to work because of all the bad
experience I've had with TFS and SVN, but I just can't comprehend this.
Thank you for your patience,
Pap Lőrinc
next reply other threads:[~2012-04-11 16:13 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-11 16:13 Pap Lôrinc [this message]
2012-04-11 16:49 ` Parallel refactoring and git merge nightmare Michael Witten
2012-04-12 3:27 ` David Aguilar
2012-04-12 5:23 ` Pap Lôrinc
2012-04-12 5:41 ` Andrew Ardill
2012-04-12 5:49 ` David Barr
2012-04-12 13:52 ` Pap Lôrinc
2012-04-12 16:03 ` Eugene Sajine
2012-04-12 5:41 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1334160803.74554.YahooMailNeo@web160603.mail.bf1.yahoo.com \
--to=paplorinc@yahoo.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox