git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git push --no-mirror ?
@ 2010-03-08 12:34 SZEDER Gábor
  2010-03-08 20:49 ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: SZEDER Gábor @ 2010-03-08 12:34 UTC (permalink / raw)
  To: git

Hi,


I have a remote that I use mainly for backup with 'mirror = true' in
gitconfig, but also for sharing my "bleeding-edge" code with a
student.  Now I came across the situation where I would liked to push
only a single branch to that repo, only to discover that 'git push'
has no '--no-mirror' option to override the related configuration
setting.  Removing the 'mirror = true' line from the config, doing the
push, restoring the config did the trick, of course, but I think there
should be a simpler way to do that.  Is there a fundamental reason why
there is no 'push --no-mirror', or just noone has noticed/bothered
before?


Thanks,
Gábor

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: git push --no-mirror ?
  2010-03-08 12:34 git push --no-mirror ? SZEDER Gábor
@ 2010-03-08 20:49 ` Junio C Hamano
  2010-03-09 12:04   ` SZEDER Gábor
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2010-03-08 20:49 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: git

SZEDER Gábor <szeder@ira.uka.de> writes:

> I have a remote that I use mainly for backup with 'mirror = true' in
> gitconfig, but also for sharing my "bleeding-edge" code with a
> student.  Now I came across the situation where I would liked to push
> only a single branch to that repo, only to discover that 'git push'
> has no '--no-mirror' option to override the related configuration
> setting.  Removing the 'mirror = true' line from the config, doing the
> push, restoring the config did the trick, of course, but I think there
> should be a simpler way to do that.  Is there a fundamental reason why
> there is no 'push --no-mirror', or just noone has noticed/bothered
> before?

I think that is the case.  How does this look (haven't thought it through
nor even compile tested yet)?

 builtin-push.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/builtin-push.c b/builtin-push.c
index f7bc2b2..89df1ff 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -145,7 +145,7 @@ static int do_push(const char *repo, int flags)
 		die("No destination configured to push to.");
 	}
 
-	if (remote->mirror)
+	if (!refspec && remote->mirror)
 		flags |= (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE);
 
 	if ((flags & TRANSPORT_PUSH_ALL) && refspec) {

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: git push --no-mirror ?
  2010-03-08 20:49 ` Junio C Hamano
@ 2010-03-09 12:04   ` SZEDER Gábor
  0 siblings, 0 replies; 3+ messages in thread
From: SZEDER Gábor @ 2010-03-09 12:04 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Hi,


On Mon, Mar 08, 2010 at 12:49:40PM -0800, Junio C Hamano wrote:
> SZEDER Gábor <szeder@ira.uka.de> writes:
> 
> > I have a remote that I use mainly for backup with 'mirror = true' in
> > gitconfig, but also for sharing my "bleeding-edge" code with a
> > student.  Now I came across the situation where I would liked to push
> > only a single branch to that repo, only to discover that 'git push'
> > has no '--no-mirror' option to override the related configuration
> > setting.  Removing the 'mirror = true' line from the config, doing the
> > push, restoring the config did the trick, of course, but I think there
> > should be a simpler way to do that.  Is there a fundamental reason why
> > there is no 'push --no-mirror', or just noone has noticed/bothered
> > before?
> 
> I think that is the case.  How does this look (haven't thought it through
> nor even compile tested yet)?
> 
>  builtin-push.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/builtin-push.c b/builtin-push.c
> index f7bc2b2..89df1ff 100644
> --- a/builtin-push.c
> +++ b/builtin-push.c
> @@ -145,7 +145,7 @@ static int do_push(const char *repo, int flags)
>  		die("No destination configured to push to.");
>  	}
>  
> -	if (remote->mirror)
> +	if (!refspec && remote->mirror)
>  		flags |= (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE);
>  
>  	if ((flags & TRANSPORT_PUSH_ALL) && refspec) {

thanks, this DWIMery seems to work just fine (i.e. solves my problem
and does not break any tests in the test suite).


Best,
Gábor

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-03-09 12:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-08 12:34 git push --no-mirror ? SZEDER Gábor
2010-03-08 20:49 ` Junio C Hamano
2010-03-09 12:04   ` SZEDER Gábor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).