On Tue, Sep 15, 2015 at 05:10:30AM -0400, Paul Hammant wrote: > OK, 'svn copy' makes branches. Most would follow the standard > trunk/tags/branches model. If you don't though, if you dip your toe into > the world of creative/arbitrary branch designs, it is not clear how you > catalog your branch mappings. By comparison, Perforce has branch-specs > (which are not perfect in themselves). > > Subversion doesn't make it easy to determine that a branch was formed from > a certain place. There's a stack overflow article - > http://stackoverflow.com/questions/4015412/how-to-find-the-common-ancestor-of-two-branches-in-svn > - that asks about determining ancestry, with no one-liner answer, and > certainly nothing in the subversion command set. > > Is there no simple "svn show-branch-ancestor url/path" operation in 1.9x? > > Subversion must know that info, as it is comfortable issuing quick > rejections to my commits: > > svn: E195016: 'svn://127.0.0.1/foo/three/test.txt@10' must be > ancestrally related to 'svn://127.0.0.1/foo@9' > > Thanks in advance,
svn log --stop-on-copy BRANCH_URL shows the first ancestor of a branch. That's not a graph of branches, though, and there's currently no interface to build one. But it could be built on to of the APIs (i.e. added to the svn client or as a standalone tool). A minor complication being that not all copies are branches. But that might not be a very huge issue. Just show all copies. And it might not perform very well unless the results for the known part of history are cached.