6 messages in com.perforce.revml[revml] underscorification & fewer wa...
FromSent OnAttachments
Matthew Attaway23 May 2001 13:39 
barries23 May 2001 17:00 
barries23 May 2001 19:52 
Matthew Attaway23 May 2001 19:57 
Matthew Attaway24 May 2001 00:06 
barries24 May 2001 04:35 
Subject:[revml] underscorification & fewer warnings when dying [Was: Some issues/thoughts]
From:barries (barr@slaysys.com)
Date:05/24/2001 04:35:25 AM
List:com.perforce.revml

On Thu, May 24, 2001 at 12:06:28AM -0700, Matthew Attaway wrote:

Can we preface tags with something like "tag_" instead? That'll give

Done & submitted. Thanks for testing.

I've been trying to cvs to p4 conversions, but I've ran into a problem. It just won't do it! Here's my standard command and the output I get:

% vcp "cvs:helm/... -r 1.1:" "p4://depot/main/..."

No need for the quotes.

Revision (-r) or date (-D) specification missing Usage: vcp cvs:path/... -r foo # all files in path and below

Note the " " between "-r" and "foo" :-/. The main vcp manpage SYNOPSIS had it wrong. The usage you got was extracted from VCP::Source::cvs' POD (because VCP::Source::cvs is what bonked it's head on the option), and that has it right. bin/vcp SYNOPSIS fixed and submitted. I also added

## NOTE: Unlike cvs, vcp requires spaces after option letters.

to the cvs usage page. Sorry for the misleading main mainpage.

That being said, cvs allows option values to cuddle up to the options; these two forms are equivalent:

cvs co -r foo Eesh cvs co -rfoo Eesh

p4 and vcp don't. It's an easy code tweak to vcp to allow it on all vcp options or just where cvs users would expect it (and not where it might bite p4 users). Varying behaviors throughout the same command line would be a bit confusing, but could be explained away by drawing parallels to the underlying commands' treatment of options. Enabling option value cuddling on the entire command line leaves us open to future problems.

The main reason vcp doesn't allow this cuddling is conservatism: allowing args to cuddle (using the Perl module Getopt::Long) means allowing bundling (meaning that "-r -d" == "-rd"), which introduces vagueness in the options processing that I'm afraid we might trip over when we come to some other command that bundles it's own, different, way than Perl's Getopt::Long.

We can enable bundling for good cause, but I'm hesitant to do it yet.

- Barrie