diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/RelNotes-1.6.1.3.txt | 32 | ||||
-rw-r--r-- | Documentation/RelNotes-1.6.1.4.txt | 19 | ||||
-rw-r--r-- | Documentation/RelNotes-1.6.2.txt | 69 | ||||
-rw-r--r-- | Documentation/SubmittingPatches | 27 | ||||
-rw-r--r-- | Documentation/config.txt | 11 | ||||
-rw-r--r-- | Documentation/git-bundle.txt | 14 | ||||
-rw-r--r-- | Documentation/git-filter-branch.txt | 46 | ||||
-rw-r--r-- | Documentation/git-gc.txt | 10 | ||||
-rw-r--r-- | Documentation/git-imap-send.txt | 14 | ||||
-rw-r--r-- | Documentation/git-rebase.txt | 1 | ||||
-rw-r--r-- | Documentation/git-svn.txt | 8 | ||||
-rw-r--r-- | Documentation/git.txt | 4 | ||||
-rw-r--r-- | Documentation/gitk.txt | 3 |
13 files changed, 231 insertions, 27 deletions
diff --git a/Documentation/RelNotes-1.6.1.3.txt b/Documentation/RelNotes-1.6.1.3.txt new file mode 100644 index 0000000000..6f0bde156a --- /dev/null +++ b/Documentation/RelNotes-1.6.1.3.txt @@ -0,0 +1,32 @@ +GIT v1.6.1.3 Release Notes +========================== + +Fixes since v1.6.1.2 +-------------------- + +* "git diff --binary | git apply" pipeline did not work well when + a binary blob is changed to a symbolic link. + +* Some combinations of -b/-w/--ignore-space-at-eol to "git diff" did + not work as expected. + +* "git grep" did not pass the -I (ignore binary) option when + calling out an external grep program. + +* "git log" and friends include HEAD to the set of starting points + when --all is given. This makes a difference when you are not + on any branch. + +* "git mv" to move an untracked file to overwrite a tracked + contents misbehaved. + +* "git merge -s octopus" with many potential merge bases did not + work correctly. + +* RPM binary package installed the html manpages in a wrong place. + +Also includes minor documentation fixes and updates. + + +-- +git shortlog --no-merges v1.6.1.2-33-gc789350.. diff --git a/Documentation/RelNotes-1.6.1.4.txt b/Documentation/RelNotes-1.6.1.4.txt new file mode 100644 index 0000000000..a9f1a6b8b5 --- /dev/null +++ b/Documentation/RelNotes-1.6.1.4.txt @@ -0,0 +1,19 @@ +GIT v1.6.1.4 Release Notes +========================== + +Fixes since v1.6.1.3 +-------------------- + +* "git fast-export" produced wrong output with some parents missing from + commits, when the history is clock-skewed. + +* "git fast-import" sometimes failed to read back objects it just wrote + out and aborted, because it failed to flush stale cached data. + +* "git repack" did not error out when necessary object was missing in the + repository. + +Also includes minor documentation fixes and updates. + +-- +git shortlog --no-merges v1.6.1.3.. diff --git a/Documentation/RelNotes-1.6.2.txt b/Documentation/RelNotes-1.6.2.txt index 3151c85d88..6ed31595ba 100644 --- a/Documentation/RelNotes-1.6.2.txt +++ b/Documentation/RelNotes-1.6.2.txt @@ -1,6 +1,20 @@ GIT v1.6.2 Release Notes ======================== +With the next major release, "git push" into a branch that is +currently checked out will be refused by default. You can choose +what should happen upon such a push by setting the configuration +variable receive.denyCurrentBranch in the receiving repository. + +To ease the transition plan, the receiving repository of such a +push running this release will issue a big warning when the +configuration variable is missing. Please refer to: + + http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007 + +for more details on the transition plan. + + Updates since v1.6.1 -------------------- @@ -11,7 +25,9 @@ Updates since v1.6.1 * gitweb updates, including a new patch view and RSS/Atom feed improvements. -(portability) +* (contrib/emacs) git.el now has commands for checking out a branch, + creating a branch, cherry-picking and reverting commits; vc-git.el + is not shipped with git anymore (it is part of official Emacs). (performance) @@ -29,12 +45,22 @@ Updates since v1.6.1 * "git add -p" learned 'g'oto action to jump directly to a hunk. +* "git add -p" learned to find a hunk with given text with '/'. + +* "git add -p" optionally can be told to work with just the command letter + without Enter. + * when "git am" stops upon a patch that does not apply, it shows the title of the offending patch. * "git am --directory=<dir>" and "git am --reject" passes these options to underlying "git apply". +* "git am" learned --ignore-date option. + +* "git blame" aligns author names better when they are spelled in + non US-ASCII encoding. + * "git clone" now makes its best effort when cloning from an empty repository to set up configuration variables to refer to the remote repository. @@ -48,6 +74,9 @@ Updates since v1.6.1 the commit log message it serves via gitcvs.commitmsgannotation configuration. +* "git cvsserver" learned to handle 'noop' command some CVS clients seem + to expect to work. + * "git diff" learned a new option --inter-hunk-context to coalesce close hunks together and show context between them. @@ -56,20 +85,13 @@ Updates since v1.6.1 * "git diff" learned --patience to run "patience diff" algorithm. -* Some combinations of -b/-w/--ignore-space-at-eol to "git diff" did - not work as expected. - * "git filter-branch" learned --prune-empty option that discards commits that do not change the contents. -* "git grep -w" and "git grep" for fixed strings have been optimized. - -* "git log" and friends include HEAD to the set of starting points - when --all is given. This makes a difference when you are not on - any branch. +* "git fsck" now checks loose objects in alternate object stores, instead + of misreporting them as missing. -* "git ls-tree" learned --full-tree option that shows the path in full - regardless of where in the work tree hierarchy the command was started. +* "git grep -w" and "git grep" for fixed strings have been optimized. * "git mergetool" learned -y(--no-prompt) option to disable prompting. @@ -80,7 +102,8 @@ Updates since v1.6.1 "git checkout" switches branches, taking the local changes while switching to another commit. -(internal) +* "git tag" learned --contains that works the same way as the same option + from "git branch". Fixes since v1.6.1 @@ -89,18 +112,34 @@ Fixes since v1.6.1 All of the fixes in v1.6.1.X maintenance series are included in this release, unless otherwise noted. +Here are fixes that this release has, but have not been backported to +v1.6.1.X series. + * "git-add sub/file" when sub is a submodule incorrectly added the path to the superproject. -* git-bundle did not exclude annotated tags even when a range given from the - command line wanted to. +* "git bundle" did not exclude annotated tags even when a range given + from the command line wanted to. + +* "git filter-branch" unnecessarily refused to work when you had + checked out a different commit from what is recorded in the superproject + index in a submodule. + +* "git filter-branch" incorrectly tried to update a nonexistent work tree + at the end when it is run in a bare repository. + +* "git mergetool" used to ignore autocrlf and other attributes + based content rewriting. * branch switching and merges had a silly bug that did not validate the correct directory when making sure an existing subdirectory is clean. +* "git -p cmd" when cmd is not a built-in one left the display in funny state + when killed in the middle. + -- exec >/var/tmp/1 -O=v1.6.1.2-252-g8c95d3c +O=v1.6.1.3-371-gc19923a echo O=$(git describe master) git shortlog --no-merges $O..master ^maint diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index ba07c8c571..9b559adefc 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches @@ -376,9 +376,36 @@ Thunderbird (A Large Angry SCM) +By default, Thunderbird will both wrap emails as well as flag them as +being 'format=flowed', both of which will make the resulting email unusable +by git. + Here are some hints on how to successfully submit patches inline using Thunderbird. +There are two different approaches. One approach is to configure +Thunderbird to not mangle patches. The second approach is to use +an external editor to keep Thunderbird from mangling the patches. + +Approach #1 (configuration): + +This recipe is current as of Thunderbird 2.0.0.19. Three steps: + 1. Configure your mail server composition as plain text + Edit...Account Settings...Composition & Addressing, + uncheck 'Compose Messages in HTML'. + 2. Configure your general composition window to not wrap + Edit..Preferences..Composition, wrap plain text messages at 0 + 3. Disable the use of format=flowed + Edit..Preferences..Advanced..Config Editor. Search for: + mailnews.send_plaintext_flowed + toggle it to make sure it is set to 'false'. + +After that is done, you should be able to compose email as you +otherwise would (cut + paste, git-format-patch | git-imap-send, etc), +and the patches should not be mangled. + +Approach #2 (external editor): + This recipe appears to work with the current [*1*] Thunderbird from Suse. The following Thunderbird extensions are needed: diff --git a/Documentation/config.txt b/Documentation/config.txt index 6dd57bd52c..f5152c5038 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -556,8 +556,8 @@ color.interactive:: color.interactive.<slot>:: Use customized color for 'git-add --interactive' - output. `<slot>` may be `prompt`, `header`, or `help`, for - three distinct types of normal output from interactive + output. `<slot>` may be `prompt`, `header`, `help` or `error`, for + four distinct types of normal output from interactive programs. The values of these variables may be specified as in color.branch.<slot>. @@ -1000,6 +1000,13 @@ instaweb.port:: The port number to bind the gitweb httpd to. See linkgit:git-instaweb[1]. +interactive.singlekey:: + In interactive programs, allow the user to provide one-letter + input with a single key (i.e., without hitting enter). + Currently this is used only by the `\--patch` mode of + linkgit:git-add[1]. Note that this setting is silently + ignored if portable keystroke input is not available. + log.date:: Set default date-time mode for the log command. Setting log.date value is similar to using 'git-log'\'s --date option. The value is one of the diff --git a/Documentation/git-bundle.txt b/Documentation/git-bundle.txt index ea0f6a0f3a..57590b1480 100644 --- a/Documentation/git-bundle.txt +++ b/Documentation/git-bundle.txt @@ -107,17 +107,17 @@ incremental bundle, ---------------- machineA$ cd R1 -machineA$ git bundle create file.bdl master +machineA$ git bundle create file.bundle master machineA$ git tag -f lastR2bundle master ---------------- -Then you sneakernet file.bdl to the target machine B. Because you don't +Then you sneakernet file.bundle to the target machine B. Because you don't have to have any object to extract objects from such a bundle, not only you can fetch/pull from a bundle, you can clone from it as if it was a remote repository. ---------------- -machineB$ git clone /home/me/tmp/file.bdl R2 +machineB$ git clone /home/me/tmp/file.bundle R2 ---------------- This will define a remote called "origin" in the resulting repository that @@ -126,12 +126,12 @@ have an entry like this: ------------------------ [remote "origin"] - url = /home/me/tmp/file.bdl + url = /home/me/tmp/file.bundle fetch = refs/heads/*:refs/remotes/origin/* ------------------------ You can fetch/pull to update the resulting mine.git repository after -replacing the bundle you store at /home/me/tmp/file.bdl with incremental +replacing the bundle you store at /home/me/tmp/file.bundle with incremental updates from here on. After working more in the original repository, you can create an @@ -139,11 +139,11 @@ incremental bundle to update the other: ---------------- machineA$ cd R1 -machineA$ git bundle create file.bdl lastR2bundle..master +machineA$ git bundle create file.bundle lastR2bundle..master machineA$ git tag -f lastR2bundle master ---------------- -and sneakernet it to the other machine to replace /home/me/tmp/file.bdl, +and sneakernet it to the other machine to replace /home/me/tmp/file.bundle, and pull from it. ---------------- diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt index 451950bab6..7ffe03f427 100644 --- a/Documentation/git-filter-branch.txt +++ b/Documentation/git-filter-branch.txt @@ -212,6 +212,11 @@ git filter-branch --index-filter 'git rm --cached filename' HEAD Now, you will get the rewritten history saved in HEAD. +As with using `rm filename`, `git rm --cached filename` will fail +if the file is absent from the tree of a commit. If it is not important +whether the file is already absent from the tree, you can use +`git rm --cached --ignore-unmatch filename` instead. + To rewrite the repository to look as if `foodir/` had been its project root, and discard all other history: @@ -334,6 +339,47 @@ git filter-branch --index-filter \ --------------------------------------------------------------- + +Checklist for Shrinking a Repository +------------------------------------ + +git-filter-branch is often used to get rid of a subset of files, +usually with some combination of `\--index-filter` and +`\--subdirectory-filter`. People expect the resulting repository to +be smaller than the original, but you need a few more steps to +actually make it smaller, because git tries hard not to lose your +objects until you tell it to. First make sure that: + +* You really removed all variants of a filename, if a blob was moved + over its lifetime. `git log \--name-only \--follow \--all \-- + filename` can help you find renames. + +* You really filtered all refs: use `\--tag-name-filter cat \-- + \--all` when calling git-filter-branch. + +Then there are two ways to get a smaller repository. A safer way is +to clone, that keeps your original intact. + +* Clone it with `git clone +++file:///path/to/repo+++`. The clone + will not have the removed objects. See linkgit:git-clone[1]. (Note + that cloning with a plain path just hardlinks everything!) + +If you really don't want to clone it, for whatever reasons, check the +following points instead (in this order). This is a very destructive +approach, so *make a backup* or go back to cloning it. You have been +warned. + +* Remove the original refs backed up by git-filter-branch: say `git + for-each-ref \--format="%(refname)" refs/original/ | xargs -n 1 git + update-ref -d`. + +* Expire all reflogs with `git reflog expire \--expire=now \--all`. + +* Garbage collect all unreferenced objects with `git gc \--prune=now` + (or if your git-gc is not new enough to support arguments to + `\--prune`, use `git repack -ad; git prune` instead). + + Author ------ Written by Petr "Pasky" Baudis <pasky@suse.cz>, diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt index 7086eea74a..b292e9843a 100644 --- a/Documentation/git-gc.txt +++ b/Documentation/git-gc.txt @@ -8,7 +8,7 @@ git-gc - Cleanup unnecessary files and optimize the local repository SYNOPSIS -------- -'git gc' [--aggressive] [--auto] [--quiet] +'git gc' [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune] DESCRIPTION ----------- @@ -59,6 +59,14 @@ are consolidated into a single pack by using the `-A` option of 'git-repack'. Setting `gc.autopacklimit` to 0 disables automatic consolidation of packs. +--prune=<date>:: + Prune loose objects older than date (default is 2 weeks ago, + overrideable by the config variable `gc.pruneExpire`). This + option is on by default. + +--no-prune:: + Do not prune any loose objects. + --quiet:: Suppress all progress reports. diff --git a/Documentation/git-imap-send.txt b/Documentation/git-imap-send.txt index bd49a0aee8..1685f04efe 100644 --- a/Documentation/git-imap-send.txt +++ b/Documentation/git-imap-send.txt @@ -98,6 +98,20 @@ Using direct mode with SSL: .......................... +CAUTION +------- +It is still your responsibility to make sure that the email message +sent by your email program meets the standards of your project. +Many projects do not like patches to be attached. Some mail +agents will transform patches (e.g. wrap lines, send them as +format=flowed) in ways that make them fail. You will get angry +flames ridiculing you if you don't check this. + +Thunderbird in particular is known to be problematic. Thunderbird +users may wish to visit this web page for more information: + http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email + + BUGS ---- Doesn't handle lines starting with "From " in the message body. diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index 3d6d429e5e..30487de48f 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -246,6 +246,7 @@ OPTIONS --whitespace=<nowarn|warn|error|error-all|strip>:: This flag is passed to the 'git-apply' program (see linkgit:git-apply[1]) that applies the patch. + Incompatible with the --interactive option. -i:: --interactive:: diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt index 7b654f7928..3d456545d7 100644 --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@ -499,6 +499,14 @@ 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. +svn.brokenSymlinkWorkaround:: +This disables potentially expensive checks to workaround broken symlinks +checked into SVN by broken clients. Set this option to "false" if you +track a SVN repository with many empty blobs that are not symlinks. +This option may be changed while "git-svn" is running and take effect on +the next revision fetched. If unset, git-svn assumes this option to be +"true". + -- Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps diff --git a/Documentation/git.txt b/Documentation/git.txt index cd527c6252..0c7bba3fa9 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,11 @@ unreleased) version of git, that is available from 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v1.6.1.1/git.html[documentation for release 1.6.1.1] +* link:v1.6.1.3/git.html[documentation for release 1.6.1.3] * release notes for + link:RelNotes-1.6.1.3.txt[1.6.1.3], + link:RelNotes-1.6.1.2.txt[1.6.1.2], link:RelNotes-1.6.1.1.txt[1.6.1.1], link:RelNotes-1.6.1.txt[1.6.1]. diff --git a/Documentation/gitk.txt b/Documentation/gitk.txt index 4673a75a98..bd005bc5c8 100644 --- a/Documentation/gitk.txt +++ b/Documentation/gitk.txt @@ -47,7 +47,8 @@ frequently used options. After an attempt to merge stops with conflicts, show the commits on the history between two branches (i.e. the HEAD and the MERGE_HEAD) - that modify the conflicted files. + that modify the conflicted files and do not exist on all the heads + being merged. --argscmd=<command>:: Command to be run each time gitk has to determine the list of |