Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Innehållsförteckning

Processen

...

Info
Denna sidan behövs brytas ner till flera undersidor

...

övergripande

Git flow exempel hämtade från:

...

http://danielkummer.github.io/git-flow-cheatsheet/ 


Övergripande om processen

  • Branchen master innehåller endast taggade produktions-releasermerger från releasbrancher.
  • Branchen develop är där ny funktionalitet införs (integration branch)

...

  • Varje feature utvecklas i en egen branch med develop som ursprunglig branch.
  • När en feature är klar mergas den tillbaka in i develop.
  • När branchen develop innehåller tillräckligt med features för en release, skapas en release-branch, och samtidigt startas utvecklingen för nästa release.
  • release-branch görs endast bug-fixar och dokumentationsuppdateringar.
  • När den release-branch är redo att skeppas, taggas den bed hjälp av mvn ett maven och mergas den till master och taggas med version, efter det mergas ändringar också till develop.
  • En support branch är en långlivad 'master-branch' för en viss version.

...

develop-branch: develop

release-branch: release/v<version><version>, tex release/v22.3.0

feature-branch: feature/<JIRA nr>, tex feature/SKLTP-123

...

support-branch: support/<version>, tex support/v.2.3.0

tag: <version>, tex v22.3.0

kommentar: ex SKLTP-123: Loggning av payload skall vara konfigurerbar av/på

...

https://gist.github.com/JamesMGreene/cdd0ac49f90c987e45ac

Release version hantering (pom filer och taggar)

Image Added

Installera verktyget git flow

...

Kodblock
─$ git flow init -d

Införa ny funktionalitet (feature branch)

...

Starta en feature branch

Kodblock
─$ git flow feature start SKLTP-123
Switched to a new branch 'feature/SKLTP-123'
Summary of actions:
- A new branch 'feature/SKLTP-123' was created, based on 'develop'
- You are now on branch 'feature/SKLTP-123'
Now, start committing on your feature. When done, use:
     git flow feature finish SKLTP-123

Dela en feature branch

Obs: Om ni har gjort ändringar innan publish/push då ni måste pusha kod först till remote.

Kodblock
╰─$ git flow feature publish
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:skltp-aggregerandetjanster/riv.clinicalprocess.healthcond.basic.GetAggregatedObservation.git
 * [new branch]      feature/SKLTP-123 -> feature/SKLTP-123
Already on 'feature/SKLTP-123'
Your branch is up-to-date with 'origin/feature/SKLTP-123'.
Summary of actions:
- A new remote branch 'feature/SKLTP-123' was created
- The local branch 'feature/SKLTP-123' was configured to track the remote branch
- You are now on branch 'feature/SKLTP-123'

...

Kodblock
╰─$ git flow feature finish
Switched to branch 'develop'
Already up-to-date.
Deleted branch feature/SKLTP-123 (was 039205e).
Summary of actions:
- The feature branch 'feature/SKLTP-123' was merged into 'develop'
- Feature branch 'feature/SKLTP-123' has been removed
- You are now on branch 'develop'

Göra en release (

...

Starta en release branch

Info

Ersätt x.x.x med lämplig version nummer. 

Man kan bara ha en release branch åt gången.

...

release

...

branch

...

Stega upp version i källkoden (pom.xml) genom att köra update-versions och slutföra med git flow release publish så att andra utvecklare kan se den

Kodblock
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:update-versions -DdevelopmentVersion=x.x.x-RC1-SNAPSHOT 
╰─$ git commit -a -m "Updated pom version to RC1-SNAPSHOT"
╰─$ git flow release publish

Release RC version:er 

Kodblock
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare -DtagNameFormat=@{project.version}
 
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:perform -Darguments="-Dmaven.deploy.skip=true"
	eller om man har behörighet att checka in på Nexus
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:perform

Release utan RC version:er. Final release. 

Obs: Stega upp version i källkoden (pom.xml) genom att ange nästa utvecklingscykel till x.x+1.x-SNAPSHOT (exempel: 1.1.0-SNAPSHOT)

...

...

╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare -DtagNameFormat=@{project.version}
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:perform -Darguments="-Dmaven.deploy.skip=true"
	eller om man har behörighet att checka in på Nexus
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:perform

Färdiställ release branch, 

Info

-n ska undvika skapa tag på master och -p ska pusha

Kodblock
╰─$ git flow release finish -n -p
.....
.....
Summary of actions:
- Release branch 'release/1.0.0' has been merged into 'master'
- Master branch 'master' has been back-merged into 'develop'
- Release branch 'release/1.0.0' has been locally deleted; it has been remotely deleted from 'origin'
- 'develop', 'master' and tags have been pushed to 'origin'
- You are now on branch 'develop'

Göra en rättning på en publicerad release (hotfix branch)

...

Info

En hotfix branch får endast göras för senaste release:en annars bör man göra en support branch.

Påbörja en hotfix branch

...

Färdigställ en hotfix branch

Kodblock
╰─$ git flow hotfix finish

Skapa en långlivad support branch för att kunna göra rättningar på äldre versioner (support branch

...

Påbörja en långlivad support branch

Info

Endast från tags/

Kodblock
╰─$ git flow support start 1.0.0 tags/1.0.0

Stega upp version i källkoden (pom.xml) genom att köra update-versions och slutföra med git push. Hantera denna branch som en vanlig branch.

Kodblock
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:update-versions -DdevelopmentVersion=1.0.1-RC1-SNAPSHOT 
╰─$ git commit -a -m "Updated pom version to RC1-SNAPSHOT"
╰─$ git push origin support/1.0.0

Fortsätta göra release:er från den här branch:en och skapa taggar varje gång man gör release. Som sagt är det en långlivad branch och behövs en merge till develop får man göra det manuellt.