Недавно я столкнулся с особенно неприятной проблемой, связанной с фиксацией результата слияния в Subversion. Наш сервер Subversion @ 1.5.0, а мой клиент TortoiseSVN теперь @ 1.6.1.
Я пытаюсь слить ветку функции обратно в мой ствол. Слияние, кажется, работает хорошо; однако фиксация завершается неудачно со следующим сообщением об ошибке.
Commit failed (details follow):
File
'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as'
is out of date
'/svn/ibis/!svn/wrk/531d459d-80fa-ea46-bfb4-940d79ee6d2e/visualization/trunk/source/flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as'
path not found
You have to update your working copy first.
Мой рабочий багажник обновлен. Я даже извлек новую в другую папку, чтобы убедиться, что слияние не связано с каким-либо локальным беспорядком. Я провел еще несколько исследований по этому вопросу, и я думаю, что частью проблемы является ошибка пользователя. Я думаю, что наши проблемы:
- Некоторые разработчики работали с клиентом Subversion до 1.5, а некоторые после. Я считаю, что это может испортить информацию о слиянии.
- В других ветках мы выполнили частичные слияния. То есть мы не всегда выполняем слияния в корне ветки. Это должно было облегчить обновление усилий Flex и .NET в пределах одной ветви.
- Мы выполнили циклические (рефлексивные) слияния в нашей ветке. Это было сделано, потому что у нас было несколько параллельных ветвей, и мы хотели периодически обновлять нашу ветку последним кодом в транке.
Все эти вещи явно не рекомендуются книгой / командой Subversion. Мы усвоили наш урок и теперь знаем лучшие практики. Однако сначала нам нужно объединить и зафиксировать нашу последнюю ветку.
Какой лучший способ исправить проблемы, с которыми мы сталкиваемся?
Будет ли удаление всей информации о слиянии в стволе и ответвлении жизнеспособным решением?
Нет. Я сделал это, но это не устраняет ошибку, которую я получаю выше.