mercurialFull: add support for experimental in-tree git extension

The git extension is bundled in-tree, similarly to the hg gui, but also
requires pygit2. Enable it for mercurialFull, but don't bother with it
for the stock mercurial install.

Alas, it doesn't (yet?) work on nixpkgs because it doesn't support
octopus merges:

mercurial.error.ProgrammingError: git support can't handle octopus
merges, found a commit with 16 parents :(

I'm sure that commit is loved equally by all 16 parents.
launchpad/nixpkgs/master
Luke Granger-Brown 3 years ago
parent e63e5bd373
commit c83a5bce66
  1. 7
      pkgs/applications/version-management/mercurial/default.nix
  2. 2
      pkgs/top-level/all-packages.nix

@ -1,12 +1,13 @@
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext
, re2Support ? true
, rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
, guiSupport ? false, tk ? null
, gitSupport ? false
, guiSupport ? false, tk
, ApplicationServices
}:
let
inherit (python3Packages) docutils python fb-re2;
inherit (python3Packages) docutils python fb-re2 pygit2;
in python3Packages.buildPythonApplication rec {
pname = "mercurial";
@ -42,7 +43,7 @@ in python3Packages.buildPythonApplication rec {
} else null;
cargoRoot = if rustSupport then "rust" else null;
propagatedBuildInputs = lib.optional re2Support fb-re2;
propagatedBuildInputs = lib.optional re2Support fb-re2 ++ lib.optional gitSupport pygit2;
nativeBuildInputs = [ makeWrapper gettext ]
++ lib.optionals rustSupport (with rustPlatform; [
cargoSetupHook

@ -25423,7 +25423,7 @@ in
inherit (darwin.apple_sdk.frameworks) ApplicationServices;
};
mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; });
mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; gitSupport = true; });
merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };

Loading…
Cancel
Save