Diff --old --new: too many peg revision specifiers
From: Julian Foad <julianfoad_at_btopenworld.com>
Date: 2006-03-14 01:30:08 CET
We've got a nasty relic of a meaning of "-r" in "diff --old --new" syntax.
> $ svn diff --help
In syntax (1), "@REV" is a peg and "-r N" is an operative revision. Fine.
In syntax (2), "@OLDREV" and "@NEWREV" are pegs, and "-r N[:M]" provides
Furthermore, the "-c" option is even sillier, because it is intended to specify
I would like to delete the "-c" and "-r" options from syntax 2. It's an
2. diff --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \
This would be more in line with the corresponding forms of merge command:
usage: 1. merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
However, we have a duty to maintain compatibility with the older UI. In v1.0,
diff [-r N[:M]] [--old OLD-TGT] [--new NEW-TGT] [PATH...]
"-r" provided what we now call the peg revs.
The peg-rev notation was added in r9707, round about v1.1, changing the help to:
2. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \
That is when "-r" was made to provide "defaults" for the peg revs, in order to
At the very least I will get rid of "-c" in syntax 2, because it is just adding
I would also like to:
* error or warn if both "-r" and an "@" are specified, because that was
* deprecate "-r" by changing the help to say so
but those would both be incompatible UI changes. Would either of them be
In short, I'm trying to find a migration path from having this horrible meaning
Does anyone see any better steps along that road?
- Julian
---------------------------------------------------------------------
|
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.