Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 11 | Comments: 40

filter by tags archive

Doing merges in git

time to read 1 min | 101 words

One of the things that some people fear in a distributed source control is that they might run into conflicts all the time.

My experience has shown that this isn’t the case, but even when it is, there isn’t really anything really scary about that.

Here is an example of a merge conflict in Git:


Double click the conflicting file, and you get the standard diff dialog. You can then resolve the conflict, and then you are done.



Did you notice that merging with git requires less work than with svn? This is what everyone says at least.


Merging with any of the major implementations of DVCS is easier and requires much less work than SVN or any other centralized VCS because the system inherently has more information at hand to perform the merge.


I'm surprised to see that dialog...you strike me a "git bash" type of guy. ;)

Ayende Rahien


Yes, git is keeping much more data, so it can handle it better


Tobi, I too see much less manual merging with git than svn/cvs. Funny, yhe only 2 projects where i've had to do a manual merge are FluentMigrator (my fault) and RavenDB (which was probably also my fault).

Jimmy Chan


Are you using tortoise for git?


What sort of data does git store that makes it much better at merging than SVN?

Ayende Rahien


Basically, it records each individual change, so it is able to do merge on each change independently, while SVN need to do merge between the final results.

Gian Maria

It would be interesting having more deep comparison between merging in DVCS and standard centralized system like svn. Is true indeed that git stores more information for merges than SVN, but usually I do merge in svn with no great pain.

Tortoise for svn show changes files, conflicted files, and I can open the diff from the tortoise windows, resolve the conflicts, check the merge and commit, basically I see the same windows you show with tortoise git.

Clearly svn only compare the actual state of the source and destination folder, but usually is enough for me.


Comment preview

Comments have been closed on this topic.


  1. Production postmortem: The case of the lying configuration file - one day from now
  2. Production postmortem: The industry at large - about one day from now
  3. The insidious cost of allocations - 3 days from now
  4. Find the bug: The concurrent memory buster - 4 days from now
  5. Buffer allocation strategies: A possible solution - 7 days from now

And 3 more posts are pending...

There are posts all the way to Sep 10, 2015


  1. Find the bug (5):
    20 Apr 2011 - Why do I get a Null Reference Exception?
  2. Production postmortem (10):
    31 Aug 2015 - The case of the memory eater and high load
  3. What is new in RavenDB 3.5 (7):
    12 Aug 2015 - Monitoring support
  4. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats