2

私はsvndumpfilter、より大きなレポから単一のプロジェクトを抽出し、それらを独自のレポにインポートするために使用しています。このようなもの:

svndumpfilter include --drop-empty-revs --renumber-revs Trunk/Source/Project1 < full.dump > Project1.dump

1 つのプロジェクトでは問題なく動作しましたが、2 つ目のプロジェクトでは、結果として得られるフィルター処理されたダンプがパスを追加しても開始されないことに気付きました。最初の 2 つのリビジョン (番号が付け直されています) を参照してください。

SVN-fs-dump-format-version: 2

UUID: c6612063-4e6b-459c-a579-78605fb1e4b5

Revision-number: 0
Prop-content-length: 56
Content-length: 56

K 8
svn:date
V 27
2010-05-11T20:45:07.903005Z
PROPS-END

Revision-number: 1
Prop-content-length: 128
Content-length: 128

K 7
svn:log
V 27
Fixed code after branching.
K 10
svn:author
V 6
somedude
K 8
svn:date
V 27
2010-09-21T23:07:51.719341Z
PROPS-END

Node-path: Trunk/Source/Project1/Project1.csproj
Text-content-md5: 9d127596909e2a9921f1ec1c0223e1ed
Node-action: change
Text-content-sha1: 22eb675e0a5bfb41092de6ed39dc7c4d2a15dbd5
Node-kind: file
Text-content-length: 5178
Content-length: 5178

Trunk/Source/Project1/Project1.csprojそもそも追加する前に、どのように「変更」しようとしているかに注意してください。驚くことではありませんがsvnadmin load、フィルタリングされたダンプで実行すると、「ファイルが見つかりません」というメッセージが表示されます。何か案は?

4

1 に答える 1

3

次の 3 つの方法があります。

  1. ダンプ ファイルをロードする前に、コミットを介して不足しているフォルダーを追加します。svn mkdir http://server/svn/project/Trunk -m "Created Trunk"
  2. Trunkフォルダを作成するノード レコードを手動でダンプに追加します。

    Revision-number: 1
    Prop-content-length: 128
    Content-length: 128
    
    K 7
    svn:log
    V 27
    Fixed code after branching.
    K 10
    svn:author
    V 6
    somedude
    K 8
    svn:date
    V 27
    2010-09-21T23:07:51.719341Z
    PROPS-END
    
    Node-path: Trunk/
    Node-kind: dir
    Node-action: add
    Prop-content-length: 48
    Content-length: 48
    
    PROPS-END
    
    
    Node-path: Trunk/Source/Project1/Project1.csproj
    Text-content-md5: 9d127596909e2a9921f1ec1c0223e1ed
    Node-action: change
    Text-content-sha1: 22eb675e0a5bfb41092de6ed39dc7c4d2a15dbd5
    Node-kind: file
    Text-content-length: 5178
    Content-length: 5178
    
  3. svndumpfilter設計上壊れているため、まったく使用しないでください( svndumpsanitizerホームページに理由が詳しく説明されています)。ダンプでさらに他のエラーが発生する可能性は十分にあります。

私は現在、非常に複雑なレポを多くのマージ、移動などで分割する過程にあり、svn ダンプの分割を 100% 適切に処理するものは何もないと言えます。

たとえば、よく知られているsvndumpfilterINには少なくとも 3 つの主要なバグが含まれており (そのうちの 1 つしか報告できず、他の 2 つはもっとひどいものです)、私のレポでは惨めに失敗しました。しばらくして、修正版を GitHub で共有しようとしますが、現状ではお勧めできません。

したがって、私の意見では、上記のsvndumpsanitizer--redefine-rootをオプションなしで試すのが最善の方法です。Windows を使用している場合は、最新のVisual Studio Community 2013 (無料) で問題なくコンパイルできます。


Y2K17 で更新

上記の最後の 2 つの段落は、リポジトリの変換を妨げていたsvndumpfilterINの問題をすべて修正したため、もはや関係ありません。私の PRはベース リポジトリにマージされているので、試してみてください。100% の成功を保証することはまだできませんが、可能性ははるかに高くなります。

于 2015-02-09T15:36:41.937 に答える