From: Junio C Hamano <gitster@pobox.com>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: Richard Hansen <rhansen@bbn.com>,
git@vger.kernel.org, Sverre Rabbelier <srabbelier@gmail.com>
Subject: Re: [PATCH v6 06/10] fast-export: add new --refspec option
Date: Tue, 12 Nov 2013 15:54:28 -0800 [thread overview]
Message-ID: <xmqqob5pfa6j.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <xmqq38n1guo8.fsf@gitster.dls.corp.google.com> (Junio C. Hamano's message of "Tue, 12 Nov 2013 13:46:31 -0800")
Junio C Hamano <gitster@pobox.com> writes:
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
>> Does it?
>>
>> % git config remote.origin.fetch '+refs/heads/*:refs/remotes-test/origin/*'
>> % git fetch origin master
>> From /home/felipec/dev/git
>> * branch master -> FETCH_HEAD
>> * [new branch] master -> refs/remotes-test/origin/master
>>
>> In this case remote.origin.fetch is determining how to translate ref names, not
>> what gets transferred, *exactly* the same as we are doing with --refspec. And
>> as far as I know, remote.origin.fetch is a refspec.
>
> If you had 'next' and 'pu' branches at the remote, do they get
> fetched with that command line?
More interestingly, if you have
[remote "mothership"]
push = +refs/heads/*:refs/remotes/satellite/*
in your configuration and then said
$ git push mothership master
then configured remote.mothership.push is not even used (I bring
this up because "export" is more closely related to "push" than
"fetch").
This (and why 'next' and 'pu' are not fetched in the "fetch"
example) is because traditionally, refspecs that are explicitly
given on the command line overrides configured ones (in other words,
configured ones are used as a fallback default).
This is a bit of tangent, but since the recent discussion on the
triangular workflows, I've been wondering if we may want to have a
new way to configure things so that we can say "When I push to
mothership any one of my local branches, I want it to go to the ref
with the same name at the mothership under refs/remotes/satellite/
hierarchy (because I am emulating 'git fetch' that is run on the
mothership to get updates from this satellite)", somewhat similar to
what you added to "fast-export" via the option in question.
But we cannot achieve that mapping by changing the meaning of the
configured refspecs remote.mothership.push without having to worry
about breaking existing practices of people. When they say "git
push mothership master", they do mean to push refs/heads/master to
refs/heads/master, and it will break the expectation in their
existing repositories if we change the semantics under them.
A possible way to achieve that mapping "When I push to mothership
any one of my local branches,..." could be to introduce a _new_
configuration (so that existing repositories will not suddenly
change their behaviour):
[remote "mothership"]
pushmap = +refs/heads/*:refs/remotes/satellite/*
And then we can allow this command line
$ git push mothership master
to be affected by the mapping when expanding the short-hand refspecs
given on the command line. Traditionally, anything without colon
stood as a short-hand for "push to the same name", e.g. 'master' is
for 'refs/heads/master:refs/heads/master' in this example, and
'v1.0' would be for 'refs/tags/v1.0:refs/tags/v1.0'.
But it does not have to stay that way. In order to move things
forward in that direction, this new configuration has to be
distinguishable from the traditional "refspec", as it embodies a
different concept.
next prev parent reply other threads:[~2013-11-12 23:54 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-11 22:54 [PATCH v6 10/10] transport-helper: add support to delete branches Felipe Contreras
2013-11-11 22:54 ` [PATCH v6 00/10] transport-helper: updates Felipe Contreras
2013-11-11 23:33 ` Junio C Hamano
2013-11-11 23:44 ` Felipe Contreras
2013-11-11 23:37 ` Junio C Hamano
2013-11-12 6:21 ` Richard Hansen
2013-11-12 20:55 ` Felipe Contreras
2013-11-12 7:03 ` [PATCH v2] remote-bzr: support the new 'force' option Richard Hansen
2013-11-12 21:01 ` Felipe Contreras
2013-11-11 22:54 ` [PATCH v6 01/10] transport-helper: fix extra lines Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 08/10] fast-import: add support to delete refs Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 05/10] fast-export: improve argument parsing Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 06/10] fast-export: add new --refspec option Felipe Contreras
2013-11-11 23:25 ` Junio C Hamano
2013-11-11 23:50 ` Felipe Contreras
2013-11-12 7:39 ` Richard Hansen
2013-11-12 17:08 ` Junio C Hamano
2013-11-12 21:02 ` Felipe Contreras
2013-11-12 21:46 ` Junio C Hamano
2013-11-12 23:20 ` Felipe Contreras
2013-11-12 23:54 ` Junio C Hamano [this message]
2013-12-07 10:00 ` Felipe Contreras
2013-12-09 21:00 ` Junio C Hamano
2013-12-09 21:11 ` Junio C Hamano
2014-04-24 3:55 ` Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 03/10] transport-helper: add 'force' to 'export' helpers Felipe Contreras
2013-11-11 23:28 ` Junio C Hamano
2013-11-11 23:47 ` Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 09/10] fast-export: add support to delete refs Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 07/10] transport-helper: add support for old:new refspec Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 04/10] transport-helper: check for 'forced update' message Felipe Contreras
2013-11-11 22:55 ` [PATCH v6 02/10] transport-helper: don't update refs in dry-run Felipe Contreras
-- strict thread matches above, loose matches on Subject: below --
2013-11-12 20:56 [PATCH v7 00/11] transport-helper: updates Felipe Contreras
2013-11-12 20:57 ` [PATCH v6 06/10] fast-export: add new --refspec option Felipe Contreras
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=xmqqob5pfa6j.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=rhansen@bbn.com \
--cc=srabbelier@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.