All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Matthieu Moy <Matthieu.Moy@imag.fr>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 1/2] git-remote-mediawiki: reset private ref after non-dumb push
Date: Wed, 21 Aug 2013 10:59:27 -0700	[thread overview]
Message-ID: <xmqq1u5nudq8.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1377072617-25086-1-git-send-email-Matthieu.Moy@imag.fr> (Matthieu Moy's message of "Wed, 21 Aug 2013 10:10:16 +0200")

Matthieu Moy <Matthieu.Moy@imag.fr> writes:

> Git-mediawiki's "dumb push" sends the local revisions to the remote wiki,
> but does not update the local metadata to reflect the push (hence, the
> next pull will have to re-import the exported revisions).
>
> The previous implementation was simply omitting the update to the private
> ref after a dumb push. This was broken by 664059fb62 (Felipe Contreras,
> Apr 17 2013, transport-helper: update remote helper namespace), which
> does an automatic update of the private ref (not just the
> remote-tracking) on push.
>
> This patch fixes git-remote-mediawiki to reset the private ref after the
> push is completed, cancelling the automatic update triggered by
> 664059fb62.
>
> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
> ---
> Just a resend of the RFC
> ( http://thread.gmane.org/gmane.comp.version-control.git/232224 ),
> which received no comment.
>
>  contrib/mw-to-git/git-remote-mediawiki.perl | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
> index f8d7d2c..13919ad 100755
> --- a/contrib/mw-to-git/git-remote-mediawiki.perl
> +++ b/contrib/mw-to-git/git-remote-mediawiki.perl
> @@ -53,6 +53,7 @@ if (@ARGV != 2) {
>  
>  my $remotename = $ARGV[0];
>  my $url = $ARGV[1];
> +my $reset_private_ref_to = undef;
>  
>  # Accept both space-separated and multiple keys in config file.
>  # Spaces should be written as _ anyway because we'll use chomp.
> @@ -161,6 +162,9 @@ sub parse_command {
>  	my ($line) = @_;
>  	my @cmd = split(/ /, $line);
>  	if (!defined $cmd[0]) {
> +		if ($reset_private_ref_to) {
> +			run_git("update-ref -m \"Git-MediaWiki non-dumb push\" refs/mediawiki/$remotename/master $reset_private_ref_to");
> +		}

So reset-private-ref-to is recorded for a non-dumb push, but...

>  		return 0;
>  	}
>  	if ($cmd[0] eq 'capabilities') {
> @@ -1209,9 +1213,10 @@ sub mw_push_revision {
>  				die("Unknown error from mw_push_file()\n");
>  			}
>  		}
> -		if (!$dumb_push) {
> +		if ($dumb_push) {
> +			$reset_private_ref_to = $remoteorigin_sha1;

... it is set for dumb-push?  I am confused.

> +		} else {
>  			run_git(qq(notes --ref=${remotename}/mediawiki add -f -m "mediawiki_revision: ${mw_revision}" ${sha1_commit}));
> -			run_git(qq(update-ref -m "Git-MediaWiki push" refs/mediawiki/${remotename}/master ${sha1_commit} ${sha1_child}));
>  		}
>  	}

  parent reply	other threads:[~2013-08-21 17:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-21  8:10 [PATCH 1/2] git-remote-mediawiki: reset private ref after non-dumb push Matthieu Moy
2013-08-21  8:10 ` [PATCH 2/2] git-remote-mediawiki: add test and check Makefile targets Matthieu Moy
2013-08-21 17:59 ` Junio C Hamano [this message]
2013-08-21 20:26   ` [PATCH 1/2] git-remote-mediawiki: reset private ref after non-dumb push Matthieu Moy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq1u5nudq8.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=Matthieu.Moy@imag.fr \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.