diff options
author | kballou <kballou@devnulllabs.io> | 2017-03-08 20:00:11 -0700 |
---|---|---|
committer | kballou <kballou@devnulllabs.io> | 2017-03-16 14:09:45 -0600 |
commit | 716b71201ee86f2be28772c4ba159408c400b11d (patch) | |
tree | a64559ea031b1e6b202bd8f52362c53823b63b37 | |
parent | 48fa7ec5497929c692dd982d544c48971ac76b86 (diff) | |
download | git-in-reverse-716b71201ee86f2be28772c4ba159408c400b11d.tar.gz git-in-reverse-716b71201ee86f2be28772c4ba159408c400b11d.tar.xz |
Add packfiles to plumbing section
-rw-r--r-- | src/code/packfiles/1 | 16 | ||||
-rw-r--r-- | src/code/packfiles/2 | 7 | ||||
-rw-r--r-- | src/code/packfiles/3 | 10 | ||||
-rw-r--r-- | src/git-in-reverse.tex | 60 | ||||
-rw-r--r-- | src/references.bib | 5 |
5 files changed, 91 insertions, 7 deletions
diff --git a/src/code/packfiles/1 b/src/code/packfiles/1 new file mode 100644 index 0000000..24819a0 --- /dev/null +++ b/src/code/packfiles/1 @@ -0,0 +1,16 @@ +± git rev-list --objects --all | head -1 | \ + git pack-objects --stdout | xxd +Counting objects: 1, done. +Total 1 (delta 0), reused 0 (delta 0) +00000000: 5041 434b 0000 0002 0000 0001 950e 789c PACK..........x. +00000010: 9d8c 510e c220 1005 ff39 c55e 40b3 0894 ..Q.. ...9.^@... +00000020: 2531 c6ab 00bb 4d1b 6931 089e 5f8d 9ec0 %1....M.i1.._... +00000030: bf37 93cc eb4d 0426 4ade 7967 2741 ca9a .7...M.&J.yg'A.. +00000040: 031a 9389 f024 9645 6764 173e 3293 bac7 .....$.Egd.>2... +00000050: 267b 8729 4844 09c6 2349 326f c83c 3b66 &{.)HD..#I2o.<;f +00000060: 4a12 58cf 19a3 f17a 162d 2a8e bed4 06b7 J.X....z.-*..... +00000070: 144b a903 cebf 7165 79ee a394 12d3 e3b8 .K....qey....... +00000080: d60b 684b 4193 d116 e180 1e51 e5ba 6d6b ..hKA......Q..mk +00000090: eff2 4fab ea68 d097 b531 7c6f d40b 6bc6 ..O..h...1|o..k. +000000a0: 4735 ffc0 30ce a4c0 140a a02e 648f 775c G5..0.......d.w\ +000000b0: 1fd1 654d a59e ..eM.. diff --git a/src/code/packfiles/2 b/src/code/packfiles/2 new file mode 100644 index 0000000..2ef0476 --- /dev/null +++ b/src/code/packfiles/2 @@ -0,0 +1,7 @@ +± git rev-list --objects --all | head -1 | \ + git pack-objects test +Counting objects: 1, done. +Total 1 (delta 0), reused 0 (delta 0) +± ls test-* +test-ffc030cea4c0140aa02e648f775c1fd1654da59e.idx +test-ffc030cea4c0140aa02e648f775c1fd1654da59e.pack diff --git a/src/code/packfiles/3 b/src/code/packfiles/3 new file mode 100644 index 0000000..2381ec5 --- /dev/null +++ b/src/code/packfiles/3 @@ -0,0 +1,10 @@ +± git gc +Counting objects: 9, done. +Delta compression using up to 4 threads. +Compressing objects: 100% (5/5), done. +Writing objects: 100% (9/9), done. +Total 9 (delta 0), reused 0 (delta 0) +± find .git/objects -type f +.git/objects/info/packs +.git/objects/pack/pack-6b3ea4129144c819898dd16a08bc26c62d5ef8cc.idx +.git/objects/pack/pack-6b3ea4129144c819898dd16a08bc26c62d5ef8cc.pack diff --git a/src/git-in-reverse.tex b/src/git-in-reverse.tex index 19e519e..9fee686 100644 --- a/src/git-in-reverse.tex +++ b/src/git-in-reverse.tex @@ -43,10 +43,6 @@ \subtitle{A Backwards Introduction to \\{} the ``information manager from hell'' [e83c51633]} \author[Ballou]{Kenny Ballou} -\institute[zData]{% - \inst{}% - zData, Inc. -} \AtBeginSection[]{% \begin{frame} @@ -112,6 +108,9 @@ hell'' [e83c51633]} \item<4->{``My preferred VCS tool''} \item<5->{The ``information manager from hell''} \item<6->{A distributed DAG} +\begin{itemize} +\item<6->{``A Graph Tree''} +\end{itemize} \item<7->{An object store} \item<8->{A content addressable filesystem} \item<9->{A key-value store} @@ -122,8 +121,8 @@ hell'' [e83c51633]} \frametitle{Git±} What does Git store? \begin{itemize} -\item<2->{Objects} -\item<3->{``Packs''} +\item<2-4>{Objects} +\item<3-3>{``Packs''} \end{itemize} \end{frame} @@ -243,7 +242,8 @@ What does Git store? \item[100644]{Regular file, *nix permissions 0644} \item[100755]{Regular file, *nix permissions 0755, e.g., executable} \item[120000]{Symbolic link} -\item[160000]{?} +\item[160000]{``Gitlink'', object from another repository, \texttt{fast-import}} +\item[040000]{Subdirectory, \texttt{fast-import}} \end{description} \end{frame} @@ -570,6 +570,52 @@ What does Git store? \end{figure} \end{frame} +\subsection{Packfiles} + +\begin{frame} +\frametitle{Packfiles} +\begin{itemize} +\item<2->{Tight Object Storage} +\item<3->{``Packs'' Objects Together} +\item<4->{Adds quick, indexed access to objects} +\item<5->{Motivated for network and access efficiency} +\begin{itemize} +\item<5->{Not Disk Space Efficiency} +\end{itemize} +\item<6->{Created automatically} +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Creating Packfiles} +\begin{itemize} +\item<1->{\texttt{git-pack-objects}} +\item<2->{\texttt{git-gc}} +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Creating Packfiles} +\framesubtitle{\texttt{git-pack-objects}} +\lstinputlisting[% + language=bash, + numbers=none, + basicstyle=\scriptsize{}\ttfamily{}, + columns=fixed]{code/packfiles/1} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Creating Packfiles} +\framesubtitle{\texttt{git-pack-objects}} +\lstinputlisting[language=bash,numbers=none]{code/packfiles/2} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Creating Packfiles} +\framesubtitle{\texttt{git-gc}} +\lstinputlisting[language=bash,numbers=none]{code/packfiles/3} +\end{frame} + \section{Using Git±} \begin{frame} \frametitle{Using Git±} diff --git a/src/references.bib b/src/references.bib index 11294df..a8df76e 100644 --- a/src/references.bib +++ b/src/references.bib @@ -42,3 +42,8 @@ @misc{website:linus_on_rebase, howpublished="\url{http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.html}" } +@misc{website:unpacking_git_packfiles, + howpublished="\url{https://codewords.recurse.com/issues/three/unpacking-git-packfiles/}", + author="Aditya Mukerjee", + title="Unpacking Git Packfiles" +} |