Bruce Stephens wrote:
"Dmitry Kakurin" <[EMAIL PROTECTED]> writes:
  
I also wonder why keeping track of dirs is necessary. Perforce (for
example) gets away with only keeping track of files and creates dirs
on demand.
    
Monotone did that (pre 0.26).  It turned out that tracking directories
as well would make some things better.
It's definitely better.  Since Perforce can't tell the difference between a file and a directory, sooner or later you always seem to wind up with a file checked in that shares the name of a directory.  Back in the day when I used Perforce (2002.1 iirc), if you said
    p4 add foo
and foo was a subdirectory, Perforce would just *assume* it was a file.  An unpleasant shock for the first-time user coming from another SCM that does explicitly support directories.

But even the seasoned Perforce user might stumble across this; if they ran
    p4 add *
it would happily add *all* the subdirectories.

Once a directory is checked in, it becomes a race to see who gets created first, the "foo" file or the "foo" directory.  Whichever one wins the race means the other one loses ("can't write file"), at which point the checkout fails.  Now you have to fix it in the repository before you can checkout, as you mutter quietly to yourself about SCMs that don't understand freaking *subdirectories*, they've only been around for more than thirty years, grumble grumble grumble.

I believe they had a hack that said "if the last character of a file specified to p4 add is a /, ignore it", relying on the globbing of some shells that add the slash there.  Globbing under Windows doesn't add that, so that didn't help me.  I dimly wonder if they have a better fix in place now, but I stopped following Perforce years ago.


larry


_______________________________________________
Monotone-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/monotone-devel

Reply via email to