threads / discuss / 16012

[ANNOUCNE] repo - The Multiple Git Repository Tool

Subject: [ANNOUCNE] repo - The Multiple Git Repository Tool

## tl;dr

10 messages between Oct 22, 2008 and Oct 23, 2008.

replies: 9people: 4as markdown or json

Shawn O. Pearce· Oct 22, 2008, 15:42 UTC · lore

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.
Junio C Hamano· Oct 22, 2008, 19:14 UTC · re: Shawn O. Pearce · lore

Re: [ANNOUCNE] repo - The Multiple Git Repository Tool

"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 8 quoted lines
> 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
Heh, very nice, with a very shallow history ;-)
Shawn O. Pearce· Oct 22, 2008, 21:13 UTC · re: Junio C Hamano · lore

Re: [ANNOUCNE] repo - The Multiple Git Repository Tool

Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes:
> 
> > 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
> 
> Heh, very nice, with a very shallow history ;-)

Yea, well, some of our history messages are downright messy and/or contain information we don't want to disclose to the public. Its apparently "normal" for Google to just drop history when it opens a code base. :-\

The repo and Gerrit histories are short enough that I might be able to go through them and clean them up some (remove any comments revealing Google secrets) and publish the history under a different repository. Folks can always graft it behind the (now) real repository.

I can't promise anything, but I'll talk to my co-contributors and consider doing this in the near future.

-- 
Shawn.
Junio C Hamano· Oct 22, 2008, 23:16 UTC · re: Shawn O. Pearce · lore

Re: [ANNOUCNE] repo - The Multiple Git Repository Tool

"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 18 quoted lines
> Junio C Hamano <gitster@pobox.com> wrote:
>> "Shawn O. Pearce" <spearce@spearce.org> writes:
>> 
>> > 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
>> 
>> Heh, very nice, with a very shallow history ;-)
>
> Yea, well, some of our history messages are downright messy and/or
> contain information we don't want to disclose to the public.  Its
> apparently "normal" for Google to just drop history when it opens
> a code base.  :-\

Yeah, I understand that would be a norm for anybody who wasn't originally open. I was just teasing, not really complaining ;-)

By the way, are you still in need of a folding bookshelf from Target?
Shawn O. Pearce· Oct 22, 2008, 23:17 UTC · re: Junio C Hamano · lore

Re: [ANNOUCNE] repo - The Multiple Git Repository Tool

Junio C Hamano <gitster@pobox.com> wrote:
> 
> By the way, are you still in need of a folding bookshelf from Target?

If you saw my wife's book collection, and the space we have, you'd understand my need for bookshelves... sadly we only have one. Why do you ask?

-- 
Shawn.
Junio C Hamano· Oct 22, 2008, 23:46 UTC · re: Shawn O. Pearce · lore

[OT] Amazon wishlist (was Re: [ANNOUCNE] repo - The Multiple Git Repository Tool)

"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 7 quoted lines
> Junio C Hamano <gitster@pobox.com> wrote:
>> 
>> By the way, are you still in need of a folding bookshelf from Target?
>
> If you saw my wife's book collection, and the space we have, you'd
> understand my need for bookshelves...  sadly we only have one.
> Why do you ask?
Because I stumbled across:
  http://www.amazon.com/gp/registry/registry.html?ie=UTF8&type=wishlist&id=1XF91IZ5VXGTQ

recalled that you moved recently, thought perhaps it might be a good idea to send you a housewarming gift, but was not sure if this list really belonged to the person I thought.

Crazy people claim to be somebody else while wishing for something the person they are disguising as never would. Once I looked for and found a Linus Torvalds who wanted a bunch of mysql+php books ;-)

I was on Amazon's wishlist page because recently somebody asked me about it, probably after reading http://gitster.livejournal.com/ (where I mentioned I recently created one for myself without mentioning its URL -- the page has since been updated with one).

Shawn O. Pearce· Oct 22, 2008, 23:52 UTC · re: Junio C Hamano · lore

Re: [OT] Amazon wishlist (was Re: [ANNOUCNE] repo - The Multiple Git Repository Tool)

Junio C Hamano <gitster@pobox.com> wrote:
Show 16 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes:
> > Junio C Hamano <gitster@pobox.com> wrote:
> >> 
> >> By the way, are you still in need of a folding bookshelf from Target?
> >
> > If you saw my wife's book collection, and the space we have, you'd
> > understand my need for bookshelves...  sadly we only have one.
> > Why do you ask?
> 
> Because I stumbled across:
> 
>   http://www.amazon.com/gp/registry/registry.html?ie=UTF8&type=wishlist&id=1XF91IZ5VXGTQ
> 
> recalled that you moved recently, thought perhaps it might be a good
> idea to send you a housewarming gift, but was not sure if this list really
> belonged to the person I thought.

Heh, that's very kind. Yes, it is actually my list, but I never use it so I often forget I put things onto it. I think I actually use it as a way to bookmark something I'm looking at on Amazon, and then never wind up going back to because I just didn't get around to it.

Last year my thoughtful wife bought my birthday gift from my Amazon
wish list.  It was a DVD set that I had wanted, but many months
before my birthday I had viewed the entire series through Netflix
and totally forgot it was on an Amazon wish list.  She had no clue
and wound up purchasing the DVDs for me anyway.  :)
 
> Crazy people claim to be somebody else while wishing for something the
> person they are disguising as never would.  Once I looked for and found a
> Linus Torvalds who wanted a bunch of mysql+php books ;-)
Hah!  Amazon is dangerous that way.  Looking things up by name.
Email is usually slightly more unique...
 
-- 
Shawn.
David Symonds· Oct 23, 2008, 00:45 UTC · re: Junio C Hamano · lore

Re: [ANNOUCNE] repo - The Multiple Git Repository Tool

On Wed, Oct 22, 2008 at 4:16 PM, Junio C Hamano <gitster@pobox.com> wrote:
> By the way, are you still in need of a folding bookshelf from Target?
Weirdest aside *ever* on the Git ML, at least from my memory.
Dave.
Leo Razoumov· Oct 22, 2008, 19:55 UTC · re: Shawn O. Pearce · lore

Re: [ANNOUCNE] repo - The Multiple Git Repository Tool

On 10/22/08, Shawn O. Pearce <spearce@spearce.org> wrote:
Show 21 quoted lines
> 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.
>  [..snip..]

Are there any plans to make repo an official git command (e.g. git-repo) or merge its functionality with git-submodule?

--Leo--
Shawn O. Pearce· Oct 22, 2008, 21:16 UTC · re: Leo Razoumov · lore

Re: [ANNOUCNE] repo - The Multiple Git Repository Tool

Leo Razoumov <slonik.az@gmail.com> wrote:
Show 16 quoted lines
> On 10/22/08, Shawn O. Pearce <spearce@spearce.org> wrote:
> >
> >  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",
> 
> Are there any plans to make repo an official git command (e.g.
> git-repo) or merge its functionality with git-submodule?

I currently do not plan on asking Junio to consider making repo part of git. However, I am also not adverse to it if repo development slows down and there is sufficient community interest.

-- 
Shawn.

← back to recent threads