SVN branch compare
How do I compare one branch with another? I want to compare a开发者_StackOverflow社区 branch with the latest revision in trunk.
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.
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.
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.
精彩评论