Re: [PATCH] Support working directory located at root
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 8, 2010, 17:43 UTC
- Message-ID
- <7v8wb3pqqw.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1265640810-6361-1-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
Show 6 quoted lines
> Git should work regardless where the working directory is located, > even at root. This patch fixes two places where it assumes working > directory always have parent directory. > > In setup_git_directory_gently(), when Git goes up to root and finds > .git there, it happily sets worktree to "".
If you mean "instead set it to "/" and things will work much better." I agree with the reasoning (not suggesting to reword---just trying to make sure I understood what you meant).
> In prefix_path(), loosen the outside repo check a little bit. Usually > when a path XXX is inside worktree /foo, it must be either "/foo", or > "/foo/...". When worktree is simply "/", we can safely ignore the > check: we have a slash at the beginning already.
The logic for the "are we inside?" check above sounds correct. When work_tree is at root, have "/" in it, and len inside the "if orig is absolute" block is 1, so memmove() strips out the leading '/' and makes the result relative to the root level. Am I reading the code right?
> Not related to worktree, but also set gitdir correctly if a bare repo > is placed (insanely?) at root.
Yuck, but looks correct.