Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on CVS, RCS, rsync and friends.
#
# 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/cvs.e>
#           or at <http://angg.twu.net/e/cvs.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/>.
#
#######





# «.cvs_client»			(to "cvs_client")
# «.rsync»			(to "rsync")
# «.rsync_debian-test»		(to "rsync_debian-test")
# «.rsync_server»		(to "rsync_server")
# «.rsync_over_ssh»		(to "rsync_over_ssh")
# «.rsync-aidalgol»		(to "rsync-aidalgol")
# «.rsync_angg_slow_html»	(to "rsync_angg_slow_html")
# «.rsync-backup-2022»		(to "rsync-backup-2022")
# «.tar-backup-2023»		(to "tar-backup-2023")
# «.dired-rsync»		(to "dired-rsync")
# «.start-stop-daemon»		(to "start-stop-daemon")
# «.wanna-build»		(to "wanna-build")
# «.svnbook»			(to "svnbook")
# «.svn»			(to "svn")
# «.svn-branches»		(to "svn-branches")
# «.svn-rubikitch»		(to "svn-rubikitch")
# «.cvs-old-versions»		(to "cvs-old-versions")
# «.psvn.el»			(to "psvn.el")
# «.cvs-book»			(to "cvs-book")
# «.silas-tutorial»		(to "silas-tutorial")
# «.darcs»			(to "darcs")
# «.viewvc»			(to "viewvc")
# «.understanding-merging»	(to "understanding-merging")
# «.update-dP»			(to "update-dP")
# «.cvspass»			(to "cvspass")
# «.fossil»			(to "fossil")
# «.git-shallow-clone»		(to "git-shallow-clone")
# «.git-plumbing»		(to "git-plumbing")
# «.git-config»			(to "git-config")
# «.gitk»			(to "gitk")
# «.git»			(to "git")
# «.git.el»			(to "git.el")
# «.github-repo-create»		(to "github-repo-create")
# «.github-repo-setup»		(to "github-repo-setup")
# «.mercurial»			(to "mercurial")
# «.bot-ocaml»			(to "bot-ocaml")
# «.bzr»			(to "bzr")
# «.bzr-test»			(to "bzr-test")
# «.emacs-from-bzr»		(to "emacs-from-bzr")



# (find-es "git")
# (find-es "fossil")
# (find-esfile "rsync.e")




#####
#
# Downloading a package that exists only in CVS form
# 2000aug01
#
#####

# «cvs_client»  (to ".cvs_client")
#*
rm -Rv ~/tmp/cvs/
mkdir  ~/tmp/cvs/
cd     ~/tmp/cvs/
# (find-node "(grub)Obtaining and Building GRUB")
export CVSROOT=:pserver:anoncvs@anoncvs.gnu.org:/gd/gnu/anoncvsroot

cvs login
cvs checkout grub

# (find-fline "~/tmp/cvs/grub/")
# (find-fline "~/tmp/cvs/grub/CVS/")

#*


cd $S/http/www.gnu.org/
agrep -i cvs $(find *)

# (find-shttpw3 "www.gnu.org/server/standards/README.cvs.html")
# (find-shttpw3 "www.gnu.org/software/gnugo/devel.html")
# (find-shttpw3 "www.gnu.org/software/devel.html")

lynx http://www.gnu.org/software/devel.html

CVSROOT=:pserver:anoncvs@anoncvs.gnu.org:/gd/gnu/anoncvsroot





#####
#
# mod_virgule
# 2000sep08
#
#####

# http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=mod_virgule
# (find-shttpw3 "developer.gnome.org/tools/cvs.html")

rm -Rv ~/tmp/cvs/mod_virgule
mkdir  ~/tmp/cvs/mod_virgule
cd     ~/tmp/cvs/
export CVSROOT=:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
cvs login
cvs -z9 checkout mod_virgule






rm -Rv ~/tmp/cvs/
mkdir  ~/tmp/cvs/
cd     ~/tmp/cvs/
# (find-node "(grub)Obtaining and Building GRUB")
export CVSROOT=:pserver:anoncvs@anoncvs.gnu.org:/gd/gnu/anoncvsroot

cvs login
cvs checkout grub



# (find-status "cvs-buildpackage")
# (find-vldifile "cvs-buildpackage.list")
# (find-fline "/usr/doc/cvs-buildpackage/")



#####
#
# rsync
# 2000oct06 / 2021aug21
#
#####

