Re: Tackling Git Limitations with Singular Large Line-seperated Plaintext files
- From
Jakub Narębski <jnareb@gmail.com>
- Date
- Jun 30, 2014, 12:56 UTC
- Message-ID
- <53B15E64.9030005@gmail.com>
- In-Reply-To
- <CA+55aFx6vFyZvpyQot_3Ym7wsCZ06abjNx_hEKkza-N856jMnw@mail.gmail.com>
Linus Torvalds wrote:
Show 23 quoted lines
> On Fri, Jun 27, 2014 at 10:48 AM, Junio C Hamano <gitster@pobox.com> wrote:
>>
>> Even though the original question mentioned "delta discovery", I
>> think what was being asked is not "delta" in the Git sense (which
>> your answer is about) but is "can we diff two long sequences of text
>> (that happens to consist of only 4-letter alphabet but that is a
>> irrelevant detail) without holding both in-core in their entirety?",
>> which is a more relevant question/desire from the application point
>> of view.
>
> .. even there, there's another issue. With enough memory, the diff
> itself should be fairly reasonable to do, but we do not have any sane
> *format* for diffing those kinds of things.
>
> The regular textual diff is line-based, and is not amenable to
> comparing two long lines. You'll just get a diff that says "the two
> really long lines are different".
>
> The binary diff option should work, but it is a horrible output
> format, and not very helpful. It contains all the relevant data ("copy
> this chunk from here to here"), but it's then shown in a binary
> encoding that isn't really all that useful if you want to say "what
> are the differences between these two chromosomes".There is also --word-diff[=<mode>] word-based textual diff, and I think one can abuse --word-diff-regex=<regex> for character-based diff... or maybe not, as <regex> specifies word characters, not words or word separators.
-- Jakub Narębski