gh: I wanted to avoid adding yet another file path related abstraction
until the new one really proved to be useful enough to warrant such an
addition. I remember having great difficulty to come to grips with the
many existing ones when I started hacking on darcs (RelativePath,
AbsolutePath, + OrURL variants, FileName, AnchoredPath, etc not to
mention the multiple conversion functions between them), some of whom
are of questionable utility if you ask me. It is usually a lot harder to
get rid of such a thing than to introduce it. The path related support
code I added was written so that it can be easily factored to its own
module (or Darcs.Util.Path) if desired. And yes, I do think other
commands may be able to profit from re-using it, but my experience so
far suggests that you don't really know for sure until you actually go
head and do the re-factoring.
|