summaryrefslogtreecommitdiffstats
path: root/articles/some_quick_git_diff_tips.org
diff options
context:
space:
mode:
Diffstat (limited to 'articles/some_quick_git_diff_tips.org')
-rw-r--r--articles/some_quick_git_diff_tips.org56
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.