Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/hg.py @ 291:2c4f2be05587
Add wopener for opening files in the working directory
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Add wopener for opening files in the working directory
manifest hash: cad3a930764244a32f8e45c2ea95fa9b98690b5f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCp5qxywK+sNU5EO8RAkfAAJ9C7V8zlbUVM8Dfs4raXMtT2bk4RQCfRfVt
IfYoaVsbOUW4U1XipOZycAw=
=5JDH
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Wed, 08 Jun 2005 17:26:09 -0800 |
parents | 97c87ac6d7a4 |
children | 09364bcebdf0 |
comparison
equal
deleted
inserted
replaced
290:07c6cb9fd1c5 | 291:2c4f2be05587 |
---|---|
316 if create: | 316 if create: |
317 os.mkdir(self.path) | 317 os.mkdir(self.path) |
318 os.mkdir(self.join("data")) | 318 os.mkdir(self.join("data")) |
319 | 319 |
320 self.opener = opener(self.path) | 320 self.opener = opener(self.path) |
321 self.wopener = opener(self.root) | |
321 self.manifest = manifest(self.opener) | 322 self.manifest = manifest(self.opener) |
322 self.changelog = changelog(self.opener) | 323 self.changelog = changelog(self.opener) |
323 self.ignorelist = None | 324 self.ignorelist = None |
324 self.tags = None | 325 self.tags = None |
325 | 326 |
328 | 329 |
329 def ignore(self, f): | 330 def ignore(self, f): |
330 if self.ignorelist is None: | 331 if self.ignorelist is None: |
331 self.ignorelist = [] | 332 self.ignorelist = [] |
332 try: | 333 try: |
333 l = open(os.path.join(self.root, ".hgignore")) | 334 l = self.wfile(".hgignore") |
334 for pat in l: | 335 for pat in l: |
335 if pat != "\n": | 336 if pat != "\n": |
336 self.ignorelist.append(re.compile(pat[:-1])) | 337 self.ignorelist.append(re.compile(pat[:-1])) |
337 except IOError: pass | 338 except IOError: pass |
338 for pat in self.ignorelist: | 339 for pat in self.ignorelist: |
368 | 369 |
369 def file(self, f): | 370 def file(self, f): |
370 if f[0] == '/': f = f[1:] | 371 if f[0] == '/': f = f[1:] |
371 return filelog(self.opener, f) | 372 return filelog(self.opener, f) |
372 | 373 |
374 def wfile(self, f, mode='r'): | |
375 return self.wopener(f, mode) | |
376 | |
373 def transaction(self): | 377 def transaction(self): |
374 # save dirstate for undo | 378 # save dirstate for undo |
375 try: | 379 try: |
376 ds = self.opener("dirstate").read() | 380 ds = self.opener("dirstate").read() |
377 except IOError: | 381 except IOError: |
524 change = self.changelog.read(changeset) | 528 change = self.changelog.read(changeset) |
525 mf = self.manifest.read(change[0]) | 529 mf = self.manifest.read(change[0]) |
526 dc = self.dirstate.copy() | 530 dc = self.dirstate.copy() |
527 | 531 |
528 def fcmp(fn): | 532 def fcmp(fn): |
529 t1 = file(self.wjoin(fn)).read() | 533 t1 = self.wfile(fn).read() |
530 t2 = self.file(fn).revision(mf[fn]) | 534 t2 = self.file(fn).revision(mf[fn]) |
531 return cmp(t1, t2) | 535 return cmp(t1, t2) |
532 | 536 |
533 for dir, subdirs, files in os.walk(self.root): | 537 for dir, subdirs, files in os.walk(self.root): |
534 d = dir[len(self.root)+1:] | 538 d = dir[len(self.root)+1:] |
989 files.sort() | 993 files.sort() |
990 for f in files: | 994 for f in files: |
991 if f[0] == "/": continue | 995 if f[0] == "/": continue |
992 self.ui.note("getting %s\n" % f) | 996 self.ui.note("getting %s\n" % f) |
993 t = self.file(f).read(get[f]) | 997 t = self.file(f).read(get[f]) |
994 wp = self.wjoin(f) | |
995 try: | 998 try: |
996 file(wp, "w").write(t) | 999 self.wfile(f, "w").write(t) |
997 except IOError: | 1000 except IOError: |
998 os.makedirs(os.path.dirname(wp)) | 1001 os.makedirs(os.path.dirname(wp)) |
999 file(wp, "w").write(t) | 1002 self.wfile(f, "w").write(t) |
1000 set_exec(wp, mf2[f]) | 1003 set_exec(self.wjoin(f), mf2[f]) |
1001 self.dirstate.update([f], mode) | 1004 self.dirstate.update([f], mode) |
1002 | 1005 |
1003 # merge the tricky bits | 1006 # merge the tricky bits |
1004 files = merge.keys() | 1007 files = merge.keys() |
1005 files.sort() | 1008 files.sort() |