【问题标题】:TortoiseGit, TortoiseBzr, TortoiseHg. Are any solid enough to switch from TortoiseSVN? [closed]TortoiseGit,TortoiseBzr,TortoiseHg。从 TortoiseSVN 切换是否足够可靠? [关闭]
【发布时间】:2009-05-31 02:21:27
【问题描述】:

我想试用分布式修订控制系统。我使用几台 Windows PC、几台带 Linux 的 PC 和一台 Mac。在 Windows 上,我想使用 Tortoise。

除了 TortoiseSVN 之外的 Tortoise 有什么好的吗?直到最近,对它们的批评一直是它们速度慢且有缺陷,但似乎有一种新的推动力来让它们变得稳固。

我宁愿不必尝试所有三个。有没有人最近转行并有很好的体验?

【问题讨论】:

  • 我已经使用 Tortoise HG 至少几年来进行生产工作。但是,一旦您熟悉了命令行,就不会再使用它了。我至少有一年没用过我的了。
  • 我认为业界已选择 Git 作为下一个首选的源代码存储库。
  • 我不知道...我只是发现所有的乌龟都有点...慢!砰!砰!砰!嘘!

标签: tortoisesvn tortoisehg tortoisegit tortoisebzr


【解决方案1】:

我个人对 TortoiseHg 有很好的体验。它还安装了 hg 命令行系统,因此如果需要(或者如果您更喜欢在命令行上进行版本控制),您可以进入该系统。界面中有一些怪癖,但总的来说它非常可靠(如果您使用修订图视图,它看起来很棒)。 Mercurial 的 Subversion 导入也很棒。

您甚至可以使用 Mercurial 的 hg-git 扩展来处理 Git 存储库,正如 CAD 小哥所提到的那样。

【讨论】:

  • 如果我的团队的其他成员还没有准备好从 svn 切换,它是否支持某种 hg-svn 桥接?
  • 我个人只用过导入工具,但是有很多选择。 hgsubversion 似乎是最完整的。 mercurial.selenic.com/wiki/WorkingWithSubversion
  • 你也可以从 Git repos 中推/拉。见jamesmckay.net/tag/hg-git
  • 我发现 TortoiseHg 很多与 TortoiseSVN 和 TortoiseGit 一起工作更好。
  • 确实如此。尽管 TortoiseHG 里面有“Tortoise”这个名字,但与 TortoiseGit 不同,它甚至没有尝试模仿 TortoiseSVN / TortoiseCVS。 TortoiseHG 与 TortoiseGit 不同,实际上是为正确的 DVCS 工作流程建模。
【解决方案2】:

我建议 TortoiseHg。如果您熟悉 TortoiseSVN,您可以立即使用它。

您想在 Windows 上使用它吗?

在我看来,到今天为止,TortoiseHg 比 TortoiseSVN 更好。而且它仍然改进得非常快(我从 0.4 版开始使用它,当前是 0.9.2 和 Mercurial 1.4.2)。 例如,一个不错的功能:只需在 IDE 中进行大量重构,而不关心重命名。然后在上下文菜单中选择“猜测重命名”功能并玩得开心。没有更多的历史记录,因为您使用了您最喜欢的重命名工具而不是“svn move”。

安装非常简单:下载并安装 TortoiseHg,然后重启一次。现在您也拥有了当前版本的命令行 Mercurial 和 SVN 转换工具。无非就是这个单一的包。

你想在 Linux 上使用它吗?

“sudo apt-get install mercurial”是您使用命令行 Mercurial 所需要的(在基于 Debian 的系统上),但此版本可能不是最新版本。我知道,有适用于 Ubuntu 的 PPA 存储库,也可能适用于 Debian。所以更新你的 APT 源列表,导入密钥,然后你就可以安装 TortoiseHg 了,它与 Gnome 的集成非常好。

抱歉,我不知道如何在 Mac 上安装。

无论如何,DVCS 往往很有用。它往往更有趣,无论你是在做一个单独的黑客场景还是在一个庞大的团队中工作。另外:通过 clone+push+pull,您还可以获得集成、快速和智能的备份。

但是,也有一些缺点需要考虑:

1) 如果您在 Windows 和任何 *nix 系统之间共享您的工作,您应该只使用 ASCII 字符作为文件名。 Mercurial、Bazaar 或 Git 都不会像 Subversion 那样进行编码转换(请参阅CharacterEncodingOnWindows)。在使用 UTF-8 的操作系统和另一个操作系统之间切换时,任何法语口音或德语变音符号都会破坏您的工作。

2) 你不应该使用很多大的二进制文件。 Mercurial 不是为此目的而设计的,我认为 Bazaar 或 Git 在这方面不会更有趣。

【讨论】:

  • www.hginit.com 会有所帮助
  • 从 Mercurial 2.0 开始,捆绑了 largefiles 扩展,可以有效地处理大型二进制文件 - 包括只下载您需要的文件的选项。
【解决方案3】:

