HOW-TO:Create add-on PRs using Git Subtree Merging: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
No edit summary
Line 2: Line 2:
=== First time setup ===
=== First time setup ===


Clone the XBMC addon repository:
First fork and clone the relevant [[official add-on repository]]. In this example we use the plugins repo:
<pre>
<pre>
git clone [email protected]:xbmc/repo-plugins.git
git clone [email protected]:me/repo-plugins.git
cd repo-plugins
cd repo-plugins
</pre>
</pre>


 
Add the git repository where your addon resides as a remote:
For this example we will use an addon named "myaddon". Add the git repo where you addon resides as a remote:
<pre>
<pre>
git remote add myaddon [email protected]:me/myaddon.git
git remote add myaddon [email protected]:me/myaddon.git
git fetch myaddon
git fetch myaddon
</pre>
</pre>


Create a new branch for the addon:
Create a new branch for the addon:

Revision as of 17:17, 13 January 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.

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


For more info about Subtree Merging see http://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging