[PATCH 1 of 1] util: remove unused realpath (issue4063)
Augie Fackler
raf at durin42.com
Wed Jan 1 17:15:46 CST 2014
On Sun, Dec 29, 2013 at 01:57:56PM +0000, Christian Ebert wrote:
> # HG changeset patch
> # User Christian Ebert <blacktrash at gmx.net>
> # Date 1388325244 0
> # Sun Dec 29 13:54:04 2013 +0000
> # Node ID 716491387f2aead12b9a3be1f67c2f3748719e78
> # Parent 532fa12033e1ddf9cbe0d5507263a2c9cfbfddf9
> util: remove unused realpath (issue4063)
queued, thanks
>
> util.realpath was in use for only 5 days from dbdb777502dc
> until it was backed out in c519cd8f0169 because it caused
> issue3077 and issue3071.
>
> diff --git a/mercurial/posix.py b/mercurial/posix.py
> --- a/mercurial/posix.py
> +++ b/mercurial/posix.py
> @@ -197,7 +197,6 @@
> return path.lower()
>
> if sys.platform == 'darwin':
> - import fcntl # only needed on darwin, missing on jython
>
> def normcase(path):
> '''
> @@ -265,51 +264,6 @@
> # Decompose then lowercase (HFS+ technote specifies lower)
> return unicodedata.normalize('NFD', u).lower().encode('utf-8')
>
> - def realpath(path):
> - '''
> - Returns the true, canonical file system path equivalent to the given
> - path.
> -
> - Equivalent means, in this case, resulting in the same, unique
> - file system link to the path. Every file system entry, whether a file,
> - directory, hard link or symbolic link or special, will have a single
> - path preferred by the system, but may allow multiple, differing path
> - lookups to point to it.
> -
> - Most regular UNIX file systems only allow a file system entry to be
> - looked up by its distinct path. Obviously, this does not apply to case
> - insensitive file systems, whether case preserving or not. The most
> - complex issue to deal with is file systems transparently reencoding the
> - path, such as the non-standard Unicode normalisation required for HFS+
> - and HFSX.
> - '''
> - # Constants copied from /usr/include/sys/fcntl.h
> - F_GETPATH = 50
> - O_SYMLINK = 0x200000
> -
> - try:
> - fd = os.open(path, O_SYMLINK)
> - except OSError, err:
> - if err.errno == errno.ENOENT:
> - return path
> - raise
> -
> - try:
> - return fcntl.fcntl(fd, F_GETPATH, '\0' * 1024).rstrip('\0')
> - finally:
> - os.close(fd)
> -elif sys.version_info < (2, 4, 2, 'final'):
> - # Workaround for http://bugs.python.org/issue1213894 (os.path.realpath
> - # didn't resolve symlinks that were the first component of the path.)
> - def realpath(path):
> - if os.path.isabs(path):
> - return os.path.realpath(path)
> - else:
> - return os.path.realpath('./' + path)
> -else:
> - # Fallback to the likely inadequate Python builtin function.
> - realpath = os.path.realpath
> -
> if sys.platform == 'cygwin':
> # workaround for cygwin, in which mount point part of path is
> # treated as case sensitive, even though underlying NTFS is case
> diff --git a/mercurial/util.py b/mercurial/util.py
> --- a/mercurial/util.py
> +++ b/mercurial/util.py
> @@ -52,7 +52,6 @@
> popen = platform.popen
> posixfile = platform.posixfile
> quotecommand = platform.quotecommand
> -realpath = platform.realpath
> rename = platform.rename
> samedevice = platform.samedevice
> samefile = platform.samefile
> diff --git a/mercurial/windows.py b/mercurial/windows.py
> --- a/mercurial/windows.py
> +++ b/mercurial/windows.py
> @@ -133,15 +133,6 @@
> def normcase(path):
> return encoding.upper(path)
>
> -def realpath(path):
> - '''
> - Returns the true, canonical file system path equivalent to the given
> - path.
> - '''
> - # TODO: There may be a more clever way to do this that also handles other,
> - # less common file systems.
> - return os.path.normpath(normcase(os.path.realpath(path)))
> -
> def samestat(s1, s2):
> return False
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list