Till KTH:s startsida Till KTH:s startsida

Visa version

Version skapad av Fredrik Jönsson 2014-03-27 14:58

Visa < föregående | nästa >
Jämför < föregående | nästa >

Flytt social-git -> github enterprise

Vi driftsätter för närvarande en lokal instans av Github Enterprise som ska ersätta våra befintliga gitolite-servrar som i sin tur ska avvecklas helt.

Skapa konto på servern

För att kunna komma åt Infosys-arean måste man registrera sig genom att logga in och bli tillagd i organisationen på github-servern. Det gäller även senare för personer som tillkommer.

  1. Be den nya användaren att logga in på https://gita.sys.kth.se. I synnerhet konsulter behöver bli tillagd i en behörighetsgrupp i UG för att kunna logga in på den servern.
  2. Någon befintlig som är medlem i Owner för Infosys får sedan gå in i team-sidan för Infosys och lägga till den nya användaren i teamet Owner (eller något annat team om det är aktuellt).

Migrera ett repo på social-git till gita.sys.kth.se

  1. Skapa ett tomt repo för projektet i https://gita.sys.kth.se/Infosys. Man gör det genom att skapa ett repo och i formuläret välja "Infosys" som "owner". Det går dock lätt att flytta repon som man har råkat skapa hos sig själv till en grupp man är med i senare.
  2. Klona det gamla repot med alla branscher och taggar
    git clone --mirror gitolite@social-git.sys.kth.se:projektet
  3. Kliv in i projektet
    cd projektet.git
  4. Pusha repot till den nya servern
    git push --mirror git@gita.sys.kth.se:Infosys/projektet

Klart. Svårare än så är det inte egentligen. Men det återstår lite pyssel för att få Jenkins att vara med på noterna.

Ge Jenkins tillgång till det nya repot.

Det finns redan en jenkins-användare som är med i teamet Continous Intregration som har läsrättigheter i Infosys, men man måste explicit tala om vilka repon som teamet ska få tillgång till.

  1. Ge Jenkins åtkomst till repot genom att gå in på Infosys team-sida, https://gita.sys.kth.se/organizations/Infosys/teams, Continous Integration, och lägga till det nya repot i Repositories.
  2. Gå in på projektinställningarna i jenkins och uppdatera URL:en till repot till den nya URL:en.
    Jenkins gör en listning av repot i bakgrunden för att verifiera att den kan komma åt det, men för att övertyga sig kan man manuellt starta ett bygge efter att ha sparat ändringarna för att försäkra sig om att det fungerar.

Klart.

Ta bort repot ifrån social-git.sys.kth.se

När migreringen är klar måste repot markeras som borttaget i social-git.sys.kth.se så att inte uppdateringar hamnar på fel ställe och vi vet när vi kan avveckla servern.

  1. Klona konfigurationsrepot:
    git clone gitolite@social-git.sys.kth.se:gitolite-admin
  2. Kommentera ut raderna för projektet ur filen
    gitolite-admin/conf/gitolite.conf
  3. Commit:a och push:a ändringarna.

Klart.

Hantera sina befintliga lokala kloner efter migrering.

Alla som arbetar med repot behöver uppdatera sina lokala kloner efter migreringen för att peka ut den nya servern som upstream. Det enklaste är kanske att helt enkelt flytta undan den gamla klonen, klona det nya repot, flytta över eventuella lokala konfigurationsfiler och sådant som inte finns med i repot till den nya katalogen och jobba vidare därifrån.

Annars får man uppdatera det befintliga repot med en ny upstream. Det är görbart, inga konstigheter egentligen, men lite mer git-kommandomagi. 

  1. Ta bort den gamla remoten
    git remote rm origin
  2. Lägg till den nya
    git remote add origin git@gita.sys.kth.se:Infosys/projektet
  3. För att pusha och sätta den nya origin som upstream vilket jag tror att man behöver göra per branch
    git push -u origin någon-branch

Detaljerna kan variera lite beroende på hur man har satt upp den lokala klonen. T.ex kanske inte remote heter "origin", men det brukar vara det vanliga.