Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
-- This file:
--   http://anggtwu.net/SUBTITLES/2024-eev-git.lua.html
--   http://anggtwu.net/SUBTITLES/2024-eev-git.lua
--          (find-angg "SUBTITLES/2024-eev-git.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun l () (interactive) (find-angg "SUBTITLES/2024-eev-git.lua"))
-- (defun b () (interactive) (find-TH             "2024-eev-git"))
-- (defun p () (interactive) (find-TH             "2023-eev-git"))
-- (defun R () (interactive) (ee-recompile-SUBTITLES-0))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-3))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-1))
--  (define-key eev-mode-map (kbd "M-r") 'r)
--
-- Skel: (find-subs-links "2024git")
-- Old:  (find-editeevsubtitles-links-1 "2024git")
--       (find-efunction 'find-editeevsubtitles-links-1)
-- Yttr: (find-yttranscript-links       "2024git" "lsVvokjqMY0")
-- Info: (find-1stclassvideo-links      "2024git")
-- Play: (find-2024gitvideo "0:00")
--
-- I use the code below to generate the subtitles in .vtt.
--

ee_dofile "~/LUA/Subtitles.lua" -- (find-angg "LUA/Subtitles.lua")

--[[
-- (find-angg "LUA/Subtitles.lua")

** Run the .lua and tell it to
** write the .vtt - by default in /tmp/
*
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "2024-eev-git.lua"
sts = Subtitles.fromsexps(subs_bigstr):addtime("33:35")
-- sts.lang = "pt-BR"
= sts
outfname = "$S/http/anggtwu.net/eev-videos/2024-eev-git.vtt"
outfname =                           "/tmp/2024-eev-git.vtt"
out = sts:vtt().."\n\n"
ee_writefile(outfname, out)
-- (find-fline                       "/tmp/2024-eev-git.vtt")

** Test the .vtt
** (find-2024gitvideo "0:00")

** Select /tmp/ or ee-eevvideosdir
** (find-eevvideosfile "")
** (find-eevvideosfile ""   "2024-eev-git.mp4")
** (find-eevvideossh0 "cp -v 2024-eev-git.mp4 /tmp/")
** (code-video "2024gitvideo"                           "/tmp/2024-eev-git.mp4")
** (code-video "2024gitvideo" "$S/http/anggtwu.net/eev-videos/2024-eev-git.mp4")
** (find-2024gitvideo "0:00")

** Upload the 2024-eev-git.vtt
** to http://anggtwu.net/eev-videos/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
scp    2024-eev-git.vtt $LINP/eev-videos/
scp    2024-eev-git.vtt $LINS/eev-videos/
Scp-np 2024-eev-git.vtt $TWUP/eev-videos/
Scp-np 2024-eev-git.vtt $TWUS/eev-videos/

** Upload the subtitles to youtube
** http://www.youtube.com/watch?v=lsVvokjqMY0

** Check that the "psne subtitles" thing works
** (find-1stclassvideo-links "2024git")

--]]

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "2024-eev-git.lua"
for li in subs_bigstr:gmatch("([^\n]+)") do
  local time,text = li:match('^.-"(.-)".-"(.*)"%)$')
  text = text:gsub("\\(.)", "%1")
  if time then print("  "..time.."  "..text) end
end

--]]


