At work we use a branching strategy where all changes start off in a development branch, then subsequently make their way through one or more integration branches, and finally end up in a release branch.
Occasionally (more oft开发者_如何学编程en than I'd like) I find myself needing to figure out where a particular change originated (which development branch). In this case I have to spend a considerable amount of time playing detective to trace a change backwards through 2-3 merges.
Am I missing an easy way to do this?
With subversion 1.5 and higher a few commands have a -g option to use the megeinfo data to construct a more complete view of history. This does require you to have used subversion 1.5 or higher on the server and done all the merging with svn 1.5 or higher.
- svn log -g
- svn blame -g
A quick test shows that this doesn't work flawlessly (I have duplicate history entries on a fairly simple test case) but it may be good enough for what you need.
More on the new mergeinfo property:
http://svnbook.red-bean.com/nightly/en/svn.branchmerge.basicmerging.html
精彩评论