This is a re-roll of the series from:
http://public-inbox.org/git/[email protected]/
Thanks Junio and Jake for reviewing the original. This is mostly the
same, but:
- it fixes the case where "branch -r @{-1}" mistakes a local branch
for a remote (and adds a test)
- as a result of the above fix, the series needs to be applied on top
of jk/auto-namelen-in-interpret-branch-name.
- I clarified the history in the commit message of patch 4
- the commit message for patch 4 now explicitly mentions which
callers can be left alone (so anybody blaming the history won't
think they were simply forgotten).
With the exception of patch 6 flipping the failure/success bit on the
new test, the rest of the patches should be identical.
[1/8]: interpret_branch_name: move docstring to header file
[2/8]: strbuf_branchname: drop return value
[3/8]: strbuf_branchname: add docstring
[4/8]: interpret_branch_name: allow callers to restrict expansions
[5/8]: t3204: test git-branch @-expansion corner cases
[6/8]: branch: restrict @-expansions when deleting
[7/8]: strbuf_check_ref_format(): expand only local branches
[8/8]: checkout: restrict @-expansions when finding branch
builtin/branch.c | 5 +-
builtin/checkout.c | 2 +-
builtin/merge.c | 2 +-
cache.h | 32 +++++++-
refs.c | 2 +-
revision.c | 2 +-
sha1_name.c | 92 ++++++++++++-----------
strbuf.h | 21 +++++-
t/t3204-branch-name-interpretation.sh | 133 ++++++++++++++++++++++++++++++++++
9 files changed, 240 insertions(+), 51 deletions(-)
create mode 100755 t/t3204-branch-name-interpretation.sh
-Peff