##// END OF EJS Templates
stream: preserve volatile cache early...
stream: preserve volatile cache early Since cache file are not protected by the lock, their state might change between their initial detection, the computation of their size and they preservation by the VolatileManager. So we gather all theses step in a single one to avoid such race. This also handle disappearing cache file in the "copy/hardlink" clone cases.

File last commit:

r52755:607e94e0 default
r53256:3f0cf7bb default
Show More
bdiffbuild.py
36 lines | 753 B | text/x-python | PythonLexer
Matt Harbison
format: add many "missing" comma...
r52755 from __future__ import annotations
Yuya Nishihara
cffi: rename build scripts...
r32505 import cffi
import os
ffi = cffi.FFI()
Augie Fackler
formatting: blacken the codebase...
r43346 with open(
Manuel Jacob
cffi: fix build on Python 3...
r44085 os.path.join(os.path.join(os.path.dirname(__file__), '..'), 'bdiff.c')
Augie Fackler
formatting: blacken the codebase...
r43346 ) as f:
ffi.set_source(
Manuel Jacob
cffi: fix build on Python 3...
r44085 "mercurial.cffi._bdiff", f.read(), include_dirs=['mercurial']
Augie Fackler
formatting: blacken the codebase...
r43346 )
ffi.cdef(
"""
Yuya Nishihara
cffi: rename build scripts...
r32505 struct bdiff_line {
int hash, n, e;
ssize_t len;
const char *l;
};
struct bdiff_hunk;
struct bdiff_hunk {
int a1, a2, b1, b2;
struct bdiff_hunk *next;
};
int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line **lr);
int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b, int bn,
struct bdiff_hunk *base);
void bdiff_freehunks(struct bdiff_hunk *l);
void free(void*);
Augie Fackler
formatting: blacken the codebase...
r43346 """
)
Yuya Nishihara
cffi: rename build scripts...
r32505
if __name__ == '__main__':
ffi.compile()