Close

Voorbereiden

De eerste stap om een project van SVN naar versiebeheer op basis van Git te migreren, is het voorbereiden van het lokale systeem van de migratieleider. In deze fase download je een handig hulpprogramma-script, koppel je een hoofdlettergevoelig bestandssysteem (indien nodig) en wijs je auteursinformatie vanuit SVN toe aan Git.

Alle volgende stappen moeten worden uitgevoerd op de lokale computer van de migratieleider.


Het migratiescript downloaden


Git wordt geleverd met de meeste hulpmiddelen die nodig zijn voor het importeren van een SVN-repository. Er ontbreken echter enkele stukjes functionaliteit die Atlassian in een handig JAR-bestand heeft verwerkt. Dit bestand vormt een integraal onderdeel van de migratie. Zorg er dus voor dat je svn-migration-scripts.jar downloadt van het Bitbucket-account van Atlassian. In deze handleiding wordt ervan uitgegaan dat je het hebt opgeslagen in je hoofdmap. Disclaimer: voor de migratie naar svn heb je een hoofdlettergevoelig bestandssysteem nodig. Dit werkt niet op NTFS. We raden aan om een Linux-machine te gebruiken.

Na het downloaden is het een goed idee om de scripts te verifiëren om er zeker van te zijn dat Java Runtime Environment, Git, Subversion en het git-svn-hulpprogramma zijn geïnstalleerd. Open een opdrachtprompt en voer de volgende opdracht uit:

java -jar ~/svn-migration-scripts.jar verify

Er wordt een foutmelding in de console weergegeven als je niet over de benodigde programma's voor het migratieproces beschikt. Zorg ervoor dat alle ontbrekende software is geïnstalleerd voordat je verder gaat.

Databases
gerelateerd materiaal

Een volledige Git-repository verplaatsen

Logo Bitbucket
Oplossing bekijken

Git leren met Bitbucket Cloud

Als je een waarschuwing krijgt dat je geen versie kunt bepalen, moet je export LANG=C (*nix) of SET LANG=C (Windows) uitvoeren en het opnieuw proberen.

Als je de migratie op een computer met OS X uitvoert, krijg je ook de volgende waarschuwing te zien:

You appear to be running on a case-insensitive file-system. This is unsupported, and can result in data loss.

We zullen deze in de volgende sectie behandelen.

Een hoofdlettergevoelige installatiekopie koppelen


De migratie naar Git moet worden uitgevoerd op een hoofdlettergevoelig bestandssysteem om beschadiging van de repository te voorkomen. Dit is een probleem als je de migratie uitvoert op een OS X-computer, omdat het OS X-bestandssysteem niet hoofdlettergevoelig is.

Als je geen OS X gebruikt, hoef je alleen maar een directory op je lokale computer aan te maken met de naam ~/GitMigration. Hier voer je de conversie uit. Daarna kun je doorgaan naar de volgende sectie.

Git-migratie: installatiekopie koppelen

Als je OS X gebruikt, moet je een hoofdlettergevoelige installatiekopie koppelen met het create-disk-image script dat is opgenomen in svn-migration-scripts.jar. Er zijn twee parameters nodig:

1. De grootte van de schijfkopie die aangemaakt moet worden in gigabytes. Je kunt elke gewenste grootte gebruiken, zolang die maar groter is dan de SVN-repository die je probeert te migreren.

2. The name of the disk image. This guide uses GitMigration for this value.

Met de volgende opdracht wordt bijvoorbeeld een schijfkopie van 5 GB aangemaakt met de naam GitMigration:

java -jar ~/svn-migration-scripts.jar create-disk-image 5 GitMigration

De schijfkopie is gekoppeld aan je hoofdmap. Je zou nu dus een map met de naam ~/GitMigration op je lokale computer moeten zien. Deze dient als een virtueel hoofdlettergevoelig bestandssysteem, en daar sla je de geconverteerde Git-repository in op.

Informatie over de auteur extraheren


SVN registreert voor elke revisie alleen de gebruikersnaam van de auteur. Git slaat echter de volledige naam en het e-mailadres van de auteur op. Dit betekent dat je een tekstbestand moet maken dat SVN-gebruikersnamen koppelt aan hun Git-tegenhangers.

Git-migratie: SVN-gebruikersnamen koppelen aan Git-gebruikersnamen

Voer de volgende opdrachten uit om dit tekstbestand automatisch te genereren:

cd ~/GitMigration 
java -jar ~/svn-migration-scripts.jar authors <svn_repo_uri> > authors.txt

Zorg ervoor dat je vervangt door de URI van de SVN-repository die je wilt migreren. Als je repository bijvoorbeeld op https://svn.example.com zou staan, moet je het volgende uitvoeren:

java -jar ~/svn-migration-scripts.jar authors https://svn.example.com > authors.txt

Er wordt een tekstbestand aangemaakt met de naam authors.txt dat de gebruikersnaam van elke auteur in de SVN-repository bevat, samen met een gegenereerde naam en e-mailadres. Dit ziet er ongeveer als volgt uit:

j.doe = j.doe <j.doe@mycompany.com> 
m.smith = m.smith <m.smith@mycompany.com>

Wijzig het gedeelte rechts van het isgelijkteken naar de volledige naam en het e-mailadres van de bijbehorende gebruiker. Je zou de bovenstaande auteurs bijvoorbeeld kunnen wijzigen in:

j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>

Samenvatting


Nu je over je migratiescripts, schijfkopie (alleen OS X) en informatie over de auteur beschikt, ben je klaar om je SVN-geschiedenis te importeren in een nieuwe Git-repository. In de volgende fase wordt uitgelegd hoe deze conversie werkt.


Deel dit artikel
Volgend onderwerp

Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Mensen die samenwerken met een muur vol tools

Bitbucket-blog

Toelichting DevOps

DevOps-leertraject

Demo Den Feature-demo's met Atlassian-experts

Hoe Bitbucket Cloud werkt met Atlassian Open DevOps

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up