Age | Commit message (Collapse) | Author |
|
I am very glad to have written this script.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In this patch I add support for "delete through end of file" in our
ed diff handler, and generate our diffs so that they remove
everything after in the consensus after the signatures begin.
|
|
See may 3 changes to prop140 for more background.
|
|
|
|
Fixes bug #21964
|
|
|
|
'sebastian/consdiff_newline'
|
|
The consdiff generation logic would skip over lines added at the start of the
second file, and generate a diff that it would the immediately refuse because
it couldn't be used to reproduce the second file from the first. Fixes #21996.
|
|
Fixes ticket #21963
|
|
Previously, we operated on smartlists of NUL-terminated strings,
which required us to copy both inputs to produce the NUL-terminated
strings. Then we copied parts of _those_ inputs to produce an
output smartlist of NUL-terminated strings. And finally, we
concatenated everything into a final resulting string.
This implementation, instead, uses a pointer-and-extent pattern to
represent each line as a pointer into the original inputs and a
length. These line objects are then added by reference into the
output. No actual bytes are copied from the original strings until
we finally concatenate the final result together.
Bookkeeping structures and newly allocated strings (like ed
commands) are allocated inside a memarea, to avoid needless mallocs
or complicated should-I-free-this-or-not bookkeeping.
In my measurements, this improves CPU performance by something like
18%. The memory savings should be much, much higher.
|
|
Don't alias the insides of smartlist_t; that way lies madness.
|
|
This is a protocol update from recent prop140 changes.
Also, per #21673, we need to check the entire document, including
signatures.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Previously test_consdiff.c just did #include "consdiff.c", which is
not great style, and messes up coverage testing.
|
|
(This commit was extracted by nickm based on the final outcome of
the project, taking only the changes in the files touched by this
commit from the consdiff_rebased branch. The directory-system
changes are going to get worked on separately.)
|