From: Junio C Hamano Date: Fri, 1 Nov 2013 14:38:26 +0000 (-0700) Subject: Merge branch 'jl/submodule-mv' X-Git-Tag: v1.8.5-rc1~20 X-Git-Url: https://www.git.lorimer.id.au/gitweb.git/diff_plain/9dd860c8562917dbbdd595d5f9997b6856dbeb0a?hp=04c1ee576accad4d0a04f168b86992aba0a6727d Merge branch 'jl/submodule-mv' Moving a regular file in a repository with a .gitmodules file was producing a warning 'Could not find section in .gitmodules where path='. * jl/submodule-mv: mv: Fix spurious warning when moving a file in presence of submodules --- diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines index e5ca3b75d3..a600e35c81 100644 --- a/Documentation/CodingGuidelines +++ b/Documentation/CodingGuidelines @@ -145,6 +145,14 @@ For C programs: they were describing changes. Often splitting a function into two makes the intention of the code much clearer. + - Multi-line comments include their delimiters on separate lines from + the text. E.g. + + /* + * A very long + * multi-line comment. + */ + - Double negation is often harder to understand than no negation at all. diff --git a/Documentation/RelNotes/1.8.4.2.txt b/Documentation/RelNotes/1.8.4.2.txt new file mode 100644 index 0000000000..9adccb1efb --- /dev/null +++ b/Documentation/RelNotes/1.8.4.2.txt @@ -0,0 +1,77 @@ +Git v1.8.4.2 Release Notes +======================== + +Fixes since v1.8.4.1 +-------------------- + + * "git clone" gave some progress messages to the standard output, not + to the standard error, and did not allow suppressing them with the + "--no-progress" option. + + * "format-patch --from=" forgot to omit unnecessary in-body + from line, i.e. when is the same as the real author. + + * "git shortlog" used to choke and die when there is a malformed + commit (e.g. missing authors); it now simply ignore such a commit + and keeps going. + + * "git merge-recursive" did not parse its "--diff-algorithm=" command + line option correctly. + + * "git branch --track" had a minor regression in v1.8.3.2 and later + that made it impossible to base your local work on anything but a + local branch of the upstream repository you are tracking from. + + * "git ls-files -k" needs to crawl only the part of the working tree + that may overlap the paths in the index to find killed files, but + shared code with the logic to find all the untracked files, which + made it unnecessarily inefficient. + + * When there is no sufficient overlap between old and new history + during a "git fetch" into a shallow repository, objects that the + sending side knows the receiving end has were unnecessarily sent. + + * When running "fetch -q", a long silence while the sender side + computes the set of objects to send can be mistaken by proxies as + dropped connection. The server side has been taught to send a + small empty messages to keep the connection alive. + + * When the webserver responds with "405 Method Not Allowed", "git + http-backend" should tell the client what methods are allowed with + the "Allow" header. + + * "git cvsserver" computed the permission mode bits incorrectly for + executable files. + + * The implementation of "add -i" has a crippling code to work around + ActiveState Perl limitation but it by mistake also triggered on Git + for Windows where MSYS perl is used. + + * We made sure that we notice the user-supplied GIT_DIR is actually a + gitfile, but did not do the same when the default ".git" is a + gitfile. + + * When an object is not found after checking the packfiles and then + loose object directory, read_sha1_file() re-checks the packfiles to + prevent racing with a concurrent repacker; teach the same logic to + has_sha1_file(). + + * "git commit --author=$name", when $name is not in the canonical + "A. U. Thor " format, looks for a matching name + from existing history, but did not consult mailmap to grab the + preferred author name. + + * The commit object names in the insn sheet that was prepared at the + beginning of "rebase -i" session can become ambiguous as the + rebasing progresses and the repository gains more commits. Make + sure the internal record is kept with full 40-hex object names. + + * "git rebase --preserve-merges" internally used the merge machinery + and as a side effect, left merge summary message in the log, but + when rebasing, there should not be a need for merge summary. + + * "git rebase -i" forgot that the comment character can be + configurable while reading its insn sheet. + +Also contains a handful of trivial code clean-ups, documentation +updates, updates to the test suite, etc. diff --git a/Documentation/RelNotes/1.8.5.txt b/Documentation/RelNotes/1.8.5.txt index 49c037b601..d940c033bd 100644 --- a/Documentation/RelNotes/1.8.5.txt +++ b/Documentation/RelNotes/1.8.5.txt @@ -42,6 +42,11 @@ release, will keep ignoring removals, but the users who rely on this behaviour are encouraged to start using "git add --ignore-removal " now before 2.0 is released. +The default prefix for "git svn" will change in Git 2.0. For a long +time, "git svn" created its remote-tracking branches directly under +refs/remotes, but it will place them under refs/remotes/origin/ unless +it is told otherwise with its --prefix option. + Updates since v1.8.4 -------------------- @@ -71,6 +76,24 @@ Foreign interfaces, subsystems and ports. UI, Workflows & Features + * "git grep" and "git show" pays attention to "--textconv" option + when these commands are told to operate on blob objects (e.g. "git + grep -e pattern HEAD:Makefile"). + + * "git replace" helper no longer allows an object to be replaced with + another object of a different type to avoid confusion (you can + still manually craft such replacement using "git update-ref", as an + escape hatch). + + * "git status" no longer prints dirty status information for + submodules for which submodule.$name.ignore is set to "all". + + * "git rebase -i" honours core.abbrev when preparing the insn sheet + for editing. + + * "git status" during a cherry-pick shows what original commit is + being picked. + * Instead of typing four capital letters "HEAD", you can say "@" now, e.g. "git log @". @@ -182,6 +205,12 @@ UI, Workflows & Features Performance, Internal Implementation, etc. + * The HTTP transport will try to use TCP keepalive when able. + + * "git repack" is now written in C. + + * Build procedure for MSVC has been updated. + * If a build-time fallback is set to "cat" instead of "less", we should apply the same "no subprocess or pipe" optimization as we apply to user-supplied GIT_PAGER=cat. @@ -215,6 +244,60 @@ Unless otherwise noted, all the fixes since v1.8.4 in the maintenance track are contained in this release (see release notes to them for details). + * Coloring around octopus merges in "log --graph" output was screwy. + (merge 339c17b hn/log-graph-color-octopus later to maint). + + * "git checkout topic", when there is not yet a local "topic" branch + but there is a unique remote-tracking branch for a remote "topic" + branch, pretended as if "git checkout -t -b topic remote/$r/topic" + (for that unique remote $r) was run. This hack however was not + implemented for "git checkout topic --". + (merge bca3969 mm/checkout-auto-track-fix later to maint). + + * One long-standing flaw in the pack transfer protocol used by "git + clone" was that there was no way to tell the other end which branch + "HEAD" points at, and the receiving end needed to guess. A new + capability has been defined in the pack protocol to convey this + information so that cloning from a repository with more than one + branches pointing at the same commit where the HEAD is at now + reliably sets the initial branch in the resulting repository. + (merge 360a326 jc/upload-pack-send-symref later to maint). + + * We did not handle cases where http transport gets redirected during + the authorization request (e.g. from http:// to https://). + (merge 70900ed jk/http-auth-redirects later to maint). + + * Bash prompting code to deal with an SVN remote as an upstream + were coded in a way not supported by older Bash versions (3.x). + (merge 52ec889 sg/prompt-svn-remote-fix later to maint). + + * The fall-back parsing of commit objects with broken author or + committer lines were less robust than ideal in picking up the + timestamps. + (merge 03818a4 jk/split-broken-ident later to maint). + + * "git rev-list --objects ^v1.0^ v1.0" gave v1.0 tag itself in the + output, but "git rev-list --objects v1.0^..v1.0" did not. + (merge 895c5ba jc/revision-range-unpeel later to maint). + + * "git clone" gave some progress messages to the standard output, not + to the standard error, and did not allow suppressing them with the + --no-progress option. + (merge 643f918 jk/clone-progress-to-stderr later to maint). + + * "format-patch --from=" forgot to omit unnecessary in-body + from line, i.e. when is the same as the real author. + (merge 662cc30 jk/format-patch-from later to maint). + + * "git shortlog" used to choke and die when there is a malformed + commit (e.g. missing authors); it now simply ignore such a commit + and keeps going. + (merge cd4f09e jk/shortlog-tolerate-broken-commit later to maint). + + * "git merge-recursive" did not parse its "--diff-algorithm=" command + line option correctly. + (merge 6562928 jk/diff-algo later to maint). + * When running "fetch -q", a long silence while the sender side computes the set of objects to send can be mistaken by proxies as dropped connection. The server side has been taught to send a diff --git a/Documentation/config.txt b/Documentation/config.txt index aaae06fc5a..ab26963d61 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -724,6 +724,8 @@ branch..remote:: overridden by `branch..pushremote`. If no remote is configured, or if you are not on any branch, it defaults to `origin` for fetching and `remote.pushdefault` for pushing. + Additionally, `.` (a period) is the current local repository + (a dot-repository), see `branch..merge`'s final note below. branch..pushremote:: When on branch , it overrides `branch..remote` for @@ -749,8 +751,8 @@ branch..merge:: Specify multiple values to get an octopus merge. If you wish to setup 'git pull' so that it merges into from another branch in the local repository, you can point - branch..merge to the desired branch, and use the special setting - `.` (a period) for branch..remote. + branch..merge to the desired branch, and use the relative path + setting `.` (a period) for branch..remote. branch..mergeoptions:: Sets default options for merging into branch . The syntax and @@ -2342,11 +2344,11 @@ user.name:: environment variables. See linkgit:git-commit-tree[1]. user.signingkey:: - If linkgit:git-tag[1] is not selecting the key you want it to - automatically when creating a signed tag, you can override the - default selection with this variable. This option is passed - unchanged to gpg's --local-user parameter, so you may specify a key - using any method that gpg supports. + If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the + key you want it to automatically when creating a signed tag or + commit, you can override the default selection with this variable. + This option is passed unchanged to gpg's --local-user parameter, + so you may specify a key using any method that gpg supports. web.browser:: Specify a web browser that may be used by some commands. diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index ca118ac6bf..91294f89c8 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -9,7 +9,8 @@ SYNOPSIS -------- [verse] 'git checkout' [-q] [-f] [-m] [] -'git checkout' [-q] [-f] [-m] [--detach] [] +'git checkout' [-q] [-f] [-m] --detach [] +'git checkout' [-q] [-f] [-m] [--detach] 'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] ] [] 'git checkout' [-f|--ours|--theirs|-m|--conflict=