Skip to content

Commit

Permalink
GIT 0.99.9l aka 1.0rc4
Browse files Browse the repository at this point in the history
  • Loading branch information
Junio C Hamano committed Dec 4, 2005
2 parents 93dcab2 + d79374c commit 423325a
Show file tree
Hide file tree
Showing 90 changed files with 1,507 additions and 749 deletions.
5 changes: 5 additions & 0 deletions Documentation/fetch-options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
option old data in `.git/FETCH_HEAD` will be overwritten.

-f, \--force::
When `git-fetch` is used with `<rbranch>:<lbranch>`
refspec, it refuses to update the local branch
`<lbranch>` unless the remote branch `<rbranch>` it
fetches is a descendant of `<lbranch>`. This option
overrides that check.

-t, \--tags::
By default, the git core utilities will not fetch and store
Expand Down
14 changes: 7 additions & 7 deletions Documentation/git-bisect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ git-bisect - Find the change that introduced a bug

SYNOPSIS
--------
'git bisect' start
'git bisect' bad <rev>
'git bisect' good <rev>
'git bisect' reset [<branch>]
'git bisect' visualize
'git bisect' replay <logfile>
'git bisect' log
'git bisect' start
'git bisect' bad <rev>
'git bisect' good <rev>
'git bisect' reset [<branch>]
'git bisect' visualize
'git bisect' replay <logfile>
'git bisect' log

DESCRIPTION
-----------
Expand Down
13 changes: 10 additions & 3 deletions Documentation/git-cat-file.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ git-cat-file - Provide content or type information for repository objects

SYNOPSIS
--------
'git-cat-file' (-t | -s | <type>) <object>
'git-cat-file' (-t | -s | -e | <type>) <object>

DESCRIPTION
-----------
Expand All @@ -29,6 +29,10 @@ OPTIONS
Instead of the content, show the object size identified by
<object>.

-e::
Suppress all output; instead exit with zero status if <object>
exists and is a valid object.

<type>::
Typically this matches the real type of <object> but asking
for a type that can trivially be dereferenced from the given
Expand All @@ -39,8 +43,11 @@ OPTIONS

OUTPUT
------
If '-t' is specified, one of the <type>. If '-s' is specified,
the size of the <object> in bytes.
If '-t' is specified, one of the <type>.

If '-s' is specified, the size of the <object> in bytes.

If '-e' is specified, no output.

Otherwise the raw (though uncompressed) contents of the <object> will
be returned.
Expand Down
9 changes: 9 additions & 0 deletions Documentation/git-diff-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,15 @@ OPTIONS
-------
include::diff-options.txt[]

-1 -2 -3 or --base --ours --theirs, and -0::
Diff against the "base" version, "our branch" or "their
branch" respectively. With these options, diffs for
merged entries are not shown.
+
The default is to diff against our branch (-2) and the
cleanly resolved paths. The option -0 can be given to
omit diff output for unmerged entries and just show "Unmerged".

-q::
Remain silent even on nonexisting files

Expand Down
11 changes: 9 additions & 2 deletions Documentation/git-mailinfo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ git-mailinfo - Extracts patch from a single e-mail message.

SYNOPSIS
--------
'git-mailinfo' [-k] [-u] <msg> <patch>
'git-mailinfo' [-k] [-u | --encoding=<encoding>] <msg> <patch>


DESCRIPTION
Expand Down Expand Up @@ -37,10 +37,17 @@ OPTIONS
author email are taken from the e-mail without any
charset conversion, after minimally decoding MIME
transfer encoding. This flag causes the resulting
commit to be encoded in utf-8 by transliterating them.
commit to be encoded in the encoding specified by
i18n.commitencoding configuration (defaults to utf-8) by
transliterating them.
Note that the patch is always used as is without charset
conversion, even with this flag.

--encoding=<encoding>::
Similar to -u but if the local convention is different
from what is specified by i18n.commitencoding, this flag
can be used to override it.

<msg>::
The commit log message extracted from e-mail, usually
except the title line which comes from e-mail Subject.
Expand Down
97 changes: 97 additions & 0 deletions Documentation/git-merge.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,103 @@ include::merge-options.txt[]
include::merge-strategies.txt[]


HOW MERGE WORKS
---------------

A merge is always between the current `HEAD` and one or more
remote branch heads, and the index file must exactly match the
tree of `HEAD` commit (i.e. the contents of the last commit) when
it happens. In other words, `git-diff --cached HEAD` must
report no changes.

