Skip to content

Commit e7bd357

Browse files
committed
Use SVG diagrams instead of EPS ones [hack]
Most of the SVGs are ugly as of now, and should be brought up to par with the EPS versions still; see <#3>.
1 parent 414fbb9 commit e7bd357

8 files changed

+38
-38
lines changed

text/s1-c00-understanding-git.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ but instead understood what it was actually doing.
2929
Then I found I could find new and interesting ways to use
3030
what is really a very powerful and cool toolset.
3131

32-
![](../artwork/diagrams/what-git-is.eps)
32+
![](../artwork/diagrams/what-git-is.svg)
3333

3434
So,
3535
let's see what it's doing behind the scenes first.

text/s1-c03-object-types.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ that provides very simple bindings to Git,
3535
keeping the project in a Git repository.
3636
The basic layout of the project is this:
3737

38-
![Sample project with files and directories](../artwork/diagrams/layout.eps)
38+
![Sample project with files and directories](../artwork/diagrams/layout.svg)
3939

4040
Let's take a look at what Git does when this is committed to a repository.
4141

@@ -44,7 +44,7 @@ Let's take a look at what Git does when this is committed to a repository.
4444
In Git,
4545
the contents of files are stored as **blobs**.
4646

47-
![Files are stored as blobs](../artwork/diagrams/blobs.eps)
47+
![Files are stored as blobs](../artwork/diagrams/blobs.svg)
4848

4949
It is important to note that it is the *contents* that are stored,
5050
not the files.
@@ -61,13 +61,13 @@ Git will only transfer the blob once,
6161
then expand it out into multiple files upon checkout.
6262

6363
![The contents of a blob,
64-
uncompressed](../artwork/diagrams/blob-expand.eps)
64+
uncompressed](../artwork/diagrams/blob-expand.svg)
6565

6666
### The Tree
6767

6868
Directories in Git basically correspond to **trees**.
6969

70-
![Trees are pointers to blobs and other trees](../artwork/diagrams/trees.eps)
70+
![Trees are pointers to blobs and other trees](../artwork/diagrams/trees.svg)
7171

7272
A tree is a simple list of trees and blobs that the tree contains,
7373
along with the names and modes of those trees and blobs.
@@ -83,7 +83,7 @@ which shows *mode*,
8383
*sha* and *name* for each entry (same fields,
8484
different order).
8585

86-
![An uncompressed tree](../artwork/diagrams/tree-expand.eps)
86+
![An uncompressed tree](../artwork/diagrams/tree-expand.svg)
8787

8888
### The Commit
8989

@@ -92,22 +92,22 @@ now that we can store arbitrary trees of content in Git,
9292
where does the 'history' part of 'tree history storage system' come in?
9393
The answer is the **commit** object.
9494

95-
![A commit references a tree](../artwork/diagrams/commit.eps)
95+
![A commit references a tree](../artwork/diagrams/commit.svg)
9696

9797
The commit is very simple,
9898
much like the tree.
9999
It simply points to a tree and keeps an *author*,
100100
*committer*,
101101
*message* and any *parent* commits that directly preceded it.
102102

103-
![Uncompressed initial commit](../artwork/diagrams/commit-expand.eps)
103+
![Uncompressed initial commit](../artwork/diagrams/commit-expand.svg)
104104

105105
Since this was my first commit,
106106
there are no parents.
107107
If I commit a second time,
108108
the commit object will look more like this:
109109

110-
![A commit with a parent](../artwork/diagrams/commit-expand2.eps)
110+
![A commit with a parent](../artwork/diagrams/commit-expand2.svg)
111111

112112
Notice how the *parent* in that commit
113113
is the same SHA-1 value of the last commit we did?
@@ -133,7 +133,7 @@ and the *object* is the SHA-1 of the commit you're tagging.
133133
The tag can also be GPG signed,
134134
providing cryptographic integrity to a release or version.
135135

136-
![Uncompressed tag](../artwork/diagrams/tag-expand.eps)
136+
![Uncompressed tag](../artwork/diagrams/tag-expand.svg)
137137

