Svnadmin загрузка из dumpfile вызывает "файл не найден ошибка". Помочь?
дано:
Repository_1-source
Repository_2 - назначения
Я создал файл дампа Repository_1 / Folder1, используя комбинацию svnadmin и svndumpfilter
при загрузке из файла дампа от Repository_1 / Folder1 на Repository_2 / Trunk все нормально но
при загрузке из Repository_1/Folder1 / подпапка(создала еще один дамп для этого) в Repository_2 / trunk Я получаю следующую ошибку:
svnadmin: File not found: transaction '267-89', path 'trunk/Folder1/Sub-folder'
может кто-нибудь объяснить?
5 ответов
оказывается, что структура (пустые папки) в пункте назначения должна быть предварительно создана. Так, Если вы хотите сделать это:
При загрузке из Repository_1/Folder1 / подпапка(создала еще один дамп для этого) в Repository_2 / trunk
вам нужно создать эту структуру в svn
Repository_2 / trunk / Folder1
Примечание: вам нужно только создать родителей, а не саму папку, поэтому НЕ СОЗДАВАТЬ Repository_2/trunk/Folder1 / подпапка
вы получите эту ошибку, если кто-то скопировал что-то из trunk/Folder1 в trunk/Folder1/Sub-folder. поскольку вы включили только trunk/Folder1/Sub-folder в свой дамп, он больше не может найти необходимые файлы из trunk / Folder1 и останавливается с этой ошибкой.
чтобы решить эту проблему, вам нужно будет обязательно включить все в дамп, который был источником копии.
Я только что испытал эту ошибку, которую я проследил до недавнего обновления сервера и svnadmin dump/load цикл.  Проблема заключалась в том, что я настроил репозиторий в другом каталоге, чем тот, в котором он был создан.
на старой машине я использовал inetd.conf для выполнения svnserve:
svnserve -r /var/svn/main
и репозиторий был в /var/svn / main
однако на новой машине у меня был inetd.conf указывая на /var/svn:
svnserve -r /var/svn
у меня уже был заказ со старого сервера, поэтому, когда я пытался зафиксировать путь назначения, не существовало, потому что я случайно добавил другой компонент в URL-адрес, так что svn://host/source/trunk стало svn://host/main/source/trunk.  
я мог бы исправить это, перемещая каталоги, но вместо этого я решил переписать URL-адрес рабочей копии с помощью svn switch --relocate.
Примечание: быстрая диагностика, чтобы увидеть, является ли это проблемой, чтобы перейти в каталог в рабочей копии, введите svn info чтобы получить URL репозитория и затем введите svn ls <myUrl>.  Если это дает No repository found ошибка тогда вы знаете, что это причина.
как отметил в этой теме, svnrdump работает иначе, чем svndump.
svndump + svndumpfilter:
- сбрасывает всю историю репозитория, а затем фильтрует для вещей, которые вы хотите. Это занимает много времени в больших репозиториях, даже если вы просто хватаете крошечное поддерево.
 - создает файл дампа, который, вероятно, нарушен несколькими способами, например, создание файлов в каталогах, которые не существуют, или копирование файлов из путей, которые не существует.
 
svnrdump:
- создает самосогласованный дамп-файл.
 - требуется подпространство, если вы хотите сделать эквивалент 
svndumpfilter include. Например,svnrdump https://server.example.com/svn/repo/branches/1.4захватит все изменения, влияющие на / branches / 1.4. - может потребоваться дополнительная 
| svndumpfilter include / --drop-all-empty-revs --renumber-revs. 
итог: svnrdump вероятно, будет работать лучше.
загрузка дампа завершается неудачно, потому что 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.