Large Capsicum patch for review.

Christoph Mallon christoph.mallon at gmx.de
Wed Feb 27 22:41:28 UTC 2013


On 25.02.2013 15:21, Warner Losh wrote:
> On Feb 25, 2013, at 3:35 AM, Christoph Mallon wrote:
>> On 24.02.2013 20:30, Pawel Jakub Dawidek wrote:
>>> Nope, but I'm using some script to generate patch(1)-compatbile diff
>>> from a perforce diff.
>>
>> Ugh, why is p4 still in use, if it is just a hassle and hides history?
> 
> Because it is the only VCS that doesn't suck at merging? While git, hg and svn do a passing fair job, they all suck compared to perforce.

Uh, no.
git's and mercurial's merging logics are reliable and fast.
The fact, that a merge was performed, is encoded into the structure of the history, which makes the history a directed acyclic graph, not just a simple tree.
This information is considered when performing merges.
Further, there is some logic to handle cherry picks.
Another important aspect is, that you prepare merge commits (and in fact every commit) locally, so if something went wrong, which shows up during testing, you can correct it locally and then just publish the finished, correct commit.
So commiting in general is not an open-heart surgery thing, which is great benefit.

Since svn grew recording mergeinfo (in 1.5, if I remember correctly), it works ok, too, but it is really, really slow and has some other problems.
Before 1.5 it was pretty much the same as cvs, i.e. it recorded only the branch point.
For repeated merges, this meant, it tried to merge again the same stuff starting at the branching point, which lead to conflicts with later changes at the same places.
So you had to manually specify, what should be merged.

Using git-svn works really well and provides you with most benefits, which git has to offer, while using svn as the public repository.
I have no experience with other systems like bzr or darcs, but from reading I gather, that they record sufficient metainformation, too.
Even the marketing guys of p4 have a hard time to justify p4 compared to git.
Read their git and p4 "comparison" (www.perforce.com/sites/default/files/pdf/perforce-git-comparison.pdf), it's quite funny, if you know how to interpret it.

	Christoph


More information about the freebsd-arch mailing list