Subject: Re: [boost] [git] Mercurial? easy merging in svn, how about git/hg?
From: Frank Birbacher (bloodymir.crap_at_[hidden])
Date: 2012-03-31 11:44:33
-----BEGIN PGP SIGNED MESSAGE-----
Am 29.03.12 22:18, schrieb Martin Geisler:
> Blocking changes is harder because we always use three-way merges
> instead of re-playing patches. If you know that you don't need a
> particular changeset again, then you can back it out. This is just
> a way of applying the reverse patch from that changeset.
> +x +y -x a --- b --- c --- d --- f
Ok, this means removing the changes from a branch. But what for the
following: consider a stable and a development branch, just as in your
example. Bugfixes go to stable and features go to development. Once in
a week someone merges the stable branch into dev to bring all bugfixes
into dev. Now someone fixes a bug on stable which shall be fixed
differently on dev, here shown as z and z':
dev: ... a --- b --- c --- d --- z'
stable: ... --- x --------- y --- z
The z and z' are logically the same fix, but syntactically they are
different. With svn you could block z from being merged into dev
(effective when the merge will happen sometime in the future.) With a
three-way merge this seems not easily possible. A merge from will
reproduce the z in dev (ancestor is y currently.) So you will have to
produce a new common ancestor of dev and stable right on the spot,
meaning to do a merge and somehow remove z from it.
You might ask why can z and z' be different in the first place. Well,
it may be the coding on dev has changed due to new library functions,
new compiler capabilities, or new design of something.
> Yeah -- I was surprised too :-) NTFS supports hardlinks and has
> done so for more than a decade. But people still come and ask me
> about this when I give a Mercurial talk :)
> This means that you pay a 15% overhead for storing all 270,000
> changesets locally -- compared to storing just one pristine copy
> like SVN done. The delta compression is amazingly efficient!
Wow, that's really cool.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: keyserver x-hkp://pool.sks-keyservers.net
-----END PGP SIGNATURE-----
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk