Libgit2 git_diff_line_t не поддерживает модификацию строки, а использует добавление и удаление, какой-либо способ обнаружения? - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь увидеть, какие строки модифицируются в diff, но в libgit2 API есть только типы линий: -

GIT_DIFF_LINE_ADDITION
GIT_DIFF_LINE_DELETION

И если мы хотим обнаружить модификацию, должен быть какой-то обходной путь.

Я заметил, что всякий раз, когда есть изменения, строки имеют тенденцию удалять в последовательности, а затем они начинают добавление.Но эта последовательность не всегда действительна.Поэтому не уверен, какой может быть правильный псевдокод / ​​алгоритм для обнаружения этого.

https://gitlab.gnome.org/gaurav1999/diferencia/merge_requests/3/diffs

Я пытаюсь сделать это в VALA.Но любые предложения алгоритма помогут на любом языке, даже на английском.

Для этого случая он проходит: https://gitlab.gnome.org/gaurav1999/diferencia/merge_requests/3#note_544291

Для этого случая он терпит неудачу, и, возможно, другие также это сделают.https://gitlab.gnome.org/gaurav1999/diferencia/merge_requests/3#note_544294

...