2012-04-10 97 views
4

我想給給定文件的顛覆日誌或歷史記錄添加註釋,但沒有與該文件關聯的更改。添加評論到顛覆而不更改文件?

有沒有一種方法可以在svn日誌中添加或註釋註釋,而不需要實際更改文件。

我正在尋找一種方法來在發生某些事件後在日誌中標記文件,例如代碼審閱。

我不想做一個svn副本來創建一個全新的分支。我只想在某個時間點與單個文件關聯的評論。

此處有任何建議嗎?

+0

http://stackoverflow.com/questions/304383/how-如果可能的話,請考慮切換到git;如果可能的話,請考慮切換到git。它是更強大的(見git修改) – Stephan 2012-04-10 16:23:29

+0

爲了澄清,我不在尋找編輯現有日誌條目的細節,我想添加一個新的條目。 – 2012-04-10 16:33:37

+0

附加:在這種情況下,切換離開SVN不是一種選擇。切換到其他源代碼管理產品不在本項目的範圍內。 – 2012-04-10 16:34:21

回答

3

您可以在應該提交的文件上設置/更改用戶定義的屬性 - 即僅更改一些元數據而不會導致副作用。

svn propset my:log reason filename 
svn commit filename 
+0

這看起來很有前途。我會試一試。我嘗試後會讓你知道。謝謝! – 2012-04-10 17:55:07

+0

非常好。這是做的工作。謝謝! – 2012-04-10 18:43:00

5

在Subversion中,有兩種類型的屬性:

  • 文件屬性:這些是與文件相關聯的屬性。它們被修改,就好像它們是文件本身的一部分。
  • 修訂屬性:這些屬性與個別修訂相關。每個修訂只能有一種屬性。它們沒有版本,所以更改修訂版本屬性將丟失關於舊信息的歷史信息。爲了安全起見,如果不先創建允許您執行此操作的pre revprop-change鉤子,則無法更改修訂版屬性。

最重要的是,是有相當重要的每個版本相關的三個特殊的版本屬性:

  • svn:log:這是提交信息
  • svn:date:這是提交完成的日期和時間。
  • svn:author:這是做了提交的用戶。

所以,問題是你在做什麼。如果您想爲文件添加註釋,則可以將文件屬性添加到該文件。但是,這被認爲是文件更改,因此您必須執行結帳,然後在該文件上創建一個新版本的提交。

如果您想在存儲庫中的特定修訂版本中添加新評論,則不必創建新修訂即可。但是,您必須創建一個pre-revprop-commit鉤子文件,以便您進行這些修改。你有這樣的兩種方式:

  • 修改svn:log與您的評論這可能是最簡單的方法。但是,提交消息中的更改不會被記錄,因此您會丟失流程中的原始提交消息。其優點是,該註釋將通過svn:log命令自動顯示。

例如:

$ old_comment=$(svn pget -r 100 -revprop svn:log http://myhost/svn/repos) 
$ new_comment="$old_comment 
> ================ COMMENT ON REVISION ================ 
> This was a change needed for a particular customer" 
$ svn pset -r 100 --revprop svn:log "$new_comment" 
  • 你也可以創建一個包含您註釋的新修訂屬性。例如corp:comment(我使用corp表示與我公司有關的特殊屬性)。您可以在svn log消息中顯示這些註釋,但只能以xml格式顯示。

例如:

$ svn pset --revprop -r 100 foo:comment "This was a change needed for a particular customer" http://host/svn/repos 

現在,當你做你的日誌,你可以看到評論:

$ svn log --with-revprop foo:comment --xml -r 100 http://host/svn/repos 
<?xml version="1.0"?> 
<log> 
<logentry 
    revision="100"> 
<revprops> 
<property 
    name="foo:comment">This was a change needed for a particular customer</property> 
</revprops> 
</logentry> 
</log> 
+0

謝謝!這有幫助。 – 2012-04-10 19:51:44