Martin Scharrer
Martin Scharrer

Reputation: 1453

Show which files got changed in any SVN branch but did not yet get merged to the trunk

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

Answers (1)

df778899
df778899

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

Related Questions