git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
	"Stefan Beller" <sbeller@google.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v3 0/8] fixes for unqualified <dst> push
Date: Fri, 26 Oct 2018 23:07:33 +0000	[thread overview]
Message-ID: <20181026230741.23321-1-avarab@gmail.com> (raw)
In-Reply-To: <20181026192734.9609-1-avarab@gmail.com>

After sending out v2 I noticed I didn't update the examples in a
couple of the commit messages, and figured I'd finish this up by
adding a patch to document how this works in the "git-push"
manpage. This behavior has never been properly documented. range-diff
with v2:
    
    1:  ca8eb6dc28 = 1:  ca8eb6dc28 remote.c: add braces in anticipation of a follow-up change
    2:  b0e15b6ff1 = 2:  b0e15b6ff1 i18n: remote.c: mark error(...) messages for translation
    3:  052fc5860e = 3:  052fc5860e push: improve the error shown on unqualified <dst> push
    4:  e6aa2e360f = 4:  e6aa2e360f push: move unqualified refname error into a function
    5:  57840952b2 ! 5:  dcf566e16e push: add an advice on unqualified <dst> push
        @@ -13,8 +13,10 @@
                 error: The destination you provided is not a full refname (i.e.,
                 starting with "refs/"). We tried to guess what you meant by:
         
        -        - Looking for a ref that matches newbranch on the remote side.
        -        - Looking at the refname of the local source.
        +        - Looking for a ref that matches 'newbranch' on the remote side.
        +        - Checking if the <src> being pushed ('v2.19.0^{commit}')
        +          is a ref in "refs/{heads,tags}/". If so we add a corresponding
        +          refs/{heads,tags}/ prefix on the remote side.
         
                 Neither worked, so we gave up. You must fully-qualify the ref.
                 hint: The <src> part of the refspec is a commit object.
    6:  a2d98855cc = 6:  92ff753437 push: test that <src> doesn't DWYM if <dst> is unqualified
    7:  4e1953da82 ! 7:  58eeb0f3f3 push: add DWYM support for "git push refs/remotes/...:<dst>"
        @@ -3,22 +3,44 @@
             push: add DWYM support for "git push refs/remotes/...:<dst>"
         
             Add DWYM support for pushing a ref in refs/remotes/* when the <dst>
        -    ref is unqualified, e.g.:
        +    ref is unqualified. Now instead of erroring out we support e.g.:
         
        -        git push origin refs/remotes/origin/master:upstream-master
        +        $ ./git-push avar refs/remotes/origin/master:upstream-master -n
        +        To github.com:avar/git.git
        +         * [new branch]            origin/master -> upstream-master
         
             Before this we wouldn't know what do do with
             refs/remotes/origin/master, now we'll look it up and discover that
             it's a commit (or tag) and add a refs/{heads,tags}/ prefix to <dst> as
             appropriate.
         
        +    The error message emitted when we still don't know what to do has been
        +    amended to note that this is something we tried:
        +
        +        $ ./git-push avar v2.19.0^{commit}:newbranch -n
        +        error: The destination you provided is not a full refname (i.e.,
        +        starting with "refs/"). We tried to guess what you meant by:
        +
        +        - Looking for a ref that matches 'newbranch' on the remote side.
        +        - Checking if the <src> being pushed ('v2.19.0^{commit}')
        +          is a ref in "refs/{heads,tags}/". If so we add a corresponding
        +          refs/{heads,tags}/ prefix on the remote side.
        +        - Checking if the <src> being pushed ('v2.19.0^{commit}')
        +          is a commit or tag in "refs/remotes/*". Then we infer a
        +          corresponding refs/{heads,tags} on the remote side.
        +
        +        None of those worked, so we gave up. You must fully-qualify the ref.
        +        hint: The <src> part of the refspec is a commit object.
        +        hint: Did you mean to create a new branch by pushing to
        +        hint: 'v2.19.0^{commit}:refs/heads/newbranch'?
        +
             I'm bending over backwards and assuming that someone might have hacked
             in remote tracking tags (see [1] for a discussion of how that can be
             done), but punting on any tree or blob objects found under
             refs/remotes/*.
         
             This is the first use of the %N$<fmt> style of printf format in
        -    the *.[ch] files in our codebase, but it's supported by POSIX[2] and
        +    the *.[ch] files in our codebase. It's supported by POSIX[2] and
             there's existing uses for it in po/*.po files, so hopefully it won't
             cause any trouble. It's more obvious for translators than to have a
             3rd argument to the function identical to the 2nd, by re-using the 2nd
    -:  ---------- > 8:  bc171b0312 push doc: document the DWYM behavior pushing to unqualified <dst>

Ævar Arnfjörð Bjarmason (8):
  remote.c: add braces in anticipation of a follow-up change
  i18n: remote.c: mark error(...) messages for translation
  push: improve the error shown on unqualified <dst> push
  push: move unqualified refname error into a function
  push: add an advice on unqualified <dst> push
  push: test that <src> doesn't DWYM if <dst> is unqualified
  push: add DWYM support for "git push refs/remotes/...:<dst>"
  push doc: document the DWYM behavior pushing to unqualified <dst>

 Documentation/config.txt   |   7 +++
 Documentation/git-push.txt |  27 ++++++++
 advice.c                   |   2 +
 advice.h                   |   1 +
 remote.c                   | 124 +++++++++++++++++++++++++++++--------
 t/t5505-remote.sh          |  57 +++++++++++++++++
 6 files changed, 193 insertions(+), 25 deletions(-)

-- 
2.19.1.759.g500967bb5e


  reply	other threads:[~2018-10-26 23:07 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-10 10:41 [PATCH 0/2] add an advice on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-10-10 10:41 ` [PATCH 1/2] i18n: remote.c: mark error(...) messages for translation Ævar Arnfjörð Bjarmason
2018-10-10 20:55   ` Jeff King
2018-10-10 10:41 ` [PATCH 2/2] push: add an advice on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-10-10 20:55   ` Jeff King
2018-10-10 21:23     ` Ævar Arnfjörð Bjarmason
2018-10-11  0:16       ` Jeff King
2018-10-11 22:45       ` Junio C Hamano
2018-10-26 15:45         ` Ævar Arnfjörð Bjarmason
2018-10-29  1:00           ` Junio C Hamano
2018-10-29  4:17             ` Junio C Hamano
2018-10-26 19:27         ` [PATCH v2 0/7] fixes for " Ævar Arnfjörð Bjarmason
2018-10-26 23:07           ` Ævar Arnfjörð Bjarmason [this message]
2018-11-02  6:52             ` [PATCH v3 0/8] " Jeff King
2018-11-13 19:52             ` [PATCH v4 0/7] " Ævar Arnfjörð Bjarmason
2018-11-14  7:00               ` Junio C Hamano
2018-11-13 19:52             ` [PATCH v4 1/7] remote.c: add braces in anticipation of a follow-up change Ævar Arnfjörð Bjarmason
2018-11-13 19:52             ` [PATCH v4 2/7] i18n: remote.c: mark error(...) messages for translation Ævar Arnfjörð Bjarmason
2018-11-13 19:52             ` [PATCH v4 3/7] push: improve the error shown on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-11-13 19:52             ` [PATCH v4 4/7] push: move unqualified refname error into a function Ævar Arnfjörð Bjarmason
2018-11-13 19:52             ` [PATCH v4 5/7] push: add an advice on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-11-13 19:52             ` [PATCH v4 6/7] push: test that <src> doesn't DWYM if <dst> is unqualified Ævar Arnfjörð Bjarmason
2018-11-13 19:52             ` [PATCH v4 7/7] push doc: document the DWYM behavior pushing to unqualified <dst> Ævar Arnfjörð Bjarmason
2018-10-26 23:07           ` [PATCH v3 1/8] remote.c: add braces in anticipation of a follow-up change Ævar Arnfjörð Bjarmason
2018-10-26 23:07           ` [PATCH v3 2/8] i18n: remote.c: mark error(...) messages for translation Ævar Arnfjörð Bjarmason
2018-10-26 23:07           ` [PATCH v3 3/8] push: improve the error shown on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-10-29  5:03             ` Junio C Hamano
2018-10-26 23:07           ` [PATCH v3 4/8] push: move unqualified refname error into a function Ævar Arnfjörð Bjarmason
2018-10-26 23:07           ` [PATCH v3 5/8] push: add an advice on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-10-29  5:14             ` Junio C Hamano
2018-11-02  6:47               ` Jeff King
2018-10-26 23:07           ` [PATCH v3 6/8] push: test that <src> doesn't DWYM if <dst> is unqualified Ævar Arnfjörð Bjarmason
2018-10-29  5:19             ` Junio C Hamano
2018-10-26 23:07           ` [PATCH v3 7/8] push: add DWYM support for "git push refs/remotes/...:<dst>" Ævar Arnfjörð Bjarmason
2018-10-29  5:24             ` Junio C Hamano
2018-10-29  8:13               ` Ævar Arnfjörð Bjarmason
2018-11-01  4:18                 ` Junio C Hamano
2018-11-05 11:31                   ` Ævar Arnfjörð Bjarmason
2018-11-05 12:29                     ` Junio C Hamano
2018-10-29  7:06             ` Junio C Hamano
2018-10-29  7:57               ` Junio C Hamano
2018-10-29  8:05               ` Ævar Arnfjörð Bjarmason
2018-10-26 23:07           ` [PATCH v3 8/8] push doc: document the DWYM behavior pushing to unqualified <dst> Ævar Arnfjörð Bjarmason
2018-10-26 19:27         ` [PATCH v2 1/7] remote.c: add braces in anticipation of a follow-up change Ævar Arnfjörð Bjarmason
2018-10-26 21:05           ` Stefan Beller
2018-10-26 19:27         ` [PATCH v2 2/7] i18n: remote.c: mark error(...) messages for translation Ævar Arnfjörð Bjarmason
2018-10-26 19:27         ` [PATCH v2 3/7] push: improve the error shown on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-10-26 19:27         ` [PATCH v2 4/7] push: move unqualified refname error into a function Ævar Arnfjörð Bjarmason
2018-10-26 19:27         ` [PATCH v2 5/7] push: add an advice on unqualified <dst> push Ævar Arnfjörð Bjarmason
2018-10-26 19:27         ` [PATCH v2 6/7] push: test that <src> doesn't DWYM if <dst> is unqualified Ævar Arnfjörð Bjarmason
2018-10-26 19:27         ` [PATCH v2 7/7] push: add DWYM support for "git push refs/remotes/...:<dst>" Ævar Arnfjörð Bjarmason
2018-10-10 21:54     ` [PATCH 2/2] push: add an advice on unqualified <dst> push Junio C Hamano
2018-10-11  0:19       ` Jeff King

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=20181026230741.23321-1-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).