2013-12-20 44 views
0

我正在使用Doxygen從C++源代碼中的註釋構建文檔,並從Subversion回購中籤出。作爲構建的一部分,Doxygen用於構建輸出文件\ html \ index.htmlSubversion - 如何提交單個文件並使未來的提交忽略對此文件的任何修改?

我希望檢查默認的\ html \ index.html,解釋如何構建文檔。一旦簽入,我想修改這個文件,任何提交都會被忽略。

有沒有辦法使用SVN屬性來做到這一點,以便提交將忽略\ html \ index.html如果它出現修改?

由於提前,

-Ed

+0

[SVN:有沒有辦法將文件標記爲「不提交」?](http://stackoverflow.com/questions/635446/svn-is-there-a-way-to-標記一個文件 - 如-DO-不提交) – Ferruccio

回答

1

我不認爲有任何內置的機制來告訴承諾忽略某些文件。如SVN: Is there a way to mark a file as "do not commit"?中所述,如果您使用的是TortoiseSVN,則可以使用「ignore-on-commit」更改列表,但這並不妨礙其他人提交更改,除非所有THEM都使用該更改列表。

雖然你的問題的一個可能的解決方案,將svn lock服務器上的文件(沒有工作副本!),只是從來沒有解鎖它。這會阻止其他人對該文件進行任何更改,除非他們盜取了鎖定。

顯然,如果您需要對模板/指令文件進行更改,您需要首先竊取鎖或破壞服務器上的鎖,然後在完成後再次鎖定該文件。

2

您可以使用預提交掛鉤將文件標記爲不可提交。人們可以更改文件,但如果他們嘗試提交他們的更改,提交將被拒絕。這比使用更改列表更自動,該列表不僅需要逐個用戶完成,還意味着您必須爲每個工作目錄執行此操作。在某個地方,有人會不小心做出改變。

我只是碰巧有這樣一個pre-commit hook。它在Perl中通常在Unix/Linux/Mac上可用,並可免費用於Windows。您只需設置控制文件以防止更改;

[file You do not have the ability to modify this index.html file.] 
file = **/html/index.html 
access = read-only 
users = @ALL 

[file Allow yourself to edit this file] 
file = **/html/index.html 
access = read-write 
users = ed 

您還可以使用add-only,將讓人們創建這個文件,但從未對其進行編輯。這樣,人們可以創建新項目,添加此文件,但不能編輯它。

相關問題