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
next prev parent 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 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).