# «rsync»  (to ".rsync")
# (find-status   "rsync")
# (find-vldifile "rsync.list")
# (find-udfile   "rsync/")
# (find-udfile "rsync/README.gz")
# (find-zsh "installeddebs | sort | grep rsync")
# (find-zsh "availabledebs | sort | grep rsync")
# (find-man "1 rsync")
# (find-man "1 rsync" "--archive, -a")
# (find-man "1 rsync" "--verbose, -v")
# (find-man "1 rsync" "--compress, -z")
# (find-man "1 rsync" "--progress")
# (find-man "1 rsync" "--ignore-times, -I")
# (find-man "5 rsyncd.conf")
# (find-man "5 rsyncd.conf")
# (find-man "5 rsyncd.conf" "When run via inetd")
# (find-fline "/etc/services" "rsync")
# (find-fline "/etc/inetd.conf" "rsync")

# «rsync_debian-test»  (to ".rsync_debian-test")
# (find-status "debian-test")
# (find-vldifile "debian-test.list")
# (find-fline "/usr/doc/debian-test/")
# (find-fline "/usr/doc/debian-test/README")
# (eeman "1 debian-test")

# (find-fline "/usr/lib/debian-test/tests/rsync")
#*
debian-test -v rsync	|& tee /tmp/odtr
# (find-fline "/tmp/odtr")
#*




#####
#
# rsync server
# 2000dec17
#
#####

# «rsync_server»  (to ".rsync_server")
#*
cd /tmp/
rm -Rv /tmp/from/
mkdir  /tmp/from/
rsync --help > /tmp/from/rsync-opts
laf    /tmp/from/

# (eeman "5 rsyncd.conf")
cat > rsyncd.conf <<'%%%'
pidfile = /tmp/rsyncd.pid
[from]
  path = /tmp/from/
  comment = test area
%%%

start-stop-daemon -S --exec /usr/bin/rsync \
  -- --daemon --config=/tmp/rsyncd.conf

#*
# (find-fline "/etc/services" "rsync")
ps ax | grep rsync
lsof | egrep 'COMMAND|rsync'
# and "*:rsync" means 873...
grep rsync /etc/services

#*
rm -Rv /tmp/to/
mkdir  /tmp/to/
cd     /tmp/to/
# (eeman "1 rsync")
# (eeman "1 rsync" "CONNECTING TO AN RSYNC SERVER")
# (find-fline "/usr/doc/rsync/README.gz")
# (find-fline "/tmp/from/rsync-opts")
# rsync -avvvvz rsync://127.0.0.1/from/ .

rsync 127.0.0.1::

rsync -avz rsync://127.0.0.1/from/ .
laf

#*
start-stop-daemon -K --pidfile /tmp/rsyncd.pid
#sleep 1
ps ax | grep rsync

#*




#####
#
# rsync over ssh
# 2001nov05 / 2023oct03
#
#####

# «rsync_over_ssh»  (to ".rsync_over_ssh")
# (find-man "1 rsync" "-e, --rsh=COMMAND\n")
# (find-man "1 rsync" "-e" "ssh -l ssh-user")
# (find-man "1 ssh" "-p port")

# Old:
#*
cp -v $S/ftp/ftp.debian.org/debian/pool/main/g/gcc-2.95/g++-2.95_2.95.4-0.010810_hurd-i386.deb /tmp/

cd /tmp/
rsync -e ssh -v -v -v -v edrx@sucuri:snarf/ftp/ftp.debian.org/debian/pool/main/g/gcc-2.95/g++-2.95_2.95.4-0.010810_hurd-i386.deb g++-2.95_2.95.4-0.010810_hurd-i386.deb
#*




#####
#
# rsync-aidalgol
# 2021feb04
#
#####

# «rsync-aidalgol»  (to ".rsync-aidalgol")
# (find-fline "~/LOGS/2021feb03.emacs")
# (find-fline "~/LOGS/2021feb03.emacs" "edrx: Use rsync")

rm -Rv ~/usrc/angg-repo/
mkdir  ~/usrc/angg-repo/
cd     ~/usrc/angg-repo/

rsync -v -v -v --human-readable --progress \
      --relative --whole-file \
      --include-from=/tmp/.files- \
      ~/ ~/usrc/angg-repo/

# (find-fline "~/usrc/angg-repo/")
# (find-fline "/tmp/.files-")

# (find-man "1 rsync")
# (find-man "1 rsync"        "--inplace")
# (find-man "1 rsync"       "--progress")
# (find-man "1 rsync" "--human-readable, -h")
# (find-man "1 rsync"     "--whole-file, -W")
# (find-man "1 rsync"       "--relative, -R")
# (find-man "1 rsync"      "--recursive, -r")

# (find-fline "~/usrc/angg-repo/")

           run before trying them for real): rsync --human-readable
           --progress --include-from="$HOME/.files" "$HOME"
           "$HOME/usrc/angg-fossil-repo"

<aidalgol> edrx: Here are two options (both untested, so do a dry
           run before trying them for real): rsync --human-readable
           --progress --include-from="$HOME/.files" "$HOME"
           "$HOME/usrc/angg-fossil-repo"
