summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/SubmittingPatches5
-rw-r--r--Documentation/config.txt19
-rw-r--r--Documentation/git-commit.txt25
-rw-r--r--Documentation/git-fast-export.txt20
-rw-r--r--Documentation/git-push.txt3
-rw-r--r--Documentation/git-svn.txt3
-rw-r--r--Documentation/git-update-ref.txt2
-rw-r--r--Documentation/gitattributes.txt6
-rw-r--r--Documentation/githooks.txt3
-rw-r--r--Documentation/technical/api-builtin.txt15
-rw-r--r--Documentation/technical/api-parse-options.txt204
-rw-r--r--Makefile4
-rw-r--r--archive-tar.c2
-rw-r--r--archive-zip.c2
-rw-r--r--archive.c13
-rw-r--r--archive.h1
-rw-r--r--builtin-clone.c5
-rw-r--r--builtin-commit.c21
-rw-r--r--builtin-fast-export.c99
-rw-r--r--builtin-fsck.c2
-rw-r--r--builtin-merge-recursive.c13
-rw-r--r--builtin-pack-objects.c24
-rw-r--r--builtin-update-ref.c36
-rw-r--r--builtin-verify-pack.c63
-rw-r--r--cache.h7
-rw-r--r--combine-diff.c7
-rw-r--r--config.c2
-rwxr-xr-xcontrib/completion/git-completion.bash4
-rw-r--r--contrib/thunderbird-patch-inline/README20
-rwxr-xr-xcontrib/thunderbird-patch-inline/appp.sh55
-rw-r--r--diff.c3
-rw-r--r--environment.c7
-rw-r--r--git-compat-util.h167
-rwxr-xr-xgit-merge.sh2
-rwxr-xr-xgit-svn.perl6
-rwxr-xr-xgitweb/gitweb.perl212
-rw-r--r--http-push.c2
-rw-r--r--http-walker.c2
-rw-r--r--pack-check.c110
-rw-r--r--pack-revindex.c6
-rw-r--r--pack-revindex.h1
-rw-r--r--pack.h4
-rw-r--r--parse-options.c23
-rw-r--r--path.c17
-rw-r--r--read-cache.c16
-rw-r--r--setup.c3
-rw-r--r--sha1_file.c133
-rw-r--r--t/.gitattributes1
-rw-r--r--t/README32
-rwxr-xr-xt/t0040-parse-options.sh116
-rwxr-xr-xt/t1400-update-ref.sh8
-rwxr-xr-xt/t1502-rev-parse-parseopt.sh4
-rwxr-xr-xt/t3800-mktag.sh4
-rwxr-xr-xt/t3903-stash.sh2
-rwxr-xr-xt/t4014-format-patch.sh6
-rwxr-xr-xt/t4015-diff-whitespace.sh8
-rwxr-xr-xt/t4016-diff-quote.sh14
-rwxr-xr-xt/t4109-apply-multifrag.sh132
-rw-r--r--t/t4109/patch1.patch28
-rw-r--r--t/t4109/patch2.patch30
-rw-r--r--t/t4109/patch3.patch31
-rw-r--r--t/t4109/patch4.patch30
-rwxr-xr-xt/t4119-apply-config.sh4
-rwxr-xr-xt/t4150-am.sh2
-rwxr-xr-xt/t5000-tar-tree.sh9
-rwxr-xr-xt/t5302-pack-index.sh14
-rwxr-xr-xt/t5303-pack-corruption-resilience.sh194
-rwxr-xr-xt/t5540-http-push.sh2
-rwxr-xr-xt/t5601-clone.sh22
-rwxr-xr-xt/t7502-commit.sh6
-rwxr-xr-xt/t7502-status.sh98
-rwxr-xr-xt/t9123-git-svn-rebuild-with-rewriteroot.sh32
-rwxr-xr-xt/t9301-fast-export.sh23
-rwxr-xr-xt/t9700-perl-git.sh39
-rwxr-xr-xt/t9700/test.pl100
-rw-r--r--t/test-lib.sh60
-rwxr-xr-x[-rw-r--r--]templates/hooks--applypatch-msg.sample (renamed from templates/hooks--applypatch-msg)2
-rwxr-xr-x[-rw-r--r--]templates/hooks--commit-msg.sample (renamed from templates/hooks--commit-msg)2
-rwxr-xr-x[-rw-r--r--]templates/hooks--post-commit.sample (renamed from templates/hooks--post-commit)2
-rw-r--r--templates/hooks--post-receive16
-rwxr-xr-xtemplates/hooks--post-receive.sample15
-rwxr-xr-x[-rw-r--r--]templates/hooks--post-update.sample (renamed from templates/hooks--post-update)2
-rwxr-xr-x[-rw-r--r--]templates/hooks--pre-applypatch.sample (renamed from templates/hooks--pre-applypatch)2
-rwxr-xr-x[-rw-r--r--]templates/hooks--pre-commit.sample (renamed from templates/hooks--pre-commit)2
-rwxr-xr-x[-rw-r--r--]templates/hooks--pre-rebase.sample (renamed from templates/hooks--pre-rebase)27
-rwxr-xr-x[-rw-r--r--]templates/hooks--prepare-commit-msg.sample (renamed from templates/hooks--prepare-commit-msg)2
-rwxr-xr-x[-rw-r--r--]templates/hooks--update.sample (renamed from templates/hooks--update)2
-rw-r--r--test-parse-options.c39
-rw-r--r--wrapper.c160
-rw-r--r--wt-status.c21
-rw-r--r--wt-status.h7
91 files changed, 2039 insertions, 712 deletions
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 0e155c936c..b1164753e1 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -419,6 +419,11 @@ settings but I haven't tried, yet.
mail.identity.default.compose_html => false
mail.identity.id?.compose_html => false
+(Lukas Sandström)
+
+There is a script in contrib/thunderbird-patch-inline which can help
+you include patches with Thunderbird in an easy way. To use it, do the
+steps above and then use the script as the external editor.
Gnus
----
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 5331b450ea..1e09a57c8c 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1013,6 +1013,25 @@ status.relativePaths::
relative to the repository root (this was the default for git
prior to v1.5.4).
+status.showUntrackedFiles::
+ By default, linkgit:git-status[1] and linkgit:git-commit[1] show
+ files which are not currently tracked by Git. Directories which
+ contain only untracked files, are shown with the directory name
+ only. Showing untracked files means that Git needs to lstat() all
+ all the files in the whole repository, which might be slow on some
+ systems. So, this variable controls how the commands displays
+ the untracked files. Possible values are:
++
+--
+ - 'no' - Show no untracked files
+ - 'normal' - Shows untracked files and directories
+ - 'all' - Shows also individual files in untracked directories.
+--
++
+If this variable is not specified, it defaults to 'normal'.
+This variable can be overridden with the -u|--untracked-files option
+of linkgit:git-status[1] and linkgit:git-commit[1].
+
tar.umask::
This variable can be used to restrict the permission bits of
tar archive entries. The default is 0002, which turns off the
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 7e8b4ff72c..d0fe192fb3 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -8,7 +8,7 @@ git-commit - Record changes to the repository
SYNOPSIS
--------
[verse]
-'git-commit' [-a | --interactive] [-s] [-v] [-u] [--amend]
+'git-commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend]
[(-c | -C) <commit>] [-F <file> | -m <msg>]
[--allow-empty] [--no-verify] [-e] [--author=<author>]
[--cleanup=<mode>] [--] [[-i | -o ]<file>...]
@@ -162,13 +162,22 @@ but can be used to amend a merge commit.
the last commit without committing changes that have
already been staged.
--u::
---untracked-files::
- Show all untracked files, also those in uninteresting
- directories, in the "Untracked files:" section of commit
- message template. Without this option only its name and
- a trailing slash are displayed for each untracked
- directory.
+-u[<mode>]::
+--untracked-files[=<mode>]::
+ Show untracked files (Default: 'all').
++
+The mode parameter is optional, and is used to specify
+the handling of untracked files. The possible options are:
++
+--
+ - 'no' - Show no untracked files
+ - 'normal' - Shows untracked files and directories
+ - 'all' - Also shows individual files in untracked directories.
+--
++
+See linkgit:git-config[1] for configuration variable
+used to change the default for when the option is not
+specified.
-v::
--verbose::
diff --git a/Documentation/git-fast-export.txt b/Documentation/git-fast-export.txt
index 332346cc5d..277a547a02 100644
--- a/Documentation/git-fast-export.txt
+++ b/Documentation/git-fast-export.txt
@@ -36,6 +36,26 @@ when encountering a signed tag. With 'strip', the tags will be made
unsigned, with 'verbatim', they will be silently exported
and with 'warn', they will be exported, but you will see a warning.
+--export-marks=<file>::
+ Dumps the internal marks table to <file> when complete.
+ Marks are written one per line as `:markid SHA-1`. Only marks
+ for revisions are dumped; marks for blobs are ignored.
+ Backends can use this file to validate imports after they
+ have been completed, or to save the marks table across
+ incremental runs. As <file> is only opened and truncated
+ at completion, the same path can also be safely given to
+ \--import-marks.
+
+--import-marks=<file>::
+ Before processing any input, load the marks specified in
+ <file>. The input file must exist, must be readable, and
+ must use the same format as produced by \--export-marks.
++
+Any commits that have already been marked will not be exported again.
+If the backend uses a similar \--import-marks file, this allows for
+incremental bidirectional exporting of the repository by keeping the
+marks the same across runs.
+
EXAMPLES
--------
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 89e0049bce..f3d5d883a7 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -67,7 +67,8 @@ nor in any Push line of the corresponding remotes file---see below).
--mirror::
Instead of naming each ref to push, specifies that all
- refs under `$GIT_DIR/refs/heads/` and `$GIT_DIR/refs/tags/`
+ refs under `$GIT_DIR/refs/` (which includes but is not
+ limited to `refs/heads/`, `refs/remotes/`, and `refs/tags/`)
be mirrored to the remote repository. Newly created local
refs will be pushed to the remote end, locally updated refs
will be force updated on the remote end, and deleted refs
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index f4cbd2f212..97bed54fbd 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -448,6 +448,8 @@ svn-remote.<name>.rewriteRoot::
the repository with a public http:// or svn:// URL in the
metadata so users of it will see the public URL.
+--
+
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
options all affect the metadata generated and used by git-svn; they
*must* be set in the configuration file before any history is imported
@@ -456,7 +458,6 @@ and these settings should never be changed once they are set.
Additionally, only one of these four options can be used per-svn-remote
section because they affect the 'git-svn-id:' metadata line.
---
BASIC EXAMPLES
--------------
diff --git a/Documentation/git-update-ref.txt b/Documentation/git-update-ref.txt
index 7f7e3d197b..bae2c8b7ec 100644
--- a/Documentation/git-update-ref.txt
+++ b/Documentation/git-update-ref.txt
@@ -7,7 +7,7 @@ git-update-ref - Update the object name stored in a ref safely
SYNOPSIS
--------
-'git-update-ref' [-m <reason>] (-d <ref> <oldvalue> | [--no-deref] <ref> <newvalue> [<oldvalue>])
+'git-update-ref' [-m <reason>] (-d <ref> [<oldvalue>] | [--no-deref] <ref> <newvalue> [<oldvalue>])
DESCRIPTION
-----------
diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
index 471754eb12..6e67990f64 100644
--- a/Documentation/gitattributes.txt
+++ b/Documentation/gitattributes.txt
@@ -502,6 +502,12 @@ frotz unspecified
Creating an archive
~~~~~~~~~~~~~~~~~~~
+`export-ignore`
+^^^^^^^^^^^^^^^
+
+Files and directories with the attribute `export-ignore` won't be added to
+archive files.
+
`export-subst`
^^^^^^^^^^^^^^
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 4f06ae0ed4..262a4f1626 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -17,7 +17,8 @@ Hooks are little scripts you can place in `$GIT_DIR/hooks`
directory to trigger action at certain points. When
`git-init` is run, a handful example hooks are copied in the
`hooks` directory of the new repository, but by default they are
-all disabled. To enable a hook, make it executable with `chmod +x`.
+all disabled. To enable a hook, rename it by removing its `.sample`
+suffix.
This document describes the currently defined hooks.
diff --git a/Documentation/technical/api-builtin.txt b/Documentation/technical/api-builtin.txt
index 52cdb4c520..7ede1e64e5 100644
--- a/Documentation/technical/api-builtin.txt
+++ b/Documentation/technical/api-builtin.txt
@@ -4,7 +4,7 @@ builtin API
Adding a new built-in
---------------------
-There are 4 things to do to add a bulit-in command implementation to
+There are 4 things to do to add a built-in command implementation to
git:
. Define the implementation of the built-in command `foo` with
@@ -18,8 +18,8 @@ git:
defined in `git.c`. The entry should look like:
{ "foo", cmd_foo, <options> },
-
- where options is the bitwise-or of:
++
+where options is the bitwise-or of:
`RUN_SETUP`::
@@ -33,6 +33,12 @@ git:
If the standard output is connected to a tty, spawn a pager and
feed our output to it.
+`NEED_WORK_TREE`::
+
+ Make sure there is a work tree, i.e. the command cannot act
+ on bare repositories.
+ This makes only sense when `RUN_SETUP` is also set.
+
. Add `builtin-foo.o` to `BUILTIN_OBJS` in `Makefile`.
Additionally, if `foo` is a new command, there are 3 more things to do:
@@ -41,8 +47,7 @@ Additionally, if `foo` is a new command, there are 3 more things to do:
. Write documentation in `Documentation/git-foo.txt`.
-. Add an entry for `git-foo` to the list at the end of
- `Documentation/cmd-list.perl`.
+. Add an entry for `git-foo` to `command-list.txt`.
How a built-in is called
diff --git a/Documentation/technical/api-parse-options.txt b/Documentation/technical/api-parse-options.txt
index b7cda94f54..539863b1f9 100644
--- a/Documentation/technical/api-parse-options.txt
+++ b/Documentation/technical/api-parse-options.txt
@@ -1,6 +1,206 @@
parse-options API
=================
-Talk about <parse-options.h>
+The parse-options API is used to parse and massage options in git
+and to provide a usage help with consistent look.
-(Pierre)
+Basics
+------
+
+The argument vector `argv[]` may usually contain mandatory or optional
+'non-option arguments', e.g. a filename or a branch, and 'options'.
+Options are optional arguments that start with a dash and
+that all