Загрузка svnadmin из файла дампа вызывает ошибку «файл не найден». Помощь?

Данный:

Репозиторий_1 - источник

Репозиторий_2 - место назначения

Я создал файл дампа Repository_1 / Folder1, используя комбинацию svnadmin и svndumpfilter

При загрузке из файла дампа из Repository_1 / Folder1 в Repository_2 / Trunk все нормально НО

При загрузке из Repository_1 / Folder1 / Sub-folder (для этого был создан другой дамп) в Repository_2 / trunk я получаю следующую ошибку:

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

Кто-нибудь может объяснить?


person Chicago    schedule 01.03.2010    source источник


Ответы (5)


Оказывается, структура (пустые папки) в месте назначения должна быть создана заранее. Итак, если вы хотите это сделать:

При загрузке из Repository_1 / Folder1 / Sub-folder (для этого создан другой дамп) в Repository_2 / trunk

вам нужно создать эту структуру в svn

Репозиторий_2 / ствол / Папка1

примечание: вам нужно создать только родителей, а не саму папку, поэтому НЕ СОЗДАВАЙТЕ Repository_2 / trunk / Folder1 / Sub-folder

person Chicago    schedule 02.03.2010
comment
Это решает мою проблему. Благодаря тонну. Не могли бы вы разобраться в этой проблеме? stackoverflow.com/questions/28238863/ - person Gangadhar JANNU; 02.02.2015

вы получите эту ошибку, если кто-то скопировал что-то из ствола / папки 1 в ствол / папку 1 / подпапку. поскольку вы включили в свой дамп только транк / папку1 / подпапку, он больше не может найти требуемый файл (ы) из ствола / папки1 и останавливается с этой ошибкой.

чтобы решить эту проблему, вам нужно обязательно включить в дамп все, что было источником копии.

person stmax    schedule 01.03.2010

Я только что столкнулся с этой ошибкой, которую я проследил до недавнего обновления сервера и цикла 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, значит, причина в этом.

person the_mandrill    schedule 28.10.2010

Как отмечено в этой ветке, 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, вероятно, будет работать лучше.

person Chris Jones    schedule 03.05.2017

Загрузка дампа не удалась, поскольку создание trunk/Folder1 было отфильтровано svndumpfilter. Согласно этому сообщению в блоге, эти шаги необходимы на свалка :

Вы можете создать в дампе trunk / Folder1, отредактировав сам дамп и добавив к первой ревизии следующий блок:

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

Этот блок необходимо вставить в блоки props первой ревизии.

Затем дамп можно загрузить с помощью svnadmin.

person CharlesB    schedule 07.03.2017