scmutil: make join cheaper
Combined with a few followup patches, this contributes to improving
stream_out performance by 10%.
--- a/mercurial/scmutil.py Fri Sep 14 12:06:40 2012 -0700
+++ b/mercurial/scmutil.py Fri Sep 14 12:07:33 2012 -0700
@@ -229,6 +229,7 @@
if expand:
base = os.path.realpath(util.expandpath(base))
self.base = base
+ self.basesep = self.base + os.sep
self._setmustaudit(audit)
self.createmode = None
self._trustnlink = None
@@ -331,9 +332,8 @@
def join(self, path):
if path:
- return os.path.join(self.base, path)
- else:
- return self.base
+ return path.startswith('/') and path or (self.basesep + path)
+ return self.base
class filteropener(abstractopener):
'''Wrapper opener for filtering filenames with a function.'''