<aidalgol> Or: xargs -I '{}' -- cp -v --parents --update '{}'
           ~/usrc/angg-fossil-repo/ < ~/.files

<aidalgol> edrx: Here are two options (both untested, so do a dry
           run before trying them for real): rsync --human-readable
           --progress --include-from="$HOME/.files" "$HOME"
           "$HOME/usrc/angg-fossil-repo"

# (find-es "cvs" "rsync")
# (find-man "1 rsync")
# (find-man "1 rsync" "--files-from=FILE")
# (find-man "1 rsync" "-u, --update")
# (find-man "1 rsync" "-v, --verbose")
# (find-man "1 rsync" "-a, --archive")

<aidalgol> edrx: Use rsync with --include-from=
<edrx> I need to split that into several "cp"s, and I can't find in
       the docs of xargs an option that would let me add the target
       directory, ~/usrc/angg-fossil-repo/, at the end of the
       command.
<aidalgol> Normally you'd solve this with xargs, but in this case
           there's a better tool for the job.
<aidalgol> edrx: I *highly* recommend rsync over cp via xargs in
           this case.
<grym> every once in a while i toy with `alias cp="rsync -ah
       --inplace --no-whole-file --info=progress2"` 
<aidalgol> It's not only for remote copying.
<aidalgol> grym: wth does --inplace do?
<aidalgol> Is there an ivy replacement/integration for M-/ ?
<aidalgol> `dabbrev-expand'




Buggy:

/home/edrx/e(edrx:sc)# 
/home/edrx/e(edrx:sc)# cat ~/.files \
>   | head -n 25 \
>   | grep -v / \
>   | tee /tmp/.files-
.SciTEUser.properties
.Xdefaults
.asoundrc
.bashrc
.cshrc
.emacs
.emacs-tex.el
.emacs.audios
.emacs.custom
.emacs.local.bsd
.emacs.local.debian
.emacs.local.w32
.emacs.mini
.emacs.papers
.emacs.templates
.emacs.u8
.emacs.videos
.files
/home/edrx/e(edrx:sc)# 
/home/edrx/e(edrx:sc)# rm -Rv ~/usrc/angg-repo/
removed directory '/home/edrx/usrc/angg-repo/'
/home/edrx/e(edrx:sc)# mkdir  ~/usrc/angg-repo/
/home/edrx/e(edrx:sc)# cd     ~/usrc/angg-repo/
/home/edrx/usrc/angg-repo(edrx:sc)# 
/home/edrx/usrc/angg-repo(edrx:sc)# rsync -v -v -v --human-readable --progress \
>       --relative --whole-file \
>       --include-from=/tmp/.files- \
>       ~/ ~/usrc/angg-repo/
skipping directory /home/edrx
send_file_list done
send_files starting
server_recv(2) starting pid=5587
received 0 names
recv_file_list done
get_local_name count=0 /home/edrx/usrc/angg-repo/
generator starting pid=5587
delta-transmission disabled for local transfer or --whole-file
generate_files phase=1
send_files phase=1
recv_files(0) starting
recv_files phase=1
generate_files phase=2
send_files phase=2
send files finished
total: matches=0  hash_hits=0  false_alarms=0 data=0
recv_files phase=2
recv_files finished
generate_files phase=3
generate_files finished

sent 16 bytes  received 351 bytes  734.00 bytes/sec
total size is 0  speedup is 0.00
[sender] _exit_cleanup(code=0, file=main.c, line=1207): about to call exit(0)



<aidalgol> edrx: Try the rsync command invocation I gave you.  I
           strongly suspect you don't want --relative or
           --whole-file



#####
#
# rsync_angg_slow_html
# 2021dec13
#
#####

# «rsync_angg_slow_html»  (to ".rsync_angg_slow_html")
# (find-fline "/home/angg_slow_html/")

/home/angg_slow_html/

* (eepitch-shell3)
* (eepitch-kill)
* (eepitch-shell3)

~/EXPECT/autopasswd \
  rsync -avvz -e ssh \
    'edrx@angg.twu.net:slow_html/*' \
    /home/angg_slow_html/

  rsync -avvz -e ssh \
    'edrx@anggtwu.net:slow_html/*' \
    /home/angg_slow_html/

* (eepitch-Twu)
* (eepitch-kill)
* (eepitch-Twu)





#####
#
# rsync-backup-2022
# 2022sep08
#
#####

# «rsync-backup-2022»  (to ".rsync-backup-2022")
# (find-sh "cd; du -ch $(cat /tmp/od)")
# (find-sh "du -ch /tmp/sgexpansion1/backup-2022/")
# (find-sh "cd; 'ls' -d * | cat | sort")
# (find-sh "cd; 'ls' -d * | cat | sort | tee /tmp/od0")
# (find-fline "/tmp/od0")
# (find-fline "/tmp/odu")
# ^ delete: bigsrc, usrc, snarf, SQUEAK

* (eepitch-shell3)
* (eepitch-kill)
* (eepitch-shell3)
cd;      du -ch                 | tee /tmp/odu
cd; sudo du -c --summarize .* * | sort -n | tee /tmp/odu

* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
cd

BIG=( .cabal .elan .emacs-doom.d .ghcup .gradle .julia .opam .stack
      .texlive* SQUEAK bigsrc snarf usrc )

for i in .* *; do echo $i; done | sort | uniq | tee /tmp/oall
for i in $BIG; do echo $i; done | sort | uniq | tee /tmp/obig
  # (find-sh "comm     /tmp/oall /tmp/obig")
  # (find-sh "comm -23 /tmp/oall /tmp/obig")
comm -23 /tmp/oall /tmp/obig                   | tee /tmp/osmall
cd; sudo du -c  --summarize $(cat /tmp/osmall) | sort -n
cd; sudo du -ch --summarize $(cat /tmp/osmall)


# «tar-backup-2023»  (to ".tar-backup-2023")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)

cd ~/.cache/
du -ch --summarize *
du -c  --summarize * | sort -n
rm -Rfv ~/.cache/mathlib/

cd; sudo find $(cat /tmp/osmall) | sort \
                > /sda1/tmp/backup-2023aug05.files
# (find-fline    "/sda1/tmp/backup-2023aug05.files")
cd; sudo tar -cvf /sda1/tmp/backup-2023aug05.tar $(cat /tmp/osmall)
cd /sda1/tmp/; sudo md5sum  backup-2023aug05.tar \
                          > backup-2023aug05.md5sum

# (find-es "hd" "seagate-goflex")
# (find-fline "/tmp/goflex2/")
sudo cp -v        /sda1/tmp/backup-2023aug05.* /tmp/goflex2/




* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
sudo umount   /dev/sdb1
sudo fsck     /dev/sdb1
mkdir /tmp/sgexpansion1/
sudo mount    /dev/sdb1  /tmp/sgexpansion1/
# (find-fline "/tmp/sgexpansion1/")

# sudo rm -Rf /tmp/sgexpansion1/edrx/
# sudo rm -Rf /tmp/sgexpansion1/backup-2022/

mkdire /tmp/sgexpansion1/backup-2023/
cd
sudo rsync -avz $(cat /tmp/osmall) /tmp/sgexpansion1/backup-2023/


* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# du -c ~/ | sort -n | tee /tmp/odu
du -ch $(cat /tmp/od) | sort -n | tee /tmp/odu

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd
rsync -avvz $(cat /tmp/od0) /tmp/sgexpansion1/backup-2022/
find $(cat /tmp/od) | wc

# (find-fline "/tmp/sgexpansion1/backup-2022/")




#####
#
# rsync server - misc notes
#
#####

#*
# (find-fline "/tmp/from/rsync-opts")
cd /tmp/to/

rsync -e ssh -avvvz 127.0.0.1::from .
laf

#*
# Argh, I did something silly when testing by hand and /tmp's
# permissions became 0755...

laf -d /tmp /hdd2/tmp
chmod -v --reference=/hdd2/tmp /hdd2/tmp
chmod -v --reference=/tmp      /tmp

# (find-node "(fileutils)Numeric Modes")
#chmod 1777 /tmp; laf -d /tmp /hdd2/tmp

#*
cd     /tmp/to/
echo hello > hello
# Not that I would need that, but shouldn't this rsync call upload "hello"?
rsync -avz . 127.0.0.1::from
laf
laf /tmp/from/

#*




#####
#
# rsh (for rsync; not used)
# 2001jul13
#
#####

# (find-status "rsh-client")
# (find-vldifile "rsh-client.list")
# (find-fline "/usr/doc/rsh-client/")
# (eeman "1 rsh")
# (eeman "1 rcp")

# (find-status "rsh-server")
# (find-vldifile "rsh-server.list")
# (find-fline "/usr/doc/rsh-server/")




#####
#
# dired-rsync
# 2022aug02
#
#####

# «dired-rsync»  (to ".dired-rsync")
# http://yitang.uk/2022/07/31/mle-copy-files-to-local-machine/




#####
#
# start-stop-daemon
# 2000dec17
#
#####

# «start-stop-daemon»  (to ".start-stop-daemon")
cd /etc/init.d/
mycat $(agrep -l daemon *) | l +/start-stop-daemon
# (eeman "8 start-stop-daemon")

# (find-fline "/etc/init.d/")



# «update-inetd»
#*
cd /var/lib/dpkg/info/
agrep update-inetd * | tee ~/o
# (find-fline "~/o")
#*
# (eeman "8 update-inetd")
# (eeman "8 update-inetd" "You +just +finished +writing +a +POP3 +server")
# (find-man "8 update-inetd")




#####
#
# wanna-build, rbuild
# 2001aug13
#
#####

# «wanna-build»  (to ".wanna-build")
# (find-shttpw3 "cvs.debian.org/")
# not working, I'm getting "rejected access"
#*
rm -Rv /tmp/wanna-build/
mkdir  /tmp/wanna-build/
cd     /tmp/wanna-build/
# (find-node "(grub)Obtaining and Building GRUB")
export CVSROOT=:pserver:anonymous@cvs.debian.org:/cvs/wanna-build
cvs login
cvs checkout wanna-build
#*




# (find-efile "")
# (find-evariable 'version-control)
#*
e20glimpse version-control | l -S
#*



#####
#
# subversion book (HTML and PDF)
# 2007apr12
#
#####

# «svnbook»  (to ".svnbook")
# http://svnbook.red-bean.com/en/1.2/svn-book.pdf
# http://svnbook.red-bean.com/en/1.2/svn-book-html-chunk.tar.bz2
# http://subversion.tigris.org/files/documents/15/177/svn-ref.ps
#*
rm -Rv ~/usrc/svn-book-html-chunk/
tar -C ~/usrc/ -xvjf \
  $S/http/svnbook.red-bean.com/en/1.2/svn-book-html-chunk.tar.bz2
cd     ~/usrc/svn-book-html-chunk/

#*
# (code-c-d "svnbook" "~/usrc/svn-book-html-chunk/")
# (find-svnbookfile "")
# (find-svnbookw3m "index.html")
# (find-svnbookw3m "svn.serverconfig.netmodel.html" "~/.subversion/auth/")
# (find-fline "~/.subversion/auth/")

# (code-ps "svnbook" "$S/http/svnbook.red-bean.com/en/1.2/svn-book.pdf")
# (find-svnbookpage 4)





#####
#
# subversion
# 2007apr11 / 2019feb04
#
#####

# «svn»  (to ".svn")
# (find-zsh "installeddebs | sort | grep svn")
# (find-zsh "availabledebs | sort | grep svn")
# (find-zsh "installeddebs | sort | grep subversion")
# (find-zsh "availabledebs | sort | grep subversion")
# (find-status   "subversion")
# (find-vldifile "subversion.list")
# (find-udfile   "subversion/")
# (find-status   "subversion-tools")
# (find-vldifile "subversion-tools.list")
# (find-udfile   "subversion-tools/")

# http://subversion.tigris.org

# (find-man "1 svndumpfilter")
# (find-man "1 svnlook")
# (find-man "1 svnsync")
# (find-man "1 svnversion")
# (find-man "1 svn")
# (find-man "1 svnadmin")
# (find-man "5 svnserve.conf")
# (find-man "8 svnserve")
# (find-fline "/usr/share/emacs/site-lisp/psvn.el")
# (find-udfile "subversion/HACKING")
# (find-udfile "subversion/README")
# (find-udfile "subversion/README.Debian")
# (find-udfile "subversion/copyright")
# (find-udfile "subversion/examples/gnuify-changelog.pl.gz")
# (find-udfile "subversion/NEWS.Debian.gz")
# (find-udfile "subversion/changelog.gz")
# (find-udfile "subversion/changelog.Debian.gz")

# (find-sh "svn help")
# (find-sh "svn help checkout")

# http://subversion.tigris.org/faq.html

* (eepitch-shell)
rm -Rv /tmp/testsvn
mkdir  /tmp/testsvn
cd     /tmp/testsvn
svn checkout http://svn.prv.digirati.com.br/repos/adm/trunk/todo
svn checkout --username edrx.dig \
   http://svn.prv.digirati.com.br/repos/adm/trunk/todo

* (eechannel-xterm "A")
rm -Rv /tmp/testsvn
mkdir  /tmp/testsvn
cd     /tmp/testsvn
svn checkout --username edrx.dig \
   http://svn.prv.digirati.com.br/repos/adm/trunk/todo



$ cd ~; mkdir -p svn/adm
$ cd svn/adm
$ svn checkout http://svn.prv.digirati.com.br/repos/adm

Para checkout somente um módulo, lembrar do trunk na URI. Exemplo para o módulo machines:

$ svn checkout http://svn.prv.digirati.com.br/repos/adm/trunk/machines

inteiro:
$ svn checkout http://svn.prv.digirati.com.br/repos/adm/trunk/machines
$ svn checkout http://svn.prv.digirati.com.br/repos/adm/trunk/todo
$ svn checkout http://svn.prv.digirati.com.br/repos/adm/trunk/todo (/web /bak <-)
$ svn checkout http://svn.prv.digirati.com.br/repos/adm/trunk/task




#####
#
# svn branches
# 2007may04
#
#####

# «svn-branches»  (to ".svn-branches")
# (find-svnbookpage 4)
# (find-svnbookpage (+ 17 44))
# (find-svnbooktext "Chapter 4. Branching and Merging")





#####
#
# subversion (rubikitch)
# 2007apr11
#
#####

# «svn-rubikitch»  (to ".svn-rubikitch")
# http://lists.gnu.org/archive/html/eev/2006-01/msg00005.html
# http://article.gmane.org/gmane.emacs.eev.devel/41





#####
#
# cvs - downloading an old version
# 2005oct01
#
#####

# «cvs-old-versions»  (to ".cvs-old-versions")
# (find-node "(cvs)Top")
# http://savannah.nongnu.org/cgi-bin/viewcvs/rcirc/rcirc/rcirc.el

<kensanata> maybe 1.248=
<kensanata> eh, i mean maybe 1.248 introduced the bug, so try 1.247 to
            make sure?





#####
#
# psvn.el
# 2007may02
#
#####

# «psvn.el»  (to ".psvn.el")
# (find-vldifile "subversion.list")
# (find-fline "/usr/share/emacs/site-lisp/psvn.el")

# (svn-status "~/svn/adm/todo/bak/srv/")




# (find-node "(pcl-cvs)Top")
# http://www.gnu.org/software/emacs/manual/html_node/pcl-cvs/index.html




#####
#
# cvs book
# 2008jan04
#
#####

# «cvs-book»  (to ".cvs-book")
# http://cvsbook.red-bean.com/cvsbook.html
# http://cvsbook.red-bean.com/cvsbook.ps.gz
# (find-node "(cvs)Top")




#####
#
# silas's tutorial notes
# 2008jan04
#
#####

# «silas-tutorial»  (to ".silas-tutorial")
# (find-zumbihomefile "silas/public_html/_/tmp/setting_up_cvs")
# (find-node "(cvs)Adding files")
# (find-node "(cvs)Index")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)

rm -Rfv        /home/edrx/cvs
export CVSROOT=/home/edrx/cvs
cvs         -d /home/edrx/cvs init

rm -Rv /tmp/foo/
mkdir  /tmp/foo/
cd     /tmp/foo/

cvs import -m "Log Message" project_name_in_cvs/ vendortag releasetag
cvs checkout project_name_in_cvs/

cd /tmp/foo/project_name_in_cvs/
echo Foo > filename
cvs    add filename
cvs commit -m "commentary for changelog"    filename
cvs commit -m "commentary for changelog, 2" filename
echo Bar > filename
cvs commit -m "commentary for changelog, 3" filename
cvs    add filename
mkdir /tmp/foo/project_name_in_cvs/directory/
cvs    add directory/
cd    /tmp/foo/project_name_in_cvs/directory/
echo Bletch > file
cvs add file
cvs commit -m " file in subdirectory" file
cd ..

rm -Rv /tmp/foo2/
mkdir  /tmp/foo2/
cd     /tmp/foo2/
export CVSROOT=/home/edrx/cvs
cvs checkout project_name_in_cvs/

# (find-fline "/home/edrx/cvs")
# (find-fline "/tmp/foo/project_name_in_cvs/")
# (find-fline "/tmp/foo2/project_name_in_cvs/")
# (find-node "(cvs)Adding files")
# (find-node "(cvs)Assigning revisions")





#####
#
# darcs
# 2008feb18
#
#####

# «darcs»  (to ".darcs")
# (find-status   "darcs")
# (find-vldifile "darcs.list")
# (find-udfile   "darcs/")

# (find-man "1 darcs")
# (find-udw3m "darcs/manual/darcs.html")
# (find-udw3m "darcs/manual/index.html")
# (find-udw3m "darcs/manual/index.html#x1-210001.2")




#####
#
# viewvc
# 2008feb20
#
#####

# «viewvc»  (to ".viewvc")
# http://cvs.savannah.gnu.org/viewvc/emacs/emacs/lisp/version.el
# http://viewvc.tigris.org/
# http://viewvc.tigris.org/files/documents/3330/37319/viewvc-1.0.4.tar.gz
#*
rm -Rv ~/usrc/viewvc-1.0.4/
tar -C ~/usrc/ -xvzf \
  $S/http/viewvc.tigris.org/files/documents/3330/37319/viewvc-1.0.4.tar.gz
cd     ~/usrc/viewvc-1.0.4/

#*
# (code-c-d "viewvc" "~/usrc/viewvc-1.0.4/")
# (find-viewvcfile "")
# (find-viewvcfile "INSTALL" "tiny ViewVC server")



#####
#
# understanding branches and merging
# 2008feb20
#
#####

# «understanding-merging»  (to ".understanding-merging")
# http://www.emacswiki.org/cgi-bin/wiki/EmacsCVSFeatures
# http://cvs.savannah.gnu.org/viewvc/emacs/emacs/lisp/version.el
# (find-node "(cvs)Branching and merging")



# (find-node "(cvs)Common options" "`-D DATE_SPEC'")


