You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a paragraph ends with a figure caption, it ends with double period
marks. One of them is due to figure caption, which itself ends with a
period and other is for end of paragraph.
So removing period from figure captions would be a good idea, as Ben has
suggested[1].
Due to this commit, now some paragraphs don't have any period mark at
end of paragraph. Those period are their because of caption, that's
paragraphs itself don't end with any period, see [2].
[1]: #1437 (comment)
[2]: #1444 (comment)Resolves: #1437
Copy file name to clipboardExpand all lines: book/01-introduction/sections/about-version-control.asc
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ It is easy to forget which directory you're in and accidentally write to the wro
19
19
20
20
To deal with this issue, programmers long ago developed local VCSs that had a simple database that kept all the changes to files under revision control.
21
21
22
-
.Local version control.
22
+
.Local version control
23
23
image::images/local.png[Local version control diagram]
24
24
25
25
One of the most popular VCS tools was a system called RCS, which is still distributed with many computers today.
@@ -33,7 +33,7 @@ To deal with this problem, Centralized Version Control Systems (CVCSs) were deve
33
33
These systems (such as CVS, Subversion, and Perforce) have a single server that contains all the versioned files, and a number of clients that check out files from that central place. (((CVS)))(((Subversion)))(((Perforce)))
34
34
For many years, this has been the standard for version control.
35
35
36
-
.Centralized version control.
36
+
.Centralized version control
37
37
image::images/centralized.png[Centralized version control diagram]
38
38
39
39
This setup offers many advantages, especially over local VCSs.
@@ -54,7 +54,7 @@ In a DVCS (such as Git, Mercurial, Bazaar or Darcs), clients don't just check ou
54
54
Thus, if any server dies, and these systems were collaborating via that server, any of the client repositories can be copied back up to the server to restore it.
55
55
Every clone is really a full backup of all the data.
56
56
57
-
.Distributed version control.
57
+
.Distributed version control
58
58
image::images/distributed.png[Distributed version control diagram]
59
59
60
60
Furthermore, many of these systems deal pretty well with having several remote repositories they can work with, so you can collaborate with different groups of people in different ways simultaneously within the same project.
Copy file name to clipboardExpand all lines: book/01-introduction/sections/what-is-git.asc
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ The major difference between Git and any other VCS (Subversion and friends inclu
11
11
Conceptually, most other systems store information as a list of file-based changes.
12
12
These other systems (CVS, Subversion, Perforce, Bazaar, and so on) think of the information they store as a set of files and the changes made to each file over time (this is commonly described as _delta-based_ version control).
13
13
14
-
.Storing data as changes to a base version of each file.
14
+
.Storing data as changes to a base version of each file
15
15
image::images/deltas.png[Storing data as changes to a base version of each file.]
16
16
17
17
Git doesn't think of or store its data this way.
@@ -20,7 +20,7 @@ With Git, every time you commit, or save the state of your project, Git basicall
20
20
To be efficient, if files have not changed, Git doesn't store the file again, just a link to the previous identical file it has already stored.
21
21
Git thinks about its data more like a *stream of snapshots*.
22
22
23
-
.Storing data as snapshots of the project over time.
23
+
.Storing data as snapshots of the project over time
24
24
image::images/snapshots.png[Git stores data as snapshots of the project over time.]
25
25
26
26
This is an important distinction between Git and nearly all other VCSs.
@@ -84,7 +84,7 @@ Git has three main states that your files can reside in: _modified_, _staged_, a
84
84
85
85
This leads us to the three main sections of a Git project: the working tree, the staging area, and the Git directory.
86
86
87
-
.Working tree, staging area, and Git directory.
87
+
.Working tree, staging area, and Git directory
88
88
image::images/areas.png["Working tree, staging area, and Git directory."]
89
89
90
90
The working tree is a single checkout of one version of the project.
Copy file name to clipboardExpand all lines: book/04-git-server/sections/gitlab.asc
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ To get something up and running quickly, you can download a virtual machine imag
16
16
One nice touch Bitnami has included is the login screen (accessed by typing alt+→); it tells you the IP address and default username and password for the installed GitLab.
For anything else, follow the guidance in the GitLab Community Edition readme, which can be found at https://gitlab.com/gitlab-org/gitlab-ce/tree/master[].
@@ -31,7 +31,7 @@ The default username is `[email protected]`, and the default password is `5iveL!f
31
31
Once logged in, click the ``Admin area'' icon in the menu at the top right.
32
32
33
33
[[gitlab_menu]]
34
-
.The ``Admin area'' item in the GitLab menu.
34
+
.The ``Admin area'' item in the GitLab menu
35
35
image::images/gitlab-menu.png[The ``Admin area'' item in the GitLab menu.]
36
36
37
37
===== Users
@@ -42,7 +42,7 @@ Each user account comes with a *namespace*, which is a logical grouping of proje
42
42
If the user +jane+ had a project named +project+, that project's url would be `http://server/jane/project`.
43
43
44
44
[[gitlab_users]]
45
-
.The GitLab user administration screen.
45
+
.The GitLab user administration screen
46
46
image::images/gitlab-users.png[The GitLab user administration screen.]
47
47
48
48
Removing a user can be done in two ways.
@@ -59,7 +59,7 @@ A GitLab group is an assemblage of projects, along with data about how users can
59
59
Each group has a project namespace (the same way that users do), so if the group +training+ has a project +materials+, its url would be `http://server/training/materials`.
60
60
61
61
[[gitlab_groups]]
62
-
.The GitLab group administration screen.
62
+
.The GitLab group administration screen
63
63
image::images/gitlab-groups.png[The GitLab group administration screen.]
64
64
65
65
Each group is associated with a number of users, each of which has a level of permissions for the group's projects and the group itself.
Copy file name to clipboardExpand all lines: book/04-git-server/sections/gitweb.asc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ Now that you have basic read/write and read-only access to your project, you may
5
5
Git comes with a CGI script called GitWeb that is sometimes used for this.
6
6
7
7
[[gitweb]]
8
-
.The GitWeb web-based user interface.
8
+
.The GitWeb web-based user interface
9
9
image::images/git-instaweb.png[The GitWeb web-based user interface.]
10
10
11
11
If you want to check out what GitWeb would look like for your project, Git comes with a command to fire up a temporary instance if you have a lightweight web server on your system like `lighttpd` or `webrick`.
Copy file name to clipboardExpand all lines: book/05-distributed-git/sections/contributing.asc
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ The Git project provides a document that lays out a number of good tips for crea
41
41
First, your submissions should not contain any whitespace errors.
42
42
Git provides an easy way to check for this -- before you commit, run `git diff --check`, which identifies possible whitespace errors and lists them for you.
43
43
44
-
.Output of `git diff --check`.
44
+
.Output of `git diff --check`
45
45
image::images/git-diff-check.png[Output of `git diff --check`.]
46
46
47
47
If you run that command before committing, you can tell if you're about to commit whitespace issues that may annoy other developers.
@@ -184,7 +184,7 @@ From john@githost:simplegit
184
184
185
185
At this point, John's local repository looks something like this:
Now John can merge Jessica's work that he fetched into his own local work:
@@ -199,7 +199,7 @@ Merge made by the 'recursive' strategy.
199
199
200
200
As long as that local merge goes smoothly, John's updated history will now look like this:
201
201
202
-
.John's repository after merging `origin/master`.
202
+
.John's repository after merging `origin/master`
203
203
image::images/small-team-2.png[John's repository after merging `origin/master`.]
204
204
205
205
At this point, John might want to test this new code to make sure none of Jessica's work affects any of his and, as long as everything seems fine, he can finally push the new merged work up to the server:
@@ -214,13 +214,13 @@ To john@githost:simplegit.git
214
214
215
215
In the end, John's commit history will look like this:
216
216
217
-
.John's history after pushing to the `origin` server.
217
+
.John's history after pushing to the `origin` server
218
218
image::images/small-team-3.png[John's history after pushing to the `origin` server.]
219
219
220
220
In the meantime, Jessica has created a new topic branch called `issue54`, and made three commits to that branch.
221
221
She hasn't fetched John's changes yet, so her commit history looks like this:
Suddenly, Jessica learns that John has pushed some new work to the server and she wants to take a look at it, so she can fetch all new content from the server that she does not yet have with:
@@ -237,7 +237,7 @@ From jessica@githost:simplegit
237
237
That pulls down the work John has pushed up in the meantime.
238
238
Jessica's history now looks like this:
239
239
240
-
.Jessica's history after fetching John's changes.
240
+
.Jessica's history after fetching John's changes
241
241
image::images/small-team-5.png[Jessica's history after fetching John's changes.]
242
242
243
243
Jessica thinks her topic branch is ready, but she wants to know what part of John's fetched work she has to merge into her work so that she can push.
@@ -298,7 +298,7 @@ Merge made by the 'recursive' strategy.
298
298
299
299
Everything merges cleanly, and Jessica's history now looks like this:
300
300
301
-
.Jessica's history after merging John's changes.
301
+
.Jessica's history after merging John's changes
302
302
image::images/small-team-6.png[Jessica's history after merging John's changes.]
303
303
304
304
Now `origin/master` is reachable from Jessica's `master` branch, so she should be able to successfully push (assuming John hasn't pushed even more changes in the meantime):
@@ -313,15 +313,15 @@ To jessica@githost:simplegit.git
313
313
314
314
Each developer has committed a few times and merged each other's work successfully.
315
315
316
-
.Jessica's history after pushing all changes back to the server.
316
+
.Jessica's history after pushing all changes back to the server
317
317
image::images/small-team-7.png[Jessica's history after pushing all changes back to the server.]
318
318
319
319
That is one of the simplest workflows.
320
320
You work for a while (generally in a topic branch), and merge that work into your `master` branch when it's ready to be integrated.
321
321
When you want to share that work, you fetch and merge your `master` from `origin/master` if it has changed, and finally push to the `master` branch on the server.
322
322
The general sequence is something like this:
323
323
324
-
.General sequence of events for a simple multiple-developer Git workflow.
324
+
.General sequence of events for a simple multiple-developer Git workflow
325
325
image::images/small-team-flow.png[General sequence of events for a simple multiple-developer Git workflow.]
She's ready to push her work, but gets an email from Josie that a branch with some initial ``featureB'' work on it was already pushed to the server as the `featureBee` branch.
@@ -480,20 +480,20 @@ To jessica@githost:simplegit.git
480
480
481
481
Jessica's commit history now looks something like this:
482
482
483
-
.Jessica's history after committing on a feature branch.
483
+
.Jessica's history after committing on a feature branch
484
484
image::images/managed-team-2.png[Jessica's history after committing on a feature branch.]
485
485
486
486
At some point, Jessica, Josie, and John inform the integrators that the `featureA` and `featureBee` branches on the server are ready for integration into the mainline.
487
487
After the integrators merge these branches into the mainline, a fetch will bring down the new merge commit, making the history look like this:
488
488
489
-
.Jessica's history after merging both her topic branches.
489
+
.Jessica's history after merging both her topic branches
490
490
image::images/managed-team-3.png[Jessica's history after merging both her topic branches.]
491
491
492
492
Many groups switch to Git because of this ability to have multiple teams working in parallel, merging the different lines of work late in the process.
493
493
The ability of smaller subgroups of a team to collaborate via remote branches without necessarily having to involve or impede the entire team is a huge benefit of Git.
494
494
The sequence for the workflow you saw here is something like this:
495
495
496
-
.Basic sequence of this managed-team workflow.
496
+
.Basic sequence of this managed-team workflow
497
497
image::images/managed-team-flow.png[Basic sequence of this managed-team workflow.]
498
498
499
499
[[_public_project]]
@@ -590,7 +590,7 @@ $ git fetch origin
590
590
591
591
Now, each of your topics is contained within a silo -- similar to a patch queue -- that you can rewrite, rebase, and modify without the topics interfering or interdepending on each other, like so:
592
592
593
-
.Initial commit history with `featureB` work.
593
+
.Initial commit history with `featureB` work
594
594
image::images/public-small-1.png[Initial commit history with `featureB` work.]
595
595
596
596
Let's say the project maintainer has pulled in a bunch of other patches and tried your first branch, but it no longer cleanly merges.
@@ -606,7 +606,7 @@ $ git push -f myfork featureA
606
606
This rewrites your history to now look like <<psp_b>>.
607
607
608
608
[[psp_b]]
609
-
.Commit history after `featureA` work.
609
+
.Commit history after `featureA` work
610
610
image::images/public-small-2.png[Commit history after `featureA` work.]
611
611
612
612
Because you rebased the branch, you have to specify the `-f` to your push command in order to be able to replace the `featureA` branch on the server with a commit that isn't a descendant of it.
@@ -632,7 +632,7 @@ Also the `--no-commit` option can be useful to delay the merge commit in case of
632
632
633
633
At this point, you can notify the maintainer that you've made the requested changes, and that they can find those changes in your `featureBv2` branch.
634
634
635
-
.Commit history after `featureBv2` work.
635
+
.Commit history after `featureBv2` work
636
636
image::images/public-small-3.png[Commit history after `featureBv2` work.]
This means that if two developers clone from the hub and both make changes, the first developer to push their changes back up can do so with no problems.
@@ -52,7 +52,7 @@ The process works as follows (see <<wfdiag_b>>):
52
52
6. The maintainer pushes merged changes to the main repository.
0 commit comments