[NOTE]
This is a bit of lie. In certain special cases, your index are
allowed to be different from the tree of `HEAD` commit. The most
notable case is when your `HEAD` commit is already ahead of what
is being merged, in which case your index can have arbitrary
difference from your `HEAD` commit. Otherwise, your index entries
are allowed have differences from your `HEAD` commit that match
the result of trivial merge (e.g. you received the same patch
from external source to produce the same result as what you are
merging). For example, if a path did not exist in the common
ancestor and your head commit but exists in the tree you are
merging into your repository, and if you already happen to have
that path exactly in your index, the merge does not have to
fail.

Otherwise, merge will refuse to do any harm to your repository
(that is, it may fetch the objects from remote, and it may even
update the local branch used to keep track of the remote branch
with `git pull remote rbranch:lbranch`, but your working tree,
`.git/HEAD` pointer and index file are left intact).

You may have local modifications in the working tree files. In
other words, `git-diff` is allowed to report changes.
However, the merge uses your working tree as the working area,
and in order to prevent the merge operation from losing such
changes, it makes sure that they do not interfere with the
merge. Those complex tables in read-tree documentation define
what it means for a path to "interfere with the merge". And if
your local modifications interfere with the merge, again, it
stops before touching anything.

So in the above two "failed merge" case, you do not have to
worry about lossage of data --- you simply were not ready to do
a merge, so no merge happened at all. You may want to finish
whatever you were in the middle of doing, and retry the same
pull after you are done and ready.

When things cleanly merge, these things happen:

1. the results are updated both in the index file and in your
working tree,
2. index file is written out as a tree,
3. the tree gets committed, and
4. the `HEAD` pointer gets advanced.

Because of 2., we require that the original state of the index
file to match exactly the current `HEAD` commit; otherwise we
will write out your local changes already registered in your
index file along with the merge result, which is not good.
Because 1. involves only the paths different between your
branch and the remote branch you are pulling from during the
merge (which is typically a fraction of the whole tree), you can
have local modifications in your working tree as long as they do
not overlap with what the merge updates.

When there are conflicts, these things happen:

1. `HEAD` stays the same.

2. Cleanly merged paths are updated both in the index file and
in your working tree.

3. For conflicting paths, the index file records up to three
versions; stage1 stores the version from the common ancestor,
stage2 from `HEAD`, and stage3 from the remote branch (you
can inspect the stages with `git-ls-files -u`). The working
tree files have the result of "merge" program; i.e. 3-way
merge result with familiar conflict markers `<<< === >>>`.

4. No other changes are done. In particular, the local
modifications you had before you started merge will stay the
same and the index entries for them stay as they were,
i.e. matching `HEAD`.

After seeing a conflict, you can do two things:

* Decide not to merge. The only clean-up you need are to reset
the index file to the `HEAD` commit to reverse 2. and to clean
up working tree changes made by 2. and 3.; `git-reset` can
be used for this.

* Resolve the conflicts. `git-diff` would report only the
conflicting paths because of the above 2. and 3.. Edit the
working tree files into a desirable shape, `git-update-index`
them, to make the index file contain what the merge result
should be, and run `git-commit` to commit the result.


SEE ALSO
--------
gitlink:git-fmt-merge-msg[1], gitlink:git-pull[1]
Expand Down
8 changes: 4 additions & 4 deletions Documentation/git-mv.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ git-mv - Script used to move or rename a file, directory or symlink.

SYNOPSIS
--------
'git-mv' [-f] [-n] <source> <destination>
'git-mv' [-f] [-k] [-n] <source> ... <destination directory>
'git-mv' [-f] [-n] <source> <destination>
'git-mv' [-f] [-n] [-k] <source> ... <destination directory>

DESCRIPTION
-----------
This script is used to move or rename a file, directory or symlink.
In the first form, it renames <source>, which must exist and be either
a file, symlink or directory, to <destination>, which must not exist.
a file, symlink or directory, to <destination>.
In the second form, the last argument has to be an existing
directory; the given sources will be moved into this directory.