#####
#
# update -dP
# 2008jun10
#
#####

# «update-dP»  (to ".update-dP")
# http://article.gmane.org/gmane.emacs.devel/98639
# (find-node "(cvs)update options" "`-P'")
# (find-node "(cvs)Updating a file" "`cvs update -d'")




#####
#
# cvspass
# 2010aug13
#
#####

# «cvspass»  (to ".cvspass")
cvs -z9 -d:pserver:anonymous@cvs.savannah.gnu.org:/cvsroot/emacs co emacs  \
  2>&1 | tee ocvs
cvs checkout: CVS password file /home/edrx/.cvspass does not exist - creating a new file
cvs checkout: Updating emacs

# (find-man "1 cvs")




#####
#
# Fossil
# 2011jan19
#
#####

# «fossil»  (to ".fossil")
# (find-es "fortho" "retro-2011")





# «git-shallow-clone»  (to ".git-shallow-clone")
#            (find-es "git" "git-shallow-clone")
# «git-plumbing»       (to ".git-plumbing")
#            (find-es "git" "git-plumbing")
# «git-config»         (to ".git-config")
#            (find-es "git" "git-config")
# «gitk»               (to ".gitk")
#            (find-es "git" "gitk")
# «git»                (to ".git")
#            (find-es "git" "git")
# «git.el»             (to ".git.el")
#            (find-es "git" "git.el")
# «github-repo-create» (to ".github-repo-create")
#            (find-es "git" "github-repo-create")
# «github-repo-setup»  (to ".github-repo-setup")
#            (find-es "git" "github-repo-setup")






