2009-05-25 3 views
1

大規模なマルチプロジェクトCVSリポジトリをCVS2svnを使ってSubversionに変換しています。実際にうまくいっていますが、実際には他のプロジェクトの枝であるべきCVSプロジェクトがいくつかあります。CVSを使うときにプロジェクトトランクをブランチに変換する必要があります

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

私が目にすることができる唯一の選択肢は、変換が完了したらSubversionからディレクトリを削除することですが、誰かがこれを変換プロセス内で実行できる方法が分かっているのだろうかと思っていましたか?私はシンボルヒントファイルも見ていますが、インデックス番号でプロジェクトを指定する270個のプロジェクトは難しすぎます!

多くのおかげで、輸入は私には最高のもののように思えるの後にフィックスアップを行う デビッド

答えて

2

"ShouldBeBranch"プロジェクト自体にブランチとタグがあると思われます。それらはどこで終わらせたいですか?

あなただけの変換に含まれる「ShouldBeBranch」プロジェクトのトランクをしたい場合:

  • は「ShouldBeBranch」プロジェクト
  • から他のすべてのシンボルを除外する内のパスにそのtrunk_pathを設定他のプロジェクト

あなたのオプションの一部は、その広告を提出(これは作成されてからそれらを防止する)あなたのオプション・ファイルでなしにbranches_pathとtags_pathを設定しましたDSは「ShouldBeBranch」プロジェクトは、このように、このような行が含まれます:

run_options.add_project(
    # ... 
    trunk_path='OtherProject/branches/ShouldBeBranch', 
    branches_path=None, 
    tags_path=None, 
    # ... 
    symbol_strategy_rules=[ 
     ExcludeRegexpStrategyRule(r'.*'), 
     ], 
    ) 
+0

ShouldBeBranchは、実際に、独自の任意の枝やタグを持っていないので、私は「なし」ソリューションは、トリックを行うだろうと思い...私は」どこにも見られない! ありがとう、David –

+0

こんにちはmhagger、 私はUbuntu 9.04で利用可能なパッケージであるcvs2svn 2.1.1を使用しています。そのバージョンでは、パスを分割しようとすると、cvs2svnは例外をスローします。 トレースバック(最新のコール最後): ... ファイル "/var/lib/python-support/python2.6/cvs2svn_lib/common。 "noneType"オブジェクトには属性 'rfind'がありません 例外AttributeError: "'NoneType'オブジェクトには属性 'error'がありません" in バインドされたメソッドPopen .__ del__ of >は無視されました 2.2.0で変更されたことはありますか?ありがとう! –

+0

cvs2svn(バージョン2.2.0)の最新リリースにアップグレードされ、mhaggerの提案が完全に機能するようになりました。偽のディレクトリは作成されません。どうもありがとう! –

1

。あなたがsvnプロジェクトの\ trunkをブランチ\ somethingに移動すると、Subversionは履歴を追跡します。

このblog postには、ダンプ/ロードサイクルを使用してパスの名前を変更する方法が記載されています。この方法は歴史を変えるので、ファイルの履歴を振り返ってみると、いつもbranch \ somethingの中にいるように見えるでしょう。

古いバージョンに戻った場合、がproject \ trunkになると予想します。だから私は歴史を変えようとするのは良いことだとは思わない。

関連する問題