On 20/06, Junio C Hamano wrote:
Junio C Hamano <gitster@xxxxxxxxx> writes: Let me step back and try again, as I think I am missing some existing feature you are using, and that missing piece is preventing me from seeing why this is a good idea (by the way, I do not think we are doing this exchange in the right thread---the upload-pack patch is not about auto-vivifying a new namespace by creating HEAD).
Yeah, that's true.
But if we made some change to the transfer to push-to-receive-pack so that this can also create HEAD that points at something, what would the user say, instead of that earlier $ git clone git://site.xz/r to access this new namespace? Don't you have to be running another instance of a server with GIT_NAMESPACE set to 'b'? How do you arrange that to automagically happen? Or do your users that clone/fetch do things differnetly from the above, and if so what do they do? How is your server configured to support the access the existing namespace 'a', and the new namespace 'b' that is automatically created by pointing /usr/share/git/r.git/refs/namespaces/b/HEAD to one ref inside that namespace?
If you want to hide the fact that you're using namespaces you'll probably have to either run another daemon or use a wrapper script, yes, but only if you want to hide it.
However, if you don't want to hide the namespace behind some script the users just have to use --namespace or GIT_NAMESPACE, possibly having a script that does some access-control magic so that you eg can only push to specific namespaces.
Having it be created is especially important when someone might be working on the same machine as the repo, where the push won't go through eg SSH.
-- Sincerely, Johannes Löthberg PGP Key ID: 0x50FB9B273A9D0BB5 https://theos.kyriasis.com/~kyrias/
Attachment:
signature.asc
Description: PGP signature