)]}'
{
  "log": [
    {
      "commit": "87f23c342127206ebf12300c8e4e577e45a3bc1b",
      "tree": "b68701a23f698c3aeb6a23d0e272e2460e31c921",
      "parents": [
        "729481ce247f8ac29efb375ae879e4a9fed2e451"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 23 21:27:18 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:36:32 2013 +0200"
      },
      "message": "Fix merging of parameters\n\nThe merging logic was wrong, inverting the behaviour of parameter\nmerging, somewhat anyway.\n\nThis is now fixed. Entities are collected in a list, and then the list\nis reduced through merging the second element into the first. The entity\nof the current level is only merged once, at the very end.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "729481ce247f8ac29efb375ae879e4a9fed2e451",
      "tree": "8943e65955bdde9ce18c0166650a742f84bb5a5c",
      "parents": [
        "b0f63e1610cd4d91a7e1975aeb9993ae40f919e7"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:24:49 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:31:14 2013 +0200"
      },
      "message": "Add optional name attribute to entities\n\nEntities can now carry an optional name attribute, and the YamlFile\nclass uses that to store the basename of the file, which eases debugging\ntremendously.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "b0f63e1610cd4d91a7e1975aeb9993ae40f919e7",
      "tree": "f6214cb875c406832a153ee79a7da88d614bb6c8",
      "parents": [
        "e91f0597eecd4b6effaf31179c8f93bab83988c0"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:23:03 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Mon Jun 24 12:31:14 2013 +0200"
      },
      "message": "Remove debugging print calls\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "9a9b0ac4ca1fb69a7a235a5d032c4f22ad6e8f81",
      "tree": "abe6429720bb32ef5f4266539bf6195dc64759bc",
      "parents": [
        "a0db0700413a4e59bc02309289dd43c81e424d73"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 21 21:24:18 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 21 21:38:26 2013 +0200"
      },
      "message": "Allow applications postfix to be configured\n\nThe postfix _hosts appended to applications to create host groups is now\nconfigurable.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "e497b75945241303ae7556b3f7d3a3e2f4216021",
      "tree": "8449f47370a6a8a0ee1e06cc8ddbde3745897d8d",
      "parents": [
        "ae0a392ccbace6188ff66b636d45e04c8b6772dd"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 14:15:11 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 14:15:11 2013 +0200"
      },
      "message": "Handle empty top-level parameters\n\nIf classes/applications/parameters are undefined, that\u0027s not an error.\nJust make them empty collections.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "ae0a392ccbace6188ff66b636d45e04c8b6772dd",
      "tree": "ac73c2d579f554292f332d0cc22d194707ff3757",
      "parents": [
        "33223a2916918f3bc1acf20622559606ffc62670"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:46:05 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:47:36 2013 +0200"
      },
      "message": "Improved merging of null-values\n\nYAML returns \u0027None\u0027 when a key is parsed without a value. This is\nproperly handled by a95eaa35f5c48417420fe37472d8148fdbf5ddd5, except for\nthe recursive dict merger, which shouldn\u0027t overwrite existing data\nstructures when None is encountered. The solution is simply to provide\nappropriate policy entries for when the second value is a NoneType.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "33223a2916918f3bc1acf20622559606ffc62670",
      "tree": "8530bb0d7336c1054c83f8f444dd0bb30109f463",
      "parents": [
        "f0265d457bcd1e4f51bb1422ab78e23beeab50c8"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:14:49 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:15:24 2013 +0200"
      },
      "message": "test types of Entity attributes\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f0265d457bcd1e4f51bb1422ab78e23beeab50c8",
      "tree": "bf6ff59a88810a5efd2cf407e9c53421ca5d5378",
      "parents": [
        "a95eaa35f5c48417420fe37472d8148fdbf5ddd5"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:14:16 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sun Jun 16 12:15:20 2013 +0200"
      },
      "message": "Reorder Entity constructor, parameters last\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "404df4b879a8562f4fc9aa2fd444a36a446b5792",
      "tree": "accf094fdbae9663cc60e499d05ae7a2203ff19e",
      "parents": [
        "00e6a8109adcb1deada5e6a0b03fb37c68322aad"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:41:58 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:41:58 2013 +0200"
      },
      "message": "Test applications parsing in YamlFile\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "00e6a8109adcb1deada5e6a0b03fb37c68322aad",
      "tree": "0ca1f20228b648ec3c0907a115f2b136a5653ae5",
      "parents": [
        "f7858a84a165b59d0b55674b82c1cbc7c68c03f6"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:40:41 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:40:41 2013 +0200"
      },
      "message": "Handle reading of empty YamlFiles\n\npython-yaml\u0027s safe_load returns \u0027None\u0027 when it parses an empty YamlFile,\nbut since empty YamlFiles correspond to empty dictionaries, really, we\nhandle things accordingly.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f7858a84a165b59d0b55674b82c1cbc7c68c03f6",
      "tree": "dbed231d9377bfad78f55d154bcb6fce5a7d5fd7",
      "parents": [
        "e39e89076f6d78155344d71a7b524f1721c1d602"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:33:28 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Sat Jun 15 15:35:18 2013 +0200"
      },
      "message": "Identify YamlFile by path, not name\n\nThere is no point in storing a \u0027name\u0027 for a YamlFile, let\u0027s use the\npath, which is unique.\n\nAlso, adds a test for the property.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "3434b6b07a260ec50ce83e0b1fa6f58d4309fb20",
      "tree": "d7516bfecf7af10497189f718480eac313d87352",
      "parents": [
        "9b2049eef93dbed672e5d9cb672328403eb3edd3"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:40:52 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 20:40:52 2013 +0200"
      },
      "message": "Exception handling when file-not-found\n\nAdded rudimentary exception handling for when yaml_fs encounters\na node/class for which no file exists.\n\nUnfortunately, there is no way to properly communicate that to Ansible\nwhen it invokes the adapter. Oh well.\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    },
    {
      "commit": "f37f06830233ee4a30cffb684ad97bc64043f925",
      "tree": "03fdbd899c4f8ba73d958d3db3014d234aec97d1",
      "parents": [
        "f1501201df46d8d4d1ae21b302911823cee87807"
      ],
      "author": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 16:36:20 2013 +0200"
      },
      "committer": {
        "name": "martin f. krafft",
        "email": "madduck@madduck.net",
        "time": "Fri Jun 14 19:48:32 2013 +0200"
      },
      "message": "Import of working code base\n\nSigned-off-by: martin f. krafft \u003cmadduck@madduck.net\u003e\n"
    }
  ]
}
