Базаар је DVCS алат који веома личи на Гит, па је стога прилично једноставно конвертовати Базаар репозиторијум у Гит.
Да бисте то постигли, потребан вам је bzr-fastimport
додатак.
Процедура за инсталацију fastimport додатка се разликује на Виндоуз и системима сличним Јуниксу.
У другом случају је најједноставније да инсталирате bzr-fastimport
пакет који ће инсталирати и све неопходне зависности.
На пример, на Дебијан и системима изведеним из њега, урадили бисте следеће:
$ sudo apt-get install bzr-fastimport
На RHEL, урадили бисте следеће:
$ sudo yum install bzr-fastimport
На Федори, почевши од издања 22, нови менаџер пакета је dnf:
$ sudo dnf install bzr-fastimport
Ако пакет није доступан, можете да га инсталирате као додатак:
$ mkdir --parents ~/.bazaar/plugins # creates the necessary folders for the plugins
$ cd ~/.bazaar/plugins
$ bzr branch lp:bzr-fastimport fastimport # imports the fastimport plugin
$ cd fastimport
$ sudo python setup.py install --record=files.txt # installs the plugin
Да би овај додатак радио, такође вам је потребан и fastimport
Пајтон модул.
Следећим командама можете проверити да ли је присутан или не и инсталирати га ако треба:
$ python -c "import fastimport"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named fastimport
$ pip install fastimport
Ако није доступан, преузмите га са адресе https://pypi.python.org/pypi/fastimport/.
У првом случају (на Виндоуз систему), bzr-fastimport
се аутоматски инсталира са самосталном верзијом и подразумеваном инсталацијом (оставите штиклирана сва поља).
Тако да у овом случају није потребно да било шта урадите.
Сада се начин увоза Базаар репозиторијума разликује у зависности од тога да ли имате једну грану или радите са репозиторијумом који има неколико грана.
Извршите cd
у директоријум који садржи ваш Базаар репозиторијум и иницијализујте Гит репозиторијум:
$ cd /path/to/the/bzr/repository
$ git init
Сада једноставно извезете свој Базаар репозиторијум и конвертујете га у Гит репозиторијум следећом командом:
$ bzr fast-export --plain . | git fast-import
Зависно од величине пројекта, ваш Гит репозиторијум се изграђује у року од неколико секунди до неколико минута.
Такође можете да увезете и Базаар репозиторијум који садржи гране. Претпоставимо да имате две гране: једна представља главну грану (myProject.trunk), а друга је радна грана (myProject.work).
$ ls
myProject.trunk myProject.work
Креирајте Гит репозиторијум и извршите cd
у њега:
$ git init git-repo
$ cd git-repo
Повуците master
грану у Гит:
$ bzr fast-export --export-marks=../marks.bzr ../myProject.trunk | \
git fast-import --export-marks=../marks.git
Повуците радну грану у Гит:
$ bzr fast-export --marks=../marks.bzr --git-branch=work ../myProject.work | \
git fast-import --import-marks=../marks.git --export-marks=../marks.git
Сада вам команда git branch
приказује master
грану као и work
грану.
Проверите логове да потврдите јесу ли комплетни и решите се marks.bzr
и marks.git
фајлова.
Колико год грана да сте имали и који год метод за увоз употребили, ваш стејџ се не синхронизује са HEAD
, а увозом неколико грана се чак ни ваш радни директоријум не синхронизује.
Ситуација се једноставно решава следећом командом:
$ git reset --hard HEAD
Хајде сада да погледамо како се игноришу фајлови.
Прва ствар коју треба да урадите је да преименујете .bzrignore
у .gitignore
.
Ако .bzrignore
фајл садржи једну или неколико линија које почињу са „!!” или „RE:”, мораћете да измените и можда креирате и неколико .gitignore
фајлова како би се игнорисали потпуно исти фајлови које је игнорисао и програм Базаар.
Коначно, мораћете да креирате комит који садржи ову измену за миграцију:
$ git mv .bzrignore .gitignore
$ # modify .gitignore if needed
$ git commit -am 'Migration from Bazaar to Git'