Изменения

Сравнение DVCS - несколько задач

3 байта добавлено, 17:49, 18 ноября 2009
Нет описания правки
# Делаем pull из svn в ветку bzr1 — bzr1 снова синхронизирован с svn.
# <strike>Делаем push из bzr2 в bzr1 — облом: ветки «разошлись»</strike>. Хорошо, делаем merge из bzr1 в bzr2. Коммитим (фиксируем).
# (Необязательно, но так интереснее) Снова вносим изменения в bzr2, коммитим.
# Теперь хотим протащить изменения из bzr2 в svn. Сначала делаем push из bzr2 в bzr1. Теперь история bzr1 идентична истории bzr2.
#: <font color="red">'''И это не так тривиально, как хотелось бы!'''</font>
# <strike>Делаем push из bzr1 в svn — облом: в bzr1 есть ревизия, «воткнутая» между уже зафиксированными в репозитории svn-ревизиями</strike>. И что теперь делать?
#: <pre>bzr: ERROR: Operation denied because it would change the mainline history. Set the append_revisions_only setting to False on branch "..." to allow the mainline to change.</pre>
#: Bazaar предлагает нам разрешить менять местами ревизии в SVN-репозитории, а если разрешить — всё равно обламывается и предлагает использовать rebase, возможно, . А rebase — из-за пункта 7. rebase 7 — нам не помогает — говорит поможет, а скажет «no revisions to rebase».
# Чтобы исправить эту ситуацию, клонируем svn в ветку bzrtmp.
# Делаем merge из bzr1 в bzrtmp, коммитим. Теперь в bzrtmp последней ревизией будет merge-ревизия, к которой «подцеплены» ревизии, которые мы так жаждем протащить-таки в SVN.