11

本番サーバーの SVN リポジトリのディレクトリを置き換える必要がありますが、何も壊さずにこれを行う正しい方法がわかりません。置き換えられるディレクトリは、完全に再構築されたサードパーティ モジュール リビジョンであるため、完全にアップグレードするには、古いディレクトリ/ファイルを削除し、新しいディレクトリとファイルに置き換える必要があります。これを (svn delete を使用して) 行うと、作業コピーがブロックされるか、バージョン管理されていない新しいディレクトリを作業コピーにコミットまたは追加できない状態になります。svn update、svn cleanup、その他の UI (TortoiseSVN および Cornerstone) の fix-it ショートカットを試しましたが、再同期できないようです。つまり、以前のリビジョンにロールバックしたり、新しいコピー。

ローカル作業コピーとリモート リポジトリの両方のターゲット ディレクトリを削除し、作業コピーを更新し、新しいディレクトリを作業コピーに追加して、リポジトリにコミットする必要があると思います。しかし、詳細や、欠落している可能性のある手順や微妙な点についてはわかりません。私がアップグレードしようとしているモジュールは、サイト アプリケーションにとって非常に重要です。そのため、これは本番サーバーで行われるため、最初から正しく行う必要があり、迅速に行う必要があります。誰かがステップを明確にマッピングできれば、本当に感謝しています.

4

3 に答える 3

11

これを簡単にするために、ディレクトリが存在しない単一の「壊れた」リビジョンを作成する方法で行うことができます。

  1. svn up作業コピーを最新の状態にする
  2. svn delete <directory>現在のディレクトリを取り除く
  3. svn commit -m 'Deleted old module'
  4. 新しいディレクトリを作業コピーにコピーします
  5. svn add <directory>新しいディレクトリ構造を追加するには
  6. svn commit -m 'Added new module'

この質問には、「ベンダー ブランチ」の使用方法に関する詳細が記載されています。これは、状況により適したソリューションであることが証明される場合があります。

于 2011-04-14T14:30:31.780 に答える
2

TortoiseSVN の RepoBrowser を使用してこれを行うのは簡単です。古いフォルダを削除し、新しいフォルダをドラッグ アンド ドロップするだけです。

于 2011-12-05T18:13:53.720 に答える
1

単一のコミットでディレクトリ構造を更新する必要がある場合は、 WinMerge を使用できます。

  1. SVN フィルターを使用して .svn ディレクトリの比較を回避し、2 つのツリーを再帰的に比較します。
  2. 新しい構造に存在しないファイルとディレクトリを WC から削除します。
  3. 新しい構造にのみ存在するファイルとディレクトリをWCに追加します
  4. 両方の構造に存在するすべてのファイルを、WC の新しいファイルに置き換えます。
  5. 専念
于 2011-04-14T14:44:42.640 に答える