Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Subversion no author, date and message

Tags:

svn

I have been troubleshooting some tools that process Subversion commits from a particular repository.

While most revisions are correctly displayed, 'svn log' returns some revisions with no author, date or message:

svn log http://myrepository.com -r 123456
------------------------------------------------------------------------
r123456 | (no author) | (no date) | 1 line


------------------------------------------------------------------------

I suspect this is due to a lack of access permissions for particular files on the changed path. Could this be something more than simply a lack of permissions?

like image 334
Hakkar Avatar asked Oct 21 '22 20:10

Hakkar


1 Answers

The lack of a author or date is not a sign of a permissions problem. The lack of a log message may be a sign of a permissions problem.

First of all Subversion does not actually require the svn:author, svn:date or svn:log properties actually be set to anything. In general you won't end up with a commit without a svn:author or svn:date empty unless someone has removed the properties with the propdel command (e.g. svn propdel svn:author --revprop -r 1234 $URL). Subversion tries to encourage you to leave a log message but you can also give it a blank one unless that's limited by commit hooks. So it's entirely possible that someone intentionally made those changes to the revision. This also means that any tools you're using to process Subversion commits should be able to handle the lack of these values.

With respect to permissions if you're using path based authorization (authz-db with svnserve or AuthzSVNAccessFile with httpd) then your access to the paths modified by the revision may limit what you can see.

In particular:

  • If you have access to all paths you'll see anything you ask for including all the changed paths and all the revision properties.
  • If you have access to only some paths you'll only see the changed paths you have access to listed when using -v and only the svn:author and svn:date revision properties. svn:log will be hidden since it may contain the names of the files you don't have access to. Other revision properties (even custom ones) will be omitted as well.
  • If you have no access to any of the paths changed by the revision then the revision will be omitted entirely from the output of log.
like image 69
Ben Reser Avatar answered Nov 08 '22 06:11

Ben Reser