|
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: