Skillnad mellan versioner av "Gitmigrering"
Hoppa till navigering
Hoppa till sök
Ceder (diskussion | bidrag) (→CVS -> Git: Fixed a typo.) |
Jaadu (diskussion | bidrag) (Länka till sidan med informationen) Märke: Ny omdirigering |
||
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: