diff options
Diffstat (limited to '')
-rw-r--r-- | doc/developer.xml | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/doc/developer.xml b/doc/developer.xml index 3b6d0a086..e9022172c 100644 --- a/doc/developer.xml +++ b/doc/developer.xml @@ -69,12 +69,28 @@ foo(const char *abc, int xyz) <title>Hacking The Source</title> <para> + MPD sources are managed in a git repository on <ulink + url="http://git.musicpd.org/">git.musicpd.org</ulink>. + </para> + + <para> Always write your code against the latest git: </para> <programlisting>git clone git://git.musicpd.org/master/mpd.git</programlisting> <para> + If you already have a clone, update it: + </para> + + <programlisting>git pull --rebase git://git.musicpd.org/master/mpd.git master</programlisting> + + <para> + You can do without "--rebase", but we recommend that you rebase + your repository on the "master" repository all the time. + </para> + + <para> Configure with the options <option>--enable-debug --enable-werror</option>. Enable as many plugins as possible, to be sure that you don't break any disabled code. @@ -83,8 +99,55 @@ foo(const char *abc, int xyz) <para> Don't mix several changes in one single patch. Create a separate patch for every change. Tools like - <application>stgit</application> help you with that. + <application>stgit</application> help you with that. This way, + we can review your patches more easily, and we can pick the + patches we like most first. </para> + + + <section> + <title> Basic stgit usage</title> + + <para> + stgit allows you to create a set of patches and refine all of + them: you can go back to any patch at any time, and re-edit it + (both the code and the commit message). You can reorder + patches and insert new patches at any position. It encourages + creating separate patches for tiny changes. + </para> + + <para> + stgit needs to be initialized on a git repository: stg init + </para> + + <para> + Before you edit the code, create a patch: stg new + my-patch-name (stgit now asks you for the commit message). + </para> + + <para> + Now edit the code. Once you're finished, you have to "refresh" + the patch, i.e. your edits are incorporated into the patch you + have created: stg refresh + </para> + + <para> + You may now continue editing the same patch, and refresh it as + often as you like. Create more patches, edit and refresh them. + </para> + + <para> + To view the list of patches, type stg series. To go back to a + specific patch, type stg goto my-patch-name; now you can + re-edit it (don't forget stg refresh when you're finished with + that patch). + </para> + + <para> + When the whole patch series is finished, convert stgit patches + to git commits: stg commit + </para> + </section> </chapter> <chapter> |