Hi, On Mon, 18 Feb 2008, Jay Soffian wrote: > Incorporated Johannes' second round of feedback. Not exactly. > diff --git a/branch.c b/branch.c > index 1fc8788..64f0a4a 100644 > --- a/branch.c > +++ b/branch.c > @@ -37,7 +37,7 @@ 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, int always) > { > char key[1024]; > struct tracking tracking; > @@ -49,8 +49,12 @@ 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) > - return 1; > + !tracking.matches) { > + if (!always) > + return 1; > + tracking.matches = 1; > + tracking.src = xstrdup(orig_ref); > + } > This looks completely different than what I commented on. And my comments suggested a different solution. Unfortunately, I will not have time for the rest of the day to review that new thing (it is not at all obvious for me why this works as intended, and does not break anything else). But you can use the time to write some tests ;-) Ciao, Dscho - 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