Re: [PATCH] Use nonrelative paths instead of absolute paths for cloned repositories
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:42
Johannes Schindelin [off-list ref] writes:
quoted
In the longer term, we would inevitably face "when should one use nonrelative and when should one use absolute?" and we would eventually have to answer it. It may turn out that many current users of "absolute" are better off using "nonrelative", but I suspect we won't get rid of "absolute" completely, because one of the reasons it avoids symlinks at great lengths is so that it can check the containment relationships between paths reliably (e.g. "is this path outside the repository, in which case we should refuse to add it to the index, and we use --no-index without being asked when running "diff""). But using "absolute" for containment comparison is one thing. Storing the result of "absolute" is quite another.The easy way would be to add an option to make_absolute_path(), say "resolve_symlinks".
I am afraid that it does not solve anything. Be they two separate functions, or a one function that has two different semantics depending on an option, the API documentation needs to answer the "when should I use one and when should I use the other" question. And the hard part is figuring out which of the current "absolute" callers need to be fixed in a way similar to how Daniel fixed git-clone, and which of them stay the same. Perhaps all of the "chdir then getpwd" patterns need to be looked at and some of them need to be restructured to honor $PWD better. I dunno.