51 lines
1.4 KiB
Text
51 lines
1.4 KiB
Text
;;;;;
|
|
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
|
|
example:
|
|
|
|
(defun some-function-name
|
|
(defclass my-awesome-class
|
|
(define-route this-strange-route
|
|
|
|
And then put in your `$XDG_CONFIG_HOME/git/attributes` or
|
|
`$HOME/.config/git/attributes`:
|
|
|
|
,*.lisp diff=lisp
|
|
,*.el diff=lisp
|
|
,*.hy diff=lisp
|
|
,*.scm diff=lisp
|
|
|
|
And possibly any other lisp-like language files you can think of.
|