61 lines
1.6 KiB
Nix
61 lines
1.6 KiB
Nix
{
|
|
programs.jujutsu = {
|
|
enable = true;
|
|
settings = {
|
|
user = {
|
|
name = "Christoph Schmatzler";
|
|
email = "christoph@schmatzler.com";
|
|
};
|
|
git = {
|
|
sign-on-push = true;
|
|
subprocess = true;
|
|
write-change-id-header = true;
|
|
private-commits = "description(glob:'wip:*') | description(glob:'WIP:*') | description(exact:'')";
|
|
};
|
|
fsmonitor = {
|
|
backend = "watchman";
|
|
};
|
|
ui = {
|
|
default-command = "status";
|
|
diff-formatter = ":git";
|
|
pager = ["delta" "--pager" "less -FRX"];
|
|
diff-editor = ["nvim" "-c" "DiffEditor $left $right $output"];
|
|
movement = {
|
|
edit = true;
|
|
};
|
|
};
|
|
aliases = {
|
|
n = ["new"];
|
|
tug = ["bookmark" "move" "--from" "closest_bookmark(@-)" "--to" "@-"];
|
|
stack = ["log" "-r" "stack()"];
|
|
retrunk = ["rebase" "-d" "trunk()"];
|
|
bm = ["bookmark"];
|
|
gf = ["git" "fetch"];
|
|
gp = ["git" "push"];
|
|
};
|
|
revset-aliases = {
|
|
"closest_bookmark(to)" = "heads(::to & bookmarks())";
|
|
"closest_pushable(to)" = "heads(::to & mutable() & ~description(exact:\"\") & (~empty() | merges()))";
|
|
"mine()" = "author(\"christoph@schmatzler.com\")";
|
|
"wip()" = "mine() ~ immutable()";
|
|
"open()" = "mine() ~ ::trunk()";
|
|
"current()" = "@:: & mutable()";
|
|
"stack()" = "reachable(@, mutable())";
|
|
};
|
|
templates = {
|
|
draft_commit_description = ''
|
|
concat(
|
|
coalesce(description, default_commit_description, "\n"),
|
|
surround(
|
|
"\nJJ: This commit contains the following changes:\n", "",
|
|
indent("JJ: ", diff.stat(72)),
|
|
),
|
|
"\nJJ: ignore-rest\n",
|
|
diff.git(),
|
|
)
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|