2

Subversionリポジトリがあり、ファイルシステム操作を使用してSubversionリポジトリ内のファイルが1つのフォルダから別のフォルダに移動した結果、Subversionが削除および追加されたことがわかりました。予想どおり、ファイルの履歴は新しい場所に引き継がれませんでした。この誤って行われた移動を、履歴がコピーされる真のsvn mvに変換することは可能ですか?問題は、コミットがしばらく前に行われ、このコミットに加えていくつかのコミットがあったことです。したがって、単純な逆マージと適切な移動はオプションではありません。

4

1 に答える 1

4

リポジトリに直接アクセスできると仮定して、それをダンプしてリロードできると仮定することは可能です。

要するに、手順は次のとおりです。

  1. リポジトリをダンプします。.
  2. ダンプを変更します (以下を参照)。
  3. 新しいリポジトリを作成します
  4. 変更されたダンプを新しいリポジトリにロードします (ダンプを既存のリポジトリにロードしてもコンテンツは置き換えられませんが、実際には追加されます。
  5. 変更を確認します。
  6. 古いリポジトリを新しいリポジトリに置き換えます。リポジトリをダンプし、ダンプを変更し、リポジトリを削除、再作成、およびロードする必要があります。

必要なダンプファイルの変更

ダンプファイルでの間違った移動操作は次のようになります。

Revision-number: 2
Prop-content-length: 111
Content-length: 111

K 7
svn:log
V 13
Wrong rename.
K 10
svn:author
V 3
tom
K 8
svn:date
V 27
2012-11-22T22:11:49.101403Z
PROPS-END

Node-path: renamed file.txt
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 8
Text-content-md5: 226648ec2921fddba76a340ac976f760
Text-content-sha1: 18cc7289b71fd17898ca179dcb3a05f3d2a07e8b
Content-length: 18

PROPS-END
Content!

Node-path: file.txt
Node-action: delete

さらに読むには、ダンプファイルの仕様Node-action: addを確認する価値がありますが、問題に関連するエントリのセットはごくわずかNode-action: deleteです。必要なのは、次のようにダンプを変更することだけです。

Revision-number: 2
Prop-content-length: 111
Content-length: 111

K 7
svn:log
V 13
Right rename.
K 10
svn:author
V 3
tom
K 8
svn:date
V 27
2012-11-22T22:13:51.674043Z
PROPS-END

Node-path: renamed file.txt
Node-kind: file
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: file.txt
Text-copy-source-md5: 226648ec2921fddba76a340ac976f760
Text-copy-source-sha1: 18cc7289b71fd17898ca179dcb3a05f3d2a07e8b


Node-path: file.txt
Node-action: delete

したがって、交換する必要があります

    Prop-content-length: <a>
    Text-content-length: <b>
    Text-content-md5: <md5>
    Text-content-sha1: <sha1>
    Content-length: <e>

    Node-copyfrom-rev: <correct revision>
    Node-copyfrom-path: <correct path>
    Text-copy-source-md5: <md5>
    Text-copy-source-sha1: <sha1>

ファイルの実際のコンテンツを削除します。

アクションはdelete相変わらず。

于 2012-11-22T22:32:51.203 に答える