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-----
This commit is contained in:
mpm@selenic.com 2005-06-08 17:26:09 -08:00
parent 7209a3bed2
commit 7ddff96dc1

View File

@ -318,6 +318,7 @@ class localrepository:
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 @@ class localrepository:
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 @@ class localrepository:
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 @@ class localrepository:
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 @@ class localrepository:
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