mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 15:02:21 -04:00
don't sync mod time; media conflicts are very unlikely
This commit is contained in:
parent
49181ee738
commit
866fe8a283
1 changed files with 5 additions and 13 deletions
|
@ -179,7 +179,6 @@ If the same name exists, compare checksums."""
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def _initDB(self):
|
def _initDB(self):
|
||||||
# in the log, a mod time of zero indicates a delete
|
|
||||||
self.db.executescript("""
|
self.db.executescript("""
|
||||||
create table media (fname text primary key, csum text, mod int);
|
create table media (fname text primary key, csum text, mod int);
|
||||||
create table meta (dirMod int, usn int); insert into meta values (0, 0);
|
create table meta (dirMod int, usn int); insert into meta values (0, 0);
|
||||||
|
@ -300,24 +299,18 @@ create table log (fname text primary key, type int);
|
||||||
# last zip in set
|
# last zip in set
|
||||||
finished = True
|
finished = True
|
||||||
else:
|
else:
|
||||||
# prepare sql
|
|
||||||
data = z.read(i)
|
data = z.read(i)
|
||||||
csum = checksum(data)
|
csum = checksum(data)
|
||||||
mod = meta[i.filename]['mod']
|
|
||||||
name = meta[i.filename]['name']
|
name = meta[i.filename]['name']
|
||||||
# malicious chars?
|
# malicious chars?
|
||||||
for c in '/\\':
|
for c in '/\\':
|
||||||
assert c not in name
|
assert c not in name
|
||||||
media.append((name, csum, mod))
|
|
||||||
# remove entries from local log
|
|
||||||
self.db.execute("delete from log where fname = ?", name)
|
|
||||||
# save file
|
# save file
|
||||||
open(name, "wb").write(data)
|
open(name, "wb").write(data)
|
||||||
# set mod time if possible; may fail on some filesystems
|
# update db
|
||||||
try:
|
media.append((name, csum, self._mtime(name)))
|
||||||
os.utime(name, (mod, mod))
|
# remove entries from local log
|
||||||
except:
|
self.db.execute("delete from log where fname = ?", name)
|
||||||
print "failed to set utime"
|
|
||||||
# update media db
|
# update media db
|
||||||
if media:
|
if media:
|
||||||
self.db.executemany(
|
self.db.executemany(
|
||||||
|
@ -350,8 +343,7 @@ create table log (fname text primary key, type int);
|
||||||
break
|
break
|
||||||
fname = fname[0]
|
fname = fname[0]
|
||||||
z.write(fname, str(cnt))
|
z.write(fname, str(cnt))
|
||||||
files[str(cnt)] = dict(
|
files[str(cnt)] = fname
|
||||||
name=fname, mod=self._mtime(fname))
|
|
||||||
sz += os.path.getsize(fname)
|
sz += os.path.getsize(fname)
|
||||||
if sz > SYNC_ZIP_SIZE:
|
if sz > SYNC_ZIP_SIZE:
|
||||||
break
|
break
|
||||||
|
|
Loading…
Reference in a new issue