Skip to content

Commit

Permalink
Documentaion updates.
Browse files Browse the repository at this point in the history
Mostly making the formatted html prettier.

Signed-off-by: Junio C Hamano <junkio@cox.net>
(cherry picked from 7adf1f15ebe074d4767df941817a6cf86d8e2533 commit)
  • Loading branch information
Junio C Hamano committed Aug 30, 2005
1 parent cc9f24d commit 8db9307
Show file tree
Hide file tree
Showing 9 changed files with 508 additions and 357 deletions.
19 changes: 10 additions & 9 deletions Documentation/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ MAN1_TXT=$(wildcard git-*.txt) gitk.txt
MAN7_TXT=git.txt

DOC_HTML=$(patsubst %.txt,%.html,$(MAN1_TXT) $(MAN7_TXT))
DOC_HTML += glossary.html
DOC_HTML += tutorial.html
DOC_HTML += howto-index.html
DOC_HTML += howto/revert-branch-rebase.html

ARTICLES = tutorial cvs-migration diffcore howto-index
# with their own formatting rules.
SP_ARTICLES = glossary howto/revert-branch-rebase

DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))

DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
Expand Down Expand Up @@ -58,21 +60,20 @@ clean:
%.xml : %.txt
asciidoc -b docbook -d manpage $<

git.html: git.txt ../README

glossary.html : glossary.txt sort_glossary.pl
cat $< | \
perl sort_glossary.pl | \
asciidoc -b xhtml11 - > glossary.html

tutorial.html : tutorial.txt
asciidoc -b xhtml11 tutorial.txt

howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
rm -f $@+ $@
sh ./howto-index.sh $(wildcard howto/*.txt) >$@+
mv $@+ $@

howto-index.html: howto-index.txt
asciidoc -b xhtml11 howto-index.txt
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
asciidoc -b xhtml11 $*.txt

WEBDOC_DEST = /pub/software/scm/git/docs

Expand Down
20 changes: 11 additions & 9 deletions Documentation/cvs-migration.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Git for CVS users
=================
v0.99.5, Aug 2005

Ok, so you're a CVS user. That's ok, it's a treatable condition, and the
first step to recovery is admitting you have a problem. The fact that
Expand All @@ -8,12 +9,12 @@ already.

The thing about CVS is that it absolutely sucks as a source control
manager, and you'll thus be happy with almost anything else. Git,
however, may be a bit _too_ different (read: "good") for your taste, and
however, may be a bit 'too' different (read: "good") for your taste, and
does a lot of things differently.

One particular suckage of CVS is very hard to work around: CVS is
basically a tool for tracking _file_ history, while git is a tool for
tracking _project_ history. This sometimes causes problems if you are
basically a tool for tracking 'file' history, while git is a tool for
tracking 'project' history. This sometimes causes problems if you are
used to doing very strange things in CVS, in particular if you're doing
things like making branches of just a subset of the project. Git can't
track that, since git never tracks things on the level of an individual
Expand All @@ -22,17 +23,18 @@ file, only on the whole project level.
The good news is that most people don't do that, and in fact most sane
people think it's a bug in CVS that makes it tag (and check in changes)
one file at a time. So most projects you'll ever see will use CVS
_as_if_ it was sane. In which case you'll find it very easy indeed to
'as if' it was sane. In which case you'll find it very easy indeed to
move over to Git.

First off: this is not a git tutorial. See Documentation/tutorial.txt
for how git actually works. This is more of a random collection of
gotcha's and notes on converting from CVS to git.
First off: this is not a git tutorial. See
link:tutorial.html[Documentation/tutorial.txt] for how git
actually works. This is more of a random collection of gotcha's
and notes on converting from CVS to git.

Second: CVS has the notion of a "repository" as opposed to the thing
that you're actually working in (your working directory, or your
"checked out tree"). Git does not have that notion at all, and all git
working directories _are_ the repositories. However, you can easily
working directories 'are' the repositories. However, you can easily
emulate the CVS model by having one special "global repository", which
people can synchronize with. See details later, but in the meantime
just keep in mind that with git, every checked out working tree will
Expand All @@ -55,7 +57,7 @@ will need the help of a program called "cvsps":

which is not actually related to git at all, but which makes CVS usage
look almost sane (ie you almost certainly want to have it even if you
decide to stay with CVS). However, git will want at _least_ version 2.1
decide to stay with CVS). However, git will want 'at least' version 2.1
of cvsps (available at the address above), and in fact will currently
refuse to work with anything else.

Expand Down
64 changes: 35 additions & 29 deletions Documentation/diff-format.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
The output format from "git-diff-cache", "git-diff-tree" and
"git-diff-files" is very similar.
"git-diff-files" are very similar.

These commands all compare two sets of things; what are
compared are different:
Expand All @@ -19,35 +19,41 @@ git-diff-files [<pattern>...]::

An output line is formatted this way:

------------------------------------------------
in-place edit :100644 100644 bcd1234... 0123456... M file0
copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2
rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3
create :000000 100644 0000000... 1234567... N file4
create :000000 100644 0000000... 1234567... A file4
delete :100644 000000 1234567... 0000000... D file5
unmerged :000000 000000 0000000... 0000000... U file6
------------------------------------------------

That is, from the left to the right:

(1) a colon.
(2) mode for "src"; 000000 if creation or unmerged.
(3) a space.
(4) mode for "dst"; 000000 if deletion or unmerged.
(5) a space.
(6) sha1 for "src"; 0{40} if creation or unmerged.
(7) a space.
(8) sha1 for "dst"; 0{40} if creation, unmerged or "look at work tree".
(9) a space.
(10) status, followed by optional "score" number.
(11) a tab or a NUL when '-z' option is used.
(12) path for "src"
(13) a tab or a NUL when '-z' option is used; only exists for C or R.
(14) path for "dst"; only exists for C or R.
(15) an LF or a NUL when '-z' option is used, to terminate the record.
. a colon.
. mode for "src"; 000000 if creation or unmerged.
. a space.
. mode for "dst"; 000000 if deletion or unmerged.
. a space.
. sha1 for "src"; 0\{40\} if creation or unmerged.
. a space.
. sha1 for "dst"; 0\{40\} if creation, unmerged or "look at work tree".
. a space.
. status, followed by optional "score" number.
. a tab or a NUL when '-z' option is used.
. path for "src"
. a tab or a NUL when '-z' option is used; only exists for C or R.
. path for "dst"; only exists for C or R.
. an LF or a NUL when '-z' option is used, to terminate the record.

<sha1> is shown as all 0's if new is a file on the filesystem
and it is out of sync with the cache. Example:
and it is out of sync with the cache.

:100644 100644 5be4a4...... 000000...... M file.c
Example:

------------------------------------------------
:100644 100644 5be4a4...... 000000...... M file.c
------------------------------------------------

Generating patches with -p
--------------------------
Expand Down Expand Up @@ -107,20 +113,20 @@ Git specific extension to diff format
What -p option produces is slightly different from the
traditional diff format.

(1) It is preceeded with a "git diff" header, that looks like
1. It is preceeded with a "git diff" header, that looks like
this:

diff --git a/file1 b/file2
+
The `a/` and `b/` filenames are the same unless rename/copy is
involved. Especially, even for a creation or a deletion,
`/dev/null` is _not_ used in place of `a/` or `b/` filenames.
+
When rename/copy is involved, `file1` and `file2` shows the
name of the source file of the rename/copy and the name of
the file that rename/copy produces, respectively.

The a/ and b/ filenames are the same unless rename/copy is
involved. Especially, even for a creation or a deletion,
/dev/null is _not_ used in place of a/ or b/ filename.

When rename/copy is involved, file1 and file2 shows the
name of the source file of the rename/copy and the name of
the file that rename/copy produces, respectively.

(2) It is followed by extended header lines that are one or
2. It is followed by extended header lines that are one or
more of:

old mode <mode>
Expand Down
2 changes: 2 additions & 0 deletions Documentation/diff-options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,5 @@
Swap two inputs; that is, show differences from cache or
on-disk file to tree contents.

For more detailed explanation on these common options, see also
link:diffcore.html[diffcore documentation].
78 changes: 47 additions & 31 deletions Documentation/diffcore.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ The git-diff-* family works by first comparing two sets of
files:

- git-diff-cache compares contents of a "tree" object and the
working directory (when --cached flag is not used) or a
"tree" object and the index file (when --cached flag is
working directory (when '--cached' flag is not used) or a
"tree" object and the index file (when '--cached' flag is
used);

- git-diff-files compares contents of the index file and the
Expand All @@ -37,29 +37,31 @@ comparison is passed from these commands to what is internally
called "diffcore", in a format similar to what is output when
the -p option is not used. E.g.

in-place edit :100644 100644 bcd1234... 0123456... M file0
create :000000 100644 0000000... 1234567... N file4
delete :100644 000000 1234567... 0000000... D file5
unmerged :000000 000000 0000000... 0000000... U file6
------------------------------------------------
in-place edit :100644 100644 bcd1234... 0123456... M file0
create :000000 100644 0000000... 1234567... A file4
delete :100644 000000 1234567... 0000000... D file5
unmerged :000000 000000 0000000... 0000000... U file6
------------------------------------------------

The diffcore mechanism is fed a list of such comparison results
(each of which is called "filepair", although at this point each
of them talks about a single file), and transforms such a list
into another list. There are currently 6 such transformations:

- diffcore-pathspec
- diffcore-break
- diffcore-rename
- diffcore-merge-broken
- diffcore-pickaxe
- diffcore-order
- diffcore-pathspec
- diffcore-break
- diffcore-rename
- diffcore-merge-broken
- diffcore-pickaxe
- diffcore-order

These are applied in sequence. The set of filepairs git-diff-*
These are applied in sequence. The set of filepairs git-diff-\*
commands find are used as the input to diffcore-pathspec, and
the output from diffcore-pathspec is used as the input to the
next transformation. The final result is then passed to the
output routine and generates either diff-raw format (see Output
format sections of the manual for git-diff-* commands) or
format sections of the manual for git-diff-\* commands) or
diff-patch format.


Expand Down Expand Up @@ -87,13 +89,17 @@ used to detect a filepair that represents "complete rewrite" and
break such filepair into two filepairs that represent delete and
create. E.g. If the input contained this filepair:

:100644 100644 bcd1234... 0123456... M file0
------------------------------------------------
:100644 100644 bcd1234... 0123456... M file0
------------------------------------------------

and if it detects that the file "file0" is completely rewritten,
it changes it to:

:100644 000000 bcd1234... 0000000... D file0
:000000 100644 0000000... 0123456... N file0
------------------------------------------------
:100644 000000 bcd1234... 0000000... D file0
:000000 100644 0000000... 0123456... A file0
------------------------------------------------

For the purpose of breaking a filepair, diffcore-break examines
the extent of changes between the contents of the files before
Expand All @@ -117,14 +123,18 @@ controlled by the -M option (to detect renames) and the -C option
(to detect copies as well) to the git-diff-* commands. If the
input contained these filepairs:

:100644 000000 0123456... 0000000... D fileX
:000000 100644 0000000... 0123456... N file0
------------------------------------------------
:100644 000000 0123456... 0000000... D fileX
:000000 100644 0000000... 0123456... A file0
------------------------------------------------

and the contents of the deleted file fileX is similar enough to
the contents of the created file file0, then rename detection
merges these filepairs and creates:

:100644 100644 0123456... 0123456... R100 fileX file0
------------------------------------------------
:100644 100644 0123456... 0123456... R100 fileX file0
------------------------------------------------

When the "-C" option is used, the original contents of modified
files and contents of unchanged files are considered as
Expand All @@ -133,15 +143,19 @@ addition to the deleted files. If the input were like these
filepairs, that talk about a modified file fileY and a newly
created file file0:

:100644 100644 0123456... 1234567... M fileY
:000000 100644 0000000... 0123456... N file0
------------------------------------------------
:100644 100644 0123456... 1234567... M fileY
:000000 100644 0000000... 0123456... A file0
------------------------------------------------

the original contents of fileY and the resulting contents of
file0 are compared, and if they are similar enough, they are
changed to:

:100644 100644 0123456... 1234567... M fileY
:100644 100644 0123456... 0123456... C100 fileY file0
------------------------------------------------
:100644 100644 0123456... 1234567... M fileY
:100644 100644 0123456... 0123456... C100 fileY file0
------------------------------------------------

In both rename and copy detection, the same "extent of changes"
algorithm used in diffcore-break is used to determine if two
Expand All @@ -151,11 +165,11 @@ number after "-M" or "-C" option (e.g. "-M8" to tell it to use
8/10 = 80%).

Note. When the "-C" option is used with --find-copies-harder
option, git-diff-* commands feed unmodified filepairs to
option, git-diff-\* commands feed unmodified filepairs to
diffcore mechanism as well as modified ones. This lets the copy
detector consider unmodified files as copy source candidates at
the expense of making it slower. Without --find-copies-harder,
git-diff-* commands can detect copies only if the file that was
git-diff-\* commands can detect copies only if the file that was
copied happened to have been modified in the same changeset.


Expand Down Expand Up @@ -186,10 +200,10 @@ material is deleted, the broken pairs are merged back into a
single modification) by giving a second number to -B option,
like these:

-B50/60 (give 50% "break score" to diffcore-break, use
60% for diffcore-merge-broken).
-B/60 (the same as above, since diffcore-break defautls to
50%).
* -B50/60 (give 50% "break score" to diffcore-break, use 60%
for diffcore-merge-broken).

* -B/60 (the same as above, since diffcore-break defaults to 50%).

Note that earlier implementation left a broken pair as a separate
creation and deletion patches. This was unnecessary hack and
Expand Down Expand Up @@ -237,12 +251,14 @@ in the file are output before ones that match a later line, and
filepairs that do not match any glob pattern are output last.

As an example, typical orderfile for the core GIT probably
should look like this:
would look like this:

------------------------------------------------
README
Makefile
Documentation
*.h
*.c
t
------------------------------------------------

8 changes: 8 additions & 0 deletions Documentation/git-bisect-script.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ SYNOPSIS
'git bisect' bad <rev>
'git bisect' good <rev>
'git bisect' reset [<branch>]
'git bisect' visualize


DESCRIPTION
-----------
Expand Down Expand Up @@ -67,6 +69,12 @@ branches ("git bisect start" will do that for you too, actually: it will
reset the bisection state, and before it does that it checks that you're
not using some old bisection branch).

During the bisection process, you can say

git bisect visualize

to see the currently remaining suspects in `gitk`.


Author
------
Expand Down
Loading

0 comments on commit 8db9307

Please sign in to comment.