Я не могу зафиксировать изменения после слияния в SVN

У меня возникла проблема с фиксацией изменений после слияния двух веток моего проекта с помощью TortoiseSVN.

Вот подробности:

Я создал ветвь слияния в основной ветке проекта, над которым я работаю.

Проект включает главный репозиторий и библиотеки, объединенные с основным репозиторием как svn external (библиотеки также разветвлены) в качестве подкаталога project.

Когда я пытался зафиксировать изменения, TortoiseSVN сказал:

Commit A
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command.

Конечно, Очистка не помогла.

Ключевое слово svn: external для каталога project было четко определено, также папка lib все еще содержала правильную версию библиотек (магистральная версия).

И сервер, и клиент SVN имеют версию 1.5.x (TortoiseSVN - 1.5.3.x).

С технической точки зрения и проект, и библиотеки являются проектами в одном репозитории SVN.

Есть идеи, что пошло не так?

Я немного искал решение в Google, но не нашел ничего полезного, поэтому попытался зафиксировать свои изменения в два этапа:

  1. зафиксировать изменения из папки проекта
  2. зафиксировать изменения из папки библиотек

Что прошло без проблем.

Но мне все еще интересно, почему я не смог зафиксировать все за один коммит.

РЕДАКТИРОВАТЬ:

  • (После ответа Кена Джи) Исправленная версия TortoiseSVN 1.3.x -> 1.5.3.x.

person Grzegorz Gierlik    schedule 21.10.2008    source источник
comment
Это что-то более сложное :( Сегодня я получил эту ошибку, когда обновлял репозиторий - SVN не мог заблокировать папку, которая была в репозитории. После очистки SVN сказал: Не удалось добавить каталог 'D: \ sites \ project \ import': управляемый версиями каталог с таким же именем уже существует, я исследую его.   -  person Grzegorz Gierlik    schedule 23.10.2008


Ответы (3)


svn: external приведет к тому, что Subversion будет комбинировать разные пути репозитория при извлечении, но в конечном итоге эти пути по-прежнему «не пересекаются», поэтому вам нужно выполнить две фиксации, чтобы получить внесены изменения.

Вот соответствующая цитата из Контроль версий с помощью Subversion < / а>

И Subversion по-прежнему действительно работает только с несвязанными рабочими копиями. Так, например, если вы хотите зафиксировать изменения, которые вы внесли в одну или несколько из этих внешних рабочих копий, вы должны явно запустить svn commit для этих рабочих копий - фиксация на первичной рабочей копии не будет рекурсивна во внешние. .

person Ken Gentle    schedule 22.10.2008

1.3 TortoiseSVN очень старый, последняя версия - 1.5.x. Начиная с 1.3, в Subversion и TortoiseSVN были внесены многочисленные изменения, поэтому обновление вашего клиента, вероятно, будет лучшим вариантом.

При этом 1.5 TortoiseSVN собирается создавать / обновлять рабочие копии до формата версии 1.5. БУДЬТЕ ОСТОРОЖНЫ при использовании TortoiseSVN (или любого клиента SVN) против предыдущей рабочей копии Subversion.

person Ken Gentle    schedule 21.10.2008

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

person Josh Kodroff    schedule 21.10.2008