contrib/plan9/proto
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Wed, 22 Apr 2015 23:38:52 +0900
branchstable
changeset 24833 cb981009d697
parent 16489 cf137319c6cd
permissions -rw-r--r--
dirstate: use pathutil.normasprefix to ensure os.sep at the end of root 3cc630be5f09 replaced "os.path.join(root, '')" by "root.endswith(os.sep)" examination, because Python 2.7.9 changes behavior of "os.path.join(path, '')" on UNC path. But some problematic encodings use 0x5c (= "os.sep" on Windows) as the tail byte of some multi-byte characters, and replacement above prevents Mercurial from working on the repository, of which root path ends with such multi-byte character, regardless of enabling win32mbcs. This patch uses "pathutil.normasprefix()" instead of "root.endswith(os.sep)" examination, to ensure "os.sep" at the end of "dirstate._rootdir" even with problematic encodings. "root" of dirstate can be passed to "pathutil.normasprefix()" without normalization, because it is always given from "repo.root" = "repo.wvfs.base", which is normalized by "os.path.realpath()". Using "util.endswithsep()" instead of "str.endswith(os.sep)" also fixes this problem, but this patch chooses "pathutil.normasprefix()" to centralize "adding os.sep if endswith(os.sep)" logic into it.

lib	- sys sys
	mercurial	- sys sys
		hgrc.d	- sys sys
			9diff.rc	- sys sys
			factotum.rc	- sys sys
rc	- sys sys
	bin	- sys sys
		9diff	- sys sys
		hg	- sys sys
sys	- sys sys
	lib	- sys sys
		python	- sys sys
			lib	- sys sys
				python2.5	- sys sys
					site-packages	- sys sys
						hgext	- sys sys
							+	- sys sys
						mercurial	- sys sys
							+	- sys sys
						mercurial-VERSION-py2.5.egg-info	- sys sys
	src	- sys sys
		cmd	- sys sys
			hg	- sys sys
				+	- sys sys