问题标签 [tortoisehg]

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 投票
4 回答
3856 浏览

mercurial - 如何最好地为 Mercurial 配置一个中央存储库/多个中央存储库?

我是 Mercurial 的新手,并试图弄清楚它是否可以取代 SVN。与我一起工作的每个人都使用过 SVN、CVS 和 VSS(颤抖),所以这可能是一个很大的变化。在阅读了它的合并和分支功能后,我一直很感兴趣,但有一些保留意见。

我们目前在 SVN 上,并且有一个中央存储库。根据我的阅读,似乎在使用 Mercurial 时,所有项目都没有一个中央存储库。注意:我们将每个项目视为单独的逻辑代码集或 Visual Studio 解决方案。它自己运行。

我们在一个中央 SVN 存储库中有大约 60 个独立的项目。在阅读了 Mercurial 之后,在我看来,我必须为服务器上的每个项目创建 60 个独立的中央存储库。问题 #1:我应该为每个项目创建一个存储库吗?

如果是,那么我担心配置和托管 60 个独立的中央 Mercurial 服务器。我开始认为我可以配置一个文件,但似乎每个存储库都必须使用“C:...\MyRepository.hg\hgrc”文件(Windows 安装)单独配置。似乎我必须运行 60 台服务器(>hg serve),我会假设在不同的端口上。问题 #2:如果问题 1 的答案是肯定的,那么每个项目都应该有一个中央存储库,那么人们是如何管理多个存储库的?

最后,我还没有考虑将所有历史记录和更改从一个 SVN 存储库转移到一堆单独的 Mercurial 存储库,但如果有人这样做(或者甚至可能的话),我将不胜感激。

0 投票
1 回答
423 浏览

version-control - 这是我应该“hg push -f”的情况吗?

我有两台机器,A 和 B,它们都访问外部 hg 存储库。

我在 A 上做了一些开发,还没有准备好将变更集推送到外部,并且需要切换机器,所以我使用hg serve. 变更集在 B 上继续,被提交,然后被推送到外部仓库。

然后我拉上 A 并更新为默认/提示。这留下了以前作为分支推送到 B 的本地变更集,但是由于我如何推送事物,本地变更集中的更改已经在默认/提示中。

我现在继续在 A 上进行更改并在本地提交,但是当我尝试推送时,hg 要求我合并或执行push -f。我知道push -f几乎从不推荐。这种情况接近我应该使用 rebase 的情况,但是我在本地或外部存储库中并不真正需要“rebase”的变更集,因为它们已经通过推送到 B 有效地处于默认/提示状态。

现在,我知道我可以与最新的本地变更集合并并丢弃更改,但是我仍然必须提交合并,这让我回到了 rebase 领域。

这是我可以做的hg push -f吗?

此外,如果我在继续提交变更集之前已更新为默认/提示,为什么从 A 推送会创建远程头?

0 投票
2 回答
8771 浏览

mercurial - 在 TortoiseHg 中使用 Beyond Compare 进行视觉差异

我正在尝试在 TortoiseHg 中使用 Beyond Compare 进行视觉差异。例如,在资源管理器中右键单击修改过的文件,然后从 TortoiseHg 上下文菜单中选择 Visual Diff...

BeyondCompare 打开,但只显示“欢迎”屏幕,而不是我想要比较的文件。我错过了什么吗?

我已将 mercurial.ini 文件设置如下:

0 投票
1 回答
90 浏览

mercurial - Mercurial repo 中不同版本的文件

我有 2 台服务器,它们具有相同的克隆 Mercurial 存储库,但在此存储库的某些文件中具有不同的配置行。如何通过 Mercurial 控制这些文件,但在服务器之间拉/推时没有问题?

0 投票
2 回答
1226 浏览

version-control - 什么是相当于做“hg push -r”的tortoisehg gui

我没有看到实现这一目标的选项。我只想推送与我的默认分支相关的变更集,而不是我拥有的任何其他本地分支。

我想我可以像这样使用存储库资源管理器来做到这一点:在存储库地址下方的工具栏上,第一个组合框允许我选择一个分支。我将此设置为默认值。但是,一旦我推送传出,它想要标记本地变更集不是默认的。

有任何想法吗?

0 投票
4 回答
984 浏览

git - 使用 TortoiseHg 推送到经过身份验证的 git 存储库