#####
#
# Mercurial
# 2012apr12
#
#####

# «mercurial»  (to ".mercurial")
# «bot-ocaml»  (to ".bot-ocaml")
# (find-angg "bin/withgodi")
# https://bitbucket.org/
# https://bitbucket.org/0branch/bot-ocaml/overview
# (code-c-d "bot" "~/usrc/bot-ocaml/")
# (find-botfile "")
# (find-botfile "README.md")
# (find-botfile "OMakefile")
# (find-botfile "OMakeroot")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/bot-ocaml/
mkdir  ~/usrc/bot-ocaml/
cd     ~/usrc/
hg clone https://eduardoochs@bitbucket.org/0branch/bot-ocaml
cd     ~/usrc/bot-ocaml/

# (find-angg ".emacs" "ocaml")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd     ~/usrc/bot-ocaml/
echo $PATH
export PATH=$HOME/usrc/godi/bin:$PATH
export PATH=$HOME/usrc/godi/sbin:$PATH
which ocaml
godi_console
1

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd     ~/usrc/bot-ocaml/
echo $PATH
export PATH=$HOME/usrc/godi/bin:$PATH
export PATH=$HOME/usrc/godi/sbin:$PATH
omake  |& tee om

cd     ~/usrc/bot-ocaml/
# (find-botfile "config.json.template")
# (find-botfile "config.json")
./bot -profile local



