From 12a3a233f89942d86ddf8c57697a2c2486c07f11 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 7 Apr 2007 10:18:10 +0000 Subject: [PATCH] Autogenerated HTML docs for v1.5.1-81-gee969 --- git-bisect.html | 18 +++++-- git-bisect.txt | 19 +++++-- git-cvsimport.html | 122 ++++++++++++++++++++++++--------------------- git-cvsimport.txt | 72 ++++++++++++++------------ git-read-tree.html | 21 +++++++- git-read-tree.txt | 14 +++++- user-manual.html | 16 +++--- user-manual.txt | 8 +-- 8 files changed, 176 insertions(+), 114 deletions(-) diff --git a/git-bisect.html b/git-bisect.html index 538946d63..689679452 100644 --- a/git-bisect.html +++ b/git-bisect.html @@ -280,7 +280,7 @@ git-bisect(1) Manual Page on the subcommand:

-
git bisect start [<paths>...]
+
git bisect start [<bad> [<good>...]] [--] [<paths>...]
 git bisect bad <rev>
 git bisect good <rev>
 git bisect reset [<branch>]
@@ -372,13 +372,23 @@ $ git reset --hard HEAD~3               # try 3 revs before what
 

Then compile and test the one you chose to try. After that, tell bisect what the result was as usual.

-

Cutting down bisection by giving path parameter to bisect start

+

Cutting down bisection by giving more parameters to bisect start

You can further cut down the number of trials if you know what part of the tree is involved in the problem you are tracking down, by giving paths parameters when you say bisect start, like this:

-
$ git bisect start arch/i386 include/asm-i386
+
$ git bisect start -- arch/i386 include/asm-i386
+
+

If you know beforehand more than one good commits, you can narrow the +bisect space down without doing the whole tree checkout every time you +give good commits. You give the bad revision immediately after start +and then you give all the good revisions you have:

+
+
+
$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 --
+                   # v2.6.20-rc6 is bad
+                   # v2.6.20-rc4 and v2.6.20-rc1 are good

Bisect run

If you have a script that can tell if the current source code is good @@ -421,7 +431,7 @@ know the outcome.

diff --git a/git-bisect.txt b/git-bisect.txt index b2bc58d85..5f68ee158 100644 --- a/git-bisect.txt +++ b/git-bisect.txt @@ -15,7 +15,7 @@ DESCRIPTION The command takes various subcommands, and different options depending on the subcommand: - git bisect start [...] + git bisect start [ [...]] [--] [...] git bisect bad git bisect good git bisect reset [] @@ -134,15 +134,26 @@ $ git reset --hard HEAD~3 # try 3 revs before what Then compile and test the one you chose to try. After that, tell bisect what the result was as usual. -Cutting down bisection by giving path parameter to bisect start -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Cutting down bisection by giving more parameters to bisect start +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can further cut down the number of trials if you know what part of the tree is involved in the problem you are tracking down, by giving paths parameters when you say `bisect start`, like this: ------------ -$ git bisect start arch/i386 include/asm-i386 +$ git bisect start -- arch/i386 include/asm-i386 +------------ + +If you know beforehand more than one good commits, you can narrow the +bisect space down without doing the whole tree checkout every time you +give good commits. You give the bad revision immediately after `start` +and then you give all the good revisions you have: + +------------ +$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 -- + # v2.6.20-rc6 is bad + # v2.6.20-rc4 and v2.6.20-rc1 are good ------------ Bisect run diff --git a/git-cvsimport.html b/git-cvsimport.html index fd54601e5..89383fec1 100644 --- a/git-cvsimport.html +++ b/git-cvsimport.html @@ -273,9 +273,11 @@ git-cvsimport(1) Manual Page

SYNOPSIS

-
git-cvsimport [-o <branch-for-HEAD>] [-h] [-v] [-d <CVSROOT>] [-s <subst>] - [-p <options-for-cvsps>] [-C <git_repository>] [-i] [-P <file>] - [-m] [-M regex] [<CVS_module>]
+
git-cvsimport [-o <branch-for-HEAD>] [-h] [-v] [-d <CVSROOT>] + [-A <author-conv-file>] [-p <options-for-cvsps>] [-P <file>] + [-C <git_repository>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>] + [-a] [-m] [-M <regex>] [-S <regex>] [-L <commitlimit>] + [<CVS_module>]

