begin  quoting James G. Sack (jim) as of Wed, May 23, 2007 at 03:07:54PM -0700:
> Andrew Lentvorski wrote:
[snip]
> > Cheap branching with cheap remerge is a hallmark of the distributed
> > source control systems.
> 
> Well svn branching is quite cheap. But merging is a potential headache.
> Is merging really easy on distributed systems? Seems like there must be
> some powerful magic involved, eh?

The most powerful magic I've seen for merging has been the three-way
merge -- what you have, what's in the repository, and what's the common
ancestor.

And *still* it can get nasty. There comes a time when the computer
just can't tell -- the same code is modified in both branches, and
*someone* has to decide which to use.

The other powerful magic I've seen is a good visualization of
the branch history.  Most of the time the tools have a decent
visualization of the history of a _file_, which is nice, and less
often, a decent visualization of the branch of a source tree.

I can only see two improvements that haven't been done:

1. identify moved code, especially moved-and-modified code,
automatically. That is, I move a function from the top of the file
to the bottom of the file, and change it's name, show me that it's
been move, not deleted in one place and added in another.

2. identify files that might be derived from other files.  When
refactoring, I might push half the functions in a file into a
separate file; nowhere in any version-control system do I see this
sort of common action detected.  So you get the same sort of convention
that has CVS detractors whining about in CVS: remember to mention the
action in your commit log message.

(ClearCase has an option to mark a relationship between two files
without actually doing anything.  This is one of the *few* redeeming
features of ClearCase that I found when using it.)

> > The primary reason I mention Mercurial more often than git is that the
> > Mercurial guys seem to regard Windows support as an equal player to
> > Linux support.  That isn't always true for git.
> > 
> > However, the functionality of both seems very equivalent.
> 
> I'm not actively working on anything justifying distributed source
> control just now, but if I were, I think I might have a look at Hg.

I've been poking at git/cogito and hg. I'm impressed, although I'm not
quite ready to use 'em in anger and see if the additional complexity is
worth it.  I suspect that I'll create a few aliases or shell scripts,
and be pretty much okay.

[snip]
> > After 2 or 3 cycles of this, the developers understand their
> > dependencies *really* well.
> 
> An interesting way to provide for organizational policy without being
> too draconian. Did you invent that? Seems pretty neat to me.

It does indeed sounds like a good exercise.

-- 
Beats my approach of just setting up a new machine/account from scratch.
Stewart Stremler


-- 
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list

Reply via email to