Подтвердить что ты не робот

Есть ли способ отделить файлы от С++?

Я ищу библиотеку diff C или С++. Я знаю, что я могу использовать инструмент Unix diff в сочетании с system или exec, но мне действительно нужна библиотека. Было бы удобно, если бы библиотека могла выполнять исправления, например, инструмент Unix patch.

4b9b3361

Ответ 1

Я думаю, что нашел хорошее решение, наконец:

Библиотека шаблонов DTL - Diff --- Tutorial

Он поддерживает патч. Мне пришлось набрать "diff.cpp" в Google, чтобы найти его. Надеюсь, это сработает!

Ответ 3

Это представляет собой реализацию "решения SES/LCS с уточнением линейного пространства Хиршберга, как описано в следующей публикации":

Е. Майерс, "Разность O (ND) Алгоритм и его вариации, Алгоритмика 1, 2 (1986), 251-266. http://www.cs.arizona.edu/people/gene/PAPERS/diff.ps

Нашел его на странице Wikipedia на странице.

Это только для поиска diff, хотя, не применяя его как патч. Я считаю, что применение патча на самом деле является более сложной проблемой; из-за риска конфликтов. Для разрешения конфликтов потребуется какая-то форма механизма управления пользователями.

Ответ 4

Subversion включает в себя библиотеку libsvn_diff.

Ответ 5

Существует один, который является частью Mercurial. Он существует как некоторый C-код, который был разработан как расширение Python, но его можно было бы довольно легко извлечь. Я считаю, что он также может выполнять двоичные различия.

Соответствующие .c файлы mercurial/bdiff.c, mercurial/mpatch.c и, возможно, mercurial/diffhelpers.c.

Ответ 6

Кроме того, в Google очень мало прав, оказалось, что Gnulib имеет diff module. Это кажется достаточным для того, для чего я хотел использовать библиотеку diff. У него, похоже, нет модуля патчей.