2016-06-23 8 views
1

После перемещения нашего сервера SVN на совершенно другую машину по другому пути, я только узнал, что вся наша команда разработчиков не может слиться правильно.После перемещения SVN-сервера TortoiseSVN не сохраняет mergeinfo после слияния

В частности, проблема в некоторой степени похожа на проблему this question, однако это, по-видимому, не является проблемой чувствительности к случаю.

Больше в подробности, вот то, что сейчас мы используем:

  • Subversion: 1.8.16 (32 бит)
  • ToitoiseSVN: 1.9.4 (64 бит)
  • Сервер: переехал из Ubuntu 12 (32 бит) для Windows 10 (64 бит)

Как я уже говорил, эта проблема аналогична проблеме связанного вопроса, однако в этом случае я проверил путь репозитория в локальной рабочей копии и путь, из которого e сливается, и они идентичны.

Я также пробовал сделать новую проверку, но все равно не повезло: TortoiseSVN говорит, что свойства рабочей копии были обновлены, но на самом деле их не было.

After merge, TortoiseSVN says that the working copy properties were updated

При совершении слияния, на самом деле, я не вижу обновление свойств.

Here the properties on the working copy are missing

Если добавить их вручную, то все идет хорошо.

Properties manually updated

Что я могу сделать, чтобы решить эту проблему, короткую вручную записи mergeinfo каждого и каждый раз?

ответ

0

Я хотел бы поблагодарить @CiroCorvino за его помощь, как в комментариях, так и в чате, но в конце концов я нашел проблему.

Проблема, кажется, из-за того, что мы не только переместили сервер, но и пошли от подрывных 1,6 до 1,8

Запуска команды svnadmin upgrade /path/to/repository, кажется, решить эту проблему, и теперь подрывной mergeinfo сохранен правильно и автоматически.

0

в первом изображении он видеть вы объединяете от 20.0.1.45 к локальной копии .. Я думаю, что вы должны обратить вспять источник и цель вашего слияния



обновления после очистки в комментариях. ..

Я хотел бы сделать все разветвления/слияния операции, относящиеся непосредственно на сервере, а затем работать над локальной копией разветвленного версии с нормальной командой chekout и фиксации.

Таким образом, если несколько программистов работают с одной ветвью, они могут делиться своими изменениями и работать с классическими операциями обновления, проверки и фиксации.

Итак, в вашем случае, если ваш локальный проект указывает на соединительную линию, я просто обновляю/проверяю с внешней стороны на локальную, иначе сливаюсь в проекте сервера svn, на который вы указываете, фиксируете слияние, а затем обновляете в своем локальная копия.

+0

Зачем мне это нужно? Мне нужно принести последние коммиты из сундука, который находится на нашем сервере SVN, в мою локальную рабочую копию, поэтому я думаю, что это правильно слияние с http: // server/trunk -> C: /.../ working_copy –

+0

Я бы добавил, что если «поток» данных ошибочен, мы всегда делали это неправильно до сих пор ... но, по крайней мере, mergeinfo действительно сохранялся раньше! –

+0

Хорошо, мне показалось, что вы захотели объединить свои локальные изменения в туловище. Однако, я нахожу, что немного странно слияние напрямую с багажником на локальной копии. Я бы делал все операции разветвления/слияния на сервере а затем работать с локальной копией разветвленной версии с обычной командой chekout и commit .. –