raylu 2 жил өмнө
parent
commit
cd23967766
1 өөрчлөгдсөн 28 нэмэгдсэн , 0 устгасан
  1. 28 0
      git-who

+ 28 - 0
git-who

@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+'''
+git blame a file repeatedly, showing the blame at previous versions
+'''
+
+import re
+import subprocess
+import sys
+
+def main():
+	commit = 'HEAD'
+	while True:
+		blame = subprocess.Popen(['git-blame', *sys.argv[1:], commit],
+				stdout=subprocess.PIPE)
+		try:
+			blame = subprocess.Popen(['delta', '--color-only'],
+					stdin=blame.stdout, stdout=subprocess.PIPE)
+		except FileNotFoundError:
+			pass
+		fzf = subprocess.run(['fzf', '--no-sort', '--tiebreak=index', '--reverse', '--ansi'],
+				stdin=blame.stdout, stdout=subprocess.PIPE, text=True)
+		blame.wait()
+		if fzf.returncode in (1, 130): # no match, esc
+			return
+		commit = re.search('[0-9a-f]{7,40}', fzf.stdout).group(0) + '^'
+
+if __name__ == '__main__':
+	main()