DESCRIPTION

@@ -293,13 +295,33 @@ any CVS branches, yourself.

+-v +
+
+

+ Verbosity: let cvsimport report what it is doing. +

+
+
-d <CVSROOT>

The root of the CVS archive. May be local (a simple path) or remote; currently, only the :local:, :ext: and :pserver: access methods - are supported. + are supported. If not given, git-cvsimport will try to read it + from CVS/Root. If no such file exists, it checks for the + CVSROOT environment variable. +

+
+
+<CVS_module> +
+
+

+ The CVS module you want to import. Relative to <CVSROOT>. + If not given, git-cvsimport tries to read it from + CVS/Repository.

@@ -312,6 +334,18 @@ any CVS branches, yourself.

+-o <branch-for-HEAD> +
+
+

+ The HEAD branch from CVS is imported to the origin branch within + the git repository, as HEAD already has a special meaning for git. + Use this option if you want to import into a different branch. +

+

Use -o master for continuing an import that was initially done by +the old cvs2git tool.

+
+
-i
@@ -326,7 +360,7 @@ any CVS branches, yourself.

- Kill keywords: will extract files with -kk from the CVS archive + Kill keywords: will extract files with -kk from the CVS archive to avoid noisy changesets. Highly recommended, but off by default to preserve compatibility with early imported trees.

@@ -340,16 +374,12 @@ any CVS branches, yourself.

--o <branch-for-HEAD> +-s <subst>

- The HEAD branch from CVS is imported to the origin branch within - the git repository, as HEAD already has a special meaning for git. - Use this option if you want to import into a different branch. + Substitute the character "/" in branch names with <subst>

-

Use -o master for continuing an import that was initially done by -the old cvs2git tool.

-p <options-for-cvsps> @@ -362,6 +392,15 @@ the old cvs2git tool.

If you need to pass multiple options, separate them with a comma.

+-z <fuzz> +
+
+

+ Pass the timestamp fuzz factor to cvsps, in seconds. If unset, + cvsps defaults to 300s. +

+
+
-P <cvsps-output-file>
@@ -386,49 +425,16 @@ the old cvs2git tool.

Attempt to detect merges based on the commit message with a custom - regex. It can be used with -m to also see the default regexes. + regex. It can be used with -m to also see the default regexes. You must escape forward slashes.

--v -
-
-

- Verbosity: let cvsimport report what it is doing. -

-
-
-<CVS_module> -
-
-

- The CVS module you want to import. Relative to <CVSROOT>. -

-
-
--h -
-
-

- Print a short usage message and exit. -

-
-
--z <fuzz> -
-
-

- Pass the timestamp fuzz factor to cvsps, in seconds. If unset, - cvsps defaults to 300s. -

-
-
--s <subst> +-S <regex>

- Substitute the character "/" in branch names with <subst> + Skip paths matching the regex.

@@ -441,14 +447,6 @@ the old cvs2git tool.

--S <regex> -
-
-

- Skip paths matching the regex. -

-
-
-L <limit>
@@ -475,13 +473,21 @@ the old cvs2git tool.

git-cvsimport will make it appear as those authors had their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly all along.

-

For convenience, this data is saved to $GIT_DIR/cvs-authors -each time the -A option is provided and read from that same +

For convenience, this data is saved to $GIT_DIR/cvs-authors +each time the -A option is provided and read from that same file each time git-cvsimport is run.

It is not recommended to use this feature if you intend to export changes back to CVS again later with git-cvsexportcommit(1).

+
+-h +
+
+

+ Print a short usage message and exit. +

+

OUTPUT

@@ -505,7 +511,7 @@ various participants of the git-list <git@vger.kernel.org>.

