Commits
- Commit:
df581e4b0ed88464667ca88d51a6b93d1159c0c0
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
set diff box recursion limit to UINT_MAX by default
In practice, recursion is already limited by our Myers max-effort cut
and this heuristic should generally provide a better split than a limit
on the number of diff boxes.
A recursion limit is only required for diff configs that do not
include the Myers algorithm, which we currently don't have.
Discussed with Neels
- Commit:
f6db314590fc96c0cdbf87367b47da8603e17ae9
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
fix result chunks: add minus above plus failed to shift "empty" positions
- Commit:
486215cf28522983f77b83d7a2a5effc522fea5f
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
undup code to add result chunks
- Commit:
4861c9da86ada01cffa2ce3801f670587e896ce2
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
add sanity assertions around adding result chunks
uncovers errors related to placing minus chunks above already added plus
chunks.
- Commit:
10ae3a65609c50cc21f975749f15afdcdc514126
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
patience debug
- Commit:
f5a254cc6ed65ef2e4fcb0737f4e3730f1a63f92
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
debug fix in diff_data_init_subsection
- Commit:
de7a293922ab041cbe620b0421763d94a13fdf47
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
debug init subsection
- Commit:
c16dde50bb5e92533dcbbc513875d726f0f9dd48
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
allow diff API users to atomize files separately
This is a breaking API change (not that we care about that at this point).
This can avoid redundant work spent on atomizing a file multiple times.
There are use cases where one particular file must be compared to other
files over and over again, such as when blaming file history.
The old API gave access to both versions of the file to the atomizer just
in case a future atomizer implementation needs this. This can still be
achieved by passing a second file via the atomizer's private data pointer.
- Commit:
2fa08c64136f5b53fb382e8369815ef94ba74ce0
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
optimize diff_atom_same(): if hashes differ, return false
- Commit:
74ad6a6944bd0588c940347378cc2b713a89ec95
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
diff_atom_cmp: no special case for ignore whitespace when both atoms empty
- Commit:
8be88dfa934d602d1cf29ba3e33162511f08b748
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
cache kd_buf in struct diff_state to avoid repeated allocation + free
- Commit:
34570dbeba22613374809c75a8ed2f119db01ec5
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
initialize to NULL instead of ""; allows pointer check to see if file is mapped
- Commit:
ad5b3f855591bc548f15e09ae4b7fdf674f16245
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
rename diff_atom->d to diff_atom->root, because it always is
The idea was that for each diff box within the files, the atoms would have a
backpointer to the current layer of diff_data (indicating the current section),
but it is not actually needed to update the backpointer in each atom to the
current diff_data. That is why the current code always points atom->d to the
root diff_data for the entire file. Clarify by proper name.
Constructs like atom->d->root->foo are redundant, just use atom->root->foo.
- Commit:
746d94dfa3a4c965501cde5bb0a59a168cc2ab44
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
diff_main: don't run algo if left or right are empty
- Commit:
acfce337ad1e68d4ab00bd78bdb6dd459acc3c46
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
debug: fix logging first chunk
- Commit:
e5447b812ab13381bef489dc01804c25cc226cd6
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
diff_algo_none: cosmetics
- Commit:
9dc0554fce377600fe0ce54848f2e735902616b6
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
fix diff_algo_none() for ending in plus chunk
- Commit:
93f8150ade45bb6185afe5b5ff3110db6403f8b3
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
results: also combine chunks coming from temp_chunks
- Commit:
13497fffa978aafa3c52c4b4922ba184de87bcf0
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
fix diff_algo_none(): no NULL pointers for left_start and right_start
- Commit:
724967e914b1604b54fab356ad4ce6c0feae2358
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
diff_state_add_chunk(): fix adding minus above plus chunk: wrong idx
- Commit:
bb867e685c9179eca1eb5b49c9a09b6e837baa28
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
debug tweaks for diff_state_add_chunk()
- Commit:
2146cf12c5afb7faa0de37de5465f09b6b604ce5
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
diff_algo_none(): also detect equal lines at the end
- Commit:
41ff30f35eb8d2ee0688753ce9be23cb2727b92a
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
cosmetic: diff_algo_none(): rename to equal_lines_start
- Commit:
467a993dc1da672ac3093104cbeae0dc22f978f9
- From:
- Neels Hofmeyr <neels@hofmeyr.de>
- Date:
cosmetic: diff_algo_none: local pointers for shorter code
- Commit:
1dfba0555efd6b616811906d011f96945be90dcc
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
move headers from include/diff/ to include/; makes things easier for consumers