subs_bigstr = [==[
Introduction

% (find-2024gitvideo "00:00" "Hi! My name is Eduardo Ochs, and the title of this")
% (find-2024gitvideo "00:03" "video is \"Learning git with `try it!'s (and eev)\".")
% (find-2024gitvideo "00:07" "I'm the author of an Emacs package called")
% (find-2024gitvideo "00:09" "eev, that most people find hard to")
% (find-2024gitvideo "00:12" "understand, but its tutorials have")
% (find-2024gitvideo "00:16" "lots of things to try, and")
% (find-2024gitvideo "00:18" "lots of examples, and when people start")
% (find-2024gitvideo "00:21" "running the examples they...")
% (find-2024gitvideo "00:24" "sometimes they feel that everything")
% (find-2024gitvideo "00:27" "makes sense. Whatever...")

% (find-2024gitvideo "00:28" "Let me start with a bit of")
% (find-2024gitvideo "00:31" "context. A few weeks ago, in December")
% (find-2024gitvideo "00:34" "of 2023, something broke in the scripts")
% (find-2024gitvideo "00:37" "that I use to update the")
% (find-2024gitvideo "00:39" "git repository of eev, and the parts")
% (find-2024gitvideo "00:42" "that kept the two branches of eev")
% (find-2024gitvideo "00:44" "in sync stopped working - and I had to")
% (find-2024gitvideo "00:47" "merge the two branches many times.")

% (find-2024gitvideo "00:50" "I'm very bad with merging... each merge")
% (find-2024gitvideo "00:53" "took me hours and put me in panic - I ")
% (find-2024gitvideo "00:58" "was very afraid of doing wrong things")
% (find-2024gitvideo "01:01" "that I wouldn't be able to undo later...")

% (find-2024gitvideo "01:03" "by the way, I'm very bad with git...")
% (find-2024gitvideo "01:07" "and I'm good with programs that")
% (find-2024gitvideo "01:10" "let me do small reproducible tests...")
% (find-2024gitvideo "01:13" "preferably in REPLs.")

% (find-2024gitvideo "01:18" "A few years ago I tried to")
% (find-2024gitvideo "01:20" "create a way to learn git using REPLs and")
% (find-2024gitvideo "01:24" "reproducible tests, and I felt that it")
% (find-2024gitvideo "01:27" "was time to work on that again.")

The animation

% (find-2024gitvideo "01:30" "And by the way, about this figure here...")
% (find-2024gitvideo "01:34" "my presentation at the last EmacsConf, the")
% (find-2024gitvideo "01:37" "EmacsConf 2023, was called \"REPLs in strange")
% (find-2024gitvideo "01:41" "places: Lua, LaTeX, LPeg, LPegRex and TikZ\",")
% (find-2024gitvideo "01:45" "and this figure here is part of an")
% (find-2024gitvideo "01:48" "animation that I did using these")
% (find-2024gitvideo "01:52" "techniques, and TikZ...")

% (find-2024gitvideo "01:53" "and the full animation is here and")
% (find-2024gitvideo "01:56" "it shows how we can create a complex git")
% (find-2024gitvideo "01:59" "repository")
% (find-2024gitvideo "02:00" "with several")
% (find-2024gitvideo "02:02" "branches and with a merge here...")
% (find-2024gitvideo "02:06" "step by step. So, these things show")
% (find-2024gitvideo "02:10" "the names of the commits, the graph")
% (find-2024gitvideo "02:13" "of the commits, the branches, how")
% (find-2024gitvideo "02:17" "the branches move from one commit to")
% (find-2024gitvideo "02:20" "another one... the red dot here is the HEAD...")

% (find-2024gitvideo "02:28" "whatever. Anyway the focus of this")
% (find-2024gitvideo "02:31" "presentation is on the \"try it!\"s.")
% (find-2024gitvideo "02:34" "Let me run this thing here to")
% (find-2024gitvideo "02:37" "activate screenkey... so now people")
% (find-2024gitvideo "02:41" "can see the keys that I'm typing...")

% (find-2024gitvideo "02:45" "and let me show the \"try it\"s. Note that I")
% (find-2024gitvideo "02:48" "have eev installed, and I have this")
% (find-2024gitvideo "02:51" "indication here that eev-mode is active...")
% (find-2024gitvideo "02:54" "if we click on that with mouse-2 it")
% (find-2024gitvideo "02:58" "shows the main keys of eev...")

% (find-2024gitvideo "03:03" "let's go to this sandboxed tutorial,")
% (find-2024gitvideo "03:08" "that is the tutorial about git, that")
% (find-2024gitvideo "03:11" "is what I'm going to show today...")

% (find-2024gitvideo "03:14" "it lists some prerequisites")
% (find-2024gitvideo "03:18" "here, but whatever...")
% (find-2024gitvideo "03:20" "the introduction starts with")
% (find-2024gitvideo "03:24" "a mention of a tutorial on git")
% (find-2024gitvideo "03:27" "with a free license.")

% (find-2024gitvideo "03:28" "It suggests that we download this thing here")
% (find-2024gitvideo "03:33" "using brep, and")
% (find-2024gitvideo "03:37" "brep is explained")
% (find-2024gitvideo "03:39" "here... the idea is that we can put the")
% (find-2024gitvideo "03:42" "point here, type M-x brep, and then it")
% (find-2024gitvideo "03:46" "will show a temporary buffer with")
% (find-2024gitvideo "03:49" "a script for downloading a")
% (find-2024gitvideo "03:51" "temporary copy of this")
% (find-2024gitvideo "03:54" "PDF...")
% (find-2024gitvideo "03:58" "done. And and now we can execute")
% (find-2024gitvideo "04:02" "these two sexps here to define short")
% (find-2024gitvideo "04:07" "hyperlinks to that PDF...")

% (find-2024gitvideo "04:11" "let's take a look at that PDF... note")
% (find-2024gitvideo "04:15" "that it has several figures here... for")
% (find-2024gitvideo "04:18" "example, this figure here that")
% (find-2024gitvideo "04:20" "shows the HEAD, the circles are commit")
% (find-2024gitvideo "04:24" "objects, triangles are tree objects,")
% (find-2024gitvideo "04:27" "squares are blob objects...")
% (find-2024gitvideo "04:30" "and then it has diagrams with")
% (find-2024gitvideo "04:34" "another shape and other")
% (find-2024gitvideo "04:36" "conventions, then similar diagrams but")
% (find-2024gitvideo "04:40" "with a more complex structure... then")
% (find-2024gitvideo "04:43" "here's another thing... so several kinds of")
% (find-2024gitvideo "04:47" "diagrams, and here they even have colors!")

% (find-2024gitvideo "04:50" "Anyway, let me go back...")
% (find-2024gitvideo "04:54" "this is a diagram that is going")
% (find-2024gitvideo "04:58" "to be very important for us. This is a")
% (find-2024gitvideo "05:00" "diagram that appears in one")
% (find-2024gitvideo "05:03" "document that comes with git, it's called")
% (find-2024gitvideo "05:05" "gitrevisions... if I open this manpage")
% (find-2024gitvideo "05:10" "here, it is")
% (find-2024gitvideo "05:13" "here... note that this link here not only")
% (find-2024gitvideo "05:16" "opens this manpage but also searches")
% (find-2024gitvideo "05:19" "for this string in that manpage, so it")
% (find-2024gitvideo "05:21" "goes straight to the middle of the manpage...")

% (find-2024gitvideo "05:24" "and here the man page says: \"here is")
% (find-2024gitvideo "05:28" "an illustration by John Loeliger\" - and I'm going")
% (find-2024gitvideo "05:31" "to refer to this kind of diagram here as")
% (find-2024gitvideo "05:34" "a \"Loeliger diagram\". This is not the official")
% (find-2024gitvideo "05:37" "name, of course...")

% (find-2024gitvideo "05:39" "so this is THE Loeliger diagram -")
% (find-2024gitvideo "05:43" "for me it's the canonical example")
% (find-2024gitvideo "05:47" "of a Loeliger diagram... and")
% (find-2024gitvideo "05:51" "things that are similar to this one I")
% (find-2024gitvideo "05:53" "will also call them as Loeliger diagrams...")

% (find-2024gitvideo "05:57" "we saw... sorry...")
% (find-2024gitvideo "06:02" "we saw here how")
% (find-2024gitvideo "06:05" "this Loeliger diagram with the names")
% (find-2024gitvideo "06:09" "of the branches can")
% (find-2024gitvideo "06:12" "be created step by step, so this is the")
% (find-2024gitvideo "06:16" "the final Loeliger diagram of a certain git")
% (find-2024gitvideo "06:20" "repository, and the other Loeliger diagrams")
% (find-2024gitvideo "06:24" "show intermediate steps of how to create")
% (find-2024gitvideo "06:27" "a git repository with that structure.")

% (find-2024gitvideo "06:42" "And in this tutorial - in this")
% (find-2024gitvideo "06:46" "intro here, find-git-intro,")
% (find-2024gitvideo "06:48" "I will explain a way to create")
% (find-2024gitvideo "06:51" "a git repository corresponding to this")
% (find-2024gitvideo "06:54" "Loeliger diagram here, and a lot more.")

Try it! (No prerequisites)

% (find-2024gitvideo "06:57" "Let me first show something")
% (find-2024gitvideo "07:00" "that doesn't have any prerequisites - I")
% (find-2024gitvideo "07:03" "mean, if you have eev installed then")
% (find-2024gitvideo "07:07" "you probably know how to turn on eev-mode,")
% (find-2024gitvideo "07:11" "which is this thing here... if eev-mode is")
% (find-2024gitvideo "07:14" "on")
% (find-2024gitvideo "07:16" "then")
% (find-2024gitvideo "07:18" "f8 is going to do this: it either sends")
% (find-2024gitvideo "07:21" "the current line to another Emacs buffer or")
% (find-2024gitvideo "07:24" "executes the current line if it starts")
% (find-2024gitvideo "07:26" "with a red star...")

% (find-2024gitvideo "07:28" "my example with no")
% (find-2024gitvideo "07:32" "prerequisites is in this page here...")
% (find-2024gitvideo "07:36" "so here we have an animation of how")
% (find-2024gitvideo "07:40" "that git repository can be constructed,")
% (find-2024gitvideo "07:42" "and we here we have this block here that")
% (find-2024gitvideo "07:44" "is an eepitch block. You can just copy...")

% (find-2024gitvideo "07:53" "we can just copy and paste this thing")
% (find-2024gitvideo "07:57" "here to an Emacs buffer,")
% (find-2024gitvideo "08:00" "and if")
% (find-2024gitvideo "08:03" "we execute this")
% (find-2024gitvideo "08:06" "thing these bullets here behave in")
% (find-2024gitvideo "08:09" "exactly the same way as the red stars, so")
% (find-2024gitvideo "08:13" "if I type f8 here three times it creates")
% (find-2024gitvideo "08:16" "a target buffer here running bash... note")
% (find-2024gitvideo "08:20" "that it says bash here, and it says bash")
% (find-2024gitvideo "08:23" "here... and now if I type f8 on the other")
% (find-2024gitvideo "08:26" "lines the lines will be sent to the")
% (find-2024gitvideo "08:28" "target buffer as if a user were")
% (find-2024gitvideo "08:34" "typing the lines one by one.")

% (find-2024gitvideo "08:37" "So here at the beginning I define")
% (find-2024gitvideo "08:41" "an environment variable called N and")
% (find-2024gitvideo "08:45" "several shell functions... and then here I")
% (find-2024gitvideo "08:48" "initialize a git repository and then I")
% (find-2024gitvideo "08:51" "give these commmands here.")

% (find-2024gitvideo "08:53" "Note that the commands... they")
% (find-2024gitvideo "08:57" "modify the file1 several times,")
% (find-2024gitvideo "09:01" "they have several \"Commit\"s, they create")
% (find-2024gitvideo "09:02" "new branches, they switch branches in")
% (find-2024gitvideo "09:05" "many points... and there's this obscure")
% (find-2024gitvideo "09:10" "command here, that merges two branches...")

% (find-2024gitvideo "09:15" "and if we execute this sexp")
% (find-2024gitvideo "09:19" "here it will show the result. The result")
% (find-2024gitvideo "09:21" "is in this directory here, /tmp/eevgit-test1/,")
% (find-2024gitvideo "09:24" "and this will run gitk")
% (find-2024gitvideo "09:28" "on that repository with certain")
% (find-2024gitvideo "09:32" "command-line options. It will show that")
% (find-2024gitvideo "09:35" "the contents of that repository is this...")

% (find-2024gitvideo "09:38" "this is the same tree as")
% (find-2024gitvideo "09:41" "before, but displayed in a")
% (find-2024gitvideo "09:45" "slightly messier way...")

% (find-2024gitvideo "09:48" "So, this was the first example -")
% (find-2024gitvideo "09:51" "one in which we just had to")
% (find-2024gitvideo "09:55" "copy this thing here to an Emacs buffer")
% (find-2024gitvideo "09:59" "and then execute this thing with f8s.")

(find-git-intro)

% (find-2024gitvideo "10:02" "Now let's see the examples that are in...")
% (find-2024gitvideo "10:06" "in find-git-intro.")

% (find-2024gitvideo "10:19" "This section 1 shows some")
% (find-2024gitvideo "10:22" "preparations that we need to run.")
% (find-2024gitvideo "10:26" "We need to check that we have bash, git and")
% (find-2024gitvideo "10:29" "gitk installed, then we have to run")
% (find-2024gitvideo "10:32" "these things here just to make sure that")
% (find-2024gitvideo "10:34" "we have copies")
% (find-2024gitvideo "10:36" "of two files and that the")
% (find-2024gitvideo "10:40" "copies in this machine are the same")
% (find-2024gitvideo "10:45" "as the upstream copies...")

% (find-2024gitvideo "10:47" "after getting these two things")
% (find-2024gitvideo "10:50" "we can run these things here to access")
% (find-2024gitvideo "10:55" "the PDF with a flipbook animation -")
% (find-2024gitvideo "10:59" "in which each page is a frame of an")
% (find-2024gitvideo "11:03" "animation...")
% (find-2024gitvideo "11:07" "here - by the way, if you want to")
% (find-2024gitvideo "11:10" "understand what these things do")
% (find-2024gitvideo "11:12" "the trick is that you just have to duplicate")
% (find-2024gitvideo "11:14" "these lines and add a \"find-\" at the")
% (find-2024gitvideo "11:18" "beginning of each which function name here...")
% (find-2024gitvideo "11:21" "so instead of code-pdf-page and code-pdf-text")
% (find-2024gitvideo "11:24" "we will have find-code-pdf-page and")
% (find-2024gitvideo "11:27" "find-code-pdf-text, and if we execute")
% (find-2024gitvideo "11:32" "these things here... for example this")
% (find-2024gitvideo "11:35" "one... it will show us a temporary buffer")
% (find-2024gitvideo "11:38" "that")
% (find-2024gitvideo "11:39" "explains what this version here would do.")
% (find-2024gitvideo "11:43" "So this does something but does")
% (find-2024gitvideo "11:46" "not show us what it is doing, and")
% (find-2024gitvideo "11:49" "this explains what this thing here does.")

% (find-2024gitvideo "11:54" "We also need to run this thing")
% (find-2024gitvideo "11:57" "here to access")
% (find-2024gitvideo "12:00" "a local copy of my library of shell")
% (find-2024gitvideo "12:04" "functions... remember that here I defined")
% (find-2024gitvideo "12:08" "several shell functions and then I")
% (find-2024gitvideo "12:10" "used those shell functions")
% (find-2024gitvideo "12:16" "to create a certain git repository...")

% (find-2024gitvideo "12:20" "now this sexp here visits")
% (find-2024gitvideo "12:24" "that library of shell functions - it is")
% (find-2024gitvideo "12:27" "here... here we have an")
% (find-2024gitvideo "12:31" "index... here we have those shell")
% (find-2024gitvideo "12:34" "functions and a few others... here we have")
% (find-2024gitvideo "12:38" "basic tests that explain what are these")
% (find-2024gitvideo "12:41" "basic shell functions here...")

% (find-2024gitvideo "12:44" "and by the way, this thing here is something")
% (find-2024gitvideo "12:48" "that is very")
% (find-2024gitvideo "12:49" "interesting. It's something that I")
% (find-2024gitvideo "12:51" "call a \"test block\".")

% (find-2024gitvideo "12:52" "If I type M-x eeit")
% (find-2024gitvideo "12:59" "this will insert a test block at")
% (find-2024gitvideo "13:03" "the current point, and the syntax of the")
% (find-2024gitvideo "13:07" "test block depends on the")
% (find-2024gitvideo "13:09" "language that I'm using, so here")
% (find-2024gitvideo "13:13" "we are editing a shell script, and a test")
% (find-2024gitvideo "13:16" "block has this funny format here...")
% (find-2024gitvideo "13:20" "and this thing acts as a multi-line comment.")

% (find-2024gitvideo "13:24" "So for the shell this thing is a")
% (find-2024gitvideo "13:28" "multi-line comment, but for me this")
% (find-2024gitvideo "13:31" "thing is executable with f8s... if I put the")
% (find-2024gitvideo "13:35" "point here and type f8 several times it")
% (find-2024gitvideo "13:39" "runs some tests that sort of")
% (find-2024gitvideo "13:45" "explain these definitions here... so here")
% (find-2024gitvideo "13:49" "we have a section with basic commands")
% (find-2024gitvideo "13:52" "and the tests for these basic commands...")

% (find-2024gitvideo "13:56" "and then we have a section with this big")
% (find-2024gitvideo "13:59" "function here, MakeTree1, and then some")
% (find-2024gitvideo "14:03" "tests for MakeTree1...")
% (find-2024gitvideo "14:09" "this is this tree in an ugly format.")

% (find-2024gitvideo "14:17" "And note that in this test here")
% (find-2024gitvideo "14:22" "we created a tree with this")
% (find-2024gitvideo "14:24" "shape here, and now we have some extra")
% (find-2024gitvideo "14:29" "things here... these extra things here")
% (find-2024gitvideo "14:32" "are some examples of how to")
% (find-2024gitvideo "14:34" "query the data structures of that")
% (find-2024gitvideo "14:36" "repository. For example, if I ask git to")
% (find-2024gitvideo "14:39" "\"show\" what is the HEAD, in this case it")
% (find-2024gitvideo "14:42" "will show me that the HEAD is this thing")
% (find-2024gitvideo "14:45" "here... is a commit with this author, this")
% (find-2024gitvideo "14:47" "date, and so on... this message... and the")
% (find-2024gitvideo "14:51" "contents of the commit are this thing")
% (find-2024gitvideo "14:52" "here, that is being displayed as a diff")
% (find-2024gitvideo "14:56" "between the repository in a certain")
% (find-2024gitvideo "14:59" "moment and the repository in another")
% (find-2024gitvideo "15:01" "moment. If I run this thing here... if I ask")
% (find-2024gitvideo "15:06" "git to show what is the file1 in HEAD")
% (find-2024gitvideo "15:10" "it shows the file in another format")
% (find-2024gitvideo "15:13" "that is totally different... it's not a")
% (find-2024gitvideo "15:15" "diff it's just... it looks like a")
% (find-2024gitvideo "15:18" "normal file, not a diff. And I can also")
% (find-2024gitvideo "15:21" "run these things here to inspect all the")
% (find-2024gitvideo "15:24" "data structures...")

% (find-2024gitvideo "15:26" "and these things here in")
% (find-2024gitvideo "15:29" "comments are ways of accessing")
% (find-2024gitvideo "15:32" "the documentation of some things")
% (find-2024gitvideo "15:34" "that are here. So, for example I used")
% (find-2024gitvideo "15:38" "show-ref")
% (find-2024gitvideo "15:39" "here... the docs of git that come")
% (find-2024gitvideo "15:44" "with Debian come in many formats, so I")
% (find-2024gitvideo "15:47" "usually prefer to be able to choose")
% (find-2024gitvideo "15:50" "between all formats when I want to...")
% (find-2024gitvideo "15:54" "for example, to get more")
% (find-2024gitvideo "15:57" "information about show-ref")
% (find-2024gitvideo "15:59" "I can run this thing here, and it shows")
% (find-2024gitvideo "16:03" "me ways of accessing all these")
% (find-2024gitvideo "16:07" "formats - for example this thing here")
% (find-2024gitvideo "16:09" "opens the manpage converted to txt,")
% (find-2024gitvideo "16:14" "this thing here opens the manpage")
% (find-2024gitvideo "16:17" "itself, so it has boldface, underlined,")
% (find-2024gitvideo "16:20" "and so on... this thing here shows the")
% (find-2024gitvideo "16:24" "on page in")
% (find-2024gitvideo "16:27" "HTML...")
% (find-2024gitvideo "16:30" "and this thing")
% (find-2024gitvideo "16:32" "here asks git help to show me the")
% (find-2024gitvideo "16:37" "help about show-ref...")

% (find-2024gitvideo "16:41" "so here we have a big")
% (find-2024gitvideo "16:45" "shell function, and also an export...")
% (find-2024gitvideo "16:49" "and here we have the tests for this big")
% (find-2024gitvideo "16:53" "shell function, and some other")
% (find-2024gitvideo "16:57" "tests that I decided that this was the")
% (find-2024gitvideo "17:00" "best place to put them...")

% (find-2024gitvideo "17:05" "Note that")
% (find-2024gitvideo "17:12" "here we just saw how to run the tests")
% (find-2024gitvideo "17:16" "that are in this file here, in test")
% (find-2024gitvideo "17:19" "blocks... this test here in find-git-intro")
% (find-2024gitvideo "17:24" "is essentially the same thing as")
% (find-2024gitvideo "17:27" "before...")
% (find-2024gitvideo "17:36" "sorry, I deleted")
% (find-2024gitvideo "17:40" "this")
% (find-2024gitvideo "17:43" "thing... I had deleted the the")
% (find-2024gitvideo "17:48" "copy of eevgitlib1.sh in /tmp/, but now")
% (find-2024gitvideo "17:53" "these things are going to")
% (find-2024gitvideo "17:55" "work - I hope... yes.")

% (find-2024gitvideo "17:59" "So, it created that big tree...")
% (find-2024gitvideo "18:04" "it shows the tree in a certain")
% (find-2024gitvideo "18:07" "ugly format... now I can ask gitk to")
% (find-2024gitvideo "18:11" "display that tree in another ugly")
% (find-2024gitvideo "18:14" "format, but with more colors...")

% (find-2024gitvideo "18:17" "here it opens my flipbook")
% (find-2024gitvideo "18:22" "animation in the final page, that shows")
% (find-2024gitvideo "18:24" "the tree in another")
% (find-2024gitvideo "18:27" "format...")
% (find-2024gitvideo "18:29" "and so this explains the first")
% (find-2024gitvideo "18:33" "test... and note")
% (find-2024gitvideo "18:42" "that")
% (find-2024gitvideo "18:46" "this thing has several pages, and")
% (find-2024gitvideo "18:51" "the pages has some labels")
% (find-2024gitvideo "18:54" "here... what are these labels? Let me")
% (find-2024gitvideo "18:58" "explain that - because this is something")
% (find-2024gitvideo "19:01" "that I wrote a few days ago and I found")
% (find-2024gitvideo "19:03" "very interesting, very useful...")

% (find-2024gitvideo "19:06" "Let's go back to this file")
% (find-2024gitvideo "19:11" "here with my shell functions and")
% (find-2024gitvideo "19:13" "tests... note that here we have the")
% (find-2024gitvideo "19:17" "index, and at this moment the final")
% (find-2024gitvideo "19:21" "block")
% (find-2024gitvideo "19:23" "defines things about \"Time\" that are")
% (find-2024gitvideo "19:25" "commands for recording how a repository")
% (find-2024gitvideo "19:28" "changes through time, it has pointers to")
% (find-2024gitvideo "19:31" "the to the flipbook animation...")

% (find-2024gitvideo "19:33" "and the idea is that a")
% (find-2024gitvideo "19:36" "command like this one, Time 4:20, in a")
% (find-2024gitvideo "19:40" "script means \"it's 4:20 now\", or \"at this")
% (find-2024gitvideo "19:44" "point of the script the timestamp")
% (find-2024gitvideo "19:47" "is")
% (find-2024gitvideo "19:48" "4:20\"... or if we think on that as an")
% (find-2024gitvideo "19:52" "action, the action means: \"take a low")
% (find-2024gitvideo "19:55" "resolution picture of the git repository")
% (find-2024gitvideo "19:58" "and save it in the file /tmp/eevgit_4:20\"...")

% (find-2024gitvideo "20:10" "so, in this test here I will run")
% (find-2024gitvideo "20:14" "something very similar")
% (find-2024gitvideo "20:18" "to this big function here, that")
% (find-2024gitvideo "20:21" "created this tree here...")

% (find-2024gitvideo "20:26" "but now my new version of that...")
% (find-2024gitvideo "20:32" "let me open the old and and the new")
% (find-2024gitvideo "20:35" "versions side to side...")

% (find-2024gitvideo "20:39" "the new version has more columns,")
% (find-2024gitvideo "20:43" "and it has timestamps at many points...")

% (find-2024gitvideo "20:46" "for example, this point here is")
% (find-2024gitvideo "20:48" "going to be the timestamp A0, this is the")
% (find-2024gitvideo "20:51" "timestamp A1, timestamp A2, and so on...")

% (find-2024gitvideo "20:57" "so each one of these things takes a")
% (find-2024gitvideo "20:59" "low resolution picture of the repository")
% (find-2024gitvideo "21:01" "at that point... the low resolution picture")
% (find-2024gitvideo "21:03" "is just a tree")
% (find-2024gitvideo "21:04" "generated by git log...")

% (find-2024gitvideo "21:09" "and all these low resolution")
% (find-2024gitvideo "21:12" "pictures are saved to files with certain")
% (find-2024gitvideo "21:14" "names, and then at the end I can run")
% (find-2024gitvideo "21:17" "this thing here,")
% (find-2024gitvideo "21:19" "Timeline, that concatenates all these")
% (find-2024gitvideo "21:23" "files... so let's run that...")

% (find-2024gitvideo "21:30" "now if I run Timeline it generates")
% (find-2024gitvideo "21:33" "all these trees here, and this line here")
% (find-2024gitvideo "21:38" "does the same thing, but it")
% (find-2024gitvideo "21:41" "also generates a file called /tmp/all.")

% (find-2024gitvideo "21:50" "Now that we have that file we")
% (find-2024gitvideo "21:54" "can use that file to see how the")
% (find-2024gitvideo "21:56" "repository changes at each point... for")
% (find-2024gitvideo "22:00" "example,  now we can understand")
% (find-2024gitvideo "22:04" "what happens when you create a new")
% (find-2024gitvideo "22:06" "commit, in the sense that some tags")
% (find-2024gitvideo "22:10" "are going to be moved to the new commit,")
% (find-2024gitvideo "22:13" "some tags are not going to be moved...")

% (find-2024gitvideo "22:15" "I found the rules very hard to")
% (find-2024gitvideo "22:18" "understand... I mean, when I was")
% (find-2024gitvideo "22:23" "able to draw the diagram then things")
% (find-2024gitvideo "22:25" "became much simpler, but just by")
% (find-2024gitvideo "22:28" "reading the rules and the manuals I")
% (find-2024gitvideo "22:30" "found them very complex, but... so, when I")
% (find-2024gitvideo "22:35" "started studying this diagram here the")
% (find-2024gitvideo "22:38" "the rules started to become clear to me,")
% (find-2024gitvideo "22:41" "and when I found a way to translate that")
% (find-2024gitvideo "22:43" "diagram to the other format, that is")
% (find-2024gitvideo "22:46" "much prettier, then things become much")
% (find-2024gitvideo "22:50" "clearer. So these diagrams helped me a lot.")

% (find-2024gitvideo "22:58" "So, this section here is about how to")
% (find-2024gitvideo "23:01" "create timelines, and how to inspect all")
% (find-2024gitvideo "23:04" "the files that were created... note that")
% (find-2024gitvideo "23:07" "here we have the individual files, and")
% (find-2024gitvideo "23:10" "then these files were concatenated into")
% (find-2024gitvideo "23:12" "this thing here, called \"all\"...")

% (find-2024gitvideo "23:18" "And here's one application.")
% (find-2024gitvideo "23:23" "Now that we have reproducible tests")
% (find-2024gitvideo "23:26" "it should be possible")
% (find-2024gitvideo "23:28" "to use these reproducible tests to create")
% (find-2024gitvideo "23:31" "a tutorial for")
% (find-2024gitvideo "23:33" "magit...")

% (find-2024gitvideo "23:38" "this eepitch block here creates a very")
% (find-2024gitvideo "23:42" "simple repository in /tmp/eevgit-test2/, and")
% (find-2024gitvideo "23:49" "this repository has two commits and then")
% (find-2024gitvideo "23:53" "I modify one of its files, file1,")
% (find-2024gitvideo "23:58" "and my shell functions do not")
% (find-2024gitvideo "24:02" "create a third commit.")

% (find-2024gitvideo "24:08" "And if we run magit on that repository...")

% (find-2024gitvideo "24:11" "by the way, if you do not have")
% (find-2024gitvideo "24:14" "magit installed then you can either")
% (find-2024gitvideo "24:16" "install it in the usual way or you can")
% (find-2024gitvideo "24:19" "use this thing here and install it in")
% (find-2024gitvideo "24:22" "the eev way... you may need this thing here")
% (find-2024gitvideo "24:27" "to configure MELPA,")
% (find-2024gitvideo "24:30" "like running this and this...")
% (find-2024gitvideo "24:35" "and then you can execute these")
% (find-2024gitvideo "24:39" "things here: package-initialize,")
% (find-2024gitvideo "24:42" "package-refresh-contents and package-install,")
% (find-2024gitvideo "24:44" "and then you will have magit in")
% (find-2024gitvideo "24:47" "your machine.")

% (find-2024gitvideo "24:48" "Anyway, I do have magit here.")

% (find-2024gitvideo "24:52" "Let me run this thing here... it runs magit")
% (find-2024gitvideo "24:55" "on that repository that I just created,")
% (find-2024gitvideo "24:58" "that has an uncommitted change.")

% (find-2024gitvideo "25:01" "Magit will say that we have unstaged changes,")
% (find-2024gitvideo "25:05" "then I can type uppercase S to stage")
% (find-2024gitvideo "25:09" "all these changes then I can type")
% (find-2024gitvideo "25:13" "lowercase c lowercase c to commit the")
% (find-2024gitvideo "25:16" "new change...")

% (find-2024gitvideo "25:17" "then magit will ask me to")
% (find-2024gitvideo "25:21" "write a commit message here... let me write")
% (find-2024gitvideo "25:25" "a very simple message, like Blah, here...")
% (find-2024gitvideo "25:27" "and then I can type C-x #")
% (find-2024gitvideo "25:31" "to save that commit...")

% (find-2024gitvideo "25:33" "and now it says that the HEAD is in")
% (find-2024gitvideo "25:37" "that commit here, whose message is Blah...")

% (find-2024gitvideo "25:42" "So I'm changing styles here. Up to")
% (find-2024gitvideo "25:46" "this point I was doing everything with")
% (find-2024gitvideo "25:49" "just shell commmands, and now I'm")
% (find-2024gitvideo "25:52" "using this thing here to create the")
% (find-2024gitvideo "25:54" "basis for learning, or for practicing,")
% (find-2024gitvideo "25:58" "magit commands...")

% (find-2024gitvideo "26:03" "so instead of creating a commit by")
% (find-2024gitvideo "26:06" "running \"Commit C\" or \"Commit Blah\"")
% (find-2024gitvideo "26:09" "I did that from magit, and it should be")
% (find-2024gitvideo "26:12" "possible to use that to create a")
% (find-2024gitvideo "26:14" "tutorial for magit that will explain some")
% (find-2024gitvideo "26:16" "operations that most people find difficult...")

% (find-2024gitvideo "26:19" "or anyway, or at least the")
% (find-2024gitvideo "26:23" "people like me find them difficult.")

% (find-2024gitvideo "26:30" "By the way, these are links to the")
% (find-2024gitvideo "26:35" "manual of")
% (find-2024gitvideo "26:37" "magit... this is the part that")
% (find-2024gitvideo "26:40" "explains how to use uppercase S to")
% (find-2024gitvideo "26:44" "stage changes, and this is a link to the")
% (find-2024gitvideo "26:47" "part that explains how to create new")
% (find-2024gitvideo "26:50" "commits... and again, I found these things")
% (find-2024gitvideo "26:53" "very hard to understand when I")
% (find-2024gitvideo "26:56" "started to learn magit...")

% (find-2024gitvideo "27:00" "and now here we have a section about")
% (find-2024gitvideo "27:02" "\"Why this?\", and about... anyway, let me")
% (find-2024gitvideo "27:07" "read this. I found git and magit both very")
% (find-2024gitvideo "27:11" "hard to learn. To test most concepts we")
% (find-2024gitvideo "27:14" "would need a repository with tags and")
% (find-2024gitvideo "27:16" "branches, and a second repository that")
% (find-2024gitvideo "27:18" "pulls from that...and even with that")
% (find-2024gitvideo "27:21" "most tests would be very hard to undo")
% (find-2024gitvideo "27:24" "and to reproduce...")

% (find-2024gitvideo "27:26" "and when I was trying to learn git...")
% (find-2024gitvideo "27:29" "more specifically, I was learning git")
% (find-2024gitvideo "27:32" "to set up a git repository")
% (find-2024gitvideo "27:35" "for eev, my package...")

% (find-2024gitvideo "27:39" "When I was trying to set up a git")
% (find-2024gitvideo "27:42" "repository for eev on GitHub for the")
% (find-2024gitvideo "27:44" "first time I did several things wrong on")
% (find-2024gitvideo "27:47" "the GitHub side, and I didn't know how to")
% (find-2024gitvideo "27:50" "fix that... I didn't know how to undo these")
% (find-2024gitvideo "27:53" "things... and after spending several")
% (find-2024gitvideo "27:56" "days trying to fix that I gave up, I")
% (find-2024gitvideo "27:59" "deleted that repository, I created a new")
% (find-2024gitvideo "28:02" "one, and I decided that I would be very")
% (find-2024gitvideo "28:05" "coward from that point on, because I")
% (find-2024gitvideo "28:08" "didn't know how to undo certain things...")
% (find-2024gitvideo "28:11" "and I decided I would always do lots")
% (find-2024gitvideo "28:14" "of local tests before messing up my")
% (find-2024gitvideo "28:16" "public repository again.")

% (find-2024gitvideo "28:19" "So at that point I started playing")
% (find-2024gitvideo "28:22" "with the idea of reproducible tests and")
% (find-2024gitvideo "28:26" "not committing everything to a")
% (find-2024gitvideo "28:29" "repository in GitHub, and this is my n-th")
% (find-2024gitvideo "28:31" "version of my tools for doing lots of")
% (find-2024gitvideo "28:34" "local tests. And, of course,")
% (find-2024gitvideo "28:35" "if you like this approach")
% (find-2024gitvideo "28:38" "then please get in contact!")

% (find-2024gitvideo "28:43" "Let me show another example of")
% (find-2024gitvideo "28:46" "something that the tutorials suppose")
% (find-2024gitvideo "28:52" "that... no, sorry, let me explain it")
% (find-2024gitvideo "28:55" "in another way. A typical use")
% (find-2024gitvideo "28:58" "case for git is like this: there's a")
% (find-2024gitvideo "29:00" "\"shared\" git repository in a \"server\",")
% (find-2024gitvideo "29:03" "and there are several \"developers\",")
% (find-2024gitvideo "29:05" "each one on a different")
% (find-2024gitvideo "29:07" "machine, and the developers are working")
% (find-2024gitvideo "29:09" "on copies of that shared repository, and")
% (find-2024gitvideo "29:12" "they are making changes on that and they are")
% (find-2024gitvideo "29:15" "trying to somehow synchronize their work.")

% (find-2024gitvideo "29:17" "So they are going to save")
% (find-2024gitvideo "29:20" "their changes to their local repositories,")
% (find-2024gitvideo "29:21" "and then they're going to push those")
% (find-2024gitvideo "29:23" "changes to the \"server\" somehow...")

% (find-2024gitvideo "29:29" "and I found that the")
% (find-2024gitvideo "29:33" "tutorials suppose that you are one")
% (find-2024gitvideo "29:36" "of the developers, and that you are")
% (find-2024gitvideo "29:38" "working with colleagues on that shared")
% (find-2024gitvideo "29:42" "repository... but I couldn't find easy")
% (find-2024gitvideo "29:47" "instructions for creating that")
% (find-2024gitvideo "29:49" "server repository, or for creating that")
% (find-2024gitvideo "29:52" "on a local machine... so this is my attempt")
% (find-2024gitvideo "29:55" "to fix that. This is a minimal version,")
% (find-2024gitvideo "29:58" "a miniature, of how to create the")
% (find-2024gitvideo "30:02" "server and the developer machines... and")
% (find-2024gitvideo "30:05" "instead of using several machines I just")
% (find-2024gitvideo "30:07" "use different directories in /tmp/.")

% (find-2024gitvideo "30:11" "So let me type f8 several times...")
% (find-2024gitvideo "30:17" "this first block here copies my")
% (find-2024gitvideo "30:21" "library to /tmp/ and loads the functions in")
% (find-2024gitvideo "30:25" "eevgitlib1.sh... this block here creates")
% (find-2024gitvideo "30:29" "a shared repository, that is going to")
% (find-2024gitvideo "30:31" "play the role of a server... the second")
% (find-2024gitvideo "30:34" "block creates a directory that will")
% (find-2024gitvideo "30:38" "play the role of the first")
% (find-2024gitvideo "30:40" "developer... in this block here")
% (find-2024gitvideo "30:43" "the Developer 1 creates two")
% (find-2024gitvideo "30:45" "commits and pushes them to the server...")
% (find-2024gitvideo "30:49" "so Commit A and Commit B, and then git")
% (find-2024gitvideo "30:52" "push... and now we create a second")
% (find-2024gitvideo "30:56" "directory, that will play the role of")
% (find-2024gitvideo "30:58" "a second")
% (find-2024gitvideo "31:02" "developer... so now we are going to have")
% (find-2024gitvideo "31:04" "three repositories, one ending with \"s\",")
% (find-2024gitvideo "31:08" "that plays the role of a server, one")
% (find-2024gitvideo "31:10" "that ends with \"1\", that plays the")
% (find-2024gitvideo "31:12" "rollers of the first developer, and")
% (find-2024gitvideo "31:15" "one that ends with \"2\", that plays the")
% (find-2024gitvideo "31:17" "role of the second developer...")

% (find-2024gitvideo "31:19" "and now here the second")
% (find-2024gitvideo "31:23" "developer creates a new commit, and")
% (find-2024gitvideo "31:25" "pushes that commit to that")
% (find-2024gitvideo "31:27" "repository... and that's a new commit")
% (find-2024gitvideo "31:30" "that the first developer")
% (find-2024gitvideo "31:32" "doesn't have yet, so now we switch to the")
% (find-2024gitvideo "31:35" "to the first developer... we just")
% (find-2024gitvideo "31:39" "switch to this directory here instead of")
% (find-2024gitvideo "31:41" "switching machines... and we run git pull.")

% (find-2024gitvideo "31:45" "So this is a miniature that")
% (find-2024gitvideo "31:48" "probably can be used - in the future,")
% (find-2024gitvideo "31:52" "say - to show how to do these things")
% (find-2024gitvideo "31:55" "with magit... I mean, we probably")
% (find-2024gitvideo "31:58" "can use that to teach people how")
% (find-2024gitvideo "32:01" "to do pulls and pushes with magit...")
% (find-2024gitvideo "32:06" "I haven't done that yet.")

% (find-2024gitvideo "32:13" "So, yeah, that's it for the moment!")
% (find-2024gitvideo "32:17" "So, a few ideas are already")
% (find-2024gitvideo "32:20" "implemented, we have some basic tests")
% (find-2024gitvideo "32:23" "here, all the \"try it!\"s should be very")
% (find-2024gitvideo "32:26" "easy to try...")

% (find-2024gitvideo "32:28" "but I only have one small section")
% (find-2024gitvideo "32:31" "about how to use that to teach magit.")
% (find-2024gitvideo "32:36" "To do things with magit we have to")
% (find-2024gitvideo "32:39" "create a")
% (find-2024gitvideo "32:41" "repository... preferably in a way in")
% (find-2024gitvideo "32:44" "which this creation mechanism is easy to")
% (find-2024gitvideo "32:48" "run again...")

% (find-2024gitvideo "32:50" "and then we have to teach people")
% (find-2024gitvideo "32:54" "what are the keys that they have to")
% (find-2024gitvideo "32:55" "press in magit... for example")
% (find-2024gitvideo "32:58" "here for staging the changes people")
% (find-2024gitvideo "33:02" "have to to press S in a certain part of")
% (find-2024gitvideo "33:05" "the magit buffer, and then they have to")
% (find-2024gitvideo "33:08" "type \"c c\" in another position of")
% (find-2024gitvideo "33:13" "the magit buffer... so it's a totally")
% (find-2024gitvideo "33:17" "different interface...")

% (find-2024gitvideo "33:18" "So: this is a prototype, but")
% (find-2024gitvideo "33:23" "again... if you like this approach,")
% (find-2024gitvideo "33:26" "please get in contact!")

% (find-2024gitvideo "33:28" "And... that's it! That's what we have")
% (find-2024gitvideo "33:30" "now.")
% (find-2024gitvideo "33:32" "Yeah, that's it. Bye! Thanks!")

(find-2024gitvideo "33:35" " ")
]==]

unrevised_bigstr = [==[
(find-2024gitvideo "00:00" " ")

]==]

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