标签: dvcs

在大型组织中使用Mercurial

我已经将Mercurial用于我自己的个人项目一段时间了,我喜欢它.我的雇主正在考虑从CVS转换到SVN,但我想知道是否应该推动Mercurial(或其他一些DVCS).

Mercurial的一个问题是它似乎是围绕每个"项目"拥有一个存储库的想法而设计的.在此组织中,当前CVS存储库中有许多不同的可执行文件,DLL和其他组件,这些组件按层次结构组织.有许多通用的可重用组件,但也有一些客户特定的组件和客户特定的配置.当前的构建过程通常从CVS存储库中获取一些子树.

如果我们从CVS迁移到Mercurial,那么组织存储库/存储库的最佳方法是什么?我们应该有一个包含所有内容的巨大Mercurial存储库吗?如果不是,那么较小的存储库应该有多细粒度?我认为如果他们必须从许多不同的地方提取和推送更新,人们会觉得非常讨厌,但如果他们必须拉/推整个公司的代码库,他们也会觉得很烦人.

有人有这方面的经验或建议吗?


相关问题:

mercurial dvcs

64
推荐指数
3
解决办法
8408
查看次数

如何使用Mercurial"切换"

我如何svn switch在Mercurial中做什么?

那是改变我的工作目录切换到存储库中的另一个分支?

svn version-control mercurial dvcs

62
推荐指数
3
解决办法
4万
查看次数

如何在Mercurial中克隆存储库的子文件夹?

我有一个包含少数相关项目的Mercurial存储库.我想分支其中一个项目,以便在其他地方开展工作.

克隆只是存储库的一部分,并且这是实现这一目标的正确方法吗?

mercurial clone dvcs

61
推荐指数
4
解决办法
2万
查看次数

如何自动删除Mercurial工作树中的所有.orig文件?

在合并期间,mercurial会为任何未解析的文件留下.orig文件.但在手动解决问题并将文件标记为正确后,它不会删除.orig文件.可以通过某些命令自动删除吗?

我在Mac上工作,所以我可以使用类似的东西:

find . -iname '*.orig' -exec rm '{}' ';'
Run Code Online (Sandbox Code Playgroud)

和它或别的什么,但我宁愿使用类似hg清理的东西......

更新:

从一段时间以来,Purge扩展与Mercurial捆绑在一起并很好地解决了这个问题.

mercurial dvcs purge

55
推荐指数
3
解决办法
3万
查看次数

如何在Mercurial中退出合并,然后再与该分支重新合并?

我有两个分支,默认和branch1.我们团队中的一个人错误地将branch1合并.branch1中的内容尚未准备好与默认值合并(它包含构建和部署环境的主要返工).

我们做了'hg backout'的实验,退出合并(不确定这是正确的方法).然后从默认情况下删除branch1中的更改​​,这很好 - 但我们不能使用branch1重新合并.

我们该如何解决这个问题?

version-control mercurial dvcs

54
推荐指数
2
解决办法
2万
查看次数

如何使用git-svn保持svn:external最新?

将我的存储库视为SVN存储库,我得到:

svn co http://myrepo/foo/trunk foo
...
foo/
  bar/
  baz/ -> http://myrepo/baz/trunk
Run Code Online (Sandbox Code Playgroud)

把它作为Git回购处理,我得到:

git svn clone http://myrepo/foo --trunk=trunk --branches=branches --tags=tags
...
foo/
  bar/
Run Code Online (Sandbox Code Playgroud)

我可以将baz克隆到其他地方的本地机器并添加一个符号链接,但这只是一个黑客攻击.有没有办法git svn rebase在更新其他所有内容时自动提取这些更改,就像这样svn up做?

svn git version-control dvcs

52
推荐指数
3
解决办法
3万
查看次数

NuGet和分布式版本控制(DVCS)

我想知道是否可以使用nuget仅存储对版本控制中所需包的引用(仅限package.config并忽略packages文件夹).

有没有办法告诉nuget(重新)下载各种package.config文件中的所有引用的包?或类似的东西可以放入构建脚本.

更新:

似乎我不是唯一一个请求此功能的人:请参阅此工作项(感谢PHeiberg的提示)

更新2:

NuGet现在内置了这个功能.有关详细信息,请参阅使用NuGet而不将包提交到源代码管理.剩下的就是将packages目录添加到.gitignore或一些等效的VCS(/packages/如果你在存储库的根目录中使用它并使用git,它将会发挥作用).

git version-control dvcs nuget

52
推荐指数
3
解决办法
6152
查看次数

描述使用版本控制(VCS或DVCS)的工作流程

我想在使用vcs或dvcs时学习其他人的工作流程.

请描述您处理以下任务的策略:

  • 实现功能
  • 修复错误(在开发和部署应用程序期间)
  • 代码审查
  • 重构代码(后代码审查)
  • 合并补丁
  • 发布新版本的应用程序(桌面,网络,移动设备,您会以不同的方式对待它们吗?)

您可以随意组织您的答案,不按任务分组,但按照您认为相关的任何分组,但请通过VCS/DVCS进行组织(请不要混用它们).

谢谢.

svn git mercurial dvcs

51
推荐指数
2
解决办法
6346
查看次数

Mercurial:在一个仓库中合并分支之间的一个文件

当我在Hg repo中有两个分支时,如何只将一个文件与另一个分支合并,而没有将变更集中的所有其他文件合并?

是否可以仅合并某些文件,而不是整个变更集?

version-control mercurial dvcs branching-and-merging

49
推荐指数
2
解决办法
2万
查看次数

分布式版本控制系统和企业 - 一个很好的组合?

我可以看到为什么分布式源代码控制系统(像Mercurial这样的DVCS)对开源项目有意义.

但它们对企业有意义吗?(通过集中的源控制系统,如TFS)

DVCS的哪些特性使其更适合或更适合具有许多开发人员的企业?(通过集中式系统)

git version-control tfs mercurial dvcs

49
推荐指数
1
解决办法
7181
查看次数

标签 统计

dvcs ×10

mercurial ×8

version-control ×6

git ×4

svn ×3

branching-and-merging ×1

clone ×1

nuget ×1

purge ×1

tfs ×1