From: Junio C Hamano <gitster@pobox.com>
To: Han Jiang <jhcarl0814@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: `git fetch --refmap=<refspec>… <repository> <refspec>…` providing NON-empty <refspec> to the --refmap ALSO causes Git to ignore the configured refspecs
Date: Wed, 04 Sep 2024 07:34:52 -0700 [thread overview]
Message-ID: <xmqqle07ebcj.fsf@gitster.g> (raw)
In-Reply-To: <CANrWfmSe0ekbRR9VsX8jALWQQVdhDv-2WTSm47jHTiV9-Z7-pg@mail.gmail.com> (Han Jiang's message of "Wed, 4 Sep 2024 16:09:51 +1200")
Han Jiang <jhcarl0814@gmail.com> writes:
> What happened instead? (Actual behavior)
>
> In `git fetch --refmap='+refs/heads/branch1:refs/remotes/server/branch1'
> server branch1 branch2`,
> `remote.server.fetch=+refs/heads/*:refs/remotes/server/*` is replaced
> by `--refmap='+refs/heads/branch1:refs/remotes/server/branch1'`,
> so these are what would be done:
> branch1 -> server/branch1
This is totally expected.
A refspec specifies "what to fetch" and "where to store locally what
we fetched" at the same time. A refmap only specifies the "where
the stuff is stored locally" part, and what to fetch is specified
separately. You asked branch1 and branch2 to be fetched (peek into
the .git/FETCH_HEAD file to see both objects are fetched) from the
command line arguments, and your refmap specified where to store
what you got from their refs/heads/branch1. As the refmap does not
say anything about any other branches, they are not stored anywhere
in your local refs/ namespace.
Typically --refmap is given with a glob, but the story is the same
there. If you fetched refs/notes/commits from that same server with
a refmap to map "refs/heads/*:refs/remotes/server/*", the notes commit
is not mapped to anywhere with the refmap, so nothing will happen to
it.
next prev parent reply other threads:[~2024-09-04 14:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-04 4:09 `git fetch --refmap=<refspec>… <repository> <refspec>…` providing NON-empty <refspec> to the --refmap ALSO causes Git to ignore the configured refspecs Han Jiang
2024-09-04 6:15 ` `git fetch --refmap=<refspec>… <repository> <refspec>… ` " Johannes Sixt
2024-09-04 11:12 ` Han Jiang
2024-09-04 16:38 ` Johannes Sixt
2024-09-04 16:47 ` Junio C Hamano
2024-09-04 23:52 ` Han Jiang
2024-09-04 14:34 ` Junio C Hamano [this message]
2024-09-04 23:41 ` `git fetch --refmap=<refspec>… <repository> <refspec>…` " Han Jiang
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=xmqqle07ebcj.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jhcarl0814@gmail.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.