summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore6
-rw-r--r--Documentation/Makefile15
-rw-r--r--Documentation/asciidoc.conf2
-rw-r--r--Documentation/config.txt21
-rw-r--r--Documentation/git-cvsexportcommit.txt8
-rw-r--r--Documentation/git-daemon.txt13
-rw-r--r--Documentation/git-format-patch.txt16
-rw-r--r--Documentation/git-http-fetch.txt8
-rw-r--r--Documentation/git-local-fetch.txt6
-rw-r--r--Documentation/git-tar-tree.txt20
-rw-r--r--Documentation/git.txt12
-rw-r--r--Documentation/urls.txt17
-rw-r--r--INSTALL9
-rw-r--r--Makefile57
-rw-r--r--blame.c2
-rw-r--r--builtin-add.c46
-rw-r--r--builtin-apply.c145
-rw-r--r--builtin-cat-file.c3
-rw-r--r--builtin-check-ref-format.c2
-rw-r--r--builtin-commit-tree.c4
-rw-r--r--builtin-count.c2
-rw-r--r--builtin-diff-files.c4
-rw-r--r--builtin-diff-index.c4
-rw-r--r--builtin-diff-stages.c3
-rw-r--r--builtin-diff-tree.c4
-rw-r--r--builtin-diff.c14
-rw-r--r--builtin-fmt-merge-msg.c4
-rw-r--r--builtin-grep.c3
-rw-r--r--builtin-help.c6
-rw-r--r--builtin-init-db.c2
-rw-r--r--builtin-log.c71
-rw-r--r--builtin-ls-files.c3
-rw-r--r--builtin-ls-tree.c8
-rw-r--r--builtin-mailinfo.c4
-rw-r--r--builtin-mailsplit.c2
-rw-r--r--builtin-mv.c297
-rw-r--r--builtin-prune.c4
-rw-r--r--builtin-push.c2
-rw-r--r--builtin-read-tree.c862
-rw-r--r--builtin-rev-list.c4
-rw-r--r--builtin-rev-parse.c3
-rw-r--r--builtin-rm.c6
-rw-r--r--builtin-show-branch.c14
-rw-r--r--builtin-stripspace.c2
-rw-r--r--builtin-tar-tree.c30
-rw-r--r--builtin-update-index.c3
-rw-r--r--builtin-update-ref.c3
-rw-r--r--builtin-upload-tar.c2
-rw-r--r--builtin-write-tree.c4
-rw-r--r--builtin.h77
-rw-r--r--cache.h2
-rw-r--r--combine-diff.c3
-rw-r--r--config.c5
-rw-r--r--config.mak.in24
-rw-r--r--configure.ac183
-rw-r--r--contrib/emacs/Makefile4
-rw-r--r--contrib/emacs/git.el31
-rw-r--r--daemon.c2
-rw-r--r--diff.c28
-rw-r--r--diff.h11
-rw-r--r--environment.c1
-rw-r--r--fetch.c122
-rw-r--r--fetch.h17
-rwxr-xr-xgit-am.sh12
-rwxr-xr-xgit-clone.sh4
-rwxr-xr-xgit-cvsexportcommit.perl50
-rwxr-xr-xgit-cvsserver.perl89
-rwxr-xr-xgit-fetch.sh19
-rwxr-xr-xgit-instaweb.sh11
-rwxr-xr-xgit-lost-found.sh2
-rwxr-xr-xgit-merge.sh17
-rwxr-xr-xgit-mv.perl250
-rwxr-xr-xgit-pull.sh3
-rwxr-xr-xgit-quiltimport.sh2
-rwxr-xr-xgit-rebase.sh9
-rwxr-xr-xgit-reset.sh5
-rwxr-xr-xgit-resolve.sh7
-rwxr-xr-xgit-svn.perl25
-rw-r--r--git.c236
-rwxr-xr-xgitweb/gitweb.cgi166
-rw-r--r--http-fetch.c45
-rw-r--r--http-push.c2
-rw-r--r--local-fetch.c34
-rw-r--r--log-tree.c10
-rw-r--r--pack-objects.c13
-rw-r--r--read-cache.c39
-rw-r--r--refs.c5
-rw-r--r--revision.c4
-rw-r--r--revision.h4
-rw-r--r--setup.c4
-rw-r--r--sha1_file.c132
-rw-r--r--ssh-fetch.c6
-rwxr-xr-xt/t1400-update-ref.sh12
-rwxr-xr-xt/t4102-apply-rename.sh24
-rwxr-xr-xt/t4103-apply-binary.sh4
-rwxr-xr-xt/t4112-apply-renames.sh28
-rwxr-xr-xt/t4114-apply-typechange.sh105
-rwxr-xr-xt/t6004-rev-list-path-optim.sh19
-rwxr-xr-xt/t7001-mv.sh40
-rw-r--r--unpack-objects.c5
-rw-r--r--unpack-trees.c799
-rw-r--r--unpack-trees.h35
-rw-r--r--upload-pack.c2
103 files changed, 2902 insertions, 1668 deletions
diff --git a/.gitignore b/.gitignore
index 52d61f3193..fb0fa3f16a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -137,4 +137,10 @@ git-core.spec
*.[ao]
*.py[co]
config.mak
+autom4te.cache
+config.log
+config.status
+config.mak.in
+config.mak.autogen
+configure
git-blame
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 2b0efe7921..0d9ffb4ad9 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -25,10 +25,10 @@ DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
prefix?=$(HOME)
-bin=$(prefix)/bin
-mandir=$(prefix)/man
-man1=$(mandir)/man1
-man7=$(mandir)/man7
+bindir?=$(prefix)/bin
+mandir?=$(prefix)/man
+man1dir=$(mandir)/man1
+man7dir=$(mandir)/man7
# DESTDIR=
INSTALL?=install
@@ -46,15 +46,16 @@ all: html man
html: $(DOC_HTML)
+$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN7): asciidoc.conf
man: man1 man7
man1: $(DOC_MAN1)
man7: $(DOC_MAN7)
install: man
- $(INSTALL) -d -m755 $(DESTDIR)$(man1) $(DESTDIR)$(man7)
- $(INSTALL) $(DOC_MAN1) $(DESTDIR)$(man1)
- $(INSTALL) $(DOC_MAN7) $(DESTDIR)$(man7)
+ $(INSTALL) -d -m755 $(DESTDIR)$(man1dir) $(DESTDIR)$(man7dir)
+ $(INSTALL) $(DOC_MAN1) $(DESTDIR)$(man1dir)
+ $(INSTALL) $(DOC_MAN7) $(DESTDIR)$(man7dir)
#
diff --git a/Documentation/asciidoc.conf b/Documentation/asciidoc.conf
index 7ce71510de..8196d787ab 100644
--- a/Documentation/asciidoc.conf
+++ b/Documentation/asciidoc.conf
@@ -9,6 +9,8 @@
[attributes]
caret=^
+startsb=[
+endsb=]
ifdef::backend-docbook[]
[gitlink-inlinemacro]
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 0b434c1f19..465eb13e76 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -97,6 +97,12 @@ core.compression::
compression, and 1..9 are various speed/size tradeoffs, 9 being
slowest.
+core.legacyheaders::
+ A boolean which enables the legacy object header format in case
+ you want to interoperate with old clients accessing the object
+ database directly (where the "http://" and "rsync://" protocols
+ count as direct access).
+
alias.*::
Command aliases for the gitlink:git[1] command wrapper - e.g.
after defining "alias.last = cat-file commit HEAD", the invocation
@@ -193,6 +199,10 @@ merge.summary::
Whether to include summaries of merged commits in newly created
merge commit messages. False by default.
+pack.window::
+ The size of the window used by gitlink:git-pack-objects[1] when no
+ window size is given on the command line. Defaults to 10.
+
pull.octopus::
The default merge strategy to use when pulling multiple branches
at once.
@@ -208,6 +218,17 @@ showbranch.default::
The default set of branches for gitlink:git-show-branch[1].
See gitlink:git-show-branch[1].
+tar.umask::
+ By default, git-link:git-tar-tree[1] sets file and directories modes
+ to 0666 or 0777. While this is both useful and acceptable for projects
+ such as the Linux Kernel, it might be excessive for other projects.
+ With this variable, it becomes possible to tell
+ git-link:git-tar-tree[1] to apply a specific umask to the modes above.
+ The special value "user" indicates that the user's current umask will
+ be used. This should be enough for most projects, as it will lead to
+ the same permissions as git-link:git-checkout[1] would use. The default
+ value remains 0, which means world read-write.
+
user.email::
Your email address to be recorded in any newly created commits.
Can be overridden by the 'GIT_AUTHOR_EMAIL' and 'GIT_COMMITTER_EMAIL'
diff --git a/Documentation/git-cvsexportcommit.txt b/Documentation/git-cvsexportcommit.txt
index 27ac72d98f..092d0d6730 100644
--- a/Documentation/git-cvsexportcommit.txt
+++ b/Documentation/git-cvsexportcommit.txt
@@ -8,7 +8,7 @@ git-cvsexportcommit - Export a commit to a CVS checkout
SYNOPSIS
--------
-'git-cvsexportcommit' [-h] [-v] [-c] [-p] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID
+'git-cvsexportcommit' [-h] [-v] [-c] [-p] [-a] [-f] [-m msgprefix] [PARENTCOMMIT] COMMITID
DESCRIPTION
@@ -36,9 +36,13 @@ OPTIONS
commit if any hunks fail to apply or there were other problems.
-p::
- Be pedantic (paranoid) when applying patches. Invokes patch with
+ Be pedantic (paranoid) when applying patches. Invokes patch with
--fuzz=0
+-a::
+ Add authorship information. Adds Author line, and Committer (if
+ different from Author) to the message.
+
-f::
Force the merge even if the files are not up to date.
diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt
index 4c357daf6a..0f7d274eab 100644
--- a/Documentation/git-daemon.txt
+++ b/Documentation/git-daemon.txt
@@ -11,7 +11,7 @@ SYNOPSIS
'git-daemon' [--verbose] [--syslog] [--inetd | --port=n] [--export-all]
[--timeout=n] [--init-timeout=n] [--strict-paths]
[--base-path=path] [--user-path | --user-path=path]
- [directory...]
+ [--reuseaddr] [--detach] [--pid-file=file] [directory...]
DESCRIPTION
-----------
@@ -82,6 +82,17 @@ OPTIONS
--verbose::
Log details about the incoming connections and requested files.
+--reuseaddr::
+ Use SO_REUSEADDR when binding the listening socket.
+ This allows the server to restart without waiting for
+ old connections to time out.
+
+--detach::
+ Detach from the shell. Implies --syslog.
+
+--pid-file=file::
+ Save the process id in 'file'.
+
<directory>::
A directory to add to the whitelist of allowed directories. Unless
--strict-paths is specified this will also include subdirectories
diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index 4ca0014dac..67425dc035 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -9,8 +9,9 @@ git-format-patch - Prepare patches for e-mail submission
SYNOPSIS
--------
[verse]
-'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach]
+'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [--thread]
[-s | --signoff] [--diff-options] [--start-number <n>]
+ [--in-reply-to=Message-Id]
<since>[..<until>]
DESCRIPTION
@@ -35,6 +36,10 @@ they are created in the current working directory.
If -n is specified, instead of "[PATCH] Subject", the first line
is formatted as "[PATCH n/m] Subject".
+If given --thread, git-format-patch will generate In-Reply-To and
+References headers to make the second and subsequent patch mails appear
+as replies to the first mail; this also generates a Message-Id header to
+reference.
OPTIONS
-------
@@ -63,6 +68,15 @@ OPTIONS
--attach::
Create attachments instead of inlining patches.
+--thread::
+ Add In-Reply-To and References headers to make the second and
+ subsequent mails appear as replies to the first. Also generates
+ the Message-Id header to reference.
+
+--in-reply-to=Message-Id::
+ Make the first mail (or all the mails with --no-thread) appear as a
+ reply to the given Message-Id, which avoids breaking threads to
+ provide a new patch series.
CONFIGURATION
-------------
diff --git a/Documentation/git-http-fetch.txt b/Documentation/git-http-fetch.txt
index bc1a132891..3d508094af 100644
--- a/Documentation/git-http-fetch.txt
+++ b/Documentation/git-http-fetch.txt
@@ -8,7 +8,7 @@ git-http-fetch - downloads a remote git repository via HTTP
SYNOPSIS
--------
-'git-http-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] <commit> <url>
+'git-http-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [--stdin] <commit> <url>
DESCRIPTION
-----------
@@ -33,6 +33,12 @@ commit-id::
Writes the commit-id into the filename under $GIT_DIR/refs/<filename> on
the local end after the transfer is complete.