aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/developer.xml65
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>