本文整理汇总了Python中mercurial.util.atomictempfile函数的典型用法代码示例。如果您正苦于以下问题:Python atomictempfile函数的具体用法?Python atomictempfile怎么用?Python atomictempfile使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了atomictempfile函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: _gethash
def _gethash(self, filename, hash):
"""Get file with the provided hash and store it in the local repo's
store and in the usercache.
filename is for informational messages only.
"""
util.makedirs(lfutil.storepath(self.repo, ''))
storefilename = lfutil.storepath(self.repo, hash)
tmpname = storefilename + '.tmp'
tmpfile = util.atomictempfile(
tmpname, createmode=self.repo.store.createmode)
try:
gothash = self._getfile(tmpfile, filename, hash)
except StoreError as err:
self.ui.warn(err.longmessage())
gothash = ""
tmpfile.close()
if gothash != hash:
if gothash != "":
self.ui.warn(
_('%s: data corruption (expected %s, got %s)\n') %
(filename, hash, gothash))
util.unlink(tmpname)
return False
util.rename(tmpname, storefilename)
lfutil.linktousercache(self.repo, hash)
return True
开发者ID:html-shell,项目名称:mozilla-build,代码行数:30,代码来源:basestore.py
示例2: update_parent
def update_parent(path, line, parent):
line = line - 1 # The line number we're passed will be 1-based
fp = None
try:
fp = open(path)
data = fp.readlines()
finally:
if fp and not fp.closed:
fp.close()
#
# line will be the last line of any continued block, go back
# to the first removing the continuation as we go.
#
while data[line][0].isspace():
data.pop(line)
line -= 1
assert data[line].startswith('default')
data[line] = "default = %s\n" % parent
if data[-1] != '\n':
data.append('\n')
try:
fp = util.atomictempfile(path, 'w', 0644)
fp.writelines(data)
fp.rename()
finally:
if fp and not fp.closed:
fp.close()
开发者ID:apprisi,项目名称:illumos-gate,代码行数:32,代码来源:cdm.py
示例3: test3_oops
def test3_oops():
try:
file = atomictempfile()
except TypeError:
print "OK"
else:
print "expected TypeError"
开发者ID:yonas,项目名称:HgWeb-Syntax-Highlighter,代码行数:7,代码来源:test-atomictempfile.py
示例4: putlfile
def putlfile(repo, proto, sha):
'''Put a largefile into a repository's local store and into the
user cache.'''
proto.redirect()
path = lfutil.storepath(repo, sha)
util.makedirs(os.path.dirname(path))
tmpfp = util.atomictempfile(path, createmode=repo.store.createmode)
try:
try:
proto.getfile(tmpfp)
tmpfp._fp.seek(0)
if sha != lfutil.hexsha1(tmpfp._fp):
raise IOError(0, _('largefile contents do not match hash'))
tmpfp.close()
lfutil.linktousercache(repo, sha)
except IOError, e:
repo.ui.warn(_('largefiles: failed to put %s into store: %s\n') %
(sha, e.strerror))
return wireproto.pushres(1)
finally:
tmpfp.discard()
return wireproto.pushres(0)
开发者ID:spraints,项目名称:for-example,代码行数:25,代码来源:proto.py
示例5: removeFile
def removeFile(self, wfile):
repo = self.repo
ctx = self.ctx
if isinstance(ctx, patchctx):
repo.thgbackup(ctx._path)
fp = util.atomictempfile(ctx._path, 'wb')
try:
if ctx._ph.comments:
fp.write('\n'.join(ctx._ph.comments))
fp.write('\n\n')
for file in ctx._fileorder:
if file == wfile:
continue
for chunk in ctx._files[file]:
chunk.write(fp)
fp.close()
finally:
del fp
ctx.invalidate()
else:
fullpath = repo.wjoin(wfile)
repo.thgbackup(fullpath)
wasadded = wfile in repo[None].added()
try:
commands.revert(repo.ui, repo, fullpath, rev='.',
no_backup=True)
if wasadded and os.path.exists(fullpath):
os.unlink(fullpath)
except EnvironmentError:
qtlib.InfoMsgBox(_("Unable to remove"),
_("Unable to remove file %s,\n"
"permission denied") %
hglib.tounicode(wfile))
self.fileModified.emit()
开发者ID:velorientc,项目名称:git_test7,代码行数:34,代码来源:chunks.py
示例6: dump
def dump(data, file_path):
"""Serialize some data to a path atomically.
This is present because I kept corrupting my revmap by managing to hit ^C
during the serialization of that file.
"""
f = hgutil.atomictempfile(file_path, 'w+b', 0644)
json.dump(_convert(data, _scrub), f)
f.close()
开发者ID:seewindcn,项目名称:tortoisehg,代码行数:9,代码来源:util.py
示例7: link
def link(src, dest):
try:
util.oslink(src, dest)
except OSError:
# if hardlinks fail, fallback on atomic copy
dst = util.atomictempfile(dest)
for chunk in util.filechunkiter(open(src, 'rb')):
dst.write(chunk)
dst.close()
os.chmod(dest, os.stat(src).st_mode)
开发者ID:sandeepprasanna,项目名称:ODOO,代码行数:10,代码来源:lfutil.py
示例8: test2_discard
def test2_discard(self):
if os.path.exists('foo'):
os.remove('foo')
file = atomictempfile('foo')
(dir, basename) = os.path.split(file._tempname)
file.write('yo\n')
file.discard()
self.assertFalse(os.path.isfile('foo'))
self.assertTrue(basename not in os.listdir('.'))
开发者ID:Distrotech,项目名称:mercurial,代码行数:11,代码来源:test-atomictempfile.py
示例9: copytostoreabsolute
def copytostoreabsolute(repo, file, hash):
if inusercache(repo.ui, hash):
link(usercachepath(repo.ui, hash), storepath(repo, hash))
else:
util.makedirs(os.path.dirname(storepath(repo, hash)))
with open(file, 'rb') as srcf:
with util.atomictempfile(storepath(repo, hash),
createmode=repo.store.createmode) as dstf:
for chunk in util.filechunkiter(srcf):
dstf.write(chunk)
linktousercache(repo, hash)
开发者ID:motlin,项目名称:cyg,代码行数:11,代码来源:lfutil.py
示例10: copytostoreabsolute
def copytostoreabsolute(repo, file, hash):
util.makedirs(os.path.dirname(storepath(repo, hash)))
if inusercache(repo.ui, hash):
link(usercachepath(repo.ui, hash), storepath(repo, hash))
else:
dst = util.atomictempfile(storepath(repo, hash))
for chunk in util.filechunkiter(open(file, 'rb')):
dst.write(chunk)
dst.close()
util.copymode(file, storepath(repo, hash))
linktousercache(repo, hash)
开发者ID:sandeepprasanna,项目名称:ODOO,代码行数:11,代码来源:lfutil.py
示例11: copytostoreabsolute
def copytostoreabsolute(repo, file, hash):
if inusercache(repo.ui, hash):
link(usercachepath(repo.ui, hash), storepath(repo, hash))
elif not getattr(repo, "_isconverting", False):
util.makedirs(os.path.dirname(storepath(repo, hash)))
dst = util.atomictempfile(storepath(repo, hash),
createmode=repo.store.createmode)
for chunk in util.filechunkiter(open(file, 'rb')):
dst.write(chunk)
dst.close()
linktousercache(repo, hash)
开发者ID:ZanderZhang,项目名称:Andriod-Learning,代码行数:11,代码来源:lfutil.py
示例12: test2_discard
def test2_discard():
if os.path.exists('foo'):
os.remove('foo')
file = atomictempfile('foo')
(dir, basename) = os.path.split(file._tempname)
file.write('yo\n')
file.discard()
assert not os.path.isfile('foo')
assert basename not in os.listdir('.')
print 'OK'
开发者ID:yonas,项目名称:HgWeb-Syntax-Highlighter,代码行数:12,代码来源:test-atomictempfile.py
示例13: link
def link(src, dest):
"""Try to create hardlink - if that fails, efficiently make a copy."""
util.makedirs(os.path.dirname(dest))
try:
util.oslink(src, dest)
except OSError:
# if hardlinks fail, fallback on atomic copy
dst = util.atomictempfile(dest)
for chunk in util.filechunkiter(open(src, 'rb')):
dst.write(chunk)
dst.close()
os.chmod(dest, os.stat(src).st_mode)
开发者ID:raymundviloria,项目名称:android-app,代码行数:12,代码来源:lfutil.py
示例14: writefile
def writefile(config, path):
"""Write the given config obj to the specified file"""
f = util.atomictempfile(os.path.realpath(path), 'w')
try:
buf = cStringIO.StringIO()
config.write(buf)
# normalize line endings
for line in buf.getvalue().splitlines():
f.write(line + '\n')
f.close()
finally:
del f # unlink temp file
开发者ID:gilshwartz,项目名称:tortoisehg-caja,代码行数:12,代码来源:wconfig.py
示例15: test1_simple
def test1_simple(self):
if os.path.exists('foo'):
os.remove('foo')
file = atomictempfile('foo')
(dir, basename) = os.path.split(file._tempname)
self.assertFalse(os.path.isfile('foo'))
self.assertTrue(basename in glob.glob('.foo-*'))
file.write('argh\n')
file.close()
self.assertTrue(os.path.isfile('foo'))
self.assertTrue(basename not in glob.glob('.foo-*'))
开发者ID:Distrotech,项目名称:mercurial,代码行数:13,代码来源:test-atomictempfile.py
示例16: get
def get(self, files):
'''Get the specified largefiles from the store and write to local
files under repo.root. files is a list of (filename, hash)
tuples. Return (success, missing), lists of files successfully
downloaded and those not found in the store. success is a list
of (filename, hash) tuples; missing is a list of filenames that
we could not get. (The detailed error message will already have
been presented to the user, so missing is just supplied as a
summary.)'''
success = []
missing = []
ui = self.ui
util.makedirs(lfutil.storepath(self.repo, ''))
at = 0
available = self.exists(set(hash for (_filename, hash) in files))
for filename, hash in files:
ui.progress(_('getting largefiles'), at, unit='lfile',
total=len(files))
at += 1
ui.note(_('getting %s:%s\n') % (filename, hash))
if not available.get(hash):
ui.warn(_('%s: largefile %s not available from %s\n')
% (filename, hash, self.url))
missing.append(filename)
continue
storefilename = lfutil.storepath(self.repo, hash)
tmpfile = util.atomictempfile(storefilename + '.tmp',
createmode=self.repo.store.createmode)
try:
hhash = self._getfile(tmpfile, filename, hash)
except StoreError, err:
ui.warn(err.longmessage())
hhash = ""
tmpfile.close()
if hhash != hash:
if hhash != "":
ui.warn(_('%s: data corruption (expected %s, got %s)\n')
% (filename, hash, hhash))
util.unlink(storefilename + '.tmp')
missing.append(filename)
continue
util.rename(storefilename + '.tmp', storefilename)
lfutil.linktousercache(self.repo, hash)
success.append((filename, hhash))
开发者ID:32bitfloat,项目名称:intellij-community,代码行数:51,代码来源:basestore.py
示例17: test1_simple
def test1_simple():
if os.path.exists('foo'):
os.remove('foo')
file = atomictempfile('foo')
(dir, basename) = os.path.split(file._tempname)
assert not os.path.isfile('foo')
assert basename in glob.glob('.foo-*')
file.write('argh\n')
file.close()
assert os.path.isfile('foo')
assert basename not in glob.glob('.foo-*')
print 'OK'
开发者ID:yonas,项目名称:HgWeb-Syntax-Highlighter,代码行数:14,代码来源:test-atomictempfile.py
示例18: savepinnednodes
def savepinnednodes(repo, newpin, newunpin, fullargs):
# take a narrowed lock so it does not affect repo lock
with extutil.flock(repo.svfs.join('obsinhibit.lock'), 'save pinned nodes'):
orignodes = loadpinnednodes(repo)
nodes = set(orignodes)
nodes |= set(newpin)
nodes -= set(newunpin)
with util.atomictempfile(repo.svfs.join('obsinhibit')) as f:
f.write(''.join(nodes))
desc = lambda s: [short(n) for n in s]
repo.ui.log('pinnednodes', 'pinnednodes: %r newpin=%r newunpin=%r '
'before=%r after=%r\n', fullargs, desc(newpin),
desc(newunpin), desc(orignodes), desc(nodes))
开发者ID:davidshepherd7,项目名称:dotfiles,代码行数:14,代码来源:hiddenoverride.py
示例19: _gethash
def _gethash(self, filename, hash):
"""Get file with the provided hash and store it in the local repo's
store and in the usercache.
filename is for informational messages only.
"""
util.makedirs(lfutil.storepath(self.repo, ""))
storefilename = lfutil.storepath(self.repo, hash)
tmpname = storefilename + ".tmp"
tmpfile = util.atomictempfile(tmpname, createmode=self.repo.store.createmode)
try:
gothash = self._getfile(tmpfile, filename, hash)
except StoreError, err:
self.ui.warn(err.longmessage())
gothash = ""
开发者ID:nixiValor,项目名称:Waterfox,代码行数:16,代码来源:basestore.py
示例20: get
def get(self, files):
'''Get the specified largefiles from the store and write to local
files under repo.root. files is a list of (filename, hash)
tuples. Return (success, missing), lists of files successfuly
downloaded and those not found in the store. success is a list
of (filename, hash) tuples; missing is a list of filenames that
we could not get. (The detailed error message will already have
been presented to the user, so missing is just supplied as a
summary.)'''
success = []
missing = []
ui = self.ui
at = 0
for filename, hash in files:
ui.progress(_('getting largefiles'), at, unit='lfile',
total=len(files))
at += 1
ui.note(_('getting %s:%s\n') % (filename, hash))
storefilename = lfutil.storepath(self.repo, hash)
tmpfile = util.atomictempfile(storefilename,
createmode=self.repo.store.createmode)
try:
hhash = binascii.hexlify(self._getfile(tmpfile, filename, hash))
except StoreError, err:
ui.warn(err.longmessage())
hhash = ""
if hhash != hash:
if hhash != "":
ui.warn(_('%s: data corruption (expected %s, got %s)\n')
% (filename, hash, hhash))
tmpfile.discard() # no-op if it's already closed
missing.append(filename)
continue
tmpfile.close()
lfutil.linktousercache(self.repo, hash)
success.append((filename, hhash))
开发者ID:Pelonza,项目名称:Learn2Mine-Main,代码行数:41,代码来源:basestore.py
注:本文中的mercurial.util.atomictempfile函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论