Code

Merge branch 'maint'
authorJunio C Hamano <gitster@pobox.com>
Tue, 22 Apr 2008 07:10:20 +0000 (00:10 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Apr 2008 07:10:20 +0000 (00:10 -0700)
* maint:
  post-receive-email: fix accidental removal of a trailing space in signature line
  Escape project names before creating pathinfo URLs
  Escape project name in regexp
  bash: Add completion for git diff --base --ours --theirs
  diff-options.txt: document the new "--dirstat" option

Documentation/diff-options.txt
contrib/completion/git-completion.bash
contrib/hooks/post-receive-email
gitweb/gitweb.perl

index 8dc5b001c42376be1b9f814d516ea43f5c711071..01e7a578510f50af7365ec20e96d1538da424faa 100644 (file)
@@ -58,6 +58,14 @@ endif::git-format-patch[]
        number of modified files, as well as number of added and deleted
        lines.
 
+--dirstat[=limit]::
+       Output only the sub-directories that are impacted by a diff,
+       and to what degree they are impacted.  You can override the
+       default cut-off in percent (3) by "--dirstat=limit".  If you
+       want to enable "cumulative" directory statistics, you can use
+       the "--cumulative" flag, which adds up percentages recursively
+       even when they have been already reported for a sub-directory.
+
 --summary::
        Output a condensed summary of extended header information
        such as creations, renames and mode changes.
index 6012047ee55cb846f1ab05a9bca13aafe3267f64..665a895f5eafff619d30034afba27ac9f597eb4e 100755 (executable)
@@ -641,6 +641,7 @@ _git_diff ()
                        --ignore-all-space --exit-code --quiet --ext-diff
                        --no-ext-diff
                        --no-prefix --src-prefix= --dst-prefix=
+                       --base --ours --theirs
                        "
                return
                ;;
index 62a740c48248d94e1e0577c8676b13b7a726f21c..41368950d6b29121089ee9239b8e07ece209a31e 100644 (file)
@@ -202,11 +202,12 @@ generate_email_header()
 
 generate_email_footer()
 {
+       SPACE=" "
        cat <<-EOF
 
 
        hooks/post-receive
-       --
+       --${SPACE}
        $projectdesc
        EOF
 }
index a48bebb1bc01ec6af718cf014db0155145508e8b..f83567ec39e8781cc10d3f3f3cb39c7cb6aa11ef 100755 (executable)
@@ -511,7 +511,7 @@ sub evaluate_path_info {
        }
        # do not change any parameters if an action is given using the query string
        return if $action;
-       $path_info =~ s,^$project/*,,;
+       $path_info =~ s,^\Q$project\E/*,,;
        my ($refname, $pathname) = split(/:/, $path_info, 2);
        if (defined $pathname) {
                # we got "project.git/branch:filename" or "project.git/branch:dir/"
@@ -633,7 +633,7 @@ sub href(%) {
        my ($use_pathinfo) = gitweb_check_feature('pathinfo');
        if ($use_pathinfo) {
                # use PATH_INFO for project name
-               $href .= "/$params{'project'}" if defined $params{'project'};
+               $href .= "/".esc_url($params{'project'}) if defined $params{'project'};
                delete $params{'project'};
 
                # Summary just uses the project path URL
@@ -2575,7 +2575,7 @@ EOF
                my $action = $my_uri;
                my ($use_pathinfo) = gitweb_check_feature('pathinfo');
                if ($use_pathinfo) {
-                       $action .= "/$project";
+                       $action .= "/".esc_url($project);
                } else {
                        $cgi->param("p", $project);
                }