我使用 TortoiseGit 已经有一段时间了。虽然 git 在 Windows 上的性能确实会受到影响,但在大多数情况下它是完全可以接受的。在您提到的三个中,在我看来,Git 无疑拥有最精致的“乌龟”。如果您习惯使用 TortoiseSVN,那么过渡到 Git 应该会非常顺利,因为 TortoiseGit 基于 TortoiseSVN 代码库并重用了它的许多 UI 和设计原则。

【讨论】:

  • 我发现 TortoiseGit 是一种相当粗糙的体验,并且在使用最基本的命令时遇到了问题。
  • 请注意,TortoiseGit 保留了 SVN 模型,这意味着不支持某些 Git 概念,尤其是暂存区。来自 SVN 的人可能会觉得这很有利,但熟悉 Git 的人可能会迷失方向。
  • TortoiseSVN 是迄今为止最完善的 Tortoise 应用程序,没有什么可谈的。我希望有一天 TortoiseGit 能够与 TortoiseSVN 足够接近,当我说“抛光”时,我并不是指“复制”,因为 Git 意识形态受到 SVN 设计决策的影响。
【解决方案4】:

考虑到您的设置,当您只使用几台本地计算机时,似乎没有必要使用分布式版本控制。如果您已经在运行功能 SVN 服务器,则尤其如此。分布式版本控制在进行大量分支和合并的大型项目中往往更有用,因为分布式 VCS 倾向于重视高质量的合并。

也就是说,Google 选择使用 Mercurial (Hg) 作为其对 Google 代码的分布式版本控制。大多数推理都与速度、灵活性和易用性有关。当然,在我看来,Hg 命令集看起来比 Git 命令集友好得多,而且它往往与较旧的 SVN 存储库配合得很好。

【讨论】:

  • 我想跟上一种新的分布式系统的速度,所以如果我必须工作,我已经准备好加入其中。另外,我*想丢弃我用来托管我的 SVN 服务器的旧垃圾。我想这是我电费的一半。 :-) 但大多数情况下,只是求知欲。
  • 分布式 VCS 非常棒,因为它们使用 changesets 而不是 revisions 的代码。
  • 我最近完全从 SVN 转移到了 HG,因为我已经习惯了廉价克隆。我建议人们阅读 Joel Spolsky 的 www.hginit.com,让人们思考“我为什么要考虑分布式 VCS?”
【解决方案5】:

我真的只是想对关于 TortoiseHG 的建议添加评论,但是 cmets 已关闭,

如何在linux上添加ppa仓库(用你的版本替换oneiric):

  1. 将以下条目添加到包管理器:

    deb http://ppa.launchpad.net/tortoisehg-ppa/releases/ubuntu oneiric main 
    deb-src http://ppa.launchpad.net/tortoisehg-ppa/releases/ubuntu oneiric main 
    
  2. 将以下条目添加到包管理器:

    deb http://ppa.launchpad.net/mercurial-ppa/releases/ubuntu oneiric main 
    deb-src http://ppa.launchpad.net/mercurial-ppa/releases/ubuntu oneiric main
    

    重要提示:由于当前的 TortoiseHg 版本通常需要比 Ubuntu 本身提供的更新版本的 Mercurial,因此您还需要添加此 PPA。

  3. 要将 APT 配置为信任此存储库的签名密钥,请运行:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 323293EE
    
  4. 如果您安装了旧版本,则需要先将其删除。

    sudo apt-get --purge remove mercurial
    sudo apt-get --purge remove tortoisehg
    
  5. 步骤

    sudo apt-get install mercurial
    sudo apt-get install tortoisehg
    

【讨论】:

  • 上面的编号应该是1,2,3,4,5。并且命令应该是灰色的(这不是4个空格应该做的吗?)...
  • 我已经编辑了格式,只需删除 4 个空格并将单词 Step 放在数字前面,即可恢复 1、2、3、4、5 序列。
  • 在此处发布此信息的一个原因是 launchpad.net 有以下内容,这对我不起作用(错误 404) deb launchpad.net/~mercurial-ppa/+archive/releases oneiric main
【解决方案6】:

您是否正在考虑切换到其他 VCS?因为切换到 TortoiseGit/Bzr/Hg 您将无法访问 SVN 存储库。我正在通过 TortoiseGit 使用 GIT,但它建立在 TortoiseSVN 之上并且具有类似的性能。

如果您只是在寻找使用 SVN 的替代方案,您应该查看RapidSVN。它仍然很好,比 Tortoise 快得多,它也可以在 Mac 和 Linux 上运行。

希望这会有所帮助!

发表评论编辑

您应该考虑使用 Git。它是现代分布式 VCS,变得非常快速和灵活,它拥有一个非常庞大和强大的社区。许多大型项目都在使用 Git,例如 Linux(内核)和 Ruby On Rails。

关于 Git 的更多信息:http://git-scm.com/http://whygitisbetterthanx.com/

【讨论】:

  • 我想试用其中一种分布式修订控制系统。
  • @Eduardo Cobuci,所以你觉得 TortoiseGit 和 TortoiseSVN 一样健壮和高效?
  • 不幸的是不是这样,但我发现它已经足够好了。开发非常活跃,我认为它成为了一个非常合理的选择。
猜你喜欢
  • 2011-03-29
  • 2014-04-24
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 2012-02-22
  • 2018-10-12
相关资源
最近更新 更多