我想給給定文件的顛覆日誌或歷史記錄添加註釋,但沒有與該文件關聯的更改。添加評論到顛覆而不更改文件?
有沒有一種方法可以在svn日誌中添加或註釋註釋,而不需要實際更改文件。
我正在尋找一種方法來在發生某些事件後在日誌中標記文件,例如代碼審閱。
我不想做一個svn副本來創建一個全新的分支。我只想在某個時間點與單個文件關聯的評論。
此處有任何建議嗎?
我想給給定文件的顛覆日誌或歷史記錄添加註釋,但沒有與該文件關聯的更改。添加評論到顛覆而不更改文件?
有沒有一種方法可以在svn日誌中添加或註釋註釋,而不需要實際更改文件。
我正在尋找一種方法來在發生某些事件後在日誌中標記文件,例如代碼審閱。
我不想做一個svn副本來創建一個全新的分支。我只想在某個時間點與單個文件關聯的評論。
此處有任何建議嗎?
您可以在應該提交的文件上設置/更改用戶定義的屬性 - 即僅更改一些元數據而不會導致副作用。
svn propset my:log reason filename
svn commit filename
這看起來很有前途。我會試一試。我嘗試後會讓你知道。謝謝! – 2012-04-10 17:55:07
非常好。這是做的工作。謝謝! – 2012-04-10 18:43:00
在Subversion中,有兩種類型的屬性:
最重要的是,是有相當重要的每個版本相關的三個特殊的版本屬性:
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>
謝謝!這有幫助。 – 2012-04-10 19:51:44
http://stackoverflow.com/questions/304383/how-如果可能的話,請考慮切換到git;如果可能的話,請考慮切換到git。它是更強大的(見git修改) – Stephan 2012-04-10 16:23:29
爲了澄清,我不在尋找編輯現有日誌條目的細節,我想添加一個新的條目。 – 2012-04-10 16:33:37
附加:在這種情況下,切換離開SVN不是一種選擇。切換到其他源代碼管理產品不在本項目的範圍內。 – 2012-04-10 16:34:21