summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2008-05-08 22:29:38 -0400
committerDavid Zeuthen <davidz@redhat.com>2008-05-08 22:29:38 -0400
commit37f9df9b0568f9834452c949336783bf34e02ab9 (patch)
tree567a010da3aa10870c7f52f1c311a5e36bc9cc0f /HACKING
initial commit
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING93
1 files changed, 93 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..8d32cc0
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,93 @@
+SCM
+===
+
+ - anonymous checkouts
+
+ $ git clone git://git.freedesktop.org/git/DeviceKit-disks.git
+
+ - checkouts if you got an ssh account on fd.o (username@ is optional)
+
+ $ git clone ssh://[username@]git.freedesktop.org/git/DeviceKit-disks.git
+
+ - commit to local repository
+
+ $ git commit -a
+
+ - push local repository to master repository at fd.o (remember most patches
+ requires review at the mailing list)
+
+ $ git push
+
+ - pull changes from master repository at fd.o
+
+ $ git pull
+
+ - diff of working tree versus local repository
+
+ $ git diff
+
+ - diff of local repository vs. master repository at fd.o
+
+ synchronize with upstream repo:
+ $ git pull
+
+ (possibly merge changes)
+
+ generate the diff:
+ $ git diff origin HEAD
+
+ - influential environment variables (set these in e.g. .bash_profile)
+
+ export GIT_AUTHOR_NAME='Your Full Name'
+ export GIT_COMMITTER_NAME='Your Full Name'
+ export GIT_COMMITTER_EMAIL=youremail@domain.net
+ export GIT_AUTHOR_EMAIL=youremail@domain.net
+
+ - see also
+
+ http://www.kernel.org/pub/software/scm/git/docs/
+
+
+Committing code
+===
+
+ - Commit messages should be of the form (the five lines between the
+ lines starting with ===)
+
+=== begin example commit ===
+short explanation of the commit
+
+Longer explanation explaining exactly what's changed, whether any
+external or private interfaces changed, what bugs were fixed (with bug
+tracker reference if applicable) and so forth. Be concise but not too brief.
+=== end example commit ===
+
+ - Always add a brief description of the commit to the _first_ line of
+ the commit and terminate by two newlines (it will work without the
+ second newline, but that is not nice for the interfaces).
+
+ - First line (the brief description) must only be one sentence and
+ must not start with a capital letter. Don't use a trailing period
+ either.
+
+ - The main description (the body) is normal prose and should use normal
+ punctuation and capital letters where appropriate. Normally, for patches
+ sent to a mailing list it's copied from there.
+
+ - When committing code on behalf of others use the --author option, e.g.
+ git commit -a --author "Joe Coder <joe@coder.org>"
+
+Coding Style
+===
+
+ - Please follow the coding style already used.
+
+ - Write docs for all functions and structs and so on. We use gtkdoc format.
+
+ - All external interfaces (network protocols, file formats, etc.)
+ should have documented specifications sufficient to allow an
+ alternative implementation to be written. Our implementation should
+ be strict about specification compliance (should not for example
+ heuristically parse a file and accept not-well-formed
+ data). Avoiding heuristics is also important for security reasons;
+ if it looks funny, ignore it (or exit, or disconnect).