summaryrefslogtreecommitdiff
path: root/.gitconfig
blob: a63c3acdb5b8c45fe7c7d06323db4b7bd0041c70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# -*- 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:
# <http://www.freedesktop.org/wiki/Software/PulseAudio/HowToUseGitSendEmail/>
# &
# <https://burzalodowa.wordpress.com/2013/10/05/how-to-send-patches-with-git-send-email/>
[sendemail]
        # aliasesfile = ~/doc/mutt-aliases
        # aliasfiletype = mutt
        confirm = always
        multiedit = true
        from = Sean Whitton <spwhitton@spwhitton.name>
        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 ~/.profile 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