[p4] Versioning directories

jab jab at pobox.com
Tue Jun 1 17:51:39 PDT 2004


On Jun 1, 2004, at 4:11 PM, DAO, THOMAS (SBCSI) wrote:

> Some scm systems allow versioning of directories (Clearcase, 
> subversion)
> and some don't (CVS, perforce),
> Just wanted to know what the advantages are for versioning directories
> and why not.  Thanks

This is a long reply. Please forgive.

The question of "directories getting versioned" is really about 
implementation.
The high-level goal remains pretty obvious -- to be able to go back to 
a given
moment of time / event / milestone, and see exactly the state of the 
world as it
existed at that instant.

Some systems try to do it by versioning directories....

It's difficult to version a directory unless you can notice every 
file-level operation
that happens in that directory, as it happens. (The only SCM systems 
I've seen that
attempt directory-level versioning are virtual filesystem 
implementations, like
Clearcase, and the performance reflects that overhead.)

Others do it by versioning files, but making the act of retrieving the
set of files (at the right revisions) very, very fast...

The "Perforce" strategy optimizes the most common cases, and to make it 
easy
to "retrieve the world as it existed as of a certain date, milestone, 
event". In this
case, they do it by turning the date/milestone/event into a list of 
files/revisions
very quickly. (Relational databases, for well-designed applications, 
are great things.)

There are a few "edge" conditions for each strategy. Renaming of files 
can be a
headache, as can additions/deletions.

	-Jeff Bowles







More information about the perforce-user mailing list