Merge branch 'maint-1.7.7' into maint
[gitweb.git] / contrib / mw-to-git / git-remote-mediawiki
index b809792853c0e9623f56273f0e6c97207887f21a..c18bfa1f1515a8edb27c2d468a2982860a561939 100755 (executable)
@@ -76,8 +76,10 @@ my $wiki_login = run_git("config --get remote.". $remotename .".mwLogin");
 # inside a remote helper, so our stdin is connect to git, not to a
 # terminal.
 my $wiki_passwd = run_git("config --get remote.". $remotename .".mwPassword");
+my $wiki_domain = run_git("config --get remote.". $remotename .".mwDomain");
 chomp($wiki_login);
 chomp($wiki_passwd);
+chomp($wiki_domain);
 
 # Import only last revisions (both for clone and fetch)
 my $shallow_import = run_git("config --get --bool remote.". $remotename .".shallow");
@@ -107,6 +109,10 @@ $dumb_push = ($dumb_push eq "true");
 
 my $wiki_name = $url;
 $wiki_name =~ s/[^\/]*:\/\///;
+# If URL is like http://user:password@example.com/, we clearly don't
+# want the password in $wiki_name. While we're there, also remove user
+# and '@' sign, to avoid author like MWUser@HTTPUser@host.com
+$wiki_name =~ s/^.*@//;
 
 # Commands parser
 my $entry;
@@ -158,6 +164,7 @@ sub mw_connect_maybe {
                if (!$mediawiki->login({
                        lgname => $wiki_login,
                        lgpassword => $wiki_passwd,
+                       lgdomain => $wiki_domain,
                })) {
                        print STDERR "Failed to log in mediawiki user \"$wiki_login\" on $url\n";
                        print STDERR "(error " .