问题标签 [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 回答
132 浏览

version-control - 在另一个中使用一个 mercurial 项目的最佳实践

在另一个项目中使用一个 mercurial 项目的最佳实践是什么?我有一个正在开发的 django 应用程序,但我也在使用 mercurial 对使用该应用程序的网站进行版本控制。我看过mercurial subrepositories,但显然这被认为是“不得已而为之的功能”。有没有一种很好的方法来做我想做的事情,或者当我想更新到我的应用程序的新版本时,我只需要将代码从我的应用程序复制到我的网站存储库中?

0 投票
1 回答
44 浏览

deployment - 将 Subrepos 部署到 Appharbor

我正在尝试在 appharbor 上为托管在 bitbucket 上的代码设置部署。我有许多使用我拥有的库项目的项目,所以我使用 subrepos 来保持我的代码可管理。这会阻止 appharbor 部署,因为下载中不包含子存储库。

这篇文章让我明白了为什么会出现这个问题:

AppHarbor、BitBucket 和 SubRepo 变通

我正在努力解决的是如何实施他们所说的解决方法。这个 cron 作业/zip 文件是我必须自己托管的,还是仅与 bitbucket 和 appharbor 的构建后事件有关?感谢任何可以为我指明正确方向的帮助。

0 投票
1 回答
877 浏览

mercurial - 如何使用 Mercurial 将功能分支与子存储库合并为默认值

我有许多带有子存储库的项目:

我现在处理了一个功能分支(feature1),它有一些修订,我现在想将其合并回默认分支。自创建feature1分支以来,默认分支没有任何更改。

我尝试将分支合并为默认值,但最终在子存储库中发生了一些奇怪的事情。

我已按照另一篇文章中的说明进行操作,并得到以下结果:

奇怪的是,即使模块子存储库中更改了许多文件,合并仅表明更新了 1 个文件。我假设这恰好是.hgsubstate

当我显式更新子存储库时,我得到以下信息:

因此,在进行hg update以将所有更改带入工作目录之后,我看到了需要提交的模块子存储库中的更改。但是,.hgsubstate始终保持修改状态。我试过hg remove。我试过hg forget。但无论我做什么,当我做hg status时它仍然被标记。

所以我的问题是:

  1. 我合并分支的过程是否正确(考虑到存在子存储库)?
  2. 是否有必要在子存储库中进行hg update以使主存储库识别更改?
  3. 为什么.hgsubstate行为不端?
0 投票
0 回答
32 浏览

mercurial-subrepos - 克隆父项后,mercurial 子项目未显示为 java 项目

我有一个善变的项目,如下所示:

父:项目 1,它是一个包含 java 文件等的文件夹。

项目 2、项目 3 和项目 4 是子项目,这意味着它们再次驻留在项目 1 文件夹下,并带有自己的 java 文件和其他相关文件。

当我将父项目(项目 1)克隆到 Eclipse 中时,我确实将子项目视为我结帐的一部分。但是,当我对子项目中的 java 文件进行任何更改时,它们的行为似乎不像普通的 java 文件。Eclipse 中没有显示错误,而且它们似乎不是自动构建的。

我想知道这种行为是否正常,或者我唯一的选择是克隆单个子项目以将它们视为 java 项目。意思是克隆项目 2,然后是项目 3,依此类推。

任何帮助表示赞赏。

谢谢。

0 投票
2 回答
388 浏览

mercurial - hg clone fails after adding subrepos

I have a problem with my mercurial main repo. My colleague created a bunch of subrepositories for dependancies, and since then, I can't update my local repo. I decided to try a checkout in an empty directory but I have the same error :

"Le fichier spÚcifiÚ est introuvable" means "The specified file cannot be found", but the message is in french so it must come from Windows, because if it came from hg it would be in english

Here is what I have when using the --debug option

Does anyone has an idea of what going on ?

0 投票
1 回答
264 浏览

git - 如何使用连接到最新版本标签的 mercurial 或 git 子存储库?

我正在寻找一种解决方案,它允许我使用不是 HEAD 而是特定RELEASE标签的子存储库,或者如果可能的话,使用最新的标签。

这可能吗,我应该如何实现?有没有人实现这个?

0 投票
1 回答
68 浏览

mercurial - 如何为 mercurial 子存​​储库指定默认推送?

当您使用添加 mercurial 子存​​储库时,.hgsub您可以使用 HTTPS 或 SSH 指定它们,但这是一个大问题:

  • 如果您指定 HTTPS,您将无法推送,因为它需要您登录。
  • 如果您指定 SSH,您将能够推送,但其他人甚至无法签出您的存储库。

有没有办法解决这个问题?

0 投票
0 回答
177 浏览

mercurial - Mercurial - 使用 subrepos 推送时的竞争条件

有一个相当基本的子回购结构,如下所示:


父/subrepo1
父/subrepo2

当多个用户同时推送更改时,往往会出现竞争条件。简单的例子:

用户 1 和 2 开始推送。
用户 1 跳过parent/subrepo1,没有变化。
用户 2 推送到parent/subrepo1, 进行更改。
用户 1 推送到parent/subrepo2,并进行更改。
用户 2 尝试推送到parent/subrepo2,但不能,因为它会创建多个头。
用户 1 完成推送parent

这样做的结果是用户 1 成功推送所有内容,但用户 2 部分推送然后失败。这留下了一个在parent/subrepo1中没有相应提交的头部parent,这将导致下一个推送的人出现问题,parent/subrepo1除非用户 2 发现他们的错误、拉parent取、合并、提交,然后尝试推送(但不能保证另一个用户不会再尝试同时推动!)。

我的问题:Mercurial 中是否有办法强制用户在 Mercurial 存储库与其他子存储库进行推送操作时等待(以有效地实现互斥锁)或者有没有办法撤消对目标更改的子存储库的失败推送用户推送失败。

0 投票
2 回答
544 浏览

mercurial - Mercurial subrepos,我做错了什么?

我已经在我的机器上检查了一个项目,我已经添加了 subrepo。在该结帐时工作正常,但是当我在其他位置克隆项目时,它不会克隆子存储库。.hgsub被推到default

目录结构是

并且.hgsub

现在,当我这样做时,hg clone ssh://hg@bitbucket.org/username/projA它不会尝试获取子存储库。我错过了什么?

0 投票
1 回答
54 浏览

mercurial - 可以使用 --noupdate 克隆 Mecurial 存储库及其子存储库吗?

我有一个包含许多子存储库的存储库,我希望在没有工作文件的情况下克隆所有这些存储库。每当我尝试使用 --noupdate 进行克隆时,关闭的存储库中都没有可用的子存储库。这是因为克隆的存储库中缺少 .hgsub 文件吗?