diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/Makefile | 4 | ||||
-rw-r--r-- | Documentation/RelNotes-1.5.3.7.txt | 45 | ||||
-rw-r--r-- | Documentation/RelNotes-1.5.4.txt | 215 | ||||
-rwxr-xr-x | Documentation/cmd-list.perl | 139 | ||||
-rw-r--r-- | Documentation/git-branch.txt | 4 | ||||
-rw-r--r-- | Documentation/git-config.txt | 16 | ||||
-rw-r--r-- | Documentation/git-tag.txt | 4 | ||||
-rw-r--r-- | Documentation/git.txt | 1 | ||||
-rw-r--r-- | Documentation/user-manual.txt | 2 |
9 files changed, 217 insertions, 213 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>... @@ -20,6 +21,9 @@ With no arguments given a list of existing branches will be shown, the current branch will be highlighted with an asterisk. Option `-r` causes the remote-tracking branches to be listed, and option `-a` shows both. +With `--contains <commit>`, shows only the branches that +contains the named commit (in other words, the branches whose +tip commits are descendant of the named commit). In its second form, a new branch named <branchname> will be created. It will start out with a head equal to the one given as <start-point>. diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt index a592b61e2f..7640450787 100644 --- a/Documentation/git-config.txt +++ b/Documentation/git-config.txt @@ -20,6 +20,7 @@ SYNOPSIS 'git-config' [<file-option>] --rename-section old_name new_name 'git-config' [<file-option>] --remove-section name 'git-config' [<file-option>] [-z|--null] -l | --list +'git-config' [<file-option>] --get-color name [default] DESCRIPTION ----------- @@ -134,6 +135,12 @@ See also <<FILES>>. output without getting confused e.g. by values that contain line breaks. +--get-color name default:: + + Find the color configured for `name` (e.g. `color.diff.new`) and + output it as the ANSI color escape sequence to the standard + output. The optional `default` parameter is used instead, if + there is no color configured for `name`. [[FILES]] FILES @@ -292,6 +299,15 @@ To add a new proxy, without altering any of the existing ones, use % git config core.gitproxy '"proxy-command" for example.com' ------------ +An example to use customized color from the configuration in your +script: + +------------ +#!/bin/sh +WS=$(git config --get-color color.diff.whitespace "blue reverse") +RESET=$(git config --get-color "" "reset") +echo "${WS}your whitespace color or blue reverse${RESET}" +------------ include::config.txt[] diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt index 10d3e3fa95..784ec6d4c2 100644 --- a/Documentation/git-tag.txt +++ b/Documentation/git-tag.txt @@ -65,7 +65,9 @@ OPTIONS Typing "git tag" without arguments, also lists all tags. -m <msg>:: - Use the given tag message (instead of prompting) + Use the given tag message (instead of prompting). + If multiple `-m` options are given, there values are + concatenated as separate paragraphs. -F <file>:: Take the tag message from the given file. Use '-' to diff --git a/Documentation/git.txt b/Documentation/git.txt index 546020100a..9ff4659d8c 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -46,6 +46,7 @@ Documentation for older releases are available here: * link:v1.5.3/git.html[documentation for release 1.5.3] * release notes for + link:RelNotes-1.5.3.7.txt[1.5.3.7], link:RelNotes-1.5.3.6.txt[1.5.3.6], link:RelNotes-1.5.3.5.txt[1.5.3.5], link:RelNotes-1.5.3.4.txt[1.5.3.4], diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index 0aaed10c76..93a47b439b 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -3707,7 +3707,7 @@ should use the `--remove` and `--add` flags respectively. NOTE! A `--remove` flag does 'not' mean that subsequent filenames will necessarily be removed: if the files still exist in your directory structure, the index will be updated with their new status, not -removed. The only thing `--remove` means is that update-cache will be +removed. The only thing `--remove` means is that update-index will be considering a removed file to be a valid thing, and if the file really does not exist any more, it will update the index accordingly. |