summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/Makefile4
-rw-r--r--Documentation/RelNotes-1.5.3.7.txt45
-rw-r--r--Documentation/RelNotes-1.5.4.txt215
-rwxr-xr-xDocumentation/cmd-list.perl139
-rw-r--r--Documentation/git-branch.txt4
-rw-r--r--Documentation/git-config.txt16
-rw-r--r--Documentation/git-tag.txt4
-rw-r--r--Documentation/git.txt1
-rw-r--r--Documentation/user-manual.txt2
-rw-r--r--Makefile26
-rw-r--r--builtin-branch.c57
-rw-r--r--builtin-config.c55
-rw-r--r--builtin-fetch--tool.c12
-rw-r--r--builtin-fetch.c19
-rw-r--r--builtin-revert.c33
-rw-r--r--builtin-tag.c167
-rw-r--r--cache.h7
-rw-r--r--color.c32
-rw-r--r--command-list.txt128
-rw-r--r--configure.ac2
-rw-r--r--diffcore-break.c12
-rw-r--r--diffcore-rename.c38
-rw-r--r--dir.c116
-rw-r--r--dir.h32
-rwxr-xr-xgenerate-cmdlist.sh31
-rwxr-xr-xgit-am.sh4
-rwxr-xr-xgit-cvsimport.perl53
-rwxr-xr-xgit-rebase--interactive.sh5
-rwxr-xr-xgit-stash.sh16
-rwxr-xr-xgit-svn.perl115
-rw-r--r--gitk-git/Makefile29
-rw-r--r--[-rwxr-xr-x]gitk-git/gitk (renamed from gitk)0
-rw-r--r--gitweb/README215
-rwxr-xr-xgitweb/gitweb.perl2
-rw-r--r--help.c1
-rw-r--r--parse-options.c17
-rw-r--r--parse-options.h3
-rw-r--r--perl/Git.pm31
-rw-r--r--receive-pack.c4
-rwxr-xr-xt/t3201-branch-contains.sh58
-rwxr-xr-xt/t4000-diff-format.sh2
-rwxr-xr-xt/t4001-diff-rename.sh2
-rwxr-xr-xt/t4008-diff-break-rewrite.sh8
-rwxr-xr-xt/t4023-diff-rename-typechange.sh86
-rw-r--r--t/t4100/t-apply-1.patch2
-rw-r--r--t/t4100/t-apply-2.patch2
-rw-r--r--t/t4100/t-apply-5.patch2
-rw-r--r--t/t4100/t-apply-6.patch2
-rwxr-xr-xt/t5516-fetch-push.sh45
-rwxr-xr-xt/t7003-filter-branch.sh2
-rwxr-xr-xt/t7004-tag.sh24
-rwxr-xr-xt/t9600-cvsimport.sh134
-rw-r--r--tree-walk.h7
-rw-r--r--unpack-trees.c6
-rw-r--r--wt-status.c1
55 files changed, 1480 insertions, 595 deletions
diff --git a/Documentation/Makefile b/Documentation/Makefile
index d88664177d..de11ee0192 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -122,9 +122,9 @@ cmds_txt = cmds-ancillaryinterrogators.txt \
$(cmds_txt): cmd-list.made
-cmd-list.made: cmd-list.perl $(MAN1_TXT)
+cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
$(RM) $@
- perl ./cmd-list.perl
+ perl ./cmd-list.perl ../command-list.txt
date >$@
git.7 git.html: git.txt
diff --git a/Documentation/RelNotes-1.5.3.7.txt b/Documentation/RelNotes-1.5.3.7.txt
new file mode 100644
index 0000000000..2f690616c8
--- /dev/null
+++ b/Documentation/RelNotes-1.5.3.7.txt
@@ -0,0 +1,45 @@
+GIT v1.5.3.7 Release Notes
+==========================
+
+Fixes since v1.5.3.6
+--------------------
+
+ * git-send-email added 8-bit contents to the payload without
+ marking it as 8-bit in a CTE header.
+
+ * "git-bundle create a.bndl HEAD" dereferenced the symref and
+ did not record the ref as 'HEAD'; this prevented a bundle
+ from being used as a normal source of git-clone.
+
+ * The code to reject nonsense command line of the form
+ "git-commit -a paths..." and "git-commit --interactive
+ paths..." were broken.
+
+ * Adding a signature that is not ASCII-only to an original
+ commit that is ASCII-only would make the result non-ASCII.
+ "git-format-patch -s" did not mark such a message correctly
+ with MIME encoding header.
+
+ * git-add sometimes did not mark the resulting index entry
+ stat-clean. This affected only cases when adding the
+ contents with the same length as the previously staged
+ contents, and the previous staging made the index entry
+ "racily clean".
+
+ * git-commit did not honor GIT_INDEX_FILE the user had in the
+ environment.
+
+ * When checking out a revision, git-checkout did not report where the
+ updated HEAD is if you happened to have a file called HEAD in the
+ work tree.
+
+ * "git-rev-list --objects" mishandled a tree that points at a
+ submodule.
+
+ * "git cvsimport" was not ready for packed refs that "git gc" can
+ produce and gave incorrect results.
+
+ * Many scripted Porcelains were confused when you happened to have a
+ file called "HEAD" in your work tree.
+
+Also it contains updates to the user manual and documentation.
diff --git a/Documentation/RelNotes-1.5.4.txt b/Documentation/RelNotes-1.5.4.txt
index c9c537649f..44f5043ce7 100644
--- a/Documentation/RelNotes-1.5.4.txt
+++ b/Documentation/RelNotes-1.5.4.txt
@@ -1,129 +1,195 @@
GIT v1.5.4 Release Notes
========================
+Removal
+-------
+
+ * "git svnimport" was removed in favor of "git svn".
+
+
+Deprecation notices
+-------------------
+
+ * Next feature release of git (this change is scheduled for v1.5.5 but
+ it could slip) will by default install dashed form of commands
+ (e.g. "git-commit") outside of users' normal $PATH, and will install
+ only selected commands ("git" itself, and "gitk") in $PATH. This
+ implies:
+
+ - Using dashed form of git commands (e.g. "git-commit") from the
+ command line has been informally deprecated since early 2006, but
+ now it officially is, and will be removed in the future. Use
+ dashless form (e.g. "git commit") instead.
+
+ - Using dashed from from your scripts, without first prepending the
+ return value from "git --exec-path" to the scripts' PATH, has been
+ informally deprecated since early 2006, but now it officially is.
+
+ - Use of dashed form with "PATH=$(git --exec-path):$PATH; export
+ PATH" early in your script is not deprecated with this change.
+
+ Users are strongly encouraged to adjust their habits and scripts now
+ to prepare for this.
+
+ * The post-receive hook was introduced in March 2007 to supersede
+ post-update hook, primarily to overcome the command line length
+ limitation of the latter. Use of post-update hook will be deprecated
+ in future versions of git, perhaps in v1.5.5.
+
+ * "git lost-found" was deprecated in favor of "git fsck"'s --lost-found
+ option, and will be removed in the future.
+
+ * "git peek-remote" is deprecated, as "git ls-remote" was written in C
+ and works for all transports, and will be removed in the future.
+
+
Updates since v1.5.3
--------------------
* Comes with much improved gitk.
- * Comes with git-gui 0.9.0 with i18n.
+ * Comes with "git gui" 0.9.0 with i18n.
+
+ * progress display from many commands are a lot nicer to the eye.
+ Transfer commands show throughput data.
+
+ * many commands that pay attention to per-directory .gitignore now do
+ so lazily, which makes the usual case go much faster.
- * git-lost-found was deprecated in favor of git-fsck's --lost-found
- option.
+ * Output processing for '--pretty=format:<user format>' has been
+ optimized.
- * git-peek-remote is deprecated, as git-ls-remote was written in C and
- works for all transports.
+ * Rename detection of diff family, while detecting exact matches, has
+ been greatly optimized.
- * "progress display" from many commands are a lot nicer to the
- eye. Transfer commands show throughput data.
+ * Rename detection of diff family tries to make more naturally looking
+ pairing. Earlier if more than one identical rename sources were
+ found in the preimage, they were picked pretty much at random.
- * git-reset is now built-in and its output can be squelched with -q.
+ * "git reset" is now built-in and its output can be squelched with -q.
- * git-send-email can optionally talk over ssmtp and use SMTP-AUTH.
+ * "git send-email" can optionally talk over ssmtp and use SMTP-AUTH.
- * git-rebase learned --whitespace option.
+ * "git rebase" learned --whitespace option.
- * In git-rebase, when you decide not to replay a particular change
- after the command stopped with a conflict, you can say "git-rebase
+ * In "git rebase", when you decide not to replay a particular change
+ after the command stopped with a conflict, you can say "git rebase
--skip" without first running "git reset --hard", as the command now
runs it for you.
- * git-remote knows --mirror mode.
+ * "git merge" can call the "post-merge" hook.
- * git-merge can call the "post-merge" hook.
+ * "git pack-objects" can optionally run deltification with multiple
+ threads.
- * git-pack-objects can optionally run deltification with multiple threads.
-
- * git-archive can optionally substitute keywords in files marked with
+ * "git archive" can optionally substitute keywords in files marked with
export-subst attribute.
- * git-for-each-ref learned %(xxxdate:<dateformat>) syntax to
- show the various date fields in different formats.
+ * "git cherry-pick" made a misguided attempt to repeat the original
+ command line in the generated log message, when told to cherry-pick a
+ commit by naming a tag that points at it. It does not anymore.
- * git-gc --auto is a low-impact way to automatically run a
- variant of git-repack that does not lose unreferenced objects
- (read: safer than the usual one) after the user accumulates
- too many loose objects.
+ * "git for-each-ref" learned %(xxxdate:<dateformat>) syntax to show the
+ various date fields in different formats.
- * You need to explicitly set clean.requireForce to "false" to allow
- git-clean without -f to do any damage (lack of the configuration
- variable used to mean "do not require", but we now use the safer
- default).
+ * "git gc --auto" is a low-impact way to automatically run a variant of
+ "git repack" that does not lose unreferenced objects (read: safer
+ than the usual one) after the user accumulates too many loose
+ objects.
- * git-clean has been rewritten in C.
+ * You need to explicitly set clean.requireForce to "false" to allow
+ "git clean" without -f to do any damage (lack of the configuration
+ variable used to mean "do not require -f option to lose untracked
+ files", but we now use the safer default).
- * git-push has been rewritten in C.
+ * "git clean" has been rewritten in C.
- * git-push learned --dry-run option to show what would happen
- if a push is run.
+ * "git push" learned --dry-run option to show what would happen if a
+ push is run.
- * git-push does not update a tracking ref on the pushing side when the
+ * "git push" does not update a tracking ref on the local side when the
remote refused to update the corresponding ref.
- * git-push learned --mirror option. This is to push the local refs
+ * "git push" learned --mirror option. This is to push the local refs
one-to-one to the remote, and deletes refs from the remote that do
not exist anymore in the repository on the pushing side.
- * git-remote learned "rm" subcommand.
+ * "git remote" knows --mirror mode. This is to set up configuration to
+ push into a remote repository to store local branch heads to the same
+ branch on the remote side, and remove branch heads locally removed
+ from local repository at the same time. Suitable for pushing into a
+ back-up repository.
- * git-rebase --interactive mode can now work on detached HEAD.
+ * "git remote" learned "rm" subcommand.
- * git-cvsserver can be run via git-shell.
+ * "git rebase --interactive" mode can now work on detached HEAD.
- * git-am and git-rebase are far less verbose.
+ * "git cvsserver" can be run via "git shell".
- * git-pull learned to pass --[no-]ff option to underlying git-merge.
+ * "git am" and "git rebase" are far less verbose.
+
+ * "git pull" learned to pass --[no-]ff option to underlying "git
+ merge".
* Various Perforce importer updates.
- * "git log" learned --early-output option to help interactive
- GUI implementations.
+ * "git log" learned --early-output option to help interactive GUI
+ implementations.
+
+ * "git bisect" learned "skip" action to mark untestable commits.
+
+ * "git format-patch" learned "format.numbered" configuration variable
+ to automatically turn --numbered option on when more than one commits
+ are formatted.
- * git-svnimport was removed in favor of git-svn.
+ * "git ls-files" learned "--exclude-standard" to use the canned set of
+ exclude files.
- * git-bisect learned "skip" action to mark untestable commits.
+ * "git rebase" now detaches head during its operation, so after a
+ successful "git rebase" operation, the reflog entry branch@{1} for
+ the current branch points at the commit before the rebase was
+ started.
- * git-format-patch learned "format.numbered" configuration variable
- to automatically turn --numbered option on when more than one
- commits are formatted.
+ * "git tag -a -f existing" begins the editor session using the existing
+ annotation message.
- * git-ls-files learned "--exclude-standard" to use the canned
- set of exclude files.
+ * "git tag -m one -m bar" (multiple -m options) behaves similarly to
+ "git commit"; the parameters to -m options are formatted as separate
+ paragraphs.
- * git-rebase now detaches head during its operation, so after a
- successful "git rebase" operation, the reflog entry branch@{1}
- for the current branch points at the commit before the rebase
- was started.
+ * "git cvsexportcommit" learned -w option to specify and switch to the
+ CVS working directory.
- * "git-tag -a -f existing" begins the editor session using the
- existing annotation message.
+ * "git checkout" from a subdirectory learned to use "../path" to allow
+ checking out a path outside the current directory without cd'ing up.
- * "git cvsexportcommit" learned -w option to specify and switch
- to the CVS working directory.
+ * "git send-email --dry-run" shows full headers for easier diagnosis.
- * "git checkout" from a subdirectory learned to use "../path"
- to allow checking out a path outside the current directory
- without cd'ing up.
+ * "git merge-ours" is now built-in.
- * "git send-email --dry-run" shows full headers for easier
- diagnosis.
+ * "git svn" learned "info" and "show-externals" subcommands.
- * "git merge-ours" is built-in.
+ * "git svn" run from a subdirectory failed to read settings from the
+ .git/config.
- * "git svn" learned "info" subcommand.
+ * "git svn" learned --use-log-author option, which picks up more
+ descriptive name from From: and Signed-off-by: lines in the commit
+ message.
- * "git status" from a subdirectory now shows relative paths
- which makes copy-and-pasting for git-checkout/git-add/git-rm
- easier.
+ * "git status" from a subdirectory now shows relative paths which makes
+ copy-and-pasting for git-checkout/git-add/git-rm easier.
- * Output processing for '--pretty=format:<user format>' has
- been optimized.
+ * "git checkout" from and to detached HEAD leaves a bit more
+ information in the reflog.
- * Rename detection diff family, while detecting exact matches,
- has been greatly optimized.
+ * "git branch" learned --contains option, to show only branches that
+ can reach a given commit.
* Example update and post-receive hooks have been improved.
+ * "git push" can remove a corrupt ref at the remote site with the usual
+ ":ref" refspec.
+
* In addition there are quite a few internal clean-ups. Notably
- many fork/exec have been replaced with run-command API,
@@ -140,15 +206,14 @@ Fixes since v1.5.3
All of the fixes in v1.5.3 maintenance series are included in
this release, unless otherwise noted.
- * git-svn talking with the SVN over http will correctly quote branch
- and project names.
+These fixes are only in v1.5.4 and not backported to v1.5.3 maintenance
+series.
- * "git rev-list --objects A..B" choked when the lower boundary
- of the range involved a subproject. This fix is also queued
- for 'maint' (but not in there yet).
+ * "git svn" talking with the SVN over http will correctly quote branch
+ and project names.
--
exec >/var/tmp/1
-O=v1.5.3.6-950-gda03a58
+O=v1.5.3.7-966-g6bda21b
echo O=`git describe refs/heads/master`
git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
diff --git a/Documentation/cmd-list.perl b/Documentation/cmd-list.perl
index b709551726..c2d55cdb5e 100755
--- a/Documentation/cmd-list.perl
+++ b/Documentation/cmd-list.perl
@@ -28,8 +28,8 @@ sub format_one {
}
if (my ($verify_name, $text) = ($description =~ /^($name) - (.*)/)) {
print $out "gitlink:$name\[1\]::\n\t";
- if ($attr) {
- print $out "($attr) ";
+ if ($attr =~ / deprecated /) {
+ print $out "(deprecated) ";
}
print $out "$text.\n\n";
}
@@ -39,12 +39,13 @@ sub format_one {
}
my %cmds = ();
-while (<DATA>) {
+for (sort <>) {
next if /^#/;
chomp;
my ($name, $cat, $attr) = /^(\S+)\s+(.*?)(?:\s+(.*))?$/;
- push @{$cmds{$cat}}, [$name, $attr];
+ $attr = '' unless defined $attr;
+ push @{$cmds{$cat}}, [$name, " $attr "];
}
for my $cat (qw(ancillaryinterrogators
@@ -71,133 +72,3 @@ for my $cat (qw(ancillaryinterrogators
rename "$out+", "$out";
}
}
-
-# The following list is sorted with "sort -d" to make it easier
-# to find entry in the resulting git.html manual page.
-__DATA__
-git-add mainporcelain
-git-am mainporcelain
-git-annotate ancillaryinterrogators
-git-apply plumbingmanipulators
-git-archimport foreignscminterface
-git-archive mainporcelain
-git-bisect mainporcelain
-git-blame ancillaryinterrogators
-git-branch mainporcelain
-git-bundle mainporcelain
-git-cat-file plumbinginterrogators
-git-check-attr purehelpers
-git-checkout mainporcelain
-git-checkout-index plumbingmanipulators
-git-check-ref-format purehelpers
-git-cherry ancillaryinterrogators
-git-cherry-pick mainporcelain
-git-citool mainporcelain
-git-clean mainporcelain
-git-clone mainporcelain
-git-commit mainporcelain
-git-commit-tree plumbingmanipulators
-git-config ancillarymanipulators
-git-count-objects ancillaryinterrogators
-git-cvsexportcommit foreignscminterface
-git-cvsimport foreignscminterface
-git-cvsserver foreignscminterface
-git-daemon synchingrepositories
-git-describe mainporcelain
-git-diff mainporcelain
-git-diff-files plumbinginterrogators
-git-diff-index plumbinginterrogators
-git-diff-tree plumbinginterrogators
-git-fast-import ancillarymanipulators
-git-fetch mainporcelain
-git-fetch-pack synchingrepositories
-git-filter-branch ancillarymanipulators
-git-fmt-merge-msg purehelpers
-git-for-each-ref plumbinginterrogators
-git-format-patch mainporcelain
-git-fsck ancillaryinterrogators
-git-gc mainporcelain
-git-get-tar-commit-id ancillaryinterrogators
-git-grep mainporcelain
-git-gui mainporcelain
-git-hash-object plumbingmanipulators
-git-http-fetch synchelpers
-git-http-push synchelpers
-git-imap-send foreignscminterface
-git-index-pack plumbingmanipulators
-git-init mainporcelain
-git-instaweb ancillaryinterrogators
-gitk mainporcelain
-git-log mainporcelain
-git-lost-found ancillarymanipulators deprecated
-git-ls-files plumbinginterrogators
-git-ls-remote plumbinginterrogators
-git-ls-tree plumbinginterrogators
-git-mailinfo purehelpers
-git-mailsplit purehelpers
-git-merge mainporcelain
-git-merge-base plumbinginterrogators
-git-merge-file plumbingmanipulators
-git-merge-index plumbingmanipulators
-git-merge-one-file purehelpers
-git-mergetool ancillarymanipulators
-git-merge-tree ancillaryinterrogators
-git-mktag plumbingmanipulators
-git-mktree plumbingmanipulators
-git-mv mainporcelain
-git-name-rev plumbinginterrogators
-git-pack-objects plumbingmanipulators
-git-pack-redundant plumbinginterrogators
-git-pack-refs ancillarymanipulators
-git-parse-remote synchelpers
-git-patch-id purehelpers
-git-peek-remote purehelpers deprecated
-git-prune ancillarymanipulators
-git-prune-packed plumbingmanipulators
-git-pull mainporcelain
-git-push mainporcelain
-git-quiltimport foreignscminterface
-git-read-tree plumbingmanipulators
-git-rebase mainporcelain
-git-receive-pack synchelpers
-git-reflog ancillarymanipulators
-git-relink ancillarymanipulators
-git-remote ancillarymanipulators
-git-repack ancillarymanipulators
-git-request-pull foreignscminterface
-git-rerere ancillaryinterrogators
-git-reset mainporcelain
-git-revert mainporcelain
-git-rev-list plumbinginterrogators
-git-rev-parse ancillaryinterrogators
-git-rm mainporcelain
-git-runstatus ancillaryinterrogators
-git-send-email foreignscminterface
-git-send-pack synchingrepositories
-git-shell synchelpers
-git-shortlog mainporcelain
-git-show mainporcelain
-git-show-branch ancillaryinterrogators
-git-show-index plumbinginterrogators
-git-show-ref plumbinginterrogators
-git-sh-setup purehelpers
-git-stash mainporcelain
-git-status mainporcelain
-git-stripspace purehelpers
-git-submodule mainporcelain
-git-svn foreignscminterface
-git-symbolic-ref plumbingmanipulators
-git-tag mainporcelain
-git-tar-tree plumbinginterrogators deprecated
-git-unpack-file plumbinginterrogators
-git-unpack-objects plumbingmanipulators
-git-update-index plumbingmanipulators
-git-update-ref plumbingmanipulators
-git-update-server-info synchingrepositories
-git-upload-archive synchelpers
-git-upload-pack synchelpers
-git-var plumbinginterrogators
-git-verify-pack plumbinginterrogators
-git-verify-tag ancillaryinterrogators
-git-whatchanged ancillaryinterrogators
-git-write-tree plumbingmanipulators
diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index f87b6968b4..d3f21c7975 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -10,6 +10,7 @@ SYNOPSIS
[verse]
'git-branch' [--color | --no-color] [-r | -a]
[-v [--abbrev=<length> | --no-abbrev]]
+ [--contains <commit>]
'git-branch' [--track | --no-track] [-l] [-f] <branchname> [<start-point>]
'git-branch' (-m | -M) [<oldbranch>] <newbranch>
'git-branch' (-d | -D) [-r] <branchname>...