341 |
341 |
342 self.setcurrent(n) |
342 self.setcurrent(n) |
343 self.dircache.update(new) |
343 self.dircache.update(new) |
344 self.dircache.remove(remove) |
344 self.dircache.remove(remove) |
345 |
345 |
346 def checkdir(self, path): |
|
347 d = os.path.dirname(path) |
|
348 if not d: return |
|
349 if not os.path.isdir(d): |
|
350 self.checkdir(d) |
|
351 os.mkdir(d) |
|
352 |
|
353 def checkout(self, node): |
346 def checkout(self, node): |
354 # checkout is really dumb at the moment |
347 # checkout is really dumb at the moment |
355 # it ought to basically merge |
348 # it ought to basically merge |
356 change = self.changelog.read(node) |
349 change = self.changelog.read(node) |
357 mmap = self.manifest.read(change[0]) |
350 l = self.manifest.read(change[0]).items() |
358 |
|
359 l = mmap.keys() |
|
360 l.sort() |
351 l.sort() |
361 stats = [] |
352 |
362 for f in l: |
353 for f,n in l: |
363 self.ui.note(f + "\n") |
354 if f[0] == "/": continue |
364 r = self.file(f) |
355 self.ui.note(f, "\n") |
365 t = r.revision(mmap[f]) |
356 t = self.file(f).revision(n) |
366 try: |
357 try: |
367 file(f, "w").write(t) |
358 file(f, "w").write(t) |
368 except: |
359 except IOError: |
369 self.checkdir(f) |
360 os.makedirs(os.path.dirname(f)) |
370 file(f, "w").write(t) |
361 file(f, "w").write(t) |
371 |
362 |
372 self.setcurrent(node) |
363 self.setcurrent(node) |
373 self.dircache.clear() |
364 self.dircache.clear() |
374 self.dircache.update(l) |
365 self.dircache.update([f for f,n in l]) |
375 |
366 |
376 def diffdir(self, path, changeset): |
367 def diffdir(self, path, changeset): |
377 changed = [] |
368 changed = [] |
378 mf = {} |
369 mf = {} |
379 added = [] |
370 added = [] |