版本控制压缩文件(docx、odt)

2024-03-29

有些格式实际上是伪装的 zip 文件,例如docx 或 odt。如果我将它们直接存储在版本控制中,它们将被作为二进制文件处理。我理想的解决方案是

  • 有一个钩子可以创建一个foo.docx/每个目录foo.docx提交之前的文件,将所有文件解压到其中
  • 可选地,有一个重新缩进 xml 文件的钩子
  • 有一个可以重新创建的钩子foo.docx更新后从存储的文件中

我不希望 docx 文件本身受到版本控制。 (我知道一个相关问题 https://stackoverflow.com/questions/3298525/version-control-for-docx-and-pdf其中建议使用自定义差异的不同方法。)

这可行吗?这对 Mercurial 可行吗?

UPDATE:

我知道钩子。我对具体细节感兴趣。这是一个演示预期行为的会话。

> hg add foo.docx
> hg status
A foo.docx
> hg commit
> # Change foo.docx with external editor
> hg status
M foo.docx
> hg diff
+++ foo.docx/word/document.xml
- <w:t>An idea</w:t>
+ <w:t>A much better idea</w:t>

我也想知道同样的事情,刚刚发现ZipDoc https://www.mercurial-scm.org/wiki/ZipdocExtensionMercurial 的扩展/过滤器,似乎正是这样做的!

还没有尝试过,但看起来很有希望!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

版本控制压缩文件(docx、odt) 的相关文章

  • 计算 docx 文档中的页数

    我有一个word文件 我想计算其中有多少页 该文件是使用 Docx4Java 创建的 以前有人这样做过吗 Thanks docx4j 没有页面布局模型 因此它无法告诉您页数 您可以使用 FOP 的页面布局模型获得大致的页数 docx4j 的
  • ZipInputStream.getNextEntry() 如何工作?

    假设我们有这样的代码 File file new File zip1 zip ZipInputStream zis new ZipInputStream new FileInputStream file 假设您有一个包含以下内容的 zip
  • 将文件添加到现有 zip 文件

    我正在使用 python 的zipfile module zip 文件位于以下路径 home user a b c test zip并在下面创建另一个文件 home user a b c 1 txt我想将此文件添加到现有的 zip 中 我这
  • 如何有效地将许多文件移动到新服务器?

    我正在更换托管提供商 需要将数百万个上传的文件传输到新服务器 所有文件都位于同一目录中 是的 你读对了 过去我这样做过 压缩源服务器中的所有文件 scp到新服务器的 zip Unzip Move directory to appropria
  • 无法推送到远程 GIT 存储库 - “[...] 似乎不是 git 存储库”

    我已经在我的服务器上使用适当文件夹中的以下内容设置了 GIT 存储库 我的子域的根目录 git mydomain com mkdir foo git cd foo git git init bare shared 这将使存储库可通过 URL
  • 如何使用 hg Convert 将 git 分支导入到 Mercurial 中?

    我的 git 存储库中有许多分支 david Panama app git branch r origin HEAD gt origin master origin master origin newButtons origin newFo
  • 使用 Mercurial,我如何查看哪些更改尚未推送?

    我习惯了 git 你可以在其中运行 gitk 并得到如下内容 在这里您可以看到有一些更改需要推送到远程分支 或者 我可以使用git log decorate输出将是 b8c2926 refs heads next Update instru
  • 是否可以使用 Flutter / Dart 创建受密码保护的 ZIP 文件?

    我想创建一个受密码保护的 ZIP 文件 以前有人这样做过吗 你能给我一些建议吗 我在 pub dev 上找不到合理的包 Plugin archive https pub dev packages archive https pub dev
  • 如何将 Mercurial 存储库克隆到已存在的目录中?

    我有一个客户的 Django 项目 正在本地开发 使用 Mercurial 进行版本控制 我将本地存储库推送到我的个人远程服务器 我保存所有项目的地方 然后当我部署它时 在任何 Web 服务器上 我从我的个人服务器克隆该存储库 这在大多数服
  • 将生成的文件存储在 Git 中

    我们有一个相当大且过于混乱的代码库 我们希望使用 Git 进行迁移 目前 它是一个大的整体块 不能轻易地分割成更小的独立组件 该代码构建了大量共享库 但它们的源代码如此交错 目前无法将其干净地分离到单独的存储库中 我不太关心 Git 是否可
  • 适用于 iOS 的最佳存档器库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可在我的 iOS 应用程序中使用的存档器库 zip 或其他格式 就以下方面而言 最好的图书
  • 根据代码版本测试和管理数据库版本

    当您开发应用程序时 数据库的更改不可避免地会出现 我发现的技巧是让数据库构建与代码保持同步 过去 我添加了一个针对目标数据库执行 SQL 脚本的构建步骤 但这很危险 因为您可能会无意中添加虚假数据或更糟的情况 我的问题是保持数据库与代码同步
  • 二进制增量存储

    我正在寻找一种二进制增量存储解决方案来版本化大型二进制文件 数字音频工作站文件 使用 DAW 文件时 与用于存储原始数据 波形 的大量数据相比 大多数更改 尤其是在混音结束时 都非常小 如果我们的 DAW 文件有一个版本控制系统 让我们可以
  • 我可以在 git 中使用单个命令推送到多个存储库吗?

    基本上我想做一些类似的事情git push mybranch to repo1 repo2 repo3 现在我只是多次输入push 如果我急于完成push 我只需将它们全部发送到后台git push repo1 git push repo2
  • Accurev 性能如何?

    当前版本 4 7 的性能如何Accurev http www accurev com 每 100mb 每 GB 的结账时间 每 个文件或 mb 的提交时间 当 100 流时 gui 的响应能力 我刚刚进行了 Accurev 的演示 这些流看
  • 使用 .NET SDK / C# 在 StarTeam 中查找文件的过去修订版本

    我正在尝试编写一个 C 程序来比较 StarTeam 存储库中不同版本的文件 查看文件的当前版本与给定的先前签入之间是否有任何更改 我目前能够从当前版本中查找 签出文件 但很难找到正确的方法来查找这些文件的过去版本 至少在 NET 方面 B
  • 在源代码管理中管理我的数据库

    由于我正在处理一个新的数据库项目 在 VS2008 中 而且我从未从头开始开发数据库 因此我立即开始研究如何在源代码管理 在本例中为 Subversion 中管理数据库 我找到了一些关于SO的信息 包括这篇文章 保持多个环境中的开发数据库同
  • 使用 Python 在 OpenOffice/Microsoft Word 中格式化输出

    我正在开发一个需要格式化 可编辑输出的项目 Python 由于最终用户不会精通技术 因此输出需要采用文字处理器可编辑的格式 格式很复杂 要点 段落 粗体等 有没有办法使用Python生成这样的报告 我觉得应该有一种方法可以使用 Micros
  • 使用 Android 创建 ZIP 文件

    如何从 XML 文件创建 ZIP 文件 我想以 XML 格式备份所有收件箱消息 并压缩 XML 文件并将其存储在SD card http en wikipedia org wiki Secure Digital 下面的代码解决了我的问题 p
  • 如何在 Mercurial 中查看文件的先前版本

    我正在使用 Mercurial 对目录中的几个文件进行版本控制 假设我有 10 次提交 10 个变更集或修订 我只想查看特定文件 例如 thisFile py 在其第七个修订版中的外观 我不想恢复到这个旧版本 我不想对之前的版本进行任何更改

随机推荐