Add wopener for opening files in the working directory
authormpm@selenic.com
Wed, 08 Jun 2005 17:26:09 -0800
changeset 291 2c4f2be05587
parent 290 07c6cb9fd1c5
child 292 09364bcebdf0
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-----
mercurial/hg.py
--- a/mercurial/hg.py	Wed Jun 08 17:08:55 2005 -0800
+++ b/mercurial/hg.py	Wed Jun 08 17:26:09 2005 -0800
@@ -318,6 +318,7 @@
             os.mkdir(self.join("data"))
 
         self.opener = opener(self.path)
+        self.wopener = opener(self.root)
         self.manifest = manifest(self.opener)
         self.changelog = changelog(self.opener)
         self.ignorelist = None
@@ -330,7 +331,7 @@
         if self.ignorelist is None:
             self.ignorelist = []
             try:
-                l = open(os.path.join(self.root, ".hgignore"))
+                l = self.wfile(".hgignore")
                 for pat in l:
                     if pat != "\n":
                         self.ignorelist.append(re.compile(pat[:-1]))
@@ -370,6 +371,9 @@
         if f[0] == '/': f = f[1:]
         return filelog(self.opener, f)
 
+    def wfile(self, f, mode='r'):
+        return self.wopener(f, mode)
+
     def transaction(self):
         # save dirstate for undo
         try:
@@ -526,7 +530,7 @@
             dc = self.dirstate.copy()
 
         def fcmp(fn):
-            t1 = file(self.wjoin(fn)).read()
+            t1 = self.wfile(fn).read()
             t2 = self.file(fn).revision(mf[fn])
             return cmp(t1, t2)
 
@@ -991,13 +995,12 @@
             if f[0] == "/": continue
             self.ui.note("getting %s\n" % f)
             t = self.file(f).read(get[f])
-            wp = self.wjoin(f)
             try:
-                file(wp, "w").write(t)
+                self.wfile(f, "w").write(t)
             except IOError:
                 os.makedirs(os.path.dirname(wp))
-                file(wp, "w").write(t)
-            set_exec(wp, mf2[f])
+                self.wfile(f, "w").write(t)
+            set_exec(self.wjoin(f), mf2[f])
             self.dirstate.update([f], mode)
 
         # merge the tricky bits