簡體   English   中英

在 SVN 更新期間忽略文件夾

[英]Ignore a folder during SVN updates

如果我 svn:ignore 一個非常大的文件夾,它會在 SVN 更新期間提高性能嗎?

我的項目中有這個非常大(> 600MB)的文件夾。 此文件夾中的文件根本不應更改。 問題是每次我調用“svn update”都需要很長時間。 有沒有辦法在更新過程中忽略此文件夾以加快更新過程?

svn:ignore僅用於尚未在 Subversion 存儲庫中的文件。 這個文件夾已經是。

您可以使用svn update --set-depth exclude folderName從您的工作目錄中刪除此文件夾:

$ svn update --set-depth exclude bigFolder  #Removes "bigFolder" from workdir
D bigFolder

$

下次進行更新時, bigFolder將不會出現在您的工作目錄中。 如果你想要它回來,你必須重置深度:

$ svn update --set-depth infinity
U bigFolder
U bigFolder/File1
U bigFolder/File2
...

你可以做一個 svn update 並特別提到每個其他目錄,例如

svn update dir1 dir2 dir3

或者, grep -v 找出你不想要的東西。

svn update `ls | grep -v big_dir`

或者, svn mv big_dir 到另一個文件夾並更改構建系統以從另一個目錄獲取內容。

做就是了 :

svn up `svn ls | grep -v big_dir`

使用“svn ls”您不僅可以更新本地現有的目錄和文件,還可以更新存儲庫中的新文件。 因此,更新更完整,而不僅僅是排除。 而且您不需要刪除已經存在的文件,就像“--set-depth exclude”顯然那樣。

除了@Bill Brasky 所說的,一個建議是將巨大的文件夾移到外部。 這樣你就可以做svn up --ignore-externals

如果您不想在工作副本中使用大文件夾,則可以查看稀疏結帳:

svn checkout repo . --depth empty
svn up other dirs
svn file structure:
trunk
|___ folder1
|___ folder2
|___ folder3
|___ other_folder

首先結帳時,使用立即數,僅結帳一級文件夾和文件:

  • svn co svn://svn-xxxx.com/svn/develop/trunk --depth 即時中繼,

然后,設置一些文件夾以供稍后更新:

  • CD后備箱
  • svn up folder1 folder2 folder3 --set-depth infinity

ok,現在只有123文件夾可以更新了,其他一級文件夾還在trunk文件夾里

暫無
暫無

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

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