git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Herland <johan@herland.net>
To: gitster@pobox.com
Cc: Johan Herland <johan@herland.net>,
	git@vger.kernel.org, Per Cederqvist <cederp@opera.com>
Subject: [PATCH 0/5] branch: Fix --track on a remote-tracking non-branch
Date: Fri,  6 Sep 2013 12:40:37 +0200	[thread overview]
Message-ID: <1378464042-17476-1-git-send-email-johan@herland.net> (raw)

Hi,

Per Cederqvist alerted me to a change in v1.8.3.2 that broke his
build/test infrastructure. Specifically, before 41c21f2 (branch.c:
Validate tracking branches with refspecs instead of refs/remotes/*)
Git allowed a local branch to --track anything within refs/remotes/*,
and in 41c21f2, I changed the rules to require a configured remote
with a matching fetch refspec when setting up the upstream configuration
variables (so that there was no ambiguity on how to set
branch.<name>.remote and branch.<name>.merge).

So far so good.

However, in addition to requiring a matching remote/refspec, I also
(for reasons that are still unclear to me) added a requirement that
the resulting remote ref name (to be stored into branch.<name>.merge)
must start with "refs/heads/" (see the last line of
branch.c:check_tracking_branch()).

Although it is typically the case that an upstream branch is a proper
(refs/heads/*) branch in the remote repo (which explains why we have
not noticed this until now), I think it is _wrong_ of Git to _require_
this when configuring the upstream.

Per's setup that triggered this series is described in more detail in
patch #4/5 (which introduces a testcase illustrating the breakage),
and the actual fix (which simply removes the extra refs/heads/*
requirement on the remote ref) is in patch #5/5.

The two first patches are unrelated trivial fixes that I encountered
while working on this, and patch #3 is a small documentation update
suggested by Per.

...Johan


Johan Herland (4):
  t2024: Fix inconsequential typos
  t3200: Minor fix when preparing for tracking failure
  Refer to branch.<name>.remote/merge when documenting --track
  t3200: Add test demonstrating minor regression in 41c21f2

Per Cederqvist (1):
  branch.c: Relax unnecessary requirement on upstream's remote ref name

 Documentation/git-branch.txt |  6 ++++--
 branch.c                     |  3 +--
 t/t2024-checkout-dwim.sh     |  4 ++--
 t/t3200-branch.sh            | 37 ++++++++++++++++++++++++++++++++++++-
 4 files changed, 43 insertions(+), 7 deletions(-)

--
1.8.3.GIT

             reply	other threads:[~2013-09-06 10:41 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-06 10:40 Johan Herland [this message]
2013-09-06 10:40 ` [PATCH 1/5] t2024: Fix inconsequential typos Johan Herland
2013-09-06 17:32   ` Junio C Hamano
2013-09-06 20:53     ` Johan Herland
2013-09-06 10:40 ` [PATCH 2/5] t3200: Minor fix when preparing for tracking failure Johan Herland
2013-09-06 10:40 ` [PATCH 3/5] Refer to branch.<name>.remote/merge when documenting --track Johan Herland
2013-09-06 10:40 ` [PATCH 4/5] t3200: Add test demonstrating minor regression in 41c21f2 Johan Herland
2013-09-06 10:40 ` [PATCH 5/5] branch.c: Relax unnecessary requirement on upstream's remote ref name Johan Herland
2013-09-06 17:29 ` [PATCH 0/5] branch: Fix --track on a remote-tracking non-branch Junio C Hamano
2013-09-08 20:58 ` [PATCHv2 " Johan Herland
2013-09-08 20:58   ` [PATCHv2 1/5] t2024: Fix &&-chaining and a couple of typos Johan Herland
2013-09-08 20:58   ` [PATCHv2 2/5] t3200: Minor fix when preparing for tracking failure Johan Herland
2013-09-08 20:58   ` [PATCHv2 3/5] Refer to branch.<name>.remote/merge when documenting --track Johan Herland
2013-09-08 20:58   ` [PATCHv2 4/5] t3200: Add test demonstrating minor regression in 41c21f2 Johan Herland
2013-09-08 20:58   ` [PATCHv2 5/5] branch.c: Relax unnecessary requirement on upstream's remote ref name Johan Herland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1378464042-17476-1-git-send-email-johan@herland.net \
    --to=johan@herland.net \
    --cc=cederp@opera.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).