diff --git a/git-cvsimport.txt b/git-cvsimport.txt index 0d59c0613..e0be85654 100644 --- a/git-cvsimport.txt +++ b/git-cvsimport.txt @@ -9,9 +9,11 @@ git-cvsimport - Salvage your data out of another SCM people love to hate SYNOPSIS -------- [verse] -'git-cvsimport' [-o ] [-h] [-v] [-d ] [-s ] - [-p ] [-C ] [-i] [-P ] - [-m] [-M regex] [] +'git-cvsimport' [-o ] [-h] [-v] [-d ] + [-A ] [-p ] [-P ] + [-C ] [-z ] [-i] [-k] [-u] [-s ] + [-a] [-m] [-M ] [-S ] [-L ] + [] DESCRIPTION @@ -30,35 +32,48 @@ any CVS branches, yourself. OPTIONS ------- +-v:: + Verbosity: let 'cvsimport' report what it is doing. + -d :: The root of the CVS archive. May be local (a simple path) or remote; currently, only the :local:, :ext: and :pserver: access methods - are supported. + are supported. If not given, git-cvsimport will try to read it + from `CVS/Root`. If no such file exists, it checks for the + `CVSROOT` environment variable. + +:: + The CVS module you want to import. Relative to . + If not given, git-cvsimport tries to read it from + `CVS/Repository`. -C :: The git repository to import to. If the directory doesn't exist, it will be created. Default is the current directory. +-o :: + The 'HEAD' branch from CVS is imported to the 'origin' branch within + the git repository, as 'HEAD' already has a special meaning for git. + Use this option if you want to import into a different branch. ++ +Use '-o master' for continuing an import that was initially done by +the old cvs2git tool. + -i:: Import-only: don't perform a checkout after importing. This option ensures the working directory and index remain untouched and will not create them if they do not exist. -k:: - Kill keywords: will extract files with -kk from the CVS archive + Kill keywords: will extract files with '-kk' from the CVS archive to avoid noisy changesets. Highly recommended, but off by default to preserve compatibility with early imported trees. -u:: Convert underscores in tag and branch names to dots. --o :: - The 'HEAD' branch from CVS is imported to the 'origin' branch within - the git repository, as 'HEAD' already has a special meaning for git. - Use this option if you want to import into a different branch. -+ -Use '-o master' for continuing an import that was initially done by -the old cvs2git tool. +-s :: + Substitute the character "/" in branch names with -p :: Additional options for cvsps. @@ -66,6 +81,10 @@ the old cvs2git tool. + If you need to pass multiple options, separate them with a comma. +-z :: + Pass the timestamp fuzz factor to cvsps, in seconds. If unset, + cvsps defaults to 300s. + -P :: Instead of calling cvsps, read the provided cvsps output file. Useful for debugging or when cvsps is being handled outside cvsimport. @@ -77,32 +96,16 @@ If you need to pass multiple options, separate them with a comma. -M :: Attempt to detect merges based on the commit message with a custom - regex. It can be used with -m to also see the default regexes. + regex. It can be used with '-m' to also see the default regexes. You must escape forward slashes. --v:: - Verbosity: let 'cvsimport' report what it is doing. - -:: - The CVS module you want to import. Relative to . - --h:: - Print a short usage message and exit. - --z :: - Pass the timestamp fuzz factor to cvsps, in seconds. If unset, - cvsps defaults to 300s. - --s :: - Substitute the character "/" in branch names with +-S :: + Skip paths matching the regex. -a:: Import all commits, including recent ones. cvsimport by default skips commits that have a timestamp less than 10 minutes ago. --S :: - Skip paths matching the regex. - -L :: Limit the number of commits imported. Workaround for cases where cvsimport leaks memory. @@ -122,14 +125,17 @@ git-cvsimport will make it appear as those authors had their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly all along. + -For convenience, this data is saved to $GIT_DIR/cvs-authors -each time the -A option is provided and read from that same +For convenience, this data is saved to `$GIT_DIR/cvs-authors` +each time the '-A' option is provided and read from that same file each time git-cvsimport is run. + It is not recommended to use this feature if you intend to export changes back to CVS again later with gitlink:git-cvsexportcommit[1]. +-h:: + Print a short usage message and exit. + OUTPUT ------ If '-v' is specified, the script reports what it is doing. diff --git a/git-read-tree.html b/git-read-tree.html index ed0c0c653..860ef4762 100644 --- a/git-read-tree.html +++ b/git-read-tree.html @@ -272,7 +272,7 @@ git-read-tree(1) Manual Page

