单用户、多台计算机版本控制系统

单用户、多台计算机版本控制系统

我有两台计算机(工作计算机和家用计算机),希望为源代码和 TeX 文档设置版本控制系统。没有协作者(即单用户/编辑器)。大多数源文件都是使用 vi 编辑器编写的。我希望两台计算机上都有可用的源/文档版本控制。

是否存在更适合单用户、多台计算机需求的特定版本控制结构(集中式与分布式)?例如,我可以将一台计算机设置为服务器,将另一台计算机设置为客户端,或者将两台计算机视为对等计算机。

另外,我希望能够轻松地同步两台计算机,但我不知道rsync这样是否更好,或者修订控制系统是否能更好地执行此功能?

答案1

免责声明:我的建议假设您在家里和工作场所都拥有互联网连接。

我的情况几乎一样。我使用git免费的 UbuntuOne 帐户管理源代码和文档。每当我需要更改/添加某些内容时,我只需要clone所需的存储库(例如“项目 X 文档”)并在工作或家用计算机或两者上本地完成工作,然后推送更改。在一些情况下,我甚至与同事共享一两个源存储库来查看/编辑文件。git到目前为止,它的出色合并功能从未让我失望。

高血压,

答案2

同步系统和修订控制系统是两个不同的东西,满足不同的需求。

作为一名程序员,您希望对代码进行版本控制。如果您不需要同步其他任何内容,就不要费心进行同步,因为它显然不会提供版本控制(版本控制本身可用于同步)。在这种情况下,您可以简单地进行版本控制。如果您还需要同步其他内容,那么您无论如何都会需要版本控制。因此,我强烈建议您先设置一些代码版本控制,然后再考虑同步。没有版本控制的代码是……完全错误的。

现在,如果你使用集中版本控制,你必须选择一个服务器。然后,你必须备份该服务器,因为你在另一台电脑上只有当前版本的代码。这就是为什么我建议你寻找一个分布式版本控制。Git 或 Hg (Mercurial) 就可以了。这样,你就有完整的代码版本历史记录两个都计算机。如果其中一台计算机坏了,你不会失去任何东西(至少不会失去代码!)。

但是,如果您无论如何都想同步,使用集中版本控制系统也不错,因为您可以简单地将其文件同步到您的另一台计算机。这样,您就有了集中+自动备份。当您改变主意时,分布式仍然会具有更大的灵活性。

这是你的选择。我的建议是使用分布式系统(Git 或 Hg...它们非常相似,并且它们具有哈希系统,这使得它们的代码库更难被破坏),然后看看你是否真的需要同步。

答案3

我认为这篇文章中的问题很独特。

不,一个用户一个位置 | 多个用户多个位置或任何中间情况都不会对可用的 SCM 产生重大影响

  • 如果两个工作场所都已联网且始终可联系到,则可以选择任何 *VCS(甚至 CVCS)并随时从 repo 进行更新(对于 DVCS - 从上次使用的 repo 拉取到较旧的 repo),无需第三方中介
  • 如果主机不总是在线,请(再次)使用任何 SCM 并将工作存储在任何 SCM 托管上,支持您选择的 SCM
  • 如果主机离线,您可以调用“Omnia mea mecum porto”并在闪存驱动器上拥有、fe、Fossil SCM(便携式、单个 exe、跨平台)和存储库

相关内容