Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/dirstate.py @ 4525:78b6add1f966
Add dirstate.pathto and localrepo.pathto.
Every time util.pathto is called, we have to pass the repo root and the
repo cwd.
dirstate.pathto is a simple convenience function that knows about the
root and the cwd arguments. It's still possible to pass the cwd as an
optimization.
localrepo.pathto is a convenience function that just calls
dirstate.pathto, just like localrepo.getcwd.
dirstate.pathto becomes a single point that converts most (all?) paths
from the internal representation to some OS-specific relative path for
display purposes.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 08 Jun 2007 23:49:12 -0300 |
parents | 289ec1f36b11 |
children | b422b558015b |
comparison
equal
deleted
inserted
replaced
4524:6c58139f4eaa | 4525:78b6add1f966 |
---|---|
41 if cwd.startswith(rootsep): | 41 if cwd.startswith(rootsep): |
42 return cwd[len(rootsep):] | 42 return cwd[len(rootsep):] |
43 else: | 43 else: |
44 # we're outside the repo. return an absolute path. | 44 # we're outside the repo. return an absolute path. |
45 return cwd | 45 return cwd |
46 | |
47 def pathto(self, f, cwd=None): | |
48 if cwd is None: | |
49 cwd = self.getcwd() | |
50 return util.pathto(self.root, cwd, f) | |
46 | 51 |
47 def hgignore(self): | 52 def hgignore(self): |
48 '''return the contents of .hgignore files as a list of patterns. | 53 '''return the contents of .hgignore files as a list of patterns. |
49 | 54 |
50 the files parsed for patterns include: | 55 the files parsed for patterns include: |
401 if stat.S_ISCHR(st.st_mode): kind = _('character device') | 406 if stat.S_ISCHR(st.st_mode): kind = _('character device') |
402 elif stat.S_ISBLK(st.st_mode): kind = _('block device') | 407 elif stat.S_ISBLK(st.st_mode): kind = _('block device') |
403 elif stat.S_ISFIFO(st.st_mode): kind = _('fifo') | 408 elif stat.S_ISFIFO(st.st_mode): kind = _('fifo') |
404 elif stat.S_ISSOCK(st.st_mode): kind = _('socket') | 409 elif stat.S_ISSOCK(st.st_mode): kind = _('socket') |
405 elif stat.S_ISDIR(st.st_mode): kind = _('directory') | 410 elif stat.S_ISDIR(st.st_mode): kind = _('directory') |
406 self.ui.warn(_('%s: unsupported file type (type is %s)\n') % ( | 411 self.ui.warn(_('%s: unsupported file type (type is %s)\n') |
407 util.pathto(self.root, self.getcwd(), f), | 412 % (self.pathto(f), kind)) |
408 kind)) | |
409 return False | 413 return False |
410 | 414 |
411 def walk(self, files=None, match=util.always, badmatch=None): | 415 def walk(self, files=None, match=util.always, badmatch=None): |
412 # filter out the stat | 416 # filter out the stat |
413 for src, f, st in self.statwalk(files, match, badmatch=badmatch): | 417 for src, f, st in self.statwalk(files, match, badmatch=badmatch): |
511 if nf == fn or (fn.startswith(nf) and fn[len(nf)] == '/'): | 515 if nf == fn or (fn.startswith(nf) and fn[len(nf)] == '/'): |
512 found = True | 516 found = True |
513 break | 517 break |
514 if not found: | 518 if not found: |
515 if inst.errno != errno.ENOENT or not badmatch: | 519 if inst.errno != errno.ENOENT or not badmatch: |
516 self.ui.warn('%s: %s\n' % ( | 520 self.ui.warn('%s: %s\n' % (self.pathto(ff), |
517 util.pathto(self.root, self.getcwd(), ff), | 521 inst.strerror)) |
518 inst.strerror)) | |
519 elif badmatch and badmatch(ff) and imatch(nf): | 522 elif badmatch and badmatch(ff) and imatch(nf): |
520 yield 'b', ff, None | 523 yield 'b', ff, None |
521 continue | 524 continue |
522 if stat.S_ISDIR(st.st_mode): | 525 if stat.S_ISDIR(st.st_mode): |
523 cmp1 = (lambda x, y: cmp(x[1], y[1])) | 526 cmp1 = (lambda x, y: cmp(x[1], y[1])) |