Skip to content

Commit 4277f51

Browse files
committed
Use mergiraf, difftastic for git
1 parent 6f248d0 commit 4277f51

File tree

6 files changed

+37
-39
lines changed

6 files changed

+37
-39
lines changed

modules/profiles/home/git/common.nix

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
1-
{ config, pkgs, lib, ... }: {
1+
{ config, pkgs, lib, ... }:
2+
let
3+
mkGitShellScript = { name, text, extraRuntimeInputs ? [ ] }:
4+
lib.getExe (pkgs.writeShellApplication {
5+
inherit name text;
6+
7+
runtimeInputs = [ config.programs.git.package ] ++ extraRuntimeInputs;
8+
});
9+
in {
210
home.packages = with pkgs; [ delta ];
311

412
programs.git = {
513
enable = true;
614

7-
settings = let delta = lib.getExe pkgs.delta;
8-
in {
15+
settings = {
916
user.name = "Ethan Turkeltaub";
1017

1118
alias = let
12-
gh = lib.getExe pkgs.gh;
13-
mkGitShellScript = { name, text, extraRuntimeInputs ? [ ] }:
14-
lib.getExe (pkgs.writeShellApplication {
15-
inherit name text;
16-
17-
runtimeInputs = [ config.programs.git.package ]
18-
++ extraRuntimeInputs;
19-
});
2019
superprune = mkGitShellScript {
2120
name = "git-alias-superprune";
2221
text = ''
@@ -49,14 +48,10 @@
4948
superprune = "!sh ${superprune}";
5049
co = "!sh ${co}";
5150
wipe = "!sh ${wipe}";
52-
sync = "!${gh} repo sync";
51+
sync = "!${lib.getExe pkgs.gh} repo sync";
5352
};
5453

55-
core.pager = delta;
56-
57-
interactive.diffFilter = "${delta} --color-only";
58-
59-
http = { sslCAinfo = "/etc/ssl/certs/ca-certificates.crt"; };
54+
http.sslCAinfo = "/etc/ssl/certs/ca-certificates.crt";
6055

6156
color = {
6257
status = "always";
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
programs.difftastic = {
3+
enable = true;
4+
git = {
5+
enable = true;
6+
diffToolMode = true;
7+
};
8+
};
9+
}
Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,14 @@
1-
{ lib, ... }:
2-
3-
with lib;
4-
51
{
6-
programs.git = {
7-
aliases.s = mkOverride 10 "status -uno";
8-
extraConfig = {
9-
core = {
10-
compression = 9;
11-
packedgitwindowsize = "32g";
12-
preloadindex = true;
13-
deltabasecachelimit = "2g";
14-
};
15-
feature.manyfiles = true;
16-
fetch.prune = true;
17-
merge.renameLimit = 10000;
18-
push.default = "simple";
2+
programs.git.settings = {
3+
core = {
4+
compression = 9;
5+
packedgitwindowsize = "32g";
6+
preloadindex = true;
7+
deltabasecachelimit = "2g";
198
};
9+
feature.manyfiles = true;
10+
fetch.prune = true;
11+
merge.renameLimit = 10000;
12+
push.default = "simple";
2013
};
2114
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ programs.mergiraf.enable = true; }

modules/suites/home.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ with profiles;
2424
tools.darwin
2525
xdg
2626
zed-editor
27-
zellij
2827
];
2928

30-
development = [ git.common gh gh-dash vscode ];
29+
development =
30+
[ git.common git.difftastic git.mergiraf gh gh-dash mise vscode ];
3131

3232
identity = [ gnupg.default ];
3333

34-
work = [ git.large-repos mise ];
34+
work = [ git.large-repos ];
3535

3636
minimal = [ autojump bat fish fzf git.common gh navi starship tools.common ];
3737
}

users/et/home.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{ suites, secrets, profiles, ... }: {
22
imports = with suites;
3-
base ++ development ++ identity ++ (with profiles; [ haskell nodejs ])
4-
++ [ secrets.users.et.home ] ++ [
3+
base ++ development ++ work ++ identity
4+
++ (with profiles; [ haskell nodejs ]) ++ [ secrets.users.et.home ] ++ [
55
./profiles/git.nix
66
./profiles/jujutsu.nix
77
./profiles/tmuxp.nix

0 commit comments

Comments
 (0)