All of lore.kernel.org
 help / color / mirror / 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

* 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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.