138138
We'll talk a little bit more about tags
139139
and how they differ from *branches* (which also point to commits,

text/s1-c05-the-data-model.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ We'll go over it again later.
5050

5151
The basic data model I've been explaining looks something like this:
5252

53-
![](../artwork/diagrams/dag-model.eps)
53+
![](../artwork/diagrams/dag-model.svg)
5454

5555
The cheap references I've represented as the grey boxes, the immutable objects are the colored round cornered boxes.
5656

@@ -76,7 +76,7 @@ Possibly something like this:
7676
When we first commit this tree,
7777
our Git model may look something like this:
7878

79-
![](../artwork/diagrams/object-dag-tree1.eps)
79+
![](../artwork/diagrams/object-dag-tree1.svg)
8080

8181
We have three trees,
8282
three blobs and a single commit that points to the top of the tree.
@@ -101,7 +101,7 @@ which adds a new tag object.
101101
At this point,
102102
we'll have the following in Git:
103103

104-
![](../artwork/diagrams/object-dag-tree2.eps)
104+
![](../artwork/diagrams/object-dag-tree2.svg)
105105

106106
Notice how the other two blobs that were not changed were not added again.
107107
The new trees that were added point to the same blobs in the data store
@@ -116,7 +116,7 @@ Again,
116116
the branch reference will move forward
117117
and the new commit will point to its parent.
118118

119-
![](../artwork/diagrams/object-dag-tree3.eps)
119+
![](../artwork/diagrams/object-dag-tree3.svg)
120120

121121
At this point,
122122
let's stop to look at the objects we now have in our repository.
@@ -133,7 +133,7 @@ If we wanted the second tree,
133133
we could ask for the commit pointed to by the tag,
134134
and so on.
135135

136-
![](../artwork/diagrams/object-dag.eps)
136+
![](../artwork/diagrams/object-dag.svg)
137137

138138
So,
139139
to keep all the information and history on the three versions of this tree,
@@ -153,4 +153,4 @@ tag or remote you specify.
153153
Then it traverses the objects by walking the trees one by one,
154154
checking out the blobs under the names listed.
155155

156-
![](../artwork/diagrams/traversing-git-objects.eps)
156+
![](../artwork/diagrams/traversing-git-objects.svg)

text/s1-c06-branching-and-merging.md

+14-14
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ to be the SHA-1 of your last commit).
3838

3939
### Simple Case
4040

41-
![](../artwork/diagrams/branches1.eps)
41+
![](../artwork/diagrams/branches1.svg)
4242

4343
Now,
4444
let's see how Git handles branching,
@@ -54,7 +54,7 @@ We create a new branch called `experiment` off of our main branch,
5454
which is by convention called `master`.
5555
We then switch to the new branch and create a few commits.
5656

57-
![](../artwork/diagrams/branch-story1.eps)
57+
![](../artwork/diagrams/branch-story1.svg)
5858

5959
Then,
6060
our boss comes in and says we need a hot fix to production.
@@ -64,7 +64,7 @@ push the release and then tag the new commit with the release number.
6464
Then we go back to our `experiment` branch,
6565
continue working and commit again.
6666

67-
![](../artwork/diagrams/branch-story2.eps)
67+
![](../artwork/diagrams/branch-story2.svg)
6868

6969
At this point,
7070
we show the new branch code to our co-workers
@@ -74,7 +74,7 @@ so we merge the changes and delete our `experiment` branch.
7474

7575
Our history of commit objects now looks like this:
7676

77-
![](../artwork/diagrams/branch-story3.eps)
77+
![](../artwork/diagrams/branch-story3.svg)
7878

7979
### Remotes
8080

@@ -96,7 +96,7 @@ one to `origin/master` which points to where the master branch was
9696
on the person's repository you cloned from when you did so,
9797
and a `master` branch that points to the most recent local commit.
9898

99-
![](../artwork/diagrams/remote-story1.eps)
99+
![](../artwork/diagrams/remote-story1.svg)
100100

101101
Now let's say you run a `fetch`.
102102
A fetch pulls all the refs and objects that you don't already have
@@ -113,15 +113,15 @@ and they named the branch `idea` locally,
113113
then pushed that branch.
114114
We now have access to those changes as `origin/idea`.
115115

116-
![](../artwork/diagrams/remote-story2.eps)
116+
![](../artwork/diagrams/remote-story2.svg)
117117

118118
We look at the `idea` branch and like where they're going with it,
119119
but we also want the changes they've made on their `master` branch,
120120
so we do a 3-way merge of their two branches and our `master`.
121121
We don't know how well this is going to work,
122122
so we make a `tryidea` branch first and then do the merge there.
123123

124-
![](../artwork/diagrams/remote-story3.eps)
124+
![](../artwork/diagrams/remote-story3.svg)
125125

126126
Now we can run our tests
127127
and merge everything back into our `master` branch if we want.
@@ -145,7 +145,7 @@ creating a new merge commit.
145145
(All commits that are simply merges
146146
are given a darker color in this example)
147147

148-
![](../artwork/diagrams/rebase1.eps)
148+
![](../artwork/diagrams/rebase1.svg)
149149

