)]}'
{
  "commit": "b292b98c3e9a9f666ca780ba60fdb4f306eca343",
  "tree": "75cea727be50c2e5b86d5c0fa62baae379315bf7",
  "parents": [
    "2f127de7520a0b689bfe5082360eeb53a05d6e2d"
  ],
  "author": {
    "name": "Yestin Sun",
    "email": "sunyi0804@gmail.com",
    "time": "Mon Jul 02 07:32:50 2012 -0700"
  },
  "committer": {
    "name": "Shawn O. Pearce",
    "email": "sop@google.com",
    "time": "Tue Jul 31 22:13:13 2012 -0700"
  },
  "message": "Add remote alias support in manifest\n\nThe `alias` is an optional attribute in element `remote`. It can be\nused to override attibute `name` to be set as the remote name in each\nproject\u0027s .git/config. Its value can be duplicated while attribute\n`name` has to be unique across the manifest file. This helps each\nproject to be able to have same remote name which actually points\nto different remote url.\n\nIt eases some automation scripts to be able to checkout/push to same\nremote name but actually different remote url, like:\n\nrepo forall -c \"git checkout -b work same_remote/work\"\nrepo forall -c \"git push same_remote work:work\"\n\nfor example:\nThe manifest with \u0027alias\u0027 will look like:\n\n\u003c?xml version\u003d\u00271.0\u0027 encoding\u003d\u0027UTF-8\u0027?\u003e\n\u003cmanifest\u003e\n  \u003cremote alias\u003d\"same_alias\" fetch\u003d\"git://git.external1.org/\" name\u003d\"ext1\"\n      review\u003d\"http://review.external1.org\"/\u003e\n  \u003cremote alias\u003d\"same_alias\" fetch\u003d\"git://git.external2.org/\" name\u003d\"ext2\"\n      review\u003d\"http://review.external2.org\"/\u003e\n  \u003cremote alias\u003d\"same_alias\" fetch\u003d\"ssh://git.internal.com:29418\" name\u003d\"int\"\n      review\u003d\"http://review.internal.com\"/\u003e\n  \u003cdefault remote\u003d\"int\" revision\u003d\"int-branch\" sync-j\u003d\"2\"/\u003e\n  \u003cproject name\u003d\"path/to/project1\" path\u003d\"project1\" remote\u003d\"ext1\"/\u003e\n  \u003cproject name\u003d\"path/to/project2\" path\u003d\"project2\" remote\u003d\"ext2\"/\u003e\n  \u003cproject name\u003d\"path/to/project3\" path\u003d\"project3\"/\u003e\n  ...\n\u003c/manifest\u003e\n\nIn each project, use command \"git remote -v\"\n\nproject1:\nsame_alias  git://git.external1.org/project1 (fetch)\nsame_alias  git://git.external1.org/project1 (push)\n\nproject2:\nsame_alias  git://git.external2.org/project2 (fetch)\nsame_alias  git://git.external2.org/project2 (push)\n\nproject3:\nsame_alias  ssh://git.internal.com:29418/project3 (fetch)\nsame_alias  ssh://git.internal.com:29418/project3 (push)\n\nChange-Id: I2c48263097ff107f0c978f3e83966ae71d06cb90\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a827f556a7e5c7b9188d1502dfad0c0d0619c312",
      "old_mode": 33188,
      "old_path": "docs/manifest-format.txt",
      "new_id": "38868f1070b7fecd62b1616fbc07182fb33abaf6",
      "new_mode": 33188,
      "new_path": "docs/manifest-format.txt"
    },
    {
      "type": "modify",
      "old_id": "86899f63a6c740e8b6e2e1616b64038453a95d21",
      "old_mode": 33188,
      "old_path": "manifest_xml.py",
      "new_id": "d3156e5ce8de2ccc39b8981a6505723b11c12090",
      "new_mode": 33188,
      "new_path": "manifest_xml.py"
    }
  ]
}
