From a060958a9346d3e45a598eeb8a707b1692eeda0e Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Fri, 30 Jun 2023 10:51:34 +0200 Subject: [PATCH] wip: org-mode git --- .config/git/config | 96 +++++++-------- org/config/git.org | 294 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 340 insertions(+), 50 deletions(-) create mode 100644 org/config/git.org diff --git a/.config/git/config b/.config/git/config index 0697d1f..5caa83a 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,113 +1,108 @@ # -*- indent-tabs-mode: t; -*- + [user] email = lucien@phundrak.com name = Lucien Cartier-Tilet signingkey = BD7789E705CB8DCA + [core] editor = emacsclient -c -a emacs whitespace = fix,-indent-with-non-tab,trailing-space - excludesfile = /home/phundrak/dotfiles/.gitignore_global -[web] - browser = firefox + excludesfile = /home/phundrak/.gitignore_global + +[pull] + rebase = true + +[init] + defaultBranch = main + [color] ui = auto + +[web] + browser = firefox + [alias] a = add --all aca = !git add --all && git commit --amend acan = !git add --all && git commit --amend --no-edit - #### b = branch bd = branch -d bdd = branch -D - #### c = commit -S ca = commit -Sa can = commit -Sa --no-edit cm = commit -Sm cam = commit -Sam - #### co = checkout cob = checkout -b cod = checkout develop - #### cl = clone - cl1 = clone --depth=1 - #### - d = diff -w - #### + cl1 = clone --depth1 f = fetch fp = fetch --prune - #### - l = log --oneline --graph --decorate - #### ps = push psf = push --force-with-lease pso = push origin psfo = push --force-with-lease origin - #### + pushall = !git remote | xargs -L1 git push + psl = !git remote | xargs -L1 git push + pullall = !git remote | xargs -L1 git pull + pll = !git remote | xargs -L1 git pull pl = pull pb = pull --rebase - #### r = rebase ra = rebase --abort rc = rebase --continue rd = rebase develop ri = rebase -i - ### rmf = rm -f rmd = rm -r rmdf = rm -rf - #### - s = status - #### sm = submodule sms = submodule status sma = submodule add smu = submodule update smui = submodule update --init smuir = submodule update --init --recursive - #### - staged = diff --cached - #### st = stash stc = stash clear stp = stash pop stw = stash show - #### - pushall = !git remote | xargs -L1 git push - psl = !git remote | xargs -L1 git push - pullall = !git remote | xargs -L1 git pull - pll = !git remote | xargs -L1 git pull - #### u = reset -- unstage = reset -- - #### + d = diff -w + l = log --oneline --graph --decorate + s = status + staged = diff --cached upstream = !git push -u origin HEAD + [sendemail] smtpserver = mail.phundrak.com smtpuser = lucien@phundrak.com smtpencryption = tls smtpserverport = 587 + +[credentials "smtp://lucien@phundrak.com@mail.phundrak.com:587"] + helper = "secret-tool lookup password email_lucien-phundrak-com" + [magithub] online = true [magithub "status"] includeStatusHeader = true includePullRequestsSection = true includeIssuesSection = true + [gpg] program = gpg2 -[mergetool.ediff] - cmd = emacs --eval \" (progn (defun ediff-write-merge-buffer () (let ((file ediff-merge-store-file)) (set-buffer ediff-buffer-C) (write-region (point-min) (point-max) file) (message \\\"Merge buffer saved in: %s\\\" file) (set-buffer-modified-p nil) (sit-for 1))) (setq ediff-quit-hook 'kill-emacs ediff-quit-merge-hook 'ediff-write-merge-buffer) (ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$BASE\\\" nil \\\"$MERGED\\\"))\" -[merge] - tool = ediff -[github] - user = phundrak [commit] gpgsign = true -[pull] - rebase = false -[init] - defaultBranch = main + +[merge] + tool = ediff + +[mergetool.ediff] + cmd = emacs --eval \" (progn (defun ediff-write-merge-buffer () (let ((file ediff-merge-store-file)) (set-buffer ediff-buffer-C) (write-region (point-min) (point-max) file) (message \\\"Merge buffer saved in: %s\\\" file) (set-buffer-modified-p nil) (sit-for 1))) (setq ediff-quit-hook 'kill-emacs ediff-quit-merge-hook 'ediff-write-merge-buffer) (ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$BASE\\\" nil \\\"$MERGED\\\"))\" [pager] diff = delta @@ -115,9 +110,6 @@ reflog = delta show = delta -[interactive] - diffFilter = delta --color-only - [delta] features = side-by-side line-numbers decorations whitespace-error-style = 22 reverse @@ -127,16 +119,20 @@ file-style = bold yellow ul file-decoration-style = none -[credentials "smtp://lucien@phundrak.com@mail.phundrak.com:587"] - helper = "secret-tool lookup password email_lucien-phundrak-com" -[filter "lfs"] - required = true - clean = git-lfs clean -- %f - smudge = git-lfs smudge -- %f - process = git-lfs filter-process +[interactive] + diffFilter = delta --color-only + +[github] + user = phundrak [url "https://phundrak@github.com"] insteadOf = https://github.com [url "https://phundrak@labs.phundrak.com"] insteadOf = https://labs.phundrak.com + +[filter "lfs"] + required = true + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process diff --git a/org/config/git.org b/org/config/git.org new file mode 100644 index 0000000..10f9086 --- /dev/null +++ b/org/config/git.org @@ -0,0 +1,294 @@ +# -*- indent-tabs-mode: t; -*- +#+title: Git configuration +#+setupfile: headers +#+PROPERTY: header-args :exports code :tangle no +#+PROPERTY: header-args:conf-unix :mkdirp yes :tangle ~/.config/git/config :exports code :noweb yes + +* Basic configuration +#+begin_src conf-unix +# -*- indent-tabs-mode: t; -*- +#+end_src + +#+begin_src conf-unix +[user] + email = lucien@phundrak.com + name = Lucien Cartier-Tilet + signingkey = BD7789E705CB8DCA +#+end_src + +#+begin_src conf-unix +[core] + editor = emacsclient -c -a emacs + whitespace = fix,-indent-with-non-tab,trailing-space + excludesfile = /home/phundrak/.gitignore_global +#+end_src + +#+begin_src conf-unix +[pull] + rebase = true +#+end_src + +#+begin_src conf-unix +[init] + defaultBranch = main +#+end_src + +#+begin_src conf-unix +[color] + ui = auto +#+end_src + +#+begin_src conf-unix +[web] + browser = firefox +#+end_src + +* Aliases +#+name: git-add-abbrev +| abbreviation | equivalent | +|--------------+------------------------------------------------| +| =a= | =add --all= | +| =aca= | =!git add --all && git commit --amend= | +| =acan= | =!git add --all && git commit --amend --no-edit= | + +#+name: abbrev-gen +#+begin_src emacs-lisp :tangle no :exports none :var abbrevs=git-push-abbrev :wrap "src conf-unix :tangle no" +(mapconcat (lambda (abbreviation) + (replace-regexp-in-string + (concat (regexp-quote "\\vert") (rx (? "{}"))) + "|" + (concat "\t" + (string-replace "=" "" (car abbreviation)) + " = " + (string-replace "=" "" (cadr abbreviation))))) + abbrevs + "\n") +#+end_src + +#+RESULTS: abbrev-gen +#+begin_src conf-unix :tangle no + ps = push + psf = push --force-with-lease + pso = push origin + psfo = push --force-with-lease origin + pushall = !git remote | xargs -L1 git push + psl = !git remote | xargs -L1 git push + pullall = !git remote | xargs -L1 git pull + pll = !git remote | xargs -L1 git pull +#+end_src + +#+name: git-branch-abbrev +| abbreviation | equivalent | +|--------------+------------| +| =b= | =branch= | +| =bd= | =branch -d= | +| =bdd= | =branch -D= | + +#+name: git-commit-abbrev +| abbreviation | equivalent | +|--------------+----------------------| +| =c= | =commit -S= | +| =ca= | =commit -Sa= | +| =can= | =commit -Sa --no-edit= | +| =cm= | =commit -Sm= | +| =cam= | =commit -Sam= | + +#+name: git-checkout-abbrev +| abbreviation | equivalent | +|--------------+------------------| +| =co= | =checkout= | +| =cob= | =checkout -b= | +| =cod= | =checkout develop= | + +#+name: git-clone-abbrev +| abbreviation | equivalent | +|--------------+-----------------| +| =cl= | =clone= | +| =cl1= | =clone --depth=1= | + +#+name: git-fetch-abbrev +| abbreviation | equivalent | +|--------------+---------------| +| =f= | =fetch= | +| =fp= | =fetch --prune= | + +#+name: git-push-abbrev +| abbreviation | equivalent | +|--------------+----------------------------------| +| =ps= | =push= | +| =psf= | =push --force-with-lease= | +| =pso= | =push origin= | +| =psfo= | =push --force-with-lease origin= | +| =pushall= | =!git remote \vert{} xargs -L1 git push= | +| =psl= | =!git remote \vert{} xargs -L1 git push= | +| =pullall= | =!git remote \vert{} xargs -L1 git pull= | +| =pll= | =!git remote \vert{} xargs -L1 git pull= | + +#+name: git-pull-abbrev +| abbreviation | equivalent | +|--------------+---------------| +| =pl= | =pull= | +| =pb= | =pull --rebase= | + +#+name: git-rebase-abbrev +| abbreviation | equivalent | +|--------------+-------------------| +| =r= | =rebase= | +| =ra= | =rebase --abort= | +| =rc= | =rebase --continue= | +| =rd= | =rebase develop= | +| =ri= | =rebase -i= | + +#+name: git-rm-abbrev +| abbreviation | equivalent | +|--------------+------------| +| =rmf= | =rm -f= | +| =rmd= | =rm -r= | +| =rmdf= | =rm -rf= | + +#+name: git-submodule-abbrev +| abbreviation | equivalent | +|--------------+-------------------------------------| +| =sm= | =submodule= | +| =sms= | =submodule status= | +| =sma= | =submodule add= | +| =smu= | =submodule update= | +| =smui= | =submodule update --init= | +| =smuir= | =submodule update --init --recursive= | + +#+name: git-stash-abbrev +| abbreviation | equivalent | +|--------------+-------------| +| =st= | =stash= | +| =stc= | =stash clear= | +| =stp= | =stash pop= | +| =stw= | =stash show= | + +#+name: git-unstage-abbrev +| abbreviation | equivalent | +|--------------+------------| +| =u= | =reset --= | +| =unstage= | =reset --= | + +#+name: git-single-abbrev +| abbreviation | equivalent | +|--------------+----------------------------------| +| =d= | =diff -w= | +| =l= | =log --oneline --graph --decorate= | +| =s= | =status= | +| =staged= | =diff --cached= | +| =upstream= | =!git push -u origin HEAD= | + +#+RESULTS: +: a = add --all +: aca = !git add --all && git commit --amend +: acan = !git add --all && git commit --amend --no-edit + +#+begin_src conf-unix +[alias] +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +#+end_src + +* Tools +** Sendemail +#+begin_src conf-unix +[sendemail] + smtpserver = mail.phundrak.com + smtpuser = lucien@phundrak.com + smtpencryption = tls + smtpserverport = 587 +#+end_src + +#+begin_src conf-unix +[credentials "smtp://lucien@phundrak.com@mail.phundrak.com:587"] + helper = "secret-tool lookup password email_lucien-phundrak-com" +#+end_src + +** Magit +#+begin_src conf-unix +[magithub] + online = true +[magithub "status"] + includeStatusHeader = true + includePullRequestsSection = true + includeIssuesSection = true +#+end_src + +** GPG +#+begin_src conf-unix +[gpg] + program = gpg2 +[commit] + gpgsign = true +#+end_src + +** Merge +#+begin_src conf-unix +[merge] + tool = ediff +#+end_src + +#+begin_src conf-unix +[mergetool.ediff] + cmd = emacs --eval \" (progn (defun ediff-write-merge-buffer () (let ((file ediff-merge-store-file)) (set-buffer ediff-buffer-C) (write-region (point-min) (point-max) file) (message \\\"Merge buffer saved in: %s\\\" file) (set-buffer-modified-p nil) (sit-for 1))) (setq ediff-quit-hook 'kill-emacs ediff-quit-merge-hook 'ediff-write-merge-buffer) (ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$BASE\\\" nil \\\"$MERGED\\\"))\" +#+end_src + +** Pager +#+begin_src conf-unix +[pager] + diff = delta + log = delta + reflog = delta + show = delta +#+end_src + +** Delta +#+begin_src conf-unix +[delta] + features = side-by-side line-numbers decorations + whitespace-error-style = 22 reverse + +[delta "decorations"] + commit-decoration-style = bold yellow box ul + file-style = bold yellow ul + file-decoration-style = none + +[interactive] + diffFilter = delta --color-only +#+end_src + +** Git forges +#+begin_src conf-unix +[github] + user = phundrak +#+end_src + +#+begin_src conf-unix +[url "https://phundrak@github.com"] + insteadOf = https://github.com + +[url "https://phundrak@labs.phundrak.com"] + insteadOf = https://labs.phundrak.com +#+end_src + +** LFS +#+begin_src conf-unix +[filter "lfs"] + required = true + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process +#+end_src