Questions tagged «mercurial»

Mercurial是一个快速的开源分布式版本控制系统。

10
我是Subversion极客,为什么我应该考虑或不考虑Mercurial或Git或任何其他DVCS?
我试图了解分布式版本控制系统(DVCS)的好处。 我发现颠覆再教育和本文由马丁·福勒是非常有用的。 Mercurial和其他DVCS促进了使用变更集和本地提交的代码处理新方法。它防止合并地狱和其他协作问题 我们不受此影响,因为我练习持续集成,除非在进行实验,否则不能在私有分支中单独工作。我们为每个主要版本使用一个分支,其中修复了从主干合并的错误。 水星让你有中尉 我知道这对于像Linux这样的大型项目很有用,但是我看不到小型且高度协作的团队(5至7人)的价值。 Mercurial更快,占用磁盘空间更少,完整的本地副本允许更快的日志和差异操作。 我也不对此感到担心,因为即使我正在处理非常大的项目,我也没有注意到SVN的速度或空间问题。 我正在寻找您的个人经验和/或前SVN怪才的意见。特别是关于变更集的概念和整体性能的提高。 更新(1月12日):我坚信值得尝试。 更新(6月12日):我亲吻了Mercurial,我很喜欢。他的樱桃当地风味的味道。我亲吻Mercurial只是为了尝试。我希望我的SVN服务器不要介意。感觉很不对劲。感觉很好。并不是说我今晚恋爱了。 最终更新(7月29日):我荣幸地复习了Eric Sink的下一本书,名为“ 版本控制示例”。他说服了我。我去Mercurial。

9
为什么认为Mercurial比Git容易?
在进行比较时,在我看来,它们的功能集之间可能存在1:1的映射。然而,经常被引用的说法是“ Mercurial更容易”。该声明的依据是什么?(如果有)
204 git  mercurial 

23
为什么Git这么炒作?…而其他人不?[关闭]
近年来,围绕Git的大肆宣传。每个人都知道Git,没人知道替代方案。 像Mercurial这样的其他产品似乎并未引起注意。两者均于2005年发布,并提供类似的功能。此外,通常认为Mercurial更易于使用,更直观,并且长期以来具有更好的UI。因此,可以假定这将是一种流行的替代方法,特别是对于那些刚开始使用分布式版本控制的人。然而,对于大多数人来说,这似乎并不为人所知,与Git的成功相当不同。 这篇文章的重点是试图更好地理解这种现象。 Git如何获得蛋糕的全部?他们是否以某种方式使用了更好的营销?是因为它的社区更……糟糕……“冗长”吗?是因为“ Linus”这个名字吗?是因为它的怪异形象吗? 你怎么看?

10
为什么在2010-01年度Debian popcon图上Git提交者的数量突然增加?
几乎所有的文章我读过1比较Git和水银好像水银具有较好的命令行UX每个命令仅限于只有一个想法(不像说git checkout)。 但是在某个时候,Git突然变得超级流行,并且Debian popcon图上的Git提交者数量激增(见下图)。 资料来源:Debian 2010-01年发生的事情突然发生了变化。看起来GitHub早于2008年成立。
86 git  history  mercurial 

2
Git和Mercurial受欢迎程度的经验证据
是2012年!Mercurial和Git仍然很强大。 我了解两者的权衡。我也了解每个人都偏爱其中一种。没关系。 我正在寻找有关两者使用水平的一些信息。例如,在stackoverflow.com上,搜索Git可获得12000次点击,Mercurial可获得3000 次点击。Google趋势表示,Git为1.9:1.0。 还有哪些其他经验信息可用来估计这两种工具的相对使用情况?
37 git  mercurial 

