git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH RFC 2/8] push: add push.default = mirror

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 20, 2009, 20:46 UTC
Message-ID
<7vocrfulpu.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1248112195-3761-3-git-send-email-bonzini@gnu.org>
Paolo Bonzini <bonzini@gnu.org> writes:
Show 25 quoted lines
> This patch adds a new value for push.default.  The aim of the series is
> to support all push.default values as arguments to `--push' in git-clone
> and git-remote, and if push.default=mirror works it is easy to make
> `--mirror' a synonym for `--push=mirror' in those comments.
>
> Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
> ---
>  Documentation/config.txt |    2 ++
>  builtin-push.c           |   12 ++++++++++--
>  cache.h                  |    1 +
>  config.c                 |    4 +++-
>  4 files changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 4c27e9d..fa5eb76 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -1290,6 +1290,8 @@ push.default::
>  * `matching` push all matching branches.
>    All branches having the same name in both ends are considered to be
>    matching. This is the default.
> +* `mirror` pushes all branches forcing non fast-forward updates and
> +  deletes branches that do not exist anymore locally.
>  * `tracking` push the current branch to its upstream branch.
>  * `current` push the current branch to a branch of the same name.

I think this patch alone (regardless of the rest which I haven't read) probably makes sense.

Except that I think the part below contradicts with the --mirror push semantics (see remote.c::match_refs()).

Show 12 quoted lines
> diff --git a/builtin-push.c b/builtin-push.c
> index e678a9d..8a312a3 100644
> --- a/builtin-push.c
> +++ b/builtin-push.c
> @@ -74,6 +73,10 @@ static void setup_default_push_refspecs(void)
>  		add_refspec(":");
>  		break;
>  
> +	case PUSH_DEFAULT_MIRROR:
> +		add_refspec("+refs/*:refs/*");
> +		break;
> +
Previous: Paolo BonziniNext: Paolo Bonzini
Message 4 of 16 in “introduce 'git remote add --push' and 'git clone --push'”
  1. 0/8 introduce 'git remote add --push' and 'git clone --push'Paolo Bonzini, Jul 20, 2009
  2. 1/8 reintroduce PUSH_DEFAULT_UNSPECIFIEDPaolo Bonzini, Jul 20, 2009
  3. 2/8 push: add push.default = mirrorPaolo Bonzini, Jul 20, 2009
  4. Junio C HamanoJul 20, 2009
  5. Paolo BonziniJul 20, 2009
  6. Junio C HamanoJul 20, 2009
  7. Paolo BonziniJul 20, 2009
  8. 3/8 git remote add: refactor configurationPaolo Bonzini, Jul 20, 2009
  9. 4/8 git remote add: add --push optionPaolo Bonzini, Jul 20, 2009
  10. 5/8 clone: refactoring of building the fetch refspecPaolo Bonzini, Jul 20, 2009
  11. 6/8 clone: use setup_remote_configPaolo Bonzini, Jul 20, 2009
  12. 7/8 config: add git_config_norepoPaolo Bonzini, Jul 20, 2009
  13. 8/8 clone: add --push optionPaolo Bonzini, Jul 20, 2009
  14. Junio C HamanoJul 20, 2009
  15. Paolo BonziniJul 21, 2009
  16. Junio C HamanoJul 21, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.