git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[ANNOUCNE] repo - The Multiple Git Repository Tool

From
Shawn O. Pearce <spearce@spearce.org>
Date
Oct 22, 2008, 15:42 UTC
Message-ID
<20081022154245.GT14786@spearce.org>

My "bundle related secret project" was released yesterday by Google as part of the Android open source release event. (I've mentioned it before on-list in the context of a modified "git status" output.)

Google developed two tools, repo and Gerrit, and open sourced them under the Apache License:

  http://android.git.kernel.org/?p=tools/repo.git
  http://android.git.kernel.org/?p=tools/gerrit.git
  git://android.git.kernel.org/tools/repo.git
  git://android.git.kernel.org/tools/gerrit.git

repo is a Python application to bind together Git repositories, something like "git submodule", except it can track a project's branch rather than a specific Git commit. repo is also able to natively import a tarball or zip file and use it to initialize a repository from an upstream source, then apply git based changes on top of that tarball. In other words, repo is (more or less) built to manage an OS distribution, in Git.

Gerrit is a web based code review system, forked off the open sourced Rietveld code review system. Gerrit runs on the highly scaleable Google App Engine platform, but probably could be ported to an open-source MySQL or PostgreSQL backend if people really wanted to do that.

You can read some more of how Android has applied these tools to its development process here:

  http://source.android.com/download
  http://source.android.com/submit-patches/workflow
  http://source.android.com/download/using-repo

Although the current tool documentation is only on the Android site, both the repo and Gerrit tools are not specific to Android and are designed to be applied to any project that wants to use a similar process.

repo and Gerrit are actually developed with themselves. You can use repo to fetch repo:

  curl http://android.git.kernel.org/repo >~/bin/repo
  chomd a+x ~/bin/repo
  mkdir myrepo
  cd myrepo
  repo init -u git://android.git.kernel.org/tools/manifest.git
  repo sync

The "git status" output I was talking about before is the "repo status" subcommand, e.g.:

  $ echo '# test' >>repo/repo   ; # modify a tracked file
  $ repo status
  project repo/                                   (*** NO BRANCH ***)
   -m     repo
-- 
Shawn.
Next: Junio C Hamano
Message 1 of 10 in “[ANNOUCNE] repo - The Multiple Git Repository Tool”
  1. Shawn O. PearceOct 22, 2008
  2. Junio C HamanoOct 22, 2008
  3. Shawn O. PearceOct 22, 2008
  4. Junio C HamanoOct 22, 2008
  5. Shawn O. PearceOct 22, 2008
  6. [OT] Amazon wishlist (was Re: [ANNOUCNE] repo - The Multiple Git Repository Tool)Junio C Hamano, Oct 22, 2008
  7. Shawn O. PearceOct 22, 2008
  8. David SymondsOct 23, 2008
  9. Leo RazoumovOct 22, 2008
  10. Shawn O. PearceOct 22, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.