簡體   English   中英

SVN 遞歸刪除和忽略

[英]SVN Delete and Ignore recursively

我有一個存儲庫,其中一些文件以.scc結尾

幾乎在 repo 的每個子文件夾中都有這些文件之一,並且它們都已提交。

我正在使用:
TortoiseSVN 1.6.15,內部版本 21042 - 64 位
顛覆 1.6.16

使用 TortoiseSVN,我可以進入每個文件夾並右鍵單擊該文件並選擇“刪除並添加到忽略列表”,但是在每個文件夾中都這樣做很痛苦。 所以我基本上是在尋找一種簡單的方法來遞歸地執行與 TortoiseSVN 的“刪除並添加到忽略列表”完全相同的操作。 通過 TortoiseSVN 或命令行。

要將文件添加到忽略列表,您可以更新%USERPROFILE%\\local data\\.subversion\\config文件。 (我不是 100% 確定它的位置,但它應該在 %USERPROFILE% 目錄下的.subversion目錄下。Unix 和 Macs,它應該在$HOME/.subversion/config

在該文件中,有一個global-ignores=參數。 您可以刪除它前面的# (如果它尚未刪除),然后添加.ssc到它。 在我的這個文件版本中,它大約是#90。

現在,您必須想辦法刪除所有這些.scc文件。 你所要做的就是:

  $ find . -name `*.scc -exec svn del {} \;`

等等,你正在使用 Windows。 那更難。 我面前沒有 Windows 機器,但我知道您可以通過執行以下操作找到所有這些*.scc文件:

 C:> dir *.scc /s/b

您可以將其通過管道傳輸到某種形式的for循環中,並將其傳遞給svn del語句。 即使我有一台 Windows 機器,我也可能需要一段時間來計算語法。 由於我面前沒有Windows機器,所以更難。

最簡單的方法是將輸出重定向到一個文件,然后使用一個好的程序編輯器編輯該文件(我的意思不是notepad.exe ):

 C:> dir *.scc /s/b > delete_me.bat
 C:> notpadplusplus delete_me.bat

現在,您可以使用Notepad++來編輯您的文件,並使用svn del快速為每一行添加前綴。 運行此delete_me.bat文件,它將刪除所有*.scc文件。 (我個人更喜歡Vim ,但后來我是一個受虐狂)。

最大的問題是如何防止重新添加這些文件。 忽略設置,因為我向您展示了特定於客戶的內容。 您可以在每個目錄中設置一個svn:ignore屬性。 這是一個影響所有人的更全局版本,但它仍然不會阻止某人添加它們,因為文件仍會顯示在 Windows 資源管理器中。

我有一個可以設置的預提交鈎子,所以沒有人能夠再次添加這些.scc文件。 您還可以將其設置為不包含 VisualStudio 放入的其他類型的文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM