Add `subrepo` basic usage in developer guide. 31/29731/2
authorYujun Zhang <zhang.yujunz@zte.com.cn>
Fri, 3 Mar 2017 14:37:05 +0000 (22:37 +0800)
committerYujun Zhang <zhang.yujunz@zte.com.cn>
Tue, 7 Mar 2017 03:28:42 +0000 (03:28 +0000)
Change-Id: I4e066d91c9d0775ba698584f561cce997d60ad6b
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
DEVELOP.md

index 893efca..d6417b4 100644 (file)
@@ -46,6 +46,63 @@ It is for macOS uses TLS instead of OpenSSL and no header files supported. The s
 # export LDFLAGS='-L $openssl_install_path/lib'
 ```
 
+### Third Party Code
+
+QTIP includes a few third party code via [subrepo](https://github.com/ingydotnet/git-subrepo).
+All third party code are stored in `/third-party`.
+
+To pull the changes from remote repository, use
+
+```
+git subrepo pull third-party/<subdir>
+```
+
+It will create a new commit in parent repo, i.e. `qtip`. However, the
+auto generated commit message does not include mandatory tags such as
+`Change-Id` required by gerrit. You need to manually amend the commit to
+append those.
+
+```
+git commit --amend -s
+```
+
+Example of final commit message
+
+```
+Include third party script for license checking and amending
+The following commit message are generated automatically by git-subrepo
+-----------------------------------------------------------------------------
+git subrepo clone git@github.com:openzero-zte/License.git third-party/License
+
+subrepo:
+  subdir:   "third-party/License"
+  merged:   "61489da"
+upstream:
+  origin:   "git@github.com:openzero-zte/License.git"
+  branch:   "master"
+  commit:   "61489da"
+git-subrepo:
+  version:  "0.3.0"
+  origin:   "https://github.com/ingydotnet/git-subrepo"
+  commit:   "988f8c8"
+-----------------------------------------------------------------------------
+Change-Id: I8eab86a8ce3f26995af3e3535f31f361b4826a8b
+Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
+```
+
+Sometimes you may modify the third-party code to adapt it in `qtip`.
+To push the changes to remote repository, run
+
+```
+git subrepo push third-party/<subdir>
+```
+
+If you want to include a new repository of third party code. Use
+
+```
+git subrepo clone <remote-url> [<subdir>]
+```
+
 ## Architecture
 
 **TODO**: move to design spec