Gitmigrering

Från Lysators datorhandbok, den ultimata referensen.
Version från den 14 juli 2014 kl. 22.32 av Ceder (diskussion | bidrag) (→‎CVS -> Git: Dokumentera hur man kan konvertera med hjälp av git cvsimport.)
Hoppa till navigering Hoppa till sök

Om du idag har ett projekt som hostas på cvs.lysator.liu.se eller lsvn.lysator.liu.se måste du migrera det.

CVS -> Git

Det finns många sätt att konvertera från CVS till Git. Här beskriver jag "git cvsimport" som har en stor fördel: det fungerar även via nätverk, så man behöver inte ha hela CVS-arkivet på en lokalt åtkomlig disk. Det innebär att du kan använda den här metoden på egen hand, utan att behöva be root om hjälp.

Det finns några problem med den här metoden, som listas i manualsidan. Om arkivet är stort kan det också vara en långsam metod. Det finns andra metoder, t ex cvs2git som kräver direkt tillgång till filerna. Kontakta vid behov root, så kan vi kopiera filerna till din hemkatalog.

Men får de flesta arkiv på cvs.lysator.liu.se torde den här metoden fungera utmärkt.

Börja med att logga in på en av Lysators datorer, t ex faust som har all nödvändig programvara installerad. Checka ut koden. Här använder vi modulen accesslog som ett exempel:

cvs -d ceder@cvs.lysator.liu.se:/cvsroot/accesslog co accesslog
cd accesslog
cvs log | sed -n 's/^date: .* author: \([^;]*\);  state: .* lines:.*/\1/p'|uniq|sort|uniq>..accesslog.authors

Filen accesslog.authors innehåller nu en lista på alla användare som gjort en commit. Editera den, så att den översätter till det format som Git vill ha. Exempel:

ceder=Per Cederqvist <ceder@lysator.liu.se>
inge=Inge Wallin <inge@lysator.liu.se>

Kör sedan kommandot som gör själva konverteringen till Git:

git cvsimport -A ../accesslog.authors -R -k -C ../accesslog.git

Om allt gick bra har du nu ett Git-repository i ../accesslog.git. Följ instruktionerna nedan för att publicera det på git.lysator.liu.se.

Subversion -> Git

Mer text kommer...