SYNOPSIS

-

git-read-tree (<tree-ish> | [[-m [--aggressive] | --reset | --prefix=<prefix>] [-u | -i]] [--exclude-per-directory=<gitignore>] <tree-ish1> [<tree-ish2> [<tree-ish3>]])

+

git-read-tree (<tree-ish> | [[-m [--aggressive] | --reset | --prefix=<prefix>] [-u | -i]] [--exclude-per-directory=<gitignore>] [--index-output=<file>] <tree-ish1> [<tree-ish2> [<tree-ish3>]])

DESCRIPTION

@@ -397,6 +397,23 @@ when both sides adds a path identically. The resolution

+--index-output=<file> +
+
+

+ Instead of writing the results out to $GIT_INDEX_FILE, + write the resulting index in the named file. While the + command is operating, the original index file is locked + with the same mechanism as usual. The file must allow + to be rename(2)ed into from a temporary file that is + created next to the usual index file; typically this + means it needs to be on the same filesystem as the index + file itself, and you need write permission to the + directories the index file and index output file are + located in. +

+
+
<tree-ish#>
@@ -682,7 +699,7 @@ have finished your work-in-progress), attempt the merge again.

diff --git a/git-read-tree.txt b/git-read-tree.txt index 0ff2890c7..019c8bef7 100644 --- a/git-read-tree.txt +++ b/git-read-tree.txt @@ -8,7 +8,7 @@ git-read-tree - Reads tree information into the index SYNOPSIS -------- -'git-read-tree' ( | [[-m [--aggressive] | --reset | --prefix=] [-u | -i]] [--exclude-per-directory=] [ []]) +'git-read-tree' ( | [[-m [--aggressive] | --reset | --prefix=] [-u | -i]] [--exclude-per-directory=] [--index-output=] [ []]) DESCRIPTION @@ -86,6 +86,18 @@ OPTIONS file (usually '.gitignore') and allows such an untracked but explicitly ignored file to be overwritten. +--index-output=:: + Instead of writing the results out to `$GIT_INDEX_FILE`, + write the resulting index in the named file. While the + command is operating, the original index file is locked + with the same mechanism as usual. The file must allow + to be rename(2)ed into from a temporary file that is + created next to the usual index file; typically this + means it needs to be on the same filesystem as the index + file itself, and you need write permission to the + directories the index file and index output file are + located in. + :: The id of the tree object(s) to be read/merged. diff --git a/user-manual.html b/user-manual.html index fba497e1e..af91bd2c8 100644 --- a/user-manual.html +++ b/user-manual.html @@ -1,4 +1,4 @@ -Git User's Manual

Git User's Manual


Table of Contents

Preface
1. Git Quick Start
Creating a new repository
Managing branches
Exploring history
Making changes
Merging
Sharing your changes
Repository maintenance
2. Repositories and Branches
How to get a git repository
How to check out a different version of a project
Understanding History: Commits
Understanding history: commits, parents, and reachability
Understanding history: History diagrams
Understanding history: What is a branch?
Manipulating branches
Examining branches from a remote repository
Naming branches, tags, and other references
Updating a repository with git fetch
Fetching branches from other repositories
3. Exploring git history
How to use bisect to find a regression
Naming commits
Creating tags
Browsing revisions
Generating diffs
Viewing old file versions
Examples
Check whether two branches point at the same history
Find first tagged version including a given fix
4. Developing with git
Telling git your name
Creating a new repository
how to make a commit
creating good commit messages
how to merge
Resolving a merge
Getting conflict-resolution help during a merge
undoing a merge
Fast-forward merges
Fixing mistakes
Fixing a mistake with a new commit
Fixing a mistake by editing history
Checking out an old version of a file
Ensuring good performance
Ensuring reliability
Checking the repository for corruption
Recovering lost changes
5. Sharing development with others
Getting updates with git pull
Submitting patches to a project
Importing patches to a project
Setting up a public repository
Exporting a git repository via http
Exporting a git repository via the git protocol
Pushing changes to a public repository
Setting up a shared repository
Allow web browsing of a repository
Examples
6. Rewriting history and maintaining patch series
Creating the perfect patch series
Keeping a patch series up to date using git-rebase
Modifying a single commit
Reordering or selecting from a patch series
Other tools
Problems with rewriting history
7. Advanced branch management
Fetching individual branches
Understanding git history: fast-forwards
Forcing git fetch to do non-fast-forward updates
Configuring remote branches
8. Git internals
The Object Database
Blob Object
Tree Object
Commit Object
Trust
Tag Object
The "index" aka "Current Directory Cache"
The Workflow
working directory -> index
index -> object database
object database -> index
index -> working directory
Tying it all together
Examining the data
Merging multiple trees
Merging multiple trees, continued
How git stores objects efficiently: pack files
Dangling objects
9. GIT Glossary
10. Notes and todo list for this manual

