HOW-TO:Create add-on PRs using Git Subtree Merging: Difference between revisions
Mavwolverine (talk | contribs) |
Mavwolverine (talk | contribs) |
||
Line 49: | Line 49: | ||
'''Note:''' Remember to send the PR to the correct branch. If you have pushed to gotham branch, you should request pull to the gotham branch in repo. | '''Note:''' Remember to send the PR to the correct branch. If you have pushed to gotham branch, you should request pull to the gotham branch in repo. | ||
'''Note:''' If you have multiple plugins, create separate branches e.g. gotham_myplugin from current gotham branch, commit and push to that branch and send a PR from that branch. Else, github sends all commits to the same PR. | |||
=== Updating addon to a new version === | === Updating addon to a new version === |
Revision as of 04:18, 23 August 2015
First time setup
First fork and clone the relevant official add-on repository. In this example we use the plugins repo:
git clone [email protected]:me/repo-plugins.git cd repo-plugins
Add the git repository where your addon resides as a remote:
git remote add myaddon [email protected]:me/myaddon.git git fetch myaddon
Create a new branch for the addon:
git checkout -b myaddon_branch myaddon/master
The current directory should contain the files from the myaddon repository. To switch back to gotham branch of the "repo-plugins" repository:
git checkout gotham
Note: If your addon already exist in repo, it must first be removed with:
git rm -r plugin.my.addon/
Now we use subtree merge to pull myaddon into the gotham branch of repo-plugins:
git read-tree --prefix=plugin.my.addon/ -u myaddon_branch
To see the changes that are about to be committed:
git diff --staged
Finally, commit the changes:
git commit -m "[plugin.my.addon] 1.0.1" git push origin gotham
You can now open a PR on Github.
Note: Remember to send the PR to the correct branch. If you have pushed to gotham branch, you should request pull to the gotham branch in repo. Note: If you have multiple plugins, create separate branches e.g. gotham_myplugin from current gotham branch, commit and push to that branch and send a PR from that branch. Else, github sends all commits to the same PR.
Updating addon to a new version
Updating the addon is now easy. For this example we pull the master branch from myaddon:
git checkout gotham git pull --strategy subtree --squash myaddon master git commit -m "[plugin.my.addon] 1.0.2" git push origin gotham
- NOTE: Does not work if pull.rebase=true in git config
For more info about Subtree Merging see http://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging