threads / patch / 5611

patchgitweb: Support for custom per-project owner string

Subject: [PATCH] gitweb: Support for custom per-project owner string

## tl;dr

6 messages between Sep 19, 2006 and Sep 20, 2006. Diffs are folded; open one to read it.

replies: 5people: 3as markdown or json

Petr Baudis· Sep 19, 2006, 22:55 UTC · lore

This adds very simple support for per-project setting of the owner string (in an environment where the actual owners won't have access to the repositories accessed by gitweb, so faking identity is not an issue).

There should be an option to disable this, but this is just a patch that someone might like (and/or pick up and polish), not intended for inclusion as it is.

Also, ideally this would be in the configfile but calling repoconfig for each repository in the index would slow things down way too much.

Signed-off-by: Petr Baudis <pasky@suse.cz>
---
 gitweb/gitweb.perl |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
Show changes to gitweb/gitweb.perl +9 −2
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 7ecd7df..d50bae5 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -818,6 +818,13 @@ sub git_get_project_owner {
 		}
 		close $fd;
 	}
+	if (!defined $owner and -f "$projectroot/$project/owner") {
+		if (open my $fd, "$projectroot/$project/owner") {
+			$owner = <$fd>;
+			chomp $owner;
+			close $fd;
+		}
+	}
 	if (!defined $owner) {
 		$owner = get_file_owner("$projectroot/$project");
 	}
@@ -2186,7 +2193,7 @@ sub git_project_list {
 			$pr->{'descr'} = chop_str($descr, 25, 5);
 		}
 		if (!defined $pr->{'owner'}) {
-			$pr->{'owner'} = get_file_owner("$projectroot/$pr->{'path'}") || "";
+			$pr->{'owner'} = git_get_project_owner($pr->{'path'}) || "";
 		}
 		push @projects, $pr;
 	}
@@ -2275,7 +2282,7 @@ sub git_project_index {
 
 	foreach my $pr (@projects) {
 		if (!exists $pr->{'owner'}) {
-			$pr->{'owner'} = get_file_owner("$projectroot/$project");
+			$pr->{'owner'} = git_get_project_owner($project);
 		}
 
 		my ($path, $owner) = ($pr->{'path'}, $pr->{'owner'});
Jakub Narebski· Sep 19, 2006, 23:04 UTC · re: Petr Baudis · lore

Re: [PATCH] gitweb: Support for custom per-project owner string

Petr Baudis wrote:
> This adds very simple support for per-project setting of the owner string
> (in an environment where the actual owners won't have access to the
> repositories accessed by gitweb, so faking identity is not an issue).

Is it really needed? If $projects_list is a _file_, you can set correct ownership information there.

Now $projects_list being a directory (usually $projectroot) support hierarchy of repositories; generating appropriate projects' index file is as easy as unsetting $projects_list (so it is by default set to $projectroot), going to summary view, clicking [TXT] link on the left of [OPML] link at the bottom, copy the result to projects' index file, correct ownership information (and perhaps remove some projects), and set $projects_list to this file.

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Petr Baudis· Sep 19, 2006, 23:09 UTC · re: Jakub Narebski · lore

Re: [PATCH] gitweb: Support for custom per-project owner string

Dear diary, on Wed, Sep 20, 2006 at 01:04:50AM CEST, I got a letter where Jakub Narebski <jnareb@gmail.com> said that...

Show 16 quoted lines
> Petr Baudis wrote:
> 
> > This adds very simple support for per-project setting of the owner string
> > (in an environment where the actual owners won't have access to the
> > repositories accessed by gitweb, so faking identity is not an issue).
> 
> Is it really needed? If $projects_list is a _file_, you can set correct
> ownership information there.
> 
> Now $projects_list being a directory (usually $projectroot) support
> hierarchy of repositories; generating appropriate projects' index file
> is as easy as unsetting $projects_list (so it is by default set to
> $projectroot), going to summary view, clicking [TXT] link on the left of
> [OPML] link at the bottom, copy the result to projects' index file, correct
> ownership information (and perhaps remove some projects), and set
> $projects_list to this file.

Which is not really easy at all. I would have to do some ugly script to autogenerate the text file while this way I can just throw the data to the hierarchy and having everything still working magically.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
Snow falling on Perl. White noise covering line noise.
Hides all the bugs too. -- J. Putnam
Junio C Hamano· Sep 20, 2006, 15:02 UTC · re: Petr Baudis · lore

Re: [PATCH] gitweb: Support for custom per-project owner string

Petr Baudis <pasky@suse.cz> writes:
> Also, ideally this would be in the configfile but calling repoconfig for
> each repository in the index would slow things down way too much.

Hmph. I wonder why. We do read description already from a file so maybe we would want a faster way to access the config file to grab gitweb.* variables in a single call?

In any case, I like where this patch is going and agree that file owner should be overridable with something like this.

Petr Baudis· Sep 20, 2006, 15:42 UTC · re: Junio C Hamano · lore

Re: [PATCH] gitweb: Support for custom per-project owner string

Dear diary, on Wed, Sep 20, 2006 at 05:02:21PM CEST, I got a letter where Junio C Hamano <junkio@cox.net> said that...

Show 8 quoted lines
> Petr Baudis <pasky@suse.cz> writes:
> 
> > Also, ideally this would be in the configfile but calling repoconfig for
> > each repository in the index would slow things down way too much.
> 
> Hmph.  I wonder why.  We do read description already from a file
> so maybe we would want a faster way to access the config file to
> grab gitweb.* variables in a single call?
Still, opening files is _much_ faster than executing a tool, I'd say.
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
Snow falling on Perl. White noise covering line noise.
Hides all the bugs too. -- J. Putnam
Jakub Narebski· Sep 20, 2006, 19:01 UTC · re: Petr Baudis · lore

Re: [PATCH] gitweb: Support for custom per-project owner string

Petr Baudis wrote:
Show 12 quoted lines
> Dear diary, on Wed, Sep 20, 2006 at 05:02:21PM CEST, I got a letter
> where Junio C Hamano <junkio@cox.net> said that...
>> Petr Baudis <pasky@suse.cz> writes:
>> 
>>> Also, ideally this would be in the configfile but calling repoconfig for
>>> each repository in the index would slow things down way too much.
>> 
>> Hmph.  I wonder why.  We do read description already from a file
>> so maybe we would want a faster way to access the config file to
>> grab gitweb.* variables in a single call?
> 
> Still, opening files is _much_ faster than executing a tool, I'd say.

Perhaps we should just parse $GIT_DIR/config ourself in gitweb (this is thing that I certainly would want to see in Git.pm). There are many modules which parse ini-like config files, but it shouldn't be that difficult to write parser which _reads_ and parses config file (without support for setting variables).

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

← back to recent threads