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-paketetkex2 = Kex-paketet, version 2skalbar-sv = Paketet Skalbar 1 Sitevisionskalbar-google = Paketet Skalbar 1 Googleskalbar-365 = Paketet Skalbar 1 Microsoft365skalbar2-sv = Paketet Skalbar 2 Sitevisionskalbar2-m365 = Paketet Skalbar 2 Microsoft365intrapaket = Paketen intrapaket och intrapaket2sp = Sharepointsv = Sitevisionutil = Soleils interna repon
Exempel på <paket>
i kombination med <sajt>
:
sv_sodertorns-hogskola-exsv_kemikalieinspektionen-inskalbar-sv_sodertorns-hogskola-inskalbar-sv_kungliga-biblioteket-inkex_kemikalieinspektionen-exkex2_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-exskalbar-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)
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).
-
Skapa ett nytt repo på github enligt ovan:
skalbar2-sv_gronkoping-in
Spara adressen (https://github.com/soleilit/skalbar2-sv_gronkoping-in.git) -
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-incd skalbar2-sv_gronkoping-in
- 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"
- Sätt upp remote till det nya repo som skapats
git remote set-url origin https://github.com/soleilit/skalbar2-sv_gronkoping-in.git
- Byt branch till master och pusha upp
git branch -M mastergit 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_namecd $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 mastergit 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/master
på https://github.com/soleilit/skalbar.git
-
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)
-
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-incd skalbar-sv_folke-bernadotteakademin-in
- 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"
- 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
- Byt branch till master och pusha upp
git branch -M mastergit 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_namecd $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 mastergit 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-
Skapa ett nytt repo på github enligt ovan: sv_umea-ex Spara adressen (https://github.com/soleilit/sv_umea-ex.git)
-
Checka ut sitevision-repo
i en ny katalog och gå till katalogen
git clone https://github.com/soleilit/sitevision.git sv_umea-excd sv_umea-ex
- Filtrera så bara underkatalogen ligger kvar
git filter-branch --subdirectory-filter Umeå/Umea.se/
- Sätt upp remote till det nya repo som skapats
git remote set-url origin https://github.com/soleilit/sv_umea-ex.git
- 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_namecd $newrepo_namegit filter-branch --subdirectory-filter $newrepo_dirgit remote set-url origin "https://github.com/soleilit/${newrepo_name}.git"git push -u origin master