]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - gitconfig.in
gitconfig: enable diff.mnemonicprefix
[config/dotfiles.git] / gitconfig.in
index a04b7574ab23ed255839f6f7f56f7b9b050613d2..00045f4951e2c0a9620e908643a1de0c51c07085 100644 (file)
@@ -1,6 +1,6 @@
 # Global Git configuration file.
 
-# Copyright (C) 2011-2013  Simon Ruderich
+# Copyright (C) 2011-2015  Simon Ruderich
 #
 # This file is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -29,7 +29,7 @@
        # Hunk header.
        frag = magenta bold
        # Function in hunk header.
-       function = magenta bold
+       func = blue bold
        # Removed lines.
        old = red bold
        # Added lines.
        # Commit headers.
        commit = cyan
 
+# GNU grep-like colors.
+[color "grep"]
+       filename = magenta
+       linenumber = green
+
 [core]
        editor = vim
        # Global gitattributes file. Thanks to canton7 in #git on Freenode
        c   = commit --verbose
        ca  = commit --verbose --amend
        cad = commit --verbose --amend --date=
-       d   = diff --patience
-       dw  = diff --patience --color-words
-       dc  = diff --patience --cached
-       dcw = diff --patience --cached --color-words
+       d   = diff
+       dw  = diff --color-words
        ds  = diff --stat
+       dc  = diff --cached
+       dcw = diff --cached --color-words
+       dcs = diff --cached --stat
+       g   = grep
+       gi  = grep --ignore-case
        s   = status
        l   = log
        ls  = log --stat
-       lp  = log --patch --patience
-       lpw = log --patch --patience --color-words
+       lp  = log --patch
+       lpw = log --patch --color-words
        a   = add
        ap  = add --patch
        au  = add --update
+       rs  = reset
+       rsh = reset --hard
+       rsp = reset --patch
+       rv  = revert
+       cl  = clean -ndx
+       clf = clean -fdx
        ## Branches.
        co  = checkout
        b   = branch -a -v
+       br  = branch
        m   = merge
        mo  = merge origin/master
+       re  = rebase
+       rei = rebase --interactive
+       rec = rebase --continue
+       ## Submodules.
+       sm  = submodule
        ## Remote.
        f   = fetch
        t   = tag
        ss  = stash save
        ssk = stash save --keep-index
        ssu = stash save --include-untracked
-       sa  = stash apply
-       sp  = stash pop
+       sa  = stash apply --index
+       sp  = stash pop --index
 
        ## Custom commands.
        #
        # Detect copies and renames.
        renames = copy
 
+       # Diff algorithm to use.
+       algorithm = histogram
+
+       # Replace "a/" and "b/" prefix in diffs with characters describing the
+       # context (e.g. "i/"ndex and "w/"ork tree).
+       mnemonicprefix = true
+
        # Change the definition of a word as used by diff --color-words to be
        # shorter (not only spaces) and thus simplify the generated diffs.
        # Words ([a-zA-Z0-9_]+) are matched, or a single non-word character
        # changes to non-word characters are shown character wise (e.g. from
        # "==" to "!=" as "[-=-]{+!+}="); [-..-] is removal, {+..+} is
        # addition. See t/ for some tests and examples.
-       wordregex = [a-zA-Z0-9_]+|[^a-zA-Z0-9_]
+       wordRegex = [a-zA-Z0-9_]+|[^a-zA-Z0-9_]
 
 # Allow diffing of some binary files.
 #
-# `pdftotext-` is a wrapper around pdftotext which writes to stdout.
-# `sqlite3dump` is a wrapper calling `sqlite3 database-file .dump`.
+# "sh -c '..' -" is used when the programs require additional arguments. The
+# last "-" is argv[0] which is passed to sh, the real arguments are passed
+# after "-" by git.
 [diff "gzip"]
        textconv = gzip -d -c
 [diff "pdf"]
-       textconv = PWD/bin/pdftotext-
+       textconv = sh -c 'exec pdftotext "$@" -' -
 [diff "sqlite"]
-       textconv = PWD/bin/sqlite3dump
+       textconv = sh -c 'exec sqlite3 "$@" .dump' -
+
+[log]
+       # Display branches/tag names in log (same as log's --decorate option).
+       decorate = short
+       # If a single file is given to `git log`, automatically use --follow.
+       follow = yes
 
 [merge]
        tool = vimdiff
 
+       # Merge upstream branch if `git merge` is called without arguments.
+       defaultToUpstream = yes
+
 [push]
        # When running git push without a refspec push only the current
-       # branch, see man page git-config(1) for details.
+       # branch, see man page git-config(1) for details. Default since Git
+       # 2.0.
        default = simple
 
 [format]
 [transfer]
        # Automatically fsck objects when receiving them (respected by git
        # receive-pack and git fetch (>= 1.7.8, for fetch)).
-       fsckobjects = yes
+       fsckObjects = yes
 
 # vim: ft=gitconfig