)]}'
{
  "commit": "991d18afb2404beca5bc475995bf76f38729cc8f",
  "tree": "3d87223317cd15c2fc3dff0f71643dc0ca531533",
  "parents": [
    "c8c6312ace53b92403a66e61ba81898f092cabe5"
  ],
  "author": {
    "name": "akutz",
    "email": "sakutz@gmail.com",
    "time": "Thu Nov 12 14:20:40 2015 -0600"
  },
  "committer": {
    "name": "Steve Francia",
    "email": "steve.francia@gmail.com",
    "time": "Thu Dec 24 10:24:07 2015 -0500"
  },
  "message": "Adds MergeConfig functionality\n\nThis patch adds the `MergeConfig` and `MergeInConfig` functions to\nenable reading new configuration files via a merge strategy rather\nthan replace. For example, take the following as the base YAML for a\nconfiguration:\n\n    hello:\n        pop: 37890\n        world:\n        - us\n        - uk\n        - fr\n        - de\n\nNow imagine we want to read the following, new configuration data:\n\n    hello:\n        pop: 45000\n        universe:\n        - mw\n        - ad\n    fu: bar\n\nUsing the standard `ReadConfig` function the value returned by the\nnested key `hello.world` would no longer be present after the second\nconfiguration is read. This is because the `ReadConfig` function and\nits relatives replace nested structures entirely.\n\nThe new `MergeConfig` function would produce the following config\nafter the second YAML snippet was merged with the first:\n\n    hello:\n        pop: 45000\n        world:\n        - us\n        - uk\n        - fr\n        - de\n        universe:\n        - mw\n        - ad\n    fu: bar\n\nExamples showing how this works can be found in the two unit tests\nnamed `TestMergeConfig` and `TestMergeConfigNoMerge`.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b253c7578bc007b8217ae3d70a29608d0f24f421",
      "old_mode": 33188,
      "old_path": "viper.go",
      "new_id": "7c98c6f92b170af2ed96b30d11f9a610e39bde46",
      "new_mode": 33188,
      "new_path": "viper.go"
    },
    {
      "type": "modify",
      "old_id": "0c7154935dc8533d96241b487871127cbfc9a070",
      "old_mode": 33188,
      "old_path": "viper_test.go",
      "new_id": "e9bb3f4773b08e244ee53e098ff1f8d8b185edd7",
      "new_mode": 33188,
      "new_path": "viper_test.go"
    }
  ]
}
