Use Diffusion for default Git Viewer
authorChad Horohoe <chadh@wikimedia.org>
Mon, 14 Mar 2016 19:50:22 +0000 (12:50 -0700)
committerChad Horohoe <chadh@wikimedia.org>
Mon, 14 Mar 2016 20:03:34 +0000 (13:03 -0700)
- Provide new %R parameter for $wgGitRepositoryViewers that gives
  a non-URL-encoded version of the repo name.
- Don't force repos to end in .git. That's not required and never
  has been.
- Finally swap Gitblit urls for Diffusion equivalents

Change-Id: I7d2fb3eea1587be66b88acc6a9b9d17382cb01d5

includes/DefaultSettings.php
includes/GitInfo.php

index c04602c..0a9a29a 100644 (file)
@@ -6238,14 +6238,15 @@ $wgGitBin = '/usr/bin/git';
  * %h will be replaced by the short SHA-1 (7 first chars) and %H by the
  * full SHA-1 of the HEAD revision.
  * %r will be replaced with a URL-encoded version of $1.
+ * %R will be replaced with $1 and no URL-encoding
  *
  * @since 1.20
  */
 $wgGitRepositoryViewers = [
        'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
-               'https://git.wikimedia.org/tree/%r/%H',
+               'https://phabricator.wikimedia.org/r/revision/%R;%H',
        'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
-               'https://git.wikimedia.org/tree/%r/%H',
+               'https://phabricator.wikimedia.org/r/revision/%R;%H',
 ];
 
 /** @} */ # End of maintenance }
index 29516ab..de7e8c2 100644 (file)
@@ -257,9 +257,6 @@ class GitInfo {
                if ( $url === false ) {
                        return false;
                }
-               if ( substr( $url, -4 ) !== '.git' ) {
-                       $url .= '.git';
-               }
                foreach ( self::getViewers() as $repo => $viewer ) {
                        $pattern = '#^' . $repo . '$#';
                        if ( preg_match( $pattern, $url, $matches ) ) {
@@ -269,6 +266,7 @@ class GitInfo {
                                        '%h' => substr( $headSHA1, 0, 7 ),
                                        '%H' => $headSHA1,
                                        '%r' => urlencode( $matches[1] ),
+                                       '%R' => $matches[1],
                                ];
                                return strtr( $viewerUrl, $replacements );
                        }