Preface

This manual is designed to be readable by someone with basic unix +Git User's Manual

Git User's Manual


Table of Contents

Preface
1. Git Quick Start
Creating a new repository
Managing branches
Exploring history
Making changes
Merging
Sharing your changes
Repository maintenance
2. Repositories and Branches
How to get a git repository
How to check out a different version of a project
Understanding History: Commits
Understanding history: commits, parents, and reachability
Understanding history: History diagrams
Understanding history: What is a branch?
Manipulating branches
Examining branches from a remote repository
Naming branches, tags, and other references
Updating a repository with git fetch
Fetching branches from other repositories
3. Exploring git history
How to use bisect to find a regression
Naming commits
Creating tags
Browsing revisions
Generating diffs
Viewing old file versions
Examples
Check whether two branches point at the same history
Find first tagged version including a given fix
4. Developing with git
Telling git your name
Creating a new repository
How to make a commit
Creating good commit messages
How to merge
Resolving a merge
Getting conflict-resolution help during a merge
Undoing a merge
Fast-forward merges
Fixing mistakes
Fixing a mistake with a new commit
Fixing a mistake by editing history
Checking out an old version of a file
Ensuring good performance
Ensuring reliability
Checking the repository for corruption
Recovering lost changes
5. Sharing development with others
Getting updates with git pull
Submitting patches to a project
Importing patches to a project
Setting up a public repository
Exporting a git repository via http
Exporting a git repository via the git protocol
Pushing changes to a public repository
Setting up a shared repository
Allow web browsing of a repository
Examples
6. Rewriting history and maintaining patch series
Creating the perfect patch series
Keeping a patch series up to date using git-rebase
Modifying a single commit
Reordering or selecting from a patch series
Other tools
Problems with rewriting history
7. Advanced branch management
Fetching individual branches
Understanding git history: fast-forwards
Forcing git fetch to do non-fast-forward updates
Configuring remote branches
8. Git internals
The Object Database
Blob Object
Tree Object
Commit Object
Trust
Tag Object
The "index" aka "Current Directory Cache"
The Workflow
working directory -> index
index -> object database
object database -> index
index -> working directory
Tying it all together
Examining the data
Merging multiple trees
Merging multiple trees, continued
How git stores objects efficiently: pack files
Dangling objects
9. GIT Glossary
10. Notes and todo list for this manual

Preface

This manual is designed to be readable by someone with basic unix command-line skills, but no previous knowledge of git.

Chapter 1 gives a brief overview of git commands, without any explanation; you may prefer to skip to chapter 2 on a first reading.

Chapters 2 and 3 explain how to fetch and study a project using git—the tools you'd need to build and test a particular version of a @@ -406,7 +406,7 @@ available
   ! [v1.5.0-rc2] GIT v1.5.0-rc2
...

then search for a line that looks like

+ ++ [e05db0fd] Fix warnings in sha1_file.c - use C99 printf format if
available

Which shows that e05db0fd is reachable from itself, from v1.5.0-rc1, and -from v1.5.0-rc2, but not from v1.5.0-rc0.

Chapter 4. Developing with git

Telling git your name

Before creating any commits, you should introduce yourself to git. The easiest way to do so is:

