diff options
Diffstat (limited to 'articles/some_quick_git_diff_tips.org')
-rw-r--r-- | articles/some_quick_git_diff_tips.org | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/articles/some_quick_git_diff_tips.org b/articles/some_quick_git_diff_tips.org new file mode 100644 index 0000000..e9d3f39 --- /dev/null +++ b/articles/some_quick_git_diff_tips.org @@ -0,0 +1,56 @@ +#+TITLE: Some quick git diff tips + +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: + + #+BEGIN_SRC conf + [diff "org"] + xfuncname = "^\\*+.*" + #+END_SRC + + 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: + + #+BEGIN_EXAMPLE + ,*.org diff=org + #+END_EXAMPLE + +* 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: + + #+BEGIN_SRC conf + [diff "lisp"] + xfuncname = "^\\([^ ]+ [^ ]+" + #+END_SRC + + Which should show the opening parenthesis and the first two words. + For example: + + #+BEGIN_EXAMPLE + (defun some-function-name + (defclass my-awesome-class + (define-route this-strange-route + #+END_EXAMPLE + + And then put in your ~$XDG_CONFIG_HOME/git/attributes~ or + ~$HOME/.config/git/attributes~: + + #+BEGIN_EXAMPLE + ,*.lisp diff=lisp + ,*.el diff=lisp + ,*.hy diff=lisp + ,*.scm diff=lisp + #+END_EXAMPLE + + And possibly any other lisp-like language files you can think of. |