150150
At this point,
151151
you both do work and commit changes
@@ -154,7 +154,7 @@ Then she does another commit and you fetch and merge once more.
154154
At this point,
155155
you'll have a commit history that looks something like this:
156156

157-
![](../artwork/diagrams/rebase2.eps)
157+
![](../artwork/diagrams/rebase2.svg)
158158

159159
Perfectly fine,
160160
but it can get a little confusing
@@ -181,7 +181,7 @@ since nothing points to them,
181181
when you run the garbage collection tools
182182
(see "The Care and Feeding of Git" section).
183183

184-
![](../artwork/diagrams/rebase3.eps)
184+
![](../artwork/diagrams/rebase3.svg)
185185

186186
So let's see what happens
187187
if we rebase rather than merge in the same scenario.
@@ -198,22 +198,22 @@ You'll notice that now it looks like she cloned you and committed
198198
and then you changed that code,
199199
rather than you both working at the same time and merging.
200200

201-
![](../artwork/diagrams/rebase4.eps)
201+
![](../artwork/diagrams/rebase4.svg)
202202

203203
At this point,
204204
instead of merging two more times like we did originally,
205205
we rebase the next two commits she makes.
206206

207-
![](../artwork/diagrams/rebase5.eps)
207+
![](../artwork/diagrams/rebase5.svg)
208208

209-
![](../artwork/diagrams/rebase6.eps)
209+
![](../artwork/diagrams/rebase6.svg)
210210

211211
And finally,
212212
we are left with a commit history that looks like Figure 1,
213213
rather than Figure 2,
214214
which is what we would have if we had merged instead.
215215

216-
![](../artwork/diagrams/rebase7-final.eps)
216+
![](../artwork/diagrams/rebase7-final.svg)
217217

218218
> **NOTE** \
219219
You should remember to only do this on local branches before you push

text/s1-c07-treeish.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ this is the equivalent commit in caret syntax:
108108
e65s46^^^^^
109109
```
110110

111-
![](../artwork/diagrams/treeish.eps)
111+
![](../artwork/diagrams/treeish.svg)
112112

113113
#### Tree Pointer
114114

text/s2-c03-normal-workflow.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ $ git status
107107
You can see that if we commit at this point,
108108
only the Rakefile will show up as changed in the commit.
109109

110-
![](../artwork/diagrams/add-commit.eps)
110+
![](../artwork/diagrams/add-commit.svg)
111111

112112
If we want to commit all our changes,
113113
we can use this shorthand,
@@ -118,7 +118,7 @@ then commit the whole thing:
118118
git commit -a -m 'committing all changes'
119119
```
120120

121-
![](../artwork/diagrams/commit-a.eps)
121+
![](../artwork/diagrams/commit-a.svg)
122122

123123
If you would like to give a more useful commit message,
124124
you can leave out the `-m` option.

text/s2-c10-tagging.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ As we recall from section one,
2727
that command will create a git object
2828
that looks something like this:
2929

30-
![](../artwork/diagrams/tag-expand.eps)
30+
![](../artwork/diagrams/tag-expand.svg)
3131

3232
and).
3333

text/s2-c11-distributed-workflow.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ in this case,
273273
one for every developer with a public fork of that project
274274
that might push changes I care to try.
275275

276-
![](../artwork/diagrams/fetch-pull.eps)
276+
![](../artwork/diagrams/fetch-pull.svg)
277277

278278
You can also remove remotes at any time,
279279
which simply removes the lines
@@ -324,7 +324,7 @@ maybe some permissions tweaked here or there.
324324
325325
There is a single repository that all developers push to and pull from.
326326
327-
![All developers push to a single server](../artwork/diagrams/workflow-star.eps)
327+
![All developers push to a single server](../artwork/diagrams/workflow-star.svg)
328328
329329
This model works just like a centralized SCM
330330
and Git can work that way just fine.
@@ -354,7 +354,7 @@ and merged and pushed into the blessed repository,
354354
where the cycle starts over again.
355355
356356
![Approved features gradually make their way up the ladder](
357-
../artwork/diagrams/workflow-dictator.eps)
357+
../artwork/diagrams/workflow-dictator.svg)
358358
359359
This is a model something like the Linux kernel uses,
360360
Linus being the benevolent dictator.
@@ -381,7 +381,7 @@ tests,
381381
accepts and pushes.
382382
383383
![Private and public repositories driven by read-only pull requests](
384-
../artwork/diagrams/workflow-integration-manager.eps)
384+
../artwork/diagrams/workflow-integration-manager.svg)
385385
386386
This is largely how community-based git repositories
387387
like GitHub were built to work

0 commit comments

Comments
 (0)