Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on magit. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/magit.e> # or at <http://angg.twu.net/e/magit.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### # «.absolute-minimum» (to "absolute-minimum") # «.emacsclient» (to "emacsclient") # «.with-editor» (to "with-editor") # «.with-editor-fix» (to "with-editor-fix") # «.magit-deep-dive» (to "magit-deep-dive") # «.tkdiff» (to "tkdiff") # «.magit-on-eev-2020oct28» (to "magit-on-eev-2020oct28") # «.magit-on-eev-2023dec26» (to "magit-on-eev-2023dec26") # «.edrxrepl» (to "edrxrepl") # «.2020-merging» (to "2020-merging") # «.zaiste-video» (to "zaiste-video") # «.system-crafters-live» (to "system-crafters-live") # «.magit-compat-jan2023» (to "magit-compat-jan2023") # «.magit-merge-absorb» (to "magit-merge-absorb") # «.merge-dec-2023» (to "merge-dec-2023") # «.visual-walk-through» (to "visual-walk-through") # (find-angg ".emacs" "magit") ##### # # The episode of "Absolute Minimum" about magit # 2020oct28 # ##### # «absolute-minimum» (to ".absolute-minimum") # http://www.youtube.com/watch?v=NDP91RNgT4A Git in Spacemacs/Emacs with Magit # (find-youtubedl-links "/sda5/videos/" "Git in Spacemacs_Emacs with Magit" "NDP91RNgT4A" ".webm" "absminmagit") # (find-youtubedl-links "/sda5/videos/" nil "NDP91RNgT4A" nil "absminmagit") # (code-video "absminmagitvideo" "/sda5/videos/Git in Spacemacs_Emacs with Magit-NDP91RNgT4A.webm") # (find-absminmagitvideo) # (find-absminmagitvideo "0:00") # (find-absminmagitvideo "0:40" "with the git layer enabled") # (find-absminmagitvideo "0:51" "space g s -> magit-status") # (find-absminmagitvideo "0:58" "space g b -> magit-blame") # (find-absminmagitvideo "1:37" "diff") # (find-absminmagitvideo "2:05" "let's commit a file") # (find-absminmagitvideo "2:26" "visual selection") # (find-absminmagitvideo "5:20" "pull changes") # (find-absminmagitvideo "5:46" "with a nasty unmerged next to it") # (find-absminmagitvideo "5:59" "edit this file") # (find-absminmagitvideo "6:06" "new window called edit") # (find-absminmagitvideo "6:58" "merge local branches") # (find-absminmagitvideo "7:10" "git-blame") # (find-absminmagitvideo "7:28" "stashes") # (eev-avadj-mode) # (find-magitnode "Top") # (find-magitnode "Keystroke Index") ##### # # Configuring how magit uses emacsclient # 2020nov01 # ##### # «emacsclient» (to ".emacsclient") # (find-magitnode "Committing" "Emacsclient") # (find-magitnode "Editing Commit Messages" "emacsclient") # (find-magitnode "I am having problems committing" "emacsclient") # (find-magitnode "git-commit-mode isn't used when committing from the command-line" "EDITOR=emacsclient") # (find-magitnode "Debugging Tools" "emacsclient") # (find-magitgrep "grep --color -niH --null -e emacsclient *") # (find-magitfile "") * (server-start) * (getenv "EDITOR") * (setenv "EDITOR" (ee-expand "~/bigsrc/emacs26/lib-src/emacsclient")) ##### # # with-editor # 2021jan03 # ##### # «with-editor» (to ".with-editor") # https://github.com/magit/with-editor # https://github.com/magit/with-editor/issues/86 # (find-node "(with-editor)Top") # (find-node "(with-editor)Configuring With-Editor" "with-editor-locate-emacsclient") # (find-node "(with-editor)Debugging") # (find-epackage-links 'with-editor) # (find-epackage 'with-editor) # (code-c-d "witheditor" "~/.emacs.d/elpa/with-editor-20210117.2008/") # (find-witheditorfile "") # (find-witheditorfile "with-editor.el" "(defun with-editor-locate-emacsclient ") # (find-witheditorfile "with-editor.el" "(defun with-editor-debug") # (find-witheditorfile "with-editor.el" "(defmacro with-editor ") # (require 'with-editor) # (load "with-editor.el") # (load "with-editor.elc") # (with-editor-debug) # (find-eppp process-environment) # (find-efunctiondescr 'with-editor) # (find-efunction 'with-editor) (with-editor (find-eppp process-environment)) (find-eppp (with-editor process-environment)) # «with-editor-fix» (to ".with-editor-fix") # eval-buffer: Loading file /home/edrx/.emacs.d/elpa/with-editor-20210117.2008/with-editor.elc failed to provide feature ‘with-editor’ # (require 'with-editor) # (load "with-editor.el") # (load "with-editor.elc") ##### # # Magit Deep Dive - a talk at the EmacsConf 2019 # 2020dec06 # ##### # «magit-deep-dive» (to ".magit-deep-dive") # https://emacsconf.org/2019/talks/14/ # https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-14-magit-deep-dive--jonathanchu.webm # (code-video "megitdeepdvideo" "$S/https/mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-14-magit-deep-dive--jonathanchu.webm") # (find-megitdeepdvideo "0:00") # (find-megitdeepdvideo "2:53" "main four features") # (find-megitdeepdvideo "3:40" "command-log-mode") # (find-megitdeepdvideo "4:30" "g and G refresh") # (find-megitdeepdvideo "5:20" "?") # (find-megitdeepdvideo "6:30" "diffing") # (find-megitdeepdvideo "7:30" "hunk profiling") # (find-megitdeepdvideo "8:20" "C-c C-t to bring up the history") ##### # # How to use tkdiff with magit # 2020nov03 # ##### # «tkdiff» (to ".tkdiff") # (find-es "git" "gitk-tkdiff") ##### # # Using magit to work on the eev repo (2020oct28 version) # 2020oct28 # ##### # «magit-on-eev-2020oct28» (to ".magit-on-eev-2020oct28") # (find-eev2-links) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) * (eepitch-shell2) (TZ=GMT date; date) > ~/eev-current/VERSION rm -Rfv /tmp/eev-g mkdir /tmp/eev-g/ cd /tmp/eev-g/ && git clone https://github.com/edrx/eev.git . cd /tmp/eev-g/ git checkout UTF-8 # (find-gitk "/tmp/eev-g/") export PAGER=cat git log --oneline --graph --all -20 # Old versions: rm -Rfv /tmp/eev-o mkdir /tmp/eev-o/ cd /tmp/eev-o/ && git clone /tmp/eev-g/ . cd ~/eev-current/ && cp -v $(cd /tmp/eev-g/ && git ls-files) /tmp/eev-g/ cd /tmp/eev-g/ # cp -iv ~/eev-current/README-old.md . # cp -iv ~/eev-current/eev-helpful.el . # mv -iv README.md README-old.md # git rm README.md # git add README-old.md # git add eev-hydras.el # git add eev-helpful.el # cp -iv ~/eev-current/eev-rstdoc.el . # git add eev-rstdoc.el # cp -iv ~/eev-current/.dir-locals.el . # git add .dir-locals.el # git rm eev-pkg.el # git commit git ls-files --modified git ls-files --modified | my-cmp-tkdiff /tmp/eev-o/ /tmp/eev-g/ # (load "with-editor.el") # (magit-status "/tmp/eev-g/") # (find-gitk "/tmp/eev-g/") git checkout master git merge UTF-8 # (magit-status "/tmp/eev-g/") git checkout UTF-8 git merge UTF-8 # (find-magitnode "Status Buffer") # (find-magitnode "Staging and Unstaging") # (find-magitnode "Applying") # (find-magitnode "Pushing") # # (s)tage all changes # (c)ommit -> (c)reate # (P)ush -> (p)ushremote # https://github.com/edrx/eev ** (find-emacsclient-links) * (server-start) export EDITOR=emacsclient git checkout master git merge UTF-8 # (find-gitk "/tmp/eev-g/") # (magit-status "/tmp/eev-g/") * (server-stop) git checkout UTF-8 git merge master git merge origin/master # # (find-gitk "/tmp/eev-g/") # (find-eev2-links 2 "tar -cvzf /tmp/eev2.tgz") # (find-efunction 'find-eev2-links "tar -cvzf /tmp/eev2.tgz") cd /tmp/eev-g/ tar -cvzf /tmp/eev2.tgz $(cd /tmp/eev-g/ && git ls-files) tar -cvf /tmp/eev2.tar $(cd /tmp/eev-g/ && git ls-files) laf /tmp/eev2.tgz cp /tmp/eev2.tgz ~/TH/R/eev-current/ eev2-upload eev2-upload-tar # Test the tar: # (find-fline "/tmp/eep/") rm -Rv /tmp/eep/ mkdir /tmp/eep/ cd /tmp/eep/ wget http://angg.twu.net/eev-current/eev2.tar wget https://elpa.gnu.org/packages/eev-20211101.tar # (find-eev-install-intro "5.4. `package-install-file'") # (package-install-file "/tmp/eep/eev2.tar") # (package-install-file "/tmp/eep/eev-20211101.tar") ##### # # magit-on-eev-2023dec26 # 2023dec26 # ##### # «magit-on-eev-2023dec26» (to ".magit-on-eev-2023dec26") # (find-eev2-links) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # Optional: (TZ=GMT date; date) > ~/eev-current/VERSION rm -Rfv /tmp/eev-g mkdir /tmp/eev-g/ cd /tmp/eev-g/ && git clone https://github.com/edrx/eev.git . cd /tmp/eev-g/ git checkout UTF-8 # (find-gitk "/tmp/eev-g/") export PAGER=cat git log --oneline --graph --all -20 # Old versions: rm -Rfv /tmp/eev-o mkdir /tmp/eev-o/ cd /tmp/eev-o/ && git clone /tmp/eev-g/ . cd ~/eev-current/ && cp -v $(cd /tmp/eev-g/ && git ls-files) /tmp/eev-g/ cd /tmp/eev-g/ git ls-files --modified git ls-files --modified | my-cmp-tkdiff /tmp/eev-o/ /tmp/eev-g/ # (load "with-editor.el") # (magit-status "/tmp/eev-g/") # (find-gitk "/tmp/eev-g/") git checkout master git merge UTF-8 git commit -m "Trying to merge the branches." git mergetool --tool=emerge # (magit-status "/tmp/eev-g/") git checkout UTF-8 git merge master # (magit-status "/tmp/eev-g/") git mergetool --tool=tkdiff git mergetool --tool=emerge git checkout UTF-8 git checkout master git merge UTF-8 # (magit-status "/tmp/eev-g/") git checkout UTF-8 git merge UTF-8 ##### # # edrxrepl # 2020nov03 # ##### # «edrxrepl» (to ".edrxrepl") # https://github.com/edrx/edrxrepl # (find-angg "edrxrepl/edrxrepl.lua") # (find-angg "edrxrepl/README.org") # (find-angg "edrxrepl/") * (server-start) * (getenv "EDITOR") * (setenv "EDITOR" (ee-expand "~/bigsrc/emacs26/lib-src/emacsclient")) * (setenv "EDITOR" (ee-expand "~/bigsrc/emacs27/lib-src/emacsclient")) * * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) rm -Rfv /tmp/edrxrepl mkdir /tmp/edrxrepl/ cd /tmp/edrxrepl/ && git clone https://github.com/edrx/edrxrepl . cd /tmp/edrxrepl/ export PAGER=cat git log --oneline --graph --all -20 cd ~/edrxrepl/ && cp -v $(cd /tmp/edrxrepl/ && git ls-files) /tmp/edrxrepl/ cd /tmp/edrxrepl/ Small changes in the README. # (find-fline "/tmp/edrxrepl/") # (magit-status "/tmp/edrxrepl/") # # (s)tage all changes # (c)ommit -> (c)reate # (P)ush -> (p)ushremote # https://github.com/edrx/edrxrepl # https://github.com/edrx/edrxrepl#Introduction ##### # # 2020-doubt-about-merging # 2020dec17 # ##### # «2020-merging» (to ".2020-merging") # http://angg.twu.net/eev-videos/2020-doubt-about-merging.mp4 # (find-ssr-links "merg" "2020-doubt-about-merging") # (find-eevvideo-links "merg" "2020-doubt-about-merging" nil "0:00") # (code-video "mergvideo" "$S/http/angg.twu.net/eev-videos/2020-doubt-about-merging.mp4") # (find-mergvideo "0:00") # (find-mergvideo "0:33") # (find-git-intro "(find-gitk ") # (find-fline "/tmp/git-test/") # (find-fline "/tmp/git-test/repo1/") # (magit-status "/tmp/git-test/repo1/") # (find-efunctiondescr 'smerge-mode) # (find-efunction 'smerge-mode) # (find-efunctiondescr 'magit-diff-mode) # (find-efunction 'magit-diff-mode) # (find-node "(magit)Resolving Conflicts") # (find-node "(magit)Staging and Unstaging") # (find-node "(magit)Applying") # (find-magitfile "magit-commit.el" "(transient-define-prefix magit-commit ") ##### # # Emacs Magit - Getting Started - Emacs Doom 18 # 2021aug21 # ##### # «zaiste-video» (to ".zaiste-video") # https://www.youtube.com/watch?v=7ywEgcbaiys # (find-youtubedl-links "/sda5/videos/" nil "7ywEgcbaiys" nil "sclmagit") # (find-youtubedl-links "/sda5/videos/" "Emacs_Magit_-_Getting_Started_-_Emacs_Doom_18" "7ywEgcbaiys" ".mkv" "sclmagit") # (code-video "sclmagitvideo" "/sda5/videos/Emacs_Magit_-_Getting_Started_-_Emacs_Doom_18-7ywEgcbaiys.mkv") # (find-sclmagitvideo "0:00") ##### # # System Crafters Live! - Taking a look at Magit 3.0 - Streaming with Emacs Lisp # 2021aug21 # ##### # «system-crafters-live» (to ".system-crafters-live") # https://www.youtube.com/watch?v=6X0iDFh83-Y # (find-youtubedl-links "/sda5/videos/" nil "6X0iDFh83-Y" nil "sclmagit") # (find-youtubedl-links "/sda5/videos/" "System_Crafters_Live_-_Taking_a_look_at_Magit_3.0_Streaming_with_Emacs_Lisp" "6X0iDFh83-Y" ".mkv" "sclmagit") # (code-video "sclmagitvideo" "/sda5/videos/System_Crafters_Live_-_Taking_a_look_at_Magit_3.0_Streaming_with_Emacs_Lisp-6X0iDFh83-Y.mkv") # (find-sclmagitvideo "0:00") ##### # # A problem with magit and compat (jan 2023) # 2023jan22 # ##### # «magit-compat-jan2023» (to ".magit-compat-jan2023") # https://github.com/magit/magit/issues/4852 I use just package.el - I don't use use-package - so what worked for me was this: (package-initialize) (package-refresh-contents) (package-delete (ee-package-desc 'magit-section)) (package-delete (ee-package-desc 'magit)) (package-install 'magit-section) (package-install 'magit) but ee-package-desc is an eev-ism, defined here: <http://angg.twu.net/eev-current/eev-elinks.el.html#ee-package-desc>... the translation of the sexps above to a recipe that "normal" package.el users can use is: delete both magit-section and magit by hand, and install them again. Deleting and reinstalling only magit and compat did not work for me, but deleting and reinstalling magit and magit-section worked... but I don't know why and I don't have time to discover =( ##### # # magit-merge-absorb # 2023dec23 # ##### # «magit-merge-absorb» (to ".magit-merge-absorb") # (find-efunctiondescr 'magit-merge-absorb) # (find-efunction 'magit-merge-absorb) # (find-magitnode "Merging" "magit-merge-absorb") ##### # # Problems with merge, dec2023 # 2023dec28 # ##### # «merge-dec-2023» (to ".merge-dec-2023") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "/tmp/eev-a/") rm -Rfv /tmp/eev-a mkdir /tmp/eev-a/ cd /tmp/eev-a/ git clone /tmp/eev-g/ . export PAGER=cat # (find-gitk "/tmp/eev-g/") git branch git help branch rm -Rfv /tmp/eev-g mkdir /tmp/eev-g/ cd /tmp/eev-g/ && git clone https://github.com/edrx/eev.git . cd /tmp/eev-g/ git checkout UTF-8 # (find-gitk "/tmp/eev-g/") git log --oneline --graph --all -20 # Old versions: rm -Rfv /tmp/eev-o mkdir /tmp/eev-o/ cd /tmp/eev-o/ && git clone /tmp/eev-g/ . cd ~/eev-current/ && cp -v $(cd /tmp/eev-g/ && git ls-files) /tmp/eev-g/ cd /tmp/eev-g/ # cp -iv ~/eev-current/README-old.md . # cp -iv ~/eev-current/eev-helpful.el . # mv -iv README.md README-old.md # git rm README.md # git add README-old.md # git add eev-hydras.el # git add eev-helpful.el # cp -iv ~/eev-current/eev-rstdoc.el . # git add eev-rstdoc.el # cp -iv ~/eev-current/.dir-locals.el . # git add .dir-locals.el # git rm eev-pkg.el # git commit git ls-files --modified git ls-files --modified | my-cmp-tkdiff /tmp/eev-o/ /tmp/eev-g/ # (load "with-editor.el") # (magit-status "/tmp/eev-g/") # (find-gitk "/tmp/eev-g/") git checkout master git merge UTF-8 # (magit-status "/tmp/eev-g/") git checkout UTF-8 git merge UTF-8 ##### # # visual-walk-through # 2024jun09 # ##### # «visual-walk-through» (to ".visual-walk-through") # https://magit.vc/screenshots/ <alcor> >But I strongly believe that Magit is only what it is today because I had the liberty to innovate and make far reaching changes without having to constantly justify in great detail why those changes were necessary. Once Magit is part of Emacs core, that won't be possible anymore <alcor> https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00516.html # https://emacs.stackexchange.com/questions/24030/git-rm-from-magit # https://github.com/magit/magit/issues/3498 Add "delete" command to magit-file-popup #3498 # (find-magitnode "Running Git Manually" "!") https://github.com/magit/forge # Local Variables: # coding: utf-8-unix # End: