RE: Showing unmerged revisions within a range

2014-02-07 Thread Bob Archer
 I created a branch (4.0.x) from trunk. Work progressed on trunk and was
 selectively merged down to the 4.0.x branch.
 
 The intent was to do our next release off this branch and then kill it.
 Subsequent releases would come from the trunk (or branches thereof).
 
 Unfortunately plans changed, and we needed to clone the 4.0.x branch to
 produce a 4.0.2 branch. Subsequent changes were made on the trunk and
 merged individually to each branch.
 
 We've since released 4.0.2, and so I want to kill the 4.0.2 branch.
 Before doing that, I want to ensure that all changes which were merged from
 the trunk to the 4.0.2 branch also made it to the 4.0.x branch.
 
 I tried the following:
 
 % svn log --stop-on-copy ${Repository Root}/branches/4.0.2 [ ...snip... ]
 
 r202859 | kyle | 2014-01-29 11:50:48 -0800 (Wed, 29 Jan 2014) | 2 lines
 
 % svn info
 Path: .
 URL: ${Repository Root}/branches/4.0.x
 
 % svn mergeinfo -r202859:HEAD --show-revs=eligible $Repository
 Root}/branches/4.0.2 .
 svn: E195008: Revision range is not allowed
 
 
 Why does mergeinfo say revision range is not allowed when svn help
 mergeinfo lists --revision under Valid options?

The help says:

(some commands also take ARG1:ARG2 range)

Did you not get what you wanted without specifying a range?

Hmm... I just tried it and didn't get that error:

svn mergeinfo -r6000:HEAD --show-revs eligible 
http://myserver/svn/manage/MyAppRootName/v7.5.4
r60148
r60155
r60156
r60157
r60158

I'm using 1.8.4.

BOb



Re: Showing unmerged revisions within a range

2014-02-07 Thread Kyle Sluder
On Fri, Feb 7, 2014, at 03:37 PM, Bob Archer wrote:
 The help says:
 
 (some commands also take ARG1:ARG2 range)
 
 Did you not get what you wanted without specifying a range?

Hmm, that looks promising:

% svn mergeinfo --show-revs=eligible -r202859 ${Repository
Root}/branches/4.0.2
r202880
r202890
[ ... snip ... ]


And if I replace the …branches/4.0.2 with …trunk, I can see all the
revisions that haven't been merged from trunk yet.


 I'm using 1.8.4.

Ah, relevant information I should have included: I'm using svn 1.7.10
(the version bundled with the latest stable release of Xcode).


Thanks for the assistance,
--Kyle Sluder


Re: Showing unmerged revisions within a range

2014-02-07 Thread Kyle Sluder
On Fri, Feb 7, 2014, at 04:18 PM, Kyle Sluder wrote:
 And if I replace the …branches/4.0.2 with …trunk, I can see all the
 revisions that haven't been merged from trunk yet.

Hmm, I spoke too soon:

% svn mergeinfo --show-revs=eligible -r202859 ${Repository Root}/trunk
r200832
r200833
r200836
r200837
[ ... snip ...]

Notice that -r200832 is much earlier than the r202859 argument which was
passed on the command line.

My wild guess is that r200832 was merged to trunk sometime after
r202859? I don't know. Searching the commit log history turns up no such
results.

--Kyle Sluder


Re: Showing unmerged revisions within a range

2014-02-07 Thread Ben Reser
On 2/7/14, 4:28 PM, Kyle Sluder wrote:
 % svn mergeinfo --show-revs=eligible -r202859 ${Repository Root}/trunk
 r200832
 r200833
 r200836
 r200837
 [ ... snip ...]
 
 Notice that -r200832 is much earlier than the r202859 argument which was
 passed on the command line.
 
 My wild guess is that r200832 was merged to trunk sometime after
 r202859? I don't know. Searching the commit log history turns up no such
 results.

Unfortunately the -r option on mergeinfo in 1.7 doesn't do anything.
http://subversion.tigris.org/issues/show_bug.cgi?id=4199

This is fixed in 1.8.0 and newer.  I'd suggest installing a build of 1.8.5:
https://subversion.apache.org/packages.html#osx

Also be careful mergeinfo needs a source and a target.  You're only providing a
single argument there which will be treated as your source and your current
working copy will be used to determine the target.

What's not clear to me is why you're using the revision range the way you are.
 Your goal is to make sure anything that was merged to 4.0.2 was also merged to
4.0.x.  So I'd probably do the following:

svn mergeinfo --show-revs=merged $REPO/trunk $REPO/branches/4.0.2 
merged-4.0.2.txt
svn mergeinfo --show-revs=merged $REPO/trunk $REPO/branches/4.0.x 
merged-4.0.x.txt
diff -u 4.0.2.txt 4.0.x.txt

If you get + lines from the diff output that's changes that were merged to
4.0.x that weren't merged to 4.0.2 (which is likely ok).  If you get - lines
then you've got changes merged to 4.0.2 that weren't merged to 4.0.x.  That is
likely the things you were looking for.  If 4.0.x and 4.0.2 weren't branched
off the same point then you'll have some spurious differences.  For instance if
4.0.x has been made off a new revision of trunk than 4.0.2 was then you'll see
changes merged from trunk to 4.0.2 that are included since they were made
before the branch point, in which case you can safely ignore revisions that
exist before the branch point (you see to know how to find the branch point
with --stop-on-copy so I won't repeat that).

This might be a good use for the revision range on the mergeinfo to exclude the
changes merged to from 4.0.x but you appear to be trying to use the branch
point for 4.0.2 which isn't what you'd want.  Unless of course 4.0.2 is newer
than 4.0.x but it doesn't sound like that's the case.

Finally, save yourself some trouble and learn the ^/ syntax:
https://subversion.apache.org/docs/release-notes/1.5.html#externals-relative-urls


Re: Showing unmerged revisions within a range

2014-02-07 Thread Ben Reser
On 2/7/14, 10:45 PM, Ben Reser wrote:
 Finally, save yourself some trouble and learn the ^/ syntax:
 https://subversion.apache.org/docs/release-notes/1.5.html#externals-relative-urls

And it's clearly too late since I linked to the wrong relative URL release
note.  I meant:
https://subversion.apache.org/docs/release-notes/1.6.html#repository-root-relative-urls