问题标签 [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.
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 存储库,但如果有人这样做(或者甚至可能的话),我将不胜感激。
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 推送会创建远程头?
mercurial - 在 TortoiseHg 中使用 Beyond Compare 进行视觉差异
我正在尝试在 TortoiseHg 中使用 Beyond Compare 进行视觉差异。例如,在资源管理器中右键单击修改过的文件,然后从 TortoiseHg 上下文菜单中选择 Visual Diff...
BeyondCompare 打开,但只显示“欢迎”屏幕,而不是我想要比较的文件。我错过了什么吗?
我已将 mercurial.ini 文件设置如下:
mercurial - Mercurial repo 中不同版本的文件
我有 2 台服务器,它们具有相同的克隆 Mercurial 存储库,但在此存储库的某些文件中具有不同的配置行。如何通过 Mercurial 控制这些文件,但在服务器之间拉/推时没有问题?
version-control - 什么是相当于做“hg push -r”的tortoisehg gui
我没有看到实现这一目标的选项。我只想推送与我的默认分支相关的变更集,而不是我拥有的任何其他本地分支。
我想我可以像这样使用存储库资源管理器来做到这一点:在存储库地址下方的工具栏上,第一个组合框允许我选择一个分支。我将此设置为默认值。但是,一旦我推送传出,它想要标记本地变更集不是默认的。
有任何想法吗?
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
- 将我的私钥添加到选美
有什么想法我可能会错过吗?
mercurial - 我可以将 tortoisehg 配置为在文件状态不为空时显示红色图标吗
例如,我添加新文件忘记了 hg add,文件夹是绿色的,但文件状态显示一个带有问号的文件。
mercurial - Mercurial:删除后如何恢复部分工作副本
我在我的解决方案中删除了一个项目,提交了很多次,现在发现我仍然需要那个已删除的项目。有没有办法通过保留它的历史来恢复它?
mercurial - Mercurial 能否使用更好的差异工具来更有效地存储其变更集?
我使用 TortoiseHg 提交更改。提交对话框中显示的(默认)差异包含许多添加/删除。
但相比之下,当我单击提交对话框中的 diff 图标时,KDiff3 会打开,并且该比较更加“智能”:它检测到“更好”我所做的更改:我移动了一个代码块,导致添加的内容少了很多/删除。
由于 Hg “ ...存储了将旧版本转换为新版本所需的更改。 ”,我想知道是否可以利用 KDiff3 的“智能”将这些更改存储在 Hg 提交中?
另一个问题中提出的解决方案似乎不适用于 TortoiseHg 提交对话框。
提前致谢!
eclipse - 为什么 mercurial 子存储库在 eclipse 和 torotoiseHG 中表现为未版本化的文件
我正在尝试使用 mercurial 的 subrepo 功能,使用 mercurial eclipse 插件\tortoiseHG。
这些是我采取的步骤:
- 创建了一个空目录
/root
- 克隆了我想成为此文件夹(
/root/sub1
,/root/sub2
)中的子存储库的所有存储库 .hgsub
在根仓库中创建并添加文件,/root/.hgsub
并将子仓库的所有映射放入其中- 使用 tortoiseHG,右键单击
/root
并选择create repository here
- 再次使用乌龟,选择里面的所有文件
/root
并将它们添加到根仓库 - 提交根仓库
- 将本地根仓库推入我在窑上设置的空仓库
然后,我使用 import->mercurial 在 Eclipse 中提取了根 repo。
现在我看到所有的子存储库看起来好像它们是未版本化的(在 eclipse 文件资源管理器中相应的文件夹旁边没有“橙色圆柱体”图标)。
此外,当我右键单击其中一个子存储库时,我没有像往常一样在“团队”菜单中获得所有 hg 命令,使用根项目 - 没有“拉”、“推”等。
此外,当我对子存储库中的文件进行更改,然后“提交”根项目时,它告诉我没有找到任何更改。
我在 tortoiseHG 中也看到了相同的行为 - 当我在 下浏览文件时/root
,直接属于根存储库的文件上有一个小图标(V 符号),标记它们是受版本控制的,而子存储库的文件夹没有标记像这样。
是什么让我怀疑这是我这边的一些错误,是 1. 乌龟和 eclipse 都做同样的事情,所以不太可能成为任何一个中的错误 2. 他们所做的看起来相当复杂,所以不太可能发生一个错误 - 他们都忽略了 .hgsub 中的所有文件夹。如果发生相反的情况(所有子存储库都被视为主存储库的常规文件夹,而不是被视为未版本化),我会认为这是由于不处理子存储库引起的错误。但显然这两个应用程序都承认 .hgsub 文件
我做错了什么,还是一个错误?