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: