From 749cedb16205c16566545436019ae2eefa056bd4 Mon Sep 17 00:00:00 2001
From: Marty Oehme <contact@martyoeh.me>
Date: Fri, 28 Feb 2025 14:04:41 +0100
Subject: [PATCH] jj: Change oneline and summary log template

Summary logs are changed to a little nicer presentation (from --summary
to 'builtin_log_compact_full_description' template).

Oneline logs have a changed order. Keep the revID as first thing, but
then show bookmarks/tags/head and descriptions. Only afterwards
show email, timesatmp, commitID since I am less interested in them
generally when viewing oneline commits (to get an overview of the last
changes and my current position).
---
 bootstrap/system-packages/etc/pacman.conf | 100 ----------------------
 vcs/jj/config/jj/config.toml              |  33 +++++++
 vcs/jj/config/sh/alias.d/jj.sh            |   4 +-
 3 files changed, 35 insertions(+), 102 deletions(-)
 delete mode 100644 bootstrap/system-packages/etc/pacman.conf

diff --git a/bootstrap/system-packages/etc/pacman.conf b/bootstrap/system-packages/etc/pacman.conf
deleted file mode 100644
index 922ac08..0000000
--- a/bootstrap/system-packages/etc/pacman.conf
+++ /dev/null
@@ -1,100 +0,0 @@
-#
-# /etc/pacman.conf
-#
-# See the pacman.conf(5) manpage for option and repository directives
-
-#
-# GENERAL OPTIONS
-#
-[options]
-# The following paths are commented out with their default values listed.
-# If you wish to use different paths, uncomment and update the paths.
-#RootDir     = /
-#DBPath      = /var/lib/pacman/
-#CacheDir    = /var/cache/pacman/pkg/
-#LogFile     = /var/log/pacman.log
-#GPGDir      = /etc/pacman.d/gnupg/
-#HookDir     = /etc/pacman.d/hooks/
-HoldPkg     = pacman glibc
-#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
-#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
-#CleanMethod = KeepInstalled
-Architecture = auto
-
-# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
-#IgnorePkg   =
-#IgnoreGroup =
-
-#NoUpgrade   =
-#NoExtract   =
-
-# Misc options
-UseSyslog
-Color
-#NoProgressBar
-CheckSpace
-VerbosePkgLists
-ParallelDownloads = 5
-
-# By default, pacman accepts packages signed by keys that its local keyring
-# trusts (see pacman-key and its man page), as well as unsigned packages.
-SigLevel    = Required DatabaseOptional
-LocalFileSigLevel = Optional
-#RemoteFileSigLevel = Required
-
-# NOTE: You must run `pacman-key --init` before first using pacman; the local
-# keyring can then be populated with the keys of all official Arch Linux
-# packagers with `pacman-key --populate archlinux`.
-
-#
-# REPOSITORIES
-#   - can be defined here or included from another file
-#   - pacman will search repositories in the order defined here
-#   - local/custom mirrors can be added here or in separate files
-#   - repositories listed first will take precedence when packages
-#     have identical names, regardless of version number
-#   - URLs will have $repo replaced by the name of the current repo
-#   - URLs will have $arch replaced by the name of the architecture
-#
-# Repository entries are of the format:
-#       [repo-name]
-#       Server = ServerName
-#       Include = IncludePath
-#
-# The header [repo-name] is crucial - it must be present and
-# uncommented to enable the repo.
-#
-
-# The testing repositories are disabled by default. To enable, uncomment the
-# repo name header and Include lines. You can add preferred servers immediately
-# after the header, and they will be used before the default mirrors.
-
-#[testing]
-#Include = /etc/pacman.d/mirrorlist
-
-[core]
-Include = /etc/pacman.d/mirrorlist
-
-[extra]
-Include = /etc/pacman.d/mirrorlist
-
-#[community-testing]
-#Include = /etc/pacman.d/mirrorlist
-
-[community]
-Include = /etc/pacman.d/mirrorlist
-
-# If you want to run 32 bit applications on your x86_64 system,
-# enable the multilib repositories as required here.
-
-#[multilib-testing]
-#Include = /etc/pacman.d/mirrorlist
-
-[multilib]
-Include = /etc/pacman.d/mirrorlist
-
-# An example of a custom package repository.  See the pacman manpage for
-# tips on creating your own repositories.
-#[custom]
-#SigLevel = Optional TrustAll
-#Server = file:///home/custompkgs
diff --git a/vcs/jj/config/jj/config.toml b/vcs/jj/config/jj/config.toml
index 3b87200..9d5368f 100644
--- a/vcs/jj/config/jj/config.toml
+++ b/vcs/jj/config/jj/config.toml
@@ -20,6 +20,7 @@ pager = "delta"
 format = "git" # for the time being to use delta well
 
 [templates]
+# Add git diffs to commit drafts
 draft_commit_description = '''
 concat(
   description,
@@ -32,6 +33,38 @@ concat(
 )
 '''
 
+[template-aliases]
+# Changed order of normal oneliner around:
+# keep revID, but then first thing bookmarks/tags/head and descriptions
+# only afterwards show email, timesatmp, commitID since I am less interested
+builtin_log_oneline = '''
+if(root,
+  format_root_commit(self),
+  label(if(current_working_copy, "working_copy"),
+    concat(
+      separate(" ",
+        format_short_change_id_with_hidden_and_divergent_info(self),
+        if(conflict, label("conflict", "conflict")),
+        bookmarks,
+        tags,
+        if(git_head, label("git_head", "git_head()")),
+        if(description,
+          description.first_line(),
+          label(if(empty, "empty"), description_placeholder),
+        ),
+        if(author.email(), author.email().local(), email_placeholder),
+        format_timestamp(commit_timestamp(self)),
+        working_copies,
+        format_short_commit_id(commit_id),
+        if(config("ui.show-cryptographic-signatures").as_boolean(),
+          format_short_cryptographic_signature(signature)),
+        if(empty, label("empty", "(empty)")),
+      ) ++ "\n",
+    ),
+  )
+)
+'''
+
 [revsets]
 log = "ancestors(@, 5) | ancestors(trunk()..(visible_heads() & mine()), 2) | trunk()"
 
diff --git a/vcs/jj/config/sh/alias.d/jj.sh b/vcs/jj/config/sh/alias.d/jj.sh
index a7f4606..457b5cc 100644
--- a/vcs/jj/config/sh/alias.d/jj.sh
+++ b/vcs/jj/config/sh/alias.d/jj.sh
@@ -51,8 +51,8 @@ alias jab="jj abandon"
 alias J="jj log -r 'all()'" # mirror default command being log
 alias jl="jj log -T builtin_log_oneline"
 alias JL="jj log -T builtin_log_oneline -r 'all()'"
-alias jlo="jj log --summary"
-alias JLO="jj log --summary -r 'all()'"
+alias jlo="jj log --summary -T builtin_log_compact_full_description"
+alias JLO="jj log --summary -T builtin_log_compact_full_description -r 'all()'"
 alias jloo="jj log --patch"
 alias JLOO="jj log --patch -r 'all()'"
 alias jol="jj op log"