Jämförda versioner

Nyckel

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

...

https://github.com/nvie/gitflow

https://github.com/nvie/gitflow/wiki/Command-Line-Arguments

Installera verktyget git

...

flow

Om du som utvecklare väljer att inte installera git-flow enligt ovan så kan man använda git kommandon för att uppnå samma resultat. Dessa beskrivs separat längs ner på sidan.

...

Git flow kommer med git installation (verifierat på Windows)

Git flow första gången

Git flow krävs att man kör init det första gången. Med parametrar -d tar det default konfiguration.

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

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'

Färdigställ en feature branch

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

Stega upp version i källkoden (pom.xml). 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
╰─$ git flow feature finish SKLTP-123
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'

...

Kodblock
─$ git-flow release start v11.0.0
Switched to a new branch 'release/v11.0.0'
Summary of actions:
- A new branch 'release/v1.0.0' was created, based on 'develop'
- You are now on branch 'release/v11.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 'v11.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
Från╰─$ mvn maven-release:update-plugin 2.1.0 finns möjlighet att sätta konfiguration som underlättar releaser till Git. Rekommenderade versioner på maven-release-plugin är 2.3.2 eller 2.5.1 (ej 2.4).


tagNameFormat, överlagra default namnsättning på version för att tex sätta v.1.0.0
pushChanges, 
localCheckout, 
autoVersionSubmodules, 
Kodblock
languagexml
titlepom.xml
<build>
	<pluginManagement>
		<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
					<tagNameFormat>v@{project.version}</tagNameFormat>
                    <pushChanges>false</pushChanges>
					<localCheckout>true</localCheckout>
                </configuration>
            </plugin>
		</plugins>
	</pluginManagement>
</build>
Kodblock
╰─$ mvn release:prepare
---
---
---
╰─$ mvn release:performversions -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 push --all

Verifiera att versionen stegats upp och taggats korrekt i git

Kodblock
╰─$ git stautsstatus
On branch release/v11.0.0
ChangesNo changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
	modified:   pom.xml
Kodblock
╰─$ git tag
v11.0.0-RC1

Dela ut release branchen så att andra utvecklare kan se den

Kodblock
╰─$ git-flow release publish v1.0.0

Färdiställ release branch

Kodblock
╰─$ git-flow release finish v.1.0.0
--
--
 
╰─$ git push --tags

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

Påbörja en hotfix branch

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

Färdigställ en hotfix branch

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

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

Påbörja en långlivad support branch

Kodblock
╰─$ git-flow support start v.2.3.0

 

Git flow processen och exempel utan git-flow installerat

Hämta ut develop branchen där utveckling sker

Kodblock
git clone ssh://user@host/path/to/repo.git
git checkout -b develop origin/develop

Införa ny funktionalitet (feature branch)

Starta en feature branch

Kodblock
git checkout -b feature/SKLTP-123 develop

Dela en feature branch

Kodblock
git push -u origin feature/SKLTP-123

Färdigställ en feature branch

Kodblock
git pull origin develop
git checkout develop
git merge --no-ff feature/SKLTP-123
git push
git branch -d feature/SKLTP-123

Göra en release (release branch)

Starta en release branch

Kodblock
git checkout -b release/2.3.0 develop

Stega upp version i källkoden (pom.xml)

Kodblock
Från maven-release-plugin 2.1.0 finns möjlighet att sätta konfiguration som underlättar releaser till Git. Rekommenderade versioner på maven-release-plugin är 2.3.2 eller 2.5.1 (ej 2.4).


tagNameFormat, överlagra default namnsättning på version för att tex sätta v.1.0.0
pushChanges, 
localCheckout, 
autoVersionSubmodules, 
Kodblock
languagexml
titlepom.xml
<build>
	<pluginManagement>
		<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
					<tagNameFormat>v@{project.version}</tagNameFormat>
                    <pushChanges>false</pushChanges>
					<localCheckout>true</localCheckout>
                </configuration>
            </plugin>
		</plugins>
	</pluginManagement>
</build>

...

Release utan RC version:er. Final release. 

Obs: Stega upp version i källkoden (pom.xml) genom att köra update-versions to x.x+1.x-SNAPSHOT

Kodblock
╰─$ mvn release:update-versions -DdevelopmentVersion=1.0.0
╰─$ git commit -a -m "Updated pom version to final version"
╰─$ git push
╰─$ 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 "Updated pom version to 1.1.0-SNAPSHOT"
╰─$ git push --all

Verifiera att versionen stegats upp och taggats korrekt i git

Kodblock
╰─$ git stautsstatus
On branch release/v21.30.0
ChangesNo changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
	modified:   pom.xml
Kodblock
╰─$ git tag
v21.30.0-RC1

Dela ut release branchen så att andra utvecklare kan se den

Kodblock
git push -u origin release/v2.3.0
1.0.0-RC1

Färdiställ release branch

Kodblock
git checkout master╰─$ git merge --no-ff release/vp-2.3.0
git push

git checkout develop
git merge --no-ff release/2.3.0
git push

git branch -d release/2.3.0
 
git tag -a 2.3.0 -m "2.3.0 release" master
git push --tagsflow release finish -n -p

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

Påbörja en hotfix branch

Kodblock
╰─$ git checkout -bflow hotfix/SKLTP-112 develop start v.2.3.1

Färdigställ en hotfix branch

Kodblock
git╰─$ checkout master
git merge --no-ff-flow hotfix/SKLTP-112 git push

git checkout develop
git merge --no-ff hotfix/SKLTP-112
git push

git branch -d hotfix/SKLTP-112
 
git tag -a finish v.2.3.1

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

Påbörja en långlivad support branch

Kodblock
╰─$ git-m "flow support start v.2.3.1 release with hotfix SKLTP-122" master
git push --tags0

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

Skapa en långlivad support branch

...