From: Mark Levedahl <mlevedahl@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Teach remote machinery about remotes.default config variable
Date: Sat, 12 Jan 2008 00:52:53 -0500 [thread overview]
Message-ID: <478855B5.9070600@gmail.com> (raw)
In-Reply-To: <7v63xzzszp.fsf@gitster.siamese.dyndns.org>
Junio C Hamano wrote:
> "Mark Levedahl" <mlevedahl@gmail.com> writes:
>
> Thanks.
>
> I have to admit that I happen to agree with Dscho. I do not see
> this helping to solve communication issues very much.
>
Junio,
My use really is a different use-case than is typical. Origin is a great
concept for the common case of projects with a single upstream
repository. Except for cloning, you don't have to know or care the name
of the upstream as you move from project to project, it is just always
"origin" and you use the same remote nickname in each.
This breaks down in a project like mine where there are multiple servers
and the differences are important. Content and usage vary server to
server, not just connectivity. At this point, hiding the server names is
counterproductive. Basically, use of origin is data hiding, and data
hiding is not good when you actually need the data.
Across the git project, I believe everyone basically understands origin
as git.kernel.org/..., and origin is not ambiguous. There is just one
server. For my project, there are multiple servers and a number of us
pull from and push to multiple servers with no intent that any one
server has everything (This multiplicity is necessary for several
reasons, and we have various guards in place restrict the content of
different servers). Thus, there really is no usefully defined *origin*.
There just isn't. This is where the disagreements lie.
The argument against my approach of explicitly naming the server rests
upon the premise that hiding a half-dozen servers, all different and
with those differences being important, under the single universal name
"origin", makes things easier. It doesn't when different servers are
different. Yes, it is possible to figure out what "origin" means at a
given client, and thus understand how to address a given server from
that client. That is the essence of the problem. It is clear to address
server1 as "server1", and server3 as "server3." It is not helpful to
sometimes refer to server1 as origin, sometimes as server3, and thus
need to know the definition of origin to know how to name the server.
For the "normal" git use-case the specific definition of origin is
unimportant when you use it and so provides a useful abstraction. That I
must know what origin means in order to know what to do indicates the
abstraction is counter-productive.
Until we started using sub-modules, we used git clone --origin
<nickname> and per our standard usage never even had "origin" defined.
We just agreed on a common set of nicknames for our servers and used
those. Not everyone had all the remotes defined, but nickname "foo"
meant the same thing everywhere it was defined. That worked very well
for us.
So, all I am doing here is trying to extend a basic multi-server
capability git already has for a monolithic project into projects using
sub-modules. This will let us resume working the way we did before and
stop overloading a single nickname (origin) with multiple meanings.
Mark
next prev parent reply other threads:[~2008-01-12 5:53 UTC|newest]
Thread overview: 134+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-11 3:29 Allowing override of the default "origin" nickname Mark Levedahl
2008-01-11 3:29 ` [PATCH] Teach remote machinery about remotes.default config variable Mark Levedahl
2008-01-11 3:29 ` [PATCH] git-remote - Unset remotes.default when deleting the default remote Mark Levedahl
2008-01-11 3:29 ` [PATCH] git-clone - Set remotes.default config variable Mark Levedahl
2008-01-11 3:29 ` [PATCH] git-submodule - Possibly inherit parent's default remote on init/clone Mark Levedahl
2008-01-11 8:00 ` [PATCH] Teach remote machinery about remotes.default config variable Junio C Hamano
2008-01-11 20:52 ` Mark Levedahl
2008-01-12 2:18 ` Junio C Hamano
2008-01-12 5:52 ` Mark Levedahl [this message]
2008-01-12 6:03 ` Junio C Hamano
2008-01-12 6:16 ` Mark Levedahl
2008-01-12 6:27 ` Junio C Hamano
2008-01-12 13:24 ` Mark Levedahl
2008-01-12 18:46 ` Junio C Hamano
2008-01-12 19:34 ` Mark Levedahl
2008-01-12 20:24 ` Johannes Schindelin
2008-01-12 22:29 ` Mark Levedahl
2008-01-13 21:22 ` Johannes Schindelin
2008-01-14 3:23 ` Mark Levedahl
2008-01-14 4:42 ` Junio C Hamano
2008-01-15 4:55 ` Mark Levedahl
2008-01-15 6:18 ` Junio C Hamano
2008-01-15 23:08 ` Mark Levedahl
2008-01-16 0:17 ` Johannes Schindelin
2008-01-16 1:25 ` Mark Levedahl
2008-01-16 1:40 ` Johannes Schindelin
2008-01-12 20:26 ` Junio C Hamano
2008-01-12 22:24 ` Mark Levedahl
2008-01-12 22:48 ` Junio C Hamano
2008-01-13 15:47 ` Mark Levedahl
2008-01-13 16:27 ` [PATCH] Teach remote machinery about core.origin " Mark Levedahl
2008-01-13 16:27 ` [PATCH] git-remote - Unset core.origin when deleting the default remote Mark Levedahl
2008-01-13 16:27 ` [PATCH] git-clone - Set remotes.origin config variable Mark Levedahl
2008-01-13 16:27 ` [PATCH] git-submodule - Possibly inherit parent's default remote on init/clone Mark Levedahl
2008-01-13 16:27 ` [PATCH] Teach git-submodule to use master's remote when updating subprojects Mark Levedahl
2008-01-14 11:05 ` [PATCH] git-remote - Unset core.origin when deleting the default remote Jeff King
2008-01-15 5:02 ` Mark Levedahl
2008-01-15 16:50 ` Jeff King
2008-01-13 21:27 ` [PATCH] Teach remote machinery about remotes.default config variable Johannes Schindelin
2008-01-14 1:50 ` Junio C Hamano
2008-01-14 6:49 ` safecrlf not in 1.5.4 (was Re: [PATCH] Teach remote machinery about remotes.default config variable) Steffen Prohaska
[not found] ` <31687420-EB17-4651-AD6C-07213311ABDA-wjoc1KHpMeg@public.gmane.org>
2008-01-14 7:30 ` safecrlf not in 1.5.4 Junio C Hamano
[not found] ` < 7vejcklv84.fsf@gitster.siamese.dyndns.org>
[not found] ` <7vejcklv84.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-14 8:29 ` Steffen Prohaska
2008-01-14 19:41 ` [msysGit] " Junio C Hamano
2008-01-14 9:04 ` Dmitry Potapov
2008-01-14 17:35 ` Pierre Habouzit
2008-01-14 11:18 ` [PATCH] Teach remote machinery about remotes.default config variable Johannes Schindelin
2008-01-14 12:16 ` valgrind test scripts (was Re: [PATCH] Teach remote...) Jeff King
2008-01-18 9:41 ` What's not in 'master' but should be Junio C Hamano
2008-01-18 10:15 ` Lars Hjemli
2008-01-18 10:24 ` Junio C Hamano
2008-01-18 10:53 ` Lars Hjemli
2008-01-18 11:09 ` Junio C Hamano
2008-01-18 11:54 ` Lars Hjemli
2008-01-18 12:34 ` Johannes Schindelin
2008-01-18 14:19 ` Lars Hjemli
2008-01-18 20:59 ` Junio C Hamano
2008-01-18 10:40 ` What's not in 'master', and likely not to be until 1.5.4 Junio C Hamano
2008-01-18 11:25 ` Johannes Sixt
2008-01-18 11:40 ` Junio C Hamano
2008-01-18 13:04 ` Steffen Prohaska
2008-01-18 13:11 ` Johannes Schindelin
2008-01-18 20:36 ` Johannes Schindelin
2008-01-18 20:58 ` Johannes Schindelin
2008-01-21 4:46 ` Shawn O. Pearce
2008-01-21 10:37 ` Johannes Schindelin
2008-01-23 4:44 ` Shawn O. Pearce
2008-01-23 11:12 ` Johannes Schindelin
2008-01-18 22:07 ` Johannes Sixt
2008-01-18 22:37 ` Johannes Schindelin
2008-01-18 11:26 ` Jakub Narebski
2008-01-18 21:49 ` Junio C Hamano
2008-01-21 5:55 ` Imran M Yousuf
2008-01-21 6:29 ` Junio C Hamano
2008-01-21 6:42 ` Steffen Prohaska
2008-01-21 6:41 ` [PATCH] submodule: Document the details of the command line syntax Steffen Prohaska
2008-01-21 6:47 ` Junio C Hamano
2008-01-18 12:17 ` What's not in 'master', and likely not to be until 1.5.4 Marco Costalba
2008-01-18 12:18 ` Marco Costalba
2008-01-18 12:53 ` Steffen Prohaska
2008-01-18 13:09 ` Johannes Schindelin
2008-01-18 13:23 ` Steffen Prohaska
2008-01-21 2:37 ` What's not in 'master', and likely not to be in, " Junio C Hamano
2008-01-21 5:21 ` Linus Torvalds
2008-01-21 6:15 ` Junio C Hamano
2008-01-21 7:02 ` Junio C Hamano
2008-01-21 7:10 ` Junio C Hamano
2008-01-21 7:13 ` Junio C Hamano
2008-01-21 7:27 ` Junio C Hamano
2008-01-21 8:32 ` Junio C Hamano
2008-01-21 8:44 ` [PATCH 1/2] read-cache.c: introduce is_racy_timestamp() helper Junio C Hamano
2008-01-21 8:46 ` [PATCH 2/2] read-cache.c: fix timestamp comparison Junio C Hamano
2008-01-21 18:47 ` Linus Torvalds
2008-01-21 19:06 ` Johannes Schindelin
2008-01-21 19:09 ` Linus Torvalds
2008-01-21 19:24 ` Linus Torvalds
2008-01-21 19:26 ` Johannes Schindelin
2008-01-21 19:47 ` Linus Torvalds
2008-01-21 20:38 ` Junio C Hamano
2008-01-21 21:22 ` Linus Torvalds
2008-01-21 22:02 ` Junio C Hamano
2008-01-22 9:47 ` Junio C Hamano
2008-01-22 17:25 ` Linus Torvalds
2008-01-22 22:00 ` Linus Torvalds
2008-01-23 3:34 ` Junio C Hamano
2008-01-23 3:53 ` Linus Torvalds
2008-01-21 8:29 ` What's not in 'master', and likely not to be in, until 1.5.4 Johannes Sixt
2008-01-21 5:35 ` Daniel Barkalow
2008-01-21 8:11 ` Marco Costalba
2008-01-18 18:28 ` What's not in 'master' but should be Johannes Schindelin
2008-01-18 18:36 ` Johannes Schindelin
2008-02-18 19:57 ` Johannes Schindelin
2008-01-19 6:14 ` Mike Hommey
2008-01-19 15:21 ` [PATCH] http-push: fix webdav lock leak Grégoire Barbier
2008-01-19 23:38 ` Johannes Schindelin
2008-01-12 16:50 ` [PATCH] Teach remote machinery about remotes.default config variable Johannes Schindelin
2008-01-12 17:29 ` Mark Levedahl
2008-01-12 20:22 ` Johannes Schindelin
2008-01-12 5:54 ` [PATCH] Teach remote machinery about core.origin " Mark Levedahl
2008-01-12 5:54 ` [PATCH] git-remote - Unset core.origin when deleting the default remote Mark Levedahl
2008-01-12 5:54 ` [PATCH] git-clone - Set remotes.origin config variable Mark Levedahl
2008-01-12 5:54 ` [PATCH] git-submodule - Possibly inherit parent's default remote on init/clone Mark Levedahl
2008-01-11 12:03 ` Allowing override of the default "origin" nickname Johannes Schindelin
2008-01-11 13:06 ` Mark Levedahl
2008-01-11 13:52 ` Johannes Schindelin
2008-01-11 14:53 ` Mark Levedahl
2008-01-11 15:03 ` Johannes Schindelin
2008-01-11 16:39 ` Mark Levedahl
2008-01-11 17:01 ` Björn Steinbrink
2008-01-11 17:27 ` Jakub Narebski
2008-01-11 15:25 ` Jakub Narebski
2008-01-11 16:15 ` Mark Levedahl
2008-01-11 21:12 ` Johannes Schindelin
2008-01-11 23:11 ` Daniel Barkalow
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=478855B5.9070600@gmail.com \
--to=mlevedahl@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).