comparison mercurial/localrepo.py @ 4276:cb6107f78b92

Merge with crew
author Matt Mackall <mpm@selenic.com>
date Sat, 24 Mar 2007 02:57:27 -0500
parents f38f90a177dc 81402b2b294d
children 1cc5fc1d0994
comparison
equal deleted inserted replaced
4275:73c918c71300 4276:cb6107f78b92
99 self.tagscache = None 99 self.tagscache = None
100 self.branchcache = None 100 self.branchcache = None
101 self.nodetagscache = None 101 self.nodetagscache = None
102 self.filterpats = {} 102 self.filterpats = {}
103 self.transhandle = None 103 self.transhandle = None
104
105 self._link = lambda x: False
106 if util.checklink(self.root):
107 r = self.root # avoid circular reference in lambda
108 self._link = lambda x: util.is_link(os.path.join(r, x))
109 104
110 self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root) 105 self.dirstate = dirstate.dirstate(self.opener, self.ui, self.root)
111 106
112 def url(self): 107 def url(self):
113 return 'file:' + self.root 108 return 'file:' + self.root
503 return self.dirstate.getcwd() 498 return self.dirstate.getcwd()
504 499
505 def wfile(self, f, mode='r'): 500 def wfile(self, f, mode='r'):
506 return self.wopener(f, mode) 501 return self.wopener(f, mode)
507 502
503 def _link(self, f):
504 return os.path.islink(self.wjoin(f))
505
508 def _filter(self, filter, filename, data): 506 def _filter(self, filter, filename, data):
509 if filter not in self.filterpats: 507 if filter not in self.filterpats:
510 l = [] 508 l = []
511 for pat, cmd in self.ui.configitems(filter): 509 for pat, cmd in self.ui.configitems(filter):
512 mf = util.matcher(self.root, "", [pat], [], [])[1] 510 mf = util.matcher(self.root, "", [pat], [], [])[1]
1050 self.wwrite(f, t, m.flags(f)) 1048 self.wwrite(f, t, m.flags(f))
1051 self.dirstate.update([f], "n") 1049 self.dirstate.update([f], "n")
1052 1050
1053 def copy(self, source, dest, wlock=None): 1051 def copy(self, source, dest, wlock=None):
1054 p = self.wjoin(dest) 1052 p = self.wjoin(dest)
1055 if not os.path.exists(p): 1053 if not (os.path.exists(p) or os.path.islink(p)):
1056 self.ui.warn(_("%s does not exist!\n") % dest) 1054 self.ui.warn(_("%s does not exist!\n") % dest)
1057 elif not os.path.isfile(p): 1055 elif not (os.path.isfile(p) or os.path.islink(p)):
1058 self.ui.warn(_("copy failed: %s is not a file\n") % dest) 1056 self.ui.warn(_("copy failed: %s is not a file or a "
1057 "symbolic link\n") % dest)
1059 else: 1058 else:
1060 if not wlock: 1059 if not wlock:
1061 wlock = self.wlock() 1060 wlock = self.wlock()
1062 if self.dirstate.state(dest) == '?': 1061 if self.dirstate.state(dest) == '?':
1063 self.dirstate.update([dest], "a") 1062 self.dirstate.update([dest], "a")