X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=gitconfig.m4;h=263723c519c1e4029eefd3bf003f3302ad1c8cfb;hb=43c920771edb6c465a3f21541bf6e4137ed9e023;hp=7d8d6c4466b683e812feb87a77dbc4a91df5151c;hpb=2eef5463417d581034bfbacb016114d0a5be3434;p=config%2Fdotfiles.git diff --git a/gitconfig.m4 b/gitconfig.m4 index 7d8d6c4..263723c 100644 --- a/gitconfig.m4 +++ b/gitconfig.m4 @@ -1,6 +1,6 @@ # Global Git configuration file. -# Copyright (C) 2011-2012 Simon Ruderich +# Copyright (C) 2011-2013 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 @@ -51,9 +51,9 @@ include(../lib.m4) tag = yes [alias] - # Shortcuts for often used commands. + ## Shortcuts for often used commands. # - # Local. + ## Local. c = commit --verbose ci = commit --verbose d = diff PATIENCE @@ -69,41 +69,72 @@ include(../lib.m4) a = add ap = add --patch au = add --update - # Branches. + ## Branches. co = checkout b = branch -a -v br = branch -a -v m = merge me = merge - # Remote. + mo = merge origin/master + ## Remote. f = fetch fe = fetch t = tag p = push pu = push - ru = remote update - # Patches. + # Parallel git remote update. Also strips unnecessary output. + ru = "! git remote \ + | xargs -d '\\n' -n1 -P0 git remote update 2>&1 \ + | sed '/^$/d; \ + /^Please make sure you have the correct access rights$/d; \ + /^and the repository exists\\.$/d;'" + # Push to all remotes. Thanks to albel727 in #git on Freenode + # (2011-06-04 16:06 CEST) for the idea. Modified to push in parallel + # and to strip unnecessary output. + rp = "! git remote \ + | xargs -d '\\n' -n1 -P0 git push 2>&1 \ + | sed '/^$/d; \ + /^Please make sure you have the correct access rights$/d; \ + /^and the repository exists\\.$/d;'" + ## Patches. fp = format-patch - # Misc. - fs = fsck --strict --full + ## Maintenance. + # (Redirection of stderr is necessary to prevent missing output with + # my "color stderr" solution in Zsh.) + fs = ! git fsck --strict --full 2>&1 + fg = ! git fs && git gc --aggressive 2>&1 # fsck and compress repo + ## Misc. sl = stash list ss = stash save - sa = stash apply ssk = stash save --keep-index + sa = stash apply + sp = stash pop - # Custom commands. + ## Custom commands. # - # tig-like log view. - glog = log --pretty=oneline --graph --all - # Push to all remotes. Thanks to albel727 in #git on Freenode - # (2011-06-04 16:06 CEST) for the idea. - rp = ! git remote | xargs -L1 -I{} git push {} + # tig-like log view. Similar to the following but with author/date + # information. --pretty=format is not used because it doesn't allow + # precise enough control over formats and colors. + # + # tig = log --pretty=oneline --graph --all --decorate --abbrev-commit + tig = ! TIG | less [diff] # Detect copies and renames. renames = copy + # 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 + # ([^a-zA-Z0-9_]), therefore changes to words are shown in complete + # (e.g. from "word" to "newword" as "[-word-]{+newword+}"), but + # 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_] + # 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`. [diff "gzip"] @@ -126,4 +157,9 @@ FI # replies to the first one. thread = shallow -# vim: ft=gitconfig +[receive] + # Automatically fsck objects when receiving them (respected by git + # receive-pack and git fetch (>= 1.7.8, for fetch)). + fsckobjects = true + +# vim: ft=gitconfig noet