On Wed, Dec 19, 2007 at 02:51:05PM -0800, SJS wrote:
I think it would be better to describe it as: P4 doesn't have branches, but
it can track merges between trees which can be used to simulate some of
the behavior of branches.
What behavior do you believe is missing?
Matt explained most of it pretty well. The basic problem is that the
branching is tracked independently for each file. If users are very
displined about their branch/directory layout it works ok, but it can
quickly become very difficult to determine what exactly might need to be
merged.
When my company evaluated Perforce (and switched to it partly due to my
recommendation), I was glad to see the notion of the changeset. A number
uniquely represents the entire state of the tree. If I had realized that
they don't actually use that number for _anything_ I might have
reconsidered. Labels are not based on changesets, but on individual
versions of files. It is very complicated to figure out what changeset
corresponds with a given label, or possibly a set of labels, since it is
completely willy-nilly.
Basically, I thought it would be an improvement over CVS's every file has
its own history. It really only gains that the repo is locked so all of
the changes happen together.
I thought the branches and directories melding was a neat idea, at first,
but have basically concluded it was actually a really bad idea.
Why can't the version-control repository detect file renames transparently?
Git does this, with limits. Like many other things in git, the detection
isn't done when you might think. The changes are just checked in,
essentially as delete/add. But, things that view the repo can detect the
renames, especially things that do merges. It has the distinct advantage
of allowing the git developers to improve the detection, and have existing
repositories have better rename detection.
For checkins that rename a handfull of files, it works extremely well.
Checkins that rename a whole bunch of files without editing them, it works
well. Checkins that edit a whole bunch of files while also changing them
it all kind of falls apart.
Dave
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list