comparison mercurial/hg.py @ 114:82fb6d09f911

Simplify checkout slightly, replace checkdir with os.makedirs
author mpm@selenic.com
date Fri, 20 May 2005 17:33:24 -0800
parents 1918852a67a8
children a0e57df96e96
comparison
equal deleted inserted replaced
113:1918852a67a8 114:82fb6d09f911
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 = []