comparison mercurial/hg.py @ 20:a664c2b624cf

The actual hg remove fix from Thomas Hein
author mpm@selenic.com
date Wed, 04 May 2005 15:42:30 -0800
parents 12360c04fa48
children daa724b27300
comparison
equal deleted inserted replaced
19:12360c04fa48 20:a664c2b624cf
135 135
136 def merge3(self, my, other, base): 136 def merge3(self, my, other, base):
137 pass 137 pass
138 138
139 class dircache: 139 class dircache:
140 def __init__(self, opener): 140 def __init__(self, opener, ui):
141 self.opener = opener 141 self.opener = opener
142 self.dirty = 0 142 self.dirty = 0
143 self.ui = ui
143 self.map = None 144 self.map = None
144 def __del__(self): 145 def __del__(self):
145 if self.dirty: self.write() 146 if self.dirty: self.write()
146 def __getitem__(self, key): 147 def __getitem__(self, key):
147 try: 148 try:
188 def remove(self, files): 189 def remove(self, files):
189 if not files: return 190 if not files: return
190 self.read() 191 self.read()
191 self.dirty = 1 192 self.dirty = 1
192 for f in files: 193 for f in files:
193 try: del self.map[f] 194 try:
194 except KeyError: pass 195 del self.map[f]
196 except KeyError:
197 self.ui.warn("Not in dircache: %s\n" % f)
198 pass
195 199
196 def clear(self): 200 def clear(self):
197 self.map = {} 201 self.map = {}
198 self.dirty = 1 202 self.dirty = 1
199 203
254 self.manifest = manifest(self.opener) 258 self.manifest = manifest(self.opener)
255 self.changelog = changelog(self.opener) 259 self.changelog = changelog(self.opener)
256 self.ignorelist = None 260 self.ignorelist = None
257 261
258 if not self.remote: 262 if not self.remote:
259 self.dircache = dircache(self.opener) 263 self.dircache = dircache(self.opener, ui)
260 try: 264 try:
261 self.current = bin(self.opener("current").read()) 265 self.current = bin(self.opener("current").read())
262 except IOError: 266 except IOError:
263 self.current = None 267 self.current = None
264 268
397 new = new.keys() 401 new = new.keys()
398 new.sort() 402 new.sort()
399 if co == cn: cn = -1 403 if co == cn: cn = -1
400 404
401 edittext = "\n"+"".join(["HG: changed %s\n" % f for f in new]) 405 edittext = "\n"+"".join(["HG: changed %s\n" % f for f in new])
406 edittext += "".join(["HG: removed %s\n" % f for f in remove])
402 edittext = self.ui.edit(edittext) 407 edittext = self.ui.edit(edittext)
403 n = self.changelog.add(node, new, edittext, tr, co, cn) 408 n = self.changelog.add(node, new, edittext, tr, co, cn)
404 409
405 tr.close() 410 tr.close()
406 411