Re: [PATCH 5/5] git-daemon support for user-relative paths.
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:12
Andreas Ericsson [off-list ref] writes:
quoted
quoted
-static int upload(char *dir) -{ - /* Try paths in this order */ - static const char *paths[] = { "%s", "%s/.git", "%s.git", "%s.git/.git", NULL };...quoted
Under strict-path, I think not doing any DWIM like this is fine, but otherwise I suspect changing this would break existing remotes/origin file people may have. In addition enter_repo() as posted does its own DWIM to chdir to ".git" unconditionally as I pointed out...DWIM? That's an acronym I don't know.
"Do what I mean". It lets users say:
git clone git://sample.xz/pub/uemacs uemacs
when the repository on the server side is at any of the
following places:
/pub/uemacs
-- a regular naked repository, with subdirectories
/pub/uemacs/refs and /pub/uemacs/objects/, obviously.
/pub/uemacs/.git
-- /pub/uemacs is an ordinary repository with possibly a
working tree; has /pub/uemacs/.git/refs and friends.
/pub/uemacs.git
-- when above two do not exist but this does; a regular
naked repository, with subdirectories
/pub/uemacs.git/refs and friends.
/pub/uemacs.git/.git
-- no /pub/uemacs, and /pub/uemacs.git is an ordinary
repository with possibly a working tree; has
/pub/uemacs.git/.git/refs and friends.
which is a nice feature, but under --strict-path we need to be
careful that we apply whitelist correctly while allowing DWIM.