LINUX.ORG.RU

execve(«diff»,

anonymous
()
Ответ на: комментарий от anonymous

Гм... мне бы хотелось хранить все изменения относительно первоначальной страницы. Gnu diff даёт прекрасный функционал, но ради такого объёма данных дёргать системные утилиты чтобы сравнить, создать патч, записать патч в БД... - это как-то костыльно.

daris
() автор топика
Ответ на: комментарий от geekless

Но у меня не системное приложение и я не уверен что хранение патчей (то, что делает тот же git) «влоб» - это лучшее решение.

daris
() автор топика
Ответ на: комментарий от daris

Я тебя еще больше удивлю, но для твоей задачи можно использовать не просто diff + БД, а любую VCS. Хоть тот же git.

Ты сам описал задачу: хранить историю версий текстовых файлов. VCS — это тулза точно под данную задачу.

Или же ты можешь побыть нонконформистом и написать собственную глючную, ограниченную и тормознутую VCS на Ruby. Подумай, оно тебе надо?

geekless ★★
()
Ответ на: комментарий от geekless

Я всё понимаю :) Просто может быть ещё какое-то решение, вот о нём и спрашиваю. Не хватать же первое попавшееся :)

daris
() автор топика

daris

Пусть мне нужно мониторить 10 000 веб-страниц (100 мегабайт текста) на предмет неизменности содержимого. Проверять раз в сутки.
Как считать и хранить diff'ы?

md5sum. Если секьюрных требований нет, то cksum, что быстрее, но может быть подделано злоумышленником.

drBatty ★★
()
Ответ на: комментарий от drBatty

да, md5sum тоже можно подделать, если изменить не только файл, но и его md5, в этом случае поможет GnuPG.

drBatty ★★
()
Ответ на: комментарий от drBatty

Мне нужна возможность показать какие строки новой версии страницы отличаются от строк старой.

daris
() автор топика
Ответ на: комментарий от daris

daris

Мне нужна возможность показать какие строки новой версии страницы отличаются от строк старой.

спасибо. Хотя я умею читать, и понимаю с первого раза. Просто я не знал, что у вас ВСЕ 10000 файлов изменяются каждый день.

drBatty ★★
()
Ответ на: комментарий от drBatty

Что тут сказать, в твоём решении нет ничего про хранение разных копий или сам diff. Вопрос был поставлен не о том, как отличать тексты.

daris
() автор топика
Ответ на: комментарий от daris

daris

Что тут сказать, в твоём решении нет ничего про хранение разных копий или сам diff. Вопрос был поставлен не о том, как отличать тексты.

ну не только же md5sum, ещё и скрипт, который это всё парсит. Сначала md5(sha) считает, если что-то изменилось, то diff делает. Ну и сохраняет всё что надо. Будешь упорно писать на питоне - получится mercurial. Хотя можно и на любом другом ЯП. Число файлов - не показатель сложности, в FireFox примерно 49000 файлов, и обновляются они постоянно. И ничего, mercurial отлично справляется.

drBatty ★★
()
Ответ на: комментарий от drBatty

Этот набор костылей описан выше и мне совсем не нравится :) Мы просто немного друг друга не поняли.

daris
() автор топика
Ответ на: комментарий от daris

daris

Этот набор костылей описан выше и мне совсем не нравится

ну что делать, если другого нет?

Свой скрипт _может быть_ будет быстрее и надёжнее, т.к. заточен на конкретную задачу. А VCS просто развернуть и не нужно отлаживать.

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.