LINUX.ORG.RU

Вики-движок: как лучше хранить разницу между статьями?

 ,


1

2

Надо прикрутить вики-движок в свой ЖЖ, но затупил уже с самого начала, — подскажите, как лучше хранить разницу между двух статей.

Это нормально, что статья может быть размером 10кб, один человек добавит одну запятую, и вот уже две идентичных статьи жрут место на диске?

Гугл говорит, что «это норма» (с). http://stackoverflow.com/questions/9217241/whats-the-most-compact-way-to-stor...

Так как же лучше хранить разницу двух статей? Сохранять статьи целиком? Или хранить только различия между ними, с последующим наложением патчей для отката взад-назад?

★★★★★

define критерий лучшести.

anonymous
()

средствами хорошей, годной, проверенной VCS.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

подумалось про какойнть bin-diff, но в зависимости от правок сам дифф может оказаться даже больше
еще вариант жать gzip'ом старые версии, или держать все разом в «сжатом разделе» (squashfs ?)
ну и, собсна, git - тоже вариант

anTaRes ★★★★
()

DokuWiki хранит версии целиком, но все кроме текущей сжимает. Кстати, git тоже хранит версии файлов целиком со сжатием gzip, а svn хранит только последнюю и каждую 10-ю целиком, а остальные diff'ом. В итоге git и быстрее и жрет меньше места на диске.

German_1984 ★★
()

Посмотри на gitit https://github.com/jgm/gitit.

Данные хранит в git-е, можно через него и пушить, поддерживает все форматы которые понимает pandoc.

Если перепишешь ЖЖ на хаскелл с пхп, то прикручивать будет очень удобно.

zinfandel ★★
()
Последнее исправление: zinfandel (всего исправлений: 1)

Это нормально, что статья может быть размером 10кб, один человек добавит одну запятую, и вот уже две идентичных статьи жрут место на диске?

Уже целых 20 КБ вместо 10? О, ужас!

вики-движок в свой ЖЖ

Ну, и сколько твои предполагаемые пользователи (не стесняйся, бери больше, самые свои смелые мечты о посещаемости) свогут понаписать текста со всеми ревизиями? Вряд ли возможностей самого дешёвого хостинга для этого не хватит.

Wizard_ ★★★★★
()

Вот, по приведённой тобой ссылке правильно же сказали: «You must ask yourself: what type of data end user will want to retrieve more often: revisions, or diffs of revisions?». Во втором случае можно мало того, что хранить диффы, так ещё и делать и хранить диффы между всеми ревизиями (не только между соседними), чтобы по требованию пользователя быстро это всё показать. Но у тебя, скорее всего первый случай, а не второй.

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