Re: git push --no-mirror ?

Subsystems: the rest

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: git push --no-mirror ?

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:24

SZEDER Gábor [off-list ref] 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) {

Re: git push --no-mirror ?

From: SZEDER Gábor <hidden>
Date: 2016-06-15 22:48:24

Hi,


On Mon, Mar 08, 2010 at 12:49:40PM -0800, Junio C Hamano wrote:
quoted hunk
SZEDER Gábor [off-list ref] writes:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help