mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
lfs: use lfsvfs in dummy store
Summary: This simplifies code a lot. Test Plan: Updated existing test Reviewers: #mercurial, rmcelroy Reviewed By: rmcelroy Subscribers: rmcelroy, mjpieters Differential Revision: https://phabricator.intern.facebook.com/D5001837 Signature: t1:5001837:1493885337:eea8b5cba7234453b32eba46fd58b4d5904367bf
This commit is contained in:
parent
fb4cd9891d
commit
64daf52ec8
@ -1,9 +1,7 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import errno
|
||||
import functools
|
||||
import json
|
||||
import os
|
||||
|
||||
from mercurial import (
|
||||
error,
|
||||
@ -170,30 +168,15 @@ class _dummyremote(object):
|
||||
path = repo.ui.config('lfs', 'remotepath', None)
|
||||
if path is None:
|
||||
raise error.ProgrammingError('dummystore: must set "remotepath"')
|
||||
try:
|
||||
os.makedirs(path)
|
||||
except OSError as exc:
|
||||
if exc.errno == errno.EEXIST:
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
self._storepath = path
|
||||
fullpath = repo.vfs.join(path)
|
||||
self.vfs = lfsutil.lfsvfs(fullpath)
|
||||
|
||||
def write(self, storeid, data):
|
||||
fname = self.filename(storeid)
|
||||
try:
|
||||
os.makedirs(os.path.dirname(fname))
|
||||
except OSError as exc:
|
||||
if exc.errno == errno.EEXIST:
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
with open(self.filename(storeid), 'w+') as fp:
|
||||
with self.vfs(storeid.oid, 'wb', atomictemp=True) as fp:
|
||||
fp.write(data)
|
||||
|
||||
def read(self, storeid):
|
||||
with open(self.filename(storeid), 'r+') as fp:
|
||||
return fp.read()
|
||||
return self.vfs.read(storeid.oid)
|
||||
|
||||
def writebatch(self, storeids, fromstore, ui=None, total=None):
|
||||
for id in storeids:
|
||||
@ -205,10 +188,6 @@ class _dummyremote(object):
|
||||
content = self.read(id)
|
||||
tostore.write(id, content)
|
||||
|
||||
def filename(self, storeid):
|
||||
filename = os.path.join(self._storepath, storeid.oid)
|
||||
return filename
|
||||
|
||||
class _nullremote(object):
|
||||
"""Null store storing blobs to /dev/null."""
|
||||
|
||||
|
@ -202,7 +202,7 @@
|
||||
# Test bypass
|
||||
|
||||
$ hg cat -r tip large --config lfs.remotepath=$TESTTMP/404 --config lfs.blobstore=cache/404
|
||||
abort: No such file or directory: $TESTTMP/404/8e92251415339ae9b148c8da89ed5ec665905166a1ab11b09dca8fad83344738
|
||||
abort: No such file or directory: $TESTTMP/404/8e/92251415339ae9b148c8da89ed5ec665905166a1ab11b09dca8fad83344738
|
||||
[255]
|
||||
|
||||
$ hg cat -r tip large --config lfs.remotepath=$TESTTMP/404 --config lfs.blobstore=cache/404 --config lfs.bypass=1
|
||||
|
Loading…
Reference in New Issue
Block a user