[plt-dev] Push emails & private clones

From: Eli Barzilay (eli at barzilay.org)
Date: Thu Apr 22 01:46:53 EDT 2010

On Apr 21, John Clements wrote:
> 
> A *different* way to work on some new feature is to create a
> separate clone of the repository, do the work there, and then merge
> this whole repository with the main one. If I understand correctly,
> this latter strategy is equivalent to working on a local machine and
> never doing a "push", except that the "local machine" repository can
> live on the server.
> 
> Is this a correct picture?

The main confusion here is that it's somehow expensive or difficult to
push changes from one repository to another.  Very roughly speaking,
here's how you'd use your own branch, which is on the main repository:

  1. Clone the main plt repository
  2. Create your branch
  3. Loop: - Work on your branch
           - Push changes to the main repository
     When you're done:
  4. Merge your branch changes to the master branch
  5. Push this master branch to the plt repository
  6. Delete your branch

If you're working with a private clone, this would look almost the
same:

  1. Clone the main plt repository on the server to get a private copy
  2. Clone your private copy
  3. Loop: - Work (on the master branch, or your own branch)
           - Push changes to your repository
     When you're done:
  4. Merge your changes to the master branch on the main repository
  5. Push this master branch to the plt repository
  6. Delete your private repository (unless you have other branches
     you're working with there)

The "trick" here is that in a git repository you can pull from one
remote repository, and push to another.  I'll have a more concrete
workflow(s) description later.


> If so: what's the problem with branches? Is it that all of the code
> in the branches goes out to all of the plt developers, whereas in
> the second strategy it happens only when it gets merged back in with
> the trunk?

That's one, but there's a number of related issues.  The bottom line
is that having a private copy looks like something that is easier to
manage on the server, more robust, easier to configure separately the
way that you want to, and gives you more freedom in working in any way
you want to.

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


Posted on the dev mailing list.