78 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  config,
 | 
						|
  pkgs,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}:
 | 
						|
let
 | 
						|
  inherit (config.my) username mail;
 | 
						|
in
 | 
						|
{
 | 
						|
  config = {
 | 
						|
    programs.git = {
 | 
						|
      enable = true;
 | 
						|
      lfs.enable = true;
 | 
						|
      extraConfig = {
 | 
						|
        user = {
 | 
						|
          name = username;
 | 
						|
          email = mail.personal.user;
 | 
						|
        };
 | 
						|
        init.defaultBranch = "main";
 | 
						|
        core = {
 | 
						|
          fsmonitor = true;
 | 
						|
          untrackedCache = true;
 | 
						|
        };
 | 
						|
        commit = {
 | 
						|
          verbose = true;
 | 
						|
        };
 | 
						|
        fetch = {
 | 
						|
          prune = true;
 | 
						|
          pruneTags = true;
 | 
						|
          all = true;
 | 
						|
        };
 | 
						|
        push = {
 | 
						|
          autoSetupRemote = true;
 | 
						|
          default = "simple";
 | 
						|
          followTags = true;
 | 
						|
        };
 | 
						|
        pull.rebase = true;
 | 
						|
        tag.sort = "version:refname";
 | 
						|
        merge.conflictStyle = "zdiff3";
 | 
						|
        rerere = {
 | 
						|
          enabled = true;
 | 
						|
          autoupdate = true;
 | 
						|
        };
 | 
						|
        branch.sort = "-committerdate";
 | 
						|
        diff = {
 | 
						|
          algorithm = "histogram";
 | 
						|
          colorMoved = "plain";
 | 
						|
          mnemonicPrefix = true;
 | 
						|
          renames = true;
 | 
						|
        };
 | 
						|
        rebase = {
 | 
						|
          abbreviateCommands = true;
 | 
						|
          autoSquash = true;
 | 
						|
          autoStash = true;
 | 
						|
          updateRefs = true;
 | 
						|
        };
 | 
						|
        pager = {
 | 
						|
          log = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager";
 | 
						|
          show = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager";
 | 
						|
          diff = "${pkgs._diffr}/bin/_diffr | ${pkgs.kak-pager}/bin/kak-pager";
 | 
						|
        };
 | 
						|
        alias = {
 | 
						|
          graph = "log --graph --oneline --branches";
 | 
						|
          root = "rev-parse --show-toplevel";
 | 
						|
          clean-deleted-remotes = "!" + (lib.getExe pkgs.git_clean_remote_deleted);
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    home.packages = with pkgs; [
 | 
						|
      git_clean_remote_deleted
 | 
						|
 | 
						|
      gh
 | 
						|
      glab
 | 
						|
    ];
 | 
						|
  };
 | 
						|
}
 |