\n \n \n \n\nThe hook script must be named `post-sync.py` and located at the root of the\nhook project.\n\nThe post-sync hook does not block `repo sync`; if the script fails, the sync\nstill completes successfully with a warning.\n\nTest: Added `post-sync.py` in hook project and verified it runs after `repo sync`\n\nBug: b/421694721\nChange-Id: I69f3158f0fc319d73a85028d6e90fea02c1dc8c8\nSigned-off-by: Kenny Cheng \nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/480581\nReviewed-by: Scott Lee \nReviewed-by: Gavin Mak \n","sha":"82d500eb7aa93f9bff66a4358a08d2ba2d599550","created_at":"2025-06-02 21:55","time_from_now":"1个月前","created_at_unix":1748872504}},{"name":"hooks","path":"hooks","sha":"4fa0912ed3af8d120b938c87f942a5fe0bec2703","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"release: update-hooks: helper for automatically syncing hooks\n\nThese hooks are maintained in other projects. Add a script to automate\ntheir import so people don't send us changes directly, and we can try to\nsteer them to the correct place.\n\nChange-Id: Iac0bdb3aae84dda43a1600e73107555b513ce82b\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/422177\nCommit-Queue: Mike Frysinger \nTested-by: Mike Frysinger \nReviewed-by: Josip Sokcevic \n","sha":"5591d99ee239be9116f4879bfea4a538b0b89e9c","created_at":"2024-04-24 00:17","time_from_now":"1年前","created_at_unix":1713889033}},{"name":"man","path":"man","sha":"aa2638c6c96d8ebf933f29bb01b7252024857045","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"sync: clarify job flags when using interleaved\n\n--jobs-network and --jobs-checkout are ignored with --interleaved.\n\nBug: 421935613\nChange-Id: Ib69413993c4f970b385bd09318972716e5ac3324\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/485021\nTested-by: Gavin Mak \nCommit-Queue: Gavin Mak \nReviewed-by: Scott Lee \n","sha":"6b8e9fc8db47a29dbb288cb2109a78e2518e616a","created_at":"2025-06-19 05:38","time_from_now":"27天前","created_at_unix":1750282708}},{"name":"release","path":"release","sha":"9bc6bee1dd38ba9b3a3c45aa4d7a42ab29e0265b","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"update-manpages: include in unittests\n\nPeople often forget to regen when making interface changes.\n\nWe skip the test if help2man isn't installed since it's not common,\nand it's not available on our CI bots currently.\n\nChange-Id: Ib4911a0e3fa1294ad90e4ac8afc047a0b7c2b66d\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/469741\nTested-by: Mike Frysinger \nReviewed-by: Gavin Mak \nCommit-Queue: Mike Frysinger \n","sha":"21cbcc54e99db175619959a5b185bbb4d9b81d5a","created_at":"2025-04-23 02:10","time_from_now":"3个月前","created_at_unix":1745345452}},{"name":"subcmds","path":"subcmds","sha":"8a0771a7e1b4204658a2dd3987189724bb3c6d7a","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"sync: support post-sync hook in \n\nAdd support for a new hook type \"post-sync\" declared in the manifest using\n. This allows executing a script automatically after a successful\n`repo sync`.\n\nThis is useful for initializing developer environments, installing project-wide\nGit hooks, generating configs, and other post-sync automation tasks.\n\nExample manifest usage:\n\n \n \n \n \n\nThe hook script must be named `post-sync.py` and located at the root of the\nhook project.\n\nThe post-sync hook does not block `repo sync`; if the script fails, the sync\nstill completes successfully with a warning.\n\nTest: Added `post-sync.py` in hook project and verified it runs after `repo sync`\n\nBug: b/421694721\nChange-Id: I69f3158f0fc319d73a85028d6e90fea02c1dc8c8\nSigned-off-by: Kenny Cheng \nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/480581\nReviewed-by: Scott Lee \nReviewed-by: Gavin Mak \n","sha":"82d500eb7aa93f9bff66a4358a08d2ba2d599550","created_at":"2025-06-02 21:55","time_from_now":"1个月前","created_at_unix":1748872504}},{"name":"tests","path":"tests","sha":"4bf8ec0ed48b60cd18654cf80c2f0afab2b709e7","type":"dir","submodule_git_url":null,"size":0,"is_readme_file":false,"content":null,"target":null,"commit":{"message":"sync: Share self-update logic between sync modes\n\nThe logic for checking for repo self-updates lives in _FetchMain, which\nis part of the \"phased\" sync path.\n\nExtract this logic into a new _UpdateRepoProject helper method. Call\nthis common helper from _ExecuteHelper before either sync mode begins,\nso the repo self-update check is always performed.\n\nBug: 421935613\nChange-Id: I9a804f43fbf6239c4146be446040be531f12fc8a\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/484041\nReviewed-by: Scott Lee \nCommit-Queue: Gavin Mak \nTested-by: Gavin Mak \n","sha":"f7a3f99dc9e92556f3a0c588633b651439b5f7db","created_at":"2025-06-24 00:04","time_from_now":"22天前","created_at_unix":1750694666}},{"name":".flake8","path":".flake8","sha":"83d055938a6c6cbf72c7eff71fd329eb597109e9","type":"file","submodule_git_url":null,"size":403,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"flake8: Ignore .venv directory\n\n.venv is by convention a very common place for venvs and\nis the default in some tools, for example like \"Astral uv\".\nThe third-party packages installed there should not be linted.\n\nChange-Id: I3278d90c2fdfc8a34a2488e82d4df8e836111ce1\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/469941\nTested-by: Erik Elmeke \nCommit-Queue: Josip Sokcevic \nReviewed-by: Mike Frysinger \nReviewed-by: Josip Sokcevic \n","sha":"0f200bb3a1dedafdc435a86f0308f22469b4e404","created_at":"2025-04-23 16:16","time_from_now":"3个月前","created_at_unix":1745396203}},{"name":".gitattributes","path":".gitattributes","sha":"cdd8546db151e608599bf3563024b726a5c56bbd","type":"file","submodule_git_url":null,"size":121,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Adds additional crlf clobber avoidance.\n\nAdds the hook-scripts to .gitattributes due to the shell-scripts not\nliking CRLF which they will get if a user sets 'autocrlf = true'\nin their global gitconfig.\n\nFurther, since the python interpreter can handle either CRLF or LF, \npython-scripts specific line-ending rules have been removed.\n\nChange-Id: I2d6bfd491b2f626b9ca93c40a3a7f2cfba6c54f0\n","sha":"01952e6634441291f5909c4e88639593a9a539f7","created_at":"2016-04-22 20:36","time_from_now":"9年前","created_at_unix":1461328571}},{"name":".gitignore","path":".gitignore","sha":"4e91be94ce6c44f707d62358e6ce183eb4882f3e","type":"file","submodule_git_url":null,"size":109,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Add parallelism to 'branches' command\n\nSpread the operation of querying which local branches exist across a\npool of processes and build the name map of projects -> branches as\nthese tasks finish rather than blocking on the entire query. The search\noperations are submitted in batches to reduce the overhead of interprocess\ncommunication. The `chunksize` argument used to control this batch size\nwas selected by incrementing through powers of two until it stopped being\nfaster.\n\nChange-Id: Ie3d7f799ee8e83e5058536caf53e2979175408b7\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/291342\nTested-by: Chris Mcdonald \nReviewed-by: Mike Frysinger \n","sha":"8add62325dbe4df60cde1af6b093d99e79685140","created_at":"2020-12-10 05:27","time_from_now":"4年前","created_at_unix":1607549279}},{"name":".gitreview","path":".gitreview","sha":"35a13c025650f7bf6318fe1a00976fe0c19efe4d","type":"file","submodule_git_url":null,"size":98,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"git-review: add config file\n\nThis is used by the `git review` tool that some people use.\n\nChange-Id: I8dac4e1dad155109a05181deaec61e1a74857b1f\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/323698\nReviewed-by: Raman Tenneti \nTested-by: Mike Frysinger \n","sha":"bf40957b38c65f5092a3569bfd104bba2cc81b4a","created_at":"2021-11-14 13:43","time_from_now":"3年前","created_at_unix":1636868619}},{"name":".isort.cfg","path":".isort.cfg","sha":"bc47b6144a2135c280f719ceccd0bdba4dfebc5d","type":"file","submodule_git_url":null,"size":1290,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"isort: format codebase\n\nChange-Id: I6f11d123b68fd077f558d3c21349c55c5f251019\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/383715\nReviewed-by: Gavin Mak \nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \n","sha":"6447733eb28ea188d551ae518a7e51ebf63a4350","created_at":"2023-08-22 09:20","time_from_now":"1年前","created_at_unix":1692667232}},{"name":".mailmap","path":".mailmap","sha":"caf1c98f0a6da62c5721961de2b01d39e807f61c","type":"file","submodule_git_url":null,"size":1040,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Update .mailmap\n\nChange-Id: I502a07e7702b73db9f0933cbfd4007c119e3463a\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254700\nTested-by: David Pursehouse \nReviewed-by: Mike Frysinger \n","sha":"afbccdb11e3aad56ba9b07f4321ec4752a0edb93","created_at":"2020-02-13 12:23","time_from_now":"5年前","created_at_unix":1581567793}},{"name":".project","path":".project","sha":"3aefb86b2344899259412bab03bca3893575f461","type":"file","submodule_git_url":null,"size":362,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Set correct name in PyDev and Eclipse project config\n\nThe name of the project is shown as \"repo\" in the project list in\nthe Eclipse workspace.\n\nThis change renames it to \"git-repo\" to match the name of the git\nrepository.\n\nThe existing project in Eclipse must be removed (it is not necessary\nto delete project contents on disk) and re-imported for the change to\ntake effect.\n\nChange-Id: I2ac022d22f46e5361dfe49c0dbcad482aaefe628\n","sha":"9d5bf60d3ce18441d43deb6ad9cec931b94e10b6","created_at":"2013-04-18 09:57","time_from_now":"12年前","created_at_unix":1366250266}},{"name":".pydevproject","path":".pydevproject","sha":"837d544904d371be386cd054a8eae8ed886906d0","type":"file","submodule_git_url":null,"size":414,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Leverage the next keyword from python 2.7\n\nThis is literally what the next keyword is for.\nhttps://www.python.org/dev/peps/pep-3114/\n\nChange-Id: I843755910b847737b077ff2361ba3e04409db0f0\n","sha":"d4b13c280b5cabd19899b0a6f53ef9041f9d01aa","created_at":"2018-12-19 13:21","time_from_now":"6年前","created_at_unix":1545196872}},{"name":"LICENSE","path":"LICENSE","sha":"d645695673349e3947e8e5ae42332d0ac3164cd7","type":"file","submodule_git_url":null,"size":11358,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"setup.py: add basic packaging files\n\nThis is needed to use tox, and tox lets us test multiple Python\nversions easily.\n\nChange-Id: I813c418a8f7109294a4adb9f6b21be459cbeca70\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/247173\nReviewed-by: David Pursehouse \nTested-by: Mike Frysinger \n","sha":"5b3a57c3ffdabe421817dbb63ee243b2c9cd0797","created_at":"2019-12-02 10:56","time_from_now":"5年前","created_at_unix":1575255367}},{"name":"MANIFEST.in","path":"MANIFEST.in","sha":"8be47dd252a4dbb6cee1ea639f9fc46e30990df4","type":"file","submodule_git_url":null,"size":99,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"setup.py: add basic packaging files\n\nThis is needed to use tox, and tox lets us test multiple Python\nversions easily.\n\nChange-Id: I813c418a8f7109294a4adb9f6b21be459cbeca70\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/247173\nReviewed-by: David Pursehouse \nTested-by: Mike Frysinger \n","sha":"5b3a57c3ffdabe421817dbb63ee243b2c9cd0797","created_at":"2019-12-02 10:56","time_from_now":"5年前","created_at_unix":1575255367}},{"name":"README.md","path":"README.md","sha":"5c5ee5d91054d0d71d4a0992629a4d4f237de3ae","type":"file","submodule_git_url":null,"size":2104,"is_readme_file":true,"content":null,"target":null,"commit":{"message":"update links from monorail to issuetracker\n\nChange-Id: Ie05373aa4becc0e4d0cab74e7ea0a61eb2cc2746\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/377014\nCommit-Queue: Mike Frysinger \nReviewed-by: Gavin Mak \nTested-by: Mike Frysinger \n","sha":"696e0c48a9de4d20f3de65bc014ca2991d16f041","created_at":"2023-06-15 05:08","time_from_now":"2年前","created_at_unix":1686776907}},{"name":"SUBMITTING_PATCHES.md","path":"SUBMITTING_PATCHES.md","sha":"671a43fe220cc1d648c32fbd64f462e87a0ebd62","type":"file","submodule_git_url":null,"size":6241,"is_readme_file":0,"content":null,"target":null,"commit":{"message":"SUBMITTING_PATCHES: update with commit queue details\n\nChange-Id: I59dffb8524cb95b3fd4196bcecd18426f09bf9c4\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/373694\nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \nReviewed-by: Gavin Mak \n","sha":"acb9523eaab5a0aead71b85b5d17ac9b715b513c","created_at":"2023-05-12 03:02","time_from_now":"2年前","created_at_unix":1683831744}},{"name":"color.py","path":"color.py","sha":"9d0ce7c36a6aa0a6b3386e399269d9d0a5a92ec6","type":"file","submodule_git_url":null,"size":4971,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"color: fix have_fg not re assign to true\n\nIn method _parse the value of this variable 'have_fg ' is always\nFalse, Maybe reassign it to True is lost.\nI guess the author’s original intention was:\nif set some value in gitconfig file(for ex: text = black red ul),\nthe first is bg color, the second is fg color, and the last one is attr.\n\n\n\nChange-Id: I372698fe625db4c1fdaa94ea7f193a80a850ecb9\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/425997\nReviewed-by: Mike Frysinger \nTested-by: Bright Ma \nCommit-Queue: Josip Sokcevic \n","sha":"d8b4101eae8d7b650c9fd27d4f6495a032187279","created_at":"2024-05-18 15:38","time_from_now":"1年前","created_at_unix":1716017926}},{"name":"command.py","path":"command.py","sha":"c32a095cf50d5f0dcb72d5d70d51b10ea6118000","type":"file","submodule_git_url":null,"size":19605,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Remove gitc support from repo\n\ngitc is no longer available.\n\nChange-Id: I0cbfdf936832f2cdd4876104ae3cc5a6e26154e2\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/444841\nReviewed-by: Gavin Mak \nCommit-Queue: Josip Sokcevic \nTested-by: Josip Sokcevic \n","sha":"cf411b3f03c3bd6001701136be5a874a85f1dc91","created_at":"2024-12-04 05:29","time_from_now":"7个月前","created_at_unix":1733261341}},{"name":"completion.bash","path":"completion.bash","sha":"09291d5c460bac2ebb33cba3b25aa7cf785e8c3e","type":"file","submodule_git_url":null,"size":4301,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"bash-completion: complete projects with repo forall\n\nWe need to add a little bit more logic here so we stop completing\nprojects once we see the -c argument.\n\nBug: https://crbug.com/gerrit/14797\nChange-Id: Ic2ba4f3dd616ec49d8ad754ff62d0d6e0250dbe6\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/312905\nReviewed-by: Xin Li \nTested-by: Mike Frysinger \n","sha":"cfa00d6e3d6825cbe4390fbaaf5980cd6b1be77e","created_at":"2021-07-27 03:30","time_from_now":"4年前","created_at_unix":1627327810}},{"name":"constraints.txt","path":"constraints.txt","sha":"0a29d56ad36262fe0e6a578dae66a7b2e2acd19e","type":"file","submodule_git_url":null,"size":53,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"tox: sync black settings with run_tests\n\nWe updated run_tests to use black-25, so update tox too.\n\nChange-Id: I7ee6471fbc78825bd2dbc8c1f8dab9dc10460852\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/463601\nTested-by: Mike Frysinger \nReviewed-by: Scott Lee \nCommit-Queue: Mike Frysinger \n","sha":"507d46360097b830b0ad6a3c6f137c54a1b0ed8c","created_at":"2025-03-28 04:34","time_from_now":"4个月前","created_at_unix":1743107675}},{"name":"editor.py","path":"editor.py","sha":"359cff938bf63bc4156173f8b8ff5d3968ddeba1","type":"file","submodule_git_url":null,"size":3285,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"cleanup: Update codebase to expect Python 3.6\n\n- Bump minimum version to Python 3.6.\n- Use f-strings in a lot of places.\n\nChange-Id: I2aa70197230fcec2eff8e7c8eb754f20c08075bb\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/389034\nTested-by: Jason R. Coombs \nReviewed-by: Mike Frysinger \nCommit-Queue: Jason R. Coombs \n","sha":"b32ccbb66bb16965ecb8b4e266c4e45186636c1b","created_at":"2023-09-29 23:04","time_from_now":"1年前","created_at_unix":1695999889}},{"name":"error.py","path":"error.py","sha":"1a65f365c98586ae5979ffb95aada7531ffa492a","type":"file","submodule_git_url":null,"size":4983,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Remove gitc support from repo\n\ngitc is no longer available.\n\nChange-Id: I0cbfdf936832f2cdd4876104ae3cc5a6e26154e2\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/444841\nReviewed-by: Gavin Mak \nCommit-Queue: Josip Sokcevic \nTested-by: Josip Sokcevic \n","sha":"cf411b3f03c3bd6001701136be5a874a85f1dc91","created_at":"2024-12-04 05:29","time_from_now":"7个月前","created_at_unix":1733261341}},{"name":"event_log.py","path":"event_log.py","sha":"9ef52247d1787511028f91b79871f5e9398ae34d","type":"file","submodule_git_url":null,"size":6377,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"[event_log] Stop leaking semaphore resources\n\nWith the global state and fork, we are left with uncleaned resources.\nIsolate mulitprocessing.Value in a function so we stop the leak.\n\nBug: 353656374\nChange-Id: If50bb544bda12b72f00c02bc1d2c0d19de000b88\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/440261\nCommit-Queue: Josip Sokcevic \nReviewed-by: Gavin Mak \nTested-by: Josip Sokcevic \n","sha":"ae384f8623aeb36809541a5e07900a77a0960d5f","created_at":"2024-10-24 07:15","time_from_now":"9个月前","created_at_unix":1729725312}},{"name":"fetch.py","path":"fetch.py","sha":"55845af7e6feec092d2ce41719ecbb3636247441","type":"file","submodule_git_url":null,"size":1891,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"isort: format codebase\n\nChange-Id: I6f11d123b68fd077f558d3c21349c55c5f251019\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/383715\nReviewed-by: Gavin Mak \nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \n","sha":"6447733eb28ea188d551ae518a7e51ebf63a4350","created_at":"2023-08-22 09:20","time_from_now":"1年前","created_at_unix":1692667232}},{"name":"git_command.py","path":"git_command.py","sha":"04844079fa04d2c5281a87f58dc9b3683388feee","type":"file","submodule_git_url":null,"size":20047,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"black: update to v25\n\nRequires a little reformatting in the tree.\n\nChange-Id: Iaa40fe0dfca372c49c04cc26edccb5f7b0c2a8ad\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/462883\nCommit-Queue: Mike Frysinger \nReviewed-by: Gavin Mak \nTested-by: Mike Frysinger \n","sha":"cd391e77d0462b2768f4f5deb5954a6f456047e9","created_at":"2025-03-26 00:53","time_from_now":"4个月前","created_at_unix":1742921635}},{"name":"git_config.py","path":"git_config.py","sha":"14c4c11afb602cb01cdc96dbc39a6539db61cc81","type":"file","submodule_git_url":null,"size":27272,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"git_config: prefer XDG config location\n\nCurrently, repo ignores the XDG path for the git config file, and\ncreates a new one in the user's home directory. This commit changes the\nbehavior to prefer the XDG path if it exists, which matches git behavior\nand avoids littering the home directory.\n\nBug: 40012443\nChange-Id: Icd3ec6db6b0832f47417bbe98ff9461306b51297\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/448385\nTested-by: lmaor xenix <25misha52@gmail.com>\nReviewed-by: Mike Frysinger \n","sha":"1711bc23c0ab6ff4a51bf948c703c81073dd3475","created_at":"2025-01-23 21:05","time_from_now":"6个月前","created_at_unix":1737637547}},{"name":"git_refs.py","path":"git_refs.py","sha":"237c15ae21cd511daa8f99680e50b546b1df8087","type":"file","submodule_git_url":null,"size":4883,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"cleanup: convert exceptions to OSError\n\nIn Python 3, these exceptions were merged into OSError, so switch\neverything over to that.\n\nChange-Id: If876a28b692de5aa5c62a3bdc8c000793ce52c63\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/390376\nReviewed-by: Aravind Vasudevan \nCommit-Queue: Mike Frysinger \nTested-by: Mike Frysinger \n","sha":"ae824fb2fc2770c84cc34c1956e4c76c8c972860","created_at":"2023-10-21 01:47","time_from_now":"1年前","created_at_unix":1697824060}},{"name":"git_ssh","path":"git_ssh","sha":"ef840e9b02fdd54ed11ece6ed960b3f5a518c9cc","type":"file","submodule_git_url":null,"size":681,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"add license header to a few more files\n\nChange-Id: I24e6b1df5f15a8e71c0f4a9edac505a8902ec267\n","sha":"61b2d41f26ba5d31fd718b560125b23d4ccf5ede","created_at":"2019-06-14 01:23","time_from_now":"6年前","created_at_unix":1560446596}},{"name":"git_superproject.py","path":"git_superproject.py","sha":"d808bb09322df0712060e440e4962bc4e448eef1","type":"file","submodule_git_url":null,"size":20129,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"info: fix mismatched format args and wrong symbol name\n\nBug: 416589884\nChange-Id: Icbaade585932f0cbb51367e07925ef606f089697\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/482762\nCommit-Queue: Scott Lee \nReviewed-by: Mike Frysinger \nLint: Scott Lee \nTested-by: Scott Lee \n","sha":"b262d0e4619c406a2708856ed312091d21c5bf39","created_at":"2025-06-11 03:34","time_from_now":"1个月前","created_at_unix":1749584058}},{"name":"git_trace2_event_log.py","path":"git_trace2_event_log.py","sha":"57edee4d38ceea6d59ff70ecb7cd0234f0c00668","type":"file","submodule_git_url":null,"size":1099,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Log ErrorEvent for failing GitCommands\n\nChange-Id: I270af7401cff310349e736bef87e9b381cc4d016\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/385054\nReviewed-by: Gavin Mak \nCommit-Queue: Jason Chang \nTested-by: Jason Chang \n","sha":"f19b310f15e03e92075e7409c9d7f0956acc007d","created_at":"2023-09-02 07:07","time_from_now":"1年前","created_at_unix":1693609654}},{"name":"git_trace2_event_log_base.py","path":"git_trace2_event_log_base.py","sha":"56db7a8f5ba1ef42dec3b479ca976b253e39e807","type":"file","submodule_git_url":null,"size":12896,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Fix event log command event hierarchy.\n\ncommand should be cmd_name, to match what git is emitting. This also\nfixes arguments, so that only relevant arguments are passed instead\nof the entire sys.args, which will contain wrapper information\n\nChange-Id: Id436accfff511292ec2c56798fffb2306dda38fc\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/443741\nCommit-Queue: Josip Sokcevic \nReviewed-by: Gavin Mak \nTested-by: Josip Sokcevic \n","sha":"fafd1ec23e8001dc7bdf87f2aa1f59051e33224d","created_at":"2024-11-22 08:02","time_from_now":"8个月前","created_at_unix":1732233760}},{"name":"hooks.py","path":"hooks.py","sha":"fc31a5ef92b77901587acfc117d9b416fd97a38e","type":"file","submodule_git_url":null,"size":20423,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"sync: support post-sync hook in \n\nAdd support for a new hook type \"post-sync\" declared in the manifest using\n. This allows executing a script automatically after a successful\n`repo sync`.\n\nThis is useful for initializing developer environments, installing project-wide\nGit hooks, generating configs, and other post-sync automation tasks.\n\nExample manifest usage:\n\n \n \n \n \n\nThe hook script must be named `post-sync.py` and located at the root of the\nhook project.\n\nThe post-sync hook does not block `repo sync`; if the script fails, the sync\nstill completes successfully with a warning.\n\nTest: Added `post-sync.py` in hook project and verified it runs after `repo sync`\n\nBug: b/421694721\nChange-Id: I69f3158f0fc319d73a85028d6e90fea02c1dc8c8\nSigned-off-by: Kenny Cheng \nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/480581\nReviewed-by: Scott Lee \nReviewed-by: Gavin Mak \n","sha":"82d500eb7aa93f9bff66a4358a08d2ba2d599550","created_at":"2025-06-02 21:55","time_from_now":"1个月前","created_at_unix":1748872504}},{"name":"main.py","path":"main.py","sha":"707b74ad26c9a11aa888650d65425146027c888e","type":"file","submodule_git_url":null,"size":28195,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Remove gitc support from repo\n\ngitc is no longer available.\n\nChange-Id: I0cbfdf936832f2cdd4876104ae3cc5a6e26154e2\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/444841\nReviewed-by: Gavin Mak \nCommit-Queue: Josip Sokcevic \nTested-by: Josip Sokcevic \n","sha":"cf411b3f03c3bd6001701136be5a874a85f1dc91","created_at":"2024-12-04 05:29","time_from_now":"7个月前","created_at_unix":1733261341}},{"name":"manifest_xml.py","path":"manifest_xml.py","sha":"30c5b590ba112a1b7bfaf78769b698e3101c7aec","type":"file","submodule_git_url":null,"size":86485,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"manifest: Remove redundant re-raise of BaseExceptions\n\nThis change should be a noop from a functional point of view.\nExceptions inheriting directly from BaseException (KeyboardInterrupt,\nSystemExit) are not caught by \"except Exception\", they will instead\ncontinue raising upwards the stack, so there is no need to explicitly\ncatch and re-raise them.\n\nChange-Id: Ic10764af4a6c05d1162f8b21651e7864ed742286\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/469601\nReviewed-by: Mike Frysinger \nReviewed-by: Josip Sokcevic \nTested-by: Erik Elmeke \n","sha":"c061593a12b39f0333ead979c478abfa33fa420c","created_at":"2025-04-21 14:04","time_from_now":"3个月前","created_at_unix":1745215467}},{"name":"pager.py","path":"pager.py","sha":"d295535cd0a3a81ab72852c46acd0831570aec92","type":"file","submodule_git_url":null,"size":3550,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"pager: drop unused global vars\n\nWe use global when we need to write to a variable, not read it.\nThis function only reads, so drop the keyword.\n\nChange-Id: Iee91998fba67fd3e8ebaf2f4a79f95032f70b1c0\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/464501\nReviewed-by: Scott Lee \nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \n","sha":"9ecb80ba26649e47c1f357c1a6f48c028ce7689b","created_at":"2025-04-02 11:30","time_from_now":"3个月前","created_at_unix":1743564632}},{"name":"platform_utils.py","path":"platform_utils.py","sha":"45ffec78c43eb8b96fcc8d4126ddbdf6824ebbb9","type":"file","submodule_git_url":null,"size":7704,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Fix EROFS error when root fs is mounted read-only\n\nrepo attempts to create /etc/.repo_gitconfig.json file, and fails if\nroot file system is mounted read-only. Removing non-existing file on\nread-only filesystem results in EROFS instead of ENOENT.\n\nBug: 401018409\nChange-Id: I64edc0567fb88649f3fd8cacb65a8780744640d4\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/458821\nReviewed-by: Mike Frysinger \nTested-by: Egor Duda \nCommit-Queue: Egor Duda \n","sha":"f070331a4c9993f4eedcc7fcb1c4b4807db69d02","created_at":"2025-03-06 15:14","time_from_now":"4个月前","created_at_unix":1741245284}},{"name":"platform_utils_win32.py","path":"platform_utils_win32.py","sha":"f10d9d0a5a8e9be220b6a804d3ae934d667042ab","type":"file","submodule_git_url":null,"size":7674,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"cleanup: Update codebase to expect Python 3.6\n\n- Bump minimum version to Python 3.6.\n- Use f-strings in a lot of places.\n\nChange-Id: I2aa70197230fcec2eff8e7c8eb754f20c08075bb\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/389034\nTested-by: Jason R. Coombs \nReviewed-by: Mike Frysinger \nCommit-Queue: Jason R. Coombs \n","sha":"b32ccbb66bb16965ecb8b4e266c4e45186636c1b","created_at":"2023-09-29 23:04","time_from_now":"1年前","created_at_unix":1695999889}},{"name":"progress.py","path":"progress.py","sha":"31a4890a62632e68ab7d04bc31ff7fc5bb8cefdc","type":"file","submodule_git_url":null,"size":7042,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"progress: Make end() idempotent\n\nThis fixes the double \"done\" text on successful interleaved sync.\n\nBug: 421935613\nChange-Id: I4f01418cb0340129a8f0a2a5835f7e3fa6a6b119\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/487081\nReviewed-by: Scott Lee \nTested-by: Gavin Mak \nCommit-Queue: Gavin Mak \n","sha":"5d95ba8d85e189c25195beae9431d5f6823e083a","created_at":"2025-06-27 02:08","time_from_now":"19天前","created_at_unix":1750961314}},{"name":"project.py","path":"project.py","sha":"2d802f24900e3d5d0098e3a9c69b64c2351da12c","type":"file","submodule_git_url":null,"size":172638,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"Fallback to full sync when depth enabled fetch of a sha1 fails\n\nIn sha1 mode, when depth is enabled, syncing the revision from\nupstream may not work because some servers only allow fetching\nnamed refs. Fetching a specific sha1 may result in an error like\n'server does not allow request for unadvertised object'. In this\ncase, attempt a full sync with depth disabled.\n\nBug: 410825502\nChange-Id: If51bcf18b877cd9491706f5bc3d6fd13c0c3d4f3\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/468282\nCommit-Queue: Kaushik Lingarkar \nTested-by: Kaushik Lingarkar \nReviewed-by: Gavin Mak \nReviewed-by: Mike Frysinger \n","sha":"a94457d1ce04b31f63734a8c8a1dc668668af39d","created_at":"2025-04-08 08:08","time_from_now":"3个月前","created_at_unix":1744070887}},{"name":"pyproject.toml","path":"pyproject.toml","sha":"6a6a583af74f3d68a9baba42b843986dd2893902","type":"file","submodule_git_url":null,"size":842,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"run_tests: move test filtering to pytest markers\n\nMove the test disable logic even closer to the exact test that's\ndisabled. This way people updating tests have a better chance of\nseeing they'll get reduced coverage in the CQ.\n\nChange-Id: I57c1a073a844019798b27e14d742fd32925d9ae8\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/462882\nTested-by: Mike Frysinger \nReviewed-by: Gavin Mak \nCommit-Queue: Mike Frysinger \n","sha":"8310436be083f8268bf8325bb2ffb65e9e178f6f","created_at":"2025-03-26 00:50","time_from_now":"4个月前","created_at_unix":1742921436}},{"name":"repo","path":"repo","sha":"2526ab03fdc8eb364e9fa2e50441c49690a721d5","type":"file","submodule_git_url":null,"size":44952,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"launcher: switch command quoting to shlex.quote\n\nMinor fix, but just in case, provides properly quoted commands for\npeople to copy & paste.\n\nChange-Id: Ia9fce5c0df9f51cbed9d49861adcf6821251e46f\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/466821\nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \nReviewed-by: Gavin Mak \n","sha":"0214730c9afaf732b3571f3f63416fea9f98a65c","created_at":"2025-04-10 07:59","time_from_now":"3个月前","created_at_unix":1744243145}},{"name":"repo_logging.py","path":"repo_logging.py","sha":"639382a296b69b77562966ef18e00cf797e4caa2","type":"file","submodule_git_url":null,"size":2897,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"logging: Fix log formatting with colored output\n\nThe log message is already formatted before being passed to the colorer.\nTo avoid the exception \"TypeError: not enough arguments for format\nstring\", we should use the `nofmt_colorer` instead.\n\nThis bug occurs only when the formatted string still contains '%'\ncharacter. The following snippet can reproduce the bug:\n\n```\nfrom repo_logging import RepoLogger\nRepoLogger(__name__).error(\"%s\", \"100% failed\")\n```\n\nChange-Id: I4e3977b3d21aec4e0deb95fc1c6dd1e59272d695\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/432017\nTested-by: Shik Chen \nCommit-Queue: Shik Chen \nReviewed-by: Mike Frysinger \n","sha":"9bf8236c24839045787fa284471fab950485285c","created_at":"2024-07-01 18:51","time_from_now":"1年前","created_at_unix":1719831093}},{"name":"repo_trace.py","path":"repo_trace.py","sha":"ee224ea7c8b528e946d7847cf24a96fd8a1ff52d","type":"file","submodule_git_url":null,"size":4925,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"cleanup: delete redundant \"r\" open mode\n\nChange-Id: I86ebb8c5a9dc3752e8a25f4b11b64c5be3a6429e\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/390375\nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \nReviewed-by: Aravind Vasudevan \n","sha":"034950b9eebacd6598ea518a0b254845bc806ab6","created_at":"2023-10-21 01:47","time_from_now":"1年前","created_at_unix":1697824022}},{"name":"requirements.json","path":"requirements.json","sha":"2976eece30b696dc78794d275c5a12b7ba086bfe","type":"file","submodule_git_url":null,"size":2273,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"git: raise hard version to 1.9.1\n\nDebian 7 Wheezy went EOL in May 2018. We don't need to carry support\nfor that anymore as there have been 5 major releases since. Ubuntu\nPrecise went EOL in Apr 2019 (including the extended support phase).\nThat means we can bump the required git version from 1.7.9 to 1.9.1.\n\ngit-1.7.9 was released in 2012 while git-1.9.1 was released in 2014.\nSo that shouldn't be a problem either. And we've been warning people\nusing git versions older than 1.9.1 for 3 years now that they need to\nupgrade.\n\nChange-Id: Ifbbf72f51010b0a944c2785895d1b605333f9146\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/415637\nReviewed-by: Josip Sokcevic \nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \n","sha":"12f6dc49e9827e51f0deff5730e734ead52acf71","created_at":"2024-03-22 01:06","time_from_now":"1年前","created_at_unix":1711040771}},{"name":"run_tests","path":"run_tests","sha":"9a8fad3bcbba29f979c57897f82d0db68f2250fd","type":"file","submodule_git_url":null,"size":3670,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"run_tests: only allow help2man skipping in CI\n\nMake sure we run this for local devs.\n\nChange-Id: I472b7c347086d54649dd9d5778eea4737447b353\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/471921\nTested-by: Mike Frysinger \nReviewed-by: Scott Lee \nCommit-Queue: Mike Frysinger \n","sha":"c448ba9cc7c68b91a122e293402dcc96f511b655","created_at":"2025-05-01 02:38","time_from_now":"3个月前","created_at_unix":1746038332}},{"name":"run_tests.vpython3","path":"run_tests.vpython3","sha":"e6dfe7c63de807c7a6fbb0f90df18a6911da4bc9","type":"file","submodule_git_url":null,"size":2469,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"tox: sync black settings with run_tests\n\nWe updated run_tests to use black-25, so update tox too.\n\nChange-Id: I7ee6471fbc78825bd2dbc8c1f8dab9dc10460852\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/463601\nTested-by: Mike Frysinger \nReviewed-by: Scott Lee \nCommit-Queue: Mike Frysinger \n","sha":"507d46360097b830b0ad6a3c6f137c54a1b0ed8c","created_at":"2025-03-28 04:34","time_from_now":"4个月前","created_at_unix":1743107675}},{"name":"run_tests.vpython3.8","path":"run_tests.vpython3.8","sha":"aed5c0c760759046b27b45729853f8e9153de861","type":"file","submodule_git_url":null,"size":1388,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"run_tests: enable Python 3.8 CI coverage\n\nChange-Id: I507da20d3b7234e9f2a22d7654a6405b362eebaf\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/464541\nReviewed-by: Gavin Mak \nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \n","sha":"85ee1738e62741bb2fdec0581988c4eeb11712f1","created_at":"2025-04-02 11:50","time_from_now":"3个月前","created_at_unix":1743565830}},{"name":"setup.py","path":"setup.py","sha":"dca44ade1f67e567aae04573879f0f58daef9938","type":"file","submodule_git_url":null,"size":2143,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"isort: format codebase\n\nChange-Id: I6f11d123b68fd077f558d3c21349c55c5f251019\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/383715\nReviewed-by: Gavin Mak \nTested-by: Mike Frysinger \nCommit-Queue: Mike Frysinger \n","sha":"6447733eb28ea188d551ae518a7e51ebf63a4350","created_at":"2023-08-22 09:20","time_from_now":"1年前","created_at_unix":1692667232}},{"name":"ssh.py","path":"ssh.py","sha":"ffa0d6c0256be47197c92f5d25170809ca4b4d32","type":"file","submodule_git_url":null,"size":12432,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"ssh: Set git protocol version 2 on SSH ControlMaster\n\nAccording to https://git-scm.com/docs/protocol-v2#_ssh_and_file_transport,\nwhen using SSH, the environment variable GIT_PROTOCOL must be set\nwhen establishing the connection to the git server.\n\nNormally git does this by itself. But in repo-tool where the SSH\nconnection is managed by the repo-tool, it must be passed in\nexplicitly instead.\n\nUnder some circumstances of environment configuration, this\ncaused all repo sync commands over ssh to always use\ngit protocol version 1. Even when git was configured to use\nversion 2.\n\nUsing git protocol v2 can significantly improve fetch speeds,\nsince it uses server side filtering of refs, reducing the\namount of unneccessary objects to send.\n\nChange-Id: I6d4c3b7300a6090d707480b1a638ed03622fa71a\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/411362\nTested-by: Erik Elmeke \nReviewed-by: Mike Frysinger \nCommit-Queue: Erik Elmeke \n","sha":"eede374e3ec446d5f03c12a886efcb2d8f946917","created_at":"2024-03-01 00:33","time_from_now":"1年前","created_at_unix":1709224431}},{"name":"tox.ini","path":"tox.ini","sha":"2847f2ac30d379b32a2053d7a682e808c08a1311","type":"file","submodule_git_url":null,"size":1514,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"tox.ini: Make the lint and format environments run black for all code\n\nThis matches the extra files specified in run_tests.\n\nChange-Id: Ic8999383a17b3ec7ae27322323ea44eeaa40c968\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/434998\nTested-by: Josip Sokcevic \nReviewed-by: Josip Sokcevic \nCommit-Queue: Josip Sokcevic \n","sha":"1c53b0fa444d66076a0c364a41864474b9b0d6c5","created_at":"2024-08-14 02:21","time_from_now":"11个月前","created_at_unix":1723573267}},{"name":"wrapper.py","path":"wrapper.py","sha":"55082248f860155cefd6e35b6b7c8d7500649665","type":"file","submodule_git_url":null,"size":1111,"is_readme_file":null,"content":null,"target":null,"commit":{"message":"git_command: unify soft/hard versions with requirements.json\n\nUse the requirements logic in the wrapper to load versions out of the\nrequirements.json file to avoid duplicating them in git_command.py.\n\nChange-Id: Ib479049fc54ebc6f52c2c30d1315cf1734ff1990\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/415617\nReviewed-by: Josip Sokcevic \nCommit-Queue: Mike Frysinger \nTested-by: Mike Frysinger \n","sha":"4406642e20d2b984631e6099664058013095ce49","created_at":"2024-03-22 00:58","time_from_now":"1年前","created_at_unix":1711040281}}]},"projectMenu":[{"menu_name":"home"},{"menu_name":"code"},{"menu_name":"issues"},{"menu_name":"devops"},{"menu_name":"versions"},{"menu_name":"wiki"},{"menu_name":"resources"},{"menu_name":"activity"}],"projectReadMe":"%7B%22type%22%3A%22file%22%2C%22encoding%22%3A%22base64%22%2C%22size%22%3A2104%2C%22name%22%3A%22README.md%22%2C%22path%22%3A%22README.md%22%2C%22content%22%3A%22%23%20repo%5Cn%5CnRepo%20is%20a%20tool%20built%20on%20top%20of%20Git.%20%20Repo%20helps%20manage%20many%20Git%20repositories%2C%5Cndoes%20the%20uploads%20to%20revision%20control%20systems%2C%20and%20automates%20parts%20of%20the%5Cndevelopment%20workflow.%20%20Repo%20is%20not%20meant%20to%20replace%20Git%2C%20only%20to%20make%20it%5Cneasier%20to%20work%20with%20Git.%20%20The%20repo%20command%20is%20an%20executable%20Python%20script%5Cnthat%20you%20can%20put%20anywhere%20in%20your%20path.%5Cn%5Cn*%20Homepage%3A%20%3Chttps%3A%2F%2Fgerrit.googlesource.com%2Fgit-repo%2F%3E%5Cn*%20Mailing%20list%3A%20%5Brepo-discuss%20on%20Google%20Groups%5D%5Brepo-discuss%5D%5Cn*%20Bug%20reports%3A%20%3Chttps%3A%2F%2Fissues.gerritcodereview.com%2Fissues%3Fq%3Dis%3Aopen%2520componentid%3A1370071%3E%5Cn*%20Source%3A%20%3Chttps%3A%2F%2Fgerrit.googlesource.com%2Fgit-repo%2F%3E%5Cn*%20Overview%3A%20%3Chttps%3A%2F%2Fsource.android.com%2Fsource%2Fdeveloping.html%3E%5Cn*%20Docs%3A%20%3Chttps%3A%2F%2Fsource.android.com%2Fsource%2Fusing-repo.html%3E%5Cn*%20%5Brepo%20Manifest%20Format%5D(.%2Fdocs%2Fmanifest-format.md)%5Cn*%20%5Brepo%20Hooks%5D(.%2Fdocs%2Frepo-hooks.md)%5Cn*%20%5BSubmitting%20patches%5D(.%2FSUBMITTING_PATCHES.md)%5Cn*%20Running%20Repo%20in%20%5BMicrosoft%20Windows%5D(.%2Fdocs%2Fwindows.md)%5Cn*%20GitHub%20mirror%3A%20%3Chttps%3A%2F%2Fgithub.com%2FGerritCodeReview%2Fgit-repo%3E%5Cn*%20Postsubmit%20tests%3A%20%3Chttps%3A%2F%2Fgithub.com%2FGerritCodeReview%2Fgit-repo%2Factions%3E%5Cn%5Cn%23%23%20Contact%5Cn%5CnPlease%20use%20the%20%5Brepo-discuss%5D%20mailing%20list%20or%20%5Bissue%20tracker%5D%20for%20questions.%5Cn%5CnYou%20can%20%5Bfile%20a%20new%20bug%20report%5D%5Bnew-bug%5D%20under%20the%20%5C%22repo%5C%22%20component.%5Cn%5CnPlease%20do%20not%20e-mail%20individual%20developers%20for%20support.%5CnThey%20do%20not%20have%20the%20bandwidth%20for%20it%2C%20and%20often%20times%20questions%20have%20already%5Cnbeen%20asked%20on%20%5Brepo-discuss%5D%20or%20bugs%20posted%20to%20the%20%5Bissue%20tracker%5D.%5CnSo%20please%20search%20those%20sites%20first.%5Cn%5Cn%23%23%20Install%5Cn%5CnMany%20distros%20include%20repo%2C%20so%20you%20might%20be%20able%20to%20install%20from%20there.%5Cn%60%60%60sh%5Cn%23%20Debian%2FUbuntu.%5Cn%24%20sudo%20apt-get%20install%20repo%5Cn%5Cn%23%20Gentoo.%5Cn%24%20sudo%20emerge%20dev-vcs%2Frepo%5Cn%60%60%60%5Cn%5CnYou%20can%20install%20it%20manually%20as%20well%20as%20it's%20a%20single%20script.%5Cn%60%60%60sh%5Cn%24%20mkdir%20-p%20~%2F.bin%5Cn%24%20PATH%3D%5C%22%24%7BHOME%7D%2F.bin%3A%24%7BPATH%7D%5C%22%5Cn%24%20curl%20https%3A%2F%2Fstorage.googleapis.com%2Fgit-repo-downloads%2Frepo%20%3E%20~%2F.bin%2Frepo%5Cn%24%20chmod%20a%2Brx%20~%2F.bin%2Frepo%5Cn%60%60%60%5Cn%5Cn%5Cn%5Bnew-bug%5D%3A%20https%3A%2F%2Fissues.gerritcodereview.com%2Fissues%2Fnew%3Fcomponent%3D1370071%5Cn%5Bissue%20tracker%5D%3A%20https%3A%2F%2Fissues.gerritcodereview.com%2Fissues%3Fq%3Dis%3Aopen%2520componentid%3A1370071%5Cn%5Brepo-discuss%5D%3A%20https%3A%2F%2Fgroups.google.com%2Fforum%2F%23!forum%2Frepo-discuss%5Cn%22%2C%22sha%22%3A%225c5ee5d91054d0d71d4a0992629a4d4f237de3ae%22%2C%22replace_content%22%3A%22%23%20repo%5Cn%5CnRepo%20is%20a%20tool%20built%20on%20top%20of%20Git.%20%20Repo%20helps%20manage%20many%20Git%20repositories%2C%5Cndoes%20the%20uploads%20to%20revision%20control%20systems%2C%20and%20automates%20parts%20of%20the%5Cndevelopment%20workflow.%20%20Repo%20is%20not%20meant%20to%20replace%20Git%2C%20only%20to%20make%20it%5Cneasier%20to%20work%20with%20Git.%20%20The%20repo%20command%20is%20an%20executable%20Python%20script%5Cnthat%20you%20can%20put%20anywhere%20in%20your%20path.%5Cn%5Cn*%20Homepage%3A%20%3Chttps%3A%2F%2Fgerrit.googlesource.com%2Fgit-repo%2F%3E%5Cn*%20Mailing%20list%3A%20%5Brepo-discuss%20on%20Google%20Groups%5D%5Brepo-discuss%5D%5Cn*%20Bug%20reports%3A%20%3Chttps%3A%2F%2Fissues.gerritcodereview.com%2Fissues%3Fq%3Dis%3Aopen%2520componentid%3A1370071%3E%5Cn*%20Source%3A%20%3Chttps%3A%2F%2Fgerrit.googlesource.com%2Fgit-repo%2F%3E%5Cn*%20Overview%3A%20%3Chttps%3A%2F%2Fsource.android.com%2Fsource%2Fdeveloping.html%3E%5Cn*%20Docs%3A%20%3Chttps%3A%2F%2Fsource.android.com%2Fsource%2Fusing-repo.html%3E%5Cn*%20%5Brepo%20Manifest%20Format%5D(%2Ffolkslinux%2Fgit-repo%2Ftree%2Fmain%2Fdocs%2Fmanifest-format.md)%5Cn*%20%5Brepo%20Hooks%5D(%2Ffolkslinux%2Fgit-repo%2Ftree%2Fmain%2Fdocs%2Frepo-hooks.md)%5Cn*%20%5BSubmitting%20patches%5D(%2Ffolkslinux%2Fgit-repo%2Ftree%2Fmain%2FSUBMITTING_PATCHES.md)%5Cn*%20Running%20Repo%20in%20%5BMicrosoft%20Windows%5D(%2Ffolkslinux%2Fgit-repo%2Ftree%2Fmain%2Fdocs%2Fwindows.md)%5Cn*%20GitHub%20mirror%3A%20%3Chttps%3A%2F%2Fgithub.com%2FGerritCodeReview%2Fgit-repo%3E%5Cn*%20Postsubmit%20tests%3A%20%3Chttps%3A%2F%2Fgithub.com%2FGerritCodeReview%2Fgit-repo%2Factions%3E%5Cn%5Cn%23%23%20Contact%5Cn%5CnPlease%20use%20the%20%5Brepo-discuss%5D%20mailing%20list%20or%20%5Bissue%20tracker%5D%20for%20questions.%5Cn%5CnYou%20can%20%5Bfile%20a%20new%20bug%20report%5D%5Bnew-bug%5D%20under%20the%20%5C%22repo%5C%22%20component.%5Cn%5CnPlease%20do%20not%20e-mail%20individual%20developers%20for%20support.%5CnThey%20do%20not%20have%20the%20bandwidth%20for%20it%2C%20and%20often%20times%20questions%20have%20already%5Cnbeen%20asked%20on%20%5Brepo-discuss%5D%20or%20bugs%20posted%20to%20the%20%5Bissue%20tracker%5D.%5CnSo%20please%20search%20those%20sites%20first.%5Cn%5Cn%23%23%20Install%5Cn%5CnMany%20distros%20include%20repo%2C%20so%20you%20might%20be%20able%20to%20install%20from%20there.%5Cn%60%60%60sh%5Cn%23%20Debian%2FUbuntu.%5Cn%24%20sudo%20apt-get%20install%20repo%5Cn%5Cn%23%20Gentoo.%5Cn%24%20sudo%20emerge%20dev-vcs%2Frepo%5Cn%60%60%60%5Cn%5CnYou%20can%20install%20it%20manually%20as%20well%20as%20it's%20a%20single%20script.%5Cn%60%60%60sh%5Cn%24%20mkdir%20-p%20~%2F.bin%5Cn%24%20PATH%3D%5C%22%24%7BHOME%7D%2F.bin%3A%24%7BPATH%7D%5C%22%5Cn%24%20curl%20https%3A%2F%2Fstorage.googleapis.com%2Fgit-repo-downloads%2Frepo%20%3E%20~%2F.bin%2Frepo%5Cn%24%20chmod%20a%2Brx%20~%2F.bin%2Frepo%5Cn%60%60%60%5Cn%5Cn%5Cn%5Bnew-bug%5D%3A%20https%3A%2F%2Fissues.gerritcodereview.com%2Fissues%2Fnew%3Fcomponent%3D1370071%5Cn%5Bissue%20tracker%5D%3A%20https%3A%2F%2Fissues.gerritcodereview.com%2Fissues%3Fq%3Dis%3Aopen%2520componentid%3A1370071%5Cn%5Brepo-discuss%5D%3A%20https%3A%2F%2Fgroups.google.com%2Fforum%2F%23!forum%2Frepo-discuss%5Cn%22%7D"},"zoneReducer":{"zoneDetail":"","newsDetail":""}}
repo
Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. The repo command is an executable Python script that you can put anywhere in your path.
Contact
Please use the repo-discuss mailing list or issue tracker for questions.
You can file a new bug report under the “repo” component.
Please do not e-mail individual developers for support. They do not have the bandwidth for it, and often times questions have already been asked on repo-discuss or bugs posted to the issue tracker. So please search those sites first.
Install
Many distros include repo, so you might be able to install from there.
You can install it manually as well as it’s a single script.