Mercurial > hg-stable
changeset 23582:7559dc8c4238
vfs: add a 'split' method
This method has the same behavior as the 'os.path.split' function, but having
it in vfs will allow handling of tricky encoding situations in the future.
In the same patch, we replace the use of 'os.path.split' in the transaction code.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 15 Dec 2014 13:32:34 -0800 |
parents | aed981c7bebf |
children | a8edcb9c1199 |
files | mercurial/scmutil.py mercurial/transaction.py |
diffstat | 2 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/scmutil.py Mon Dec 15 13:27:46 2014 -0800 +++ b/mercurial/scmutil.py Mon Dec 15 13:32:34 2014 -0800 @@ -268,6 +268,12 @@ to allow handling of strange encoding if needed.""" return os.path.join(*paths) + def split(self, path): + """split top-most element of a path (as os.path.split would do) + + This exists to allow handling of strange encoding if needed.""" + return os.path.split(path) + def lexists(self, path=None): return os.path.lexists(self.join(path))
--- a/mercurial/transaction.py Mon Dec 15 13:27:46 2014 -0800 +++ b/mercurial/transaction.py Mon Dec 15 13:32:34 2014 -0800 @@ -12,7 +12,6 @@ # GNU General Public License version 2 or any later version. from i18n import _ -import os import errno import error, util @@ -198,9 +197,9 @@ if file in self.map or file in self._backupmap: return - dirname, filename = os.path.split(file) + vfs = self._vfsmap[location] + dirname, filename = vfs.split(file) backupfilename = "%s.backup.%s" % (self.journal, filename) - vfs = self._vfsmap[location] backupfile = vfs.reljoin(dirname, backupfilename) if vfs.exists(file): filepath = vfs.join(file)