diff -r 24c22a3f2ef8 -r c93562fb12cc mercurial/dirstate.py --- a/mercurial/dirstate.py Fri Mar 16 00:22:57 2007 -0300 +++ b/mercurial/dirstate.py Fri Mar 16 00:22:58 2007 -0300 @@ -34,10 +34,14 @@ cwd = os.getcwd() if cwd == self.root: return '' # self.root ends with a path separator if self.root is '/' or 'C:\' - common_prefix_len = len(self.root) - if not self.root.endswith(os.sep): - common_prefix_len += 1 - return cwd[common_prefix_len:] + rootsep = self.root + if not rootsep.endswith(os.sep): + rootsep += os.sep + if cwd.startswith(rootsep): + return cwd[len(rootsep):] + else: + # we're outside the repo. return an absolute path. + return cwd def hgignore(self): '''return the contents of .hgignore files as a list of patterns.