Hoppa till innehåll

Repon

Namngivning

Den nya namngivningen delas in i två delar. Delarna separeras med ett understreck, för att göra det enklare att skapa skript som automatiskt skapar upp/döper om repon utifrån befintliga branches/repon. Strukturen blir följande: <paket/typ>_<sajt>

paket: Färdiga paket, ex kex, kex2, skalbar, skalbar2, etc. Interna repon namnges med util.

sajt: Här kommer främst “sajtens namn” att vara, exempelvis: kiruna, kungliga-operan, sodertorns-hogskola etc.

Använd aldrig å, ä, eller ö i repots namn. Ersätt med a, och o.

Både paket och sajt skrivs kebab-case.

Undvik förkortningar om de inte är allmänt vedertagna, exempel: SVT.

Lägg till -ex eller -in på slutet av sajtens namn för att förtydliga om det är en externwebb eller ett intranät.

Notera att ett GitHub repo får max vara 100 tecken långt.

Exempel på namngivning

Exempel på <paket>:

kex = Kex-paketet
kex2 = Kex-paketet, version 2
skalbar-sv = Paketet Skalbar 1 Sitevision
skalbar-google = Paketet Skalbar 1 Google
skalbar-365 = Paketet Skalbar 1 Microsoft365
skalbar2-sv = Paketet Skalbar 2 Sitevision
skalbar2-m365 = Paketet Skalbar 2 Microsoft365
intrapaket = Paketen intrapaket och intrapaket2
sp = Sharepoint
sv = Sitevision
util = Soleils interna repon

Exempel på <paket> i kombination med <sajt>:

sv_sodertorns-hogskola-ex
sv_kemikalieinspektionen-in
skalbar-sv_sodertorns-hogskola-in
skalbar-sv_kungliga-biblioteket-in
kex_kemikalieinspektionen-ex
kex2_kommunalforbundet-halsingland-ex

Förkortningar

Kunden Norske tannlegeforeningen (NTF), som utgår från paketet KEX (notera att förkortningen inte är allmänt vedertagen, och därför skrivs ut):

kex_norske-tannlegeforeningen-ex

Kunden Nordiska Afrikainstitutet (NAI), som inte utgår från något specifikt paket, och använder Sitevision:

sv_nordiska-afrikainstitutet-ex

Externwebb eller intranät

Vi har exempelvis utvecklat både intranät och externwebb åt kunden Kiruna. I detta fallet skapar vi två separata repon:

kex_kiruna-ex
skalbar-sv_kiruna-in

Interna repon

Byggskriptet, tidigare sv_gulp_build:

util_gulp-build

Samlingsrepo för allmänna återanvändsningsbara webappar, tidigare sv-apps:

util_apps

Skapa nya repo

För att skapa ett nytt projekt, gå in på https://github.com/soleilit/ och tryck på knappen New.

Säkerställ att du skapar ett privat repo med owner “soleilit”.

Följ namngivningen av repo ovan.

Om du skapar ett repo baserat på existerande kod (t ex ett paket) se till att inga filer skapas (kryssrutorna tomma)

Skärmdump från GitHub, bilden visar hur ett nytt repo skapas

Anonymisering av kod

För att tydligt se vilken kod som tillhör paketen och minska personberoendet har vi bestämt att vi anonymiserar alla commits som tillhör paketen när vi skapar projekt baserade på dem. Det går vid behov fortfarande att se vem som skrivit koden genom att titta i paketets eget repo.

Exempel på skapa nya repo

Här följer några “recept” på hur du kan skapa nya repon från existerande kod och anonymisera den.

Exemplen är gjorda för git bash.

I slutet av exemplen följer en listning med alla kommandon som utnyttjar variabler. Genom att byta ut värdena på variabeldeklarationerna i början kan de anpassas till dina behov.

Fråga gärna någon med större git-vana om du behöver hjälp att skapa nytt repo!

Skapa ett helt nytt repo från ett paket

