Что вызывает ошибку SVN. Версия xxx не соответствует существующей версии yyy.

Я использую последнюю версию SVN для проверки некоторых файлов (используя 'svn co URL DEST'). Когда я это делаю, я получаю сообщение об ошибке «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.


person Brett    schedule 20.06.2019    source источник


Ответы (1)


Эта ошибка возникает из-за различий между версиями 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), а система сборки изменилась на а) проверить root_dir, б) удалите 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 — его нужно было удалить/переместить, а не копировать.

person Brett    schedule 21.06.2019