Upload a new Patch Set
This chapter handles improving an existing patch. For creating a new patch, see Create a Patch.
-
Get the latest patchset of the patch
The latest version of the patch is still in your local git repository. If not, you must cherry-pick the latest patch set from Gerrit as described in Cherry-pick a patch.
- Edit files to improve the patch
-
Add tests (recommended)
If you add functionality, it is a good idea to add tests.
See Unit testing with the TYPO3 testing framework in TYPO3 Explained for more information about writing Unit Tests.
-
Test your changes (optional)
Run the TYPO3 testsuite locally, as described under Using runTests.sh. Otherwise, don't worry, the automatic CI will do that for every committed patch set on the TYPO3 infrastructure.
-
Add files and amend to commit
Update the change by amending the previous commit. This will overwrite the commit you fetched from Gerrit with your changes:
git commit --amend -a
Copied!Warning
Make sure to not change or remove the Change-Id: line!
You can amend as often as you want.
Bear in mind that this kind of Git commit amending is a bit different than when you do it with GitHub (and using
force-
). For Gerrit, every push will be a patch set. Previous patch sets can never be overwritten by amending, so do not worry.push
-
Push your change to Gerrit
Once you are satisfied, push your improved Patch Set to Gerrit:
git push origin HEAD:refs/for/main
Copied!Each pushed set will iterate a new patch set, and all previous patch sets can always be compared and even checked out later on.
If you want, you can even provide an individual commit message to your push, so that in gerrit your code change shows up with what usually a "commit message subject" could do:
git push origin HEAD:refs/for/main%m="Some_String_Without_Whitespace"
Copied!The underscore characters will be replaced by whitespace. You can also use the following bash script or shell alias to interactively do that:
#!/bin/bash read -p "Please enter pseudo-commit message: " answer answer=$(echo "$answer" | tr -c '[:alnum:]' '_') git push origin HEAD:refs/for/main%m=$answer
Copied!