[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Savannah-hackers-public] Re: initial mercurial frontend patch
From: |
Aleix Conchillo Flaqué |
Subject: |
[Savannah-hackers-public] Re: initial mercurial frontend patch |
Date: |
Mon, 14 Apr 2008 12:54:45 +0200 |
On Thu, Apr 10, 2008 at 11:24 PM, Sylvain Beucler <address@hidden> wrote:
>
> - site-wide repositories layout that ease web viewer configuration
> (e.g. in ViewVC all repositories are inside one single directory. With
> Git there are nested repositories, but there's a repository list to
> maintain each time a new repository is added)
>
> - Layout for subprojects:
> For Git:
> /srv/git/project.git # main repo
> /srv/git/project/subrepo.git # secondary repo
> For Bzr:
> /srv/bzr/project/ # main repo (in /srv/bzr/project/.bzr subdirectory)
> /srv/bzr/project/subrepo/ # secondary repo
> For Hg:
> ?
>
A possible solution for this is to use the hgwebdir.cgi script. This
allows multiple repos and sub repos. For example, a site can have one
hgwebdir.cgi setup in the apache configuration, the cgi has a
configuraion file "hgweb.config" where one can setup repositories and
sub-repositories, like this:
[paths]
repo1 = repo1
repo1/subrepo1 = repo1/subrepo1
repo1/subrepoN = repo1/subrepoN
....
repoN = repoN
repoN/subrepo1 = repoN/subrepo1
repoN/subrepoN = repoN/subrepoN
The configuration file should be automatically managed by some script.
So the filesystem layout would be like Bazaar:
/srv/hg/project/ # main repo (in /srv/hg/project/.hg subdirectory)
/srv/hg/project/subrepo/ # secondary repo (in
/srv/hg/project/subrepo/.hg subdirectory)
> - Short paths:
> There are also options to trim /srv/git or /srv/svn in some
> situations, that'd be something cool for Hg if available :))
>
I am not sure what you mean here.
> - Consider managing multiple repositories per project
> We'd need that for VCSes too, maybe in a second step)
>
The file system layout, ssh and http (read) access I think are
automatically solved with the example I have written above.
How do you manage subrepos? I mean, is there any web interface where
you can add a subrepo? I think this would be necessary in order to
update configuration files, right?
> - And as we initially discussed whether it's a "shell restricted" or
> "sftp restricted" support. "sftp restricted" is easier but is more
> limited.
>
I want to try the shell access with limited commands (pull/push),
using the ssh script found here (hg-ssh option in the link below):
http://www.selenic.com/mercurial/wiki/index.cgi/SharedSSH
> For example, if Mercurial supports (or will likely soon support)
> server-side hooks (commit notification) or Patch Queue Managers,
> this is something we'll only securely provide for a "shell
> restricted" setup.
>
Yes, it supports hooks (http://hgbook.red-bean.com/hgbookch10.html)
and queues (http://hgbook.red-bean.com/hgbookch12.html).
> Also, "sftp restricted" shared repositories are vulnerable to
> maladroit or angry team members trashing the history :/
>
Yes, we should go with the shell access.
> Personal repositories: at Savannah this is not welcome because we
> host projects after approving them, so we're not supposed to host
> user personal code. However, if this is a wanted feature, we could
> imagine allowing per-user project subrepositories
> (/srv/hg/savane-cleanup/aleix-branch1/ or something similar).
>
What do you mean about personal repositories? Repositories not related
to a project, but to a user?
Aleix