我想实现一种机制来跨多台机器同步文件。我并不特别关心超过 1 个月的文件,因此无需保留这些数据。
除了消除旧版本之外,Git 似乎几乎完成了所有这些工作。是否有一个破坏性命令可以让我说“杀死所有早于 X 的修订版”?或者,如果我可以使用另一个 VCS 工具来完成同样的事情,我会非常感兴趣。
我想实现一种机制来跨多台机器同步文件。我并不特别关心超过 1 个月的文件,因此无需保留这些数据。
除了消除旧版本之外,Git 似乎几乎完成了所有这些工作。是否有一个破坏性命令可以让我说“杀死所有早于 X 的修订版”?或者,如果我可以使用另一个 VCS 工具来完成同样的事情,我会非常感兴趣。
你不需要自己实现。它已经完成了:http ://sparkleshare.org/
每当涉及同步时,git bundle
这很有趣,因为:
但是,另一端的 repo 仍然会通过从连续捆绑包中拉取所有提交。
关于增量包,git bundle
手册页:
<git-rev-list-args>
参数列表,可接受
git rev-parse
和git rev-list
(并包含命名的 ref,请参阅下面的指定引用),指定特定对象和对传输的引用。
例如,master~10..master
导致当前主引用与自其第 10 次祖先提交以来添加的所有对象一起打包。
虽然可以使用 rev-list --since=30.days.ago master
,但最好确保在构建增量包时考虑到最后一个包使用的最后一次提交(特别是如果最后一次提交超过 30 天。如果它较新,则如果你接受“太多”的提交并不重要)。