问题标签 [hgsubversion]
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 - 使用新的默认分支名称将 svn 存储库拉/克隆到 hg 中?
我正在分叉一个项目的 SVN 存储库,需要集成到我的 Mercurial 存储库中。为了简单起见,我有一个本地 hgsubversion 存储库和一个本地 hg 存储库。然而,mercurial 和 hgsubversion 存储库都default
用作它们的默认分支名称。我的目标是将原始代码和更新放在一个分支上,并将我的代码放在default
分支上
但是我还没有能够做到这一点。
default
毫不奇怪,当我在分支中真正需要它们时,hgsubversion 会将拉取的提交放入blizzard
分支中。从文档中,无法重命名提交来自的分支。
令人沮丧的是,我什至无法想出一种方法来在仅从 hgsubversion 存储库中提取的存储库中执行此操作,仅此而已。无论如何,所有提交都与那个分支相关联。
关于如何从 SVN 存储库中提取更改并将分支重命名为其他名称,有什么建议吗?
mercurial - 使用 Mercurial,我如何将更改从默认更改到命名分支?
我有一个中央 Mercurial 存储库,其中包含使用 hgsubversion 从 SVN 存储库克隆的历史记录。自从原始 hg 存储库被克隆以来,我已经提取了对 SVN 存储库的额外提交;这些当前位于默认分支中。
我也有一个命名的分支。我已将此分支(使用hg clone -b mybranch
)克隆到我的本地系统。现在我想获取仅在默认情况下存在的更改,并使它们在我的命名分支中可用。hg update mybranch
我看到的明显方法是在 repo 上做一个,然后hg merge default
提交。这似乎很危险——如果我在完成后忘记更新回默认值,那么来自 SVN 的所有未来拉动都会将更改拉入mybranch。
我还考虑过,也许我在克隆 repo 时不应该指定mybranch,而是克隆了整个 repo 并在本地更新到mybranch。因此,我可以将默认更改拉到我的本地克隆并在那里进行合并。
这里的正确答案是什么?在共享仓库上做,小心点?克隆所有内容并在本地管理分支?还是我缺少更简单的解决方案?
svn - 使用 HG Subversion 推送到 SVN 时的工作流程
这个问题与这个问题中提出的问题非常相似,但我在解决方法后遇到了一些问题。
问题:
基本上我有一个颠覆服务器和一个善变的本地客户端。扩展 hg-subversion 允许 mercurial 充当 subversion 客户端。这对我来说是理想的,因为我可以从我的 subversion 开发分支中创建无限的功能分支,并在我选择合适的时候合并它们。
由于 subversion 的限制,我无法将分支合并提交到 subversion 存储库。事实上,我不需要提交每个分支合并,我只希望将“默认”分支头提交给 SVN。
建议的解决方案:
用户 Harvey 推荐的解决方法是修改我的工作流程,以包含用于开发的 hgsubversion 克隆的仅 hg 克隆。
引用哈维的话:
诀窍是学习修改后的 hg<->hgsubversion<->svn 工作流程。一旦你“了解”了它的工作原理,你就不会有任何麻烦。您只需键入更多命令。我实际上已经开始编写脚本以使过程(这是重复的)更容易。典型流程: [in "hg" repo] 提交一堆更改;将它们推送到“hgsubversion”;[切换到“hgsubversion”] hg 更新(hgsubversion 需要这个);hg push 到“svn”(在本地推送和删除变更集后会自动重新拉取);[切换回“hg”] hg 从“hgsubversion”拉取;hg 剥离旧的重复 b/c “hg” 不是 hgsubversion 克隆,也不知道自动剥离旧的变更集。
我遇到的问题:
我被困在从 hgsubversion 运行 hg push 到 svn 存储库的地方。我仍然收到错误消息,“中止:抱歉,找不到合并修订的 svn 父级。”
诚然,我不是 100% 了解 hgsubversion 如何将修订推送到 svn。老实说,我希望看到我的本地副本处于推送到 svn 服务器的状态。
哈普?
mercurial - 将 mercurial 变更集移植到 hgsubversion 转换的存储库中
我一直在从颠覆迁移到反复无常的零碎,这造成了一些混乱。我有一个旧的 SVN 服务器(1.4 之前),所以这就是发生的事情。
- HgSubversion 不想从主干中提取完整的历史记录,所以我做了一个浅转换。
- 我的同事对 SVN 做了最后一次提交,我把它们拉进了 Hg。
- 我们搬到了 Hg 并开始向它推进
- 为了安全起见,我的一位同事对 SVN 做了更多的承诺。
- 我管理升级了 SVN 服务器并获得了新 SVN 的完整存储库。
- HgSubversion 成功提取了完整的历史记录——包括一些额外/重复的提交。
现在我想将浅 mercurial 存储库中的提交“移植”到完整的历史记录中,存储库在内容上是相关的,但在 mercurial 哈希中不相关。除了复制粘贴内容之外,迁移更改的最佳方法是什么?最终每个人都应该能够:
- 切换具有完整历史记录的 Hg 存储库并继续工作
- 作为服务用户,从 Hg 存储库中自动推送合适的压缩/重新设置变更集到 SVN。
我想要一个具有以下场景的具体示例。
- 步骤 2 中的最后一个 mercurial 哈希 - A
- 推动步骤 3 - B 后的当前 mercurial 哈希
- 从升级的 SVN 拉出后最后一次提交的哈希 - C
- 完整 SVN 历史拉取后第 2 步提交的哈希 - D
我不是很擅长 ASCII 艺术,随意加一个加分。
svn - 如何使用 hgsvn pull 跳过颠覆修订?
我正在尝试使用 Mercurial 作为 Subversion 的前端,并且对保持所有分支等完好无损非常感兴趣,这样我就可以看到常见的变化等。
然而,我所有的颠覆存储库都为 mercurial 创造了相当大的问题(不幸的是,1.8 和 TortoiseHg 2.0,ppa 似乎已经删除了旧版本......)。这些问题五花八门,令人烦恼太多,无法列出(或弄清楚)。
如何跳过hg clone
或hg pull
抱怨的 svn 修订?还是我只需要递归地获得越来越少的修订,直到我获得成功的克隆?
另外,我尝试通过从 svn 导出补丁并将其应用到我的工作目录来解决此问题;发生完全相同的问题(但至少现在我有一些东西要看......)
我遇到的问题(但不是专门针对问题的主题......)
现有文件覆盖尝试:
实现hg init
,设置 svn url 和hg pull
一般Hunk问题:
达到hg clone
常见错误文本:
我在 ubuntu 上,真的很想有一个 ppa 来为我管理它,并且对这种互操作性感到沮丧。我在想我可能得试试 hg+git+svn 双桥之类的
svn - 允许 hgsubversion SVN 克隆退回所需的步骤
我正在一个主要使用 SVN 的团队工作,而我更喜欢尽可能使用 Mercurial。我使用 hgsubversion 设置了 SVN 存储库的 hg 克隆,并且几个基本的 pull/commits/push 似乎运行良好。
现在经过 2 周的本地开发(在此期间我已合并来自外部 hg 存储库的更改,并多次合并来自 SVN 存储库的更改),我尝试推送到 SVN 存储库,但失败了信息:
中止:抱歉,找不到合并修订的 svn 父级。
我发现其他用户遇到了同样的问题,以及如何避免这个问题的方法,但我还没有遇到任何似乎可以解决压缩多个并行提交以清理现有 hgsubversion 存储库的问题。
我可以在不丢失自己的提交的情况下纠正问题的最佳方法是什么?(有分步说明?)
svn - 当其他团队成员刚刚在 SVN 上工作时,在本地使用 Hg 并推送到 SVN 存储库——这可能吗?
我在 SO 上发现了一些看起来非常相似的问题,而且答案似乎很好;但由于某种原因,我似乎仍然无法弄清楚如何让它发挥作用。我担心的是,这可能根本不可能。
情况如下:我在一个使用中央 SVN 存储库作为我们的版本控制系统的小团队中工作。我的结对程序员和我对没有本地提交选项感到沮丧(并且不想经历使用 SVN 分支的麻烦),所以我们研究了使用 Git 或 Mercurial 作为 SVN 客户端并发现 hgsubversion似乎有能力做我们想做的事:在 Hg 存储库上本地工作,在本地提交,并且只有在我们准备好时才推送到 SVN。
到了 push 的时候,我们收到了 Hg 的这个错误信息:
我想知道问题是否在于我们必须从 SVN 中提取更改以获取队友的更新,然后与我们的本地更改合并,现在 Hg 无法弄清楚如何让 SVN 满意?这似乎是我从我看过的其他 SO 问题和答案中得到的信息;但是,在这些情况下(做hg rebase --svn
)给出的建议似乎对我们也不起作用;给出了相同的“找不到 svn 父级”消息。
这甚至可能吗?或者当团队中的其他开发人员直接对 SVN 进行更改时,是否比它的价值更麻烦?
svn - 一种将 SVN 增量到具有部分历史记录的 Mercurial 工作流的方法
我们在 SVN 存储库中维护更大的代码库。对于发布,我们只想将发布标签/分支推送到 Mercurial 存储库中,不包括主干中的历史记录。
我对 DVCS 的经验很少,所以我尝试的方法可能是错误的。如果您能指出缺陷或指出替代方案,我将非常高兴。
这是我到目前为止所尝试的:
hg convert extension:转换了完整的存储库,使用
hg convert <base project URL w/o "trunk">
它应该根据转换扩展文档提取完整的历史记录,包括分支和标签。但hg tags
只返回tip和default,hg branches
只返回default。此外,它很慢(是的,我读到过svnsync
)并且它包含完整的历史记录。我读到它可以用来逐步拉动,但我认为这对我不起作用。hg convert extension:转换标签并从另一个标签中提取可以工作,
-f
但我并不真正相信它。它是否正确处理删除?hgsubversion:
hg clone
完整存储库的不包括标签和分支hgsubversion:
hg clone
在一个标签上工作,但是从另一个标签中提取是不可能的(中止:无法在存储库中的不同路径上工作)
提前感谢您的指点。“Noob,先去读这个,然后再回来”也很受欢迎。
apache-flex - ActionScript 3.0 版本控制库?
是否有任何 Action Script 3 库允许我的 AIR 应用程序像版本控制(svn 或 cvs 或类似的东西)客户端一样运行?
我只想使用下载功能。我的应用程序依赖于一些文件夹和文件结构,这些文件夹和文件结构可能会通过更新而改变,如果我可以简单地在线管理一个 subversion 存储库并且应用程序会自动将其文件结构同步到这个存储库,那就太好了。
svn - 如何使用 hgsubversion 仅将我的第一个 X 本地提交推送到 SVN?
我目前在一个项目上使用 hgsubversion 来享受本地提交的好处,而该项目的官方 SCM 是 Subversion。为了将本地提交推送到 SVN 存储库,到目前为止,我一直在使用hg rebase --svn
后跟一个简单的成功结果。hg push
我遇到的一个小问题是,如果我对想要推动的东西有某种修复,而不推动其他一切,我认为我可以提交该修复然后推动它。但这给了我以下信息:
abort:未提交的未提交更改
好的。所以我搁置了我未提交的更改。但由于某种原因,我无法搁置一项特定更改(添加了一个新文件)。我想,到底是什么,我可以这样做,因为它不会真正造成任何伤害。
所以这就是我所做的。但是后来我看到hg push
可以使用一个-r
标志,根据帮助文档,它具有以下效果:
如果使用 -r/--rev,则指定的修订及其所有祖先将被推送到远程存储库。
伟大的!所以这听起来正是我想要的。现在说我最近的两个本地提交的修订号为 94 和 95。我想我可以做到hg push -r 94
,并且只将第一个提交推送到 SVN,而第二个仍然是纯本地提交。但由于某种原因,这推动了 94 和 95。
我做错了什么?