我喜欢使用压缩文件夹作为文件格式的容器。它们用于LibreOffice或Dia。因此,如果我想定义一个特殊用途的文件格式,我可以定义一个文件夹和文件结构,只需压缩根文件夹,并在一个文件中包含一个包含所有数据的文件。导入的文件仅作为原始文件存在于压缩文件中。使用此功能从零定义二进制文件格式将是很多工作。
现在我的问题:是否有应用程序使用压缩文件夹作为文件格式并在文件夹内进行版本控制?好处会很棒。您可以将项目中的状态提交到文件中,并且版本控制只是使用您自己的应用程序中的函数进行修饰。差异也可以按照自己的方式呈现。
可以使用用于处理压缩文件和版本控制的库。使用的版本控制系统应该是一个分布式系统,其中存储库位于工作文件夹中,而不是分离,例如使用客户端 - 服务器模型进行subversion。
你怎么看?我确定有使用这种方法的应用程序,但我找不到一个。或者这种方法有一个主要缺点吗?答案 0 :(得分:1)
听起来很有趣。 我知道许多应用声称他们有“无限制”的撤销和重做, 但这只是回到我最近打开这个文件的时间。 使用您的系统,您的应用程序可以“撤消”到以前版本的文件, 甚至在我看到最近一次打开这个文件的版本之前 - 这可能是一个很好的功能。
你看过TortoiseHg了吗? TortoiseHg使用Mercurial,即 “分布式系统,其中存储库位于工作文件夹中”。
不是定义新的压缩版本化文件格式,而是从头开始使用所有软件, 也许您可以使用Mercurial文件格式并借用TortoiseHg和Mercurial源代码来使用它。
如果我正在使用2个不同的应用程序处理项目,会发生什么 并且每个应用程序都希望将整个项目存储在自己稍微不同的压缩版本文件格式中?
答案 1 :(得分:0)
我现在发现的是,OpenOffice又名LibreOffice内部有版本控制。 LibreOffice文件是一个zip文件,里面有结构化内容(XML,direcories,...)。您可以将当前内容标记为版本。这导致创建一个VersionList.xml,其中包含有关所有版本的信息。添加了一个Versions目录,其中包含Version1,Version2等文件。这些文件是该州的实际文件。