Skip to content

Latest commit

 

History

History
159 lines (117 loc) · 5.11 KB

import-bzr.asc

File metadata and controls

159 lines (117 loc) · 5.11 KB

Bazaar

Bazaar is een DVCS tool die veel op Git lijkt, en als gevolg is het redelijk probleemloos om een Bazaar repository in een van Git te converteren. Om dit voor elkaar te krijgen, moet je de bzr-fastimport-plugin importeren.

De bzr-fastimport plugin verkrijgen

De procedure om de fastimport plugin te installeren verschilt op een UNIX-achtige besturingssysteem en op Windows. In het eerste geval, is het het eenvoudigste om het bzr-fastimport-pakket te installeren, en dat zal alle benodigde afhankelijkheden installeren.

Bijvoorbeeld, met Debian en afgeleiden, zou je het volgende doen:

$ sudo apt-get install bzr-fastimport

Met RHEL, zou je het volgende doen:

$ sudo yum install bzr-fastimport

Met Fedora, vanaf release 22, is dnf de nieuwe package manager:

$ sudo dnf install bzr-fastimport

Als het pakket niet beschikbaar is, kan je het als een plugin installeren:

$ mkdir --parents ~/.bazaar/plugins     # maakt de benodigde folders voor de plugins
$ cd ~/.bazaar/plugins
$ bzr branch lp:bzr-fastimport fastimport   # iumporteert de fastimport plugin
$ cd fastimport
$ sudo python setup.py install --record=files.txt   # installeert de plugin

Om deze plugin te laten werken, heb je ook de fastimport Python module nodig. Je kunt controleren of deze aanwezig is of niet en het installeren met de volgende commando’s:

$ python -c "import fastimport"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named fastimport
$ pip install fastimport

Als het niet beschikbaar is, kan je hte downloaden van het adres https://pypi.python.org/pypi/fastimport/.

In het tweede geval (op Windows), wordt bzr-fastimport automatisch geinstalleerd met de standalone versie en de standaard installatie (laat alle checkboxen aangevinkt). Dus in dit geval hoef je niets te doen.

Vanaf dat moment, is de manier waarop je een Bazaar repository afhankelijk van of je een enkele branch hebt, of dat je op een repository werkt die meerdere branches heeft.

Project met een enkele branch

Ga met cd in de directory die jouw Bazaar repository bevat en initialiseer de Git repository:

$ cd /path/to/the/bzr/repository
$ git init

Nu kan je eenvoudigweg je Bazaar repository exporteren en converteren in een Git repository met het volgende commando:

$ bzr fast-export --plain . | git fast-import

Afhankelijk van de grootte van het project, wordt jouw Git repository gebouwd in een periode varierend van een paar seconden tot een paar minuten.

Het geval van een project met een hoofd-branch en een werk-branch

Je kunt ook een Bazaar repository importeren dat branches bevat. Laten we aannemen dat je twee branches hebt: een vertegenwoordigt de hoofd-branch (myProject.trunk), de andere is de werk-branch (myProject.work).

$ ls
myProject.trunk myProject.work

Maak de Git repository en ga er met cd erheen:

$ git init git-repo
$ cd git-repo

Pull de master-branch in git:

$ bzr fast-export --export-marks=../marks.bzr ../myProject.trunk | \
git fast-import --export-marks=../marks.git

Pull de werk-branch in 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 zal je nu de master-branch alsook de work-branch laten zien. Controleer de logs om je ervan te vergewissen dat ze volledig zijn en verwijder de marks.bzr en de marks.git bestanden.

De staging area synchroniseren

Onafhankelijk van het aantal branches die je had en de import-methode die je gebruikt hebt, is je staging area niet gesynchroniseerd met HEAD, en met het importeren van verschillende branches, is je werk-directory ook niet gesynchroniseerd. Deze situatie is eenvoudig op te lossen met het volgende commando:

$ git reset --hard HEAD
Het negeren van de bestanden die met .bzrignore werden genegeerd

Laten we nu eens kijken naar de te negeren bestanden. Het eerste wat we moeten doen is .bzrignore naar .gitignore hernoemen. Als het .bzrignore bestand een of meerdere regels bevat die beginnen met "!!" of "RE:", zal je deze moetten wijzigen en misschien verscheidene .gitignore-bestanden maken om precies dezelfde bestanden te negerern die Bazaar ook negeerde.

Uiteindelijk zal je een commit moeten maken die deze wijziging voor de migratie bevat:

$ git mv .bzrignore .gitignore
$ # modify .gitignore if needed
$ git commit -am 'Migration from Bazaar to Git'
Jouw repository naar de server sturen

We zijn er! Je kunt nu de repository naar zijn nieuwe thuis-server pushen:

$ git remote add origin git@my-git-server:mygitrepository.git
$ git push origin --all
$ git push origin --tags

Je Git repository is klaar voor gebruik.