Mercurial本地存储库备份

Ric*_*ket 10 backup mercurial

我是支持事情的忠实粉丝.我把我重要的学校论文放在Dropbox的一个文件夹里.我确保所有照片都复制到外部驱动器.我有一个家庭服务器,我将重要文件保存在服务器内的两个驱动器上(如软件RAID 1).

所以对于我的代码,我总是使用Subversion备份它.我保留trunk文件夹的应用程序的稳定副本,但后来我创建了一个用我的用户名命名的分支,里面有我的工作副本.我在该分支的提交之间做了很少的更改,并且理解其中的代码是我的备份.

现在我正在研究Mercurial,我必须承认我还没有真正使用它,所以我可能会把这一切都搞错了.但在我看来,您有一个服务器端存储库,然后以本地存储库的形式将其克隆到工作目录.然后,当您处理某些事情时,您将提交到该本地存储库,当事物处于要与其他人共享的状态时,您hg push将进入服务器上的父存储库.

在推出稳定,经过测试,无错误的代码之间,备份在哪里?

在做了一些思考后,我得出的结论是,它不是用于备份目的,而是假设你自己处理了这个问题.我想我需要将我的Mercurial本地存储库保存在我的Dropbox或其他备份位置,因为我的正在进行的代码没有被推送到服务器.

这几乎是它,还是我错过了什么?如果您使用Mercurial,您如何备份本地存储库?如果你今天早上打开你的电脑并且你的硬盘驱动器起火了(或者更可能的是,读头坏了,或者操作系统自行损坏了......),会丢失什么?如果您在过去一周内开发模块,为其编写测试用例,记录和评论它,然后病毒擦除您的本地存储库,那不是唯一的副本吗?

那么另一方面,您是否为每个本地存储库创建了一个远程存储库并一直推送到它?

你如何找到平衡?您如何确保备份代码?使用Mercurial作为备份和使用本地文件系统备份实用程序保持本地存储库安全之间的界限在哪里?

Kyl*_*tan 11

可以认为Subversion是一个"备份",但它只是因为在一个单独的机器上才真正做到这一点,而Subversion并不是真正的内在机器.如果您的Subversion服务器与您的开发机器在同一台机器上 - 在Linux世界中并不罕见 - 那么您就不会受到硬件故障,盗窃,火灾等的保护.事实上,有一些在这种情况下根本没有备份的数据 - 您当前的代码可能存在于两个地方,但存储库中的其他所有内容(例如修订历史记录)仅存在于远程服务器上的一个位置.

Mercurial完全相同,只是你已经不再需要一个单独的服务器,因此你必须明确考虑备份,而不是需要在某个地方安装服务器的副作用.您绝对可以在某处设置另一个Mercurial存储库,并定期将更改推送到该存储库并考虑您的备份.或者,只需备份本地存储库,就像备份任何其他重要目录一样.有了本地存储库的完整副本,包括所有修订历史记录和其他元数据,这可能比您目前使用Subversion的方式更方便和安全.


Min*_*ker 9

"hidden".hg目录存储所有本地提交.您可以使用标准备份程序备份此目录.

  • 那么,假设已经提交了更改,我唯一需要备份的是.hg文件夹?有人能证实吗? (2认同)