Date: Wed, 27 Feb 2013 16:08:20 -0700 From: Warner Losh <imp@bsdimp.com> To: Christoph Mallon <christoph.mallon@gmx.de> Cc: freebsd-arch@FreeBSD.org Subject: Re: Large Capsicum patch for review. Message-ID: <6DB9C19D-C8E8-4386-8D03-6D4EC1523C1D@bsdimp.com> In-Reply-To: <512E8B82.5040801@gmx.de> References: <20130213025547.GA2025@garage.freebsd.pl> <20130213230221.GB1375@garage.freebsd.pl> <20130223221116.GR1377@garage.freebsd.pl> <5129ADC5.5040306@gmx.de> <20130224193058.GW1377@garage.freebsd.pl> <512B3E5C.2090506@gmx.de> <61FF31A0-7051-4FAE-8399-76585B1D5018@bsdimp.com> <512E8B82.5040801@gmx.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 27, 2013, at 3:41 PM, Christoph Mallon wrote: > 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. >>>=20 >>> Ugh, why is p4 still in use, if it is just a hassle and hides = history? >>=20 >> 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. >=20 > Uh, no. > git's and mercurial's merging logics are reliable and fast. You must be using a different definition of 'reilable' than I'm = accustomed to. It certainly is fast, but isn't as reliable and robust = and perforce. Having used both heavily in branched environments, I can = state unequivocally that perforce of 2003 did a better job than = mercurial does in 2013. I've had more problems with mercurial than I = ever had with perforce. > 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. Sure, it is a lot better than CVS, but it is no perforce. while = mercurial does let me prepare the commit(s) locally, which is a plus = over perforce, it has mismerged things too often for me to not complain = when you use the word 'reliable'. > 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. Newer subversions are only marginally worse than mercurial from what = I've done, but my recent experience has been much more slanted to = mercurial than subversion, so that impression suffers from a small = sample size. > 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. Can't speak to git in any of this. I've used it only lightly to snag = other people's software. I do know what issues I've encountered with = mercurial. Don't get me wrong, there's a number of nice features in hg, = and it has been less problematic than svn or cvs, but much more of a = pita than p4. Can't beat the price, for some environments it is perfect, = but heavy branching it is still somewhat weaker than my perforce = branching experience. Warner=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6DB9C19D-C8E8-4386-8D03-6D4EC1523C1D>