summaryrefslogtreecommitdiff
path: root/home/vcs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home/vcs.nix')
-rwxr-xr-x[-rw-r--r--]home/vcs.nix66
1 files changed, 62 insertions, 4 deletions
diff --git a/home/vcs.nix b/home/vcs.nix
index 4855b94..194798f 100644..100755
--- a/home/vcs.nix
+++ b/home/vcs.nix
@@ -21,10 +21,68 @@
};
remotes.origin.auto-track-bookmarks = "*";
remotes.github.auto-track-bookmarks = "*";
- aliases.tug = [
- "bookmark"
- "advance"
- ];
+ aliases = {
+ tug = [
+ "bookmark"
+ "advance"
+ "--to"
+ "coalesce(@ ~ empty(), @-)"
+ ];
+
+ fn = [
+ "util"
+ "exec"
+ "--"
+ "bash"
+ "-c"
+ ''
+ set -euo pipefail
+
+ cd "$JJ_WORKSPACE_ROOT"
+ bookmark="''${1:-main}"
+ jj git fetch
+ jj new "$bookmark"
+ ''
+ ""
+ ];
+
+ tcp = [
+ "util"
+ "exec"
+ "--"
+ "bash"
+ "-c"
+ ''
+ set -euo pipefail
+
+ cd "$JJ_WORKSPACE_ROOT"
+ jj tug
+ if [ "$#" -eq 0 ]; then
+ jj new
+ else
+ jj commit -m "$*"
+ fi
+ jj git push
+ ''
+ ""
+ ];
+
+ sp = [
+ "util"
+ "exec"
+ "--"
+ "bash"
+ "-c"
+ ''
+ set -euo pipefail
+
+ cd "$JJ_WORKSPACE_ROOT"
+ jj squash --ignore-immutable
+ jj git push
+ ''
+ ""
+ ];
+ };
};
};