nix-config/modules/features/programs/cli/vc-jujutsu.nix
2026-04-24 01:17:04 -04:00

151 lines
3.6 KiB
Nix

{ ... }:
{
config.dendritic.features.jujutsu = {
homeModules = [
(
{ pkgs, ... }:
{
programs.jujutsu = {
enable = true;
settings = {
user = {
email = "gwg313@pm.me";
name = "gwg313";
};
signing = {
behavior = "own";
backend = "gpg";
};
revset-aliases = {
"closest_merge(to)" = "heads(::to & merges())";
};
aliases = {
set-trunk = [
"config"
"set"
"--repo"
"revset-aliases.'trunk()'"
];
stack = [
"rebase"
"--after"
"trunk()"
"--before"
"closest_merge(@)"
"--revision"
];
stage = [
"stack"
"closest_merge(@)+:: ~ empty()"
];
restack = [
"rebase"
"--onto"
"trunk()"
"--source"
"roots(trunk()..) & mutable()"
"--simplify-parents"
];
c = [ "commit" ];
ci = [
"commit"
"--interactive"
];
e = [ "edit" ];
i = [
"git"
"init"
"--colocate"
];
tug = [
"bookmark"
"move"
"--from"
"closest_bookmark(@-)"
"--to"
"@-"
];
log-recent = [
"log"
"-r"
"default() & recent()"
];
nb = [
"bookmark"
"create"
"-r"
"@-"
]; # new bookmark
upmain = [
"bookmark"
"set"
"main"
];
squash-desc = [
"squash"
"::@"
"-d"
"@"
];
rebase-main = [
"rebase"
"-d"
"main"
];
amend = [
"describe"
"-m"
];
pushall = [
"git"
"push"
"--all"
];
push = [
"git"
"push"
"--allow-new"
];
pull = [
"git"
"fetch"
];
dmain = [
"diff"
"-r"
"main"
];
l = [
"log"
"-T"
"builtin_log_compact"
];
lf = [
"log"
"-r"
"all()"
];
r = [ "rebase" ];
s = [ "squash" ];
si = [
"squash"
"--interactive"
];
};
};
};
home.packages = with pkgs; [
lazyjj
meld
];
}
)
];
};
}