2013-11-27 27 views
5

我一直在解決一些工具,處理Subversion提交從一個特定的存儲庫。Subversion沒有作者,日期和消息

雖然大多數修訂都正確顯示,「SVN日誌」返回一些修訂沒有作者,日期或消息:

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


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

我懷疑這是由於缺乏對特定文件的訪問權限改變的道路。難道這不僅僅是缺乏權限?

回答

2

缺少作者或日期不是權限問題的標誌。缺少日誌消息可能是權限問題的標誌。

首先Subversion實際上並不需要svn:author,svn:date或svn:log屬性實際上被設置爲任何東西。一般來說,如果沒有svn:author或svn:date,那麼最終不會有空,除非有人用propdel命令刪除了這些屬性(例如svn propdel svn:author --revprop -r 1234 $URL)。 Subversion試圖鼓勵你留下一條日誌消息,但你也可以給它一個空白的消息,除非它受到提交鉤子的限制。所以有人故意對修改進行修改是完全可能的。這也意味着你用來處理Subversion提交的任何工具應該能夠處理這些值的缺失。

如果您使用基於路徑的授權(authz-db with svnserve或AuthzSVNAccessFile with httpd),那麼您對由修訂修改的路徑的訪問權限可能會限制您可以看到的內容。

特別是:

  • 如果您有機會獲得所有的路徑,你會看到什麼,你問了,包括所有的修改路徑和所有版本的屬性。
  • 如果只能訪問某些路徑,則只會在使用-v時列出可以訪問的已更改路徑,並且只會看到svn:author和svn:date版本屬性。 svn:log將被隱藏,因爲它可能包含你無權訪問的文件的名稱。其他版本屬性(甚至是自定義屬性)也將被忽略。
  • 如果您無法訪問由修訂版更改的任何路徑,則修訂版將從日誌輸出中完全省略。
+0

謝謝Ben!這真是一個非常棒的答案! – Hakkar

相關問題