2014-12-27 10 views
1

У меня есть SVN-репо на файловом сервере (что я знаю, это не лучшая практика), и одна из последних версий повреждена. Я скопировал свое репо локально, и путь - C: \ SVNLOCAL \ SVNRepos. Коррумпированная фиксация - r 1070. Я сделал свалку своего репо с svnadmin до r 1069 (svnadmin dump C:\SVNLOCAL\SVNRepos -r 1069 > r1069.dump) и загрузил (svnadmin load C:\SVNLOCAL\RECOVER < C:\SVNLOCAL\r1069.dump) и загрузил его на новый путь, но он не показывает историю, даже когда я снижаю стоп при переименовании.SVN Dump/перезагрузить определенную версию с историей

Два вопроса: могу ли я просто удалить любые обороты после 1069 в папках revs - SVNRepos \ db \ revs \ 1 \ 1070+. Я предполагаю, что это не так просто, и мне нужно сделать свалку и перезагрузить. Если да, то как это сделать, сохраняя историю неповрежденной.

В принципе, я просто хочу вернуться к r1069, но если я попытаюсь сделать это против репо, он говорит, что 1070 имеет неожиданный конец файла и останавливается. Я думаю, что свалка и загрузка - моя единственная альтернатива.

ответ

1

Вы должны использовать два (2) аргументы в редакции (начальная и конечная ревизия). Команда dump сбрасывает все пути в начале ревизии и сохраняет следующие версии (до окончания ревизии) в качестве дельт.

Правильная команда должна быть:

svnadmin dump C:\SVNLOCAL\SVNRepos -r 0:1069 >r1069.dump 

Вы не должны удалить последнюю версию с вашего SVN Repo, как это может повредить хранилище. По крайней мере, вы уничтожите sqllite-cache, если у вас есть svn 1.8.x репозиторий.

Старайтесь всегда манипулировать с помощью файла дампа.

+0

Питер, спасибо. Понял, что я взорву свое репо, сменив файлы напрямую, но так расстраивая, чтобы увидеть, что один из коррумпированных изменений вносит изменения. Я пытаюсь исправить сейчас и загружу его, когда это будет сделано. Если я получу репо неповрежденным до r 1069, я отметю ваш ответ – thekonger