Code

gitweb: change filename/directory name of snapshots
authorMatthias Lederhofer <matled@gmx.net>
Thu, 7 Jun 2007 09:27:08 +0000 (11:27 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 13 Jun 2007 05:22:06 +0000 (22:22 -0700)
/.git or .git is removed from the project name and the
basename of the remaining path is used as the beginning of
the filename and as the directory in the archive.

The regexp will actually not strip off /.git or .git if there
wouldn't be anything left after removing it.

Currently the full project name is used as directory in the
archive and the basename is used as filename.  For example a
repository named foo/bar/.git will have a archive named
.git-<version>.* and extract to foo/bar/.git.  With this patch
the file is named bar-<version>.* and extracts to bar.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl

index a6383dc85b99ead405e1961888d06bb8ff8f3931..dbfb0441a6a59e6fe069a515a2d293f4d860e143 100755 (executable)
@@ -4206,8 +4206,10 @@ sub git_snapshot {
 
        my $git = git_cmd_str();
        my $name = $project;
+       $name =~ s,([^/])/*\.git$,$1,;
+       $name = basename($name);
+       my $filename = to_utf8($name);
        $name =~ s/\047/\047\\\047\047/g;
-       my $filename = to_utf8(basename($project));
        my $cmd;
        if ($suffix eq 'zip') {
                $filename .= "-$hash.$suffix";