5
我是一个gituri用户,对mercurial的分支感到困惑。我应该如何跟踪小变化?
我以前一直使用git,但是我想为python做贡献,所以现在我必须学习mercurial,我发现它非常令人沮丧。 因此,我做了几个小补丁,并希望将它们作为提交记录在本地Mercurial存储库中。显然,有四种方法可以处理水银的分支。1和4对我来说完全是荒谬的,命名分支似乎是重量级的,我觉得我不应该将它们用于快速1提交修复,所以我使用了书签。 现在,我的补丁程序被拒绝了,我想从存储库中删除我的一个书签分支。好的,在git中,我只是强行删除我的分支而忘了它,所以我删除了书签,现在出现以下问题: TortoiseHG hg log仍然显示commit和defaultbranch有2个头。如果我理解正确,那么没有其他插件您将无法删除hg中的提交。 Mercurial不仅具有散列,而且具有修订号。当我添加了一些自己的提交时,所有之后提交的提交都具有与主要中央存储库不同的修订号。 我hg update在拉动master书签后自动将其移动到最新提交,但是在TortoiseHG中找不到该方法。 我究竟做错了什么?这是正常现象吗?应该,我应该忽略这些问题吗?或者我应该如何与分支机构合作?

3
何时将一个项目分成多个子项目
我想知道将我正在处理的项目分成两个存储库而不是一个存储库是否有意义。 从我可以说: 前端将用html + js编写 .net后端 后端不依赖于前端,前端不依赖于后端 前端将使用后端实现的一个宁静的api。 前端可以托管在任何静态http服务器上。 到目前为止,存储库具有以下结构: 根: 前端/* 后端/ * 我认为将两个项目都放在同一个存储库中是一个错误。由于两个项目之间没有相互依赖关系,因此它们应属于单独的存储库,并且如果需要,则应具有包含子模块的父存储库。 有人告诉我这是没有意义的,这样做不会给我们带来任何好处。 这是我的一些论点: 我们有两个互不依赖的模块。 长期拥有两个项目的源历史记录可能会使事情复杂化(尝试在历史记录中搜索前端中的某些内容,而您有一半的提交与所寻找的bug完全无关) 冲突和合并(这不应该发生,但是让某人推送到后端将迫使其他开发人员提取后端更改以推送前端更改。) 一个开发人员可能只在后端工作,但总是不得不拉扯前端或反过来。 从长远来看,将是时候进行部署。以某种方式,前端可以在拥有一个后端服务器的同时部署到多个静态服务器。在每种情况下,人们都将不得不要么克隆整个后端,要么创建自定义脚本以仅将所有前端推送到所有服务器或删除后端。如果只需要一个,则仅推/拉前端或后端比两个都容易。 反驳论点(一个人可能同时在两个项目上工作),使用子模块创建第三个存储库并进行开发。历史记录保存在各个模块中,您始终可以创建标签,在这些标签中,后端/前端的版本确实可以同步工作。将两个前端/后端放在一个仓库中并不意味着它们可以一起工作。它只是将两个历史合并到一个大型仓库中。 如果要将自由职业者添加到项目中,将前端/后端作为子模块将使事情变得更容易。在某些情况下,您实际上并不想授予对代码库的完全访问权限。如果您想限制“局外人”可以看到/编辑的内容,拥有一个大模块将使工作变得更加困难。 错误介绍和修复错误,我在前端插入了一个新错误。然后有人修复了后端的错误。对于一个存储库,在新错误之前回滚也将回滚后端,这可能使其难以修复。我必须将后端克隆到另一个文件夹中,以使后端工作,同时修复前端中的错误……然后尝试重新合并东西……拥有两个存储库将很轻松,因为移动了一个回购的HEAD不会改变另一个。并且针对不同版本的后端进行测试将是轻而易举的。 有人可以给我更多的论据来说服他们,或者至少告诉我为什么将项目分为两个子模块是没有意义的(更复杂的)。该项目是新项目,代码库已有两天的历史,因此修复还为时不晚。

6
SVN合并有何困难?
可能重复: 我是Subversion极客,为什么我应该考虑或不考虑Mercurial或Git或任何其他DVCS? 有时,您会听到有人说分布式版本控制(Git,HG)本质上比集中版本控制(如SVN)更好,因为在SVN中合并非常困难且痛苦。关键是,我在合并SVN方面从未遇到任何麻烦,并且由于您只听说过DVCS倡导者而非实际SVN用户提出的主张,所以这往往使我想起电视上那些令人讨厌的广告,试图让演员冒充假装您已经拥有并且可以正常工作的东西很难卖给您,从而卖给您不需要的东西。 总是提出的用例是重新合并一个分支,这再次使我想起那些稻草人产品广告;如果您知道自己在做什么,则一开始就不应该(也永远不必)重新合并分支。(当然,当您从根本上做错和愚蠢的事情时,这很难做到!) 因此,撇开荒谬的稻草人用例,SVN合并中有什么比DVCS系统中合并更难?
28 git  svn  mercurial  dvcs  merging 

6
版本历史真的很神圣吗?还是最好重新设定基础?
我一直都同意Mercurial的口头禅1,但是,既然Mercurial与rebase扩展捆绑在一起,并且它是git中的流行做法,我想知道它是否真的可以被视为“不良做法”,或者至少足以避免使用。无论如何,我都知道在推送之后重新部署基地很危险。 OTOH,我认为尝试将5个提交打包到一个文件中以使其看起来更整洁(尤其是在生产分支中)的意义,但是,我个人认为能够对部分功能进行部分提交会更好一些实验已经完成,即使它不是很漂亮,但是看到类似“尝试用X来做,但毕竟不如Y,以Y为基数做Z”这样的内容,恕我直言对那些学习的人来说具有很好的价值。代码库,并遵循开发人员的思路。 我非常自以为是(愚蠢,内脏,有偏见)的观点是,程序员喜欢重新设置基础以隐藏错误……而且我认为这根本不适合该项目。 所以我的问题是:您是否真的发现在实践中拥有这样的“有机提交”(即不受干扰的历史记录)很有价值?或者相反,您是否更喜欢遇到包装精美的提交,而无视程序员的实验过程?无论您选择哪个,为什么对您有用?(让其他团队成员保留历史记录,或者根据需要重新建立历史记录)。 根据Google DVCS分析的1,在Mercurial“历史为神圣”中。
26 git  mercurial  dvcs 

11
分散版本控制系统的业务案例
我搜索了git / mercurial / bazzr系统,使其优于集中式系统(subversion,perforce),但没有找到任何商业原因。 如果您试图将DVCS出售给非技术人员,您会为DVCS 增加利润提供哪些论点。 我将很快向我的经理介绍git,这将需要一些时间来转换出Subversion存储库,并花费一些费用来购买smartgit许可证。 编辑我试图使这个问题成为关于集中式与分散式的一般性讨论,但是不可避免地它变成了git vs subversion。当然,有比颠覆更好的集中式系统。

6
编程学生更容易使用哪种DVCS(git或hg)?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 有一点背景:我正在上大学三年级。学生分为4人一组。几乎每个人都将在Windows下工作(除了像我这样在Linux上的一些人)。作为学校课程的一部分,我们将很快开始为一个真正的客户开发项目,但是我和另一个团队想知道哪种方法最适合彼此共享我们的代码。 我从事兼职工作已有3年,并且在不同项目上同时使用git和mercurial有丰富的经验,因此使用一个或另一个系统没有任何问题。但是,我的队友以前从未使用过版本控制系统。还有另一个团队尝试使用SVN但遇到了重大问题,并且希望尝试其他尝试,因此他们征询了我的意见。 我的想法:听说Mercurial + TortoiseHg在Windows下具有更好的集成,但是我想知道即使我解释了匿名头的概念是否也可能使他们感到困惑。另一方面,我发现git分支对于初学者来说更容易理解(每个程序员的工作分离清晰),但在Windows下效果不佳。

4
我们是Subversion极客,我们想知道Mercurial的好处[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 看过我是Subversion极客之后,为什么我应该考虑还是不考虑Mercurial或Git或任何其他DVCS。 我有一个相关的后续问题。我阅读了该问题,并阅读了推荐的链接和视频,我看到了好处,但是我没有看到人们在谈论的整体思维转变。 我们的团队由8至10名开发人员组成,他们在一个由60个项目组成的大型代码库中工作。我们使用Subversion并有一个主干。当开发人员启动新的Fogbugz案例时,他们将创建一个svn分支,在该分支上进行工作,完成后,它们将合并回主干。有时它们可​​能会在分支上停留更长的时间,并将中继合并到分支以接收更改。 当我看着Linus谈论人们创建分支而不再做分支时,那根本不是我们。我们每周可能会创建50-100个分支,而不会出现任何问题。最大的挑战是合并,但我们在合并方面也相当出色。我倾向于通过fogbugz case&checkin合并,而不是合并分支的整个根。 我们永远不会在远程工作,我们永远不会在分支机构之外建立分支机构。如果您是代码库中该部分中唯一的工作人员,则与主干的合并将顺利进行。如果其他人修改了同一段代码,则合并可能会变得混乱,您可能需要进行一些手术。冲突就是冲突,除非有足够的智能来理解代码,否则我看不出大多数系统在大多数情况下如何做到正确。 创建分支后,接下来要检出60k +个文件会花费一些时间,但这对于我们使用的任何源代码控制系统都是一个问题。 我们没有看到的任何DVCS是否有一些好处对我们有很大帮助?
22 git  svn  mercurial  dvcs 

3
分支机构中断持续集成吗?
我认为这篇文章《成功的Git分支模型》在经验丰富的DVCS用户中是众所周知的。 我hg主要使用它,但是我认为这种讨论对任何DVCS都适用。 我们当前的工作流程是每个开发人员克隆主存储库。我们在自己的本地仓库上编写代码,运行测试,如果一切顺利,则推送给主服务器。 因此,我们希望设置诸如Jenkins的CI服务器,并通过将来的预配系统(厨师,木偶,ansible等)改善我们的工作流程。 实部 好了,以上介绍的模型很好用,但分支机构可以破坏CI。Feature分支应该与原点同步(根据文章,它将是development分支),以使CI和合并更加顺利,对吗? 说爱丽丝和鲍勃正在研究两个功能。但是爱丽丝第二天就完成了。鲍勃的功能需要一个星期。到Bob完成时,他的更改已过期(也许Alice重构/重命名了某些类)。 一种解决方案是,每天早晨开发人员必须master/origin检查是否有任何更改。如果Alice提交了,Bob应该拉入并合并到他的工作区中,以便他的功能分支是最新的。 这是个好方法吗? 这些分支是否应该存在于主存储库中(不是本地克隆?),这意味着每个开发人员都应向GitHub / Bitbucket上的主存储库授予特权,以便他们可以创建新分支吗?还是在本地完成? 最后,如果分支未与同步,则本文介绍的模型应打破CI origin/master。既然我们要进行夜间构建,开发人员是否应该在离开工作之前进行合并和合并,并且CI也要在每个功能分支上运行?

2
推荐的代码审查流程
我们通常在那时使用Perforce和SmartBear的Code Collaborator,Big Corp现在我们还将在某些项目中使用Mercurial。 Code Collaborator支持Mercurial(我们使用的是版本5),我正在尝试确定最佳时间(在提交/推送到服务器期间)是最佳/有效的代码审查时间。 谢谢

2
带有大型公司通讯,配置管理和测试要求的Mercurial存储库结构
我还是另一个Subversion用户,他在分布式版本控制的Tao中苦苦地对其自身进行重新教育。 使用Subversion时,我非常喜欢次项目方法,并且与大多数以前的雇主一样,我们将构建存储库分支;标签和主干如下: branches-+ +-personal-+ | +-alice-+ | | +-shinyNewFeature | | +-AUTOMATED-+ | | +-shinyNewFeature | +-bob-+ | +-AUTOMATED-+ | +-bespokeCustomerProject +-project-+ +-shinyNewFeature +-fixStinkyBug tags-+ +-m20110401_releaseCandidate_0_1 +-m20110505_release_0_1 +-m20110602_milestone trunk 在实际的源代码树本身中,我们将使用(类似)以下结构: (src)-+ +-developmentAutomation-+ | +-testAutomation | +-deploymentAutomation | +-docGeneration | +-staticAnalysis | +-systemTest | +-performanceMeasurement | +-configurationManagement | +-utilities +-libraries-+ | …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.