This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 139310 - User-managed repositories
Summary: User-managed repositories
Status: NEW
Alias: None
Product: www
Classification: Unclassified
Component: Builds & Repositories (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: pgebauer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-08 20:52 UTC by Jesse Glick
Modified: 2011-02-08 14:12 UTC (History)
3 users (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jesse Glick 2008-07-08 20:52:30 UTC
We need the ability to create new repositories (or clones) on hg.netbeans.org without going through RE. Specifically we
need:

1. Any registered nb.org user who already has push rights to some repo should be able to log in to a special admin page
and create a fresh repository with the name and description of their choice.

1a. An alternate option would be to create the new repo as a clone of an existing one: specify existing repo from
pulldown, and revision to clone at (default 'tip'). You can always create an empty repo and push to it, but this can be
very slow.

2. All regular Hg pretxncommit hooks should apply.

3. TBD whether it should be permitted to set up mail notifications. To start with, no mail notifications.

4. Creator should be allowed to add other nb.org users to permitted push list.

5. Would be nice to offer some kind of password maintenance too.

Can look at freehg.org, http://hg.sharesource.org/hgfront, and http://sshcontrol.com/ for some ideas. But basic
functionality (1, 1a, 4) should be possible with a few simple JSPs.
Comment 1 _ ttran 2008-07-08 20:57:08 UTC
> But basic functionality [...] should be possible with a few simple JSPs.

or perhaps Python/Django

http://www.selenic.com/mercurial/wiki/index.cgi/HowToSetupFreeHg


Comment 2 Jesse Glick 2008-07-08 21:10:11 UTC
Note that FreeHg offers #1, but not #4 - only the creator of a repo can push to it.
Comment 3 _ ttran 2008-07-08 21:18:45 UTC
> FreeHg offers #1, but not #4

correct.  That's why I said over ICQ we need to use netbeans.org for authentication.  
Each repos owner will control authorization, say via a small text file in a well known
place in the repos, listing writers.  All repos will be world-readable.
Auth could be done via mod_authnz_external + small program to talk to netbeans.org.
*If* perf is going to be an issue we can cache.
Comment 4 Jesse Glick 2008-07-08 21:38:52 UTC
The text file in the repo listing allowed pushers may be a good idea. I don't think we would need any extra
authorization module. hgwebdir just has a text file listing people permitted to write to a repo; would just need to
synchronize that with the file in the repo when it changed. Not sure this is any easier than just writing a JSP letting
the owner add/remove people, though (plus it effectively lets anyone with push access add others, which is not generally
desirable).
Comment 5 _ ttran 2008-07-08 21:52:18 UTC
> (plus it effectively lets anyone with push access add others, which is not generally
desirable).

I consider this a feature.  After all why we have version control system here.
Admin GUI is usually a hassle.  As little of it as possible
Comment 6 Michal Zlamal 2008-07-09 13:35:19 UTC
What about to put all the hgrc's to the HG repository where few people has push right?
The repository checkout could be updated once a minute to keep the server up to date...
Comment 7 Jesse Glick 2008-07-10 22:23:06 UTC
[Still discussing #4] I guess that's better than having only one or two people able to configure permissions, though
would be nicer if the creator of the clone had control.
Comment 8 Jesse Glick 2010-08-12 13:51:57 UTC
Less to do if we switch to using named branches, since no special step is needed to create a branch, and there are not many new independent repos. Would still be nice to manage push permissions for changesets on your branch.