[lkml]   [2003]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: BitBucket: GPL-ed KitBeeper clone
On Fri, 7 Mar 2003, Olivier Galibert wrote:
> Now if the development went that way:
> 1.7 -> (branching, i.e. copy)
> v v
> v
> 1.8 v
> v -> (merge)
> 1.9 v
> v v
> 1.10 v
> v -> (merge)
> v v
> v
> v v
> 1.11 <- (merge)
> Pretty much standard, a developper created a new branch, made some
> changes in it, synced with mainline, synced with mailine again a
> little later, made some new changes and finally folded the branch back
> in the mainline. Let's admit the developper changes don't conflict by
> themselves with the mainline changes.
> CVS, for all the merges, is going to pick 1.7 as the reference. The
> first time, for, it's going to work correctly. It will fuse
> the 1.7->1.8 patch with the> patch and apply the
> result to 1.7 to get The two patches have no reason to
> overlap.> will essentially be identical to 1.7->1.8,
> and 1.8-> will essentially be identical to>
^^^^^^^^^^^^^^^^>, I assume?

> As soon as the next merge, i.e, it breaks. CVS is going to
> try to fuse the 1.7->1.10 patch with the 1.7-> patch. But
> 1.7->1.10 = 1.7->1.8+1.8->1.10 and 1.7-> ~= 1.7->>1.8.
> So they have components in common, hance they _will_ conflict.
> If CVS had taken the latest common ancestor by keeping in the
> repository the existence of the 1.8-> link, it would have taken
> the 1.8 version as the reference. The patches to fuse would have been
> 1.8->1.10 and 1.8->, which have no reason to conflict.
> Same for the next merge, the optimal merge point is in that case 1.10,
> and it ends up being a null merge, i.e. 1.11 is a copy of
> You can see the final structure is a DAG, with each node having a max
> of 2 ancestors. And that's what PRCS and bk are working with,
> fundamentally.

Aha, so that's why my `mergetree' script (which basically is some directory
recursion around plain RCS merge, with additional support for hardlinking
identical files) works better than CVS, when I merge e.g. linux-2.5.64 and
linux-m68k-2.5.63 into linux-m68k-2.5.64. It always uses the latest common
ancestor (linux-2.5.63)...



Geert Uytterhoeven -- There's lots of Linux beyond ia32 --

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:33    [W:0.147 / U:0.472 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site