(following on from my message from 16 hrs ago)
I'd make a Jenkins job that ran ...
svn up -q
repoRoot=$(svn info | grep "^URL: " | sed "s/URL: //")
rm -f .branch_mappings
for f in *; do
svn ls "$repoRoot/$f" --depth immediates > .immediates
while read p; do
svn -q log --verbose --stop-on-copy "$repoRoot/$f/$p" -r1:HEAD -l1 2>&1
| grep " (from " | grep "^ A " | sed "s/^ A //" | sed "s/ (from /::/"
| sed "s/:[[:digit:]]*)$//" >> .branch_mappings
done <.immediates
done
... in a ROOT working copy that had originally been checked out via ...
svn co REPO-ROOT subversion --depth immediates
It gives you this for the Subversion root:
/subversion/branches/1.0.x::/subversion/branches/1.0-stabilization
/subversion/branches/1.1.x::/subversion/trunk
/subversion/branches/1.2.x::/subversion/trunk
/subversion/branches/1.3.x::/subversion/trunk
/subversion/branches/1.4.x::/subversion/trunk
/subversion/branches/1.5.x::/subversion/trunk
/subversion/branches/1.6.x::/subversion/trunk
/subversion/branches/1.6.x-issue4340-repos::/subversion/branches/1.6.x
/subversion/branches/1.6.x-r1138375::/subversion/branches/1.6.x
/subversion/branches/1.6.x-serf-1-win32::/subversion/branches/1.6.x
/subversion/branches/1.7.x::/subversion/trunk
/subversion/branches/1.7.x-VS2015-neon::/subversion/branches/1.7.x
/subversion/branches/1.7.x-issue4340-repos::/subversion/branches/1.7.x
/subversion/branches/1.7.x-issue4554::/subversion/branches/1.7.x
/subversion/branches/1.7.x-r1438879::/subversion/branches/1.7.x
/subversion/branches/1.7.x-r1542765::/subversion/branches/1.7.x-r1542765
/subversion/branches/1.7.x-r1643074::/subversion/branches/1.7.x
/subversion/branches/1.7.x-r1646250::/subversion/branches/1.7.x
/subversion/branches/1.7.x-r1659867::/subversion/branches/1.7.x
/subversion/branches/1.8.x::/subversion/trunk
/subversion/branches/1.8.x-httpd-version-tests::/subversion/branches/1.8.x
/subversion/branches/1.8.x-issue4390::/subversion/branches/1.8.x
/subversion/branches/1.8.x-issue4554-v2::/subversion/branches/1.8.x
/subversion/branches/1.8.x-r1536854::/subversion/branches/1.8.x
/subversion/branches/1.8.x-r1702299::/subversion/branches/1.8.x
/subversion/branches/1.9-cache-improvements::/subversion/trunk
/subversion/branches/1.9-moves::/subversion/trunk
/subversion/branches/1.9.x::/subversion/trunk
/subversion/branches/1.9.x-r1700215::/subversion/branches/1.9.x
/subversion/branches/SVNParentPathTemplate::/subversion/trunk
/subversion/branches/artem-soc-work::/subversion/trunk
/subversion/branches/auth-notification::/subversion/trunk
/subversion/branches/authz-overhaul::/subversion/trunk
/subversion/branches/authzperf::/subversion/trunk
/subversion/branches/automatic-pager::/subversion/trunk
/subversion/branches/bdb-fixes::/subversion/trunk
/subversion/branches/capabilities-abstraction::/subversion/trunk
/subversion/branches/compressed-pristines::/subversion/trunk
/subversion/branches/cxxhl::/subversion/trunk
/subversion/branches/diff-cmd-feature::/subversion/trunk
/subversion/branches/diff-improvements::/subversion/trunk
/subversion/branches/ev2-export::/subversion/trunk
/subversion/branches/fs-progress::/subversion/trunk
/subversion/branches/fs-py::/subversion/trunk
/subversion/branches/fs-successor-ids::/subversion/trunk
/subversion/branches/fsfs-ucsnorm::/subversion/trunk
/subversion/branches/hold::/subversion/trunk
/subversion/branches/ignore-mergeinfo::/subversion/branches/ignore-prop-mods
/subversion/branches/ignore-mergeinfo-log::/subversion/trunk
/subversion/branches/invoke-diff-cmd-feature::/subversion/trunk
/subversion/branches/invoke-diff3-feature::/subversion/branches/invoke-diff-cmd-feature
/subversion/branches/issue-2699-dev::/subversion/trunk
/subversion/branches/issue-2897::/subversion/trunk
/subversion/branches/issue-3081::/subversion/trunk
/subversion/branches/issue-3348-dev::/subversion/trunk
/subversion/branches/issue-3550-dev::/subversion/trunk
/subversion/branches/issue-3668-3669::/subversion/trunk
/subversion/branches/issue-4116-dev::/subversion/trunk
/subversion/branches/javahl-1.8-extensions::/subversion/branches/1.8.x
/subversion/branches/log-message-templates::/subversion/trunk
/subversion/branches/master-passphrase::/subversion/trunk
/subversion/branches/mod-dav-svn-expressions::/subversion/trunk
/subversion/branches/move-tracking-1::/subversion/trunk
/subversion/branches/move-tracking-2::/subversion/trunk
/subversion/branches/moves-scan-log::/subversion/trunk
/subversion/branches/object-model::/subversion/object-model
/subversion/branches/obliterate-like-deltify::/subversion/trunk
/subversion/branches/patch-exec::/subversion/trunk
/subversion/branches/perl-bindings-improvements::/subversion/trunk
/subversion/branches/python-3-compatibility::/subversion/trunk
/subversion/branches/ra-git::/subversion/trunk
/subversion/branches/ra_serf-stream-commit::/subversion/trunk
/subversion/branches/record_exact_merge_and_commit_revs::/subversion/trunk
/subversion/branches/reintegrate-keep-alive::/subversion/trunk
/subversion/branches/remove-log-addressing::/subversion/trunk
/subversion/branches/reuse-ra-session::/subversion/trunk
/subversion/branches/revprop-caching-ng::/subversion/trunk
/subversion/branches/revprop-packing::/subversion/trunk
/subversion/branches/scheme-bindings::/subversion/trunk
/subversion/branches/scons-build-system::/subversion/trunk
/subversion/branches/server-l10n::/subversion/trunk
/subversion/branches/showing-merge-info::/subversion/trunk
/subversion/branches/status--filter::/subversion/trunk
/subversion/branches/svn-bisect::/subversion/trunk
/subversion/branches/svn-file::/subversion/trunk
/subversion/branches/svnserve-ssl::/subversion/trunk
/subversion/branches/thunder::/subversion/trunk
/subversion/branches/tree-read-api::/subversion/trunk
/subversion/branches/windows-build-update::/subversion/trunk
/subversion/branches/youngest-common-ancestor::/subversion/trunk
/subversion/developer-resources/difftools::/subversion/trunk/notes/difftools
/subversion/developer-resources/guis::/subversion/trunk/notes/guis
/subversion/developer-resources/difftools::/subversion/trunk/notes/difftools
/subversion/developer-resources/guis::/subversion/trunk/notes/guis
/subversion/developer-resources/obsolete-notes/draft-korn-vcdiff-01.txt::/subversion/trunk/notes/old/draft-korn-vcdiff-01.txt
/subversion/developer-resources/obsolete-notes/vcdiff-karlnotes::/subversion/trunk/notes/old/karlnotes
/subversion/site/publish/.htaccess::/subversion/site/.htaccess
/subversion/site/publish/banner.html::/subversion/site/banner.html
/subversion/site/publish/favicon.ico::/subversion/site/favicon.ico
/subversion/site/publish/footer.html::/subversion/site/footer.html
/subversion/site/publish/index.html::/subversion/site/index.html
/subversion/site/publish/mailing-lists.html::/subversion/site/mailing-lists.html
/subversion/site/publish/site.css::/subversion/site/site.css
/subversion/site/publish/template.html::/subversion/site/template.html
/subversion/svn-logos/README.html::/subversion/svn-logos/README.contest.html
/subversion/tags/0.10.0::/subversion/tags/0.10
/subversion/tags/0.15.0::/subversion/tags/0.15
(and a lot of other tags mappings)
For my purposes I would check in that .branch_mappings file and keep it
fresh by running the Jenkins job a couple of times a day.
- Paul
Received on 2015-09-16 02:13:03 CEST