vcs:gitworkflow
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vcs:gitworkflow [2020/06/17 10:01] nikic |
vcs:gitworkflow [2021/03/30 16:53] (current) nikic Drop master.php.net ssh key reference |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Git Workflow ====== | ====== Git Workflow ====== | ||
- | **Also read [[vcs:: | + | **Also read [[vcs:: |
Git does not enforce a certain workflow. For php-src we will use a workflow that is described below. | Git does not enforce a certain workflow. For php-src we will use a workflow that is described below. | ||
We will use release branches for the php-src.git repository. We will have branches for actively maintained | We will use release branches for the php-src.git repository. We will have branches for actively maintained | ||
- | versions. For example: **7.2**, **7.3**, **7.4** and **master** . A patch will be applied to the oldest possible branch. | + | versions. For example: **7.2**, **7.3**, **7.4**, **8.0** and **master**. A patch will be applied to the oldest possible branch. |
If the Release Manager of 5.6 accepts the change, commit it to the 5.6 branch. We will use regular merging between the release branches. | If the Release Manager of 5.6 accepts the change, commit it to the 5.6 branch. We will use regular merging between the release branches. | ||
Bigger features can use feature branches, but developers are encouraged to fork php on github and start implementing the | Bigger features can use feature branches, but developers are encouraged to fork php on github and start implementing the | ||
Line 25: | Line 25: | ||
==== Initial Setup ==== | ==== Initial Setup ==== | ||
- | First, go to '' | + | |
- | + | ||
- | | + | |
$ cd php-src | $ cd php-src | ||
$ git config merge.NEWS.name "Keep the NEWS file" | $ git config merge.NEWS.name "Keep the NEWS file" | ||
Line 50: | Line 48: | ||
$ git merge PHP-7.3 | $ git merge PHP-7.3 | ||
... run tests ... | ... run tests ... | ||
- | $ git checkout | + | $ git checkout |
$ git merge PHP-7.4 | $ git merge PHP-7.4 | ||
+ | ... run tests ... | ||
+ | $ git checkout master | ||
+ | $ git merge PHP-8.0 | ||
... run tests ... | ... run tests ... | ||
$ gitk master | $ gitk master | ||
... review the merges ... | ... review the merges ... | ||
- | $ git push origin PHP-7.2 PHP-7.3 PHP-7.4 master | + | $ git push origin PHP-7.2 PHP-7.3 PHP-7.4 |
... push to the official repository ... | ... push to the official repository ... | ||
| | ||
Line 83: | Line 84: | ||
$ git merge PHP-7.3 | $ git merge PHP-7.3 | ||
$ make test | $ make test | ||
- | $ git checkout | + | $ git checkout |
$ git merge PHP-7.4 | $ git merge PHP-7.4 | ||
$ make test | $ make test | ||
- | $ git push origin PHP-7.2 PHP-7.3 PHP-7.4 master | + | |
+ | $ git merge PHP-8.0 | ||
+ | $ make test | ||
+ | | ||
Additionally, | Additionally, | ||
Line 100: | Line 104: | ||
$ git checkout PHP-7.4 | $ git checkout PHP-7.4 | ||
$ git merge PHP-7.3 | $ git merge PHP-7.3 | ||
- | $ git checkout | + | $ git checkout |
$ git merge PHP-7.4 | $ git merge PHP-7.4 | ||
+ | $ git checkout master | ||
+ | $ git merge PHP-8.0 | ||
$ git push | $ git push | ||
- | **TL;DR: Always try to merge PHP-7.2 into PHP-7.3, then PHP-7.4, and then into master.** | + | **TL;DR: Always try to merge PHP-7.2 into PHP-7.3, then PHP-7.4, then PHP-8.0, and then into master.** |
==== Merge patches received per mail ==== | ==== Merge patches received per mail ==== | ||
Line 179: | Line 185: | ||
| | ||
If you don't have an issue-number, | If you don't have an issue-number, | ||
- | As stated before, branch from the lowest version possible. When you want to create a patch that needs to be incorporated into several branches, like a security fix for something in PHP-7.1, PHP-7.2, PHP-7.3, PHP-7.4 and the master, make sure you checkout a branch from PHP-7.1. You don't need to create separate pull requests for PHP-7.2, PHP-7.3, PHP-7.4 and master. | + | As stated before, branch from the lowest version possible. When you want to create a patch that needs to be incorporated into several branches, like a security fix for something in PHP-7.1, PHP-7.2, PHP-7.3, PHP-7.4, PHP-8.0 |
vcs/gitworkflow.1592388068.txt.gz · Last modified: 2020/06/17 10:01 by nikic