From: Felipe Contreras Date: Mon, 07 Nov 2011 18:35:07 GMT Subject: Re: [RFC/PATCH] remote: add new sync command Message-ID: In-Reply-To: <20111107172218.GB3621@sigill.intra.peff.net> On Mon, Nov 7, 2011 at 7:22 PM, Jeff King wrote: > On Mon, Nov 07, 2011 at 06:07:12PM +0200, Felipe Contreras wrote: > >> This is useful to mirror all the branches in the current repo to >> another. >> [...] >> +'sync':: >> + >> +Synchronizes local branches with certain remote. This is useful to backup all >> +the branches in a local repository to a remote one, regardless of what upstream >> +is configured for each branch. >> ++ >> +With `--prune`, remote branches will be deleted if they are not also locally. >> ++ >> +With `--new`, local branches that are not yet in the remote will be pushed too. >> ++ >> +With `--all`, basically both `--prune` and `--new` will be selected. >> ++ >> +With `--force`, existing branches will be forced to update, like `git push >> +--force`. >> ++ >> +With `--dry-run`, all the changes will be reported, but not really happen. > > Why is this in "git remote", and not "git push"?  The former is usually > about managing the configuration of remotes, not about actually doing > the ref transfer (the "-f" flag excepted, but that is clearly just > calling out to "fetch"). I don't know, seems logical to me what 'git remote sync' does, but 'git push sync'? That sounds weird, and there are no 'git push foo' commands. > And how does this differ from "git push --mirror"? It looks like you > have more options for what pushing all versus pruning, but wouldn't it > be better for "git push" to grow those options? But how? --mirror is just an option, I want a separate command, with it's own options. Cheers. -- Felipe Contreras