我正在尝试将变更集从使用 TortoiseHg 创建的本地 Mercurial 存储库推送到远程 Git 存储库。我已经安装并配置了 hg-git,它会拉得很好。但是当我运行 push 它给了我这个

命令

结果

为了达到这一点,我做了几件事。但我希望解决最后一件事,因为我发现 TortoiseHg 比任何 Git 工具(适用于 Windows)更容易使用。

  • 安装 TortoiseHg
  • 从http://bitbucket.org/durin42/hg-git/拉下 hg-git
  • 将 mercurial.ini 配置为指向 hg-git 库
  • 从 git://git.samba.org/jelmer/dulwich.git 拉下 dulwich 源
  • 编译 dulwich 并放入 TortoiseHg 的 library.zip
  • 配置 TortoiseHg 以使用 TortoisePlink.exe 进行 ssh
  • 将我的私钥添加到选美

有什么想法我可能会错过吗?

0 投票
1 回答
297 浏览

mercurial - 我可以将 tortoisehg 配置为在文件状态不为空时显示红色图标吗

例如,我添加新文件忘记了 hg add,文件夹是绿色的,但文件状态显示一个带有问号的文件。

0 投票
1 回答
1619 浏览

mercurial - Mercurial:删除后如何恢复部分工作副本

我在我的解决方案中删除了一个项目,提交了很多次,现在发现我仍然需要那个已删除的项目。有没有办法通过保留它的历史来恢复它?

0 投票
1 回答
2809 浏览

mercurial - Mercurial 能否使用更好的差异工具来更有效地存储其变更集?

我使用 TortoiseHg 提交更改。提交对话框中显示的(默认)差异包含许多添加/删除。

但相比之下,当我单击提交对话框中的 diff 图标时,KDiff3 会打开,并且该比较更加“智能”:它检测到“更好”我所做的更改:我移动了一个代码块,导致添加的内容少了很多/删除。

由于 Hg “ ...存储了将旧版本转换为新版本所需的更改。 ”,我想知道是否可以利用 KDiff3 的“智能”将这些更改存储在 Hg 提交中?

另一个问题中提出的解决方案似乎不适用于 TortoiseHg 提交对话框。

提前致谢!

0 投票
2 回答
1169 浏览

eclipse - 为什么 mercurial 子存​​储库在 eclipse 和 torotoiseHG 中表现为未版本化的文件

我正在尝试使用 mercurial 的 subrepo 功能,使用 mercurial eclipse 插件\tortoiseHG。

这些是我采取的步骤:

  1. 创建了一个空目录/root
  2. 克隆了我想成为此文件夹(/root/sub1/root/sub2)中的子存储库的所有存储库
  3. .hgsub在根仓库中创建并添加文件,/root/.hgsub并将子仓库的所有映射放入其中
  4. 使用 tortoiseHG,右键单击/root并选择create repository here
  5. 再次使用乌龟,选择里面的所有文件/root并将它们添加到根仓库
  6. 提交根仓库
  7. 将本地根仓库推入我在窑上设置的空仓库

然后,我使用 import->mercurial 在 Eclipse 中提取了根 repo。

现在我看到所有的子存储库看起来好像它们是未版本化的(在 eclipse 文件资源管理器中相应的文件夹旁边没有“橙色圆柱体”图标)。

此外,当我右键单击其中一个子存储库时,我没有像往常一样在“团队”菜单中获得所有 hg 命令,使用根项目 - 没有“拉”、“推”等。

此外,当我对子存储库中的文件进行更改,然后“提交”根项目时,它告诉我没有找到任何更改。

我在 tortoiseHG 中也看到了相同的行为 - 当我在 下浏览文件时/root,直接属于根存储库的文件上有一个小图标(V 符号),标记它们是受版本控制的,而子存储库的文件夹没有标记像这样。

是什么让我怀疑这是我这边的一些错误,是 1. 乌龟和 eclipse 都做同样的事情,所以不太可能成为任何一个中的错误 2. 他们所做的看起来相当复杂,所以不太可能发生一个错误 - 他们都忽略了 .hgsub 中的所有文件夹。如果发生相反的情况(所有子存储库都被视为主存储库的常规文件夹,而不是被视为未版本化),我会认为这是由于不处理子存储库引起的错误。但显然这两个应用程序都承认 .hgsub 文件

我做错了什么,还是一个错误?