Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on ELPA (and MELPA). # # 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/elpa.e> # or at <http://angg.twu.net/e/elpa.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/>. # ####### # «.email-2021jan03» (to "email-2021jan03") # «.answer» (to "answer") # «.tmp-eev-elpa» (to "tmp-eev-elpa") # «.elpa-statistics» (to "elpa-statistics") # (find-esgrep "grep --color -nH --null -e elpa *.e") # (find-es "eev" "eev-in-elpa") # (find-es "eev" "git-merge-elpa") # (find-es "emacs" "elpa-git") # (find-es "magit" "magit-on-eev-2020oct28") # (find-es "git" "git-remote") # (find-es "magit" "emacsclient") * (server-start) * (getenv "EDITOR") * (setenv "EDITOR" (ee-expand "~/bigsrc/emacs27/lib-src/emacsclient")) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (TZ=GMT date; date) > ~/eev-current/VERSION $EDITOR /tmp/o 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 git remote -v git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git git remote -v git fetch elpa # warning: redirecting to http://git.savannah.gnu.org/r/emacs/elpa.git/ git merge elpa/externals/eev git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git git fetch elpa ##### # # email-2021jan03 # 2021jan04 # ##### # «email-2021jan03» (to ".email-2021jan03") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) Hi Stefan, I haven't been able to reproduce your error... I am using this script to create copies of the repositories for ELPA and eev inside /tmp/eev-elpa/ in a way that lets me perform tests quickly, # Create a setting in /tmp/eev-elpa in which # it is easy to perform tests quickly. # It takes me about 15 seconds to run all this. rm -Rf /tmp/eev-elpa mkdir /tmp/eev-elpa/ # Clone ELPA. # cp -a ~/usrc/elpa /tmp/eev-elpa/ # ^ This only works because I have a copy of the elpa repo at ~/usrc/... # The standard way to do this would be (untested): # git clone http://git.sv.gnu.org/r/emacs/elpa.git # cd /tmp/eev-elpa/elpa/ git checkout externals/eev # Clone eev. # cd /tmp/eev-elpa/ git clone https://github.com/edrx/eev eev cd /tmp/eev-elpa/eev/ git checkout UTF-8 # Make our ELPA clone in /tmp/ see the eev repo (and "fetch" it). # cd /tmp/eev-elpa/elpa/ git remote -v git remote add eev /tmp/eev-elpa/eev/ git remote -v git fetch eev # Make our eev clone in /tmp/ see the ELPA repo (and "fetch" it). # This takes about 10s on my machine. # cd /tmp/eev-elpa/eev/ git remote -v git remote add elpa /tmp/eev-elpa/elpa git remote -v git fetch elpa # Inspect the two repositories. # cd /tmp/eev-elpa/eev/ && gitk . cd /tmp/eev-elpa/elpa/ && gitk . but I couldn't find a way to reproduce the message that you said that you got, "Can't push eev: not a fast-forward", and my attempts to merge eev/UTF-8 and elpa/externals/eev with and without magit - not included above - did not behave as I expected... it seems that my mental model of merging in git still need many fixes. Any hints? Can you check if your idea, i.e., `git rm eev-pkg.el` followed by `git commit` should take care of it works in that setting, and what are the exact commands for that? Cheer and thanks in advance =/, E. ##### # # answer # 2021jan04 # ##### # «answer» (to ".answer") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # Create a setting in /tmp/eev-elpa in which # it is easy to perform tests quickly. # It takes me about 15 seconds to run all this. rm -Rf /tmp/eev-elpa mkdir /tmp/eev-elpa/ # Clone ELPA. # cp -a ~/usrc/elpa /tmp/eev-elpa/ # ^ This only works because I have a copy of the elpa repo at ~/usrc/... # The standard way to do this would be (untested): # git clone http://git.sv.gnu.org/r/emacs/elpa.git # cd /tmp/eev-elpa/elpa/ git checkout externals/eev # Clone eev. # cd /tmp/eev-elpa/ git clone https://github.com/edrx/eev eev cd /tmp/eev-elpa/eev/ git checkout UTF-8 # Make our ELPA clone in /tmp/ see the eev repo (and "fetch" it). # cd /tmp/eev-elpa/elpa/ git remote -v git remote add eev /tmp/eev-elpa/eev/ git remote -v git fetch eev # Make our eev clone in /tmp/ see the ELPA repo (and "fetch" it). # This takes about 10s on my machine. # cd /tmp/eev-elpa/eev/ git remote -v git remote add elpa /tmp/eev-elpa/elpa git remote -v git fetch elpa # Inspect the two repositories. # cd /tmp/eev-elpa/eev/ && gitk . cd /tmp/eev-elpa/elpa/ && gitk . # ------------------------------ # (find-man "1 git-merge") # (find-man "1 git-merge" " --no-commit") cd /tmp/eev-elpa/eev/ git merge --no-commit elpa/externals/eev git commit -a -m "Merged eev with elpa/externals/eev." export PAGER=cat git log --oneline --graph --all -20 # ------------------------------ rm -Rf /tmp/eev-elpa mkdir /tmp/eev-elpa/ # Clone eev. # cd /tmp/eev-elpa/ git clone https://github.com/edrx/eev eev cd /tmp/eev-elpa/eev/ git checkout UTF-8 git remote -v git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git git remote -v git fetch elpa export PAGER=cat git log --oneline --graph --all -20 cd /tmp/eev-elpa/eev/ git checkout UTF-8 git merge --no-commit elpa/externals/eev git commit -a -m "Merged eev with elpa/externals/eev." # (magit-status "/tmp/eev-elpa/eev/") ##### # # Create local copies of the repos of eev and elpa at /tmp/eev-elpa/ # 2021jan03 # ##### # «tmp-eev-elpa» (to ".tmp-eev-elpa") # (find-es "emacs" "elpa-git") # (find-es "git" "git-remote") ##### # # elpa-statistics # 2024apr25 # ##### # «elpa-statistics» (to ".elpa-statistics") # https://mail.google.com/mail/u/0/#search/elpa/FMfcgzGxRxKKqJLqJclWdRwhrXLKwjnD # https://lists.gnu.org/archive/html/bug-gnu-emacs/2024-03/msg00443.html # https://lists.gnu.org/archive/html/bug-gnu-emacs/2024-03/msg00259.html bigstr = [==[ zones 2023.6.11 Zones of text - like multiple regions 69% ztree 1.0.6 Text mode directory tree 61% zuul 0.4.0 Interface to Zuul 55% ]==] --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "e.lua" lis = VTable {} for li in bigstr:gmatch("[^\n]+") do table.insert(lis, li) a,b,c,d = li:match("([^\t]*)\t([^\t]*)\t([^\t]*)\t([^\t]*)") -- print(d, a) if not a then print(li) end end = lis[1] --]] cd ~/usrc/elpa/ && gitk . gitk --branches="*" /tmp/eev-elpa/elpa/ gitk --branches="*eev*" /tmp/eev-elpa/elpa/ rm -v ~/.config/git/gitk # Part 2: # Try to merge the local eev repo and the local elpa repo. # My objective here is to make the current branch of eev # be "accessible from elpa/externals/eev by just a fast-forward". # Attempt A: # If I run the Part 1 and then these two lines, cd /tmp/eev-elpa/elpa/ git merge eev/UTF-8 # then the eev repo is changed, not the elpa repo!!! Why? # Attempt B: # If I run the Part 1 and then these two lines, cd /tmp/eev-elpa/eev/ git merge elpa/externals/eev # then the ELPA repo is changed, not the eev repo!!! Why? # From this point on cd ~/usrc/elpa/ git pull # From this point on cd /tmp/eev-elpa/eev/ git merge elpa/externals/eev # (find-man "git-merge") cd /tmp/eev-elpa/elpa/ git merge eev/UTF-8 gitk /tmp/eev-elpa/eev/ git checkout externals/eev git merge eev/UTF-8 git checkout eev/UTF-8 git merge externals/eev # (find-gitk "/tmp/eev-elpa/eev/") # (find-gitk "/tmp/eev-elpa/elpa/") # (find-man "1 gitk") # (find-man "1 gitk" "--branches[=<pattern>]") git merge eev/UTF-8 export PAGER=cat git log --oneline --graph --all -20 git remote -v git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git git remote -v git fetch elpa # warning: redirecting to http://git.savannah.gnu.org/r/emacs/elpa.git/ git merge elpa/externals/eev <parsnip> ,elpa-mirror is Create local emacs package repository. 15 seconds to install 115 packages. -- https://github.com/redguardtoo/elpa-mirror https://github.com/melpa/melpa/blob/master/recipes/magit https://melpa.org/#/?sort=downloads&asc=false <Aurora_v_kosmose> edrx: https://github.com/melpa/melpa <Aurora_v_kosmose> Just add it to their listing in a PR # (find-fline "~/LOGS/2024mar08.emacs" "elpa.git/tree/README") <lechner> Hi, how does the ELPA Git repo work, please? There is one big main branch, yet the modules are also available in separate branches called something like externals/debbugs. Thanks! <jbe> did you read the readme file? https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/README <jbe> if not, the paragraph starting on line 31 may be relevant to your question # Local Variables: # coding: utf-8-unix # End: