Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge remote-tracking branch 'upstream/master'

  • Loading branch information...
commit 1d1db86327153de4987db02e8338fe69eaee1bd9 2 parents 4169ef1 + 7c45bef
@godbyk godbyk authored
Showing with 701 additions and 538 deletions.
  1. +2 −0  .gitignore
  2. +33 −1 Makefile
  3. +1 −1  README.mkd
  4. +3 −7 TODO
  5. +0 −2  TODO.latex
  6. +0 −11 TODO.topics
  7. +0 −1  afterhours1.tex
  8. +2 −4 afterhours2.tex
  9. +2 −4 afterhours3.tex
  10. +1 −8 afterhours4.tex
  11. +1 −2  afterhours5.tex
  12. +0 −1  afterhours6.tex
  13. +1 −1  afterhours7.tex
  14. +2 −2 chap1.tex
  15. +0 −6 chap2.tex
  16. +3 −9 chap3.tex
  17. +1 −7 chap4.tex
  18. +0 −2  chap5.tex
  19. +0 −5 chap6.tex
  20. +2 −7 chap7.tex
  21. +0 −5 chap8.tex
  22. +14 −0 html/base-foot.html
  23. +35 −0 html/base-head.html
  24. +5 −4 html/chap-foot.html
  25. +5 −91 html/chap-head.html
  26. +14 −0 html/feedback.html
  27. BIN  html/images/git_logo_new.png
  28. BIN  html/images/next.png
  29. BIN  html/images/prev.png
  30. BIN  html/images/slide1.png
  31. +3 −119 html/index.html
  32. +20 −1 html/stylesheet.css
  33. +37 −38 html/sub.html
  34. +1 −1  images/source/bcover-new.svg
  35. +242 −0 images/source/cog.svg
  36. +1 −1  images/source/combinedcover.svg
  37. +10 −10 images/source/w5-d1.svg
  38. +15 −15 images/source/w5-d8.svg
  39. +0 −1  intro.tex
  40. +64 −171 scripts/htmlbuild.py
  41. +181 −0 scripts/munger.py
View
2  .gitignore
@@ -5,8 +5,10 @@
*.idx
*.ilg
*.ind
+*.pyc
gitt.pdf
print.pdf
scripts/outputs
site/
gitt-com.pdf
+build/
View
34 Makefile
@@ -1,3 +1,7 @@
+# Location of build dir
+BUILD_DIR=build
+
+BUILD_DIR_IMAGES=$(BUILD_DIR)/images/chaps
# Location of website files
SITE_DIR=site
@@ -45,6 +49,7 @@ cleantmp:
# Remove the generated PDF
cleanpdf:
rm -f gitt.pdf
+ rm -f print.pdf
# Remove the generated website images
cleanimages:
@@ -53,14 +58,26 @@ cleanimages:
# Clean up generated site files
cleansite:
@rm -fr $(SITE_DIR)
+ @rm html/nav.html
+
+cleanbuild:
+ @rm -fr $(BUILD_DIR)
site: html htmlimages
+baseconvert: $(BUILD_DIR) $(BUILD_DIR_IMAGES) htmlimages
+ @python scripts/htmlbuild.py alltex
+ @python scripts/htmlbuild.py baseconvert
+ @python scripts/htmlbuild.py baseconcat
+ @cp -r site/images $(BUILD_DIR)
+
# Convert TeX to HTML
html: $(SITE_IMAGES_DIR)
@touch html/nav.html
@cp html/stylesheet.css $(SITE_DIR)/
@cp html/index.html $(SITE_DIR)/
+ @python scripts/htmlbuild.py simple index
+ @python scripts/htmlbuild.py simple feedback
@python scripts/htmlbuild.py alltex
@python scripts/htmlbuild.py allchaps
@python scripts/htmlbuild.py allafterhours
@@ -98,8 +115,17 @@ htmlimages: $(SITEIMAGES) $(SITE_CHAP_IMAGES_DIR)
@cp images/f-w5-d17.png $(SITE_CHAP_IMAGES_DIR)/f-w5-d17.png
@cp images/f-w5-d18.png $(SITE_CHAP_IMAGES_DIR)/f-w5-d18.png
@cp images/f-w5-d19.png $(SITE_CHAP_IMAGES_DIR)/f-w5-d19.png
+ @cp images/f-af7-d1.png $(SITE_CHAP_IMAGES_DIR)/f-af7-d1.png
+ @cp images/f-af7-d2.png $(SITE_CHAP_IMAGES_DIR)/f-af7-d2.png
+ @cp images/f-af7-d3.png $(SITE_CHAP_IMAGES_DIR)/f-af7-d3.png
+ @cp images/f-af7-d4.png $(SITE_CHAP_IMAGES_DIR)/f-af7-d4.png
+ @cp images/f-af7-d5.png $(SITE_CHAP_IMAGES_DIR)/f-af7-d5.png
+ @cp images/f-af7-d6.png $(SITE_CHAP_IMAGES_DIR)/f-af7-d6.png
+ @cp images/f-af5-d1.png $(SITE_CHAP_IMAGES_DIR)/f-af5-d1.png
+ @cp images/f-af5-d2.png $(SITE_CHAP_IMAGES_DIR)/f-af5-d2.png
+ @cp images/f-af5-d3.png $(SITE_CHAP_IMAGES_DIR)/f-af5-d3.png
@cp html/images/* $(SITE_IMAGES_DIR)/
-
+
# Make directories
$(SITE_DIR):
@mkdir -p $(SITE_DIR)
@@ -112,3 +138,9 @@ $(SITE_IMAGES_DIR):
$(SITE_CHAP_IMAGES_DIR):
@mkdir -p $(SITE_CHAP_IMAGES_DIR)
+
+$(BUILD_DIR):
+ @mkdir -p $(BUILD_DIR)
+
+$(BUILD_DIR_IMAGES):
+ @mkdir -p $(BUILD_DIR_IMAGES)
View
2  README.mkd
@@ -34,7 +34,7 @@ If you wish to read GITT whilst it is in development phase, you have 3 options.
1. Read the LaTeX source, which really isn't as bad as it sounds
2. Use `make pdf` to use latex to build the pdf, you will need to have `pdflatex` installed for this
- * For ubuntu users, run `sudo apt-get install texlive-latex-base texlive-latex-extra texlive-fonts-recommended texlive-xetex` to get `xelatex` and the other files required to build
+ * For ubuntu users, run `sudo apt-get install texlive-latex-base texlive-latex-extra texlive-fonts-recommended texlive-xetex ttf-linux-libertine` to get `xelatex` and the other files required to build
3. An older PDF version of the book can be found <a href="https://github.com/downloads/cbx33/gitt/gitt.pdf">here</a>
# Publishing
View
10 TODO
@@ -14,13 +14,9 @@ Come up with more items for terminology
% git show v1.0.0^{tree}
-% make simon have changed a pw which broke things...this is to use bisect
-% then they discover pw in repo
-
-% filter branch to move project to new dir
-
%wmctrl -r Gui -e 0,0,0,811,500
Neeeed to talk about .gitignore
-Security and verification
-pushing tags
+
+Create and place nice icons in top left corner of breakout boxes
+
View
2  TODO.latex
@@ -1,2 +0,0 @@
-Check for code and texttt overun issues
-Create and place nice icons in top left corner of breakout boxes
View
11 TODO.topics
@@ -1,11 +0,0 @@
-REAL TOPICS
-untracked files with .gitignore
-Reflog use for head git reset
-blame bisect
-filter-branch
-subtree
-submodule
-
-BREAKOUTS
-push/pull tags
-Non FF push (breaking laws of physics)
View
1  afterhours1.tex
@@ -2,7 +2,6 @@
\chapter{After Hours Week 1}
\section{``History Lesson''}
\subsection{A Brief History of Version Control}
-
\subsubsection{The Very Early Days}
Version control systems have been around for forty years (2011 at the time of writing).
During this time they have undergone an intense amount of change and have evolved into some of the most incredibly powerful tools utilised in software development today.
View
6 afterhours2.tex
@@ -2,9 +2,7 @@
\chapter{After Hours Week 2}
\section{``A Little Of Git's Internals''}
\subsection{A Look At Plumbing}
-\index{Plumbing}
-\index{Git!directory structure}
-This After Hours section is going to get a little deep.
+\index{Plumbing}\index{Git!directory structure}This After Hours section is going to get a little deep.
For some of you it may be more information than you bargained for.
However, sometimes, when the worst happens, it is comforting to know that you at least have a basic understanding of what is happening under the hood.
These After Hours sections are designed to give you that knowledge.
@@ -144,7 +142,7 @@ \subsection{A Look At Plumbing}
Later in the book, you will find out exactly how to generate your own repository from scratch, but for now, let us just understand that Git first creates a header for the content, then adds the content to the header, creates the SHA-1 hash of such data and finally Zlib compresses it to store to disk.
\subsection{Out comes the wrench}
-Wouldn't it be nice if we could view the data that was inside the file simply, without having to write out own tools.
+Wouldn't it be nice if we could view the data that was inside the file simply, without having to write our own tools.
If you look through the Git man page, you will find one listed under the \textbf{Interrogation} section, called \texttt{git cat-file}.
Anyone who has spent any time with Git will know what the \texttt{cat} command does.
\texttt{cat} is used to display the contents of files.
View
6 afterhours3.tex
@@ -2,8 +2,7 @@
\chapter{After Hours Week 3}
\section{``A Closer Look At Diffs and Tags''}
\subsection{The Diff Utility}
-\index{diff!algorithm}
-We learnt in \emph{Week 3} how to work with a diff, and what a diff actually represents.
+\index{diff!algorithm}We learnt in \emph{Week 3} how to work with a diff, and what a diff actually represents.
It is interesting to note how old the \texttt{diff} utility actually is and how it works.
The diff algorithm was developed in the early 1970s and the research published in 1976, by Douglas McIlroy, who wrote the original diff utility and James Hunt.
The algorithm we use today to perform diffs has become known as the Hunt-McIlroy after the research papers authors.
@@ -48,8 +47,7 @@ \subsection{The Diff Utility}
This section was included to give you some idea of how Git performs some of its actions internally.
\subsection{More about tags}
-\index{tagging!internals}
-Tags can actually do a little more than just hold a single identifier to a specific commit.
+\index{tagging!internals}Tags can actually do a little more than just hold a single identifier to a specific commit.
A tag can also have a log message with it, similar to the commit objects we discussed earlier.
In order to invoke this option, we need to use the \texttt{git tag -m 'message'} option.
This will allow us to supply a message to be stored along with the tag.
View
9 afterhours4.tex
@@ -2,17 +2,11 @@
\chapter{After Hours Week 4}
\section{``Merge merge merge''}
\subsection{How does merging work?}
-
To start with, we need to define which merging strategy we are talking about.
In Git there are multiple ways to instruct a merge to take place.
Below is a brief list of the options that you can supply to the \texttt{git merge} command along with a brief description of how each one affects the merge process.
We will explain the details a little more further on.
-\index{merging!types}
-\index{merging!types!resolve}
-\index{merging!types!recursive}
-\index{merging!types!octopus}
-\index{merging!types!ours}
-\index{merging!types!subtree}
+\index{merging!types}\index{merging!types!resolve}\index{merging!types!recursive}\index{merging!types!octopus}\index{merging!types!ours}\index{merging!types!subtree}
\begin{itemize}
\item\textbf{resolve} - A two headed merge strategy using a 3-way merge algorithm.
@@ -84,7 +78,6 @@ \subsection{How does merging work?}
\section{``Grepping your life away''}
\subsection{A subtle twist on searching}
-
As well as our \texttt{git log} tool, which we have used for searching, it is useful to know that there is actually another way to search for strings in your current directory.
We can use the \indexgit{grep} tool to find all files in our working tree which have a certain pattern in them.
View
3  afterhours5.tex
@@ -2,7 +2,6 @@
\chapter{After Hours Week 5}
\section{``Splitting up commits the easy way''}
\subsection{Taking commits that little bit further}
-
Sometimes, putting everything in a single commit just is not a good idea.
Imagine you have pulled in number of updates to your working directory.
You may want to split these up.
@@ -189,7 +188,7 @@ \subsection{Taking commits that little bit further}
\end{code}
At first glance, we do not appear to have been left with any indication that anything has taken place.
-In order to perform a check we shall run out obligatory \texttt{git diff}, both between the working copy and the index, and between the index and the last commit.
+In order to perform a check we shall run our obligatory \texttt{git diff}, both between the working copy and the index, and between the index and the last commit.
\begin{code}
john@satsuki:~/coderepo$ git diff
View
1  afterhours6.tex
@@ -3,7 +3,6 @@
\chapter{After Hours Week 6}
\section{``Tug of war''}
\subsection{Taking the push with the pull}
-
We have spoken in fairly great length about how remote repositories work.
We have seen how the \texttt{git remote} tool is used to create the various references to remote repositories, but we have no real understanding about what this means in terms of Git's internals.
Just in the same way a branch is a single file that contains a pointer to a reference, a remote repository has to be handled within Git somehow.
View
2  afterhours7.tex
@@ -81,7 +81,7 @@ \subsection{Brewing a website - in an instant}
\figuregith{12cm}{images/f-af7-d3.png}{Instaweb's repository page (bottom)}
-Figures 2 and 3 show how the web interface looks when browsing out repository.
+Figures 2 and 3 show how the web interface looks when browsing our repository.
At the top of the page we see a history of commits along with a search box which works similar to the \texttt{gitk} system which was discussed earlier.
At the bottom of the page, we see our \textbf{tags} and \textbf{heads}.
There are several link names which we will briefly describe now.
View
4 chap1.tex
@@ -109,10 +109,10 @@ \subsection{Version Control Nuances}
The implementation of branching in Git is fast.
Due to the fact that repositories are stored locally, the speed of creating a local branch is limited only by the speed of the disks on a local machine.
-Git's implementation is so lightweight that even this speed factor is negligable.
+Git's implementation is so lightweight that even this speed factor is negligible.
\index{Staging}\subsection{Staging}
-Git deals with commiting changes into the repository differently to most other version control systems by the introduction of the staging area.
+Git deals with committing changes into the repository differently to most other version control systems by the introduction of the staging area.
The staging area allows developers to prepare their commits before they are written to the repository.
Why is this useful or any different to any other version control system.
In Git you can make a change to a file, add it to the staging area, and then continue to make changes to that file, even though you have not yet actually committed anything.
View
6 chap2.tex
@@ -2,7 +2,6 @@
\chapter{Week 2}
\section{Day 1 - ``We are coders, we use Git!''}
\subsection{Setting Up the Environment}
-
So now we are ready to begin delving into and actually using Git, right? Well, not exactly.
First we have to decide upon how the workflow model we have envisaged is implemented in our version control system.
With Git being so versatile, it's both a blessing and a danger.
@@ -136,7 +135,6 @@ \subsection{Initialising A Repository}
\section{Day 2 - ``Making commitments''}
\subsection{Let's work on our repository}
-
The most simple way of committing a file into the repository is to create it, or copy it to the working copy of our repository and use the commands below.
The working copy is the version of the repository we have currently checked out.
This terminology will be explained more later on.
@@ -207,7 +205,6 @@ \subsection{Let's work on our repository}
So this means that Git has recognised and remembered that we are expecting these files to be committed when we next run a \texttt{git commit}.
\subsection{Committing the Uncommitted}
-
\begin{trenches}
``John, what is going on here?'' shouted Klaus from across the hallway.
The entire office had heard Klaus banging his hands down on the desk for the last fifteen minutes.
@@ -310,13 +307,10 @@ \subsection{Committing the Uncommitted}
# my_third_committed_file
nothing added to commit but untracked files present (use "git add" to track)
john@satsuki:~/coderepo$
-
\end{code}
\section{Day 4 - ``Let's do this right, not fast''}
-
\subsection{Uh-Oh I Think I Made A Mistake}
-
So now we are fairly well acquainted with adding files into the repository and performing commits.
In a short while we will learn about how to view the changes we have made and perform diffs against various objects.
Before we close out the week, we need to go back to the trenches one last time.
View
12 chap3.tex
@@ -2,11 +2,9 @@
\cleardoublepage
%\phantomsection
\chapter{Week 3}
-\section{Day 1 - ``But how do I see what's going on?''}
+\section{Day 1 - ``How do I see what's going on?''}
\subsection{Logging in Git}
-
-\index{logging}
-Perhaps the best feature of a version control system is the level of accountability that it offers if set up correctly.
+\index{logging}Perhaps the best feature of a version control system is the level of accountability that it offers if set up correctly.
What do we mean by this? People often mistake the word \textbf{accountability} for the word \textbf{blame}.
This is not true at all.
Accountability is key in understanding the events that led up to a particular bug being introduced, or a situation occurring.
@@ -119,7 +117,6 @@ \subsection{Logging in Git}
\section{Day 2 - ``But I need more information''}
\subsection{Digging a little deeper}
-
\begin{trenches}
``I know John, and next time I will make a note of it, but right now, I'd really like to know where this file got changed,'' Klaus pointed at the piece of paper containing a print out, ``specifically when this function was introduced.''
@@ -186,7 +183,6 @@ \subsection{Digging a little deeper}
\section{Day 3 - ``What actually changed?''}
\subsection{Doing the diff dance}
-
Knowing what the committer thinks they committed is brilliant.
However, sometimes it's just not enough.
The reason for this is stated fairly precisely in the first sentence of this paragraph, so let us add a little formatting to bring out the real meaning.
@@ -445,7 +441,6 @@ \subsection{Diffing Over A Range}\index{diff!over a range}
\section{Day 4 - ``Finding a good reference point''}
\subsection{Tag you're it!}\index{tagging}
-
During software development, a project will generally get to a point where it is ready to be released to people outside of the development team.
When this grand day occurs, it is crucial that both the developers and the users have a reference point with which to refer to the state of the code.
Having a code name or a version number means that within a very short period of time, both parties can converse about a problem, safe in the knowledge that they are on the same page.
@@ -519,9 +514,8 @@ \subsection{Tag you're it!}\index{tagging}
This will all become clearer during the next week, but fits in with the overall ethos of working with version control systems, if someone has seen the past, you should not EVER change it.
\end{callout}
-\section{Day 5 - ``Putting things back the way they were''}
+\section{Day 5 - ``Putting things back again''}
\subsection{Revert, I say. Revert!}
-
Whilst working with your repository, something occurs quite often, is the need to go back in time, either temporarily or permanently, or even partially.
Git allows you to do this in a multitude of ways.
Let's see a real life situation where this need could arise.
View
8 chap4.tex
@@ -2,9 +2,8 @@
\cleardoublepage
%\phantomsection
\chapter{Week 4}
-\section{Day 1 - ``Finally we're getting somewhere''}
+\section{Day 1 - ``We're getting somewhere''}
\subsection{Planting trees}
-
Tamagoyaki Inc have now realised that they have to take these things slow and steady if they want to implement a stable and robust system.
This week, they are going to start actually using branches and merging in changes, probably one of the largest topics to cover when doing any type of collaborative development.
@@ -242,7 +241,6 @@ \subsection{Planting trees}
\section{Day 2 - ``Branches galore''}
\subsection{Working with branches}
-
Now we know about branches in general, we should really learn about how to merge changes from one branch into another.
Branches are fantastic for trying new things out and testing ideas, but if those ideas are successful, we need a way of pulling those changes into our \textbf{master} branch.
@@ -436,7 +434,6 @@ \subsection{Working with branches}
\section{Day 3 - ``Tricking the twigs''}
\subsection{More neat ways to work with branches}
-
This is only the beginning of the fantastic feature set that Git offers.
By knowing how Git handles your data, you can make it work for you.
Let us take a look at another situation you may find yourself in.
@@ -567,7 +564,6 @@ \subsection{More neat ways to work with branches}
* 163f061 (v0.9) Made a few changes to first and second files
* cfe23cb My First Ever Commit
john@satsuki:~/coderepo$
-
\end{code}
\index{graphing}The \texttt{--graph} parameter, tells Git to draw a graph down the left hand column.
@@ -583,7 +579,6 @@ \subsection{More neat ways to work with branches}
\section{Day 4 - ``I pressed delete...''}
\subsection{Handling the pressure}
-
\index{branching!deleting}\index{branching!recovering}We have had some awesome fun working with branches, and hopefully you can see how utterly powerful Git is.
Sometimes though we can get ourselves into trouble and it is here that Git can also come to our rescue.
Let us learn how to delete a branch.
@@ -649,7 +644,6 @@ \subsection{Handling the pressure}
\section{Day 5 - ``Conflicting information''}
\subsection{What to do when it all goes wrong}
-
\index{conflicts}The team have been playing with branches for a few days now and are beginning to settle into the idea of branching often.
As you can see, in Git, a branch is a really simple device for allowing experimentation and development.
As the implementation of branches is so simple, it is also really fast to switch between branches.
View
2  chap5.tex
@@ -4,7 +4,6 @@
\chapter{Week 5}
\section{Day 1 - ``This isn't working for me John''}
\subsection{Dealing with resistance}
-
So, now that the team have discovered the basics of branching, they are conceptually ready to start using it in earnest.
When implementing a version control system, or shifting from one to another, it is important to make sure that the users are happy with the system and know how to use it.
Training is a big issue.
@@ -142,7 +141,6 @@ \subsection{A little bit of graphics}
\section{Day 2 - ``Back to logging''}
\subsection{Visualisation to the max}
-
\index{gitk@\texttt{gitk}}With the basic operations down, as we discovered in Week 1, let us now move on to using the GUI to view the history of our database.
The visualiser that is bundled with Git is packed with features and can be invoked in one of two ways, either by running \texttt{gitk} from the command line, or by choosing \textbf{\emph{Repository - Visualize All Branch History}} or \textbf{\emph{Repository - Visualize master's Branch History}}, the latter menu item is worded with the assumption that you are on the \textbf{master} branch of course.
View
5 chap6.tex
@@ -4,7 +4,6 @@
\chapter{Week 6}
\section{Day 1 - ``My private little stash''}
\subsection{Getting interrupted}
-
\index{stashing}We're getting close to the point where we can really start using Git as we originally intended, the team at Tamagoyaki Inc.
are also getting much more acquainted with the operations of both version control and Git in particular.
Unfortunately things don't always go as smoothly as we would like.
@@ -163,7 +162,6 @@ \subsection{Getting interrupted}
\section{Day 2 - ``What?! No backup?''}
\subsection{Attack of the clones}
-
We now know about basic branching and merging.
At this stage, there is on important topic we must cover briefly, and this is subject of cloning.
Cloning allows you to make a complete copy of your repository, including all of its history and all of the branches.
@@ -244,7 +242,6 @@ \subsection{Attack of the clones}
\section{Day 3 - ``Is this clone for real?''}
\subsection{Not entirely as expected}
-
We now have a clone of the repository and we can start to look at how we can play with branches and see how the two are different.
\begin{trenches}
@@ -431,7 +428,6 @@ \subsection{Not entirely as expected}
\section{Day 4 - ``Help I'm no longer up to date?''}
\subsection{Pulling changes, not teeth}
-
With a remote tracking branch, we can pull in the changes from the remote repository.
In our case, the remote repository is in the \texttt{coderepo} directory that we created at the start of the book.
In the \texttt{coderepo-cl} directory we have a separate, self-contained copy of the repository.
@@ -562,7 +558,6 @@ \subsection{Pulling changes, not teeth}
\section{Day 5 - ``I'm putting my foot down''}
\subsection{Pushing back!}
-
We now know a lot about remote locations right? We are ready to start collaborating with someone.
Let us first see how Tamagoyaki are getting on with things.
View
9 chap7.tex
@@ -4,7 +4,6 @@
\chapter{Week 7}
\section{Day 1 - ``Networking with a difference''}
\subsection{Pushing across a LAN}
-
\index{SSH}Now we have a complete copy of our repository in another location.
At the moment we have created this clone on the same machine that our original is.
This isn't really a very good idea for backup purposes.
@@ -77,7 +76,6 @@ \subsection{Protocol decision}
\section{Day 2 - ``Now let's work together''}
\subsection{Pure collaboration}
-
We are now armed with a much clearer idea of how Git works and indeed we are now in a position to actually implement the developmental model that the team of Tamagoyaki need in order to collaborate on their projects.
It should be noted that although we have reached the point of being able to work together on a project, this is not where out discussions about Git will end.
We still have a number of topics to cover and these will be visited as required during the subsequent implementation of Git at Tamagoyaki.
@@ -247,7 +245,6 @@ \subsection{Pure collaboration}
\section{Day 3 - ``Rebasing our commitments''}
\subsection{Rebase examples}
-
We are now going to go back to our \texttt{coderepo} folder.
This is the one we cloned from in Week 6 to create the \texttt{coderepo-cl} repository.
When we left this repository, we were at commit \textbf{1c3206a}.
@@ -445,10 +442,10 @@ \subsection{Rebase examples}
\end{callout}
Let us try this rebase again.
-This time we will use the sqush option to merge the two similar commits into one.
+This time we will use the squash option to merge the two similar commits into one.
We will run the same command as before; \texttt{git rebase -i HEAD\textasciitilde3}.
This time we will use the \texttt{s} prefix to the line to choose \emph{squashing} as our method.
-We could have used the word \texttt{sqush} instead of \texttt{s}, but for the laziness in all of us, we will opt for the single letter versions for now.
+We could have used the word \texttt{squash} instead of \texttt{s}, but for the laziness in all of us, we will opt for the single letter versions for now.
\begin{code}
pick c0e2f5b Updated another file
@@ -507,7 +504,6 @@ \subsection{Rebase examples}
\section{Day 4 - ``Starting to get rebased''}
\subsection{Using rebase with branches}
-
\index{continuous integration}Up until now we have used \texttt{git rebase} to work on our current branch, modifying a few things here and there.
This is actually one of the simplest things that rebase can perform, and as hinted to in our workflow design, we can actually use \texttt{git rebase} to perform something called \emph{Continuous Integration}.
@@ -714,7 +710,6 @@ \subsection{Using rebase with branches}
\section{Day 5 - ``I could rebase the world''}
\subsection{Migrating commits}
-
We are almost at the end our our journey with the rebase tool and have one more stop before we start looking at other features of Git.
\begin{trenches}
View
5 chap8.tex
@@ -4,7 +4,6 @@
\chapter{Week 8}
\section{Day 1 - ``Give a man a patch''}
\subsection{Collaborating with outsiders}
-
We have spoken at great length now about rebasing and have seen that it is a very very powerful tool.
It can form part of your workflow in your development cycle.
However, always heed that warning that should send alarm bells ringing in the back of your mind about rebasing.
@@ -295,7 +294,6 @@ \subsection{Can we have some order please?}
\section{Day 2 - ``Looking for problems''}
\subsection{A problem shared is a problem bisected}
-
\index{bisecting}During most software development, bugs are introduced.
Sometimes these bugs are fixed immediately and sometimes they sit there in the code festering away for months on end until someone tests a specific case.
Of course it is always best to have test suites and run them regularly against the code base, but on occasions either the test case itself has a bug,
@@ -450,7 +448,6 @@ \subsection{A problem shared is a problem bisected}
Notice that at the end of the bisect, Git does not return us to the master branch.
We are left in the last tested checked out revision.
-
\subsection{Automating the process}
\index{bisecting!automation}So bisecting is a very powerful way of quickly and efficiently finding the point at which bugs were introduced or \index{regression testing}regression testing.
Git was spot on when it suggested that that revision was the one responsible for the mistake.
@@ -555,7 +552,6 @@ \subsection{Automating the process}
\section{Day 3 - ``Filtered repos''}
\subsection{Looking at a repo with rose tinted glasses}
-
\index{filtering}It does happen. Sometimes when people are under pressure, mistakes are made, just like earlier when we accidently deleted our branch from the repository.
This time the mistake is a little more crucial but again it does happen and it sometimes goes a long time before it is noticed.
@@ -1019,7 +1015,6 @@ \subsection{Little bundles of joy}
\section{Day 5 - ``Shhh....we're in a library''}
\subsection{Nuclear fusion}
-
OK, so we are not quite at the stage of nuclear physics, but it would be nice to know how to bring our library back into our repository.
Git offers a tool called \indexgit{submodule}. This tool allows you to link a remote repositories branch and store it under a subdirectory of the project.
It does have some nuances which must be learnt, but can be very useful.
View
14 html/base-foot.html
@@ -0,0 +1,14 @@
+</td>
+ </tr>
+ </table>
+</td>
+ </tr>
+ <tr>
+ <td class="foot"><a href="index.html">home</a> | <a href="download.html">download</a> | <a href="read.html">read now</a> | <a href="source.html">source</a> | <a href="feedback.html">feedback</a> | <a href="legal.html">legal stuff</a><br>
+ </td>
+ </tr>
+ </table></td>
+ </tr>
+</table>
+</body>
+</html>
View
35 html/base-head.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Git In The Trenches</title>
+<link href="stylesheet.css" rel="stylesheet" type="text/css">
+<link type="text/css" href="menu.css" rel="stylesheet" />
+ <script type="text/javascript" src="jquery.js"></script>
+</head>
+
+<body>
+<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td class="logo"><a href="index.html"><img src="images/git_logo_new.png" alt="Git In The Trenches" height="61" border="0"></a></td>
+ <td class="nav">
+ <a href="index.html">Home</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="download.html">Download Now</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="intro.html">Read Now</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="http://github.com/cbx33/gitt">Source</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="feedback.html">Feeback</a>
+ </td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="main_content_pad">
+
View
9 html/chap-foot.html
@@ -1,4 +1,4 @@
- <p align="right"><img src="images/next_day.png" alt="Next Day" width="240" height="29"></p></td>
+ </td>
<td class="fade_right">&nbsp;</td>
</tr>
<tr>
@@ -6,12 +6,13 @@
<td class="fade_corner">&nbsp;</td>
</tr>
</table></td>
- </tr>
- </table></td>
+ </tr>
+ </table>
+ </td>
</tr>
<tr>
<td class="foot"><a href="index.html">home</a> | <a href="download.html">download</a> | <a href="read.html">read now</a> | <a href="source.html">source</a> | <a href="feedback.html">feedback</a> | <a href="legal.html">legal stuff</a><br>
- menu provided by <a href="http://apycom.com/">Apycom jQuery Menus</a></td>
+ </td>
</tr>
</table></td>
</tr>
View
96 html/chap-head.html
@@ -5,9 +5,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Git In The Trenches</title>
<link href="stylesheet.css" rel="stylesheet" type="text/css">
-<!-- <link type="text/css" href="menu.css" rel="stylesheet" />-->
-<!-- <script type="text/javascript" src="jquery.js"></script>-->
-<!-- <script type="text/javascript" src="menu.js"></script>-->
+<link type="text/css" href="menu.css" rel="stylesheet" />
+ <script type="text/javascript" src="jquery.js"></script>
</head>
<body>
@@ -17,99 +16,14 @@
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td class="logo"><a href="index.html"><img src="images/git_logo.png" alt="Git In The Trenches" width="347" height="61" border="0"></a></td>
+ <td class="logo"><a href="index.html"><img src="images/git_logo_new.png" alt="Git In The Trenches" height="61" border="0"></a></td>
<td class="nav">
<a href="index.html">Home</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="download.html">Download Now</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="intro.html">Read Now</a>&nbsp;&nbsp;|&nbsp;&nbsp;
- <a href="source.html">Source</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="http://github.com/cbx33/gitt">Source</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="feedback.html">Feeback</a>
- <!--<div id="menu">
- <ul class="menu">
- <li><a href="index.html" class="parent"><span>Home</span></a>
- </li>
- <li><a href="download.html"><span>Download Now</span></a></li>
- <li><a href="read.html"><span>Read Now</span></a><div><ul>
- <li><a href="#" class="parent"><span>Chapter 1</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div>
- </li>
- <li><a href="#" class="parent"><span>Chapter 2</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 3</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 4</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 5</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 6</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 7</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 8</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
- </ul></div></li>
- </ul></div>
- </li>
- <li><a href="source.html"><span>Source</span></a></li>
- <li class="last"><a href="feedback.html"><span>Feedback</span></a></li>
- </ul>
- </div>-->
- </td>
+ </td>
</tr>
</table></td>
</tr>
View
14 html/feedback.html
@@ -0,0 +1,14 @@
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td class="read_content"><h1>Feedback</h1>
+ <h2>We need your input </h2>
+ <p>The book can be improved in so many ways! If you feel like you would like to contribute in any way, there are a number of ways to do so.</p>
+ <p>Here will be a list of ways to help</p>
+ </td>
+ <td class="fade_right">&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="fade_bot">&nbsp;</td>
+ <td class="fade_corner">&nbsp;</td>
+ </tr>
+ </table>
View
BIN  html/images/git_logo_new.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  html/images/next.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  html/images/prev.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  html/images/slide1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
122 html/index.html
@@ -1,108 +1,4 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Git In The Trenches</title>
-<link href="stylesheet.css" rel="stylesheet" type="text/css">
-<link type="text/css" href="menu.css" rel="stylesheet" />
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="menu.js"></script>
-</head>
-
-<body>
-<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
- <tr>
- <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td class="logo"><a href="index.html"><img src="images/git_logo.png" alt="Git In The Trenches" width="347" height="61" border="0"></a></td>
- <td class="nav"><div id="menu">
- <ul class="menu">
- <li><a href="index.html" class="parent"><span>Home</span></a>
- </li>
- <li><a href="download.html"><span>Download Now</span></a></li>
- <li><a href="read.html"><span>Read Now</span></a><div><ul>
- <li><a href="#"><span>Introduction</span></a></li>
- <li><a href="#"><span>Setting Up</span></a></li>
- <li><a href="#" class="parent"><span>Week 1</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1 - Things need to change</span></a></li>
- <li><a href="#"><span>Day 2 - A possible solution</span></a></li>
- <li><a href="#"><span>Day 4 - A decision is reached</span></a></li>
- <li><a href="#"><span>Day 5 - Working like a team</span></a></li>
- <li><a href="#"><span>After Hours</span></a></li>
- </ul></div>
- </li>
- <li><a href="#" class="parent"><span>Week 2</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1 - We are coders, we use Git!</span></a></li>
- <li><a href="#"><span>Day 2 - Making commitments</span></a></li>
- <li><a href="#"><span>Day 4 - Let's do this right, not fast</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Week 3</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Week 4</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Week 5</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Week 6</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Week 7</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- </ul></div></li>
- <li><a href="#" class="parent"><span>Week 8</span></a>
- <div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- </ul></div></li>
- </ul></div>
- </li>
- <li><a href="source.html"><span>Source</span></a></li>
- <li class="last"><a href="feedback.html"><span>Feedback</span></a></li>
- </ul>
- </div></td>
- </tr>
- </table></td>
- </tr>
- <tr>
- <td>&nbsp;</td>
- </tr>
- <tr>
- <td class="main_content_pad"><table width="100%" border="0" cellspacing="0" cellpadding="0">
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="git_vertical"><img src="images/git.png" alt="GIT" width="46" height="87"></td>
<td class="slide"><img src="images/slide1.png" width="392" height="250"></td>
@@ -129,7 +25,7 @@
</tr>
<tr>
<td>&nbsp;</td>
- <td><a href="read.html"><img src="images/read_now.png" alt="Read Now" width="129" height="29" border="0" class="read_now"></a></td>
+ <td><a href="intro.html"><img src="images/read_now.png" alt="Read Now" width="129" height="29" border="0" class="read_now"></a></td>
</tr>
</table></td>
</tr>
@@ -171,16 +67,4 @@
<td class="fade_bot">&nbsp;</td>
<td class="fade_corner">&nbsp;</td>
</tr>
- </table></td>
- </tr>
- </table></td>
- </tr>
- <tr>
- <td class="foot"><a href="index.html">home</a> | <a href="download.html">download</a> | <a href="read.html">read now</a> | <a href="source.html">source</a> | <a href="feedback.html">feedback</a> | <a href="legal.html">legal stuff</a><br>
- menu provided by <a href="http://apycom.com/">Apycom jQuery Menus</a></td>
- </tr>
- </table></td>
- </tr>
-</table>
-</body>
-</html>
+ </table>
View
21 html/stylesheet.css
@@ -192,6 +192,7 @@ h2 {
}
#codeblock {
+ text-align:left;
border-left:5px #009090 solid;
padding-left:5px;
margin:10px 10px 0px 10px;
@@ -201,12 +202,30 @@ h2 {
#trenchblock {
margin:10px 10px 0px 10px;
- font-family:sans-serif;
+ font-family:serif;
}
#calloutblock {
color:#000;
border:5px #009090 solid;
background:#eee;
+ margin-top:20px;
padding:10px;
}
+ul ol {
+ margin:0px;
+ padding:0px;
+}
+h3 {
+ margin:0px;
+ padding-bottom:10px;
+ margin-top:5px;
+}
+.ncode {
+ color:#000;
+ padding-left:3px;
+ padding-right:3px;
+ background:#ddd;
+ -webkit-border-radius:5px;
+ -moz-border-radius:5px;
+}
View
75 html/sub.html
@@ -7,7 +7,6 @@
<link href="stylesheet.css" rel="stylesheet" type="text/css">
<link type="text/css" href="menu.css" rel="stylesheet" />
<script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="menu.js"></script>
</head>
<body>
@@ -17,92 +16,90 @@
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
- <td class="logo"><a href="index.html"><img src="images/git_logo.png" alt="Git In The Trenches" width="347" height="61" border="0"></a></td>
- <td class="nav"><div id="menu">
+ <td class="logo"><a href="index.html"><img src="images/git_logo_new.png" alt="Git In The Trenches" height="61" border="0"></a></td>
+ <td class="nav">
+ <a href="index.html">Home</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="download.html">Download Now</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="intro.html">Read Now</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="source.html">Source</a>&nbsp;&nbsp;|&nbsp;&nbsp;
+ <a href="feedback.html">Feeback</a>
+<!-- <div id="menu">
<ul class="menu">
<li><a href="index.html" class="parent"><span>Home</span></a>
</li>
<li><a href="download.html"><span>Download Now</span></a></li>
<li><a href="read.html"><span>Read Now</span></a><div><ul>
- <li><a href="#" class="parent"><span>Chapter 1</span></a>
+ <li><a href="#"><span>Introduction</span></a></li>
+ <li><a href="#"><span>Setting Up</span></a></li>
+ <li><a href="#" class="parent"><span>Week 1</span></a>
<div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
+ <li><a href="#"><span>Day 1 - Things need to change</span></a></li>
+ <li><a href="#"><span>Day 2 - A possible solution</span></a></li>
+ <li><a href="#"><span>Day 4 - A decision is reached</span></a></li>
+ <li><a href="#"><span>Day 5 - Working like a team</span></a></li>
+ <li><a href="#"><span>After Hours</span></a></li>
</ul></div>
</li>
- <li><a href="#" class="parent"><span>Chapter 2</span></a>
+ <li><a href="#" class="parent"><span>Week 2</span></a>
<div><ul>
- <li><a href="#"><span>Day 1</span></a></li>
- <li><a href="#"><span>Day 2</span></a></li>
- <li><a href="#"><span>Day 3</span></a></li>
- <li><a href="#"><span>Day 4</span></a></li>
- <li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
+ <li><a href="#"><span>Day 1 - We are coders, we use Git!</span></a></li>
+ <li><a href="#"><span>Day 2 - Making commitments</span></a></li>
+ <li><a href="#"><span>Day 4 - Let's do this right, not fast</span></a></li>
</ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 3</span></a>
+ <li><a href="#" class="parent"><span>Week 3</span></a>
<div><ul>
<li><a href="#"><span>Day 1</span></a></li>
<li><a href="#"><span>Day 2</span></a></li>
<li><a href="#"><span>Day 3</span></a></li>
<li><a href="#"><span>Day 4</span></a></li>
<li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
</ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 4</span></a>
+ <li><a href="#" class="parent"><span>Week 4</span></a>
<div><ul>
<li><a href="#"><span>Day 1</span></a></li>
<li><a href="#"><span>Day 2</span></a></li>
<li><a href="#"><span>Day 3</span></a></li>
<li><a href="#"><span>Day 4</span></a></li>
<li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
</ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 5</span></a>
+ <li><a href="#" class="parent"><span>Week 5</span></a>
<div><ul>
<li><a href="#"><span>Day 1</span></a></li>
<li><a href="#"><span>Day 2</span></a></li>
<li><a href="#"><span>Day 3</span></a></li>
<li><a href="#"><span>Day 4</span></a></li>
<li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
</ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 6</span></a>
+ <li><a href="#" class="parent"><span>Week 6</span></a>
<div><ul>
<li><a href="#"><span>Day 1</span></a></li>
<li><a href="#"><span>Day 2</span></a></li>
<li><a href="#"><span>Day 3</span></a></li>
<li><a href="#"><span>Day 4</span></a></li>
<li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
</ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 7</span></a>
+ <li><a href="#" class="parent"><span>Week 7</span></a>
<div><ul>
<li><a href="#"><span>Day 1</span></a></li>
<li><a href="#"><span>Day 2</span></a></li>
<li><a href="#"><span>Day 3</span></a></li>
<li><a href="#"><span>Day 4</span></a></li>
<li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
</ul></div></li>
- <li><a href="#" class="parent"><span>Chapter 8</span></a>
+ <li><a href="#" class="parent"><span>Week 8</span></a>
<div><ul>
<li><a href="#"><span>Day 1</span></a></li>
<li><a href="#"><span>Day 2</span></a></li>
<li><a href="#"><span>Day 3</span></a></li>
<li><a href="#"><span>Day 4</span></a></li>
<li><a href="#"><span>Day 5</span></a></li>
- <li><a href="#"><span>Day 6</span></a></li>
</ul></div></li>
</ul></div>
</li>
<li><a href="source.html"><span>Source</span></a></li>
<li class="last"><a href="feedback.html"><span>Feedback</span></a></li>
</ul>
- </div></td>
+ </div>--></td>
</tr>
</table></td>
</tr>
@@ -117,17 +114,19 @@
<p>Content to follow. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vel nisi tellus, tempor placerat nunc. Maecenas vulputate neque lacinia quam placerat blandit. Morbi viverra feugiat interdum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed vitae tortor ac magna malesuada vestibulum. Pellentesque sed sapien leo, in gravida odio. Aliquam erat volutpat. Donec adipiscing ante id ligula ornare convallis. In massa nulla, mattis nec aliquam blandit, sagittis ut purus. Nullam eget purus mi, quis blandit ligula. Duis rhoncus, ante id tristique adipiscing, ante nunc commodo ante, vel facilisis diam turpis vel urna. Integer quis dui tortor.</p>
<p>Aenean ac mollis dui. Cras sed nisl magna, in convallis mauris. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque mollis euismod sollicitudin. Pellentesque sit amet turpis quis turpis bibendum pellentesque sit amet et lectus. Ut placerat massa at dolor lobortis id auctor nulla gravida. Pellentesque malesuada auctor diam at viverra. Quisque tempor, leo eget ullamcorper mattis, risus risus volutpat diam, id interdum ante sem tempus sem. Sed quam leo, hendrerit mattis commodo vel, sodales id sapien. Vestibulum dictum, lorem semper imperdiet tristique, diam augue suscipit enim, ut viverra ligula nisi nec dui. Sed volutpat, enim eget aliquam auctor, quam mi vestibulum purus, ac mollis nisi nunc quis quam. In orci sem, condimentum nec hendrerit ut, egestas ac ante. Phasellus iaculis molestie pretium.</p>
</td>
- <td class="fade_right">&nbsp;</td>
- </tr>
- <tr>
- <td class="fade_bot">&nbsp;</td>
- <td class="fade_corner">&nbsp;</td>
- </tr>
- </table></td>
+ <td class="fade_right">&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="fade_bot">&nbsp;</td>
+ <td class="fade_corner">&nbsp;</td>
+ </tr>
+ </table></td>
+ </tr>
+ </table></td>
</tr>
<tr>
<td class="foot"><a href="index.html">home</a> | <a href="download.html">download</a> | <a href="read.html">read now</a> | <a href="source.html">source</a> | <a href="feedback.html">feedback</a> | <a href="legal.html">legal stuff</a><br>
- menu provided by <a href="http://apycom.com/">Apycom jQuery Menus</a></td>
+ </td>
</tr>
</table></td>
</tr>
View
2  images/source/bcover-new.svg
@@ -1467,7 +1467,7 @@
<image
width="158.99471"
height="111.48261"
- xlink:href="file:///home/pete/GITT/images/raster/w5-d8.png"
+ xlink:href="file://../raster/w5-d8.png"
id="image23823"
x="461.36859"
y="645.89813" />
View
242 images/source/cog.svg
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="cog.svg"
+ inkscape:export-filename="/home/pete/GITT/html/images/git_logo_new.png"
+ inkscape:export-xdpi="17.363672"
+ inkscape:export-ydpi="17.363672">
+ <defs
+ id="defs4">
+ <filter
+ id="filter3935"
+ inkscape:label="Drop shadow"
+ width="1.5"
+ height="1.5"
+ x="-.25"
+ y="-.25">
+ <feGaussianBlur
+ id="feGaussianBlur3937"
+ in="SourceAlpha"
+ stdDeviation="10"
+ result="blur" />
+ <feColorMatrix
+ id="feColorMatrix3939"
+ result="bluralpha"
+ type="matrix"
+ values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.8 0 " />
+ <feOffset
+ id="feOffset3941"
+ in="bluralpha"
+ dx="0"
+ dy="0"
+ result="offsetBlur" />
+ <feMerge
+ id="feMerge3943">
+ <feMergeNode
+ id="feMergeNode3945"
+ in="offsetBlur" />
+ <feMergeNode
+ id="feMergeNode3947"
+ in="SourceGraphic" />
+ </feMerge>
+ </filter>
+ <filter
+ id="filter3771"
+ inkscape:label="Drop shadow"
+ width="1.5"
+ height="1.5"
+ x="-.25"
+ y="-.25">
+ <feGaussianBlur
+ id="feGaussianBlur3773"
+ in="SourceAlpha"
+ stdDeviation="10"
+ result="blur" />
+ <feColorMatrix
+ id="feColorMatrix3775"
+ result="bluralpha"
+ type="matrix"
+ values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.8 0 " />
+ <feOffset
+ id="feOffset3777"
+ in="bluralpha"
+ dx="0"
+ dy="0"
+ result="offsetBlur" />
+ <feMerge
+ id="feMerge3779">
+ <feMergeNode
+ id="feMergeNode3781"
+ in="offsetBlur" />
+ <feMergeNode
+ id="feMergeNode3783"
+ in="SourceGraphic" />
+ </feMerge>
+ </filter>
+ <filter
+ id="filter3819"
+ inkscape:label="Drop shadow"
+ width="1.5"
+ height="1.5"
+ x="-.25"
+ y="-.25">
+ <feGaussianBlur
+ id="feGaussianBlur3821"
+ in="SourceAlpha"
+ stdDeviation="10"
+ result="blur" />
+ <feColorMatrix
+ id="feColorMatrix3823"
+ result="bluralpha"
+ type="matrix"
+ values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.8 0 " />
+ <feOffset
+ id="feOffset3825"
+ in="bluralpha"
+ dx="0"
+ dy="0"
+ result="offsetBlur" />
+ <feMerge
+ id="feMerge3827">
+ <feMergeNode
+ id="feMergeNode3829"
+ in="offsetBlur" />
+ <feMergeNode
+ id="feMergeNode3831"
+ in="SourceGraphic" />
+ </feMerge>
+ </filter>
+ <filter
+ id="filter3841"
+ inkscape:label="Drop shadow"
+ width="1.5"
+ height="1.5"
+ x="-.25"
+ y="-.25">
+ <feGaussianBlur
+ id="feGaussianBlur3843"
+ in="SourceAlpha"
+ stdDeviation="10"
+ result="blur" />
+ <feColorMatrix
+ id="feColorMatrix3845"
+ result="bluralpha"
+ type="matrix"
+ values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.8 0 " />
+ <feOffset
+ id="feOffset3847"
+ in="bluralpha"
+ dx="0"
+ dy="0"
+ result="offsetBlur" />
+ <feMerge
+ id="feMerge3849">
+ <feMergeNode
+ id="feMergeNode3851"
+ in="offsetBlur" />
+ <feMergeNode
+ id="feMergeNode3853"
+ in="SourceGraphic" />
+ </feMerge>
+ </filter>
+ <filter
+ id="filter3896"
+ inkscape:label="Cutout"
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ inkscape:menu="Shadows and Glows"
+ inkscape:menu-tooltip="Drop shadow under the cut-out of the shape"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur3898"
+ in="SourceAlpha"
+ stdDeviation="4.2" />
+ <feOffset
+ id="feOffset3900"
+ dy="5"
+ dx="5"
+ result="result91" />
+ <feComposite
+ id="feComposite3902"
+ in2="result91"
+ operator="out"
+ in="SourceGraphic" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.23575507"
+ inkscape:cx="-204.96355"
+ inkscape:cy="564.83734"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="693"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#525252;fill-opacity:1;stroke:#ffffff;stroke-width:12.75786877;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3935)"
+ d="m -852.69956,388.8949 c -2.83929,-0.0683 -6.44363,0.81401 -11.28125,3.03125 -25.80062,11.82529 0.64601,22.08881 -17.46875,43.9375 -18.11476,21.84868 -33.12771,-2.23218 -39.96875,25.3125 -6.84104,27.54469 17.71238,13.27738 23.5,41.0625 5.78762,27.78512 -22.42623,24.50888 -5.15625,47.03125 17.26998,22.52237 21.41819,-5.58005 46.75,7.21875 25.3318,12.79879 5.18615,32.80349 33.5625,33.34375 28.37636,0.54026 9.01188,-20.20596 34.8125,-32.03125 25.80062,-11.82528 28.85399,16.41118 46.96875,-5.4375 18.11476,-21.84869 -10.15355,-19.64281 -3.3125,-47.1875 6.84104,-27.54468 30.78762,-12.37113 25,-40.15625 -5.78762,-27.78512 -21.69877,-4.29012 -38.96875,-26.8125 -17.26998,-22.52237 9.55055,-31.79496 -15.78125,-44.59375 -25.33181,-12.79879 -16.87364,14.32151 -45.25,13.78125 -23.05579,-0.43896 -21.10264,-18.20389 -33.40625,-18.5 z m 32.1875,49.15625 c 33.26024,0 54.25,19.66163 54.25,51.3125 0,31.65087 -20.98976,51.3125 -54.25,51.3125 -33.26024,0 -54.21875,-23.60165 -54.21875,-51.3125 0,-27.71085 20.95851,-51.3125 54.21875,-51.3125 z"
+ id="path2985"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssssssssssssssssszs"
+ transform="matrix(0.94059596,0,0,0.94059596,-48.285143,29.671848)"
+ inkscape:export-filename="/home/pete/GITT/html/images/git_logo_new.png"
+ inkscape:export-xdpi="16.008762"
+ inkscape:export-ydpi="16.008762" />
+ <path
+ style="font-size:235.84074402px;font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#525252;fill-opacity:1;stroke:#ffffff;stroke-width:12;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3841);font-family:LMSansDemiCond10;-inkscape-font-specification:LMSansDemiCond10 Semi-Bold"
+ d="m -551.78125,398.46875 c -28.20689,-0.73913 -57.69137,14.27663 -68.78125,40.96875 -11.61563,26.0806 -11.34923,56.8125 -4.1875,84.0625 6.93788,23.1808 25.67567,43.0953 49.8125,48.3438 24.40568,6.3563 52.05314,2.8124 73.1875,-10.875 3.88885,-7.2286 0.32265,-15.7788 1.52154,-23.5625 -0.31657,-16.3329 0.91415,-32.9126 -0.64654,-49.0938 -4.08158,-6.7875 -12.7147,-2.6568 -18.96825,-3.7183 -10.73703,0.616 -22.07659,-1.4167 -32.46925,0.9996 -6.07347,5.1038 -1.81612,13.5989 -3.0625,20.25 1.05106,6.4297 8.95913,6.7851 14.0625,5.7187 2.39848,0.089 8.79848,-1.3466 7.375,3.1875 -1.05404,9.8962 -0.12198,20.0647 -0.4375,30.0625 -16.93956,4.1517 -38.11814,1.9174 -48.125,-14.25 -12.25145,-18.8007 -11.27168,-42.704 -9.02009,-64.1109 2.37075,-17.2246 13.02993,-35.50507 31.45759,-38.7016 16.12624,-3.5991 33.53744,1.98376 45.0625,13.5625 5.6646,3.18638 11.32447,-3.69863 10.1875,-9.1875 0.5616,-6.48188 4.9248,-13.93988 1.0625,-19.96875 -13.89106,-9.75332 -31.15383,-14.04132 -48.03125,-13.6875 z m 304.9375,2.28125 c -6.55623,-0.27454 -15.26942,-0.40019 -18.34375,6.75 -2.56122,8.62 -0.21663,18.07025 -1.05532,26.96868 -0.004,43.12812 -0.4684,86.31352 0.36782,129.40632 1.5529,7.3914 10.16327,9.5971 16.75,8.625 6.8992,0.6607 17.11515,0.1447 18.9375,-8.1562 1.74419,-20.9534 -0.002,-42.028 0.625,-63.0313 -0.22195,-30.8583 0.73428,-61.84883 -0.59375,-92.625 -1.83634,-7.19277 -10.43123,-8.39615 -16.6875,-7.9375 z m 398.4375,0.0625 c -6.71313,-1.03234 -15.19458,1.62964 -16.53125,9.15625 -0.44574,51.24865 -0.62919,102.59485 0.0937,153.84375 1.51646,7.3464 9.9807,9.5733 16.53125,8.7813 6.78689,0.7685 16.51163,-1.4434 16.79694,-9.8095 1.63338,-22.4962 -0.81727,-45.2282 0.95306,-67.6281 0.83097,-10.4989 9.06844,-22.7634 20.8125,-21.0937 7.25169,0.9106 6.02932,9.558 6.46875,14.7813 0.3402,18.2365 -0.0967,36.485 0.0625,54.7187 0.27997,8.0435 -1.59399,17.1448 2.375,24.4687 5.65481,6.6679 15.58843,4.2469 23.21875,4.0626 7.79954,-1.7264 9.73168,-10.889 8.54112,-17.7185 -0.48928,-26.6354 1.34753,-53.4319 -1.07237,-79.9691 -2.38364,-12.6445 -13.51343,-22.7249 -26.49083,-23.2913 -12.80964,-1.7568 -26.748,2.6421 -35.10292,12.6976 -0.74425,-18.76281 1.5016,-37.78844 -1.09375,-56.40625 -2.40135,-6.19536 -9.84448,-6.80774 -15.5625,-6.59375 z m 835.5625,0 c -6.89237,-1.11146 -15.63463,1.8939 -16.59375,9.71875 -0.25047,51.06705 -0.60516,102.20835 0.1875,153.24995 1.64808,8.0177 10.98706,9.6075 17.875,8.8438 6.71418,0.7127 15.7519,-2.4201 15.5,-10.5 1.5899,-22.481 -0.9461,-45.1025 0.9688,-67.5312 0.9715,-10.3072 9.214,-22.203 20.75,-20.5313 7.3131,0.857 5.924,9.4978 6.4687,14.75 0.3404,18.2678 -0.097,36.5476 0.062,54.8125 0.2858,8.0504 -1.6227,17.2057 2.4375,24.5 5.7733,6.5893 15.6926,4.1576 23.375,3.9375 7.8113,-1.9775 9.4441,-11.2643 8.2908,-18.1559 -0.5163,-26.5175 1.3841,-53.2157 -1.0721,-79.6254 -2.3867,-12.506 -13.5822,-22.5856 -26.4374,-23.1562 -12.8376,-1.8546 -26.7605,2.71 -35.1563,12.6875 -0.5017,-18.48062 1.115,-37.16405 -0.8125,-55.59375 -1.9402,-6.82921 -9.87018,-7.68621 -15.84375,-7.40625 z M 103.75,402.15625 c -38.686121,0.36249 -77.440782,-0.25543 -116.09375,0.3125 -7.137395,1.04051 -10.553845,8.48419 -9.75,15.0625 -0.485782,6.96475 4.50234,14.80384 12.2801641,13.7534 13.7938645,0.4259 27.5829129,-0.43178 41.3760859,-0.47215 0.277618,44.3462 -0.556667,88.7524 0.4375,133.0625 1.552898,7.3914 10.163268,9.5971 16.75,8.625 6.899201,0.6607 17.115147,0.1447 18.9375,-8.1562 1.740359,-20.6827 -0.0021,-41.4863 0.65625,-62.2188 0,-23.7812 0,-47.5625 0,-71.34375 15.375808,-0.25602 30.967658,1.89416 46.21875,-0.21875 8.38054,-3.38609 8.27428,-14.82219 5.8125,-22.09375 -2.94842,-6.15022 -10.70249,-6.51906 -16.625,-6.3125 z m 444.625,0.0312 c -39.12165,0.31239 -78.34014,-0.30981 -117.40625,0.3125 -6.85005,1.22446 -10.30203,8.49618 -9.46875,14.96875 -0.60746,6.98371 4.54341,14.88689 12.24891,13.8159 13.80428,0.42581 27.60375,-0.4318 41.40734,-0.47215 0.38062,44.54035 -0.78039,89.17095 0.59375,133.65635 2.18023,8.0415 11.89123,8.7297 18.8125,8.0937 6.74672,0.7952 16.49392,-1.2999 16.875,-9.5937 1.38893,-21.2413 -0.0745,-42.567 0.5,-63.8438 0,-22.7812 0,-45.5626 0,-68.3438 15.39678,-0.31945 31.06287,2.00805 46.3125,-0.28125 8.41326,-3.55377 8.2125,-15.14539 5.5,-22.4375 -2.93443,-5.50892 -9.84261,-6.06499 -15.375,-5.875 z m -1018.5625,2.1875 c -7.29703,0.06 -12.62924,7.42635 -11.25,14.4375 -0.64882,7.12698 -1.02112,17.89382 7.50005,20.37283 7.87889,1.62457 17.01891,2.36839 24.43745,-1.21658 7.23858,-5.67709 4.60577,-16.05932 4.65625,-24.0625 -1.14641,-7.40546 -9.20998,-10.69399 -15.96875,-9.53125 -3.12443,-0.0122 -6.2563,0.0305 -9.375,0 z m 59.59375,16.96875 c -7.27478,0.0916 -12.62042,7.33804 -11.34375,14.375 -0.38928,5.62634 0.56337,12.3709 -0.4375,17.3125 -7.46014,-0.7098 -15.96475,4.6381 -14.78125,12.9375 0.41529,6.972 8.04198,10.9535 14.1875,10.5938 1.43783,5.9682 -0.80337,12.3308 0.34375,18.4375 0.61885,20.2709 -1.79649,40.8797 1.625,60.9375 2.50339,11.0314 12.86928,20.5803 24.6875,18.8125 13.48076,-0.568 28.23116,-4.7462 37.125,-15.25 2.22511,-5.5251 -1.27271,-11.3199 -3.25,-16.2812 -3.62948,-4.4607 -10.54362,-1.5507 -12.6875,2.9062 -3.29313,2.5314 -8.48065,5.7725 -12.46875,3.3125 -4.56683,-10.3396 -1.21557,-21.9893 -2.34375,-32.9064 0,-13.4686 0,-26.9374 0,-40.4061 8.76143,-0.3802 20.92672,3.0829 26.59375,-5.7813 4.10318,-7.201 -1.66071,-17.6461 -10.21875,-17 -5.4928,-0.4147 -10.9996,-0.07 -16.5,-0.125 -0.79693,-9.37863 2.92645,-20.53646 -3.21875,-28.59375 -4.59344,-4.35634 -11.5855,-3.00653 -17.3125,-3.28125 z M 1221,449.6562 c -15.958,-0.7054 -34.1266,8.0809 -37.4688,24.9376 -4.8377,16.8112 1.5205,37.2555 17.8126,45.25 9.5188,5.8108 22.2729,4.572 31.0937,11.625 5.3123,6.236 2.6893,18.9383 -6.7187,18.875 -12.0398,1.8894 -23.5471,-4.772 -31.7813,-13 -4.1632,-3.3834 -10.0957,-0.065 -10.6875,4.8124 -1.3206,5.3418 -2.4553,11.0077 -2.1875,16.3438 3.7028,8.7258 14.4397,10.5902 22.375,13.625 16.9248,4.7135 38.3523,4.7573 51.0313,-9.125 12.3422,-15.1501 11.6862,-39.5905 -0.9376,-54.4688 -8.0375,-9.3278 -20.1824,-13.4539 -32.0937,-15.0312 -5.8097,-0.9981 -12.0479,-5.1942 -11.1875,-11.7812 -0.4307,-5.6706 4.6689,-10.4134 10.3125,-9.4688 10.5771,-0.796 20.1136,4.9532 28.0625,11.1562 6.6651,1.8655 9.5432,-6.354 9.5625,-11.5312 1.8574,-4.9951 2.2893,-12.5373 -4,-14.4688 -9.9892,-5.726 -21.6745,-8.1266 -33.1875,-7.75 z m -928.75,0.031 c -23.0776,-0.096 -43.90213,17.5168 -47.77004,40.2836 -4.89771,21.2307 -3.51546,45.6229 8.73879,64.0914 19.17243,26.5022 62.64185,27.6594 84.46875,3.9687 3.27175,-6.4134 1.17986,-14.3576 -1.0625,-20.6874 -3.816,-4.7746 -10.9095,-1.1923 -13.125,3.3437 -9.6653,10.0539 -27.26531,15.6339 -39.03125,6.375 -7.8761,-7.3963 -9.70253,-18.8735 -10.15625,-29.2813 19.79579,-0.5524 39.81055,1.2936 59.46875,-0.9374 8.84251,-3.6478 7.10727,-14.8921 6.59375,-22.5938 -1.27742,-18.1713 -11.67451,-37.6054 -30.375,-42.4062 -5.72611,-1.8007 -11.75572,-2.3122 -17.75,-2.1563 z m 405.34375,0 c -22.79681,-0.125 -43.68159,17.3121 -47.625,39.7813 -5.08786,21.3354 -3.76275,45.8222 8.5,64.4062 18.99291,26.6913 62.68512,27.8719 84.5625,4.1875 3.24417,-6.4861 1.24666,-14.4922 -1.125,-20.8125 -3.87071,-4.6939 -10.71464,-0.9924 -13.03125,3.4062 -9.56319,10.0515 -27.30025,15.7421 -39.125,6.3126 -7.8305,-7.3645 -9.66947,-18.8722 -10.0625,-29.1876 19.78536,-0.5519 39.78972,1.2932 59.4375,-0.9374 8.86041,-3.6252 7.09947,-14.9294 6.59375,-22.5938 -1.21744,-18.7755 -12.39307,-38.474 -31.6875,-42.8125 -5.35814,-1.4422 -10.88568,-1.9098 -16.4375,-1.75 z m 220.03125,0 c -21.4719,-0.7663 -42.64737,13.7458 -47.90625,34.7813 -6.26427,20.7103 -5.84022,44.1591 2.95511,64.0466 7.50464,15.7326 24.13,25.7692 41.3861,26.2121 16.1521,1.0847 33.83997,-4.1758 44.06504,-16.9775 2.67657,-6.2146 0.18562,-13.2214 -0.78125,-19.5 -2.80855,-5.6596 -11.12859,-3.5338 -13.34375,1.5 -8.79516,8.7397 -23.75488,14.6218 -35,7.4062 -10.48007,-9.9428 -8.83277,-26.1123 -9.03812,-39.3122 0.24555,-11.1644 0.59807,-25.6905 11.53812,-31.9378 11.44367,-4.6194 24.93912,-0.236 33.34375,8.2188 4.256,3.2237 9.93765,0.087 10.65625,-4.8438 0.94144,-4.9529 2.4347,-10.2136 2,-15.1874 -2.36361,-6.2327 -9.97281,-7.2581 -14.90625,-10.5 -7.84591,-3.331 -16.48096,-4.1174 -24.96875,-3.9063 z m 210.2188,0 c -22.8596,-0.1634 -43.8558,17.4466 -47.6876,39.9687 -5.1206,21.5298 -3.6439,46.2633 9,64.9063 19.2526,26.0102 62.5229,26.9722 84.0938,3.5 3.2487,-6.4858 1.2496,-14.4852 -1.125,-20.8125 -3.86,-4.7333 -10.6975,-0.9613 -13.0312,3.4062 -9.6025,10.1298 -27.3432,15.6809 -39.125,6.3438 -7.8289,-7.4682 -9.6335,-18.8473 -10.0626,-29.2188 19.8155,-0.5718 39.8582,1.3329 59.5313,-0.9687 8.7474,-3.6304 7.0048,-14.9329 6.5,-22.5625 -1.1923,-18.5697 -12.1384,-38.1968 -31.3035,-42.6871 -5.4271,-1.5749 -11.1279,-2.0226 -16.7902,-1.8754 z m -489.25005,1.0937 c -10.94904,-0.052 -21.04882,6.2858 -27.40625,14.8438 0.55935,-6.3605 -3.58733,-13.7447 -10.6875,-13.5 -7.44274,-1.2153 -18.71901,-1.1832 -20.875,7.9062 -2.31376,9.2449 0.14142,18.9699 -0.77504,28.4063 0.34764,25.4318 -0.93618,50.9898 0.68129,76.3437 2.60084,8.5803 13.1842,8.0663 20.4375,7.8438 6.90964,0.069 13.32773,-5.7651 12.17494,-12.9988 1.16018,-20.2655 -1.69275,-40.8147 1.60631,-60.9074 3.34348,-12.1672 14.93703,-21.3562 27.5625,-21.2188 7.18894,-2.5843 3.86858,-11.5364 4.875,-17.1875 0.40616,-4.5446 -2.25827,-10.1647 -7.59375,-9.5313 z m -783.9375,0.094 c -10.63718,0.036 -20.79997,5.65 -27.34375,13.75 0.0156,-6.7193 -5.19149,-13.6605 -12.46875,-12.75 -7.10213,-0.7567 -17.73054,-0.5621 -19.78125,8.0312 -1.83199,20.5638 0.0272,41.257 -0.66581,61.8749 0.23616,14.5484 -0.97938,29.3502 0.94706,43.7501 3.50363,8.5373 14.4079,7.14 21.9375,7 6.91541,-0.3348 12.45804,-6.7572 11.18565,-13.7495 0.99021,-22.9135 -1.74273,-46.0989 1.50185,-68.8442 2.28954,-9.5569 12.84887,-19.6243 23,-14.75 5.55245,5.8009 2.51123,14.9891 3.46875,22.1875 0.36492,22.6422 -1.13475,45.4704 0.8125,68 3.21453,8.5705 14.12691,7.2133 21.46875,7.2188 7.49048,0.092 13.40554,-7.2826 11.75,-14.625 -0.205,-27.2151 0.97982,-54.5365 -0.6875,-81.6876 -1.66593,-12.3051 -11.48464,-23.3763 -24.15625,-24.6874 -3.6038,-0.704 -7.2937,-0.7983 -10.96875,-0.7188 z m 962.71875,0 c -10.68555,0.02 -20.77792,5.6989 -27.4375,13.7812 0.21794,-6.5078 -4.54637,-13.3507 -11.65625,-12.5937 -7.47951,-1.2238 -19.02607,-0.8504 -20.53125,8.625 -1.98487,10.7016 0.1516,21.7294 -0.6369,32.5624 0.28958,23.8278 -0.91588,47.7816 0.66815,71.5313 2.60133,8.5863 13.18458,8.0463 20.4375,7.875 6.67731,0.2351 13.85259,-4.9386 12.84375,-12.3124 1.06827,-22.8308 -1.18317,-45.9802 1.15625,-68.625 1.83568,-10.1365 11.93196,-20.9562 22.84375,-16.9376 6.48054,5.3557 3.07551,15.334 4.08291,22.625 0.31657,22.5339 -0.99893,45.2096 0.72959,67.6563 2.94508,8.8256 14.17045,7.6074 21.59375,7.5 7.41614,0.121 13.33806,-7.2084 11.69685,-14.5 -0.18504,-27.338 1.02826,-54.7897 -0.69685,-82.0625 -1.85019,-12.5372 -12.12254,-23.5927 -25.0625,-24.5625 -3.25461,-0.5474 -6.66524,-0.6443 -10.03125,-0.5625 z m -1286.03125,2.3125 c -7.72163,0.1292 -12.78211,8.1766 -11.21875,15.4375 0.27444,32.0018 -0.86463,64.1448 0.59375,96.0625 2.57993,8.4652 12.92526,8.3181 20.125,7.9375 6.68463,0.1498 13.73344,-5.225 12.39818,-12.5925 0.6721,-31.8947 0.1894,-63.847 0.19557,-95.72 0.0485,-6.8397 -6.32857,-11.6291 -12.78125,-11.0937 -3.10492,-0.1245 -6.21121,0.042 -9.3125,-0.031 z M 295.75,472.6562 c 11.03344,0.156 16.05633,12.4347 16.1875,21.9688 2.59438,7.3562 -7.62598,2.8971 -11.6875,4.0938 -8.41206,-0.1071 -17.34431,0.2122 -25.4375,-0.1563 1.25181,-10.32 5.5321,-23.8101 17.25,-25.6563 1.2267,-0.1109 2.45735,-0.2179 3.6875,-0.25 z m 405.34375,0 c 10.78082,0.1838 16.00958,12.0494 16.125,21.4688 2.80908,7.2954 -6.28863,3.8525 -10.625,4.5938 -8.8125,-10e-5 -17.625,0 -26.4375,0 1.1472,-10.3884 5.53989,-24.2308 17.6875,-25.8126 1.08144,-0.1065 2.16227,-0.233 3.25,-0.25 z m 430.21875,0 c 10.7712,0.2041 15.9955,11.9692 16.125,21.4376 2.9366,7.7668 -7.2208,3.6067 -11.625,4.625 -8.4792,0 -16.9583,-10e-5 -25.4375,0 1.1684,-10.4377 5.5465,-24.2084 17.6875,-25.8126 1.0814,-0.1065 2.1623,-0.233 3.25,-0.25 z"
+ id="text3837"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-size:67.77381134px;font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#009090;fill-opacity:1;stroke:none;font-family:LMSansDemiCond10;-inkscape-font-specification:LMSansDemiCond10 Semi-Bold"
+ x="845.57428"
+ y="645.70996"
+ id="text3859"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3861"
+ x="845.57428"
+ y="645.70996">by peter savage</tspan></text>
+ </g>
+</svg>
View
2  images/source/combinedcover.svg
@@ -1393,7 +1393,7 @@
<image
width="158.99471"
height="111.48261"
- xlink:href="file:///home/pete/GITT/images/raster/w5-d8.png"
+ xlink:href="file://../raster/w5-d8.png"
id="image23823"
x="461.36859"
y="645.89813" />
View
20 images/source/w5-d1.svg
@@ -56,10 +56,10 @@
y="425.21933"
x="254.5"
id="image3079"
- xlink:href="file:///home/pete/GITT/images/raster/w5-d1.png"
+ xlink:href="file://../raster/w5-d1.png"
height="500"
width="811"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
@@ -74,7 +74,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -84,7 +84,7 @@
y="611.59296"
id="text3084"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -105,7 +105,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -115,7 +115,7 @@
y="798.51605"
id="text3084-5"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -136,7 +136,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -146,7 +146,7 @@
y="610.82373"
id="text3084-5-7"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -167,7 +167,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -177,7 +177,7 @@
y="820.0545"
id="text3084-5-9"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
View
30 images/source/w5-d8.svg
@@ -56,7 +56,7 @@
y="344.13141"
x="152.61539"
id="image3212"
- xlink:href="file:///home/pete/GITT/images/raster/w5-d8.png"
+ xlink:href="file://../raster/w5-d8.png"
height="718"
width="1024" />
<path
@@ -71,7 +71,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
transform="translate(-21.538462,-75.384615)" />
@@ -82,7 +82,7 @@
y="536.20831"
id="text3084"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -103,7 +103,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -113,7 +113,7 @@
y="535.43915"
id="text3084-5"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -134,7 +134,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -144,7 +144,7 @@
y="535.43909"
id="text3084-5-7"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -165,7 +165,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -175,7 +175,7 @@
y="695.43915"
id="text3084-5-9"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -196,7 +196,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -206,7 +206,7 @@
y="756.9776"
id="text3084-5-9-3"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -227,7 +227,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -237,7 +237,7 @@
y="896.97766"
id="text3084-5-9-6"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
@@ -258,7 +258,7 @@
sodipodi:start="1.5707964"
sodipodi:end="7.8539816"
sodipodi:open="true"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<text
@@ -268,7 +268,7 @@
y="898.51605"
id="text3084-5-9-4"
sodipodi:linespacing="125%"
- inkscape:export-filename="/home/pete/GITT/images/f-w5-d1.png"
+ inkscape:export-filename="../f-w5-d1.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
View
1  intro.tex
@@ -2,7 +2,6 @@
\cleardoublepage
\chapter{Introduction}
\section{How this book works}
-
Welcome to Git In The Trenches or GITT, a book designed to help you both apply and understand the subtleties of Git, perhaps the most powerful version control system in use today.
This book is not supposed to be purely a technical reference.
If you are looking for something more reference in nature, you should look at ProGit, by Scott Chacon, published by Apress, as it is a wonderfully detailed look at many of the Git commands.
View
235 scripts/htmlbuild.py
@@ -3,16 +3,36 @@
import re
import sys
import os
+from munger import mung
-NAVIGATION = open("html/nav.html").read()
NAV = []
NO_CHAPS = 9
NO_AF = 8
+
+NAVIGATION = open("html/nav.html").read()
+
CHAPHEAD = open("html/chap-head.html").read()
CHAPFOOT = open("html/chap-foot.html").read()
+
+BASEHEAD = open("html/base-head.html").read()
+BASEFOOT = open("html/base-foot.html").read()
+
TOCFILE = "gitt.tex"
-IMAGEBLOCK = """<center><table border="0" cellpadding="0" cellspacing="0" class="image_float_left">
+NAVLINKS = re.findall(r"""<a href="([^"]*)">""", NAVIGATION)
+
+PREV_BUT = """<p align="left"><a href="***PREV_URL***"><img src="images/prev.png" alt="Previous Day" height="29" border="0"></a></p>"""
+
+NEXT_BUT = """<p align="right"><a href="***NEXT_URL***"><img src="images/next.png" alt="Next Day" height="29" border="0"></a></p>"""
+
+PREV_NEXT = """<table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td>***PREV_BUT***</td>
+ <td>***NEXT_BUT***</td>
+ </tr>
+ </table>"""
+
+IMAGE_BLOCK = """<center><table border="0" cellpadding="0" cellspacing="0" class="image_float_left">
<tr>
<td style="padding:10px;"><img src="***SOURCE***" width="400" ></td>
<td class="fade_right">&nbsp;</td>
@@ -23,186 +43,37 @@
</tr>
</table></center>"""
-def mung(data):
- data = data.replace(">", "&gt;")
- data = data.replace("<", "&lt;")
-
- data = data.replace("``", '"')
- data = data.replace("''", '"')
-
- data = data.replace("\\%", "%")
- data = data.replace("\\$", "$")
-
- data = data.replace("\\LaTeX", "LaTeX")
-
- data = data.replace("\\%", "&#37;")
- data = data.replace("\\_", "_")
- data = data.replace("\\newline", "")
-
- data = data.replace("\\ldots", "...")
- data = data.replace("\\textasciitilde{}", "~")
- data = data.replace("\\textasciitilde", "~")
- data = data.replace("\\textasciicircum", "^")
- data = data.replace("\{", "{")
- data = data.replace("\}", "}")
-
- plob = re.findall("(%.*?\n)", data, re.M)
- for i in plob:
- data = data.replace(i, "")
-
- plob = re.findall("(\\\\index\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], "")
-
- plob = re.findall("(\\\\indexgit\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], '<span style="font-family:monospace;">git ' + i[1] + '</span>')
-
- plob = re.findall("(\\\\clearpage)", data)
- for i in plob:
- data = data.replace(i, "")
-
- plob = re.findall("(\\\\cleardoublepage)", data)
- for i in plob:
- data = data.replace(i, "")
-
- plob = re.findall("(\\\\thoughtbreak)", data)
- for i in plob:
- data = data.replace(i, " * * * ")
-
- plob = re.findall("(\\\\textbf\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], "<strong>" + i[1] + "</strong>")
-
- plob = re.findall("(\\\\emph\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], "<em>" + i[1] + "</em>")
-
- plob = re.findall("(\\\\rotatebox\{(.*?)\}\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], i[2])
-
- plob = re.findall("(\\\\texttt\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], '<span style="font-family:monospace;">' + i[1] + "</span>")
-
- plob = re.findall("(\\\\subsubsection\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], "<h4>" + i[1] + "</h4>")
-
- plob = re.findall("(\\\\subsection\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], "<h3>" + i[1] + "</h3>")
-
- plob = re.findall("(\\\\section\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], "<h2>" + i[1] + "</h2>")
-
- plob = re.findall("(\\\\chapter\{(.*?)\})", data)
- for i in plob:
- data = data.replace(i[0], "<h1>" + i[1] + "</h1>")
-
- plob = re.findall("(\\\\begin\{trenches\}(.*?)\\\\end\{trenches\})", data, re.S)
- for i in plob:
- data = data.replace(i[0], '<div id="trenchblock"><strong>In the trenches...</strong><br>' + i[1] + "</div>")
-
- plob = re.findall("(\\\\begin\{center\}(.*?)\\\\end\{center\})", data, re.S)
- for i in plob:
- data = data.replace(i[0], '<center>' + i[1] + "</center>")
-
- plob = re.findall("(\\\\begin\{table\}(.*?)\\\\end\{table\})", data, re.S)
- for i in plob:
- data = data.replace(i[0], i[1])
-
- plob = re.findall("(\\\\begin\{tabular\}\{(.*?)\}(.*?)\\\\end\{tabular\})", data, re.S)
- for i in plob:
- data = data.replace(i[0], "<table>" + i[2] + "</table>")
- listd = i[2]
- nasty = re.findall(r"((.*?)([\\ ]*)\\hline)", i[2], re.S)
- for j in nasty:
- itemstr = ""
- items = j[1].split(" & ")
- for item in items:
- itemstr += "<td>" + item + "</td>"