Skip to content

Commit be438b3

Browse files
committed
add mergiraf
1 parent 45bb14f commit be438b3

File tree

1 file changed

+63
-4
lines changed

1 file changed

+63
-4
lines changed

home/git.nix

Lines changed: 63 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,62 @@
33
packages = with pkgs; [
44
git
55
tig
6+
(rustPlatform.buildRustPackage
7+
rec {
8+
pname = "mergiraf";
9+
version = "0.2.0";
10+
11+
src = fetchFromGitea {
12+
domain = "codeberg.org";
13+
owner = "mergiraf";
14+
repo = "mergiraf";
15+
rev = "v${version}";
16+
sha256 = "sha256-egtX2daCbPXi5rX2OxbEZA/VI9R4HMj5LRKbUEBFo+E=";
17+
};
18+
nativeBuildInputs = [
19+
git
20+
];
21+
cargoLock = {
22+
lockFile = "${src}/Cargo.lock";
23+
outputHashes = {
24+
"tree-sitter-go-0.23.1" = "sha256-elPqkvVYs0vADOuN/umDteWP5hqcXhQAoSkqYDtTxaU=";
25+
"tree-sitter-xml-0.7.0" = "sha256-RTWvOUAs3Uql9DKsP1jf9FZZHaZORE40GXd+6g6RQZw=";
26+
"tree-sitter-yaml-0.6.1" = "sha256-gS+SjOnGl/86U9VV/y1ca7naYIe7DAOvOv++jCRLTKo=";
27+
};
28+
};
29+
30+
meta = with lib; {
31+
description = "A syntax-aware git merge driver for a growing collection of programming languages and file formats.";
32+
homepage = "https://codeberg.org/mergiraf/mergiraf";
33+
license = licenses.gpl3;
34+
maintainers = [];
35+
};
36+
})
637
];
7-
file.".gitignore".text = ''
8-
.session.nvim
9-
'';
38+
file = {
39+
".gitignore".text = ''
40+
.session.nvim
41+
'';
42+
".gitattributes".text = ''
43+
*.java merge=mergiraf
44+
*.rs merge=mergiraf
45+
*.go merge=mergiraf
46+
*.js merge=mergiraf
47+
*.jsx merge=mergiraf
48+
*.json merge=mergiraf
49+
*.yml merge=mergiraf
50+
*.yaml merge=mergiraf
51+
*.html merge=mergiraf
52+
*.htm merge=mergiraf
53+
*.xhtml merge=mergiraf
54+
*.xml merge=mergiraf
55+
*.c merge=mergiraf
56+
*.h merge=mergiraf
57+
*.cpp merge=mergiraf
58+
*.hpp merge=mergiraf
59+
*.cs merge=mergiraf
60+
'';
61+
};
1062
};
1163
programs.git = {
1264
enable = true;
@@ -100,7 +152,10 @@
100152
extraConfig = {
101153
branch.sort = "-committerdate";
102154
commit.gpgsign = true;
103-
core.excludesfile = "~/.gitignore";
155+
core = {
156+
excludesfile = "~/.gitignore";
157+
attributesfile = "~/.gitattributes";
158+
};
104159
diff.algorithm = "histogram";
105160
gpg.format = "ssh";
106161
init.defaultBranch = "main";
@@ -120,6 +175,10 @@
120175
tag.sort = "version:refname";
121176
url."ssh://[email protected]/".insteadOf = "https://github.com/";
122177
user.signingkey = "~/.ssh/id_ed25519";
178+
"merge \"mergiraf\"" = {
179+
name = "mergiraf";
180+
driver = "mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P";
181+
};
123182
};
124183
};
125184
}

0 commit comments

Comments
 (0)