$ cat >~/.gitconfig <<\EOF
[user]
        name = Your Name Comes Here
@@ -418,7 +418,7 @@ $ $ cd project
$ git init
$ git add . # include everything below ./ in the first commit:
-$ git commit

how to make a commit

Creating a new commit takes three steps:

  1. +$ git commit

How to make a commit

Creating a new commit takes three steps:

  1. Making some changes to the working directory using your favorite editor.
  2. @@ -443,12 +443,12 @@ about to commit:

    $ $ git diff          # difference between the index file and your
                        # working directory; changes that would not
                        # be included if you ran "commit" now.
    -$ git status        # a brief per-file summary of the above.

creating good commit messages

Though not required, it's a good idea to begin the commit message +$ git status        # a brief per-file summary of the above.

Creating good commit messages

Though not required, it's a good idea to begin the commit message with a single short (less than 50 character) line summarizing the change, followed by a blank line and then a more thorough description. Tools that turn commits into email, for example, use the first line on the Subject line and the rest of the commit in the -body.

how to merge

You can rejoin two diverging branches of development using +body.

How to merge

You can rejoin two diverging branches of development using git-merge(1):

$ git merge branchname

merges the development in the branch "branchname" into the current branch. If there are conflicts—for example, if the same file is modified in two different ways in the remote branch and the local @@ -526,7 +526,7 @@ $ for merges:

$ git log --merge
$ gitk --merge

These will display all commits which exist only on HEAD or on MERGE_HEAD, and which touch an unmerged file.

Each time you resolve the conflicts in a file and update the index:

$ git add file.txt

the different stages of that file will be "collapsed", after which -git-diff will (by default) no longer show diffs for that file.

undoing a merge

If you get stuck and decide to just give up and throw the whole mess +git-diff will (by default) no longer show diffs for that file.

Undoing a merge

If you get stuck and decide to just give up and throw the whole mess away, you can always return to the pre-merge state with

$ git reset --hard HEAD

Or, if you've already commited the merge that you want to throw away,

$ git reset --hard ORIG_HEAD

However, this last command can be dangerous in some cases—never throw away a commit you have already committed if that commit may itself have been merged into another branch, as doing so may confuse @@ -559,9 +559,9 @@ intact any changes made since then. If more recent changes overlap with the changes to be reverted, then you will be asked to fix conflicts manually, just as in the case of resolving a merge.

Fixing a mistake by editing history

If the problematic commit is the most recent commit, and you have not yet made that commit public, then you may just -destroy it using git-reset.

Alternatively, you +destroy it using git-reset.

Alternatively, you can edit the working directory and update the index to fix your -mistake, just as if you were going to create a new commit, then run

$ git commit --amend

which will replace the old commit by a new commit incorporating your +mistake, just as if you were going to create a new commit, then run

$ git commit --amend

which will replace the old commit by a new commit incorporating your changes, giving you a chance to edit the old commit message first.

Again, you should never do this to a commit that may already have been merged into another branch; use git-revert(1) instead in that case.

It is also possible to edit commits further back in the history, but diff --git a/user-manual.txt b/user-manual.txt index 574e9c0e5..d43d2377e 100644 --- a/user-manual.txt +++ b/user-manual.txt @@ -1015,7 +1015,7 @@ $ git commit ------------------------------------------------- [[how-to-make-a-commit]] -how to make a commit +How to make a commit -------------------- Creating a new commit takes three steps: @@ -1109,7 +1109,7 @@ $ git diff # difference between the index file and your $ git status # a brief per-file summary of the above. ------------------------------------------------- -creating good commit messages +Creating good commit messages ----------------------------- Though not required, it's a good idea to begin the commit message @@ -1119,7 +1119,7 @@ description. Tools that turn commits into email, for example, use the first line on the Subject line and the rest of the commit in the body. -how to merge +How to merge ------------ You can rejoin two diverging branches of development using @@ -1298,7 +1298,7 @@ the different stages of that file will be "collapsed", after which git-diff will (by default) no longer show diffs for that file. [[undoing-a-merge]] -undoing a merge +Undoing a merge --------------- If you get stuck and decide to just give up and throw the whole mess -- 2.26.2