2011-08-11 60 views
0

是否可以防止在執行SVN提交時提交web.config文件?我有以下SVN全局忽略模式集,但它仍然無法阻止它。如果我用「web.config」替換「* .config」,它仍然不能阻止它。防止在SVN中提交web.config

http://screencast.com/t/fLKoZhYykYG

全球忽略模式:

*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store */bin */obj bin obj aspnet_client *.tmp */legacy legacy *.suo *.user *.config 

=====================

簡單的答案(即使下面的工具非常好):

右鍵單擊Web.config文件,然後選擇「刪除並添加到忽略列表」。文件上的圖標將變成紅色的「X」。然後提交更改。它不會刪除物理文件,但會將其從SVN中刪除,因此不會再提交。

回答

1

全球忽略的是真的,你不希望在你的庫文件的類型,所以你不意外添加。這就是爲什麼他們都是後綴。另外,它們僅適用於一臺機器,因此無法真正實施它。您可以在每個目錄中設置svn:ignore,並且可以將其設置爲您不添加的特定文件或目錄。

忽略和svn:ignore僅適用於尚未存儲在您的存儲庫中的文件,因此如果web.config已存在,則不能使用它們。而且,它們不會阻止你明確地指定你想要在你的倉庫中使用這個文件。基本上,全局忽略的文件不會顯示一個?當你做svn status,並且如果你做svn add *將不會被添加。但是,您始終可以執行svn add web.config並將其添加到您的存儲庫。

如果你真的想確保它永遠不會被添加,你可以使用我的預先提交的「Kitchen Sink」掛鉤。這個鉤子腳本執行許多不同的任務,它可以做的一件事就是允許你根據Glob或Regex模式禁止文件。如果有人做了svn add web.config,並試圖提交它,這個預先提交鉤子將禁止該事務。

我最近重寫了腳本,你可以download it並試試看。你需要Perl,但是我寫了腳本不要求任何可選模塊,所以安裝非常簡單。如果你使用的是Unix系統,那麼像5.8這樣早的Perl應該可以正常工作。在Windows上,您可以下載ActiveState Perl或Strawberry Perl,並且pre-commit鉤子可以毫無問題地運行。

我使用掛鉤腳本來防止用戶添加所有各種VisualStudio用戶文件或bin/obj和bin/release目錄。我還阻止某人添加到/ target目錄中。它也可以用來讓用戶創建一個標籤,但是阻止他們進行編輯。

+0

感謝您的帖子..當我得到一些時間,我會試試這個。 – MacGyver

+0

這真是太棒了!你住哪個城市,我可以給你買啤酒? :-) – MacGyver

+0

David,你的工具可以刪除或修改提交給SVN的文件嗎?我問的原因是因爲我們公司有一個新的PCI(安全)策略,我們無法在SVN中的web.config中存儲敏感信息(例如:連接字符串中的密碼,Web中的某些值。配置文件等)。這是你曾經問過的嗎?我們可以處理已經提交的舊代碼,但我認爲這很酷。 – MacGyver

0

右鍵單擊Web.config文件,然後選擇「刪除並添加到忽略列表」。文件上的圖標將變成紅色的「X」。然後提交更改。它不會刪除物理文件,但會將其從SVN中刪除,因此不會再提交。