diff --git a/README-dev.md b/README-dev.md
new file mode 100644
index 0000000000000000000000000000000000000000..aeae180fb00243b020de69ac919461f7a3ccae45
--- /dev/null
+++ b/README-dev.md
@@ -0,0 +1,66 @@
+Git sha1 computation
+--------------------
+
+Document to describe how the git sha1 computation takes place.
+
+### commit/revision
+
+sha1 git commit/revision computation:
+
+    commit `size`\0
+    tree `sha1-git-tree-and-subtree-in-plain-hex-string`
+    ([parent `commit-parent-n`])
+    author `name` <`email`> `date-ts` `date-offset`
+    committer `name` <`email`> `date-ts` `date-offset`
+    ([extra-header-key-n extra-header-value-n])
+
+    `commit-message`
+    (inline-gpg-signature)
+
+
+Notes:
+- [] denotes list of entries (one per line)
+- () denotes optional entry. For example, the parent entry is optional.
+- empty line at the end of the commit message
+- timestamp example: 1444054085
+- date offset for example: +0200, -0100
+
+sources:
+- commit_tree_extended: https://github.com/git/git/blob/8d530c4d64ffcc853889f7b385f554d53db375ed/commit.c#L1522
+- commit_tree: https://github.com/git/git/blob/8d530c4d64ffcc853889f7b385f554d53db375ed/commit.c#L1392
+
+### directory/tree
+
+sha1 git directory/tree computation:
+
+    tree `tree-size`\0
+    <file-perm> <file-name>\0<file-sha1-in-20-bytes-string>...<dir-perm> <dir-name>\0<dir-sha1-in-20-bytes-string>...
+
+
+Notes:
+- no newline separator between tree entries
+- no empty newline at the end of the tree entries
+- tree content header size is the length of the content
+- The tree entries are ordered according to bytes in their <name> properties.
+
+Note: Tree entries referencing trees are sorted as if their name have a trailing /
+at their end.
+
+Possible permissions are:
+- 100644 - file
+- 40000  - directory
+- 100755 - executable file
+- 120000 - symbolink link
+- 160000 - git link (relative to submodule)
+
+### content/file
+
+sha1 git content computation:
+
+    blob `blob-size`\0
+    `blob-content`
+
+Notes:
+- no newline at the end of the blob content
+
+Compress with DEFLATE and compute sha1