使用 Python 跟踪图形和资产文件的 VCS 系统?

VCS system to keep track of graphic and asset files with Python?

我想为我在代码中使用的图形和资产文件制作一个简单的 VCS;我试过 GIT 但我们公司很小,所以我们对可以存储在这些服务器上的内容有限制。

一直在四处寻找是否可以自己编写,但我从来没有这样做过,所以我认为使用现有产品要快得多;我假设还有其他开发人员遇到这样的情况,他们不能只上传 gb 和 gb 的非代码数据,并且正在寻找更好的解决方案。

我基本上需要的是保存文件的版本,将元数据关联到每个文件,并能够在服务器上上传和下载这些文件 space(可能是 NAS 或简单的 linux 承载大量机械硬盘的机器)。我不需要比这更多的东西来开始,就文件而言,我有包含我项目资产的 zip 文件(科学测试数据和数学模型的渲染;它们可以是 3d 格式或 2d 格式,如绘图或纯图像)。

任何指导将不胜感激,我目前正在使用 Python,所以我能写的任何符合我要求的东西,或者我可以通过 Python 使用的任何东西,就是我所拥有的以思想为目标。

我在家里的 Ubuntu 20.04 64 位 OS 上使用 Subversion。我有 Apache Web 服务器 运行 webDAV 设置,它允许我通过浏览器使用 Subversion 或使用 http 从 Windows 10 机器使用 Visual Studio 和 ankh subversion 访问我的 subversion 存储库插件.

效果很好。还有其他可能性,例如 Mercurial。真的有点取决于你的目标和组织。

我在为一所大学的一个小团队做了类似的事情后走上了这条路 运行 Ubuntu 在大学网络上的 Linux 虚拟机上使用 Subversion 和 Apache 用于两个不同的两个不同项目的团队,一个团队大约有 3 个人,另一个团队大约有 5 个人。

我看到有人提到开源版本控制系统 Boar,它看起来在 python 中并且可以处理大型二进制文件。来源似乎在 GitHub 上,他们可能很乐意提供帮助。参见 https://github.com/mekberg/boar

对于二进制文件,请参阅以下内容:

How do different version control systems handle binary files?

Version control for large binary files and >1TB repositories?

Binary Delta Storage

另见 Git FAQ: Handling Large Binary Files with LFS

Large binary files are a tough problem for every version control system: every little change to a large binary file will add the complete (large) file to the repository once more. This results in huge repository sizes very quickly.

The "Large File Storage" extension for Git deals with exactly this problem.

您也可以设置自己的 Git 服务器。参见 How to Set up the HTTP Git Server for Private Projects

One possibility is the HTTP Git Server. This open source project uses NGINX to serve up Git repositories over your Local Area Network (LAN). HTTP Git Server is surprisingly easy to setup and manage.

I’m going to walk you through the process of installing and configuring HTTP Git Server on Ubuntu 18.04. Once complete, you’ll have a repository that anyone on your LAN can use.