27

与えられた:

Repository_1-ソース

Repository_2-宛先

svnadminとsvndumpfilterの組み合わせを使用してRepository_1/Folder1のダンプファイルを作成しました

ダンプファイルからRepository_1/Folder1からRepository_2/Truckにロードする場合、すべて問題ありませんが

Repository_1 / Folder1 / Sub-folder(このために別のダンプを作成)からRepository_2 / trunkにロードすると、次のエラーが発生します。

svnadmin: File not found: transaction '267-89', path 'trunk/Folder1/Sub-folder'

誰か説明できますか?

4

5 に答える 5

34

宛先の構造(空のフォルダー)を事前に作成する必要があることがわかりました。したがって、これを実行したい場合:

Repository_1 / Folder1 / Sub-folder(このために別のダンプを作成)からRepository_2 /trunkにロードする場合

この構造をsvnで作成する必要があります

Repository_2 / trunk / Folder1

注:作成する必要があるのは親のみであり、フォルダー自体は作成しないため、Repository_2 / trunk / Folder1/Sub-folderを作成しないでください。

于 2010-03-02T17:06:50.460 に答える
1

I have just experienced this error which I traced to a recent server upgrade and a svnadmin dump/load cycle. The problem was that I had set up the repository in a different directory to the one it was created in.

On the old machine, I was using inetd.conf to run svnserve:

svnserve -r /var/svn/main

and the repository was in /var/svn/main

However on the new machine I had inetd.conf pointing to /var/svn:

svnserve -r /var/svn

I already had a checkout from the old server, so when I tried to commit the destination path didn't exist because I'd accidentally added another component to the URL, so svn://host/source/trunk became svn://host/main/source/trunk.

I could have fixed it by moving the directories around, but I chose instead to rewrite the URL of the working copy using svn switch --relocate.

Note: a quick diagnostic to see whether this is the problem is to change to a directory in your working copy, type svn info to get the repository URL and then type svn ls <myUrl>. If this gives a No repository found error then you know this is the cause.

于 2010-10-28T21:13:37.500 に答える
1

誰かがtrunk/Folder1からtrunk/Folder1 / Sub-folderに何かをコピーした場合、このエラーが発生します。ダンプにtrunk/Folder1 / Sub-folderのみを含めたため、trunk / Folder1から必要なファイルを見つけることができなくなり、このエラーで停止します。

これを解決するには、コピーのソースであるすべてをダンプに含める必要があります。

于 2010-03-01T22:17:06.147 に答える
1

このスレッドに記載されているように、はとはsvnrdump動作が異なりsvndumpます。

svndump+ svndumpfilter

  • リポジトリ履歴全体をダンプしてから、必要なものをフィルタリングします。小さなサブツリーを取得しているだけの場合でも、これは大きなリポジトリでは長い時間がかかります。
  • 存在しないディレクトリにファイルを作成したり、存在しないパスからファイルをコピーしたりするなど、さまざまな方法で壊れている可能性のあるダンプファイルを生成します。

svnrdump

  • 自己矛盾のないダンプファイルを生成します。
  • と同等の処理を行う場合は、サブパスが必要ですsvndumpfilter include。たとえば、svnrdump https://server.example.com/svn/repo/branches/1.4/ branchs/1.4に影響するすべてのリビジョンを取得します。
  • 追加が必要になる場合があり| svndumpfilter include / --drop-all-empty-revs --renumber-revsます。

結論:svnrdumpおそらくうまくいくでしょう。

于 2017-05-03T23:03:41.890 に答える
0

trunk/Folder1作成がsvndumpfilterによってフィルタリングされたため、ダンプのロードは失敗します。このブログ投稿によると、これらの手順はダンプで必要です:

ダンプ自体を編集し、最初のリビジョンに次のブロックを追加することで、ダンプにtrunk/Folder1を作成できます。

Node-path: trunk/Folder1
Node-action: add
Node-kind: dir
Prop-content-length: 10
Content-length: 10
PROPS-END

このブロックは、最初のリビジョンの小道具ブロックに挿入する必要があります。

次に、ダンプをsvnadminでロードできます。

于 2017-03-07T13:36:01.397 に答える