From: Petr Baudis <pasky@suse.cz>
To: Johan Herland <johan@herland.net>
Cc: git@vger.kernel.org, Lars Hjemli <hjemli@gmail.com>,
Jakub Narebski <jnareb@gmail.com>,
Kristian H??gsberg <hoegsberg@gmail.com>
Subject: Re: CGit and repository list
Date: Sat, 13 Sep 2008 00:48:17 +0200 [thread overview]
Message-ID: <20080912224817.GF10360@machine.or.cz> (raw)
In-Reply-To: <200809121812.40920.johan@herland.net>
[-- Attachment #1: Type: text/plain, Size: 1981 bytes --]
On Fri, Sep 12, 2008 at 06:12:40PM +0200, Johan Herland wrote:
> On Friday 12 September 2008, Lars Hjemli wrote:
> > On Fri, Sep 12, 2008 at 4:58 PM, Petr Baudis <pasky@suse.cz> wrote:
> > > it seems that cgit
> > > requires all the repositories explicitly listed in the config file.
> > > Do you plan to remove this limitation in the future?
> >
> > Not really, I'd rather add another command (or a commandline option)
> > to generate an include-file for cgitrc by scanning directory-trees
> > for git repos. I've CC'd Kristian since I believe he's got such a
> > script running for freedesktop.org; if so, maybe it could be
> > included/used as basis for something similar in cgit?
>
> Here's a script I wrote for locating repos and generating repo
> lists/configs for cgit, gitweb and hgwebdir (yes, this handles hg repos
> as well). It works either as a CGI script (producing a list of detected
> repos in HTML format), or from the command-line. It's only been tested
> on an experimental DVCS server at $dayjob, so you might have to change
> things to make it work in your scenario.
>
> If there is interest in this, I can create a public repo and we can keep
> improving on it.
Thanks. The script was a bit more scary than I thought, but in the end I
managed to generate something. There are trailing dots in project names,
but I'm not going to waste time on that anymore - this has long gone
over the 20 minutes I originally alotted the project anyway; I hope cgit
will gain a builtin capability for this in the future, since this is
still quite a pain. Attached is a random patch for your script I had to
use, FWIW.
Unfortunately, the recommended RewriteRule is not working - it does not
play well together with query parameters cgit is using, so e.g. browsing
past commits does not work. What RewriteRule should I use instead?
--
Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC. -- Bill Gates
[-- Attachment #2: repofinder.diff --]
[-- Type: text/plain, Size: 2107 bytes --]
--- repofinder-orig.py 2008-09-13 00:44:22.000000000 +0200
+++ repofinder.py 2008-09-13 00:44:47.000000000 +0200
@@ -244,7 +244,7 @@
if (self.group):
assert name.startswith(self.group.path)
name = name[len(self.group.path):]
- name = name.strip("/")
+ name = name.strip("/srv/git/")
self._name = self.nameFromPath(name)
return self._name
name = property(getName)
@@ -267,7 +267,10 @@
"""Return a (name, email) tuple with our best guess as to who
owns this repo
"""
- return (self.ownerName, self.ownerEmail)
+ __o = self.ownerName
+ if (__o is None):
+ __o = ''
+ return (__o, self.ownerEmail)
owner = property(getOwner)
def getDescription (self):
@@ -286,14 +289,15 @@
@staticmethod
def nameFromPath (path):
- if path.endswith(".git"): path = path[:-4]
+ if path.endswith(".git"): path = path[:-5]
path = path.rstrip("/")
return path
@staticmethod
def cloneUrlFromPath (path):
if path.endswith("/.git"): path = path[:-5]
- return "ssh://%s%s" % (Settings['ServerName'], path)
+ path = path.strip("/srv/git")
+ return "git://%s/%sgit" % (Settings['ServerName'], path)
def __init__ (self, path):
Repo.__init__(self, path)
@@ -316,6 +320,9 @@
def getOwnerEmail (self):
if self._ownerEmail is None:
self._ownerEmail = self.config.get("user.email")
+ if self._ownerEmail is None:
+ try: self._ownerEmail = open(os.path.join(self.path, "owner")).read().strip()
+ except: pass
return Repo.getOwnerEmail(self)
ownerEmail = property(getOwnerEmail)
@@ -592,12 +599,12 @@
for repo in sorted(group.repos):
url = repo.path
if url.endswith("/.git"): url = url[:-5]
- url = url.strip("/")
+ url = url.strip("/srv/git/")
print >>self.f, "repo.url=%s" % (url)
print >>self.f, "repo.path=%s" % (repo.path)
print >>self.f, "repo.name=%s" % (repo.name)
print >>self.f, "repo.desc=%s" % (repo.description)
- print >>self.f, "repo.owner=%s <%s>" % repo.owner
+ print >>self.f, "repo.owner=%s%s" % repo.owner
print >>self.f, "repo.clone-url=%s" % (repo.clone)
print >>self.f, ""
next prev parent reply other threads:[~2008-09-12 22:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-12 4:47 configuring git public repository sagi4
2008-09-12 12:33 ` Ciprian Dorin Craciun
2008-09-12 12:57 ` Jakub Narebski
2008-09-12 14:36 ` Lars Hjemli
2008-09-12 14:58 ` CGit and repository list Petr Baudis
2008-09-12 15:10 ` Lars Hjemli
[not found] ` <200809121812.40920.johan@herland.net>
2008-09-12 22:48 ` Petr Baudis [this message]
2008-09-12 23:20 ` Lars Hjemli
2008-09-13 19:49 ` Petr Baudis
2008-09-13 20:02 ` Lars Hjemli
2008-09-14 7:53 ` [CGIT PATCH] parsing.c: handle unexpected commit/tag content Lars Hjemli
2008-09-14 8:52 ` Lars Hjemli
2008-09-15 22:04 ` CGit and repository list Lars Hjemli
2008-09-14 17:14 ` Kristian Høgsberg
2008-09-14 17:22 ` Kristian Høgsberg
2008-09-14 18:01 ` Lars Hjemli
2008-09-12 15:54 ` Jakub Narebski
2008-09-12 16:00 ` Shawn O. Pearce
2008-09-12 16:12 ` Lars Hjemli
2008-09-12 16:05 ` Petr Baudis
2008-09-12 16:08 ` Shawn O. Pearce
2008-09-12 16:20 ` Petr Baudis
2008-09-12 16:22 ` Shawn O. Pearce
2008-09-12 17:40 ` Jakub Narebski
2008-09-12 17:45 ` Shawn O. Pearce
2008-09-12 19:13 ` Petr Baudis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080912224817.GF10360@machine.or.cz \
--to=pasky@suse.cz \
--cc=git@vger.kernel.org \
--cc=hjemli@gmail.com \
--cc=hoegsberg@gmail.com \
--cc=jnareb@gmail.com \
--cc=johan@herland.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.