Продолжаем тему работы с bzr-svn.
John Szakmeister написал подробную статью Bazaar as Subversion "super client".
Ian Clatworthy (Йен Клатворси), который занимается документацией в проекте Bazaar, создал (полу) оффициальный документ Using Bazaar on Subversion projects. Документ описывает детали работы с Subversion-репозиторием при помощи Bazaar и bzr-svn.
В документе подробно описываются проблемы объединения svn-trunk с вашими bzr-ветками, применение rebase.
Читать: http://doc.bazaar-vcs.org/migration/en/foreign/bzr-on-svn-projects.html
пятница, 16 октября 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Спасибо.
ОтветитьУдалитьВроде бы так уже и делаю и все работает - а тем не менее было полезно прочитать. Очень коротко и хорошо изложено (и с немаловажными мелкими подробностями).
Привет! Что делать в следующем случае? (постарался выделить сценарий)
ОтветитьУдалить#!/bin/sh
svnadmin create test
svn co file://`pwd`/test test-co
cd test-co
echo "helloworld" > a
echo "diepeople" > b
svn add a b
svn ci -m "add a+b to svn"
cd ..
bzr branch `pwd`/test test-bzr
cd test-co
echo "tretiynah" > c
svn add c
svn ci -m "add c to svn"
cd ..
cd test-bzr
echo "rozoviyslonik" > d
bzr add d
bzr ci -m "add d to bzr"
bzr merge
bzr ci -m "merge to bzr"
echo "1nah" > a
bzr ci -m "change a in bzr"
bzr push `pwd`/../test # ФИГВАМ! Operation denied because it would change the mainline history. (логично)
bzr rebase -r 5 # ФИГВАМ! No revisions to rebase.
Вот, а теперь тот же скрипт на Mercurial - и rebase помогает!
ОтветитьУдалитьИ ещё один камень в огород: почему в bazaar до сих пор нет графов ревизий? Только не графических, а консольных!!! В git и hg есть.
#!/bin/sh
svnadmin create test
svn co file://`pwd`/test test-co
cd test-co
echo "helloworld" > a
echo "diepeople" > b
svn add a b
svn ci -m "add a+b to svn"
cd ..
hg clone file://`pwd`/test test-hg
cd test-co
echo "tretiynah" > c
svn add c
svn ci -m "add c to svn"
cd ..
cd test-hg
echo "rozoviyslonik" > d
hg add d
hg ci -m "add d to hg"
hg pull
hg merge
hg ci -m "merge to hg"
echo "1nah" > a
hg ci -m "change a in hg"
#hg push file://`pwd`/../test # ФИГВАМ! Sorry, can't find svn parent of a merge revision.
echo "5nah" > e
hg add e
hg ci -m "add e to hg"
hg rebase -d 2
hg push
А если сделать по аналогии bzr rebase --onto=2.1.1, то bzr уйдёт в Python Traceback и оттуда не вернётся.
ОтветитьУдалитьERROR: exceptions.AttributeError: 'NoneType' object has no attribute 'get_known_graph_ancestry'
Желательно такие вопросы задавать в ru_bzr.
ОтветитьУдалитьНа первый вопрос:
bzr rebase -r 5 # ФИГВАМ! No revisions to rebase.
ответ такой: надо указать ветку, относительно которой делается rebase, читайте справку на команду rebase, bzr rebase --help.
Ответ на второй вопрос: консольного графа нет потому что он не нужен. В отличие от hg и git -- bzr упорядочивает присоединенные ревизии. Читайте статью (в двух частях, не закончено еще) про mainline.
0) про ru_bzr понял, в след раз задам там
ОтветитьУдалить1) опция --onto=? нифига там не получается, я не нашёл комбинацию, при которой бы оно заработало. можете привести конкретную команду, с которой успешно отребэйзит?
2) ага, посмотрел. то есть он их правда сортирует, ясно. изврат какой, ну да ладно...
в любом случае граф хочется видеть! что это за логика - не нужен.)) ЛОР прямо какой-то)) "KDE не нужен" (c). кому не нужен?)) мне нужен.)) что, если было несколько слияний туда-сюда-обратно, да ещё и вложенных? как посмотреть на всю эту чехарду визуально?
в графическом режиме ведь показывается граф. ну нечто типа. почему бы то же самое не показать в консоли? это удобно. а так вы заставляете пользователя строить граф в голове, по-моему, это не круто. юниксоиды они ведь консоль любят))
1) По поводу rebase: в вашем примере в ветке test-bzr содержится первая ревизия из svn репо, остальные со второй и выше -- это те которые нужно rebase. Поэтому запускать надо так:
ОтветитьУдалитьbzr rebase -r2..
Синтаксис запуска немного уродский, но мне об этом не надо говорить -- пишите письма автору плагина rebase: https://launchpad.net/bzr-rewrite
2) Почему нету консольного графа? А никому пока он не нужен был, потому и нету. Вам нужен? Пишите! Фигли там сложного. Графический визуализатор графа на Линуксе (bzr-gtk) появился очень давно. Он всех устраивает.
Дальнейшие вопросы спрашивайте в ru_bzr. Комментарии в блоге предназначены совсем для другого.