问题标签 [mercurial-subrepos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
93 浏览

mercurial - 如何设置一个仅包含来自不同子存储库项目的一些包的 mercurial 存储库?

我有一个名为http://myrepo的远程存储库

我还有 3 个项目,其中 3 个不同的包(每个包 1 个)存储在D:/Projects/Project[ABC]/src/pack[ABC].

我想创建一个本地存储库,D:/Mercurial其中将包pack[ABC]作为子存储库引用,这些子存储库将被推送到我的远程存储库。

最后,我想将我的包存储在我的远程仓库中,以便您阅读 http://myrepo/pack[ABC],它们应该反映在D:/Projects/Project[ABC]/src/pack[ABC].

我无法管理你将我的子存储库推送到我遥远的那个。如何设置这样的东西?

0 投票
1 回答
263 浏览

mercurial - 有没有办法让“hg extdiff”包含子存储库?

我想将 Mercurial 配置为能够执行“hg diff -S”之类的操作,但需要使用外部 diff 工具(特别是 kdiff3)。这样做的合乎逻辑的方法是

但是,这不起作用,因为 extdiff 扩展不支持许多其他 mercurial 命令用来包含子存储库的“-S”选项。有解决方法吗?

0 投票
2 回答
778 浏览

version-control - 我可以在 Mercurial 中嵌套子存储库吗?

我在 Mercurial 中使用 subrepos 设置项目时遇到问题。

目标:

我想像这样设置结构:

所以有三个存储库:Build、A 和 B。B 嵌套在 A 中,A 嵌套在根构建存储库中。build repo 将用于跟踪依赖项,subrepo A 将用于跟踪主要源文件,subrepo B(和其他)将用于跟踪模块/插件开发。

问题/问题

通过简单地将 Subrepo_A 路径和源添加到 .hgsub 文件并将其提交到构建仓库,我可以轻松设置初始构建仓库和嵌套的 Subrepo_A。但是,当我将 subrepo_B 路径/源添加到构建 repo 的 .hgsub 后,然后尝试提交时,我收到错误消息:

中止:路径“Subrepo_A/Modules/Sebrepo_B”在嵌套仓库“Subrepo_A”内

Mercurial 似乎不喜欢在已经嵌套的 repo 中的嵌套 repo。这是真的,还是我错过了什么?关于如何管理构建/依赖关系的任何更好的想法?

0 投票
1 回答
278 浏览

mercurial - 在中央服务器上保持子存储库同步

我一直认为我了解 subrepos 以及如何使它们为我的团队工作流程工作,但显然我不了解,因为每次我尝试实现一些基本工作流程时,最终都无法正常工作。

我已经阅读了几乎所有关于 subrepos 在线阅读的内容,并且我遵循人们发布的所有琐碎示例,但是当我尝试做一些更复杂的事情时。或者,也许我确实非常了解它,而我正在尝试做的事情却不是很好。

让我们把基础知识排除在外。可以说我有一个远程“祝福”的回购集合。

所以我做了一个/ProjAtoC:\ProjA和 clone /LibAtoC:\ProjA\LibA/LibBto的克隆C:\ProjA\LibB。我创建我的.hgsub文件

我承诺一切。然后我可以推动ProjA,一切都很好。

所以现在我团队中的某个人可以克隆/PrjoA到它,C:\dev\ProjA它也会作为 subrepos 关闭。这个人可以像我一样轻松地从“祝福回购”中推/拉。到目前为止这么好。LibALibB

现在,我说:好的,ProjA 团队,停止推送到有福的 repo,这是我在审查了你的工作后要做的。从现在开始,我希望大家将您的更改推送到位于以下位置的 ProjA 开发和 ProjA QA 远程存储库:

这是我们停下来的地方。试图推到http://acme.com/Dev/ProjA只会推/ProjA,而/ProjA/LibA被推/ProjA/LibB回他们在祝福回购中的原始位置,而不是http://acme.com/Dev/ProjA.

现在,我可以将我的.hgsub文件设置为LibA = ../LibA. 这最初会起作用,但如果我ProjA要从祝福的回购中克隆,它无法获得LibAor LibB,我相信因为它期望找到本地回购LibA并且LibB作为ProjA我正在克隆的回购的兄弟姐妹。我的意思是,如果我克隆到http://acme.com/BlessedRepos/ProjAC:\Test\ProjA会失败,因为它希望在C:\Test\LibA.

我也可以将我的 hgsub 设置为LibA = LibA. 但是,当您尝试推送到受祝福的 repo 时,这样做会失败,因为LibA它不是嵌套ProjA在受祝福的空间中。我可以创建它们,但是我从不推回http://acme.com/BlessedRepos/LibA,只推到http://acme.com/BlessedRepos/ProjA/LibA,然后似乎已经破坏了 subrepo 的目的。

我很确定我的第一种方法可以工作,如果我也有一些我会运行的脚本将通过并将.hgsub文件中的所有值从“祝福”远程位置更改为“开发”和“质量检查”位置,但这似乎不太理想。

所以。如果有人真的很喜欢这些东西,你能否向我解释我哪里出错了,或者我如何使用 subrepos 实现我的原始工作流程,或者只是确认我正在追求的东西不是非常适合子回购。如果有助于理解情况,我们可能有 15-20 个“产品/解决方案”和 50 个“共享”项目。15-20 个产品中的任何一个都可以在其解决方案中使用 50 个共享项目中的 N 个。

0 投票
1 回答
839 浏览

mercurial-subrepos - Mercurial:将现有文件夹转换为子存储库

我有一个看起来像这样的 Mercurial 存储库:

...其中 SWCommon 是其他两个项目通用的库。现在,我想将 SWCommon 转换为 SWClients 的子存储库,因此我按照此处此处的说明进行操作。但是,与第一个链接中的示例相反,我希望我的子存储库与开头的文件夹具有相同的名称。详细地说,这就是我所做的:

创建文件map.txt如下

创建一个文件 .hgsub 如下

然后运行

然后

...确实是这样,但为什么这是中止的理由?另一个奇怪的事情是,如果我不执行上面的最后一个“mv”并且我执行了一个“hg status”,那么我最终会在 SWCommon 中得到很多“丢失”的文件,正如你所期望的那样。链接中的示例从来没有做到这一点,并且基本上停止在上面的 hg 更新上?你如何让它在实践中发挥作用?

0 投票
1 回答
134 浏览

mercurial - Mercurial 通用/本地文件

自从几年以来,我就是一个 hg 用户,对此我很高兴!

我必须像以前一样开始一个项目。这个想法是开发一个具有批处理模式和 GUI 的软件。

因此批处理和 GUI 模式都有共同的来源,但每个来源也将包含特定的来源。而且,基本上,我希望我的同事能够克隆 GUI 版本,对其进行提交更改。然后,我希望能够将他们对公共文件的更改与批处理版本合并。

我该如何处理?

由于我一直在阅读有关此主题的内容,因此我非常感谢您的帮助!

谢谢你。比努阿

0 投票
1 回答
3153 浏览

mercurial - Mercurial (hg) 更新错误,中止:没有这样的文件或目录

我无法在我的机器上更新 mercurial repos。进行更新时出现以下错误hg up --traceback

我尝试做rm -rf myrepo然后做,hg clone ssh://hg@bitbucket.org/myrepo但是该命令正确下载了 repo,但是当 hg 尝试将 repo 更新为分支默认值时,我得到了同样的错误,更具体地说,我得到了这个:

使用引用,我得到一个类似于我之前得到的错误。我什至尝试在我的系统上重新安装 mercurial,但没有任何运气。

你能指出是什么问题吗。回购头似乎没问题,(我可以cloneupdate其他机器上),我可以在我的系统上cloneupdate其他 hg 回购。这与子回购有什么关系吗?引用暗示了这一点。

我的系统详细信息:32 位 Ubuntu 11.10,运行 mercurial 版本 1.9.1。

0 投票
1 回答
5236 浏览

mercurial - 如何修复由于指向子存储库中缺少修订而导致更新失败的 Mercurial 存储库?

我们的 mercurial 存储库在尝试更新到具有不再存在的子存储库/修订对的旧分支时卡住了。

有什么方法可以告诉 Mercurial 更新到修订版或分支,但不尝试更新子存储库?

0 投票
2 回答
325 浏览

mercurial - 克隆过程中不创建 Mercurial Subrepos

我创建了一个存储库,其中包含一个名为“subrepo”的子文件夹。然后我创建了一个包含以下内容的 .hgsub 文件:

当我转到 BitBucket 并查看源代码时,我会看到一个“子存储库”文件夹,单击该文件夹会将我带到链接的子存储库。我还看到了 .hgsub 文件以及我创建的根级 index.php 文件。

我的问题是,克隆或下载主存储库的源代码只会让我得到 index.php 文件,而不是 .hgsub 文件或包含链接子存储库内容的子文件夹。我的理解是我应该得到完整的内容。我可能做错了什么?

0 投票
2 回答
2158 浏览

mercurial - 水银预存库

我有一个关于 suprepositories 的问题。我们的项目是这样设置的:

dependencyA是一个子存储库。它是这样创建的:

  1. cd项目A
  2. mkdir 依赖项A
  3. cd 依赖A
  4. 汞初始化
  5. hg pull ssh://hg@somerandomiphere/dependencyA
  6. 光盘..
  7. 回声依赖A = ssh://hg@somerandomiphere/dependencyA > .hgsub
  8. 汞添加
  9. 汞提交
  10. 汞推

如果我对 suprepository 进行更改,则从主项目提交并推送它们。由于递归,它们都将被推送到服务器。现在我的同事想从服务器中提取更改。但是由于主项目中没有任何改变,所以它不会工作。但是,如果我在主项目中更改某些内容并将其推送到服务器。他hg pull将获得最新的变更集,如果他这样做hg update了,它也会更新子存储库。这是预期的行为。

现在我的问题是,如果有一种方法可以提取更改,但适用于子存储库而不对其进行新的克隆,或者最好的方法是什么。