2012-03-05 52 views
4

これは私が聞いたことのない質問です。転覆1.7SVNローカルファイルを削除し、リポジトリに保持します

を使用して

イムは、私は必要としないディレクトリの「SVNの共同を」でしたが、(他の人がそれを必要とDO)リポジトリから削除することはできません。私はディレクトリのローカルコピーを削除することができ、それは問題ありませんが、私が "svn up"を実行すると、ルート上に、削除されたディレクトリが復元されます。

/rootDir 
     /folder1.  
     /unneededFolder 

私はunneededFolderを削除することができますが、SVNは私が(むしろ各サブディレクトリ上にsvnを実行するより)ROOTDIRのアップデートを実行したときにそれを復元しようとし続けます。リポジトリから削除せずに作業コピー内のそのフォルダの更新を停止するようにsvnに指示するにはどうすればよいですか?

答えて

6

行う最も簡単な方法は、使用することです。

svn update --set-depth exclude <dir>

これはあなたの作業コピーからを削除しますが、リポジトリにそれを残します。

Sparse Directoriesのドキュメントを参照してください。

0

-Nsvn updateに設定すると、更新は非再帰的になります。あなたの現在の作業ディレクトリ内のものだけが更新されます。

+0

-Nオプションは廃止予定とマークされています。代わりに--depth = ..を使用してください。 – khmarbaise

+0

ああ、ありがとう!私はそれを感謝します:) – asf107

0

必要なのは、svnクライアントの--depthオプションを使用することです(sparse-checkoutが呼び出されます)。つまり、チェックアウトするディレクトリレベルの数を制限するには、--depthオプションを使用して個別のチェックアウトを行う必要があります。あなたの場合は、すべてのレベルが含まれていない作業コピーをお持ちである場合よりも、

svn co URL rootDir --depth=immediate 

となります。これですべてのレベルまたは制限されたレベルを持ちたいディレクトリに移動できます。あなたがFOLDER1に行くと仮定しましょう:

svn update --depth=infinity 

ようにした後、あなたがそのフォルダに移動しない限り、unneededFolderの内容を取得し、しないだろう。

svn update --depth=infinity 

トレードオフはあなたということですあなたが無限を一度やったなら、戻れません。

さらに、リポジトリについて話していますが、作業コピーを意味します。

+0

ありがとう。 私は実際にあなたが指定した通りに多かれ少なかれ実行していました。ルートディレクトリから直接のものをチェックアウトしてから、必要に応じて "svn update"を使用しました。 私がこれから学んだことは、あなたがフォルダ上の "svn update"を元に戻すことができないことです。一度それを更新したら、あなたのローカルコピーからそれを削除し、それがルートディレクトリの "svn update"に戻らないようにする方法はありません。 これを修正する方法は、ローカルコピーを完全に削除し、ルートディレクトリを再チェックアウトし、必要なフォルダを更新することです。 Thansk! –

関連する問題