我已经将几棵树克隆到我的本地磁盘中,它从我有限的笔记本电脑磁盘中占用了太多空间。与 SVN 和 CVS 等非分布式版本控制不同,当您签出 git 或 Mercurial 存储库时,您会得到整个树,包括整个历史记录,并且由于我很少将任何代码提交到这些存储库中,但希望保持它们的状态——到目前为止,我发现这些分布式版本控制系统浪费了太多的本地磁盘。
到目前为止,我对消除这种浪费的想法很少:
在本地磁盘上创建一个 zfs 或 btrfs 分区(可能是一个循环文件系统,因为我不想让它太持久),这应该可以更好地利用重复的文件块。这可能会占用过多的 CPU 周期,从而使其效率低下。
放弃使用版本控制并创建一个脚本来每天下载包含整个存储库的 .zip 文件。这将占用太多带宽,我不想这样做。
我的最终解决方案是以某种方式使用 git/hg,就像我们使用 SVN 和 CVS 一样——在服务器上保留历史记录并在本地仅保留最新的修订版,或者在本地保留有限的历史记录,两者都不会破坏其他所有内容,因此我可以看到日志或将文件恢复到以前的版本,如果本地不可用,版本控制系统将从远程获取所需的信息。