首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我可以在单用户Mercurial工作流中的存储库中工作吗?

我可以在单用户Mercurial工作流中的存储库中工作吗?
EN

Stack Overflow用户
提问于 2012-03-21 10:13:21
回答 2查看 149关注 0票数 2

我在单用户工作流中使用Mercurial,以便能够在编码或编写出现严重错误时回滚更改(我主要使用Stata和R统计信息包和LaTeX)。虽然只在本地工作,但这很容易,因为我所拥有的只是主要的存储库。

最近,我开始在Linux服务器上使用ssh,以获得更强的计算能力。到目前为止,我一直在手动来回复制文件,只在本地使用Mercurial,但我想使用Mercurial来处理这一点,并保持这两个工作流的同步。此外,我喜欢在本地(在我的笔记本电脑或台式机上)和服务器上编写代码的能力。

我是否需要在服务器上处理主存储库的克隆,并保持主存储库不变?或者,当我在服务器上时,我可以直接在主存储库中工作吗?在this question @gizmo中,gizmo指向了this workflow guide;“单一开发人员”的讨论很有帮助,但我仍然不清楚,当我在服务器上时,我是否可以在主存储库中工作,而不会造成一些我还不了解的主要问题。

谢谢!

编辑:我应该补充说,我已经学习了Joel Spolsky的HgInit.com教程,并且我对在ssh上推/拉/克隆/等等很满意,但我仍然不确定我是否可以在主存储库中工作,而不会在以后引起心痛。或者这更多的是一个哲学问题?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-21 11:40:33

  • Mercurial is DVCS,意思是-在每个位置都有: local working 和local Mercurial is DVCS,意思是-您可以在repos之间自由交换(拉入|推送)数据(如果它们提供远程访问方法)。

如果你

通过ssh轻松地推送/拉取/克隆/等等

不要忘了在家里的工作中执行pull|push cycle (为了不在家中运行hg服务器,并从服务器作为源进行同步),在每个地方都有完美的线性聚合历史记录,你根本不会感到头疼。即使你有时忘记同步repo,在最坏的情况下,你会得到两个头之后,你可以很容易地合并(不知道Stata和R数据文件的格式,但LaTeX,作为文本,是可合并的)

票数 4
EN

Stack Overflow用户

发布于 2012-03-21 16:38:51

直接在服务器上的存储库中工作是没有问题的。从Mercurial的角度来看,“主”存储库只是另一个随机存储库-Mercurial并不认为它有什么特别之处。

您不会直接这么说,但人们会问“当我推送到服务器时会发生什么?”答案是hg push只将数据发送到存储库( .hg/文件夹)。当您推送到工作副本时,服务器上的工作副本不会被触及。由于您将新的变更集推送到服务器,因此下次在服务器上工作时可能需要运行hg update。这就像你在服务器上运行了hg pull一样--在那里,你还需要在之后进行合并或更新。

我一直都有这样的情况:我在家里创建了一个存储库,并将其克隆到我工作的计算机上。我在任一位置更改文件,并在两个存储库之间进行推送/拉取。如果我需要与其他人分享我的工作,那么我会在Bitbucket上创建一个存储库,并将代码推送到那里。这样,Bitbucket就可以作为代码的一个很好的规范存储库,我通常会在家里和公司的存储库中更改Bitbucket的默认路径。所以在家里我会说:

代码语言:javascript
代码运行次数:0
运行
复制
[paths]
default = httsp://bitbucket.org/mg/<repo>/
work = ssh://mg@work/<repo>

这样我就可以使用hg push将东西发送到Bitbucket,并让hg pull work直接从工作中获取东西(以防我在离开之前忘记推送到Bitbucket )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9797751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档