1

cvs2svn を使用して、大規模なマルチ プロジェクト CVS リポジトリを Subversion に変換しています。これは非常にうまく機能していますが、実際には他のプロジェクトのブランチであるべき CVS プロジェクトがいくつかあります。

オプション ファイルを使用して、プロジェクト「ShouldBeBranch」のトランクを「/OtherProject/branches/ShouldBeBranch」に配置するように指定できますが、タグとブランチ用に Subversion ディレクトリを作成しないようにする方法が見つかりません。 ShouldBeBranch プロジェクト (空ですが、まだ作成されています)。

現時点で確認できる唯一のオプションは、変換が完了したら Subversion からディレクトリを削除することですが、変換プロセス内でこれを行う方法を誰かが知っているかどうか疑問に思っていましたか? シンボル ヒント ファイルも調べましたが、270 個のプロジェクトがあるため、インデックス番号でプロジェクトを指定するのは難しすぎます。

どうもありがとう、デビッド

4

2 に答える 2

2

おそらく、「ShouldBeBranch」プロジェクト自体にブランチとタグがあります。それらをどこに終わらせたいですか?

「ShouldBeBranch」プロジェクトのトランクのみを変換に含める場合は、次のようにします。

  • 「ShouldBeBranch」プロジェクトから他のすべてのシンボルを除外する
  • そのtrunk_pathを他のプロジェクト内のパスに設定します
  • オプションファイルでbranchs_pathとtags_pathをNoneに設定します(これにより、それらが作成されなくなります)

したがって、「ShouldBeBranch」プロジェクトを追加するオプションファイルの部分には、次のような行が含まれます。

run_options.add_project(
    # ...
    trunk_path='OtherProject/branches/ShouldBeBranch',
    branches_path=None,
    tags_path=None,
    # ...
    symbol_strategy_rules=[
        ExcludeRegexpStrategyRule(r'.*'),
        ],
    )
于 2009-05-26T07:15:47.240 に答える
1

インポート後に修正を行うことは、私にとって最善のことのようです。プロジェクトの project\trunk を branch\something に svn move すると、Subversion は単に履歴を追跡します。

このブログ投稿では、ダンプ/ロード サイクルを使用してパスの名前を変更する方法について説明します。この方法で履歴が変更されるため、ファイルの履歴を振り返ると、ファイルは常に branch\something 内にあるように見えます。

古いバージョンに戻す場合は、project\trunk にあることが予想されます。ですから、歴史を変えようとするのは良いことではないと思います。

于 2009-05-25T22:10:09.480 に答える