[plt-dev] pushes & pulls & building

From: Stevie Strickland (sstrickl at ccs.neu.edu)
Date: Tue Apr 27 17:07:37 EDT 2010

On Apr 27, 2010, at 4:14 PM, Robby Findler wrote:
> On Tue, Apr 27, 2010 at 2:47 PM, Ryan Culpepper <ryanc at ccs.neu.edu> wrote:
>> Can anyone explain, succinctly, what's going on?
> Yes, please. I'm totally confused.
> I know how to use git in a manner similar to the way I used to use svn.
> For some context: I was hoping that gits fanciness would allow me to
> have some kind of intermediary between the public repository and my
> various machines. That is, I imagine something where I can let my
> laptop and my machine at home talk to my machine at work so that
> changes I make can be visible in all three places without having to
> make them public to the whole world.

I currently do this.  The way I do this is the following:

1) Create a clone of the PLT tree in my usr.  For example,

  ssh git.racket-lang.org fork plt usr/sstrickl/plt

2) Use that as the origin for clones on my machines.  On each machine, I do:

  git clone git.racket-lang.org:usr/sstrickl/plt

3) Add a remote for the official PLT repo for convenience in each such repo.

  git remote add git-plt git.racket-lang.org:plt

4) When I need to pull in changes made by others on the main repo, I do:

  git fetch git-plt
  git merge git-plt/master
  git push

which takes the new changes from the main git repo and applies them to my copy.

5) When I finally am ready to push my commits to the main repo, I just do:

  git push git-plt master

(Notice I'm ignoring rebasing here.  That makes it more complicated, but for the kinds of uses people are doing now, where they're just merging/pushing, you can use the above workflow to keep your own private repo in your usr space and coordinate between your own machines.)


Posted on the dev mailing list.