From: Junio C Hamano <gitster@pobox.com>
To: Ronnie Sahlberg <sahlberg@google.com>
Cc: David Turner <dturner@twopensource.com>,
"git\@vger.kernel.org" <git@vger.kernel.org>,
Michael Haggerty <mhagger@alum.mit.edu>,
Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH v4 0/1] receive-pack: optionally deny case clone refs
Date: Fri, 13 Jun 2014 14:25:53 -0700 [thread overview]
Message-ID: <xmqqfvj81oym.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <CAL=YDW=xn0OG5vu=9fnP0nycKV0F9bDJLrkYiwmL9P9q79LJSw@mail.gmail.com> (Ronnie Sahlberg's message of "Fri, 13 Jun 2014 11:20:19 -0700")
Ronnie Sahlberg <sahlberg@google.com> writes:
> It gets even more hairy :
> If the server has A/a and a/b and you clone it it becomes A/a and A/b
> locally. Then you push back to the server and you end up with three
> refs on the server: A/a A/b and a/b.
That is part of the transition in deployment. David who wants to
forbid A/a and a/b mixed in his project will surely correct the
situation at the server end so "somebody fetches A/a and a/b and
ends up with A/a and A/b" will not happen. They will fetch A/a and
A/b.
If a user is with an older Git and he has his own a/c, fetching A/a
and A/b from a corrected central repository will still give the user
a/a and a/b, but then pushing it back will be forbidden. The user's
repository needs to be fixed and installation of Git needs to be
updated to the version with an equivalent of David's "optionally
deny" feature implemented for the fetching side, so that the user
notices the local a/c is bad and not allowed within the context of
his project, deletes it and recreates it as A/c before he can fetch
A/a and A/b from the central repository.
I agree that the transition may be painful, but as long as the
desired semantics is "If you have A/a, you are not allowed to have
a/a or a/b", it cannot be avoided---in that sense, I view it as a
lower priority issue.
Having said that, it may indicate that the desired semantics above
may not be the optimal one. Perhaps the flag might want to be "on
this platform, we cannot do case sensitive refs, so pretend as if
all refs are lowercase" instead. I suspect that such a flag may
allow smoother transition than what has been proposed.
Underlying refs "A/a" and "a/b" can stay as they are in David's
central repository, but ref enumeration with the flag enabled will
return a/a and a/b, and these are the names that will be fetched by
the users. If the user had an existing A/c, then fetching these
will still create A/a and A/b locally, but pushing them back will,
under that flag enabled, be turned into updates to a/a, a/b, and a/c
on the central server side with updated Git.
I dunno.
next prev parent reply other threads:[~2014-06-13 21:26 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-11 22:30 [PATCH v4 0/1] receive-pack: optionally deny case clone refs David Turner
2014-06-11 22:30 ` [PATCH v4 1/1] " David Turner
2014-06-13 4:03 ` Torsten Bögershausen
2014-06-12 19:47 ` [PATCH v4 0/1] " Junio C Hamano
2014-06-12 23:30 ` David Turner
2014-06-13 4:03 ` Torsten Bögershausen
2014-06-13 17:12 ` Junio C Hamano
2014-06-13 17:08 ` Junio C Hamano
2014-06-13 18:20 ` Ronnie Sahlberg
2014-06-13 19:05 ` Ronnie Sahlberg
2014-06-13 21:11 ` Junio C Hamano
2014-06-13 22:24 ` Ronnie Sahlberg
2014-06-15 7:10 ` David Turner
2014-06-13 21:25 ` Junio C Hamano [this message]
2014-06-18 11:33 ` Michael Haggerty
2014-06-18 15:03 ` Ronnie Sahlberg
2014-08-13 16:20 ` Ronnie Sahlberg
2014-08-13 19:28 ` David Turner
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=xmqqfvj81oym.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=mhagger@alum.mit.edu \
--cc=sahlberg@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 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.