3

ソースが単一の最上位ディレクトリでインポートされなかったプロジェクトの svn リポジトリを管理しています。その結果、1 つではなく、約 15 の個別の「プロジェクト」があります。変更履歴を維持しながら、これらを 1 つのフォルダーにマージするにはどうすればよいですか?

*ヒント: この場合、svn move は機能しません。

[編集] おっと、Combining multiple SVN repositories into oneのだまされ

4

3 に答える 3

2

1 つのリポジトリのすべての履歴を保持する必要がない場合は、1 つのプロジェクトのリポジトリの下に新しいディレクトリを作成してから、もう 1 つのリポジトリをインポートできます。

両方の履歴を保持したい場合は、'svnadmin dump' を使用して 1 つのリポジトリをダンプし、'svnadmin load' を使用してそれを他のリポジトリにロードできます。リビジョン番号はオフになりますが、履歴は残ります。

ここからコピー: http://subversion.tigris.org/faq.html#multi-merge

于 2008-12-02T03:09:41.667 に答える
2

たぶん、私は分散バージョン管理ハンマーを使いすぎていて、この時点で見られるのは分散ネイルだけです。しかし、これはおそらく DVCS の仕事であることをもう一度言わなければなりません。

git-svn などをいじってみます。各「プロジェクト」を独自の git リポジトリにインポートし、互いに git pull します。競合を解決し、すべてが完了したら、履歴を Subversion にインポートします。

ただし、とにかくすべてのリポジトリのマージが完了したら、分散コントロールを使用する方がチームにとって良い場合があります...

于 2008-12-02T03:10:28.827 に答える
0

svn:externalsを使用して他のすべてのプロジェクトをポイントし、それらを適切なサブディレクトリに配置する新しいトップレベルプロジェクトを作成できます。

  • 開発者は新しいトップレベルプロジェクトをチェックアウトするだけで済みます(svnは自動的にsvn:externalsに従い、他のプロジェクトをプルします)
  • 完全なバージョン履歴が保持され、新しい変更が関連するサブプロジェクトに自動的にコミットされます
  • 実装には約5分かかります(新しいトップレベルのプロジェクトを作成して実行しますsvn propedit svn:externals top_dir)。
于 2008-12-02T03:29:03.517 に答える