Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/dirstate.py @ 4230:c93562fb12cc
Fix handling of paths when run outside the repo.
The main problem was that dirstate.getcwd() returned just "",
which was interpreted as "we're at the repo root". It now returns
an absolute path.
The util.pathto function was also changed to deal with the "cwd is
an absolute path" case.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 16 Mar 2007 00:22:58 -0300 |
parents | 24c22a3f2ef8 |
children | 0d51eb296fb9 1b9fc3f48861 |
comparison
equal
deleted
inserted
replaced
4229:24c22a3f2ef8 | 4230:c93562fb12cc |
---|---|
32 | 32 |
33 def getcwd(self): | 33 def getcwd(self): |
34 cwd = os.getcwd() | 34 cwd = os.getcwd() |
35 if cwd == self.root: return '' | 35 if cwd == self.root: return '' |
36 # self.root ends with a path separator if self.root is '/' or 'C:\' | 36 # self.root ends with a path separator if self.root is '/' or 'C:\' |
37 common_prefix_len = len(self.root) | 37 rootsep = self.root |
38 if not self.root.endswith(os.sep): | 38 if not rootsep.endswith(os.sep): |
39 common_prefix_len += 1 | 39 rootsep += os.sep |
40 return cwd[common_prefix_len:] | 40 if cwd.startswith(rootsep): |
41 return cwd[len(rootsep):] | |
42 else: | |
43 # we're outside the repo. return an absolute path. | |
44 return cwd | |
41 | 45 |
42 def hgignore(self): | 46 def hgignore(self): |
43 '''return the contents of .hgignore files as a list of patterns. | 47 '''return the contents of .hgignore files as a list of patterns. |
44 | 48 |
45 the files parsed for patterns include: | 49 the files parsed for patterns include: |