[plt-dev] usr repositories

From: Eli Barzilay (eli at barzilay.org)
Date: Thu Apr 15 22:42:35 EDT 2010

On Apr 15, Matthias Felleisen wrote:
> All of this sounds like a serious step backward for /usr/
> directories and I seriously question the move to git now.

This is a completely different issue, and should have been threaded on
the other message I sent in regards to the user repositories.  I'll
try to be brief and not repeat too much:

* This is certainly not a step back.  In fact, the system I'm using to
  implement server permissions is very similar to the svn usr
  repository setup.  There are some minor differences:
  - Instead of passwords, we're dealing with public ssh keys.
  - Instead of a single giant repository for all projects of all
    users, you get to create repositories in your own hierarchy.
    (This is because each repository contains its complete history, so
    you really want one repo per project/paper/whatever.)
  - Instead of comitting to a file and waiting for me to propagate it,
    *you* get to control permissions to your repos yourself.
  Besides that, it is roughly the same.

* If you're talking about collaboration with people who already have
  access to the plt repo, then this is very simple, since they're all
  already in the system.

* I don't have any concrete short term plan for this anyway -- it'll
  continue running on svn, and I'll start some usr thing as the dust
  from the plt tree move settles.

* I've described more thoroughly the different options in the previous
  message.  The fact that you have these options means that there's
  less use for our usr repository, but it will still be there.  You
  might prefer one of these solutions because you get to control
  directly what you're doing, or because it doesn't make sense to use
  our server if for example you're both on your own a shared file
  system somewhere.  Also, you might have stuff that you want to keep
  for yourself, not run through me.


On Apr 15, Robby Findler wrote:
> I think that Eli's telling you that you can collaborate with such
> people without them having to have accounts that hang around on the
> main plt servers. You can collaborate with them without email if you
> share some filesystem somewhere with them, or if they have a github
> account or .... probably there are other things before you have to
> pull out the beta tape player.

Yes, that's a good summary too.  The email thing just happens to be a
convenient way to collaborate, and git makes it very easy to do so.
I'm not talking about sending files etc -- think about it as a way to
synchronize information from one place to another: one way to do it is
to connect directly, another is to send the information using email or
whatever else; svn allows only the first, git supports both.


On Apr 15, Matthias Felleisen wrote:
> Everything I hear is "this won't work on git" and "that's too
> complicated with git" [...]

I don't think that there was anything that I mentioned as something
that won't work on git or is too complicated for it.  Modulo cosmetic
differences, the new setup is a superset of the old one in terms of
features.


On Apr 15, Matthias Felleisen wrote:
> It's about the commandline, it's about the /usr/ sub-trees.  We have
> a bunch of stuff in /usr/ trees that we share with the subset of
> people that matters (papers, books, private programs, web trees,
> etc). With svn, you just set up authorization and it all works. With
> git, it's too complicated so everyone sees everything or something
> like that.

This sounds like a misunderstanding.  To give a rough idea, if you had
two user repositories for different purpose and/or different
permissions and/or to work with a different set of people, then with
git you'd make them into separate repositories.  For example, with
subversion you'd get

  http://svn.plt-scheme.org/usr/joe/papers/paper1
  http://svn.plt-scheme.org/usr/joe/papers/paper2

which are technically in the same repository, whereas with git you'd
get:

  http://git.plt-scheme.org/usr/joe/papers/paper1.git
  http://git.plt-scheme.org/usr/joe/papers/paper2.git

where they are separate repositories.


On Apr 15, Robby Findler wrote:
> My svn tree is set up so all such people see everything, and I've
> never minded that :).

(And that will be easy to do too.)


On Apr 15, Noel Welsh wrote:
> In using git in other projects the workflow is this:
> 
>  - Create a project. This is fill in a web form easy (Github) or
> commit some setup code moderately easy (gitosis). For you it is
> probably email Eli easy.

(I'm using gitolite, a much improved version of gitosis.)  You'd
basically just create a repository, and push it to some directory
(that you "own") on the server which will create it if it's a new one.


> That's it. This is equivalent to using svn apart from the first step
> which is slightly simpler in svn (just create a new directory in the
> existing repo in svn).

The setup that I'm using will make it as easy as svn.  (A little
easier, since you'd be able to do it without me being a bottleneck.)

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


Posted on the dev mailing list.