infrastructure/nixos/common/hm-modules/git.nix

32 lines
790 B
Nix
Raw Normal View History

2023-06-27 11:19:54 +02:00
{ config, pkgs, lib, ... }:
with lib;
let cfg = config.programs.v.git;
in {
options.programs.v.git = { enable = mkEnableOption "git"; };
config = mkIf cfg.enable {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
2023-11-13 17:39:02 +01:00
userName = "0x76";
2023-11-16 20:14:11 +01:00
userEmail = "v@0x76.dev";
2023-06-27 11:19:54 +02:00
lfs.enable = true;
extraConfig = {
push.autoSetupRemote = true;
init.defaultBranch = "main";
# Git merge driver that always grabs upstream changes
# Useful for e.g. lock files
2023-06-27 11:23:25 +02:00
merge.ours = {
name = "Overwrite Upstream Changes";
driver = "cp -f '%A' '%B'";
2023-06-27 11:19:54 +02:00
};
};
difftastic.enable = true;
};
home.file.".config/git/attributes".text = ''
2023-06-27 11:23:25 +02:00
flake.lock merge=ours
2023-06-27 11:19:54 +02:00
'';
};
}