From 89cd3d273deadf0b6a1c6b0dc8db153572e75845 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 13 Jan 2015 12:00:16 -0500 Subject: [PATCH] jsoncpp: Add README-CMake.txt Describe how to update jsoncpp from upstream. --- Utilities/cmjsoncpp/README-CMake.txt | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Utilities/cmjsoncpp/README-CMake.txt diff --git a/Utilities/cmjsoncpp/README-CMake.txt b/Utilities/cmjsoncpp/README-CMake.txt new file mode 100644 index 000000000..bf74094dd --- /dev/null +++ b/Utilities/cmjsoncpp/README-CMake.txt @@ -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='kwrobot@kitware.com' \ + 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.