2011-09-22 2 views
5

У меня есть ветвь SVN и багажник. Строка изменяется регулярно, а ветка - нет.SVN: Синхронизировать ветку с туловищем в Eclipse?

Время от времени (скажем, раз в неделю) Я хочу обновить локальную рабочую копию ветки с последними изменениями в багажнике.

В идеале я хотел бы сделать это так же, как и с последней версией ветки: с Eclipse: Team-> Synchronize, поэтому я могу просмотреть все изменения перед обновлением.

Это также возможно с различными репозиториями (например: багажник)? Если нет, то как люди просматривают изменения перед обновлением?

Я смотрел Team-> Merge, но это, похоже, обновляет изменения непосредственно к моей рабочей копии, без возможности сначала просмотреть изменения (функция Preview запутана, я думаю, и не предоставляет хороший боковой вид изменений/конфликтов, которые Synchronize имеет).

ответ

0

Я проверил как ветку, так и туловище как отдельные проекты затмения в рабочее пространство. Затем используйте некоторый инструмент слияния, например meld, чтобы объединить изменения между ними. После слияния вы можете обновить ветвь в Eclipse и синхронизировать ее с репозиторией svn - теперь вы можете просмотреть все изменения. (как я это делаю, так как я не верю, что svn eclipse плагин;))

+0

Мне тоже не понравилось svn в Eclipse, но теперь Subversive неплохо. Даже с большим проектом с тысячами файлов он полезен (не быстро, хотя иногда обновление занимает пару минут) – Dylan

6

Правильный способ сделать это с помощью Merge. Subclipse включает в себя слияние клиента, который делает это легко сделать. Вы правы, что он не дает вам настоящего предварительного просмотра, но способ его работы лучше с точки зрения Subversion. Интерфейс представления результатов слияния в основном совпадает с представлением «Синхронизировать». Это позволяет вам легко изучить все изменения, сделанные слиянием в вашей рабочей копии, и редактор Eclipse, который он открывает, позволяет легко удалить любые части изменений, которые вы не хотите в своем коде, прежде чем совершать.

Проблема с попыткой сделать это из представления Synchronize заключается в том, что вы выполняете слияние самостоятельно с помощью редакторов кода, а Subversion не осознает, что объединяется. Если вы позволите Subversion сначала выполнить слияние, тогда он сможет правильно обновить все свои метаданные, и вам будет идеально, если вы исправите код так, как хотите, прежде чем совершать результаты слияния.

+1

очень странное решение сначала выполнить слияние, а затем просмотреть изменения ... не может поверить, что кто-либо предпочитайте это вместо того, чтобы сначала анализировать изменения, прежде чем разрушить свою рабочую копию ... Я хочу посмотреть, что сделали другие люди, ДО Я даже хочу что-то сделать с этим ... теперь я должен очистить чужие беспорядки, когда пытаюсь посмотрите, какие возможные обновления/исправления доступны ... – Dylan

+2

Как вы чувствуете, что это разрушает вашу рабочую копию? Обычно вы не должны объединяться в рабочую копию с незавершенными изменениями. Если вам не нравится результат слияния, есть опция «Отменить», которая возвращает вашу рабочую копию так, как она была. Индивидуальные изменения можно легко удалить с помощью опции «Отменить». Мне очень странно, что кто-то захочет просмотреть каждое изменение, а не позволить инструменту выполнить работу для них, а затем просмотреть, что он сделал. –

+0

Возможно, мне просто нужно привыкнуть к этому. Я просто думаю, что странно сливаться с рабочей копией и только потом увидеть, что изменили другие люди. Мне просто нужен простой способ увидеть все предстоящие изменения, а THEN решит, нужно ли мне объединять ... – Dylan

0

Я согласен, что это не очень интуитивный дизайн, но Марк прав, вы «синхронизировать» изменения при совершении их обратно к стволу:

  • первым убедитесь, что местное отделение полностью синхронизировано с (без изменений)
  • ->Объединение ... ваша локальная копия ветви со стволом хранилища
  • теперь у вас есть локальная версия, что слияние
  • можно локально редактировать этот вариант, убедитесь, что тесты работают и нет ошибок компилятора
  • наконец синхронизации ваша локальная версия объединенного филиала с филиалом хранилища и совершать все изменения, которые были сделаны

кроме того, таким же образом вы будете объединить вашу ветку обратно в хранилище ствола

  • убедитесь, что все изменения вашей отрасли совершаются в хранилище филиала
  • переключатель к магистральному Team ->переключатель ...
  • объединить свой ствол с филиалом Team ->Merge. .. (Tab «Воссоединения»)
  • теперь у вас есть локальная версия слияния, вы можете редактировать изменения и просматривать их, убедитесь, что у вас есть рабочая версия в настоящее время
  • синхронизировать локальный хобот (объединенная версия) с хранилищем tr УНК
  • совершать все изменения, которые вы хотите, чтобы появиться в багажнике

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