Gitmigrering: Skillnad mellan sidversioner

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till navigering Hoppa till sök
(→‎CVS -> Git: Dokumentera hur man kan konvertera med hjälp av git cvsimport.)
(Publicera ett git-arkiv.)
Rad 7: Rad 7:
Det finns några problem med den här metoden, som [https://www.kernel.org/pub/software/scm/git/docs/git-cvsimport.html#issues listas i manualsidan]. Om arkivet är stort kan det också vara en långsam metod. Det finns andra metoder, t ex [http://cvs2svn.tigris.org/cvs2git.html cvs2git] som kräver direkt tillgång till filerna. Kontakta vid behov root, så kan vi kopiera filerna till din hemkatalog.
Det finns några problem med den här metoden, som [https://www.kernel.org/pub/software/scm/git/docs/git-cvsimport.html#issues listas i manualsidan]. Om arkivet är stort kan det också vara en långsam metod. Det finns andra metoder, t ex [http://cvs2svn.tigris.org/cvs2git.html 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.
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:
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:
Rad 31: Rad 31:


Mer text kommer...
Mer text kommer...

== Publicera Git-arkivet på git.lysator.liu.se ==

Logga in på https://git.lysator.liu.se/ och tryck på "New project"-knappen. Fyll i lämpliga värden. Om projektet är ett samarbetsprojekt kan det vara lämpligt att först skapa en grupp och ange den gruppen som "Namespace". Tryck på "Create project" när du fyllt i alla uppgifter.

Nu kommer det upp en sida där det under rubriken "Existing Git Repo?" står hur du gör för att publicera ditt repository. Följ instruktionerna:

<pre>cd ../accesslog.git
git remote add origin git@git.lysator.liu.se:ceder/accesslog.git
git push -u origin master</pre>

Om ditt projekt innehåller flera grenar och taggar som du vill publicera kan du ersätta den sista raden med:

<pre>git branch -d origin # git cvsimport skapar en extra gren som heter "origin". Ta bort den -- det är samma sak som master.
git push -u origin --all # Publicera alla grenar (utom origin som vi just tog bort).
git push origin --tags # Publicera alla taggar.</pre>

Versionen från 14 juli 2014 kl. 22.43

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.

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...

Publicera Git-arkivet på git.lysator.liu.se

Logga in på https://git.lysator.liu.se/ och tryck på "New project"-knappen. Fyll i lämpliga värden. Om projektet är ett samarbetsprojekt kan det vara lämpligt att först skapa en grupp och ange den gruppen som "Namespace". Tryck på "Create project" när du fyllt i alla uppgifter.

Nu kommer det upp en sida där det under rubriken "Existing Git Repo?" står hur du gör för att publicera ditt repository. Följ instruktionerna:

cd ../accesslog.git
git remote add origin git@git.lysator.liu.se:ceder/accesslog.git
git push -u origin master

Om ditt projekt innehåller flera grenar och taggar som du vill publicera kan du ersätta den sista raden med:

git branch -d origin # git cvsimport skapar en extra gren som heter "origin".  Ta bort den -- det är samma sak som master.
git push -u origin --all # Publicera alla grenar (utom origin som vi just tog bort).
git push origin --tags # Publicera alla taggar.