Что вызывает ошибку SVN «Версия xxx не соответствует существующей версии yyy ...» - PullRequest
0 голосов
/ 20 июня 2019

Я использую последнюю версию SVN для проверки некоторых файлов (используя 'svn co URL DEST'). Когда я делаю это, я получаю сообщение об ошибке msgstr "svn: E155000: ревизия 11134260 не соответствует существующей ревизии 11075284 в DEST". Однако, если я использую версию SVN 2011 года, я не получу эту ошибку (т. Е. Проверка работает просто отлично). Может кто-нибудь объяснить, что означает это сообщение об ошибке, чтобы я мог лучше понять, как решить проблему?

Я попытался выполнить поиск здесь по stackoverflow, а также по поиску в Google и документации SVN, и нашел только информацию, связанную с выполнением слияния, но ничего, что обсуждало эту проблему на кассе. Конечно, поскольку я не до конца понимаю проблему, возможно, я не ищу нужные вещи.

Работающая версия SVN: SVN, версия 1.6.17 (r1128011) составлено 2 июня 2011 г., 23: 35: 08

И версия SVN, которая не работает: SVN, версия 1.11.1 (r1850623) скомпилировано 9 января 2019, 19:28:50 на x86-microsoft-windows

1 Ответ

0 голосов
/ 22 июня 2019

Эта ошибка происходит из-за различий между версиями SVN 1.6 и более ранними версиями и 1.7 и более поздними.В 1.6 и более ранних версиях каждый подкаталог, который был частью репозитория SVN, имел свою собственную папку .svn.Начиная с версии 1.7, в корневом каталоге рабочей копии находится одна папка .svn.В нашей системе часть структуры каталогов, которая содержится в нашем главном репозитории:

root_dir / sub_dir_a

Так что, когда я извлекаю root_dir, я получаю sub_dir_a в качестве подкаталога.В ходе эволюции нашей системы сборки и хранилища sub_dir_a стала полезной для других проектов, кроме root_dir, и была (ошибочно) скопирована в отдельный репозиторий (назовем это copy_of_sub_dir_a), а система сборки была изменена на a) check root_dir, b)удалите sub_dir_a, а затем c) извлеките copy_of_sub_dir_a в root_dir / sub_dir_a.В SVN 1.6 и более ранних версиях это будет нормально работать, поскольку root_dir содержит только информацию для root_dir.Начиная с версии 1.7, root_dir имеет папку .svn, которая также содержит информацию для sub_dir_a, поэтому, когда наша система сборки попыталась извлечь copy_of_sub_dir_a, SVN выдает ошибку, указывающую, что ревизия (copy_of_sub_dir_a) не совпадает с той, что, по словам root_dir, должна быть.Правильное решение этой проблемы - НЕ использовать sub_dir_a как часть хранилища root_dir - его нужно было удалить / переместить вместо копирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...