diff --git a/.gitignore b/.gitignore index 1c57d4c958..41c0b20a76 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ git-apply git-archimport git-archive git-bisect +git-bisect--helper git-blame git-branch git-bundle @@ -35,6 +36,8 @@ git-diff git-diff-files git-diff-index git-diff-tree +git-difftool +git-difftool--helper git-describe git-fast-export git-fast-import @@ -78,6 +81,7 @@ git-merge-recursive git-merge-resolve git-merge-subtree git-mergetool +git-mergetool--lib git-mktag git-mktree git-name-rev diff --git a/Documentation/RelNotes-1.6.2.4.txt b/Documentation/RelNotes-1.6.2.4.txt new file mode 100644 index 0000000000..21bf4f3a3d --- /dev/null +++ b/Documentation/RelNotes-1.6.2.4.txt @@ -0,0 +1,31 @@ +GIT v1.6.2.4 Release Notes +========================== + +Fixes since v1.6.2.3 +-------------------- + +* The configuration parser had a buffer overflow while parsing an overlong + value. + +* "git-checkout " did not update the index entry at + the named path; it now does. + +* "git init" segfaulted when given an overlong template location via + the --template= option. + +* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when + deciding to descend into a subdirectory but they did not match the + individual paths correctly. This caused pathspecs "abc/d ab" to match + "abc/0" ("abc/d" made them decide to descend into the directory "abc/", + and then "ab" incorrectly matched "abc/0" when it shouldn't). + +* "git-merge-recursive" was broken when a submodule entry was involved in + a criss-cross merge situation. + +Many small documentation updates are included as well. + +--- +exec >/var/tmp/1 +echo O=$(git describe maint) +O=v1.6.2.3-21-ga51609a +git shortlog --no-merges $O..maint diff --git a/Documentation/RelNotes-1.6.3.txt b/Documentation/RelNotes-1.6.3.txt index 839498c38a..ca38decb37 100644 --- a/Documentation/RelNotes-1.6.3.txt +++ b/Documentation/RelNotes-1.6.3.txt @@ -47,6 +47,8 @@ Updates since v1.6.2 (usability, bells and whistles) +* Boolean configuration variable yes/no can be written as on/off. + * rsync:/path/to/repo can be used to run git over rsync for local repositories. It may not be useful in practice; meant primarily for testing. @@ -63,6 +65,9 @@ Updates since v1.6.2 * "--oneline" is a synonym for "--pretty=oneline --abbrev-commit". +* "--graph" to the "git log" family can draw the commit ancestry graph + in colors. + * If you realize that you botched the patch when you are editing hunks with the 'edit' action in git-add -i/-p, you can abort the editor to tell git not to apply it. @@ -75,8 +80,16 @@ Updates since v1.6.2 1.6.2, but the initial implementation did not teach this to a few commands. Now the syntax works with "branch -m @{-1} newname". +* "git-add -p" now supports "q"uit action. + * git-archive learned --output= option. +* git-archive takes attributes from the tree being archived; strictly + speaking, this is an incompatible behaviour change, but is a good one. + Use --worktree-attributes option to allow it to read attributes from + the work tree as before (deprecated git-tar tree command always reads + attributes from the work tree). + * git-bisect shows not just the number of remaining commits whose goodness is unknown, but also shows the estimated number of remaining rounds. @@ -93,6 +106,9 @@ Updates since v1.6.2 * git-clone runs post-checkout hook when run without --no-checkout. +* git-difftool is now part of the officially supported command, primarily + maintained by David Aguilar. + * git-fast-export choked when seeing a tag that does not point at commit. * git-for-each-ref learned a new "upstream" token. @@ -156,26 +172,18 @@ release, unless otherwise noted. Here are fixes that this release has, but have not been backported to v1.6.2.X series. +* "git-apply" rejected a patch that swaps two files (i.e. renames A to B + and B to A at the same time). May need to be backported by cherry + picking d8c81df and then 7fac0ee). + * The initial checkout did not read the attributes from the .gitattribute file that is being checked out. -* "git-checkout " did not update the index entry at - the named path; it now does. - * git-gc spent excessive amount of time to decide if an object appears in a locally existing pack (if needed, backport by merging 69e020a). -* "git-ls-tree" and "git-diff-tree" used a pathspec correctly when - deciding to descend into a subdirectory but they did not match the - individual paths correctly. This caused pathspecs "abc/d ab" to match - "abc/0" ("abc/d" made them decide to descend into the directory "abc/", - and then "ab" incorrectly matched "abc/0" when it shouldn't). - -* "git-merge-recursive" was broken when a submodule entry was involved in - a criss-cross merge situation. - --- exec >/var/tmp/1 -O=v1.6.2.3-497-g54a4749 +O=v1.6.3-rc0-74-g9824a38 echo O=$(git describe master) git shortlog --no-merges $O..master ^maint diff --git a/Documentation/config.txt b/Documentation/config.txt index f3ebd2f9a0..5ffd14141a 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -61,7 +61,7 @@ Internal whitespace within a variable value is retained verbatim. The values following the equals sign in variable assign are all either a string, an integer, or a boolean. Boolean values may be given as yes/no, -0/1 or true/false. Case is not significant in boolean values, when +0/1, true/false or on/off. Case is not significant in boolean values, when converting value to the canonical form using '--bool' type specifier; 'git-config' will ensure that the output is "true" or "false". @@ -667,6 +667,27 @@ diff.suppressBlankEmpty:: A boolean to inhibit the standard behavior of printing a space before each empty output line. Defaults to false. +diff.tool:: + Controls which diff tool is used. `diff.tool` overrides + `merge.tool` when used by linkgit:git-difftool[1] and has + the same valid values as `merge.tool` minus "tortoisemerge" + and plus "kompare". + +difftool..path:: + Override the path for the given tool. This is useful in case + your tool is not in the PATH. + +difftool..cmd:: + Specify the command to invoke the specified diff tool. + The specified command is evaluated in shell with the following + variables available: 'LOCAL' is set to the name of the temporary + file containing the contents of the diff pre-image and 'REMOTE' + is set to the name of the temporary file containing the contents + of the diff post-image. + +difftool.prompt:: + Prompt before each invocation of the diff tool. + diff.wordRegex:: A POSIX Extended Regular Expression used to determine what is a "word" when performing word-by-word difference calculations. Character diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt index ce71838b9e..d938b42289 100644 --- a/Documentation/git-add.txt +++ b/Documentation/git-add.txt @@ -245,8 +245,11 @@ patch:: y - stage this hunk n - do not stage this hunk + q - quit, do not stage this hunk nor any of the remaining ones a - stage this and all the remaining hunks in the file d - do not stage this hunk nor any of the remaining hunks in the file + g - select a hunk to go to + / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk diff --git a/Documentation/git-archive.txt b/Documentation/git-archive.txt index c1adf59497..bc132c87e1 100644 --- a/Documentation/git-archive.txt +++ b/Documentation/git-archive.txt @@ -10,7 +10,7 @@ SYNOPSIS -------- [verse] 'git archive' --format= [--list] [--prefix=/] [] - [--output=] + [--output=] [--worktree-attributes] [--remote= [--exec=]] [path...] @@ -51,6 +51,9 @@ OPTIONS --output=:: Write the archive to instead of stdout. +--worktree-attributes:: + Look for attributes in .gitattributes in working directory too. + :: This can be any options that the archiver backend understands. See next section. diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index ba3dea6840..cbd4275871 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -112,19 +112,22 @@ OPTIONS Display the full sha1s in the output listing rather than abbreviating them. --track:: - When creating a new branch, set up the configuration so that 'git-pull' - will automatically retrieve data from the start point, which must be - a branch. Use this if you always pull from the same upstream branch - into the new branch, and if you do not want to use "git pull - " explicitly. This behavior is the default - when the start point is a remote branch. Set the - branch.autosetupmerge configuration variable to `false` if you want - 'git-checkout' and 'git-branch' to always behave as if '--no-track' were - given. Set it to `always` if you want this behavior when the - start-point is either a local or remote branch. + When creating a new branch, set up configuration to mark the + start-point branch as "upstream" from the new branch. This + configuration will tell git to show the relationship between the + two branches in `git status` and `git branch -v`. Furthermore, + it directs `git pull` without arguments to pull from the + upstream when the new branch is checked out. ++ +This behavior is the default when the start point is a remote branch. +Set the branch.autosetupmerge configuration variable to `false` if you +want `git checkout` and `git branch` to always behave as if '--no-track' +were given. Set it to `always` if you want this behavior when the +start-point is either a local or remote branch. --no-track:: - Ignore the branch.autosetupmerge configuration variable. + Do not set up "upstream" configuration, even if the + branch.autosetupmerge configuration variable is true. --contains :: Only list branches which contain the specified commit. diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index 223ea9caef..ad4b31e892 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -8,22 +8,22 @@ git-checkout - Checkout a branch or paths to the working tree SYNOPSIS -------- [verse] -'git checkout' [-q] [-f] [-t | --track | --no-track] [-b [-l]] [-m] [] +'git checkout' [-q] [-f] [-m] [] +'git checkout' [-q] [-f] [-m] [-b ] [] 'git checkout' [-f|--ours|--theirs|-m|--conflict=