Exempel: skapa ett nytt repo baserat på skalbar2-sv för ett intranät åt Grönköping (skalbar2-sv_gronkoping-in).

  1. Skapa ett nytt repo på github enligt ovan: skalbar2-sv_gronkoping-in Spara adressen (https://github.com/soleilit/skalbar2-sv_gronkoping-in.git)

  2. Checka ut skalbar2-sv i en ny katalog och gå till katalogen

Beskrivning: Kommandet nedan skapar upp ett nytt repo där du står med namnet skalbar2-sv_gronkoping-in ifrån githubrepot https://github.com/soleilit/skalbar-2.git Notera även att om du gör en kopia på Kex-2 är det inte sitevision/master utan bara master

git clone -b sitevision/master https://github.com/soleilit/skalbar-2.git skalbar2-sv_gronkoping-in
cd skalbar2-sv_gronkoping-in
  1. Anonymisera alla existerande commits
git filter-branch --env-filter '
GIT_AUTHOR_EMAIL="soleil"
GIT_AUTHOR_NAME="Soleil"
GIT_COMMITTER_EMAIL="soleil"
GIT_COMMITTER_NAME="Soleil"
' -- HEAD

kontrollera att det ser rätt ut:

git log --date=short --format="%ad %C(cyan)%an%C(reset) %s"
  1. Sätt upp remote till det nya repo
    som skapats
git remote set-url origin https://github.com/soleilit/skalbar2-sv_gronkoping-in.git
  1. Byt branch till master och pusha upp
git branch -M master
git push -u origin master

Sammanfattning med utbytbara variabler

export newrepo_name="skalbar2-sv_gronkoping-in"
export newrepo_src="https://github.com/soleilit/skalbar-2.git"
export newrepo_branch="sitevision/master"
git clone -b $newrepo_branch $newrepo_src $newrepo_name
cd $newrepo_name
git filter-branch --env-filter '
GIT_AUTHOR_EMAIL="soleil"
GIT_AUTHOR_NAME="Soleil"
GIT_COMMITTER_EMAIL="soleil"
GIT_COMMITTER_NAME="Soleil"
' -- HEAD
git remote set-url origin "https://github.com/soleilit/${newrepo_name}.git"
git branch -M master
git push -u origin master

Bryt ut en existerande paketbranch till ett nytt repo

Vi flyttar ut Folke Bernadotteakademins intranät som ligger som branch fba/masterhttps://github.com/soleilit/skalbar.git

  1. Skapa ett nytt repo på github enligt ovan: skalbar-sv_folke-bernadotteakademin-in Spara adressen (https://github.com/soleilit/skalbar-sv_folke-bernadotteakademin-in.git)

  2. Checka ut den existerande branchen i en ny katalog och gå till katalogen

git clone -b fba/master https://github.com/soleilit/skalbar.git skalbar-sv_folke-bernadotteakademin-in
cd skalbar-sv_folke-bernadotteakademin-in
  1. Anonymisera alla commits från innan branchen skapades

sitevision/master är den branch som fba/master skapades från. Med hjälp av git merge-base hittar vi den punkt när fba/master branchades så att vi kan anonymisera alla commits innan det.

branchpoint=`git merge-base origin/sitevision/master HEAD`; git filter-branch --env-filter '
if git rev-list '"$branchpoint"' | grep $GIT_COMMIT; then
GIT_AUTHOR_EMAIL="soleil"
GIT_AUTHOR_NAME="Soleil"
GIT_COMMITTER_EMAIL="soleil"
GIT_COMMITTER_NAME="Soleil"
fi' -- HEAD

kontrollera att det ser rätt ut:

git log --date=short --format="%ad %C(cyan)%an%C(reset) %s"
  1. Sätt upp remote till det nya repo
    som skapats
git remote set-url origin https://github.com/soleilit/skalbar-sv_folke-bernadotteakademin-in.git
  1. Byt branch till master och pusha upp
git branch -M master
git push -u origin master

Sammanfattning av kommandon med variabler:

export newrepo_name="skalbar-sv_folke-bernadotteakademin-in"
export newrepo_src="https://github.com/soleilit/skalbar.git"
export newrepo_branch="fba/master"
export newrepo_src_branch="sitevision/master"
git clone -b $newrepo_branch $newrepo_src $newrepo_name
cd $newrepo_name
branchpoint=`git merge-base origin/${newrepo_src_branch} HEAD`; git filter-branch --env-filter '
if git rev-list '"$branchpoint"' | grep $GIT_COMMIT; then
GIT_AUTHOR_EMAIL="soleil"
GIT_AUTHOR_NAME="Soleil"
GIT_COMMITTER_EMAIL="soleil"
GIT_COMMITTER_NAME="Soleil"
fi' -- HEAD
git remote set-url origin "https://github.com/soleilit/${newrepo_name}.git"
git branch -M master
git push -u origin master

Skapa ett helt nytt repo från en underkatalog från ett existerande repo

I git repo

sitevision ligger flera olika projekt som underkataloger. I detta exempel så bryter vi ut umea.se

  1. Skapa ett nytt repo på github enligt ovan: sv_umea-ex Spara adressen (https://github.com/soleilit/sv_umea-ex.git)

  2. Checka ut sitevision-repo

    i en ny katalog och gå till katalogen

git clone https://github.com/soleilit/sitevision.git sv_umea-ex
cd sv_umea-ex
  1. Filtrera så bara underkatalogen ligger kvar
git filter-branch --subdirectory-filter Umeå/Umea.se/
  1. Sätt upp remote till det nya repo
    som skapats
git remote set-url origin https://github.com/soleilit/sv_umea-ex.git
  1. Pusha upp till nya repo
git push -u origin master

Sammanfattning av kommandon med variabler:

export newrepo_name="sv_umea-ex"
export newrepo_src="https://github.com/soleilit/sitevision.git"
export newrepo_dir="Umeå/Umea.se/"
git clone $newrepo_src $newrepo_name
cd $newrepo_name
git filter-branch --subdirectory-filter $newrepo_dir
git remote set-url origin "https://github.com/soleilit/${newrepo_name}.git"
git push -u origin master