]> gitweb.fluxo.info Git - utils-git.git/commitdiff
Feat: adds mrlog
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 9 Dec 2025 11:40:31 +0000 (08:40 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 9 Dec 2025 11:40:31 +0000 (08:40 -0300)
mrlog [new file with mode: 0755]

diff --git a/mrlog b/mrlog
new file mode 100755 (executable)
index 0000000..a957bb5
--- /dev/null
+++ b/mrlog
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+#
+# Builds a timeline from one of more repositories, using mr(1).
+#
+# Accepts git-log(1) parameters, like
+#
+#   --since=<date>
+#   --after=<date>
+#
+# Examples:
+#
+#   mrtimeline --since='1 day ago' --date=relative
+#   watch -n 120 "mrtimeline --since='1 week ago' --date=relative"
+#
+
+DIRNAME="`dirname $0`"
+BASENAME="`basename $0`"
+
+function run_mrlog {
+  if [ ! -e ".git" ]; then
+    exit 1
+  fi
+
+  local repo="`git rev-parse --show-toplevel`"
+  local name="`basename $repo`"
+
+  #git log $* --format=format:"%aI REPO %h %s" | sed "s/ REPO / $name /"
+  #git log $* --format=format:"%aI REPO %h %s" | sed "s/ REPO / $name\t\t /"
+  #git log $* --format=format:"%aI REPO %<(8) %h %s" | sed "s/ REPO / $name /"
+  #git log $* --format=format:"%aI REPO %>(20) %h %s" | sed "s/ REPO / $name /"
+  #git log $* --format=format:"%aI|||REPO|||%h|||%>(100,trunc)%s" | sed "s/REPO/ $name /"
+  git log "$*" --format=format:"%aI|||REPO|||%h|||%s" | sed "s/REPO/ $name /"
+}
+
+function run_mrtimeline {
+  #mr run $DIRNAME/mrlog $* | grep -v "^mr run:" | sort -r | less
+  mr run $DIRNAME/mrlog "$*" | grep -v "^mr run:" | sort -r | column -s '|||' -t -o ' ' | less
+}
+
+# Dispatch
+run_${BASENAME} "$*"