cd     ~/usrc/bot-ocaml/
hg pull
hg update

omake  |& tee oom




#####
#
# Bazaar (bzr)
# 2012nov06
#
#####

# «bzr» (to ".bzr")
# (find-status   "bzr")
# (find-vldifile "bzr.list")
# (find-udfile   "bzr/")
# (find-status   "bzrtools")
# (find-vldifile "bzrtools.list")
# (find-udfile   "bzrtools/")
# (find-status   "python-paramiko")
# (find-vldifile "python-paramiko.list")
# (find-udfile   "python-paramiko/")
# (find-status   "bzr-doc")
# (find-vldifile "bzr-doc.list")
# (find-udfile   "bzr-doc/")
# file:///usr/share/doc/bzr/html/index.html

# Suggested: bzr-gtk bzr-svn python-pycurl python-kerberos bzr-doc
#   librsvg2-bin graphviz

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
bzr whoami
bzr whoami "Eduardo Ochs <eduardoochs@gmail.com>"
bzr whoami




#####
#
# bzr test
# 2012nov06
#
#####

# «bzr-test» (to ".bzr-test")
# (find-es "git" "git-test")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
N=0
  N () { echo $N; }
++N () { N=$[$N+1]; echo $N; }
dumpfiles0 () {
  for i in $*; do
    echo $i \($(tr '\n' ' ' < $i)\)
  done
}
dumpfiles () { dumpfiles0 $(find * -type f | sort); }

