aboutsummaryrefslogtreecommitdiff
path: root/nix/users/profiles/git.nix
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2025-07-21 12:49:14 -0700
committerFranck Cuny <franck@fcuny.net>2025-07-21 12:49:14 -0700
commit3d6af5dc1c31d481a458ce00550b193d35648e32 (patch)
treebc343c343ffba009d33a95dcdffd5562ff0fc3ef /nix/users/profiles/git.nix
parentinstall minimal home-manager profile on the VM (diff)
downloadinfra-3d6af5dc1c31d481a458ce00550b193d35648e32.tar.gz
move user configurations to top-level
Diffstat (limited to 'nix/users/profiles/git.nix')
-rw-r--r--nix/users/profiles/git.nix134
1 files changed, 0 insertions, 134 deletions
diff --git a/nix/users/profiles/git.nix b/nix/users/profiles/git.nix
deleted file mode 100644
index de066e2..0000000
--- a/nix/users/profiles/git.nix
+++ /dev/null
@@ -1,134 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-let
- inherit (config) userinfo;
-in
-{
- home.packages = with pkgs; [
- gitAndTools.pre-commit
- git-credential-manager
- ];
-
- programs.gh = {
- enable = true;
-
- settings = {
- version = 1;
- git_protocol = "ssh";
- prompt = "enabled";
- aliases = {
- co = "pr checkout";
- vw = "pr view --web";
- };
- };
- };
-
- programs.git = {
- enable = true;
-
- delta = {
- enable = true;
- options.features = "decorations side-by-side line-numbers";
- };
-
- userName = lib.mkDefault userinfo.fullName;
- userEmail = lib.mkDefault userinfo.email;
-
- aliases = {
- amend = "commit --amend";
- a = "commit --amend --no-edit";
- st = "status";
- co = "checkout";
- br = "branch";
- rb = "pull --rebase";
- hist = "log --pretty=format:\"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)\" --graph --date=relative --decorate --all";
- llog = "log --graph --name-status --pretty=format:\"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset\" --date=relative";
- logo = "log --pretty=format:\"%C(yellow)%h%Cred%d %Creset%s%Cblue (%cn)\" --decorate";
- logf = "log --pretty=format:\"%C(yellow)%h%Cred%d %Creset%s%Cblue (%cn)\" --decorate --numstat";
- };
-
- # https://stackoverflow.com/questions/74012449/git-includeif-hasconfigremote-url-not-working
- # to test it's working as expected:
- # run `git config --get-all user.email' in a repository to check that we get all the possible emails
- # run `git config --get user.email' in a repository to check which email is selected
- includes = [
- {
- condition = "hasconfig:remote.*.url:git@github.rbx.com:*/**";
- path = pkgs.writeText "username.cfg" (lib.generators.toGitINI { user.email = "fcuny@roblox.com"; });
- }
- {
- condition = "hasconfig:remote.*.url:git@github.com:Roblox/**";
- path = pkgs.writeText "username.cfg" (lib.generators.toGitINI { user.email = "fcuny@roblox.com"; });
- }
- {
- condition = "hasconfig:remote.*.url:https://github.com/Roblox/**";
- path = pkgs.writeText "username.cfg" (lib.generators.toGitINI { user.email = "fcuny@roblox.com"; });
- }
- {
- condition = "hasconfig:remote.*.url:https://github.rbx.com/*/**";
- path = pkgs.writeText "username.cfg" (lib.generators.toGitINI { user.email = "fcuny@roblox.com"; });
- }
- ];
-
- ignores = [
- ".DS_Store"
- ".aider.*"
- ".direnv"
- ".envrc"
- ];
-
- extraConfig = {
- core.whitespace = "trailing-space,space-before-tab";
- color.ui = true;
-
- # nicer output
- column.ui = "auto";
-
- # https://adamj.eu/tech/2024/01/18/git-improve-diff-histogram/
- diff.algorithm = "histogram";
-
- init.defaultBranch = "main";
-
- # https://blog.gitbutler.com/how-git-core-devs-configure-git/
- push = {
- # abort if the remote branch does not match the local one
- default = "simple";
- autoSetupRemote = true;
- followTags = true;
- };
-
- fetch = {
- prune = true;
- pruneTags = true;
- all = true;
- };
-
- pull.rebase = true;
-
- rebase = {
- autosquash = true;
- updateRefs = true;
- # 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";
- sort = "authordate";
- };
-
- url = {
- "ssh://git@github.rbx.com/" = {
- insteadOf = "https://github.rbx.com/";
- };
- };
- };
- };
-}