Re: [PATCH] Teach remote machinery about remotes.default config variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano wrote:
"Mark Levedahl" <mlevedahl@xxxxxxxxx> 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
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux