Hi, On Mon, Mar 08, 2010 at 12:49:40PM -0800, Junio C Hamano wrote: > SZEDER Gábor <szeder@xxxxxxxxxx> 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 -- 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