SVN branch compare

SvnBranchDiffBranching and-Merging

Svn Problem Overview


How do I compare one branch with another? I want to compare a branch with the latest revision in trunk.

Svn Solutions


Solution 1 - Svn

You could start with:

svn diff http://REPOS/trunk http://REPOS/branches/B

(Where http://REPOS is your repository path including the parents of trunk and branches.)

This will print a large quantity of text, including all the textual changes but not the binary changes except to say where and when they occurred.

Solution 2 - Svn

If you are just looking for high level of what files are different and do not want to see all the contents, use:

svn diff ^/trunk ^/branches/dev --summarize

(This compares trunk and dev branch)

Solution 3 - Svn

I usually check out the two branches (or the branch and the trunk) into directories. Then I use a graphical tool like Kompare or similar (depending on your preferences, operating system,...). This is really helpful for me when I need to perform complex merges.

Solution 4 - Svn

As lack of reputation won't let me add this as a comment against an existing answer, I'm having to add it as a separate one.

A useful option to svn diff for me was --ignore-properties. My two branches had ended up identical code wise, but with different merge histories.

Using --ignore-properties allowed me to prove to myself that this was the case, without wading through the large quantity of "svn:mergeinfo" property changes.

Solution 5 - Svn

Thanks for the info guys, I would add something to improve the readability of the diff results.If you used: svn diff svn://url:9090/branches/PRD_0002 svn://url:9090/branches/TST_0003 >svn_diff_filename.txt

You can use: findstr "Index:" C:\path\svn_diff_filename.txt >svn_diff_file_list.txt

That will bring you a readable list of files that have any differences.

Solution 6 - Svn

Here's a post from Murray Cumming which describes the non-obvious process:

  • Discover the revision numbers: You need to know the revision numbers of the latest versions in each of the branches. It looks like svn log is the only way to do that.
  • cd into one of the branch directories, such as trunk.
  • Supply the revision numbers to the svn diff command: svn diff -r123:145

Solution 7 - Svn

To diff between two revisions of a branch:

svn diff -r rLATEST:rOLD

Use svn log to get the different revisions. Use can limit the number of revisions in the log using svn log -l 5. only the last 5 revisions will be shown.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiontekumaraView Question on Stackoverflow
Solution 1 - SvnEdmundView Answer on Stackoverflow
Solution 2 - SvncchamberlainView Answer on Stackoverflow
Solution 3 - SvnCMorganView Answer on Stackoverflow
Solution 4 - SvnMichael FirthView Answer on Stackoverflow
Solution 5 - SvnKra.View Answer on Stackoverflow
Solution 6 - SvnStefView Answer on Stackoverflow
Solution 7 - Svnarush436View Answer on Stackoverflow