6

さまざまな場所でリポジトリをチェックアウトしています。別のリポジトリの外部にあるフォルダ X があります。X をローカルにしたい。他にも質問がありますが、それらは私の困難に遭遇していないようです。

私がしたことは、svn:externals を編集してその行を削除したことです。次に、レポをコミットしました。次に、フォルダーを取得し、その中のすべての.svnエントリを削除して (通常のフォルダーにするため)、svn add編集してからコミットしました。これはうまくいきました。

しかし、レポの別のチェックアウトを更新すると、問題が発生しました。最初のエラーは次のようなものでした:

UUID mismatch: existing directory XXX was checked out from a different repository.

わかりました、すでにsvn up失敗していますが、フォルダーを削除して再更新してみます。今ではすべてのコンテンツを再取得できますが、新しいエラーが発生します:

Can't remove file XXX: Access is denied

再度更新を試みますが、何も起こりません。そのフォルダー内のファイルを削除し、ルートから再度更新しても何も起こりません。フォルダ X を削除しても、何も起こらないので、忘れてしまったようです。私の唯一の手段は、X のルート ディレクトリを削除svn upし、レベルを下げて再作成することです (これはすべて、外部にもあるサブ フォルダーでも発生していたためです)。

よくない..このリポジトリがチェックアウトされているすべてのサイトで、手動のリガマロールを実行する必要はありません。何をすべきか?

4

2 に答える 2

3

おそらく最もクリーンなソリューションではありませんが、機能します。

  • ローカルコピーの外部フォルダーを削除します(svn rmフォルダーは使用しないでください)
  • リポジトリのバージョンで更新する
于 2012-01-30T16:35:19.047 に答える
0

うまくいくかどうかはわかりませんが、試してみる価値があります。

外観を削除したリビジョンに更新してから、ヘッドに更新を行ってください。

// XX revision of the externals deletion
svn update -rXX 
// to see if the folder is deleted
svn status
// delete the folder if he is on the local working copy
svn rm folder
// Update to head
svn update
于 2011-01-13T17:40:43.493 に答える