rm -Rv /tmp/bzrtest/
mkdir  /tmp/bzrtest/
cd     /tmp/bzrtest/
# (find-fline "/tmp/bzrtest/")
mkdir d
N=0
++N > a
++N > b
++N > d/c
++N > d/d
dumpfiles

bzr init
  find | sort
bzr add

bzr commit -m "Initial import"
++N >> a
dumpfiles
bzr commit -m "Added a 5"
bzr log
bzr commit -m "Added a 5"
bzr commit -m "Added nothing"




#####
#
# Emacs from bzr
# 2012nov06
#
#####

# «emacs-from-bzr» (to ".emacs-from-bzr")
# (find-es "git" "emacs-from-git")
# http://www.emacswiki.org/emacs/EmacsFromBazaar
# http://www.emacswiki.org/emacs/BzrForEmacsCasualDevs
# http://www.emacswiki.org/emacs/BzrForEmacsDevs
# http://www.emacswiki.org/emacs/BzrForEmacsDevs#InitializingYourBzrRepo
# (find-fline "~/usrc/")
# (find-fline "~/bigsrc/")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/bigsrc/bzr/
mkdir  ~/bigsrc/bzr/
cd     ~/bigsrc/bzr/
# (find-fline "~/bigsrc/bzr/")
bzr init-repo emacs/
cd emacs/
# bzr branch bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/trunk trunk
  bzr branch     bzr+ssh://edrx@bzr.savannah.gnu.org/emacs/trunk trunk
  bzr branch          bzr+ssh://bzr.savannah.gnu.org/emacs/trunk trunk