Expand All @@ -25,7 +25,7 @@ committed.
OPTIONS
-------
-f::
Force renaming or moving even targets exist
Force renaming or moving of a file even if the target exists
-k::
Skip move or rename actions which would lead to an error
condition. An error happens when a source is neither existing nor
Expand Down
10 changes: 6 additions & 4 deletions Documentation/git-read-tree.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,14 @@ will be in unmerged state when "git-read-tree" returns.
OPTIONS
-------
-m::
Perform a merge, not just a read.
Perform a merge, not just a read. The command will
refuse to run if your index file has unmerged entries,
indicating that you have not finished previous merge you
started.

--reset::

Same as -m except that unmerged entries will be silently ignored.
Same as -m, except that unmerged entries are discarded
instead of failing.

-u::
After a successful merge, update the files in the work
Expand All @@ -47,7 +50,6 @@ OPTIONS
trees that are not directly related to the current
working tree status into a temporary index file.


<tree-ish#>::
The id of the tree object(s) to be read/merged.

Expand Down
13 changes: 5 additions & 8 deletions Documentation/git-svnimport.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ git-svnimport - Import a SVN repository into git
SYNOPSIS
--------
'git-svnimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ] [ -d | -D ]
[ -C <GIT_repository> ] [ -i ] [ -u ] [-l limit_nr_changes]
[ -C <GIT_repository> ] [ -i ] [ -u ] [-l limit_rev]
[ -b branch_subdir ] [ -t trunk_subdir ] [ -T tag_subdir ]
[ -s start_chg ] [ -m ] [ -M regex ]
<SVN_repository_URL> [ <path> ]
Expand Down Expand Up @@ -71,14 +71,11 @@ When importing incementally, you might need to edit the .git/svn2git file.
regex. It can be used with -m to also see the default regexes.
You must escape forward slashes.

-l <max_num_changes>::
Limit the number of SVN changesets we pull before quitting.
This option is necessary because the SVN library has serious memory
leaks; the recommended value for nontrivial imports is 100.
-l <max_rev>::
Specify a maximum revision number to pull.

git-svnimport will still exit with a zero exit code. You can check
the size of the file ".git/svn2git" to determine whether to call
the importer again.
Formerly, this option controlled how many revisions to pull, due to
SVN memory leaks. (These have been worked around.)

-v::
Verbosity: let 'svnimport' report what it is doing.
Expand Down
22 changes: 21 additions & 1 deletion Documentation/git-tag.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,26 @@ SYNOPSIS
--------
'git-tag' [-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <name> [<head>]

OPTIONS
-------
-a::
Make an unsigned, annotated tag object

-s::
Make a GPG-signed tag, using the default e-mail address's key

-u <key-id>::
Make a GPG-signed tag, using the given key

-f::
Replace an existing tag with the given name (instead of failing)

-d::
Delete an existing tag with the given name

-m <msg>::
Use the given tag message (instead of prompting)

DESCRIPTION
-----------
Adds a 'tag' reference in .git/refs/tags/
Expand All @@ -23,7 +43,7 @@ creates a 'tag' object, and requires the tag message. Unless
in the tag message.

Otherwise just the SHA1 object name of the commit object is
written (i.e. an lightweight tag).
written (i.e. a lightweight tag).

A GnuPG signed tag object will be created when `-s` or `-u
<key-id>` is used. When `-u <key-id>` is not used, the
Expand Down
14 changes: 7 additions & 7 deletions Documentation/pull-fetch-param.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@
- ssh://host.xz/~/path/to/repo.git
===============================================================
+
SSH Is the default transport protocol and also supports an
scp-like syntax. Both syntaxes support username expansion,
as does the native git protocol. The following three are
identical to the last three above, respectively:
SSH Is the default transport protocol and also supports an
scp-like syntax. Both syntaxes support username expansion,
as does the native git protocol. The following three are
identical to the last three above, respectively:
+
===============================================================
- host.xz:/path/to/repo.git/
- host.xz:~user/path/to/repo.git/
- host.xz:path/to/repo.git
===============================================================
+
To sync with a local directory, use:

To sync with a local directory, use:
+
===============================================================
- /path/to/repo.git/
===============================================================
Expand Down Expand Up @@ -113,7 +113,7 @@ on the remote branch, merge it into your development branch with
`git pull . remote-B`, while you are on `my-B` branch.
The common `Pull: master:origin` mapping of a remote `master`
branch to a local `origin` branch, which is then merged to a
ocal development branch, again typically named `master`, is made
local development branch, again typically named `master`, is made
when you run `git clone` for you to follow this pattern.
+
[NOTE]
Expand Down
Loading

0 comments on commit 423325a

Please sign in to comment.