git - 使用 GIT 管理文档

标签 git project-management cvs

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

最佳答案

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

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

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

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

关于git - 使用 GIT 管理文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4655533/

相关文章:

git - 密码更改后无法使用 Gitbox 推/pull 到 Github

macos - Git 段错误 : 11

project-management - 有什么好的比喻可以向非程序员解释项目的复杂性吗?

project-management - 管理多个软件项目

eclipse - 如何安装Eclipse版本2018-09(4.9.0)的CVS客户端?

java - Eclipse CVS 忽略 .class 文件——如何将其关闭?

git - 为什么 gitignore 在这种情况下不起作用?

linux - 如何将我的 git 存储库镜像到家里的更多笔记本

javascript - 如何在node.js项目之间重用模型?

version-control - 列出在单个 cvs 提交中 checkin 的所有文件