[PATCH 0 of 2] Path normalization fixes

Dan Villiom Podlaski Christiansen danchr at gmail.com
Sun Jul 26 10:27:58 CDT 2009


These two patches allow Mercurial to gracefully handle path
normalisation on Mac OS X. I split them up per Matt's request, andsent
with ‘patchbomb’; I think the white-space silliness was caused by
Mail.

Also, I cleaned the code a bit, and added documentation explaining
what all the fuss is for.

2009-07-26  Dan Villiom Podlaski Christiansen  <danchr at gmail.com>

	* mercurial/posix.py, mercurial/windows.py:
	util: add realpath() for getting the 'true' path.

	The function is implemented for Mac OS X using the F_GETPATH fcntl,
	and a basic implementation for Windows is provided as well. On other
	POSIX systems, vanilla os.path.realpath() is used.
	[fd520b42a33e] [realpath.diff]

2009-07-26  Dan Villiom Podlaski Christiansen  <danchr at gmail.com>

	* mercurial/dirstate.py, tests/test-path-normalization, tests/test-
	path-normalization.hg:
	dirstate: fold paths using the just added util.realpath() function.

	Using the one true canonical path of a directory entry allows
	equivalent paths to be treated gracefully. Equivalent means, in this
	case, differing directory entries resulting in the same, unique file
	system link to a file.
	[c1ed0db61b7b] [realpath-dirstate.diff]



More information about the Mercurial-devel mailing list