Philip Martin wrote: > Sergey Azarkevich <azarkev...@gmail.com> writes: > >> I see in pre-commit hook template that changing revisions properties in >> transaction are allowed. >> But I can't find way for it (I want change svn:author to more readable). >> >> Is here way for this with svn, svnadmin, svnlook ... or other standard >> tool? Or I should use Subversion API and write simple tool? > > I think we should provide command line support for setting txnprops. > The code is simple enough, the iterface is a bit harder. There was was > some debate on IRC as to whether it should be > > svnlook propset -t txn > > or > > svnadmin settxnprop -t txn
or svnadmin setrevprop -t txn is another reasonable option. > For svnlook it means adding a write subcommand to a program that at > present is read-only. If we add "-r REV" support to be consistent > with > other subcommands then we would then need further options to run/bypass > hooks. This would then overlap with the existing "svnadmin > setrevprop". > > For svnadmin it means that a pre-commit needs to use different programs > for reading and writing txnprops rather than just using svnlook, and the > name new name "settxnprop" is a different pattern from the existing > "propget" name. > > We will probably need some way to delete txnprops as well. There is > currently a new-in-1.9 "svnadmin delrevprop" to delete revision > properties, so either "svnlook propdel" or "svnadmin > deltxnprop". or, again, "svnadmin delrevprop -t TXN ...". > Or perhaps the new subcommand to set txnprops should allow a way to > delete as well? For reference, the rev-prop/txn-prop commands currently available in 'svnadmin' and 'svnlook' are: svnadmin setlog -r REV [--bypass-hooks] FILE setrevprop -r REV [--use-pre|post-revprop-change-hook] NAME FILE delrevprop -r REV [--use-pre|post-revprop-change-hook] NAME # new for 1.9 svnlook author [-t TXN|-r REV] date [-t TXN|-r REV] log [-t TXN|-r REV] propget [-t TXN|-r REV] --revprop NAME proplist [-t TXN|-r REV] --revprop Notice that there is already a lot of inconsistency in the commands and their options. 'svnlook' has so far been read-only, as the name 'svnlook' implies. That could change, although some people may be uncomfortable with that. An option to use or bypass the hooks is needed for commands that write to a rev-prop, but not applicable when writing to a txn-prop nor when reading any properties. The 'svn' program can also read/write rev-props, but it cannot access txn-props, and can't bypass the hooks. Note also that the commands for setting and querying locks are distributed between 'svnadmin' and 'svnlook' in a non-obvious way too. I mention this because locks are another of the three main sorts of user data in a repository, along with the versioned trees and rev-props. If we are going to make a decision about the user interface for reading and writing revprops, we might want to give some consideration to the UI for locks at the same time. - Julian