Форматы файлов с включенным контролем версий - PullRequest
1 голос
/ 25 января 2011

Мне нравится идея использовать сжатые папки в качестве контейнеров для форматов файлов.Они используются для LibreOffice или Dia.Поэтому, если я хочу определить формат файла специального назначения, я могу определить папку и структуру файла и просто сжать корневую папку и получить один файл со всеми данными в одном файле.Импортированные файлы просто живут как оригиналы внутри сжатого файла.Определение двоичного формата файла с нуля с помощью этих функций будет большой работой.

Теперь к моему вопросу: существуют ли приложения, которые используют сжатые папки в качестве форматов файлов и выполняют управление версиями внутри папки?Преимущества были бы велики.Вы можете просто зафиксировать состояние в вашем проекте в файле, а управление версиями просто украшено функциями из вашего собственного приложения.Также различия могут быть представлены по-вашему.

Доступны библиотеки для работы со сжатыми файлами и для управления версиями.Используемая система управления версиями должна быть распределенной системой, в которой хранилище находится внутри вашей рабочей папки, а не отдельно, как, например, subversion, с его моделью клиент-сервер.

Что вы думаете?Я уверен, что есть приложения, использующие этот подход, но я не смог найти ни одного.Или у этого подхода есть существенный недостаток?

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Звучит как интересная идея. Я знаю, что многие приложения утверждают, что они имеют «неограниченное» отмены и повтора, но это только в самый последний раз, когда я открыл этот файл. В вашей системе ваше приложение может «отменять» предыдущие версии файла, даже до версии, которую я видел в самый последний раз, когда я открыл этот файл - это может быть отличная функция.

Вы смотрели на TortoiseHg ? TortoiseHg использует Mercurial , что «распределенная система, в которой репозиторий находится в вашей рабочей папке».

Вместо того, чтобы определять новый сжатый версионный формат файла и все программное обеспечение для работы с ним с нуля, возможно, вы могли бы использовать формат файла Mercurial и позаимствовать исходный код TortoiseHg и Mercurial для работы с ним.

Что произойдет, если я работаю над проектом с использованием 2 разных приложений, и каждое приложение хочет сохранить весь проект в своем собственном немного отличающемся формате сжатого версионного файла?

0 голосов
/ 22 июня 2011

Что я обнаружил сейчас, так это то, что OpenOffice aka LibreOffice имеет своего рода версионирование внутри.LibreOffice - это zip-файл со структурированным содержимым (XML, direcories, ...) внутри.Вы можете пометить текущий контент как версию.Это приводит к созданию VersionList.xml, который содержит информацию обо всех версиях.Добавлен каталог версий, который содержит файлы, такие как версия1, версия2 и т. Д.Эти файлы являются фактическими документами в этом состоянии.

...