Jämförda versioner

Nyckel

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

Innehållsförteckning

Processen

...

ö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://github.com/nvie/gitflow/wiki/Command-Line-Arguments

Git flow motsvarande git command

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

...

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

Kodblock
╰─$ git flow feature publish SKLTP-123
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'

Stega upp version i källkoden (pom.xml) genom att köra update-versions. Det ska säkerställa att vi har rätt version i pom filerna i develop när kod blir mergat från feature till develop.

Kodblock
╰─$ mvn release:update-versions -DdevelopmentVersion=x.x+1.x-SNAPSHOT 
╰─$ git commit -a -m "Updated pom version on feature branch before merge"
╰─$ git push

Färdigställ en feature branch

...

)

...

Göra en release (release branch)

Starta en release branch

Ersätta 1.0.0 med lämplig version nummer. 

Kodblock
─$ git-flow release start 1.0.0
Switched to a new branch 'release/1.0.0'
Summary of actions:
- A new branch 'release/v1.0.0' was created, based on 'develop'
- You are now on branch 'release/1.0.0'
Follow-up actions:
- Bump the version number now!
- Start committing last-minute fixes in preparing your release
- When done, run:
     git flow release finish '1.0.0'

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 release:update-versions -DdevelopmentVersion=x.x.x-RC1-SNAPSHOT 
╰─$ git commit -a -m "Updated pom version to RC1-SNAPSHOT"
╰─$ git flow release publish 1.0.0

Release RC version:er 

Kodblock
╰─$ mvn release:prepare -DtagNameFormat=@{project.version}
 
╰─$ mvn release:perform -Darguments="-Dmaven.deploy.skip=true"
	eller om man har behörighet att checka in på Nexus
╰─$ mvn release:perform
╰─$ git commit -a -m "Working on RC versions"
╰─$ git push --all

Verifiera att versionen stegats upp och taggats korrekt i git

Kodblock
╰─$ git status
On branch release/1.0.0
No changes to be committed:
 
╰─$ git tag
1.0.0-RC1

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)

Kodblock
╰─$ mvn versions:set -DnewVersion=1.0.0 -DgenerateBackupPoms=false
╰─$ mvn commit -a -m "Updated pom version to final version, no more RC's"
╰─$ git push --all
 
╰─$ mvn org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare -DtagNameFormat=@{project.version}
╰─$ mvn release:perform -Darguments="-Dmaven.deploy.skip=true"
	eller om man har behörighet att checka in på Nexus
╰─$ mvn release:perform

...

Kodblock
╰─$ git status
On branch release/1.0.0
nothing to commit, working tree clean:
 
╰─$ git tag
1.0.0
1.0.0-RC1

Färdiställ release branch

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 (

...

Påbörja en hotfix branch

Kodblock
╰─$ git-flow hotfix start v.2.3.1

Färdigställ en hotfix branch

...

hotfix

...

branch)

...

Påbörja en långlivad support branch

...

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

...

Skapa en långlivad support branch

Kodblock
git checkout -b support/v2.3.0 master