Форматы файлов с включенным управлением версиями

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

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

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

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


person Günther Jena    schedule 25.01.2011    source источник


Ответы (2)


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

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

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

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

person David Cary    schedule 30.05.2011

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

person Günther Jena    schedule 21.06.2011