path: root/
diff options
Diffstat (limited to '')
1 files changed, 51 insertions, 0 deletions
diff --git a/ b/
new file mode 100644
index 0000000..12a728d
--- /dev/null
+++ b/
@@ -0,0 +1,51 @@
+title: Some quick git diff tips
+tags: org-mode, lisp, config, git
+date: 2013-08-11 00:54
+format: md
+A couple of quick tips. As you possibly know you can specify some
+options to be used for diffs (and other things) per file type. The one
+I'm interested in is the function name.
+## For org-mode
+The primary way of identifying which part of an org-mode document a
+change occurs in seems to me to be the heading. So, in your
+`$HOME/.gitconfig` put:
+ [diff "org"]
+ xfuncname = "^\\*+.*"
+Which should show any lines starting with one or more `*` characters.
+And then in `$XDG_CONFIG_HOME/git/attributes` or
+`$HOME/.config/git/attributes` put:
+ ,*.org diff=org
+## For lisp and lisp-like langauges
+For anything that resembles lisp (so Common Lisp, Emacs Lisp, Hy,
+scheme, etc.) I would think that the easiest thing to do is just see
+the closes top-level form. So, in your `$HOME/.gitconfig` put:
+ [diff "lisp"]
+ xfuncname = "^\\([^ ]+ [^ ]+"
+Which should show the opening parenthesis and the first two words. For
+ (defun some-function-name
+ (defclass my-awesome-class
+ (define-route this-strange-route
+And then put in your `$XDG_CONFIG_HOME/git/attributes` or
+ ,*.lisp diff=lisp
+ ,*.el diff=lisp
+ ,*.hy diff=lisp
+ ,*.scm diff=lisp
+And possibly any other lisp-like language files you can think of.