Re: [PATCH v2 15/19] pull: teach git pull about --rebase

2015-06-10 Thread Junio C Hamano
Paul Tan writes: > +/** > + * Returns remote's upstream branch for the current branch. If remote is > NULL, > + * the current branch's configured default remote is used. Returns NULL if > + * `remote` does not name a valid remote, HEAD does not point to a branch, > + * remote is not the branch's

Re: [PATCH v2 15/19] pull: teach git pull about --rebase

2015-06-10 Thread Junio C Hamano
Paul Tan writes: > so it's more or less a direct translation of the shell script, and we > can be sure it will have the same behavior. I'm definitely in favor of > switching this to use remote_find_tracking(), the question is whether > we want to do it in this patch or in a future patch on top.

Re: [PATCH v2 15/19] pull: teach git pull about --rebase

2015-06-10 Thread Paul Tan
On Wed, Jun 10, 2015 at 10:44 PM, Junio C Hamano wrote: > Paul Tan writes: > >>> Hmph, it is somewhat surprising that we do not have such a helper >>> already. Wouldn't we need this logic to implement $branch@{upstream} >>> syntax? >> >> Right, the @{upstream} syntax is implemented by branch_get_

Re: [PATCH v2 15/19] pull: teach git pull about --rebase

2015-06-10 Thread Junio C Hamano
Paul Tan writes: >> Hmph, it is somewhat surprising that we do not have such a helper >> already. Wouldn't we need this logic to implement $branch@{upstream} >> syntax? > > Right, the @{upstream} syntax is implemented by branch_get_upstream() > in remote.c. It, however, does not check to see if t

Re: [PATCH v2 15/19] pull: teach git pull about --rebase

2015-06-10 Thread Paul Tan
On Wed, Jun 10, 2015 at 9:56 AM, Junio C Hamano wrote: > Paul Tan writes: > >> +enum rebase_type { >> + REBASE_INVALID = -1, >> + REBASE_FALSE = 0, >> + REBASE_TRUE, >> + REBASE_PRESERVE >> +}; >> + >> +/** >> + * Parses the value of --rebase, branch.*.rebase or pull.rebase. If va

Re: [PATCH v2 15/19] pull: teach git pull about --rebase

2015-06-09 Thread Junio C Hamano
Paul Tan writes: > +enum rebase_type { > + REBASE_INVALID = -1, > + REBASE_FALSE = 0, > + REBASE_TRUE, > + REBASE_PRESERVE > +}; > + > +/** > + * Parses the value of --rebase, branch.*.rebase or pull.rebase. If value is > a > + * false value, returns REBASE_FALSE. If value is a t

[PATCH v2 15/19] pull: teach git pull about --rebase

2015-06-02 Thread Paul Tan
Since cd67e4d (Teach 'git pull' about --rebase, 2007-11-28), if the --rebase option is set, git-rebase is run instead of git-merge. Re-implement this by introducing run_rebase(), which is called instead of run_merge() if opt_rebase is a true value. Since c85c792 (pull --rebase: be cleverer with r