On Sun, August 19, 2007 8:12 pm, Tracy R Reed wrote:
> Lan Barnes wrote:
>> Branches. Tags. Stored metadata. Jobs. Change sets. Top of my head ...
>
> I am still trying to figure out if you mean that svn doesn't have
> branches and tags in general or if you mean that it doesn't do them the
> way cvs did.
>
>
cvs wasn't much better.
Done properly, all these artifacts {Branches. Tags. Stored metadata. Jobs.
Change sets.} are stored in the data base so that the information can be
recovered/manipulated in data base time. svn tries to emulate those of
these artifacts that it fakes through its copy facility. It's like they
built copy, fell in love with it, and decided it could stand in for
everything else. Sure, they're "smart" copies, but it still doesn't cut
it.
Let's take a tag/label. In p4 I create the label record, with date, time,
notes, my name, whatever else I want to say about it; then I (in one
atomic operation) create a record with the fully qualified path to each
unique artifact in the code set for that label, including directory
structure changes. Depending on how I create the label, I can keep track
of which aritfacts were deleted from the previous code set to make the new
one, so I can later use the label to remove files that don't belong in a
sandbox.
Although it's easiest to populate a label at the moment that a sandbox
matches what I want lableled, I can create a label after the fact by doing
a label-on-label tagging and adding/subtracting/moving the new label on a
subset of artifacts. I can compare the contents of two labels in a data
base operation. So if a particular build becomes a release, I can record
that easily w/o needing to make yet another copy of the code.
I can apply a lock on the label records that only I or an admin can move.
In svn, at the time I want to make a label, I make a lazy copy (pointers
to the file set may substitute for actual files). If I want to move the
label on any artifact, I have to change the artifact in the label copy. I
cannot make a label-on-label tag. I cannot compare the contents of two
labels without a utility like windiff. Instead of a "real" label, I have a
snapshot, a set of files I set aside to remember how the code looked at
one time.
As a tool, what svn has is pretty good, but what's been left out is very
real.
--
Lan Barnes
SCM Analyst Linux Guy
Tcl/Tk Enthusiast Biodiesel Brewer
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list