blob: cba49f912b123f5d47f2b168441ac4f6948fe1e7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
{ pkgs, config, lib, ... }: {
programs.git = {
enable = true;
userName = "Franck Cuny";
aliases = {
amend = "commit --amend";
ll = ''log --pretty="format:%h %G? %aN %s"'';
};
includes = [
{
condition = "hasconfig:remote.*.url:git@github.rbx.com:**";
path = pkgs.writeText "finsitGitConfig"
(lib.generators.toGitINI { user.email = "fcuny@roblox.com"; });
}
{
condition = "hasconfig:remote.*.url:git@github.com:Roblox/**";
path = pkgs.writeText "finsitGitConfig"
(lib.generators.toGitINI { user.email = "fcuny@roblox.com"; });
}
];
extraConfig = {
core.whitespace = "trailing-space,space-before-tab";
color.ui = "true";
# abort if the remote branch does not match the local one
push.default = "simple";
# https://adamj.eu/tech/2024/01/18/git-improve-diff-histogram/
diff.algorithm = "histogram";
init.defaultBranch = "main";
pull.rebase = true;
rebase = {
# Automatically create a temporary stash entry before the
# operation begins, and apply it after the operation ends.
autoStash = true;
# Print a warning if some commits are removed
missingCommitsCheck = "warn";
};
branch.autosetuprebase = "remote";
branch.sort = "authordate";
commit.template = "${config.xdg.dataHome}/git/commit.template";
url = {
"ssh://git@github.rbx.com/" = {
insteadOf = "https://github.rbx.com/";
};
};
};
ignores = [ "*~" ".envrc" ".direnv" "__pycache__" ];
};
xdg.dataFile."git/commit.template".source =
pkgs.writeText "commit.template" ''
# (If applied, this commit will...) <subject>
# Explain why this change is being made
# --- COMMIT END ---
# Remember to
# Use the imperative mood, present tense: `change' not `changed' nor `changes'
# Do not end the subject line with a period
# Use the body to explain what and why vs. how
# Can use multiple lines with "-" for bullet points in body
'';
home.packages = with pkgs; [ gitAndTools.pre-commit git-credential-manager ];
}
|