http://www.emacswiki.org/emacs/BzrForEmacsDevs#InitializingYourBzrRepo

bzr init-repo emacs/
cd emacs/
bzr branch bzr+ssh://bzr.savannah.gnu.org/emacs/trunk trunk

http://www.cyber.com.au/~twb/.bin/twb-get#emacs

           http://git.savannah.gnu.org/cgit/emacs.git



(If you are using Bazaar version older than 2.0.0, you will need to use bzr init-repo --2a emacs/.) In Bazaar, a repository contains the history of one or more branches. Its possible to create a standalone branch, which contains its own repository under the ./.bzr directory. But here we are using a shared repository, which is very important for performance: because all branches created under $DEVHOME/emacs will share history storage. Not only does this save a lot of space, but it speeds up branch creation immensely because the history does not need to be copied each time.

Now, create a branch called trunk whose main role is to be a mirror of the mainline, though you may also use it for making quick, one-off changes:




cd ~/bigsrc/
bzr init-repo --2a bzremacs/

* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
# (find-fline "~/bigsrc/bzremacs/")
cd ~/bigsrc/bzremacs/
bzr checkout http://bzr.savannah.gnu.org/r/emacs/ trunk

cd emacs/
bzr checkout URL_TO_UPSTREAM_TRUNK trunk




bzr whoami "Joe Hacker <joe.hacker@address.org>"

Now we create a shared repository. A repository is just a place where
you can store one or more branches, not necessarily related one to
each other. It's a performance trick that dramatically improves (in
terms of required time and storage) certain operations that you may do
when you expand your Bazaar usage beyond what is explained here. It is
a good idea, but not strictly required.

bzr init-repo --2a emacs/

creates a shared repository in the directory emacs. --2a is an storage
format specification which is the most efficient and modern format
supported by Bazaar right now and is the default on Bazaar version
2.0.

Now we get the source files plus all the history of the branch we work
on (trunk on this case, which is the CVS mainline):

cd emacs/
bzr checkout URL_TO_UPSTREAM_TRUNK trunk

On Bazaar parlance this creates a bound branch, also known as a
heavyweight checkout.

This is a slow process. It needs to download about 300 MB of data and
makes heavy use of the CPU sometimes, so be patient.

Now we have everything we need in the directory trunk. If you are
working inside a shared repository like recommended above do not move
the trunk directory around nor rename it.

Daily work










# (find-man "1 git-init")
# (find-man "1 git-add")
# (find-man "1 git-commit" "-m <msg>,")
# (find-man "1 git-checkout" "-b\n")
git checkout -b my-patch
git checkout master
git checkout my-patch



git archive --format=tar --prefix=loopa-0.0.4/ v0.0.4 | gzip > ~/Desktop/loopa-0.0.4.tar.gz
 
http://savannah.gnu.org/maintenance/UsingGit

Or just publish a read-only, static HTTP mirror without any prior history ,
and from then on mind the comments.
       git clone --mirror --depth=1
Then from a cronjob run
       cd http-repo && git fetch && git --bare update-server-info







#  Local Variables:
#  coding:               utf-8-unix
#  End: