Question

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

Was it helpful?

Solution

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.

OTHER TIPS

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)

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.

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.

Here's the documentation for the svn diff command.

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.

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

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top