On Tue, Feb 19, 2019 at 2:09 PM Daniel Shahaf <d...@daniel.shahaf.name> wrote:
> Mark Phippard wrote on Tue, 19 Feb 2019 18:30 +00:00: > > One idea that occurred to me would be adding a new value of %W that is > > similar to %P except the path is relative to the root of the working > > copy. Assuming that is generally the root of your project, such as > > /trunk this would give the sort of path you desire. I do not know if > > there would be any general objections to a value that varied so easily > > based on something as arbitrary as the working copy root though. That > > said, given that keywords are only expanded in the working copy it does > > not seem unreasonable to hand this decision over to the user. > > I'm not a fan of this. Shrug. I've never seen the point of the entire feature and do not have any plans to ever use it for any keyword. The working copy root can be either above or > below the usual/customary level for creating the tag: when rolling a > Subversion release my wcroot may be ^/subversion, > ^/subversion/branches/1.11.x, or > ^/subversion/branches/1.11.x/tools/dist. Ultimately, it's a random > environmental value, like ~/.subversion/config settings. Any workflow > that diffs these files using anything other 'svn diff' — for example, > diff(1) > or rsync — is going to run into the differences. (For example, our release > I tend to think "so what". All that means is that we would not be using this keyword just as we do not use the vast majority of them. We barely use keywords and do not use custom keywords at all: $ svn pg -R svn:keywords . INSTALL - LastChangedDate README - LastChangedDate contrib/cgi/mirror_dir_through_svn.cgi - HeadURL LastChangedBy LastChangedDate LastChangedRevision contrib/client-side/asvn - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/client-side/diff-wrap.sh - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/client-side/emacs/psvn.el - Id contrib/client-side/svn-merge-vendor.py - HeadURL Id LastChangedBy LastChangedDate LastChangedRevision contrib/client-side/svn_all_diffs.pl - HeadURL LastChangedBy LastChangedDate LastChangedRevision contrib/client-side/svn_apply_autoprops.py - HeadURL LastChangedBy LastChangedDate LastChangedRevision contrib/client-side/svn_export_empty_files.py - HeadURL LastChangedBy LastChangedDate LastChangedRevision contrib/client-side/svn_load_dirs/LICENSE_AFL3.txt - HeadURL Id LastChangedBy LastChangedDate LastChangedRevision contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in - HeadURL LastChangedBy LastChangedDate LastChangedRevision contrib/client-side/svnmerge/svnmerge-migrate-history-remotely.py - HeadURL Author Date Rev contrib/client-side/svnmerge/svnmerge-migrate-history.py - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/client-side/svnmerge/svnmerge.README - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/client-side/svnmerge/svnmerge.py - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/client-side/svnmerge/svnmerge.sh - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/hook-scripts/case-insensitive.py - HeadURL Id LastChangedBy LastChangedDate LastChangedRevision contrib/hook-scripts/commit-email.pl.in - HeadURL LastChangedBy LastChangedDate LastChangedRevision contrib/hook-scripts/detect-merge-conflicts.sh - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/hook-scripts/svn-keyword-check.pl - HeadURL LastChangedBy LastChangedDate LastChangedRevision contrib/server-side/add-needs-lock.py - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id contrib/server-side/fsfsfixer/fixer/fix-rev.py - Date Revision URL notes/api-errata/1.10/ra001.txt - Id notes/api-errata/1.10/svnserve001.txt - Id notes/api-errata/1.7/ra001.txt - Id notes/api-errata/1.7/wc001.txt - Id notes/api-errata/1.7/wc002.txt - Id notes/api-errata/1.7/wc003.txt - Id notes/api-errata/1.7/wc004.txt - Id notes/api-errata/1.7/wc005.txt - Id notes/api-errata/1.7/wc006.txt - Id notes/api-errata/1.7/wc007.txt - Id notes/api-errata/1.8/fs001.txt - Id notes/api-errata/1.9/fs001.txt - Id notes/hold - Date notes/merge-tracking/design.html - date notes/merge-tracking/func-spec.html - date notes/merge-tracking/requirements.html - date notes/repos_upgrade_HOWTO - LastChangedDate notes/variance-adjusted-patching.html - date subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c - Id subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h - Id subversion/include/private/svn_error_private.h - HeadURL Id LastChangedBy LastChangedDate LastChangedRevision tools/backup/hot-backup.py.in - HeadURL LastChangedBy LastChangedDate LastChangedRevision Id tools/dev/gen_junit_report.py - Id tools/dev/iz/find-fix.py - Rev tools/dev/which-error.py - HeadURL LastChangedDate LastChangedBy LastChangedRevision tools/examples/svnlook.py - URL Date Revision tools/hook-scripts/commit-access-control.cfg.example - Id tools/hook-scripts/commit-access-control.pl.in - HeadURL LastChangedDate LastChangedBy LastChangedRevision tools/hook-scripts/mailer/mailer.conf.example - Id tools/hook-scripts/mailer/mailer.py - HeadURL LastChangedDate LastChangedBy LastChangedRevision tools/hook-scripts/mailer/tests/mailer.conf - Id tools/hook-scripts/reject-detected-sha1-collisions.sh - Id tools/hook-scripts/reject-known-sha1-collisions.sh - Id tools/hook-scripts/svn2feed.py - HeadURL Id LastChangedBy LastChangedDate LastChangedRevision tools/hook-scripts/svnperms.conf.example - Id tools/hook-scripts/svnperms.py - HeadURL LastChangedDate LastChangedBy LastChangedRevision tools/po/l10n-report.py - URL Author Date Rev Id tools/server-side/fsfs-reshard.py - HeadURL Id LastChangedBy LastChangedDate LastChangedRevision win-tests.py - HeadURL Id LastChangedBy LastChangedDate LastChangedRevision I would not spend any effort myself on this feature but if someone wanted to contribute it, I would not be against it. There were discussions of this back in 2011/2012, for example, about > recursing upwards to the nearest path-wise ancestor that has an > svn:branchroot=yes property set, or the nearest path-wise ancestor that > is a copyfrom-wise descendant of trunk (i.e., has the same node-id as > trunk's noderev). [1] This has the advantage that the keyword will be > expanded in the same way in all working copies, and even in > mod_dav_svn [2]. > This would be fine but we also both know that this discussion always just leads nowhere and will probably never be implemented. I certainly could not see us adding this property just to support this one single feature. -- Thanks Mark Phippard http://markphip.blogspot.com/