问题标签 [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.
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]
.
我无法管理你将我的子存储库推送到我遥远的那个。如何设置这样的东西?
mercurial - 有没有办法让“hg extdiff”包含子存储库?
我想将 Mercurial 配置为能够执行“hg diff -S”之类的操作,但需要使用外部 diff 工具(特别是 kdiff3)。这样做的合乎逻辑的方法是
但是,这不起作用,因为 extdiff 扩展不支持许多其他 mercurial 命令用来包含子存储库的“-S”选项。有解决方法吗?
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。这是真的,还是我错过了什么?关于如何管理构建/依赖关系的任何更好的想法?
mercurial - 在中央服务器上保持子存储库同步
我一直认为我了解 subrepos 以及如何使它们为我的团队工作流程工作,但显然我不了解,因为每次我尝试实现一些基本工作流程时,最终都无法正常工作。
我已经阅读了几乎所有关于 subrepos 在线阅读的内容,并且我遵循人们发布的所有琐碎示例,但是当我尝试做一些更复杂的事情时。或者,也许我确实非常了解它,而我正在尝试做的事情却不是很好。
让我们把基础知识排除在外。可以说我有一个远程“祝福”的回购集合。
所以我做了一个/ProjA
toC:\ProjA
和 clone /LibA
toC:\ProjA\LibA
和/LibB
to的克隆C:\ProjA\LibB
。我创建我的.hgsub
文件
我承诺一切。然后我可以推动ProjA
,一切都很好。
所以现在我团队中的某个人可以克隆/PrjoA
到它,C:\dev\ProjA
它也会作为 subrepos 关闭。这个人可以像我一样轻松地从“祝福回购”中推/拉。到目前为止这么好。LibA
LibB
现在,我说:好的,ProjA 团队,停止推送到有福的 repo,这是我在审查了你的工作后要做的。从现在开始,我希望大家将您的更改推送到位于以下位置的 ProjA 开发和 ProjA QA 远程存储库:
这是我们停下来的地方。试图推到http://acme.com/Dev/ProjA
只会推/ProjA
,而/ProjA/LibA
被推/ProjA/LibB
回他们在祝福回购中的原始位置,而不是http://acme.com/Dev/ProjA
.
现在,我可以将我的.hgsub
文件设置为LibA = ../LibA
. 这最初会起作用,但如果我ProjA
要从祝福的回购中克隆,它无法获得LibA
or LibB
,我相信因为它期望找到本地回购LibA
并且LibB
作为ProjA
我正在克隆的回购的兄弟姐妹。我的意思是,如果我克隆到http://acme.com/BlessedRepos/ProjA
它C:\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 个。
mercurial-subrepos - Mercurial:将现有文件夹转换为子存储库
我有一个看起来像这样的 Mercurial 存储库:
...其中 SWCommon 是其他两个项目通用的库。现在,我想将 SWCommon 转换为 SWClients 的子存储库,因此我按照此处和此处的说明进行操作。但是,与第一个链接中的示例相反,我希望我的子存储库与开头的文件夹具有相同的名称。详细地说,这就是我所做的:
创建文件map.txt如下
创建一个文件 .hgsub 如下
然后运行
然后
...确实是这样,但为什么这是中止的理由?另一个奇怪的事情是,如果我不执行上面的最后一个“mv”并且我执行了一个“hg status”,那么我最终会在 SWCommon 中得到很多“丢失”的文件,正如你所期望的那样。链接中的示例从来没有做到这一点,并且基本上停止在上面的 hg 更新上?你如何让它在实践中发挥作用?
mercurial - Mercurial 通用/本地文件
自从几年以来,我就是一个 hg 用户,对此我很高兴!
我必须像以前一样开始一个项目。这个想法是开发一个具有批处理模式和 GUI 的软件。
因此批处理和 GUI 模式都有共同的来源,但每个来源也将包含特定的来源。而且,基本上,我希望我的同事能够克隆 GUI 版本,对其进行提交更改。然后,我希望能够将他们对公共文件的更改与批处理版本合并。
我该如何处理?
由于我一直在阅读有关此主题的内容,因此我非常感谢您的帮助!
谢谢你。比努阿
mercurial - Mercurial (hg) 更新错误,中止:没有这样的文件或目录
我无法在我的机器上更新 mercurial repos。进行更新时出现以下错误hg up --traceback
:
我尝试做rm -rf myrepo
然后做,hg clone ssh://hg@bitbucket.org/myrepo
但是该命令正确下载了 repo,但是当 hg 尝试将 repo 更新为分支默认值时,我得到了同样的错误,更具体地说,我得到了这个:
使用引用,我得到一个类似于我之前得到的错误。我什至尝试在我的系统上重新安装 mercurial,但没有任何运气。
你能指出是什么问题吗。回购头似乎没问题,(我可以clone
在update
其他机器上),我可以在我的系统上clone
或update
其他 hg 回购。这与子回购有什么关系吗?引用暗示了这一点。
我的系统详细信息:32 位 Ubuntu 11.10,运行 mercurial 版本 1.9.1。
mercurial - 如何修复由于指向子存储库中缺少修订而导致更新失败的 Mercurial 存储库?
我们的 mercurial 存储库在尝试更新到具有不再存在的子存储库/修订对的旧分支时卡住了。
有什么方法可以告诉 Mercurial 更新到修订版或分支,但不尝试更新子存储库?
mercurial - 克隆过程中不创建 Mercurial Subrepos
我创建了一个存储库,其中包含一个名为“subrepo”的子文件夹。然后我创建了一个包含以下内容的 .hgsub 文件:
当我转到 BitBucket 并查看源代码时,我会看到一个“子存储库”文件夹,单击该文件夹会将我带到链接的子存储库。我还看到了 .hgsub 文件以及我创建的根级 index.php 文件。
我的问题是,克隆或下载主存储库的源代码只会让我得到 index.php 文件,而不是 .hgsub 文件或包含链接子存储库内容的子文件夹。我的理解是我应该得到完整的内容。我可能做错了什么?
mercurial - 水银预存库
我有一个关于 suprepositories 的问题。我们的项目是这样设置的:
dependencyA
是一个子存储库。它是这样创建的:
- cd项目A
- mkdir 依赖项A
- cd 依赖A
- 汞初始化
- hg pull ssh://hg@somerandomiphere/dependencyA
- 光盘..
- 回声依赖A = ssh://hg@somerandomiphere/dependencyA > .hgsub
- 汞添加
- 汞提交
- 汞推
如果我对 suprepository 进行更改,则从主项目提交并推送它们。由于递归,它们都将被推送到服务器。现在我的同事想从服务器中提取更改。但是由于主项目中没有任何改变,所以它不会工作。但是,如果我在主项目中更改某些内容并将其推送到服务器。他hg pull
将获得最新的变更集,如果他这样做hg update
了,它也会更新子存储库。这是预期的行为。
现在我的问题是,如果有一种方法可以提取更改,但仅适用于子存储库而不对其进行新的克隆,或者最好的方法是什么。