Skillnad mellan versioner av "Gitmigrering"

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till navigering Hoppa till sök
(→‎Subversion -> Git: Länka till John Albins instruktioner.)
(Länka till sidan med informationen)
Märke: Ny omdirigering
 
(En mellanliggande sidversion av en annan användare visas inte)
Rad 1: Rad 1:
  +
#REDIRECT [[CVS_och_SVN#Gitmigrering]]
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 [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.
 
 
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:
 
 
<pre>
 
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
 
</pre>
 
 
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:
 
 
<pre>ceder=Per Cederqvist <ceder@lysator.liu.se>
 
inge=Inge Wallin <inge@lysator.liu.se></pre>
 
 
Kör sedan kommandot som gör själva konverteringen till Git:
 
 
<pre>git cvsimport -A ../accesslog.authors -R -k -C ../accesslog.git</pre>
 
 
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 ==
 
 
Instruktionerna på http://john.albin.net/git/convert-subversion-to-git ger ett bra resultat.
 
Notera att access via http inte fungerar längre, men du kan komma åt ditt projekt med något i stil med:
 
 
<pre>svn co svn+ssh://ceder@lsvn.lysator.liu.se/svnroot/kernelwatch</pre>
 
 
Instruktionerna förutsätter att du använd en standardlayout med trunk, branches och tags. Men de ger en bra grund även om du gjort annorlunda.
 
 
== 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>
 

Nuvarande version från 5 november 2021 kl. 23.03

Omdirigering till: