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

mercurial - subrepos - Mercurial 的子存储库是否可用于在存储库中推送多个项目?

我有3个项目:

我想将这 3 个项目的 3 个包存储在同一个远程存储库中。

我试图在我的远程存储库的克隆中克隆 3 个包:

然后我在 .hgsub 文件中将这 3 个包声明为子存储库:

我调用了hg addandhg commit命令。

但是当我尝试将文件推送到我的远程存储库时,.hgsub 和 .hgsubstate 文件被推送到我的远程存储库,但是我的包发生了以下情况:

看来我误解了子存储库的工作方式......

子存储库的使用是否符合我的用例?我想做的事怎么可能完成?

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 回答
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 回答
878 浏览

mercurial - 使 Mercurial 存储库中的 .hgignore 可用于所有子存储库?

我有一个带有多个子存储库的 Mercurial 存储库。是否有可能只在主存储库和子存储库中定义一个通用的 .hgignore 文件(例如忽略对象文件)?

手册中没有足够的信息。指定一个 .hgignore 文件

我的主目录中的 .hgrc 也不起作用。

有任何想法吗?

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了,它也会更新子存储库。这是预期的行为。

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

0 投票
1 回答
313 浏览

windows - 如何在 Windows 下使用 git subrepo 制作 MercurialEclipse 克隆 repo?

我将我的 svn 子目录与 svn:externals 通过其 svn 网关通向 github 转换为 bitbucket 并上传到 bitbucket(我想转移到 DVCS,bitbucket 允许个人 repos,所以我可以将我的服务器从服务 svn 中解放出来,并将其放在网上) . 我通过 sshing 连接到我的服务器。

我还在我的 nb 上安装了 MercurialEclipse,并想克隆我的项目(使用 Windows 7)。它以错误消息结束

(它显然使用了本地化的 hg.exe,消息的意思是“找不到给定的文件”)

如何让它克隆 git 子存储库?或者推荐其他可以的eclipse插件。

如果一切都失败了,我可能会使用旧的“svn 网关策略”,但如果可能的话,我想阻止它。

0 投票
1 回答
1250 浏览

svn - 调整 svn:externals 使用以迁移到 Mercurial

我们在公司环境中有一个 svn 存储库结构,如下所示:

其中 public_code 是一个外部存储库,它是开源的,来自公司外部的人具有读写访问权限。shared_lib1 和 shared_lib2 也是与来自其他公司的不同程序员组共享的外部存储库。我是维护者,基本上可以做任何技术上最好的事情,外部用户必须适应。

我现在想知道从这种结构转移到 mercurial 存储库的最佳方法是什么。

1)我可以使用 mercurial 子存​​储库密切模拟旧设置。或者
2) 我可以为我们创建一个大仓库,并为外部合作伙伴创建三个新的较小的独立存储库(基本上是分叉项目),并在大仓库和独立仓库之间交换变更集。

使用 svn 中的设置 1),分支是一场噩梦,因为根据策略,当我分支 root 时,我总是必须分支 public_code、shared_lib1 和 shared_lib2。为此,我必须四次调用 svn branch 并手动修改 svn:externals 属性三次。我可以轻松地在 mercurial 中分支主存储库并自动为所有子存储库获取新分支吗?

当我进行设置 2) 时,repos 之间的文件系统会有所不同。例如,我将在 repo“root”中有 public_code/Makefile,但该文件将只是 repo“public_code”中的“Makefile”。Mercurial 是否仍然能够在存储库之间同步更改?工作流程会是什么样子?

0 投票
1 回答
362 浏览

mercurial - 带有 bitbucket 子存储库的 Mercurial 存储库 - 如何防止推送

我正在在 Mercurial 存储库下设置一些第三方子存储库。一个子存储库是托管在 Bitbucket 上的另一个 Mercurial 存储库。

由于它是一个公共回购,我不是它的贡献者,我不想推回它。但是,当我克隆父存储库时,我仍然希望自动克隆存储库。一方面,我想访问子存储库的集体历史,这样我就可以看到随着时间的推移可能发生的变化或未发生的变化。

因此,我在父 repo 的.hgsub文件中创建了一个条目,如下所示:

并使用克隆回购

我承诺记录 subrepo 状态。然后我将我的父仓库推送回它的服务器(Kiln),却发现它试图将我的子仓库推送回 Bitbucket 服务器。但是,推送到 Bitbucket 子存储库似乎没有做任何事情。

当我使用这样的条目以相同的方式(托管在 Git 集线器上)创建 Git 子存储库时,我没有观察到这种.hgsub行为

不设置子存储库并让 Mercurial 将文件存储为文件对我来说最好吗?或者(最好)是否有一些设置可以用来告诉 Mercurial 永远不要将这个子存储库的内容实际推送回它的源位置?

我宁愿能够将其配置为仅手动推送这些子存储库,所以如果有人能对此有所了解,我将不胜感激。

我在另一个堆栈溢出答案中找到了一个引用commitsubrepos = no,据我所知,这是关于提交,而不是子存储库的推送。然后我在 mercurial 网站上查找了这个,希望可能有一些关于推送子存储库的设置的参考,但是......没有

0 投票
2 回答
2203 浏览

mercurial - 如何使用 Mercurial 存储我的二进制资产?

我正在开始一个游戏开发项目,我和我的团队将使用 Mercurial 进行版本控制,我想知道有什么更合适的方式来存储游戏的二进制资产。基本上,我有两个选择:

  1. Mercurial 2.1 有largefiles 扩展名,但我不太了解它。似乎它可以解决“存储库膨胀”问题,但不能解决二进制合并冲突问题。

  2. 将二进制资产作为子存储库保存在 SVN 结帐中。这样我们可以锁定文件进行编辑并避免合并冲突,但我真的很想避免使用 2 个版本控制系统(尤其是我不太喜欢的一个)。

我没有想到的任何见解/建议或其他选择?