Re: [PATCH] branch: optionally setup branch.*.merge from upstream local branches
- From
Jay Soffian <jaysoffian@gmail.com>
- Date
- Feb 19, 2008, 02:19 UTC
- Message-ID
- <76718490802181819o4cf742edi92bbcd9039f0cdac@mail.gmail.com>
- In-Reply-To
- <1203386832-43969-1-git-send-email-jaysoffian@gmail.com>
On Feb 18, 2008 9:07 PM, Jay Soffian <jaysoffian@gmail.com> wrote:
Show 28 quoted lines
> diff --git a/branch.c b/branch.c
> index 1fc8788..9d7585e 100644
> --- a/branch.c
> +++ b/branch.c
> @@ -37,7 +37,8 @@ static int find_tracked_branch(struct remote *remote, void *priv)
> * to infer the settings for branch.<new_ref>.{remote,merge} from the
> * config.
> */
> -static int setup_tracking(const char *new_ref, const char *orig_ref)
> +static int setup_tracking(const char *new_ref, const char *orig_ref,
> + enum branch_track track)
> {
> char key[1024];
> struct tracking tracking;
> @@ -48,10 +49,14 @@ static int setup_tracking(const char *new_ref, const char *orig_ref)
>
> memset(&tracking, 0, sizeof(tracking));
> tracking.spec.dst = (char *)orig_ref;
> - if (for_each_remote(find_tracked_branch, &tracking) ||
> - !tracking.matches)
> + if (for_each_remote(find_tracked_branch, &tracking))
> return 1;
>
> + if (!tracking.matches && track == BRANCH_TRACK_ALWAYS) {
> + tracking.matches = 1;
> + tracking.src = xstrdup(orig_ref);
> + }
> +Well that's obviously wrong (though it causes no problems, setup_tracking() would return 0 when it should return 1, but its return value is currently ignored). I changed it to:
if (!tracking.matches) {
if (track != BRANCH_TRACK_ALWAYS)
return 1;
tracking.matches = 1;
tracking.src = xstrdup(orig_ref);
}j.