On 23.10.2013 18:45, Julian Foad wrote:
> Julian Foad wrote:
>
>> Branko Čibej wrote:
>>> Another option -- somewhat less dependent on a completely new
>>> feature -- might be this:
>>>
>>> svn diff -rROOT:HEAD
>> Well, you haven't ascribed a meaning to that syntax. If you mean it should
>> compare the "root of the branch" with the "tip" of the same
>> branch, then no, that's not what we're looking for. We're looking
>> for (that diff) MINUS (whatever's been merged onto that branch from trunk).
> ... alternatively, if "root of the branch" means "base of last merge between trunk and branch" (assuming the last merge was trunk-to-branch, that's the same as "last point on trunk that you caught up to"), then yes that's what I mean.
Here's a more complete proposal:
Introduce two new revision keywords:
* ROOT (alternatively: CREATED)
Represents the revision in which a directory was originally created.
This is different from the revision reported by 'svn log
--stop-on-copy' in that it will "see through" any renames of that
directory.
When used in the context of a branch, it effectively represents the
branchpoint revision.
* MERGED
Only relevant in the context of a branch. Represents the latest
revision in which a merge was made to the branch. This revision may
depend on a discriminator parameter, which is a branch URL, such
that the result is the revision of the latest merge from that branch.
Example usage:
* svn info
o 'svn info -rROOT' or 'svn info -rCREATED'
Returns information about the revision in which the directory
was created; i.e., the branchpoint revision. Works with any
directory, wether WC path or URL.
Note: Better than the --stop-on-copy trick, since it doesn't
trip over renames.
o 'svn info -rMERGED'
Returns info about the latest revision in which a merge to a
branch was committed. Works only with branches (i.e.,
directories that contain [inherited] mergeinfo).
* svn diff
o svn diff -rMERGED:HEAD
Shows changes on a branch that were made after the last merge.
o svn diff -rMERGED:HEAD ^/other/branch
As above, but shows changes since the last merge from ^/other/branch
o svn diff ^/first/branch_at_MERGED ^/second/branch_at_MERGED
Shows changes made on the branch between the last merges from
^/first/branch and ^/second/branch. This one could be tricky to
fit into the other diff syntaxes. (Sometimes I wish we'd allowed
more than one -r option per command.)
There are probably more scenarios where these keywords would be useful.
Incidentally, their use is not limited to directories; files are
branches, too.
Not a complete. formal proposal by any means, but I'm sure it could be
made so if we like it.
-- Brane
--
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. brane_at_wandisco.com
Received on 2013-10-23 20:07:04 CEST