Mar*_*ton 96 versioning git version-control ms-office
我负责几个Excel文件和SQL模式文件.我该如何对这些文件执行更好的文档版本控制?
我需要知道这些文件中修改过的部分(不同部分)并保留所有版本以供参考.目前我在文件名上附加时间戳,但我发现它似乎效率低下.
有没有办法或好的做法来做更好的文档版本控制?
顺便说一句,编辑通过电子邮件发送给我文件.
161*_*903 85
我在这里写的答案可以应用于这种情况.名为xls2txt的工具可以提供.xls文件的人类可读输出.简而言之,您应该将它放到.gitattributes文件中:
*.xls diff=xls
Run Code Online (Sandbox Code Playgroud)
在.git/config中:
[diff "xls"]
binary = true
textconv = /path/to/xls2txt
Run Code Online (Sandbox Code Playgroud)
当然,我相信你也可以找到其他文件类型的类似工具,git diff为办公文档提供了一个非常有用的工具.这是我目前在我的全局.gitconfig中所拥有的:
[diff "xls"]
binary = true
textconv = /usr/bin/py_xls2txt
[diff "pdf"]
binary = true
textconv = /usr/bin/pdf2txt
[diff "doc"]
binary = true
textconv = /usr/bin/catdoc
[diff "docx"]
binary = true
textconv = /usr/bin/docx2txt
Run Code Online (Sandbox Code Playgroud)
Pro Git书中有一个很好的章节:8.2自定义Git - Git属性
kir*_*gin 40
既然你用git标记了你的问题,我假设你正在询问Git的用法.
好吧,SQL转储是普通的文本文件,所以用Git跟踪它们是完全合理的.只需创建一个存储库并将其存储在其中.当你获得一个新版本的文件时,只需覆盖它并提交,Git会为你找出一切,你将能够看到修改日期,检查这个文件的特定版本并比较不同的版本.
.xlsx如果你解压缩它们也是如此..xlsx文件是压缩的XML文件目录(请参阅如何从其内部子组件正确组装有效的xlsx文件?).除非解压缩,否则Git会将它们视为二进制.可以解压缩.xlsx并跟踪对存档内各个XML文件的更改.
您也可以使用.xls文件执行此操作,但问题是.xls格式是二进制的,因此您无法从中获得有意义的差异.但您仍然可以看到修改历史记录和结帐特定版本.
Jon*_*n G 22
在过去的几天里,我一直在努力解决这个问题,并编写了一个小的.NET实用程序来提取和规范化Excel文件,使它们更容易存储在源代码控制中.我在这里发布了可执行文件:
https://bitbucket.org/htilabs/ooxmlunpack/downloads/OoXmlUnpack.exe
..和来源:
https://bitbucket.org/htilabs/ooxmlunpack
如果有任何兴趣我很乐意使其更易于配置,但目前,您应该将可执行文件放在一个文件夹(例如源库的根目录)中,当您运行它时,它将:
显然,并非所有这些都是必要的,但最终结果是仍然在Excel中打开的电子表格文件,但更适合于差异和增量压缩.此外,存储提取的文件也使得在版本历史中更明显地在每个版本中应用了哪些更改.
如果有任何胃口,我很高兴使该工具更具可配置性,因为我猜不是每个人都想要提取的内容,或者可能从公式细胞中删除的值,但这些对我来说都非常有用.
在测试中,一个2 MB的电子表格"解包"到21 MB,但随后我能够在1.9 MB Mercurial数据文件中存储五个版本的每个版本,每个版本之间有很小的变化,并使用Beyond Compare有效地可视化版本之间的差异.文字模式.
注意:虽然我正在使用Mercurial,但我在研究我的解决方案时读到了这个问题,并且没有任何关于该解决方案的Mercurial特定内容,应该适用于Git或任何其他VCS.
Tante 在Git中管理基于ZIP的文件格式非常简单:
打开〜/ .gitconfig文件(如果已经存在则创建)并添加以下节:
[diff"zip"]
Run Code Online (Sandbox Code Playgroud)textconv = unzip -c -a
| 归档时间: |
|
| 查看次数: |
77521 次 |
| 最近记录: |