Mercurial > public > mercurial-scm > hg
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 |