Re: [RFC/PATCH] remote: add new sync command
- From
Jeff King <peff@peff.net>
- Date
- Nov 7, 2011, 17:22 UTC
- Message-ID
- <20111107172218.GB3621@sigill.intra.peff.net>
- In-Reply-To
- <1320682032-12698-1-git-send-email-felipe.contreras@gmail.com>
On Mon, Nov 07, 2011 at 06:07:12PM +0200, Felipe Contreras wrote:
Show 19 quoted lines
> 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").
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?
-Peff