使用 mercurial 3.3.2 安装 TortoiseHG

使用 mercurial 3.3.2 安装 TortoiseHG

我想要一个 GUI 来查看、比较和签出我的项目的版本。但是当我想安装 Tortoise HG 时,apt 建议降级 Mercurial。我记得升级到 3.3 已经解决了一些问题(我不记得是什么问题了),而且我有许多使用 3.3 创建的存储库,所以我不想降级。

hg view有点用,但它不允许我检出修订版或比较两个修订版meld

$ hg --version
Mercurial Distributed SCM (version 3.3.2)
...
$ sudo aptitude install tortoisehg
....
The following packages have unmet dependencies:
 tortoisehg : Depends: mercurial (< 3.2~) but 3.3.2-1ppa2~precise1 is installed.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     tortoisehg [Not Installed]                         

Accept this solution? [Y/n/q/?] 

...

     Downgrade the following packages:                                                   
3)     mercurial [3.3.2-1ppa2~precise1 (now, precise) -> 2.0.2-1ubuntu1 (precise)]

所以:

1. 如何为 Mercurial 3.3 安装 Tortoise-hg?

2. 我可以使用什么替代方案?

编辑:

$ lsb_release -a; uname -a; apt-cache policy tortoisehg mercurial
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise
Linux somename 3.11.0-26-generic #45~precise1-Ubuntu SMP Tue Jul 15 04:04:35 UTC 2014 i686 i686 i386 GNU/Linux
tortoisehg:
  Installed: (none)
  Candidate: 3.0-0ppa1~precise1
  Version table:
     3.0-0ppa1~precise1 0
    500 http://ppa.launchpad.net/tortoisehg-ppa/releases/ubuntu/ precise/main i386 Packages
     2.2-1 0
    500 http://XX.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages
    100 /var/lib/dpkg/status
mercurial:
  Installed: 3.3.2-1ppa2~precise1
  Candidate: 3.3.2-1ppa2~precise1
  Version table:
 *** 3.3.2-1ppa2~precise1 0
    500 http://ppa.launchpad.net/mercurial-ppa/releases/ubuntu/ precise/main i386 Packages
    100 /var/lib/dpkg/status
     3.0.1-0ppa1~precise1 0
    500 http://ppa.launchpad.net/tortoisehg-ppa/releases/ubuntu/ precise/main i386 Packages
     2.0.2-1ubuntu1.2 0
    500 http://XX.archive.ubuntu.com/ubuntu/ precise-updates/universe i386 Packages
    500 http://security.ubuntu.com/ubuntu/ precise-security/universe i386 Packages
     2.0.2-1ubuntu1 0
    500 http://XX.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages

编辑2:

$ apt-cache policy tortoisehg
tortoisehg:
  Installed: (none)
  Candidate: 3.3.3+2-426769dbcfe8-0ppa1~precise1
  Version table:
     3.3.3+2-426769dbcfe8-0ppa1~precise1 0
    500 http://ppa.launchpad.net/tortoisehg-ppa/stable-snapshots/ubuntu/ precise/main i386 Packages
     2.2-1 0
    500 http://XX.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages
    100 /var/lib/dpkg/status

答案1

经过进一步深入调查,我发现我的答案的第一个版本错了。

没有任何一个“TortoiseHg PPA Packagers” 团队 PPAMercurial PPA属于同一团队,至少对于 Precise 来说不是。

TortoiseHg PPA 打包程序:快照 PPA需求mercurial (>= 2.7~)mercurial (<< 2.9~)TortoiseHg PPA 打包程序:稳定快照 PPA需求mercurial (>= 3.0~)mercurial (<< 3.2~)

答案2

由于tortoisehg-ppa现在是空的,我最终从 xenial 构建了 .deb 包。但是 xenial 的 tortoisehg 是 3.7.3,需要 mercurial < 3.8,所以你不能使用 mercurial-ppa,因为它有 3.8.3。所以也从 xenial 构建 mercurial。

首先安装用于构建和更新源存储库的工具:

sudo apt-get install dpkg-dev build-essential fakeroot

edit /etc/apt/sources.list and replace
  deb-src ... trusty universe
with
  deb-src ... xenial universe

sudo apt-get update

构建 mercurial:

mkdir build-mercurial
cd build-mercurial
sudo apt-get build-dep mercurial
apt-get source mercurial
cd mercurial-3.7.3/
DEB_BUILD_OPTIONS=nocheck fakeroot debian/rules binary
sudo dpkg -i ../mercurial_*.deb

构建tortoisehg:

cd ../..
mkdir build-tortoisehg
cd build-tortoisehg
sudo apt-get build-dep tortoisehg
apt-get source tortoisehg
cd tortoisehg-3.7.3/
fakeroot debian/rules binary
sudo dpkg -i ../tortoisehg_*.deb

请注意,dpkg 可能会抱怨依赖项未安装。根据需要使用 apt-get install 安装它们,然后重新运行 dpkg -i ... 。

答案3

首先,我按照AB 的答案的第一个版本建议:

sudo apt-add-repository ppa:tortoisehg-ppa/stable-snapshots
sudo apt-get update
sudo apt-get install tortoisehg-nautilus tortoisehg

但这还不够(最后一个命令失败了)。

然后我就这么做了

$ sudo apt-get download tortoisehg
Get:1 Downloading tortoisehg 3.3.3+2-426769dbcfe8-0ppa1~precise1 [4,090 kB]
Fetched 4,090 kB in 0s (5,018 kB/s) 

(它会将 .deb 下载到当前目录,文件日期是 2015 年 4 月 3 日,而不是当前日期,完整文件名是不是打印到控制台)之后

sudo dpkg -i tortoisehg_3.3.3+2-426769dbcfe8-0ppa1~precise1_all.deb

它开始对我起作用了。(不知道为什么--force-all (关联)不是必需的。)一般来说,这样的安装是不正确的,但它恰好执行最常见的功能;事实上它到目前为止在我的系统上运行良好。不保证它将来能在您的系统上运行。

请注意,几乎每次您使用它们时apt-get,它们update-manager都会尝试“纠正”此配置(即破坏它)。您可能必须按照他们的建议进行操作,并在他们的工作完成后重新安装 tortoisehg。

相关内容