Reputation: 1453
In our subversion repository changes are done often in one or several feature branches but also in the trunk. Before we release the next version to the test department we would like to check if any file got changed in any branch but did not yet get merged to the trunk. Also sometimes we would just have a list of all revisions, whether in the trunk or any branch, in which a specific file got modified, so we can review all commits (not just the one big commit created by the merge back to the trunk).
Example: There is a file called /trunk/src/main.c
and several branches of /trunk
. Now src/main.c
is changed in /trunk/
but also in /branches/feature99/src/main.c
. I now want to get a list or graph which shows me a) that there are outstanding changes in a branch (i.e. there was no merge to the trunk afterwards) and b) all revision which main.c
(in any branch) got changed.
Is there a tool which shows this, best in a nice graph or list? This can be on a per-file base, but if we could get a list of all files with committed modification not yet merged to the trunk it would be even better.
The Revision Graph created by TortoiseSVN comes close if used on a single file or a directory, but for example doesn't show a merge.
I realize that this requires scanning of the whole repository as this information is not available directly in the svn repo DB.
Upvotes: 5
Views: 1483
Reputation: 10931
Assuming you have merge tracking enabled in your repo, svn mergeinfo --show-revs eligible
will show you the revisions on a branch since the last merge - i.e. those eligible for a merge.
Then to drill a little deeper, svn mergeinfo --show-revs eligible --log
includes the log entries, then add -v
too to list the modified files.
svn mergeinfo http://host/svn/branches/b1 http://host/svn/trunk --show-revs eligible --log -v
------------------------------------------------------------------------
r7 | username | 2018-04-09 21:31:21 +0100 (Mon, 09 Apr 2018) | 1 line
Changed paths:
M /branches/b1/dir/file.txt
Second change on b1
------------------------------------------------------------------------
Just in case it's not familiar, with TortoiseSVN, the svn
command is available at such as C:\Program Files\TortoiseSVN\bin
- hopefully already on your path.
Upvotes: 4