3

私の現在のリポジトリは次のとおりです:/var/www/svn/project .プロジェクトフォルダー内のすべてのファイル。現在、トランク、ブランチ、タグ構造はありません。これで、トランク、ブランチ、タグを使用して「/var/www/svn/projectnew」として新しいプロジェクトを作成しました。「/var/www/svn/project」のダンプを取り、「/var/www/svn/projectnew/trunck」にロードし、 「/var/www/svn/projectnew/branches/site1」にブランチを 1 つ作成しました。トランク。

現在、私の作業コピーは"/var/www/svn/project"を指しています。作業コピーを「/var/www/svn/project」から「/var/www/svn/projectnew/branches/site1」に切り替えようとしましたが、

リポジトリ UUID 'd3f06af7-c344-2d45-b1bd-7799e0e99d7a' は、予想される UID 'f5f9f6ac-3f50-7e4d-a9d4-0bc9a9b443b8' と一致しません。

これをどのように進めることができるか教えてください。

4

2 に答える 2

8

元の返信:

ここでできることは 2 つあります。1 つはdb/uuid、svn リポジトリを新しいマシンに転送するだけで、古いサーバーをオフにする予定がある場合に、古いサーバーから新しいサーバーにファイルをコピーすることです。もう1つは、使用しているSVNのバージョンによって異なります。1.7 を使用している場合はsvn relocate( docsを参照) を使用するか、古いクライアントの場合は、このシナリオ用--relocateのコマンドのオプションを使用します。svn switch

編集:

私は誤解しました - トランク/ブランチ/タグ構造でリポジトリを再作成したいのです。その場合、プロジェクトをダンプしてリロードしても、魔法のように新しい構造が作成されるわけではないため、役に立ちません。既存のものを再作成するだけです。ただし、リポジトリ ブラウザー (TortoiseSVN を使用している場合) または作業コピーから直接、新しい構造を簡単に作成できます。コマンドラインから実行している場合、正確なディレクトリ構造に応じて、構文は次のようになります。http:.../svn サーバーのアドレスに置き換えます。ああ、最初にリポジトリをバックアップしてください!

# check out top-level directory
svn co http://.../
# make new trunk dir and move all contents to it -- note spelling of 'trunk'
mkdir trunk
svn add trunk
svn mv * trunk

# now create tags and branches
mkdir tags
mkdir branches
svn add trunk tags branches

svn commit -m "Created new repository layout"

既存の作業コピーを切り替えるために必要なことは、次のとおりです。

svn switch http://.../project  http://.../trunk/project
于 2012-07-19T11:30:38.257 に答える
0

もう1つの方法は、履歴をそのままにして、新しいリビジョンから新しい構造に切り替えることです。この場合、リポジトリでのダンプ/ロード操作は必要ありません。

  1. リポジトリのルートからすべてを「svn delete」
  2. 幹/枝/タグ構造を作成する
  3. トランクに削除する前のリビジョンから「svn copy」リポジトリ コンテンツ
于 2012-07-20T08:39:45.107 に答える