dvcs相关内容
我有一个Hg储存库,其变更集0仅表示“添加.hgignore".从变更集1开始,我通过脚本从多个Subversion修订版中逐步添加了变更集.然后我和汞一起工作了一段时间. 现在,我决定需要更多的Svn修订版本,这些修订版本的历史记录要比开始的修订版本(Hg中的变更集1)早. 是否可以在0到1之间插入新的变更集?如果是,怎么办? 解决方案 您可以为此使用 Mercurial到M
..
我在最近的项目中使用Mercurial.在我要部署项目的Web服务器上,我有一个与生产设置稍有不同的配置文件.问题是当我pull和update时,我经常也必须同时merge和commit. 这是正确的工作流程吗?为了能够继续更新,我必须提交变更集,这似乎很奇怪,我认为合并会将它们集成到生产分支中,并在每次更新时继续这样做.这是我还不习惯的分布式版本控制范例吗? 解决方案 这是经过处理
..
假设我在本地存储库中有几次提交,并且在工作目录中有一些未提交的更改. 在hg pull,hg update之后,我从中央存储中获得了几个新的变更集,这些变更集在本地存储中创建了一个新的头. 现在假设,我不想合并这两个头并按下,在这种情况下,当我尝试合并时,我会收到一条消息,表示我在工作目录中有未提交的更改. 同样,假设我不想使用hg shelve来搁置未提交的更改并合并而不会出现问题,
..
在服务器站点上: hg提示显示执行hg push/commit的用户.数据取自.hgrc的[user]部分.我可以放任何我喜欢的东西.但是,如何了解在服务器上真正执行过 hg push 的人呢? 解决方案 您需要手动维护 pushlog 来跟踪此问题-Mercurial没有对此的内置支持.我在此处的推送日志上写了更多内容. 您还可以使用服务器 Kallithea ,该服务器默认情况下
..
使用Mercurial,我们可以使用来提交一个文件 hg commit file.rb 或1个文件夹 hg commit foldername 但是我们如何只推出1个文件或1个文件夹? 可以使用 推送整个项目 hg push ssh://peter@192.168.1.102//project/code/preliminary 但是似乎没有办法只推出1个文件或1个
..
在将一两个功能推向所有生产服务器之前,我可能要进行2周的开发工作,并且由于这是Ruby on Rails项目,因此可以修改许多文件. 因此,使用Mercurial作为源代码管理器,有什么好办法可以列出在当前版本和修订版4822之间由我修改(或添加)的所有文件名? (数字4822在执行第一个hg push之前,我在执行hg out,然后将要看到的变更集是4823,所以我将与4822进行比较)
..
BRIEF 如何在Mercurial中使用相同的标签来标记多个变更集?可能在同一分支上,也可能在不同分支上. 例如像是标记,说明是否执行了完整的质量检查测试. 我可以通过编辑文件来创建标签的多个实例,但是hg工具几乎总是忽略除第一个以外的所有内容. 详细信息 我正在寻找被称为“变更集"的“属性",这是我在其他CVS和DVCS中使用的概念,但是在Mercurial中似乎
..
是否可以通过SSH将Mercurial存储库归档到远程目录?例如,如果可以执行以下操作会很好: hg archive ssh://user@example.com/path/to/archive 但是,这似乎不起作用.而是在当前目录中创建一个名为ssh:的目录. 我制作了以下快速脚本,通过创建一个临时ZIP存档,通过SSH复制该存档以及解压缩目标目录来模仿所需的行为.但是,我想知道
..
我在ClearCase商店工作,尽管我们的代码审查流程阻止我使用它来跟踪我的日常更改,但CC在整合团队工作方面做得很好.在我的CC视图顶部创建hg存储库效果很好.我可以跟踪自己的更改,并轻松地在文件服务器上进行备份,为人们产生差异等. 这一切都很好,直到我转到新的CC视图并且不得不将自己的历史抛在脑后.我希望能够拉?我以前的历史记录,并且在新视图中显示的所有不同内容都显示为最新更改集.
..
我使用.hgignore文件已经很长时间了,它很好,最近又添加了一种新的文件类型来忽略.当运行“汞状态"时,我注意到了这一点: M .hgignore 因此Mercurial认为.hgignore是需要跟踪的文件(如果它是项目的根目录). 现在我已经阅读了各种文档,但是我的要点并未得到特别解决,因此这里有一些非常详细的问题,希望可以帮助我弄清楚(很高兴有人回答可以引用并解决这三点[
..
Mercurial如何处理备用数据流(在NTFS文件系统中)?如果无法解决问题,是否有DCVS可以解决? 编辑:当我通过 update 更改版本时,ADS会怎样?它丢失(被擦除)了吗?它也有版本吗?是否全部被忽略了? 解决方案 Mercurial不存储备用数据流.此外,它们可能会在更新时被覆盖. 我不认为我知道的任何开源VCS都能处理这种事情(即使权限通常也不会处理).
..
将文件移到另一个目录后,我无法再显示两个修订版之间的差异.例如: hg init touch a hg add a hg ci -m "Added a" echo "Bli" >> a hg ci -m "Bli" echo "Bla" >> a hg ci -m "Bla" echo "Blub" >> a hg ci -m "Blub" hg diff -r 0 -r 1 a
..
在某些情况下,我需要强制Mercurial用户在允许任何hg commit之前运行hg pull -u,即hg pull表示传入队列为空—而且我也希望该人正在使用分支的头部版本. 如何设置这样的限制? (我完全意识到这与DVCS设计核心的某些部分背道而驰) 解决方案 您可以要求开发人员进行安装 [hooks] pre-commit = hg pull -u 在其配置文
..
我刚开始使用Mercurial,我想我正在尝试做一些非常简单的事情,这应该很典型,但是我对为什么它如此复杂以及为什么它不起作用的方式感到困惑它应该(IMO). 我与朋友共享一些存储库,他进行了一些更改并签入了几个文件并将其推送.现在在svn中,我习惯于更新工作副本并获得他的更改,没有麻烦.但是显然,我必须合并.我不明白的是:应该不是很精明,如果我的朋友进行了最近的更改,而我还没有触摸过文件,
..
仅当合并可以自动完成且没有冲突时,rebaseif扩展才可以在拉动时自动执行重新设置基础的过程. (如果存在手动解决的冲突,它不会重新设置基础,使您可以手动合并两个分支.)这可以简化和线性化开发人员在代码的不同部分中工作的历史记录,尽管任何重新设计的确会抛出异常消除了有关开发人员进行工作时的世界状况的一些信息.我倾向于同意类似 this 和 rebaseif扩展程序的作者开始觉得这是个坏主意..)
..
举个简单的例子:我正在处理默认分支,在本地提交了一些变更集,然后从主存储库中提取了一些变更集.我已经在隔离的本地存储库中工作了几天,因此,在将结果推回主数据库之前,需要进行很多更改以进行合并. default ---o-o-o-o-o-o-o-o-o-o-o (pulled stuff) \ o----o------------o (my
..
假设我的Mercurial工作流程如下: stable (clone on server) default (branch) development (clone on server) default (branch) bugs (branch) developer1 (clone on local machine)
..
我经常与Mercurial一起工作,即在本地存储上游克隆,然后再针对我的实际工作环境在本地再次克隆: $ cd /clones $ hg clone ssh://external-repo.example.com/some/repo/path/foo $ cd ~/Development $ hg clone /clones/foo 这对我特别有用,因为我经常想在无法访问互联网的飞机等上
..
当我克隆出Mercurial存储库时,通常会显示文件被修改而没有被修改的情况.当我执行以下步骤时,可能会发生这种情况; $ hg clone $ cd project $ hg st .... large number of files with M at the start for modified $ hg diff .... no result. 我认为这是因为在此过程
..
几个月前,我将Subversion存储库转换为Mercurial,最后我在修订历史中留下了两个毫无意义的空白.我正在尝试找出是否可以弥补差距,但是我还没有能够获得能够精确完成我想要的工具的工具. 在项目初期,我已经对Subversion仓库进行了两次重组:首先将单个项目的根目录转换为主干/分支/标签布局,然后在第二个相关项目中使用其自己的主干添加第二个相关项目/分支机构/标签. 当我决
..