# -*- mode: conf; -*- # ---- core settings ---- [user] name = Sean Whitton email = spwhitton@spwhitton.name [alias] # # Convenient sync alias from # # http://stackoverflow.com/a/17722977. Updates master while # # allowing only fast-forward merges and does not require # # checking out master; can remain on current branch # sync = "!git checkout --quiet HEAD; git fetch origin master:master; git checkout --quiet -" # nice way to view history (most recent 30 commits). ov # ('overview') collapses linear commits with addition of # --simplify-by-decoration v = log --graph --full-history -n 30 --decorate --oneline --branches --all ov = log --graph --full-history -n 30 --decorate --oneline --branches --all --simplify-by-decoration s = status co = checkout sco = "!f() { git stash && git checkout \"$@\"; git stash pop; }; f" # # "git exec blah" runs blah from the root of the worktree since shell # # alias are always run from the root of the worktree # # https://stackoverflow.com/questions/957928/is-there-a-way-to-get-the-git-root-directory-in-one-command#comment9747528_957978 # exec = "!exec " # by David Bremner: nmam = "!f() { notmuch show --format=raw $1 | git am -; }; f" [core] # no pager thanks pager = excludesfile = ~/.globgitignore [fetch] fsckObjects = true [transfer] fsckObjects = true [receive] fsckObjects = true [color] # turn colour on in as many places as possible ui = true branch = auto diff = auto interactive = auto status = auto [push] default = upstream # use `mr push` when want --follow-tags followTags = false [pull] rebase = false [rebase] autoStash = true # ---- URIs ---- [url "git@git.spwhitton.name:"] pushInsteadOf = https://git.spwhitton.name/ pushInsteadOf = git://spwhitton.name/ pushInsteadOf = athena: # compat pushInsteadOf = demeter: # private repositories must clone by SSH [url "git@git.spwhitton.name:priv/"] pushInsteadOf = athenap: # compat insteadOf = athenap: # compat pushInsteadOf = demeterp: insteadOf = demeterp: [url "https://git.spwhitton.name/"] #insteadOf = git://spwhitton.name/ insteadOf = athena: # compat insteadOf = demeter: [url "spwhitton@athena.silentflame.com:"] insteadOf = athenah: [url "spwhitton@demeter.silentflame.com:"] insteadOf = demeterh: [url "gcrypt::rsync://athena:local/gcrypt/"] pushInsteadOf = athenag: insteadOf = athenag: [url "git@github.com:"] pushInsteadOf = https://github.com/ pushInsteadOf = http://github.com/ pushInsteadOf = git://github.com/ pushInsteadOf = github: [url "https://github.com/"] insteadOf = https://github.com/ insteadOf = http://github.com/ insteadOf = git://github.com/ insteadOf = github: [url "https://salsa.debian.org/"] insteadOf = salsa: [url "git@salsa.debian.org:"] pushInsteadOf = salsa: pushInsteadOf = https://salsa.debian.org/ [url "spwhitton@git.savannah.gnu.org:/srv/git/"] pushInsteadOf = https://git.savannah.gnu.org/git/ # ---- git-send-email ---- # how to use git-send-email: # # & # [sendemail] # aliasesfile = ~/doc/mutt-aliases # aliasfiletype = mutt confirm = always multiedit = true from = Sean Whitton annotate = true # ---- git-format-patch ---- [format] # There's no tilde expansion for this. When can assume git 2.31 can # set GIT_CONFIG_KEY_0=format.outputDirectory & # GIT_CONFIG_VALUE_0="$HOME/tmp" in ~/.shenv instead. outputDirectory = /home/spwhitton/tmp # ---- merging ---- [merge "dpkg-mergechangelogs"] name = debian/changelog merge driver driver = dpkg-mergechangelogs -m %O %A %B %A # ---- git-remote-gcrypt ---- # these defaults turn off anonymous recipients and thus should avoid # unnecessary key usage prompts [gcrypt] publish-participants = true participants = 0F56D0553B6D411B signingkey = 0F56D0553B6D411B # ---- git-archive ---- # make git-archive(1) DTRT with -o foo.tar.{xz,gz} [tar "tar.xz"] command = xz -c [tar "tar.gz"] command = gzip -c # ---- dgit ---- [dgit "default"] # just clean in the most aggressive way dgit knows how clean-mode = git-ff rm-old-changes = true distro = debian [dgit-distro "debian"] # default to uploading by ssh. Host-specific branches of # dotfiles repo can tweak this to ftp-master or ftp-eu if that # turns out to work better down their Internet pipes #upload-host = ssh-upload # ... except that ssh-upload is inconvenient until #691703 is resolved upload-host = ftp-master keyid = 8DC2487E51ABDD90B5C4753F0F56D0553B6D411B # ---- magit ---- [magit] hideCampaign = true # ---- git-annex ---- [annex] # manually upgrade to new repository layouts, once I know that # it won't break any scripts # (typically by toggling this to true, running locmaint to # upgrade them all, and toggling it back) autoupgraderepository = false # just running `git annex init` should not change what `git add` does gitaddtoannex = false skipunknown = true [advice] detachedHead = false