[racket-dev] Git

From: Eli Barzilay (eli at barzilay.org)
Date: Fri Jan 7 15:37:53 EST 2011

[Pre-apologies for sending multiple messages, this thread is way too
big to combine replies.]

Yesterday, Robby Findler wrote:
> Thanks, Carl. I have tried that route in the past and I found that I
> let robby/plt get too far out of sync with the tree. So I'm looking
> for a workflow where, perhaps, what I do is create robby/plt only
> when I want to move between machines and use it as a temporary
> storage place (as Eli's email suggests). Does that sound workable to
> you?

My kind of guess (since I didn't read everything yet) is that you
settled on the usual use of robby/plt for syncing, with moving
implemented by pushing there from one machine then pulling from
another.  (This is easy, since a repository is just a storage place
for commit chains, so it's mostly unrelated to rebasing -- the only
issue is forcing pushes that change a certain branch instead of just
extending it.)

The only slightly annoying thing that you'll run into is lots of noise
whenever you haven't used the repository for a while, since there is a
lot that will pass on.

Here's a slight variant on this that can overall be more convenient
when moving between machines is the exceptional case:

* You usually work against the main repo, ignoring robby/plt

* When you want to move you *delete* robby/plt (if it exists), then
  fork it from the plt repo, then push the changes over there.

* On the new machine you pull (or clone) from it, and you can not just
  remove it, since you'll continue to work against the main repo.

The important point here is that the second step is done efficiently
enough that it is likely to be faster than updating a week-old repo.
(Since it's basically a fast copy of the plt repo done by creating
links, vs sending all the new content from your machine to the

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.