Использование переключателя вместо слияния - PullRequest
3 голосов
/ 19 октября 2010

На данный момент я единственный человек, работающий над проектом в SVN. Чтобы оставаться законным, я должен внести изменения в ветвь и затем объединить эти изменения в ствол: так что мои ветвь и ствол в основном идентичны. В настоящее время у меня есть две рабочие копии, одна для филиала и одна для транка. Я делаю изменения в рабочей копии филиала и фиксирую их, затем выполняю svn-слияние с рабочей копией транка из расположения филиала и затем фиксирую эти изменения. Вопрос: могу ли я изменить свой процесс, чтобы у меня была только одна рабочая копия, и переключаться между веткой и стволом следующим образом? 1) переключаться на ветку, вносить изменения и фиксировать. 2) переключиться на транк, зафиксировать. 3) повторить.

Ответы [ 3 ]

5 голосов
/ 19 октября 2010

Вы можете сделать один дополнительный шаг.

1) переключиться на ветку, внести изменения и зафиксировать.2) переключиться на транк, svn merge зафиксированные изменения ветки , commit.3) повторить.

4 голосов
/ 20 октября 2010

Как показывают предыдущие ответы, можно остаться с одной рабочей копией, переключаясь назад и вперед.В этом нет ничего технически неправильного, операция семантически идентична.Тем не менее, я бы остановился на двух рабочих копиях по следующим причинам:

  • Вам все равно придется объединить изменения после переключения, так как коммутатор отменяет (теперь зафиксированные) изменения, так какуказано первым ответом.
  • Вы не можете избежать слияния, быстро скопировав свои изменения после переключения, потому что операция слияния записывает метаданные для фиксации (svn: mergeinfo в svn> = 1.5,как указано в комментарии Ричарда Фирна).
  • С отдельными рабочими копиями у вас есть «чистая» тестовая среда для ветви, без неверсированных / незафиксированных изменений соединительных линий.
  • Если вы не отправилиИзменения в рабочей копии ствола, потому что вы работаете над стволом, когда вам нужно исправить ветку, есть риск, что вы случайно совершите что-то, что не должно было быть частью исправления.Дважды - сначала в ветвь коммит, затем в транк коммит.

Единственный недостаток наличия двух рабочих копий (по крайней мере, я вижу), что вам, возможно, придется выполнить обновление SVN досделать исправление.Вы не упомянули причину, по которой вы хотите изменить процесс?

0 голосов
/ 19 октября 2010

Да, вы можете сделать это, используя svn switch.

Если ваша рабочая копия в настоящее время находится в филиале, и вы зафиксировали изменения в ветви:

svn switch svn://server/path/to/repo/trunk

Затем, чтобы вернуться в ветку:

svn switch svn://server/path/to/repo/branches/xxx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...