[user]
	name = Matej Janežič
	email = janezic.mj@gmail.com
	signingkey = AF349EECC849D87B790E88FF6318FFB7DB374B7D

[commit]
	gpgsign = true
	verbose = true

; NOTE:(@janezicmatej) github/gitlab don't support these
; [push]
;	gpgsign = true

[core]
	autocrlf = input
	editor = nvim

[init]
	defaultBranch = main

[rebase]
	updateRefs = true

[rerere]
	enabled = true
	autoUpdate = true

[merge]
	tool = nvimdiff
	conflictStyle = zdiff3

[mergetool]
	keepBackup = false
	writeToTemp = true

[mergetool "nvimdiff"]
	layout = "LOCAL,BASE,REMOTE / MERGED"

[diff]
	tool = nvimdiff
	algorithm = histogram
	colorMoved = plain
	mnemonicPrefix = true

[difftool "nvimdiff"]
	cmd = nvim -d "$LOCAL" "$REMOTE"

[alias]
	blame-ignore = "config blame.ignoreRevsFile .git-blame-ignore-revs"
	# re-sign <upstream>..<branch> as the repo identity, keeping trees and merge topology
	sign-branch = "!~/.config/bin/git-sign-branch --reset-author"
	# list every commit in <range> without a good signature; exits 1 if any, git's status if the range is bad
	check-signed = "!f() { log=$(git log --format='%G? %h %s' \"${1:-main..HEAD}\") || exit; bad=$(printf '%s\\n' \"$log\" | grep -v -e '^[GU] ' -e '^$'); [ -z \"$bad\" ] && echo 'all signed' || { printf '%s\\n' \"$bad\"; exit 1; }; }; f"

[branch]
	sort = -committerdate

[tag]
	sort = version:refname

[help]
	autoCorrect = prompt

[maintenance]
	auto = true
	strategy = incremental

[includeIf "gitdir:~/git/git.aflabs.org/"]
	path = ~/.config/git/config.d/aflabs.conf

[includeIf "gitdir:~/git/gitlab.com/flarenetwork/"]
	path = ~/.config/git/config.d/flare.conf

[includeIf "gitdir:~/git/gitlab.com/flare-foundation/"]
	path = ~/.config/git/config.d/flare.conf
