|
@@ -0,0 +1,66 @@
|
|
|
|
|
+The Utilities/cmjsoncpp directory contains a reduced distribution
|
|
|
|
|
+of the jsoncpp source tree with only the library source code and
|
|
|
|
|
+CMake build system. It is not a submodule; the actual content is part
|
|
|
|
|
+of our source tree and changes can be made and committed directly.
|
|
|
|
|
+
|
|
|
|
|
+We update from upstream using Git's "subtree" merge strategy. A
|
|
|
|
|
+special branch contains commits of upstream jsoncpp snapshots and
|
|
|
|
|
+nothing else. No Git ref points explicitly to the head of this
|
|
|
|
|
+branch, but it is merged into our history.
|
|
|
|
|
+
|
|
|
|
|
+Update jsoncpp from upstream as follows. Create a local branch to
|
|
|
|
|
+explicitly reference the upstream snapshot branch head:
|
|
|
|
|
+
|
|
|
|
|
+ git branch jsoncpp-upstream 53f6ccb0
|
|
|
|
|
+
|
|
|
|
|
+Use a temporary directory to checkout the branch:
|
|
|
|
|
+
|
|
|
|
|
+ mkdir jsoncpp-tmp
|
|
|
|
|
+ cd jsoncpp-tmp
|
|
|
|
|
+ git init
|
|
|
|
|
+ git pull .. jsoncpp-upstream
|
|
|
|
|
+ rm -rf *
|
|
|
|
|
+
|
|
|
|
|
+Now place the (reduced) jsoncpp content in this directory. See
|
|
|
|
|
+instructions shown by
|
|
|
|
|
+
|
|
|
|
|
+ git log 53f6ccb0
|
|
|
|
|
+
|
|
|
|
|
+for help extracting the content from the upstream svn repo. Then run
|
|
|
|
|
+the following commands to commit the new version. Substitute the
|
|
|
|
|
+appropriate date and version number:
|
|
|
|
|
+
|
|
|
|
|
+ git add --all
|
|
|
|
|
+
|
|
|
|
|
+ GIT_AUTHOR_NAME='JsonCpp Upstream' \
|
|
|
|
|
+ GIT_AUTHOR_EMAIL='[email protected]' \
|
|
|
|
|
+ GIT_AUTHOR_DATE='Thu Nov 20 08:45:58 2014 -0600' \
|
|
|
|
|
+ git commit -m 'JsonCpp 1.0.0 (reduced)' &&
|
|
|
|
|
+ git commit --amend
|
|
|
|
|
+
|
|
|
|
|
+Edit the commit message to describe the procedure used to obtain the
|
|
|
|
|
+content. Then push the changes back up to the main local repository:
|
|
|
|
|
+
|
|
|
|
|
+ git push .. HEAD:jsoncpp-upstream
|
|
|
|
|
+ cd ..
|
|
|
|
|
+ rm -rf jsoncpp-tmp
|
|
|
|
|
+
|
|
|
|
|
+Create a topic in the main repository on which to perform the update:
|
|
|
|
|
+
|
|
|
|
|
+ git checkout -b update-jsoncpp master
|
|
|
|
|
+
|
|
|
|
|
+Merge the jsoncpp-upstream branch as a subtree:
|
|
|
|
|
+
|
|
|
|
|
+ git merge -s recursive -X subtree=Utilities/cmjsoncpp \
|
|
|
|
|
+ jsoncpp-upstream
|
|
|
|
|
+
|
|
|
|
|
+If there are conflicts, resolve them and commit. Build and test the
|
|
|
|
|
+tree. Commit any additional changes needed to succeed.
|
|
|
|
|
+
|
|
|
|
|
+Finally, run
|
|
|
|
|
+
|
|
|
|
|
+ git rev-parse --short=8 jsoncpp-upstream
|
|
|
|
|
+
|
|
|
|
|
+to get the commit from which the jsoncpp-upstream branch must be started
|
|
|
|
|
+on the next update. Edit the "git branch jsoncpp-upstream" line above to
|
|
|
|
|
+record it, and commit this file.
|