Jeff King wrote: > True. But I consider that to make the walk-backwards-from-pwd case > simply a superset. That is, in (A) we are walking backwards and trying > to apply the lookup rule from (B) individually to each directory we > consider (though even that is not entirely true, as we don't look for > parallel "$PWD.git" directories in the walk). That parenthesis is important. Although in a nicer world maybe we would want some symmetry like this, (A) and (B) really have nothing to do with each other. Forgetting the algorithms: (A) means "find what repository we are in the worktree for, or, barring that, what bare repository we are in". (B) means "find which repository the user pointed to. To be extra nice, we allow a '.git' extension to be left out, so the URL used doesn't have to include the redundant information that this is a git repository, and we even allow pointing to the toplevel of a worktree instead of a repository, too." Notice that the above description does not exactly match the actual behavior of git. For example, if someone has a directory layout like this: repo-manipulator/ .git/ src/ testcases/ repo1.git/ repo2.git/ and git is run from repo1.git, according to the description above, the naive user _wanted_ git commands to apply to the toplevel repository. And in practice, I think that's often true, though changing the behavior of git to match that would not be worth the downsides. > I'll admit I don't care that much, though. This is extremely unlikely to > come up. I admit part of the reason I care is that just putting "" first would probably taken care of the more important part of <http://bugs.debian.org/399041>. Anyway, thanks for explaining. Hopefully I can get to this soon and factor out a common function for get_repo_path and enter_repo to call so playing with the ordering becomes a little less scary. ;-) Jonathan -- 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