JÃrÃmie NIKAES wrote: > No, I actually still have the problem. The version commited on github > is pulling revisions straight to refs/heads/master which is gross > After discussing this matter with our teacher Matthieu Moy, I wanted > to change this to refs/remotes/origin/master but then this warning > gets thrown. The following fixes it for me. -- >8 -- Subject: use refs/mediawiki/<remote> namespace for private refs Unless the "refspec" capability is used, the remote helper machinery expects remote helpers to write remote refs/heads/master ref to refs/heads/master. That's not very good since it scribbles on top of whatever local changes the user might have. So specify a refspec that puts the refs elsewhere. For now this only works when fetching from a named remote, like so: git remote add origin mediawiki::testwiki git fetch origin Attempting to fetch directly from a URL with a command like "git fetch mediawiki::testwiki" produces an "Invalid refspec" error. --- git-remote-mediawiki | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/git-remote-mediawiki b/git-remote-mediawiki index af66b58..7a3fdd3 100755 --- a/git-remote-mediawiki +++ b/git-remote-mediawiki @@ -7,6 +7,7 @@ use Storable qw(freeze thaw); use DateTime::Format::ISO8601; use Encode qw(encode_utf8); +my $remotename = $ARGV[0]; my $url = $ARGV[1]; print STDERR "$url\n"; @@ -62,6 +63,7 @@ while ($loop) { sub mw_capabilities { # print STDOUT "fetch\n"; + print STDOUT "refspec refs/heads/*:refs/mediawiki/$remotename/*\n"; print STDOUT "import\n"; print STDOUT "list\n"; print STDOUT "option\n"; @@ -91,7 +93,7 @@ sub mw_import { sub get_last_revision { # Get last commit sha1 - my $commit_sha1 = `git rev-parse refs/remotes/origin/master 2>/dev/null`; + my $commit_sha1 = `git rev-parse refs/mediawiki/$remotename/master 2>/dev/null`; # Get note regarding that commit chomp($commit_sha1); @@ -202,15 +204,15 @@ sub mw_import { # If it's a clone and the first revision, initalize this ref if ($fetch_from == 1 && $n == 1) { - #print "reset refs/remotes/origin/master\n"; + #print "reset refs/mediawiki/$remotename/master\n"; } - print "commit refs/remotes/origin/master\n"; + print "commit refs/mediawiki/$remotename/master\n"; print "mark :$n\n"; print "committer $user <$user\@$wiki_name> ", $dt->epoch, " +0000\n"; print "data ", bytes::length(encode_utf8($comment)), "\n", encode_utf8($comment); # If it's not a clone, needs to know where to start from if ($fetch_from != 1 && $n == 1) { - print "from refs/remotes/origin/master^0\n"; + print "from refs/mediawiki/$remotename/master^0\n"; } print "M 644 inline $title.wiki\n"; print "data ", bytes::length(encode_utf8($content)), "\n", encode_utf8($content); -- 1.7.5.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html