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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).