使用GIT管理文档

时间:2011-01-11 08:20:14

标签: git project-management cvs

我正在一个网站上工作,我将能够创建项目并将数据上传到我的每个产品。数据可能主要是电子表格文档,图像,pdf等形式。理想情况下,我想使用VCS(git pref)类型的设置,每次我更新特定文档时,我可以将该文档提交到回购。关于如何实施的任何想法都会有所帮助。

3 个答案:

答案 0 :(得分:8)

每次上传后,您都可以在子shell中调用git。

但我不认为使用任何VCS是文档版本控制的好方法,尤其是在Web应用程序中。这是因为对于类似办公室的文档,您将主要使用二进制数据。当涉及二进制数据时,VCS很糟糕(没有例外)。你将无法做任何差异,并且元数据管理不适合这样的事情 - 提交的作者主要是特定帐户(你可能会使用git的一个系统帐户),没有其他信息(基本文件除外)存储信息:大小,权限,ctime),因此您必须自己存储它(作者身份,Web应用程序用户的权限,其他元数据)。另请注意,多个用户可以同时提交数据,因此您的版本控制中会有分支。如果您拥有庞大的数据集(并且使用二进制office文件,它可能比您想象的更快),您将无法对此类存储库进行分区。

IMO,在这里使用VCS会给你带来非常小的收益并引入其他问题。

我建议在数据库中保存元数据(文件名,修订版,附加内容),并在磁盘上保留文件修订版。将每个文件保留在单独的唯一目录中。这里有一个提示:不要使用来自上传的文件名。使用哈希函数根据内容和元数据计算唯一名称。

答案 1 :(得分:1)

没有通用的“保存时提交”功能(至少有一个与您提及的文档类型相关的所有编辑器集成)

最简单的方法是后台工作,例如每隔5分钟就会提交(或者在Git的情况下为git add -A && git commit -m "xxx"

实际上,Mark Longair评论:

  

flashbake 旨在从cron运行,使用某种合理的提交消息执行您在第二段中描述的内容。
  不过,我不确定原来的海报是什么。

Original project here

  
      
  • 自动备份很不错,除非您有要查看增量历史记录的文件。
  •   
  • 源代码控制非常适合该历史记录,但大多数工具都希望作者在此过程中手动提交更改。
  •   
  • =>无缝源控制解决方案将自动备份的便利性与源版本控制的强大功能相结合。
  •   

答案 2 :(得分:1)

作为Cezio答案的一个分支,如果您真的想使用VCS进行版本控制,请考虑使用LaTeX。由于它本质上是编译成文档的源代码(通常是pdflatex的PDF),因此它是版本控制的合理候选者。