diff options
Diffstat (limited to 'third_party/git/Documentation/RelNotes')
391 files changed, 0 insertions, 33857 deletions
diff --git a/third_party/git/Documentation/RelNotes/1.5.0.1.txt b/third_party/git/Documentation/RelNotes/1.5.0.1.txt deleted file mode 100644 index fea3f9935b77..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.1.txt +++ /dev/null @@ -1,42 +0,0 @@ -GIT v1.5.0.1 Release Notes -========================== - -Fixes since v1.5.0 ------------------- - -* Documentation updates - - - Clarifications and corrections to 1.5.0 release notes. - - - The main documentation did not link to git-remote documentation. - - - Clarified introductory text of git-rebase documentation. - - - Converted remaining mentions of update-index on Porcelain - documents to git-add/git-rm. - - - Some i18n.* configuration variables were incorrectly - described as core.*; fixed. - -* Bugfixes - - - git-add and git-update-index on a filesystem on which - executable bits are unreliable incorrectly reused st_mode - bits even when the path changed between symlink and regular - file. - - - git-daemon marks the listening sockets with FD_CLOEXEC so - that it won't be leaked into the children. - - - segfault from git-blame when the mandatory pathname - parameter was missing was fixed; usage() message is given - instead. - - - git-rev-list did not read $GIT_DIR/config file, which means - that did not honor i18n.logoutputencoding correctly. - -* Tweaks - - - sliding mmap() inefficiently mmaped the same region of a - packfile with an access pattern that used objects in the - reverse order. This has been made more efficient. diff --git a/third_party/git/Documentation/RelNotes/1.5.0.2.txt b/third_party/git/Documentation/RelNotes/1.5.0.2.txt deleted file mode 100644 index b061e50ff05b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.2.txt +++ /dev/null @@ -1,65 +0,0 @@ -GIT v1.5.0.2 Release Notes -========================== - -Fixes since v1.5.0.1 --------------------- - -* Bugfixes - - - Automated merge conflict handling when changes to symbolic - links conflicted were completely broken. The merge-resolve - strategy created a regular file with conflict markers in it - in place of the symbolic link. The default strategy, - merge-recursive was even more broken. It removed the path - that was pointed at by the symbolic link. Both of these - problems have been fixed. - - - 'git diff maint master next' did not correctly give combined - diff across three trees. - - - 'git fast-import' portability fix for Solaris. - - - 'git show-ref --verify' without arguments did not error out - but segfaulted. - - - 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra - slashes after a/ and b/. - - - 'git format-patch' produced too long filenames if the commit - message had too long line at the beginning. - - - Running 'make all' and then without changing anything - running 'make install' still rebuilt some files. This - was inconvenient when building as yourself and then - installing as root (especially problematic when the source - directory is on NFS and root is mapped to nobody). - - - 'git-rerere' failed to deal with two unconflicted paths that - sorted next to each other. - - - 'git-rerere' attempted to open(2) a symlink and failed if - there was a conflict. Since a conflicting change to a - symlink would not benefit from rerere anyway, the command - now ignores conflicting changes to symlinks. - - - 'git-repack' did not like to pass more than 64 arguments - internally to underlying 'rev-list' logic, which made it - impossible to repack after accumulating many (small) packs - in the repository. - - - 'git-diff' to review the combined diff during a conflicted - merge were not reading the working tree version correctly - when changes to a symbolic link conflicted. It should have - read the data using readlink(2) but read from the regular - file the symbolic link pointed at. - - - 'git-remote' did not like period in a remote's name. - -* Documentation updates - - - added and clarified core.bare, core.legacyheaders configurations. - - - updated "git-clone --depth" documentation. - - -* Assorted git-gui fixes. diff --git a/third_party/git/Documentation/RelNotes/1.5.0.3.txt b/third_party/git/Documentation/RelNotes/1.5.0.3.txt deleted file mode 100644 index cd500f96bfd7..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.3.txt +++ /dev/null @@ -1,58 +0,0 @@ -GIT v1.5.0.3 Release Notes -========================== - -Fixes since v1.5.0.2 --------------------- - -* Bugfixes - - - 'git.el' honors the commit coding system from the configuration. - - - 'blameview' in contrib/ correctly digs deeper when a line is - clicked. - - - 'http-push' correctly makes sure the remote side has leading - path. Earlier it started in the middle of the path, and - incorrectly. - - - 'git-merge' did not exit with non-zero status when the - working tree was dirty and cannot fast forward. It does - now. - - - 'cvsexportcommit' does not lose yet-to-be-used message file. - - - int-vs-size_t typefix when running combined diff on files - over 2GB long. - - - 'git apply --whitespace=strip' should not touch unmodified - lines. - - - 'git-mailinfo' choke when a logical header line was too long. - - - 'git show A..B' did not error out. Negative ref ("not A" in - this example) does not make sense for the purpose of the - command, so now it errors out. - - - 'git fmt-merge-msg --file' without file parameter did not - correctly error out. - - - 'git archimport' barfed upon encountering a commit without - summary. - - - 'git index-pack' did not protect itself from getting a short - read out of pread(2). - - - 'git http-push' had a few buffer overruns. - - - Build dependency fixes to rebuild fetch.o when other headers - change. - -* Documentation updates - - - user-manual updates. - - - Options to 'git remote add' were described insufficiently. - - - Configuration format.suffix was not documented. - - - Other formatting and spelling fixes. diff --git a/third_party/git/Documentation/RelNotes/1.5.0.4.txt b/third_party/git/Documentation/RelNotes/1.5.0.4.txt deleted file mode 100644 index feefa5dfd4ee..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.4.txt +++ /dev/null @@ -1,22 +0,0 @@ -GIT v1.5.0.4 Release Notes -========================== - -Fixes since v1.5.0.3 --------------------- - -* Bugfixes - - - git.el does not add duplicate sign-off lines. - - - git-commit shows the full stat of the resulting commit, not - just about the files in the current directory, when run from - a subdirectory. - - - "git-checkout -m '@{8 hours ago}'" had a funny failure from - eval; fixed. - - - git-gui updates. - -* Documentation updates - -* User manual updates diff --git a/third_party/git/Documentation/RelNotes/1.5.0.5.txt b/third_party/git/Documentation/RelNotes/1.5.0.5.txt deleted file mode 100644 index eeec3d73d01a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.5.txt +++ /dev/null @@ -1,26 +0,0 @@ -GIT v1.5.0.5 Release Notes -========================== - -Fixes since v1.5.0.3 --------------------- - -* Bugfixes - - - git-merge (hence git-pull) did not refuse fast-forwarding - when the working tree had local changes that would have - conflicted with it. - - - git.el does not add duplicate sign-off lines. - - - git-commit shows the full stat of the resulting commit, not - just about the files in the current directory, when run from - a subdirectory. - - - "git-checkout -m '@{8 hours ago}'" had a funny failure from - eval; fixed. - - - git-gui updates. - -* Documentation updates - -* User manual updates diff --git a/third_party/git/Documentation/RelNotes/1.5.0.6.txt b/third_party/git/Documentation/RelNotes/1.5.0.6.txt deleted file mode 100644 index c02015ad5fdb..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.6.txt +++ /dev/null @@ -1,21 +0,0 @@ -GIT v1.5.0.6 Release Notes -========================== - -Fixes since v1.5.0.5 --------------------- - -* Bugfixes - - - a handful small fixes to gitweb. - - - build procedure for user-manual is fixed not to require locally - installed stylesheets. - - - "git commit $paths" on paths whose earlier contents were - already updated in the index were failing out. - -* Documentation - - - user-manual has better cross references. - - - gitweb installation/deployment procedure is now documented. diff --git a/third_party/git/Documentation/RelNotes/1.5.0.7.txt b/third_party/git/Documentation/RelNotes/1.5.0.7.txt deleted file mode 100644 index 670ad32b8567..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.7.txt +++ /dev/null @@ -1,18 +0,0 @@ -GIT v1.5.0.7 Release Notes -========================== - -Fixes since v1.5.0.6 --------------------- - -* Bugfixes - - - git-upload-pack failed to close unused pipe ends, resulting - in many zombies to hang around. - - - git-rerere was recording the contents of earlier hunks - duplicated in later hunks. This prevented resolving the same - conflict when performing the same merge the other way around. - -* Documentation - - - a few documentation fixes from Debian package maintainer. diff --git a/third_party/git/Documentation/RelNotes/1.5.0.txt b/third_party/git/Documentation/RelNotes/1.5.0.txt deleted file mode 100644 index d6d42f318358..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.0.txt +++ /dev/null @@ -1,469 +0,0 @@ -GIT v1.5.0 Release Notes -======================== - -Old news --------- - -This section is for people who are upgrading from ancient -versions of git. Although all of the changes in this section -happened before the current v1.4.4 release, they are summarized -here in the v1.5.0 release notes for people who skipped earlier -versions. - -As of git v1.5.0 there are some optional features that changes -the repository to allow data to be stored and transferred more -efficiently. These features are not enabled by default, as they -will make the repository unusable with older versions of git. -Specifically, the available options are: - - - There is a configuration variable core.legacyheaders that - changes the format of loose objects so that they are more - efficient to pack and to send out of the repository over git - native protocol, since v1.4.2. However, loose objects - written in the new format cannot be read by git older than - that version; people fetching from your repository using - older clients over dumb transports (e.g. http) using older - versions of git will also be affected. - - To let git use the new loose object format, you have to - set core.legacyheaders to false. - - - Since v1.4.3, configuration repack.usedeltabaseoffset allows - packfile to be created in more space efficient format, which - cannot be read by git older than that version. - - To let git use the new format for packfiles, you have to - set repack.usedeltabaseoffset to true. - -The above two new features are not enabled by default and you -have to explicitly ask for them, because they make repositories -unreadable by older versions of git, and in v1.5.0 we still do -not enable them by default for the same reason. We will change -this default probably 1 year after 1.4.2's release, when it is -reasonable to expect everybody to have new enough version of -git. - - - 'git pack-refs' appeared in v1.4.4; this command allows tags - to be accessed much more efficiently than the traditional - 'one-file-per-tag' format. Older git-native clients can - still fetch from a repository that packed and pruned refs - (the server side needs to run the up-to-date version of git), - but older dumb transports cannot. Packing of refs is done by - an explicit user action, either by use of "git pack-refs - --prune" command or by use of "git gc" command. - - - 'git -p' to paginate anything -- many commands do pagination - by default on a tty. Introduced between v1.4.1 and v1.4.2; - this may surprise old timers. - - - 'git archive' superseded 'git tar-tree' in v1.4.3; - - - 'git cvsserver' was new invention in v1.3.0; - - - 'git repo-config', 'git grep', 'git rebase' and 'gitk' were - seriously enhanced during v1.4.0 timeperiod. - - - 'gitweb' became part of git.git during v1.4.0 timeperiod and - seriously modified since then. - - - reflog is an v1.4.0 invention. This allows you to name a - revision that a branch used to be at (e.g. "git diff - master@{yesterday} master" allows you to see changes since - yesterday's tip of the branch). - - -Updates in v1.5.0 since v1.4.4 series -------------------------------------- - -* Index manipulation - - - git-add is to add contents to the index (aka "staging area" - for the next commit), whether the file the contents happen to - be is an existing one or a newly created one. - - - git-add without any argument does not add everything - anymore. Use 'git-add .' instead. Also you can add - otherwise ignored files with an -f option. - - - git-add tries to be more friendly to users by offering an - interactive mode ("git-add -i"). - - - git-commit <path> used to refuse to commit if <path> was - different between HEAD and the index (i.e. update-index was - used on it earlier). This check was removed. - - - git-rm is much saner and safer. It is used to remove paths - from both the index file and the working tree, and makes sure - you are not losing any local modification before doing so. - - - git-reset <tree> <paths>... can be used to revert index - entries for selected paths. - - - git-update-index is much less visible. Many suggestions to - use the command in git output and documentation have now been - replaced by simpler commands such as "git add" or "git rm". - - -* Repository layout and objects transfer - - - The data for origin repository is stored in the configuration - file $GIT_DIR/config, not in $GIT_DIR/remotes/, for newly - created clones. The latter is still supported and there is - no need to convert your existing repository if you are - already comfortable with your workflow with the layout. - - - git-clone always uses what is known as "separate remote" - layout for a newly created repository with a working tree. - - A repository with the separate remote layout starts with only - one default branch, 'master', to be used for your own - development. Unlike the traditional layout that copied all - the upstream branches into your branch namespace (while - renaming their 'master' to your 'origin'), the new layout - puts upstream branches into local "remote-tracking branches" - with their own namespace. These can be referenced with names - such as "origin/$upstream_branch_name" and are stored in - .git/refs/remotes rather than .git/refs/heads where normal - branches are stored. - - This layout keeps your own branch namespace less cluttered, - avoids name collision with your upstream, makes it possible - to automatically track new branches created at the remote - after you clone from it, and makes it easier to interact with - more than one remote repository (you can use "git remote" to - add other repositories to track). There might be some - surprises: - - * 'git branch' does not show the remote tracking branches. - It only lists your own branches. Use '-r' option to view - the tracking branches. - - * If you are forking off of a branch obtained from the - upstream, you would have done something like 'git branch - my-next next', because traditional layout dropped the - tracking branch 'next' into your own branch namespace. - With the separate remote layout, you say 'git branch next - origin/next', which allows you to use the matching name - 'next' for your own branch. It also allows you to track a - remote other than 'origin' (i.e. where you initially cloned - from) and fork off of a branch from there the same way - (e.g. "git branch mingw j6t/master"). - - Repositories initialized with the traditional layout continue - to work. - - - New branches that appear on the origin side after a clone is - made are also tracked automatically. This is done with an - wildcard refspec "refs/heads/*:refs/remotes/origin/*", which - older git does not understand, so if you clone with 1.5.0, - you would need to downgrade remote.*.fetch in the - configuration file to specify each branch you are interested - in individually if you plan to fetch into the repository with - older versions of git (but why would you?). - - - Similarly, wildcard refspec "refs/heads/*:refs/remotes/me/*" - can be given to "git-push" command to update the tracking - branches that is used to track the repository you are pushing - from on the remote side. - - - git-branch and git-show-branch know remote tracking branches - (use the command line switch "-r" to list only tracked branches). - - - git-push can now be used to delete a remote branch or a tag. - This requires the updated git on the remote side (use "git - push <remote> :refs/heads/<branch>" to delete "branch"). - - - git-push more aggressively keeps the transferred objects - packed. Earlier we recommended to monitor amount of loose - objects and repack regularly, but you should repack when you - accumulated too many small packs this way as well. Updated - git-count-objects helps you with this. - - - git-fetch also more aggressively keeps the transferred objects - packed. This behavior of git-push and git-fetch can be - tweaked with a single configuration transfer.unpacklimit (but - usually there should not be any need for a user to tweak it). - - - A new command, git-remote, can help you manage your remote - tracking branch definitions. - - - You may need to specify explicit paths for upload-pack and/or - receive-pack due to your ssh daemon configuration on the - other end. This can now be done via remote.*.uploadpack and - remote.*.receivepack configuration. - - -* Bare repositories - - - Certain commands change their behavior in a bare repository - (i.e. a repository without associated working tree). We use - a fairly conservative heuristic (if $GIT_DIR is ".git", or - ends with "/.git", the repository is not bare) to decide if a - repository is bare, but "core.bare" configuration variable - can be used to override the heuristic when it misidentifies - your repository. - - - git-fetch used to complain updating the current branch but - this is now allowed for a bare repository. So is the use of - 'git-branch -f' to update the current branch. - - - Porcelain-ish commands that require a working tree refuses to - work in a bare repository. - - -* Reflog - - - Reflog records the history from the view point of the local - repository. In other words, regardless of the real history, - the reflog shows the history as seen by one particular - repository (this enables you to ask "what was the current - revision in _this_ repository, yesterday at 1pm?"). This - facility is enabled by default for repositories with working - trees, and can be accessed with the "branch@{time}" and - "branch@{Nth}" notation. - - - "git show-branch" learned showing the reflog data with the - new -g option. "git log" has -g option to view reflog - entries in a more verbose manner. - - - git-branch knows how to rename branches and moves existing - reflog data from the old branch to the new one. - - - In addition to the reflog support in v1.4.4 series, HEAD - reference maintains its own log. "HEAD@{5.minutes.ago}" - means the commit you were at 5 minutes ago, which takes - branch switching into account. If you want to know where the - tip of your current branch was at 5 minutes ago, you need to - explicitly say its name (e.g. "master@{5.minutes.ago}") or - omit the refname altogether i.e. "@{5.minutes.ago}". - - - The commits referred to by reflog entries are now protected - against pruning. The new command "git reflog expire" can be - used to truncate older reflog entries and entries that refer - to commits that have been pruned away previously with older - versions of git. - - Existing repositories that have been using reflog may get - complaints from fsck-objects and may not be able to run - git-repack, if you had run git-prune from older git; please - run "git reflog expire --stale-fix --all" first to remove - reflog entries that refer to commits that are no longer in - the repository when that happens. - - -* Cruft removal - - - We used to say "old commits are retrievable using reflog and - 'master@{yesterday}' syntax as long as you haven't run - git-prune". We no longer have to say the latter half of the - above sentence, as git-prune does not remove things reachable - from reflog entries. - - - There is a toplevel garbage collector script, 'git-gc', that - runs periodic cleanup functions, including 'git-repack -a -d', - 'git-reflog expire', 'git-pack-refs --prune', and 'git-rerere - gc'. - - - The output from fsck ("fsck-objects" is called just "fsck" - now, but the old name continues to work) was needlessly - alarming in that it warned missing objects that are reachable - only from dangling objects. This has been corrected and the - output is much more useful. - - -* Detached HEAD - - - You can use 'git-checkout' to check out an arbitrary revision - or a tag as well, instead of named branches. This will - dissociate your HEAD from the branch you are currently on. - - A typical use of this feature is to "look around". E.g. - - $ git checkout v2.6.16 - ... compile, test, etc. - $ git checkout v2.6.17 - ... compile, test, etc. - - - After detaching your HEAD, you can go back to an existing - branch with usual "git checkout $branch". Also you can - start a new branch using "git checkout -b $newbranch" to - start a new branch at that commit. - - - You can even pull from other repositories, make merges and - commits while your HEAD is detached. Also you can use "git - reset" to jump to arbitrary commit, while still keeping your - HEAD detached. - - Remember that a detached state is volatile, i.e. it will be forgotten - as soon as you move away from it with the checkout or reset command, - unless a branch is created from it as mentioned above. It is also - possible to rescue a lost detached state from the HEAD reflog. - - -* Packed refs - - - Repositories with hundreds of tags have been paying large - overhead, both in storage and in runtime, due to the - traditional one-ref-per-file format. A new command, - git-pack-refs, can be used to "pack" them in more efficient - representation (you can let git-gc do this for you). - - - Clones and fetches over dumb transports are now aware of - packed refs and can download from repositories that use - them. - - -* Configuration - - - configuration related to color setting are consolidated under - color.* namespace (older diff.color.*, status.color.* are - still supported). - - - 'git-repo-config' command is accessible as 'git-config' now. - - -* Updated features - - - git-describe uses better criteria to pick a base ref. It - used to pick the one with the newest timestamp, but now it - picks the one that is topologically the closest (that is, - among ancestors of commit C, the ref T that has the shortest - output from "git-rev-list T..C" is chosen). - - - git-describe gives the number of commits since the base ref - between the refname and the hash suffix. E.g. the commit one - before v2.6.20-rc6 in the kernel repository is: - - v2.6.20-rc5-306-ga21b069 - - which tells you that its object name begins with a21b069, - v2.6.20-rc5 is an ancestor of it (meaning, the commit - contains everything -rc5 has), and there are 306 commits - since v2.6.20-rc5. - - - git-describe with --abbrev=0 can be used to show only the - name of the base ref. - - - git-blame learned a new option, --incremental, that tells it - to output the blames as they are assigned. A sample script - to use it is also included as contrib/blameview. - - - git-blame starts annotating from the working tree by default. - - -* Less external dependency - - - We no longer require the "merge" program from the RCS suite. - All 3-way file-level merges are now done internally. - - - The original implementation of git-merge-recursive which was - in Python has been removed; we have a C implementation of it - now. - - - git-shortlog is no longer a Perl script. It no longer - requires output piped from git-log; it can accept revision - parameters directly on the command line. - - -* I18n - - - We have always encouraged the commit message to be encoded in - UTF-8, but the users are allowed to use legacy encoding as - appropriate for their projects. This will continue to be the - case. However, a non UTF-8 commit encoding _must_ be - explicitly set with i18n.commitencoding in the repository - where a commit is made; otherwise git-commit-tree will - complain if the log message does not look like a valid UTF-8 - string. - - - The value of i18n.commitencoding in the originating - repository is recorded in the commit object on the "encoding" - header, if it is not UTF-8. git-log and friends notice this, - and re-encodes the message to the log output encoding when - displaying, if they are different. The log output encoding - is determined by "git log --encoding=<encoding>", - i18n.logoutputencoding configuration, or i18n.commitencoding - configuration, in the decreasing order of preference, and - defaults to UTF-8. - - - Tools for e-mailed patch application now default to -u - behavior; i.e. it always re-codes from the e-mailed encoding - to the encoding specified with i18n.commitencoding. This - unfortunately forces projects that have happily been using a - legacy encoding without setting i18n.commitencoding to set - the configuration, but taken with other improvement, please - excuse us for this very minor one-time inconvenience. - - -* e-mailed patches - - - See the above I18n section. - - - git-format-patch now enables --binary without being asked. - git-am does _not_ default to it, as sending binary patch via - e-mail is unusual and is harder to review than textual - patches and it is prudent to require the person who is - applying the patch to explicitly ask for it. - - - The default suffix for git-format-patch output is now ".patch", - not ".txt". This can be changed with --suffix=.txt option, - or setting the config variable "format.suffix" to ".txt". - - -* Foreign SCM interfaces - - - git-svn now requires the Perl SVN:: libraries, the - command-line backend was too slow and limited. - - - the 'commit' subcommand of git-svn has been renamed to - 'set-tree', and 'dcommit' is the recommended replacement for - day-to-day work. - - - git fast-import backend. - - -* User support - - - Quite a lot of documentation updates. - - - Bash completion scripts have been updated heavily. - - - Better error messages for often used Porcelainish commands. - - - Git GUI. This is a simple Tk based graphical interface for - common Git operations. - - -* Sliding mmap - - - We used to assume that we can mmap the whole packfile while - in use, but with a large project this consumes huge virtual - memory space and truly huge ones would not fit in the - userland address space on 32-bit platforms. We now mmap huge - packfile in pieces to avoid this problem. - - -* Shallow clones - - - There is a partial support for 'shallow' repositories that - keeps only recent history. A 'shallow clone' is created by - specifying how deep that truncated history should be - (e.g. "git clone --depth 5 git://some.where/repo.git"). - - Currently a shallow repository has number of limitations: - - - Cloning and fetching _from_ a shallow clone are not - supported (nor tested -- so they might work by accident but - they are not expected to). - - - Pushing from nor into a shallow clone are not expected to - work. - - - Merging inside a shallow repository would work as long as a - merge base is found in the recent history, but otherwise it - will be like merging unrelated histories and may result in - huge conflicts. - - but this would be more than adequate for people who want to - look at near the tip of a big project with a deep history and - send patches in e-mail format. diff --git a/third_party/git/Documentation/RelNotes/1.5.1.1.txt b/third_party/git/Documentation/RelNotes/1.5.1.1.txt deleted file mode 100644 index 91471213bdec..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.1.1.txt +++ /dev/null @@ -1,65 +0,0 @@ -GIT v1.5.1.1 Release Notes -========================== - -Fixes since v1.5.1 ------------------- - -* Documentation updates - - - The --left-right option of rev-list and friends is documented. - - - The documentation for cvsimport has been majorly improved. - - - "git-show-ref --exclude-existing" was documented. - -* Bugfixes - - - The implementation of -p option in "git cvsexportcommit" had - the meaning of -C (context reduction) option wrong, and - loosened the context requirements when it was told to be - strict. - - - "git cvsserver" did not behave like the real cvsserver when - client side removed a file from the working tree without - doing anything else on the path. In such a case, it should - restore it from the checked out revision. - - - "git fsck" issued an alarming error message on detached - HEAD. It is not an error since at least 1.5.0. - - - "git send-email" produced of References header of unbounded length; - fixed this with line-folding. - - - "git archive" to download from remote site should not - require you to be in a git repository, but it incorrectly - did. - - - "git apply" ignored -p<n> for "diff --git" formatted - patches. - - - "git rerere" recorded a conflict that had one side empty - (the other side adds) incorrectly; this made merging in the - other direction fail to use previously recorded resolution. - - - t4200 test was broken where "wc -l" pads its output with - spaces. - - - "git branch -m old new" to rename branch did not work - without a configuration file in ".git/config". - - - The sample hook for notification e-mail was misnamed. - - - gitweb did not show type-changing patch correctly in the - blobdiff view. - - - git-svn did not error out with incorrect command line options. - - - git-svn fell into an infinite loop when insanely long commit - message was found. - - - git-svn dcommit and rebase was confused by patches that were - merged from another branch that is managed by git-svn. - - - git-svn used to get confused when globbing remote branch/tag - spec (e.g. "branches = proj/branches/*:refs/remotes/origin/*") - is used and there was a plain file that matched the glob. diff --git a/third_party/git/Documentation/RelNotes/1.5.1.2.txt b/third_party/git/Documentation/RelNotes/1.5.1.2.txt deleted file mode 100644 index d88456306c50..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.1.2.txt +++ /dev/null @@ -1,50 +0,0 @@ -GIT v1.5.1.2 Release Notes -========================== - -Fixes since v1.5.1.1 --------------------- - -* Bugfixes - - - "git clone" over http from a repository that has lost the - loose refs by running "git pack-refs" were broken (a code to - deal with this was added to "git fetch" in v1.5.0, but it - was missing from "git clone"). - - - "git diff a/ b/" incorrectly fell in "diff between two - filesystem objects" codepath, when the user most likely - wanted to limit the extent of output to two tracked - directories. - - - git-quiltimport had the same bug as we fixed for - git-applymbox in v1.5.1.1 -- it gave an alarming "did not - have any patch" message (but did not actually fail and was - harmless). - - - various git-svn fixes. - - - Sample update hook incorrectly always refused requests to - delete branches through push. - - - git-blame on a very long working tree path had buffer - overrun problem. - - - git-apply did not like to be fed two patches in a row that created - and then modified the same file. - - - git-svn was confused when a non-project was stored directly under - trunk/, branches/ and tags/. - - - git-svn wants the Error.pm module that was at least as new - as what we ship as part of git; install ours in our private - installation location if the one on the system is older. - - - An earlier update to command line integer parameter parser was - botched and made 'update-index --cacheinfo' completely useless. - - -* Documentation updates - - - Various documentation updates from J. Bruce Fields, Frank - Lichtenheld, Alex Riesen and others. Andrew Ruder started a - war on undocumented options. diff --git a/third_party/git/Documentation/RelNotes/1.5.1.3.txt b/third_party/git/Documentation/RelNotes/1.5.1.3.txt deleted file mode 100644 index 876408b65a0e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.1.3.txt +++ /dev/null @@ -1,45 +0,0 @@ -GIT v1.5.1.3 Release Notes -========================== - -Fixes since v1.5.1.2 --------------------- - -* Bugfixes - - - git-add tried to optimize by finding common leading - directories across its arguments but botched, causing very - confused behaviour. - - - unofficial rpm.spec file shipped with git was letting - ETC_GITCONFIG set to /usr/etc/gitconfig. Tweak the official - Makefile to make it harder for distro people to make the - same mistake, by setting the variable to /etc/gitconfig if - prefix is set to /usr. - - - git-svn inconsistently stripped away username from the URL - only when svnsync_props was in use. - - - git-svn got confused when handling symlinks on Mac OS. - - - git-send-email was not quoting recipient names that have - period '.' in them. Also it did not allow overriding - envelope sender, which made it impossible to send patches to - certain subscriber-only lists. - - - built-in write_tree() routine had a sequence that renamed a - file that is still open, which some systems did not like. - - - when memory is very tight, sliding mmap code to read - packfiles incorrectly closed the fd that was still being - used to read the pack. - - - import-tars contributed front-end for fastimport was passing - wrong directory modes without checking. - - - git-fastimport trusted its input too much and allowed to - create corrupt tree objects with entries without a name. - - - git-fetch needlessly barfed when too long reflog action - description was given by the caller. - -Also contains various documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.1.4.txt b/third_party/git/Documentation/RelNotes/1.5.1.4.txt deleted file mode 100644 index df2f66ccb5d2..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.1.4.txt +++ /dev/null @@ -1,30 +0,0 @@ -GIT v1.5.1.4 Release Notes -========================== - -Fixes since v1.5.1.3 --------------------- - -* Bugfixes - - - "git-http-fetch" did not work around a bug in libcurl - earlier than 7.16 (curl_multi_remove_handle() was broken). - - - "git cvsserver" handles a file that was once removed and - then added again correctly. - - - import-tars script (in contrib/) handles GNU tar archives - that contain pathnames longer than 100 bytes (long-link - extension) correctly. - - - xdelta test program did not build correctly. - - - gitweb sometimes tried incorrectly to apply function to - decode utf8 twice, resulting in corrupt output. - - - "git blame -C" mishandled text at the end of a group of - lines. - - - "git log/rev-list --boundary" did not produce output - correctly without --left-right option. - - - Many documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.1.5.txt b/third_party/git/Documentation/RelNotes/1.5.1.5.txt deleted file mode 100644 index b0ab8eb371cc..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.1.5.txt +++ /dev/null @@ -1,42 +0,0 @@ -GIT v1.5.1.5 Release Notes -========================== - -Fixes since v1.5.1.4 --------------------- - -* Bugfixes - - - git-send-email did not understand aliases file for mutt, which - allows leading whitespaces. - - - git-format-patch emitted Content-Type and Content-Transfer-Encoding - headers for non ASCII contents, but failed to add MIME-Version. - - - git-name-rev had a buffer overrun with a deep history. - - - contributed script import-tars did not get the directory in - tar archives interpreted correctly. - - - git-svn was reported to segfault for many people on list and - #git; hopefully this has been fixed. - - - "git-svn clone" does not try to minimize the URL - (i.e. connect to higher level hierarchy) by default, as this - can prevent clone to fail if only part of the repository - (e.g. 'trunk') is open to public. - - - "git checkout branch^0" did not detach the head when you are - already on 'branch'; backported the fix from the 'master'. - - - "git-config section.var" did not correctly work when - existing configuration file had both [section] and [section "name"] - next to each other. - - - "git clone ../other-directory" was fooled if the current - directory $PWD points at is a symbolic link. - - - (build) tree_entry_extract() function was both static inline - and extern, which caused trouble compiling with Forte12 - compilers on Sun. - - - Many many documentation fixes and updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.1.6.txt b/third_party/git/Documentation/RelNotes/1.5.1.6.txt deleted file mode 100644 index 55f3ac13e3c2..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.1.6.txt +++ /dev/null @@ -1,45 +0,0 @@ -GIT v1.5.1.6 Release Notes -========================== - -Fixes since v1.5.1.4 --------------------- - -* Bugfixes - - - git-send-email did not understand aliases file for mutt, which - allows leading whitespaces. - - - git-format-patch emitted Content-Type and Content-Transfer-Encoding - headers for non ASCII contents, but failed to add MIME-Version. - - - git-name-rev had a buffer overrun with a deep history. - - - contributed script import-tars did not get the directory in - tar archives interpreted correctly. - - - git-svn was reported to segfault for many people on list and - #git; hopefully this has been fixed. - - - git-svn also had a bug to crash svnserve by sending a bad - sequence of requests. - - - "git-svn clone" does not try to minimize the URL - (i.e. connect to higher level hierarchy) by default, as this - can prevent clone to fail if only part of the repository - (e.g. 'trunk') is open to public. - - - "git checkout branch^0" did not detach the head when you are - already on 'branch'; backported the fix from the 'master'. - - - "git-config section.var" did not correctly work when - existing configuration file had both [section] and [section "name"] - next to each other. - - - "git clone ../other-directory" was fooled if the current - directory $PWD points at is a symbolic link. - - - (build) tree_entry_extract() function was both static inline - and extern, which caused trouble compiling with Forte12 - compilers on Sun. - - - Many many documentation fixes and updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.1.txt b/third_party/git/Documentation/RelNotes/1.5.1.txt deleted file mode 100644 index daed3672709f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.1.txt +++ /dev/null @@ -1,371 +0,0 @@ -GIT v1.5.1 Release Notes -======================== - -Updates since v1.5.0 --------------------- - -* Deprecated commands and options. - - - git-diff-stages and git-resolve have been removed. - -* New commands and options. - - - "git log" and friends take --reverse, which instructs them - to give their output in the order opposite from their usual. - They typically output from new to old, but with this option - their output would read from old to new. "git shortlog" - usually lists older commits first, but with this option, - they are shown from new to old. - - - "git log --pretty=format:<string>" to allow more flexible - custom log output. - - - "git diff" learned --ignore-space-at-eol. This is a weaker - form of --ignore-space-change. - - - "git diff --no-index pathA pathB" can be used as diff - replacement with git specific enhancements. - - - "git diff --no-index" can read from '-' (standard input). - - - "git diff" also learned --exit-code to exit with non-zero - status when it found differences. In the future we might - want to make this the default but that would be a rather big - backward incompatible change; it will stay as an option for - now. - - - "git diff --quiet" is --exit-code with output turned off, - meant for scripted use to quickly determine if there is any - tree-level difference. - - - Textual patch generation with "git diff" without -w/-b - option has been significantly optimized. "git blame" got - faster because of the same change. - - - "git log" and "git rev-list" has been optimized - significantly when they are used with pathspecs. - - - "git branch --track" can be used to set up configuration - variables to help it easier to base your work on branches - you track from a remote site. - - - "git format-patch --attach" now emits attachments. Use - --inline to get an inlined multipart/mixed. - - - "git name-rev" learned --refs=<pattern>, to limit the tags - used for naming the given revisions only to the ones - matching the given pattern. - - - "git remote update" is to run "git fetch" for defined remotes - to update tracking branches. - - - "git cvsimport" can now take '-d' to talk with a CVS - repository different from what are recorded in CVS/Root - (overriding it with environment CVSROOT does not work). - - - "git bundle" can help sneaker-netting your changes between - repositories. - - - "git mergetool" can help 3-way file-level conflict - resolution with your favorite graphical merge tools. - - - A new configuration "core.symlinks" can be used to disable - symlinks on filesystems that do not support them; they are - checked out as regular files instead. - - - You can name a commit object with its first line of the - message. The syntax to use is ':/message text'. E.g. - - $ git show ":/object name: introduce ':/<oneline prefix>' notation" - - means the same thing as: - - $ git show 28a4d940443806412effa246ecc7768a21553ec7 - - - "git bisect" learned a new command "run" that takes a script - to run after each revision is checked out to determine if it - is good or bad, to automate the bisection process. - - - "git log" family learned a new traversal option --first-parent, - which does what the name suggests. - - -* Updated behavior of existing commands. - - - "git-merge-recursive" used to barf when there are more than - one common ancestors for the merge, and merging them had a - rename/rename conflict. This has been fixed. - - - "git fsck" does not barf on corrupt loose objects. - - - "git rm" does not remove newly added files without -f. - - - "git archimport" allows remapping when coming up with git - branch names from arch names. - - - git-svn got almost a rewrite. - - - core.autocrlf configuration, when set to 'true', makes git - to convert CRLF at the end of lines in text files to LF when - reading from the filesystem, and convert in reverse when - writing to the filesystem. The variable can be set to - 'input', in which case the conversion happens only while - reading from the filesystem but files are written out with - LF at the end of lines. Currently, which paths to consider - 'text' (i.e. be subjected to the autocrlf mechanism) is - decided purely based on the contents, but the plan is to - allow users to explicitly override this heuristic based on - paths. - - - The behavior of 'git-apply', when run in a subdirectory, - without --index nor --cached were inconsistent with that of - the command with these options. This was fixed to match the - behavior with --index. A patch that is meant to be applied - with -p1 from the toplevel of the project tree can be - applied with any custom -p<n> option. A patch that is not - relative to the toplevel needs to be applied with -p<n> - option with or without --index (or --cached). - - - "git diff" outputs a trailing HT when pathnames have embedded - SP on +++/--- header lines, in order to help "GNU patch" to - parse its output. "git apply" was already updated to accept - this modified output format since ce74618d (Sep 22, 2006). - - - "git cvsserver" runs hooks/update and honors its exit status. - - - "git cvsserver" can be told to send everything with -kb. - - - "git diff --check" also honors the --color output option. - - - "git name-rev" used to stress the fact that a ref is a tag too - much, by saying something like "v1.2.3^0~22". It now says - "v1.2.3~22" in such a case (it still says "v1.2.3^0" if it does - not talk about an ancestor of the commit that is tagged, which - makes sense). - - - "git rev-list --boundary" now shows boundary markers for the - commits omitted by --max-age and --max-count condition. - - - The configuration mechanism now reads $(prefix)/etc/gitconfig. - - - "git apply --verbose" shows what preimage lines were wanted - when it couldn't find them. - - - "git status" in a read-only repository got a bit saner. - - - "git fetch" (hence "git clone" and "git pull") are less - noisy when the output does not go to tty. - - - "git fetch" between repositories with many refs were slow - even when there are not many changes that needed - transferring. This has been sped up by partially rewriting - the heaviest parts in C. - - - "git mailinfo" which splits an e-mail into a patch and the - meta-information was rewritten, thanks to Don Zickus. It - handles nested multipart better. The command was broken for - a brief period on 'master' branch since 1.5.0 but the - breakage is fixed now. - - - send-email learned configurable bcc and chain-reply-to. - - - "git remote show $remote" also talks about branches that - would be pushed if you run "git push remote". - - - Using objects from packs is now seriously optimized by clever - use of a cache. This should be most noticeable in git-log - family of commands that involve reading many tree objects. - In addition, traversing revisions while filtering changes - with pathspecs is made faster by terminating the comparison - between the trees as early as possible. - - -* Hooks - - - The part to send out notification e-mails was removed from - the sample update hook, as it was not an appropriate place - to do so. The proper place to do this is the new post-receive - hook. An example hook has been added to contrib/hooks/. - - -* Others - - - git-revert, git-gc and git-cherry-pick are now built-ins. - -Fixes since v1.5.0 ------------------- - -These are all in v1.5.0.x series. - -* Documentation updates - - - Clarifications and corrections to 1.5.0 release notes. - - - The main documentation did not link to git-remote documentation. - - - Clarified introductory text of git-rebase documentation. - - - Converted remaining mentions of update-index on Porcelain - documents to git-add/git-rm. - - - Some i18n.* configuration variables were incorrectly - described as core.*; fixed. - - - added and clarified core.bare, core.legacyheaders configurations. - - - updated "git-clone --depth" documentation. - - - user-manual updates. - - - Options to 'git remote add' were described insufficiently. - - - Configuration format.suffix was not documented. - - - Other formatting and spelling fixes. - - - user-manual has better cross references. - - - gitweb installation/deployment procedure is now documented. - - -* Bugfixes - - - git-upload-pack closes unused pipe ends; earlier this caused - many zombies to hang around. - - - git-rerere was recording the contents of earlier hunks - duplicated in later hunks. This prevented resolving the same - conflict when performing the same merge the other way around. - - - git-add and git-update-index on a filesystem on which - executable bits are unreliable incorrectly reused st_mode - bits even when the path changed between symlink and regular - file. - - - git-daemon marks the listening sockets with FD_CLOEXEC so - that it won't be leaked into the children. - - - segfault from git-blame when the mandatory pathname - parameter was missing was fixed; usage() message is given - instead. - - - git-rev-list did not read $GIT_DIR/config file, which means - that did not honor i18n.logoutputencoding correctly. - - - Automated merge conflict handling when changes to symbolic - links conflicted were completely broken. The merge-resolve - strategy created a regular file with conflict markers in it - in place of the symbolic link. The default strategy, - merge-recursive was even more broken. It removed the path - that was pointed at by the symbolic link. Both of these - problems have been fixed. - - - 'git diff maint master next' did not correctly give combined - diff across three trees. - - - 'git fast-import' portability fix for Solaris. - - - 'git show-ref --verify' without arguments did not error out - but segfaulted. - - - 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra - slashes after a/ and b/. - - - 'git format-patch' produced too long filenames if the commit - message had too long line at the beginning. - - - Running 'make all' and then without changing anything - running 'make install' still rebuilt some files. This - was inconvenient when building as yourself and then - installing as root (especially problematic when the source - directory is on NFS and root is mapped to nobody). - - - 'git-rerere' failed to deal with two unconflicted paths that - sorted next to each other. - - - 'git-rerere' attempted to open(2) a symlink and failed if - there was a conflict. Since a conflicting change to a - symlink would not benefit from rerere anyway, the command - now ignores conflicting changes to symlinks. - - - 'git-repack' did not like to pass more than 64 arguments - internally to underlying 'rev-list' logic, which made it - impossible to repack after accumulating many (small) packs - in the repository. - - - 'git-diff' to review the combined diff during a conflicted - merge were not reading the working tree version correctly - when changes to a symbolic link conflicted. It should have - read the data using readlink(2) but read from the regular - file the symbolic link pointed at. - - - 'git-remote' did not like period in a remote's name. - - - 'git.el' honors the commit coding system from the configuration. - - - 'blameview' in contrib/ correctly digs deeper when a line is - clicked. - - - 'http-push' correctly makes sure the remote side has leading - path. Earlier it started in the middle of the path, and - incorrectly. - - - 'git-merge' did not exit with non-zero status when the - working tree was dirty and cannot fast forward. It does - now. - - - 'cvsexportcommit' does not lose yet-to-be-used message file. - - - int-vs-size_t typefix when running combined diff on files - over 2GB long. - - - 'git apply --whitespace=strip' should not touch unmodified - lines. - - - 'git-mailinfo' choke when a logical header line was too long. - - - 'git show A..B' did not error out. Negative ref ("not A" in - this example) does not make sense for the purpose of the - command, so now it errors out. - - - 'git fmt-merge-msg --file' without file parameter did not - correctly error out. - - - 'git archimport' barfed upon encountering a commit without - summary. - - - 'git index-pack' did not protect itself from getting a short - read out of pread(2). - - - 'git http-push' had a few buffer overruns. - - - Build dependency fixes to rebuild fetch.o when other headers - change. - - - git.el does not add duplicate sign-off lines. - - - git-commit shows the full stat of the resulting commit, not - just about the files in the current directory, when run from - a subdirectory. - - - "git-checkout -m '@{8 hours ago}'" had a funny failure from - eval; fixed. - - - git-merge (hence git-pull) did not refuse fast-forwarding - when the working tree had local changes that would have - conflicted with it. - - - a handful small fixes to gitweb. - - - build procedure for user-manual is fixed not to require locally - installed stylesheets. - - - "git commit $paths" on paths whose earlier contents were - already updated in the index were failing out. - - -* Tweaks - - - sliding mmap() inefficiently mmaped the same region of a - packfile with an access pattern that used objects in the - reverse order. This has been made more efficient. diff --git a/third_party/git/Documentation/RelNotes/1.5.2.1.txt b/third_party/git/Documentation/RelNotes/1.5.2.1.txt deleted file mode 100644 index d41984df0b6b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.2.1.txt +++ /dev/null @@ -1,47 +0,0 @@ -GIT v1.5.2.1 Release Notes -========================== - -Fixes since v1.5.2 ------------------- - -* Bugfixes - - - Temporary files that are used when invoking external diff - programs did not tolerate a long TMPDIR. - - - git-daemon did not notice when it could not write into its - pid file. - - - git-status did not honor core.excludesFile configuration like - git-add did. - - - git-annotate did not work from a subdirectory while - git-blame did. - - - git-cvsserver should have disabled access to a repository - with "gitcvs.pserver.enabled = false" set even when - "gitcvs.enabled = true" was set at the same time. It - didn't. - - - git-cvsimport did not work correctly in a repository with - its branch heads were packed with pack-refs. - - - ident unexpansion to squash "$Id: xxx $" that is in the - repository copy removed incorrect number of bytes. - - - git-svn misbehaved when the subversion repository did not - provide MD5 checksums for files. - - - git rebase (and git am) misbehaved on commits that have '\n' - (literally backslash and en, not a linefeed) in the title. - - - code to decode base85 used in binary patches had one error - return codepath wrong. - - - RFC2047 Q encoding output by git-format-patch used '_' for a - space, which is not understood by some programs. It uses =20 - which is safer. - - - git-fastimport --import-marks was broken; fixed. - - - A lot of documentation updates, clarifications and fixes. diff --git a/third_party/git/Documentation/RelNotes/1.5.2.2.txt b/third_party/git/Documentation/RelNotes/1.5.2.2.txt deleted file mode 100644 index 7bfa34175060..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.2.2.txt +++ /dev/null @@ -1,61 +0,0 @@ -GIT v1.5.2.2 Release Notes -========================== - -Fixes since v1.5.2.1 --------------------- - -* Usability fix - - - git-gui is shipped with its updated blame interface. It is - rumored that the older one was not just unusable but was - active health hazard, but this one is actually pretty. - Please see for yourself. - -* Bugfixes - - - "git checkout fubar" was utterly confused when there is a - branch fubar and a tag fubar at the same time. It correctly - checks out the branch fubar now. - - - "git clone /path/foo" to clone a local /path/foo.git - repository left an incorrect configuration. - - - "git send-email" correctly unquotes RFC 2047 quoted names in - the patch-email before using their values. - - - We did not accept number of seconds since epoch older than - year 2000 as a valid timestamp. We now interpret positive - integers more than 8 digits as such, which allows us to - express timestamps more recent than March 1973. - - - git-cvsimport did not work when you have GIT_DIR to point - your repository at a nonstandard location. - - - Some systems (notably, Solaris) lack hstrerror() to make - h_errno human readable; prepare a replacement - implementation. - - - .gitignore file listed git-core.spec but what we generate is - git.spec, and nobody noticed for a long time. - - - "git-merge-recursive" does not try to run file level merge - on binary files. - - - "git-branch --track" did not create tracking configuration - correctly when the branch name had slash in it. - - - The email address of the user specified with user.email - configuration was overridden by EMAIL environment variable. - - - The tree parser did not warn about tree entries with - nonsense file modes, and assumed they must be blobs. - - - "git log -z" without any other request to generate diff still - invoked the diff machinery, wasting cycles. - -* Documentation - - - Many updates to fix stale or missing documentation. - - - Although our documentation was primarily meant to be formatted - with AsciiDoc7, formatting with AsciiDoc8 is supported better. diff --git a/third_party/git/Documentation/RelNotes/1.5.2.3.txt b/third_party/git/Documentation/RelNotes/1.5.2.3.txt deleted file mode 100644 index addb22955b4e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.2.3.txt +++ /dev/null @@ -1,27 +0,0 @@ -GIT v1.5.2.3 Release Notes -========================== - -Fixes since v1.5.2.2 --------------------- - - * Bugfixes - - - Version 2 pack index format was introduced in version 1.5.2 - to support pack files that has offset that cannot be - represented in 32-bit. The runtime code to validate such - an index mishandled such an index for an empty pack. - - - Commit walkers (most notably, fetch over http protocol) - tried to traverse commit objects contained in trees (aka - subproject); they shouldn't. - - - A build option NO_R_TO_GCC_LINKER was not explained in Makefile - comment correctly. - - * Documentation Fixes and Updates - - - git-config --regexp was not documented properly. - - - git-repack -a was not documented properly. - - - git-remote -n was not documented properly. diff --git a/third_party/git/Documentation/RelNotes/1.5.2.4.txt b/third_party/git/Documentation/RelNotes/1.5.2.4.txt deleted file mode 100644 index 75cff475f654..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.2.4.txt +++ /dev/null @@ -1,28 +0,0 @@ -GIT v1.5.2.4 Release Notes -========================== - -Fixes since v1.5.2.3 --------------------- - - * Bugfixes - - - "git-gui" bugfixes, including a handful fixes to run it - better on Cygwin/MSYS. - - - "git checkout" failed to switch back and forth between - branches, one of which has "frotz -> xyzzy" symlink and - file "xyzzy/filfre", while the other one has a file - "frotz/filfre". - - - "git prune" used to segfault upon seeing a commit that is - referred to by a tree object (aka "subproject"). - - - "git diff --name-status --no-index" mishandled an added file. - - - "git apply --reverse --whitespace=warn" still complained - about whitespaces that a forward application would have - introduced. - - * Documentation Fixes and Updates - - - A handful documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.2.5.txt b/third_party/git/Documentation/RelNotes/1.5.2.5.txt deleted file mode 100644 index e8281c72a0b9..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.2.5.txt +++ /dev/null @@ -1,30 +0,0 @@ -GIT v1.5.2.5 Release Notes -========================== - -Fixes since v1.5.2.4 --------------------- - - * Bugfixes - - - "git add -u" had a serious data corruption problem in one - special case (when the changes to a subdirectory's files - consist only deletion of files). - - - "git add -u <path>" did not work from a subdirectory. - - - "git apply" left an empty directory after all its files are - renamed away. - - - "git $anycmd foo/bar", when there is a file 'foo' in the - working tree, complained that "git $anycmd foo/bar --" form - should be used to disambiguate between revs and files, - which was completely bogus. - - - "git checkout-index" and other commands that checks out - files to the work tree tried unlink(2) on directories, - which is a sane thing to do on sane systems, but not on - Solaris when you are root. - - * Documentation Fixes and Updates - - - A handful documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.5.2.txt b/third_party/git/Documentation/RelNotes/1.5.2.txt deleted file mode 100644 index e8328d090a43..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.2.txt +++ /dev/null @@ -1,197 +0,0 @@ -GIT v1.5.2 Release Notes -======================== - -Updates since v1.5.1 --------------------- - -* Plumbing level superproject support. - - You can include a subdirectory that has an independent git - repository in your index and tree objects of your project - ("superproject"). This plumbing (i.e. "core") level - superproject support explicitly excludes recursive behaviour. - - The "subproject" entries in the index and trees of a superproject - are incompatible with older versions of git. Experimenting with - the plumbing level support is encouraged, but be warned that - unless everybody in your project updates to this release or - later, using this feature would make your project - inaccessible by people with older versions of git. - -* Plumbing level gitattributes support. - - The gitattributes mechanism allows you to add 'attributes' to - paths in your project, and affect the way certain git - operations work. Currently you can influence if a path is - considered a binary or text (the former would be treated by - 'git diff' not to produce textual output; the latter can go - through the line endings conversion process in repositories - with core.autocrlf set), expand and unexpand '$Id$' keyword - with blob object name, specify a custom 3-way merge driver, - and specify a custom diff driver. You can also apply - arbitrary filter to contents on check-in/check-out codepath - but this feature is an extremely sharp-edged razor and needs - to be handled with caution (do not use it unless you - understand the earlier mailing list discussion on keyword - expansion). These conversions apply when checking files in - or out, and exporting via git-archive. - -* The packfile format now optionally supports 64-bit index. - - This release supports the "version 2" format of the .idx - file. This is automatically enabled when a huge packfile - needs more than 32-bit to express offsets of objects in the - pack. - -* Comes with an updated git-gui 0.7.1 - -* Updated gitweb: - - - can show combined diff for merges; - - uses font size of user's preference, not hardcoded in pixels; - - can now 'grep'; - -* New commands and options. - - - "git bisect start" can optionally take a single bad commit and - zero or more good commits on the command line. - - - "git shortlog" can optionally be told to wrap its output. - - - "subtree" merge strategy allows another project to be merged in as - your subdirectory. - - - "git format-patch" learned a new --subject-prefix=<string> - option, to override the built-in "[PATCH]". - - - "git add -u" is a quick way to do the first stage of "git - commit -a" (i.e. update the index to match the working - tree); it obviously does not make a commit. - - - "git clean" honors a new configuration, "clean.requireforce". When - set to true, this makes "git clean" a no-op, preventing you - from losing files by typing "git clean" when you meant to - say "make clean". You can still say "git clean -f" to - override this. - - - "git log" family of commands learned --date={local,relative,default} - option. --date=relative is synonym to the --relative-date. - --date=local gives the timestamp in local timezone. - -* Updated behavior of existing commands. - - - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set - but $EMAIL is set, the latter is used as a substitute. - - - "git diff --stat" shows size of preimage and postimage blobs - for binary contents. Earlier it only said "Bin". - - - "git lost-found" shows stuff that are unreachable except - from reflogs. - - - "git checkout branch^0" now detaches HEAD at the tip commit - on the named branch, instead of just switching to the - branch (use "git checkout branch" to switch to the branch, - as before). - - - "git bisect next" can be used after giving only a bad commit - without giving a good one (this starts bisection half-way to - the root commit). We used to refuse to operate without a - good and a bad commit. - - - "git push", when pushing into more than one repository, does - not stop at the first error. - - - "git archive" does not insist you to give --format parameter - anymore; it defaults to "tar". - - - "git cvsserver" can use backends other than sqlite. - - - "gitview" (in contrib/ section) learned to better support - "git-annotate". - - - "git diff $commit1:$path2 $commit2:$path2" can now report - mode changes between the two blobs. - - - Local "git fetch" from a repository whose object store is - one of the alternates (e.g. fetching from the origin in a - repository created with "git clone -l -s") avoids - downloading objects unnecessarily. - - - "git blame" uses .mailmap to canonicalize the author name - just like "git shortlog" does. - - - "git pack-objects" pays attention to pack.depth - configuration variable. - - - "git cherry-pick" and "git revert" does not use .msg file in - the working tree to prepare commit message; instead it uses - $GIT_DIR/MERGE_MSG as other commands do. - -* Builds - - - git-p4import has never been installed; now there is an - installation option to do so. - - - gitk and git-gui can be configured out. - - - Generated documentation pages automatically get version - information from GIT_VERSION. - - - Parallel build with "make -j" descending into subdirectory - was fixed. - -* Performance Tweaks - - - Optimized "git-rev-list --bisect" (hence "git-bisect"). - - - Optimized "git-add $path" in a large directory, most of - whose contents are ignored. - - - Optimized "git-diff-tree" for reduced memory footprint. - - - The recursive merge strategy updated a worktree file that - was changed identically in two branches, when one of them - renamed it. We do not do that when there is no rename, so - match that behaviour. This avoids excessive rebuilds. - - - The default pack depth has been increased to 50, as the - recent addition of delta_base_cache makes deeper delta chains - much less expensive to access. Depending on the project, it was - reported that this reduces the resulting pack file by 10% - or so. - - -Fixes since v1.5.1 ------------------- - -All of the fixes in v1.5.1 maintenance series are included in -this release, unless otherwise noted. - -* Bugfixes - - - Switching branches with "git checkout" refused to work when - a path changes from a file to a directory between the - current branch and the new branch, in order not to lose - possible local changes in the directory that is being turned - into a file with the switch. We now allow such a branch - switch after making sure that there is no locally modified - file nor un-ignored file in the directory. This has not - been backported to 1.5.1.x series, as it is rather an - intrusive change. - - - Merging branches that have a file in one and a directory in - another at the same path used to get quite confused. We - handle such a case a bit more carefully, even though that is - still left as a conflict for the user to sort out. This - will not be backported to 1.5.1.x series, as it is rather an - intrusive change. - - - git-fetch had trouble with a remote with insanely large number - of refs. - - - "git clean -d -X" now does not remove non-excluded directories. - - - rebasing (without -m) a series that changes a symlink to a directory - in the middle of a path confused git-apply greatly and refused to - operate. diff --git a/third_party/git/Documentation/RelNotes/1.5.3.1.txt b/third_party/git/Documentation/RelNotes/1.5.3.1.txt deleted file mode 100644 index 7ff546c743b3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.1.txt +++ /dev/null @@ -1,10 +0,0 @@ -GIT v1.5.3.1 Release Notes -========================== - -Fixes since v1.5.3 ------------------- - -This is solely to fix the generated RPM's dependencies. We used -to have git-p4 package but we do not anymore. As suggested on -the mailing list, this release makes git-core "Obsolete" git-p4, -so that yum update would not complain. diff --git a/third_party/git/Documentation/RelNotes/1.5.3.2.txt b/third_party/git/Documentation/RelNotes/1.5.3.2.txt deleted file mode 100644 index 4bbde3cab4dc..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.2.txt +++ /dev/null @@ -1,58 +0,0 @@ -GIT v1.5.3.2 Release Notes -========================== - -Fixes since v1.5.3.1 --------------------- - - * git-push sent thin packs by default, which was not good for - the public distribution server (no point in saving transfer - while pushing; no point in making the resulting pack less - optimum). - - * git-svn sometimes terminated with "Malformed network data" when - talking over svn:// protocol. - - * git-send-email re-issued the same message-id about 10% of the - time if you fired off 30 messages within a single second. - - * git-stash was not terminating the log message of commits it - internally creates with LF. - - * git-apply failed to check the size of the patch hunk when its - beginning part matched the remainder of the preimage exactly, - even though the preimage recorded in the hunk was much larger - (therefore the patch should not have applied), leading to a - segfault. - - * "git rm foo && git commit foo" complained that 'foo' needs to - be added first, instead of committing the removal, which was a - nonsense. - - * git grep -c said "/dev/null: 0". - - * git-add -u failed to recognize a blob whose type changed - between the index and the work tree. - - * The limit to rename detection has been tightened a lot to - reduce performance problems with a huge change. - - * cvsimport and svnimport barfed when the input tried to move - a tag. - - * "git apply -pN" did not chop the right number of directories. - - * "git svnimport" did not like SVN tags with funny characters in them. - - * git-gui 0.8.3, with assorted fixes, including: - - - font-chooser on X11 was unusable with large number of fonts; - - a diff that contained a deleted symlink made it barf; - - an untracked symbolic link to a directory made it fart; - - a file with % in its name made it vomit; - - -Documentation updates ---------------------- - -User manual has been somewhat restructured. I think the new -organization is much easier to read. diff --git a/third_party/git/Documentation/RelNotes/1.5.3.3.txt b/third_party/git/Documentation/RelNotes/1.5.3.3.txt deleted file mode 100644 index d2138469511d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.3.txt +++ /dev/null @@ -1,31 +0,0 @@ -GIT v1.5.3.3 Release Notes -========================== - -Fixes since v1.5.3.2 --------------------- - - * git-quiltimport did not like it when a patch described in the - series file does not exist. - - * p4 importer missed executable bit in some cases. - - * The default shell on some FreeBSD did not execute the - argument parsing code correctly and made git unusable. - - * git-svn incorrectly spawned pager even when the user - explicitly asked not to. - - * sample post-receive hook overquoted the envelope sender - value. - - * git-am got confused when the patch contained a change that is - only about type and not contents. - - * git-mergetool did not show our and their version of the - conflicted file when started from a subdirectory of the - project. - - * git-mergetool did not pass correct options when invoking diff3. - - * git-log sometimes invoked underlying "diff" machinery - unnecessarily. diff --git a/third_party/git/Documentation/RelNotes/1.5.3.4.txt b/third_party/git/Documentation/RelNotes/1.5.3.4.txt deleted file mode 100644 index b04b3a45a562..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.4.txt +++ /dev/null @@ -1,35 +0,0 @@ -GIT v1.5.3.4 Release Notes -========================== - -Fixes since v1.5.3.3 --------------------- - - * Change to "git-ls-files" in v1.5.3.3 that was introduced to support - partial commit of removal better had a segfaulting bug, which was - diagnosed and fixed by Keith and Carl. - - * Performance improvements for rename detection has been backported - from the 'master' branch. - - * "git-for-each-ref --format='%(numparent)'" was not working - correctly at all, and --format='%(parent)' was not working for - merge commits. - - * Sample "post-receive-hook" incorrectly sent out push - notification e-mails marked as "From: " the committer of the - commit that happened to be at the tip of the branch that was - pushed, not from the person who pushed. - - * "git-remote" did not exit non-zero status upon error. - - * "git-add -i" did not respond very well to EOF from tty nor - bogus input. - - * "git-rebase -i" squash subcommand incorrectly made the - author of later commit the author of resulting commit, - instead of taking from the first one in the squashed series. - - * "git-stash apply --index" was not documented. - - * autoconfiguration learned that "ar" command is found as "gas" on - some systems. diff --git a/third_party/git/Documentation/RelNotes/1.5.3.5.txt b/third_party/git/Documentation/RelNotes/1.5.3.5.txt deleted file mode 100644 index 7ff1d5d0d100..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.5.txt +++ /dev/null @@ -1,94 +0,0 @@ -GIT v1.5.3.5 Release Notes -========================== - -Fixes since v1.5.3.4 --------------------- - - * Comes with git-gui 0.8.4. - - * "git-config" silently ignored options after --list; now it will - error out with a usage message. - - * "git-config --file" failed if the argument used a relative path - as it changed directories before opening the file. - - * "git-config --file" now displays a proper error message if it - cannot read the file specified on the command line. - - * "git-config", "git-diff", "git-apply" failed if run from a - subdirectory with relative GIT_DIR and GIT_WORK_TREE set. - - * "git-blame" crashed if run during a merge conflict. - - * "git-add -i" did not handle single line hunks correctly. - - * "git-rebase -i" and "git-stash apply" failed if external diff - drivers were used for one or more files in a commit. They now - avoid calling the external diff drivers. - - * "git-log --follow" did not work unless diff generation (e.g. -p) - was also requested. - - * "git-log --follow -B" did not work at all. Fixed. - - * "git-log -M -B" did not correctly handle cases of very large files - being renamed and replaced by very small files in the same commit. - - * "git-log" printed extra newlines between commits when a diff - was generated internally (e.g. -S or --follow) but not displayed. - - * "git-push" error message is more helpful when pushing to a - repository with no matching refs and none specified. - - * "git-push" now respects + (force push) on wildcard refspecs, - matching the behavior of git-fetch. - - * "git-filter-branch" now updates the working directory when it - has finished filtering the current branch. - - * "git-instaweb" no longer fails on Mac OS X. - - * "git-cvsexportcommit" didn't always create new parent directories - before trying to create new child directories. Fixed. - - * "git-fetch" printed a scary (but bogus) error message while - fetching a tag that pointed to a tree or blob. The error did - not impact correctness, only user perception. The bogus error - is no longer printed. - - * "git-ls-files --ignored" did not properly descend into non-ignored - directories that themselves contained ignored files if d_type - was not supported by the filesystem. This bug impacted systems - such as AFS. Fixed. - - * Git segfaulted when reading an invalid .gitattributes file. Fixed. - - * post-receive-email example hook was fixed for non-fast-forward - updates. - - * Documentation updates for supported (but previously undocumented) - options of "git-archive" and "git-reflog". - - * "make clean" no longer deletes the configure script that ships - with the git tarball, making multiple architecture builds easier. - - * "git-remote show origin" spewed a warning message from Perl - when no remote is defined for the current branch via - branch.<name>.remote configuration settings. - - * Building with NO_PERL_MAKEMAKER excessively rebuilt contents - of perl/ subdirectory by rewriting perl.mak. - - * http.sslVerify configuration settings were not used in scripted - Porcelains. - - * "git-add" leaked a bit of memory while scanning for files to add. - - * A few workarounds to squelch false warnings from recent gcc have - been added. - - * "git-send-pack $remote frotz" segfaulted when there is nothing - named 'frotz' on the local end. - - * "git-rebase --interactive" did not handle its "--strategy" option - properly. diff --git a/third_party/git/Documentation/RelNotes/1.5.3.6.txt b/third_party/git/Documentation/RelNotes/1.5.3.6.txt deleted file mode 100644 index 069a2b2cf9e9..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.6.txt +++ /dev/null @@ -1,48 +0,0 @@ -GIT v1.5.3.6 Release Notes -========================== - -Fixes since v1.5.3.5 --------------------- - - * git-cvsexportcommit handles root commits better. - - * git-svn dcommit used to clobber when sending a series of - patches. - - * git-svn dcommit failed after attempting to rebase when - started with a dirty index; now it stops upfront. - - * git-grep sometimes refused to work when your index was - unmerged. - - * "git-grep -A1 -B2" acted as if it was told to run "git -A1 -B21". - - * git-hash-object did not honor configuration variables, such as - core.compression. - - * git-index-pack choked on a huge pack on 32-bit machines, even when - large file offsets are supported. - - * atom feeds from git-web said "10" for the month of November. - - * a memory leak in commit walker was plugged. - - * When git-send-email inserted the original author's From: - address in body, it did not mark the message with - Content-type: as needed. - - * git-revert and git-cherry-pick incorrectly refused to start - when the work tree was dirty. - - * git-clean did not honor core.excludesfile configuration. - - * git-add mishandled ".gitignore" files when applying them to - subdirectories. - - * While importing a too branchy history, git-fastimport did not - honor delta depth limit properly. - - * Support for zlib implementations that lack ZLIB_VERNUM and definition - of deflateBound() has been added. - - * Quite a lot of documentation clarifications. diff --git a/third_party/git/Documentation/RelNotes/1.5.3.7.txt b/third_party/git/Documentation/RelNotes/1.5.3.7.txt deleted file mode 100644 index 2f690616c832..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.7.txt +++ /dev/null @@ -1,45 +0,0 @@ -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/third_party/git/Documentation/RelNotes/1.5.3.8.txt b/third_party/git/Documentation/RelNotes/1.5.3.8.txt deleted file mode 100644 index 0e3ff58a46f3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.8.txt +++ /dev/null @@ -1,25 +0,0 @@ -GIT v1.5.3.8 Release Notes -========================== - -Fixes since v1.5.3.7 --------------------- - - * Some documentation used "email.com" as an example domain. - - * git-svn fix to handle funky branch and project names going over - http/https correctly. - - * git-svn fix to tone down a needlessly alarming warning message. - - * git-clone did not correctly report errors while fetching over http. - - * git-send-email added redundant Message-Id: header to the outgoing - e-mail when the patch text already had one. - - * a read-beyond-end-of-buffer bug in configuration file updater was fixed. - - * git-grep used to show the same hit repeatedly for unmerged paths. - - * After amending the patch title in "git-am -i", the command did not - report the patch it applied with the updated title. - diff --git a/third_party/git/Documentation/RelNotes/1.5.3.txt b/third_party/git/Documentation/RelNotes/1.5.3.txt deleted file mode 100644 index 0668d3c0cadc..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.3.txt +++ /dev/null @@ -1,366 +0,0 @@ -GIT v1.5.3 Release Notes -======================== - -Updates since v1.5.2 --------------------- - -* The commit walkers other than http are officially deprecated, - but still supported for now. - -* The submodule support has Porcelain layer. - - Note that the current submodule support is minimal and this is - deliberately so. A design decision we made is that operations - at the supermodule level do not recurse into submodules by - default. The expectation is that later we would add a - mechanism to tell git which submodules the user is interested - in, and this information might be used to determine the - recursive behaviour of certain commands (e.g. "git checkout" - and "git diff"), but currently we haven't agreed on what that - mechanism should look like. Therefore, if you use submodules, - you would probably need "git submodule update" on the - submodules you care about after running a "git checkout" at - the supermodule level. - -* There are a handful pack-objects changes to help you cope better - with repositories with pathologically large blobs in them. - -* For people who need to import from Perforce, a front-end for - fast-import is in contrib/fast-import/. - -* Comes with git-gui 0.8.2. - -* Comes with updated gitk. - -* New commands and options. - - - "git log --date=<format>" can use more formats: iso8601, rfc2822. - - - The hunk header output from "git diff" family can be customized - with the attributes mechanism. See gitattributes(5) for details. - - - "git stash" allows you to quickly save away your work in - progress and replay it later on an updated state. - - - "git rebase" learned an "interactive" mode that let you - pick and reorder which commits to rebuild. - - - "git fsck" can save its findings in $GIT_DIR/lost-found, without a - separate invocation of "git lost-found" command. The blobs stored by - lost-found are stored in plain format to allow you to grep in them. - - - $GIT_WORK_TREE environment variable can be used together with - $GIT_DIR to work in a subdirectory of a working tree that is - not located at "$GIT_DIR/..". - - - Giving "--file=<file>" option to "git config" is the same as - running the command with GIT_CONFIG=<file> environment. - - - "git log" learned a new option "--follow", to follow - renaming history of a single file. - - - "git filter-branch" lets you rewrite the revision history of - specified branches. You can specify a number of filters to - modify the commits, files and trees. - - - "git cvsserver" learned new options (--base-path, --export-all, - --strict-paths) inspired by "git daemon". - - - "git daemon --base-path-relaxed" can help migrating a repository URL - that did not use to use --base-path to use --base-path. - - - "git commit" can use "-t templatefile" option and commit.template - configuration variable to prime the commit message given to you in the - editor. - - - "git submodule" command helps you manage the projects from - the superproject that contain them. - - - In addition to core.compression configuration option, - core.loosecompression and pack.compression options can - independently tweak zlib compression levels used for loose - and packed objects. - - - "git ls-tree -l" shows size of blobs pointed at by the - tree entries, similar to "/bin/ls -l". - - - "git rev-list" learned --regexp-ignore-case and - --extended-regexp options to tweak its matching logic used - for --grep filtering. - - - "git describe --contains" is a handier way to call more - obscure command "git name-rev --tags". - - - "git gc --aggressive" tells the command to spend more cycles - to optimize the repository harder. - - - "git repack" learned a "window-memory" limit which - dynamically reduces the window size to stay within the - specified memory usage. - - - "git repack" can be told to split resulting packs to avoid - exceeding limit specified with "--max-pack-size". - - - "git fsck" gained --verbose option. This is really really - verbose but it might help you identify exact commit that is - corrupt in your repository. - - - "git format-patch" learned --numbered-files option. This - may be useful for MH users. - - - "git format-patch" learned format.subjectprefix configuration - variable, which serves the same purpose as "--subject-prefix" - option. - - - "git tag -n -l" shows tag annotations while listing tags. - - - "git cvsimport" can optionally use the separate-remote layout. - - - "git blame" can be told to see through commits that change - whitespaces and indentation levels with "-w" option. - - - "git send-email" can be told not to thread the messages when - sending out more than one patches. - - - "git send-email" can also be told how to find whom to cc the - message to for each message via --cc-cmd. - - - "git config" learned NUL terminated output format via -z to - help scripts. - - - "git add" learned "--refresh <paths>..." option to selectively refresh - the cached stat information. - - - "git init -q" makes the command quieter. - - - "git -p command" now has a cousin of opposite sex, "git --no-pager - command". - -* Updated behavior of existing commands. - - - "gitweb" can offer multiple snapshot formats. - - ***NOTE*** Unfortunately, this changes the format of the - $feature{snapshot}{default} entry in the per-site - configuration file 'gitweb_config.perl'. It used to be a - three-element tuple that describe a single format; with the - new configuration item format, you only have to say the name - of the format ('tgz', 'tbz2' or 'zip'). Please update the - your configuration file accordingly. - - - "git clone" uses -l (hardlink files under .git) by default when - cloning locally. - - - URL used for "git clone" and friends can specify nonstandard SSH port - by using ssh://host:port/path/to/repo syntax. - - - "git bundle create" can now create a bundle without negative refs, - i.e. "everything since the beginning up to certain points". - - - "git diff" (but not the plumbing level "git diff-tree") now - recursively descends into trees by default. - - - "git diff" does not show differences that come only from - stat-dirtiness in the form of "diff --git" header anymore. - It runs "update-index --refresh" silently as needed. - - - "git tag -l" used to match tags by globbing its parameter as if it - has wildcard '*' on both ends, which made "git tag -l gui" to match - tag 'gitgui-0.7.0'; this was very annoying. You now have to add - asterisk on the sides you want to wildcard yourself. - - - The editor to use with many interactive commands can be - overridden with GIT_EDITOR environment variable, or if it - does not exist, with core.editor configuration variable. As - before, if you have neither, environment variables VISUAL - and EDITOR are consulted in this order, and then finally we - fall back on "vi". - - - "git rm --cached" does not complain when removing a newly - added file from the index anymore. - - - Options to "git log" to affect how --grep/--author options look for - given strings now have shorter abbreviations. -i is for ignore case, - and -E is for extended regexp. - - - "git log" learned --log-size to show the number of bytes in - the log message part of the output to help qgit. - - - "git log --name-status" does not require you to give "-r" anymore. - As a general rule, Porcelain commands should recurse when showing - diff. - - - "git format-patch --root A" can be used to format everything - since the beginning up to A. This was supported with - "git format-patch --root A A" for a long time, but was not - properly documented. - - - "git svn dcommit" retains local merge information. - - - "git svnimport" allows an empty string to be specified as the - trunk/ directory. This is necessary to suck data from a SVN - repository that doe not have trunk/ branches/ and tags/ organization - at all. - - - "git config" to set values also honors type flags like --bool - and --int. - - - core.quotepath configuration can be used to make textual git - output to emit most of the characters in the path literally. - - - "git mergetool" chooses its backend more wisely, taking - notice of its environment such as use of X, Gnome/KDE, etc. - - - "gitweb" shows merge commits a lot nicer than before. The - default view uses more compact --cc format, while the UI - allows to choose normal diff with any parent. - - - snapshot files "gitweb" creates from a repository at - $path/$project/.git are more useful. We use $project part - in the filename, which we used to discard. - - - "git cvsimport" creates lightweight tags; there is no - interesting information we can record in an annotated tag, - and the handcrafted ones the old code created was not - properly formed anyway. - - - "git push" pretends that you immediately fetched back from - the remote by updating corresponding remote tracking - branches if you have any. - - - The diffstat given after a merge (or a pull) honors the - color.diff configuration. - - - "git commit --amend" is now compatible with various message source - options such as -m/-C/-c/-F. - - - "git apply --whitespace=strip" removes blank lines added at - the end of the file. - - - "git fetch" over git native protocols with "-v" option shows - connection status, and the IP address of the other end, to - help diagnosing problems. - - - We used to have core.legacyheaders configuration, when - set to false, allowed git to write loose objects in a format - that mimics the format used by objects stored in packs. It - turns out that this was not so useful. Although we will - continue to read objects written in that format, we do not - honor that configuration anymore and create loose objects in - the legacy/traditional format. - - - "--find-copies-harder" option to diff family can now be - spelled as "-C -C" for brevity. - - - "git mailsplit" (hence "git am") can read from Maildir - formatted mailboxes. - - - "git cvsserver" does not barf upon seeing "cvs login" - request. - - - "pack-objects" honors "delta" attribute set in - .gitattributes. It does not attempt to deltify blobs that - come from paths with delta attribute set to false. - - - "new-workdir" script (in contrib) can now be used with a - bare repository. - - - "git mergetool" learned to use gvimdiff. - - - "gitview" (in contrib) has a better blame interface. - - - "git log" and friends did not handle a commit log message - that is larger than 16kB; they do now. - - - "--pretty=oneline" output format for "git log" and friends - deals with "malformed" commit log messages that have more - than one lines in the first paragraph better. We used to - show the first line, cutting the title at mid-sentence; we - concatenate them into a single line and treat the result as - "oneline". - - - "git p4import" has been demoted to contrib status. For - a superior option, checkout the "git p4" front end to - "git fast-import" (also in contrib). The man page and p4 - rpm have been removed as well. - - - "git mailinfo" (hence "am") now tries to see if the message - is in utf-8 first, instead of assuming iso-8859-1, if - incoming e-mail does not say what encoding it is in. - -* Builds - - - old-style function definitions (most notably, a function - without parameter defined with "func()", not "func(void)") - have been eradicated. - - - "git tag" and "git verify-tag" have been rewritten in C. - -* Performance Tweaks - - - "git pack-objects" avoids re-deltification cost by caching - small enough delta results it creates while looking for the - best delta candidates. - - - "git pack-objects" learned a new heuristic to prefer delta - that is shallower in depth over the smallest delta - possible. This improves both overall packfile access - performance and packfile density. - - - diff-delta code that is used for packing has been improved - to work better on big files. - - - when there are more than one pack files in the repository, - the runtime used to try finding an object always from the - newest packfile; it now tries the same packfile as we found - the object requested the last time, which exploits the - locality of references. - - - verifying pack contents done by "git fsck --full" got boost - by carefully choosing the order to verify objects in them. - - - "git read-tree -m" to read into an already populated index - has been optimized vastly. The effect of this can be seen - when switching branches that have differences in only a - handful paths. - - - "git add paths..." and "git commit paths..." has also been - heavily optimized. - -Fixes since v1.5.2 ------------------- - -All of the fixes in v1.5.2 maintenance series are included in -this release, unless otherwise noted. - -* Bugfixes - - - "gitweb" had trouble handling non UTF-8 text with older - Encode.pm Perl module. - - - "git svn" misparsed the data from the commits in the repository when - the user had "color.diff = true" in the configuration. This has been - fixed. - - - There was a case where "git svn dcommit" clobbered changes made on the - SVN side while committing multiple changes. - - - "git-write-tree" had a bad interaction with racy-git avoidance and - gitattributes mechanisms. - - - "git --bare command" overrode existing GIT_DIR setting and always - made it treat the current working directory as GIT_DIR. - - - "git ls-files --error-unmatch" does not complain if you give the - same path pattern twice by mistake. - - - "git init" autodetected core.filemode but not core.symlinks, which - made a new directory created automatically by "git clone" cumbersome - to use on filesystems that require these configurations to be set. - - - "git log" family of commands behaved differently when run as "git - log" (no pathspec) and as "git log --" (again, no pathspec). This - inconsistency was introduced somewhere in v1.3.0 series but now has - been corrected. - - - "git rebase -m" incorrectly displayed commits that were skipped. diff --git a/third_party/git/Documentation/RelNotes/1.5.4.1.txt b/third_party/git/Documentation/RelNotes/1.5.4.1.txt deleted file mode 100644 index d4e44b8b09d7..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.1.txt +++ /dev/null @@ -1,17 +0,0 @@ -GIT v1.5.4.1 Release Notes -========================== - -Fixes since v1.5.4 ------------------- - - * "git-commit -C $tag" used to work but rewrite in C done in - 1.5.4 broke it. - - * An entry in the .gitattributes file that names a pattern in a - subdirectory of the directory it is in did not match - correctly (e.g. pattern "b/*.c" in "a/.gitattributes" should - match "a/b/foo.c" but it didn't). - - * Customized color specification was parsed incorrectly when - numeric color values are used. This was fixed in 1.5.4.1. - diff --git a/third_party/git/Documentation/RelNotes/1.5.4.2.txt b/third_party/git/Documentation/RelNotes/1.5.4.2.txt deleted file mode 100644 index 21d0df59fbb0..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.2.txt +++ /dev/null @@ -1,43 +0,0 @@ -GIT v1.5.4.2 Release Notes -========================== - -Fixes since v1.5.4 ------------------- - - * The configuration parser was not prepared to see string - valued variables misspelled as boolean and segfaulted. - - * Temporary files left behind due to interrupted object - transfers were not cleaned up with "git prune". - - * "git config --unset" was confused when the unset variables - were spelled with continuation lines in the config file. - - * The merge message detection in "git cvsimport" did not catch - a message that began with "Merge...". - - * "git status" suggests "git rm --cached" for unstaging the - earlier "git add" before the initial commit. - - * "git status" output was incorrect during a partial commit. - - * "git bisect" refused to start when the HEAD was detached. - - * "git bisect" allowed a wildcard character in the commit - message expanded while writing its log file. - - * Manual pages were not formatted correctly with docbook xsl - 1.72; added a workaround. - - * "git-commit -C $tag" used to work but rewrite in C done in - 1.5.4 broke it. This was fixed in 1.5.4.1. - - * An entry in the .gitattributes file that names a pattern in a - subdirectory of the directory it is in did not match - correctly (e.g. pattern "b/*.c" in "a/.gitattributes" should - match "a/b/foo.c" but it didn't). This was fixed in 1.5.4.1. - - * Customized color specification was parsed incorrectly when - numeric color values are used. This was fixed in 1.5.4.1. - - * http transport misbehaved when linked with curl-gnutls. diff --git a/third_party/git/Documentation/RelNotes/1.5.4.3.txt b/third_party/git/Documentation/RelNotes/1.5.4.3.txt deleted file mode 100644 index b0fc67fb2ade..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.3.txt +++ /dev/null @@ -1,27 +0,0 @@ -GIT v1.5.4.3 Release Notes -========================== - -Fixes since v1.5.4.2 --------------------- - - * RPM spec used to pull in everything with 'git'. This has been - changed so that 'git' package contains just the core parts, - and we now supply 'git-all' metapackage to slurp in everything. - This should match end user's expectation better. - - * When some refs failed to update, git-push reported "failure" - which was unclear if some other refs were updated or all of - them failed atomically (the answer is the former). Reworded - the message to clarify this. - - * "git clone" from a repository whose HEAD was misconfigured - did not set up the remote properly. Now it tries to do - better. - - * Updated git-push documentation to clarify what "matching" - means, in order to reduce user confusion. - - * Updated git-add documentation to clarify "add -u" operates in - the current subdirectory you are in, just like other commands. - - * git-gui updates to work on OSX and Windows better. diff --git a/third_party/git/Documentation/RelNotes/1.5.4.4.txt b/third_party/git/Documentation/RelNotes/1.5.4.4.txt deleted file mode 100644 index 323c1a88c7fe..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.4.txt +++ /dev/null @@ -1,66 +0,0 @@ -GIT v1.5.4.4 Release Notes -========================== - -Fixes since v1.5.4.3 --------------------- - - * Building and installing with an overtight umask such as 077 made - installed templates unreadable by others, while the rest of the install - are done in a way that is friendly to umask 022. - - * "git cvsexportcommit -w $cvsdir" misbehaved when GIT_DIR is set to a - relative directory. - - * "git http-push" had an invalid memory access that could lead it to - segfault. - - * When "git rebase -i" gave control back to the user for a commit that is - marked to be edited, it just said "modify it with commit --amend", - without saying what to do to continue after modifying it. Give an - explicit instruction to run "rebase --continue" to be more helpful. - - * "git send-email" in 1.5.4.3 issued a bogus empty In-Reply-To: header. - - * "git bisect" showed mysterious "won't bisect on seeked tree" error message. - This was leftover from Cogito days to prevent "bisect" starting from a - cg-seeked state. We still keep the Cogito safety, but running "git bisect - start" when another bisect was in effect will clean up and start over. - - * "git push" with an explicit PATH to receive-pack did not quite work if - receive-pack was not on usual PATH. We earlier fixed the same issue - with "git fetch" and upload-pack, but somehow forgot to do so in the - other direction. - - * git-gui's info dialog was not displayed correctly when the user tries - to commit nothing (i.e. without staging anything). - - * "git revert" did not properly fail when attempting to run with a - dirty index. - - * "git merge --no-commit --no-ff <other>" incorrectly made commits. - - * "git merge --squash --no-ff <other>", which is a nonsense combination - of options, was not rejected. - - * "git ls-remote" and "git remote show" against an empty repository - failed, instead of just giving an empty result (regression). - - * "git fast-import" did not handle a renamed path whose name needs to be - quoted, due to a bug in unquote_c_style() function. - - * "git cvsexportcommit" was confused when multiple files with the same - basename needed to be pushed out in the same commit. - - * "git daemon" did not send early errors to syslog. - - * "git log --merge" did not work well with --left-right option. - - * "git svn" prompted for client cert password every time it accessed the - server. - - * The reset command in "git fast-import" data stream was documented to - end with an optional LF, but it actually required one. - - * "git svn dcommit/rebase" did not honor --rewrite-root option. - -Also included are a handful documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.4.5.txt b/third_party/git/Documentation/RelNotes/1.5.4.5.txt deleted file mode 100644 index bbd130e36d41..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.5.txt +++ /dev/null @@ -1,56 +0,0 @@ -GIT v1.5.4.5 Release Notes -========================== - -Fixes since v1.5.4.4 --------------------- - - * "git fetch there" when the URL information came from the Cogito style - branches/there file did not update refs/heads/there (regression in - 1.5.4). - - * Bogus refspec configuration such as "remote.there.fetch = =" were not - detected as errors (regression in 1.5.4). - - * You couldn't specify a custom editor whose path contains a whitespace - via GIT_EDITOR (and core.editor). - - * The subdirectory filter to "git filter-branch" mishandled a history - where the subdirectory becomes empty and then later becomes non-empty. - - * "git shortlog" gave an empty line if the original commit message was - malformed (e.g. a botched import from foreign SCM). Now it finds the - first non-empty line and uses it for better information. - - * When the user fails to give a revision parameter to "git svn", an error - from the Perl interpreter was issued because the script lacked proper - error checking. - - * After "git rebase" stopped due to conflicts, if the user played with - "git reset" and friends, "git rebase --abort" failed to go back to the - correct commit. - - * Additional work trees prepared with git-new-workdir (in contrib/) did - not share git-svn metadata directory .git/svn with the original. - - * "git-merge-recursive" did not mark addition of the same path with - different filemodes correctly as a conflict. - - * "gitweb" gave malformed URL when pathinfo stype paths are in use. - - * "-n" stands for "--no-tags" again for "git fetch". - - * "git format-patch" did not detect the need to add 8-bit MIME header - when the user used format.header configuration. - - * "rev~" revision specifier used to mean "rev", which was inconsistent - with how "rev^" worked. Now "rev~" is the same as "rev~1" (hence it - also is the same as "rev^1"), and "rev~0" is the same as "rev^0" - (i.e. it has to be a commit). - - * "git quiltimport" did not grok empty lines, lines in "file -pNNN" - format to specify the prefix levels and lines with trailing comments. - - * "git rebase -m" triggered pre-commit verification, which made - "rebase --continue" impossible. - -As usual, it also comes with many documentation fixes and clarifications. diff --git a/third_party/git/Documentation/RelNotes/1.5.4.6.txt b/third_party/git/Documentation/RelNotes/1.5.4.6.txt deleted file mode 100644 index 3e3c3e55a31f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.6.txt +++ /dev/null @@ -1,43 +0,0 @@ -GIT v1.5.4.6 Release Notes -========================== - -I personally do not think there is any reason anybody should want to -run v1.5.4.X series these days, because 'master' version is always -more stable than any tagged released version of git. - -This is primarily to futureproof "git-shell" to accept requests -without a dash between "git" and subcommand name (e.g. "git -upload-pack") which the newer client will start to make sometime in -the future. - -Fixes since v1.5.4.5 --------------------- - - * Command line option "-n" to "git-repack" was not correctly parsed. - - * Error messages from "git-apply" when the patchfile cannot be opened - have been improved. - - * Error messages from "git-bisect" when given nonsense revisions have - been improved. - - * reflog syntax that uses time e.g. "HEAD@{10 seconds ago}:path" did not - stop parsing at the closing "}". - - * "git rev-parse --symbolic-full-name ^master^2" printed solitary "^", - but it should print nothing. - - * "git apply" did not enforce "match at the beginning" correctly. - - * a path specification "a/b" in .gitattributes file should not match - "sub/a/b", but it did. - - * "git log --date-order --topo-order" did not override the earlier - date-order with topo-order as expected. - - * "git fast-export" did not export octopus merges correctly. - - * "git archive --prefix=$path/" mishandled gitattributes. - -As usual, it also comes with many documentation fixes and clarifications. - diff --git a/third_party/git/Documentation/RelNotes/1.5.4.7.txt b/third_party/git/Documentation/RelNotes/1.5.4.7.txt deleted file mode 100644 index 9065a0e27346..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.7.txt +++ /dev/null @@ -1,10 +0,0 @@ -GIT v1.5.4.7 Release Notes -========================== - -Fixes since 1.5.4.7 -------------------- - - * Removed support for an obsolete gitweb request URI, whose - implementation ran "git diff" Porcelain, instead of using plumbing, - which would have run an external diff command specified in the - repository configuration as the gitweb user. diff --git a/third_party/git/Documentation/RelNotes/1.5.4.txt b/third_party/git/Documentation/RelNotes/1.5.4.txt deleted file mode 100644 index f1323b61746e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.4.txt +++ /dev/null @@ -1,377 +0,0 @@ -GIT v1.5.4 Release Notes -======================== - -Removal -------- - - * "git svnimport" was removed in favor of "git svn". It is still there - in the source tree (contrib/examples) but unsupported. - - * As git-commit and git-status have been rewritten, "git runstatus" - helper script lost all its users and has been removed. - - -Temporarily disabled --------------------- - - * "git http-push" is known not to work well with cURL library older - than 7.16, and we had reports of repository corruption. It is - disabled on such platforms for now. Unfortunately, 1.5.3.8 shares - the same issue. In other words, this does not mean you will be - fine if you stick to an older git release. For now, please do not - use http-push from older git with cURL older than 7.16 if you - value your data. A proper fix will hopefully materialize in - later versions. - - -Deprecation notices -------------------- - - * From v1.6.0, git 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 forms 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 - dash-less forms (e.g. "git commit") instead. - - - Using dashed forms 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 forms 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 change. - - * The post-receive hook was introduced in March 2007 to supersede - the 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, starting from v1.6.0. - - * "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; "git peek-remote" will be removed in - the future. - - * "git repo-config" which was an old name for "git config" command - has been supported without being advertised for a long time. The - next feature release will remove it. - - * From v1.6.0, the repack.usedeltabaseoffset config option will default - to true, which will give denser packfiles (i.e. more efficient storage). - The downside is that git older than version 1.4.4 will not be able - to directly use a repository packed using this setting. - - * From v1.6.0, the pack.indexversion config option will default to 2, - which is slightly more efficient, and makes repacking more immune to - data corruptions. Git older than version 1.5.2 may revert to version 1 - of the pack index with a manual "git index-pack" to be able to directly - access corresponding pack files. - - -Updates since v1.5.3 --------------------- - - * Comes with much improved gitk, with i18n. - - * Comes with git-gui 0.9.2 with i18n. - - * gitk is now merged as a subdirectory of git.git project, in - preparation for its i18n. - - * progress displays 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. - - * Output processing for '--pretty=format:<user format>' has been - optimized. - - * Rename detection of diff family while detecting exact matches has - been greatly optimized. - - * Rename detection of diff family tries to make more natural looking - pairing. Earlier, if multiple identical rename sources were - found in the preimage, the source used was picked pretty much at random. - - * Value "true" for color.diff and color.status configuration used to - mean "always" (even when the output is not going to a terminal). - This has been corrected to mean the same thing as "auto". - - * "git diff" Porcelain now respects diff.external configuration, which - is another way to specify GIT_EXTERNAL_DIFF. - - * "git diff" can be told to use different prefixes other than - "a/" and "b/" e.g. "git diff --src-prefix=l/ --dst-prefix=k/". - - * "git diff" sometimes did not quote paths with funny - characters properly. - - * "git log" (and any revision traversal commands) misbehaved - when --diff-filter is given but was not asked to actually - produce diff. - - * HTTP proxy can be specified per remote repository using - remote.*.httpproxy configuration, or global http.proxy configuration - variable. - - * Various Perforce importer updates. - - * Example update and post-receive hooks have been improved. - - * Any command that wants to take a commit object name can now use - ":/string" syntax to name a commit. - - * "git reset" is now built-in and its output can be squelched with -q. - - * "git reset --hard" does not make any sense in a bare - repository, but did not error out; fixed. - - * "git send-email" can optionally talk over ssmtp and use SMTP-AUTH. - - * "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 - --skip" without first running "git reset --hard", as the command now - runs it for you. - - * "git rebase --interactive" mode can now work on detached HEAD. - - * Other minor to serious bugs in "git rebase -i" have been fixed. - - * "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 rebase -i" also triggers rerere to help your repeated merges. - - * "git merge" can call the "post-merge" hook. - - * "git pack-objects" can optionally run deltification with multiple - threads. - - * "git archive" can optionally substitute keywords in files marked with - export-subst attribute. - - * "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 for-each-ref" learned %(xxxdate:<date-format>) syntax to show the - various date fields in different formats. - - * "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). - - * The kinds of whitespace errors "git diff" and "git apply" notice (and - fix) can be controlled via 'core.whitespace' configuration variable - and 'whitespace' attribute in .gitattributes file. - - * "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 local side when the - remote refused to update the corresponding ref. - - * "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 push" can remove a corrupt ref at the remote site with the usual - ":ref" refspec. - - * "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 remote" learned "rm" subcommand. - - * "git cvsserver" can be run via "git shell". Also, "cvs" is - recognized as a synonym for "git cvsserver", so that CVS users - can be switched to git just by changing their login shell. - - * "git cvsserver" acts more like receive-pack by running post-receive - and post-update hooks. - - * "git am" and "git rebase" are far less verbose. - - * "git pull" learned to pass --[no-]ff option to underlying "git - merge". - - * "git pull --rebase" is a different way to integrate what you fetched - into your current branch. - - * "git fast-export" produces data-stream that can be fed to fast-import - to reproduce the history recorded in a git repository. - - * "git add -i" takes pathspecs to limit the set of files to work on. - - * "git add -p" is a short-hand to go directly to the selective patch - subcommand in the interactive command loop and to exit when done. - - * "git add -i" UI has been colorized. The interactive prompt - and menu can be colored by setting color.interactive - configuration. The diff output (including the hunk picker) - are colored with color.diff configuration. - - * "git commit --allow-empty" allows you to create a single-parent - commit that records the same tree as its parent, overriding the usual - safety valve. - - * "git commit --amend" can amend a merge that does not change the tree - from its first parent. - - * "git commit" used to unconditionally strip comment lines that - began with '#' and removed excess blank lines. This behavior has - been made configurable. - - * "git commit" has been rewritten in C. - - * "git stash random-text" does not create a new stash anymore. It was - a UI mistake. Use "git stash save random-text", or "git stash" - (without extra args) for that. - - * "git stash clear extra-text" does not clear the whole stash - anymore. It is tempting to expect "git stash clear stash@{2}" - to drop only a single named stash entry, and it is rude to - discard everything when that is asked (but not provided). - - * "git prune --expire <time>" can exempt young loose objects from - getting pruned. - - * "git branch --contains <commit>" can list branches that are - descendants of a given commit. - - * "git log" learned --early-output option to help interactive GUI - implementations. - - * "git bisect" learned "skip" action to mark untestable commits. - - * "git bisect visualize" learned a shorter synonym "git bisect view". - - * "git bisect visualize" runs "git log" in a non-windowed - environments. It also can be told what command to run (e.g. "git - bisect visualize tig"). - - * "git format-patch" learned "format.numbered" configuration variable - to automatically turn --numbered option on when more than one commits - are formatted. - - * "git ls-files" learned "--exclude-standard" to use the canned set of - exclude files. - - * "git tag -a -f existing" begins the editor session using the existing - annotation message. - - * "git tag -m one -m bar" (multiple -m options) behaves similarly to - "git commit"; the parameters to -m options are formatted as separate - paragraphs. - - * The format "git show" outputs an annotated tag has been updated to - include "Tagger: " and "Date: " lines from the tag itself. Strictly - speaking this is a backward incompatible change, but this is a - reasonable usability fix and people's scripts shouldn't have been - relying on the exact output from "git show" Porcelain anyway. - - * "git cvsimport" did not notice errors from underlying "cvsps" - and produced a corrupt import silently. - - * "git cvsexportcommit" learned -w option to specify and switch to the - CVS working directory. - - * "git checkout" from a subdirectory learned to use "../path" to allow - checking out a path outside the current directory without cd'ing up. - - * "git checkout" from and to detached HEAD leaves a bit more - information in the reflog. - - * "git send-email --dry-run" shows full headers for easier diagnosis. - - * "git merge-ours" is now built-in. - - * "git svn" learned "info" and "show-externals" subcommands. - - * "git svn" run from a subdirectory failed to read settings from the - .git/config. - - * "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 svn" wasted way too much disk to record revision mappings - between svn and git; a new representation that is much more compact - for this information has been introduced to correct this. - - * "git svn" left temporary index files it used without cleaning them - up; this was corrected. - - * "git status" from a subdirectory now shows relative paths, which - makes copy-and-pasting for git-checkout/git-add/git-rm easier. The - traditional behavior to show the full path relative to the top of - the work tree can be had by setting status.relativepaths - configuration variable to false. - - * "git blame" kept text for each annotated revision in core needlessly; - this has been corrected. - - * "git shortlog" learned to default to HEAD when the standard input is - a terminal and the user did not give any revision parameter. - - * "git shortlog" learned "-e" option to show e-mail addresses as well as - authors' names. - - * "git help" learned "-w" option to show documentation in browsers. - - * In addition there are quite a few internal clean-ups. Notably: - - - many fork/exec have been replaced with run-command API, - brought from the msysgit effort. - - - introduction and more use of the option parser API. - - - enhancement and more use of the strbuf API. - - * Makefile tweaks to support HP-UX is in. - -Fixes since v1.5.3 ------------------- - -All of the fixes in v1.5.3 maintenance series are included in -this release, unless otherwise noted. - -These fixes are only in v1.5.4 and not backported to v1.5.3 maintenance -series. - - * The way "git diff --check" behaves is much more consistent with the way - "git apply --whitespace=warn" works. - - * "git svn" talking with the SVN over HTTP will correctly quote branch - and project names. - - * "git config" did not work correctly on platforms that define - REG_NOMATCH to an even number. - - * Recent versions of AsciiDoc 8 has a change to break our - documentation; a workaround has been implemented. - - * "git diff --color-words" colored context lines in a wrong color. diff --git a/third_party/git/Documentation/RelNotes/1.5.5.1.txt b/third_party/git/Documentation/RelNotes/1.5.5.1.txt deleted file mode 100644 index 7de419708f77..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.5.1.txt +++ /dev/null @@ -1,44 +0,0 @@ -GIT v1.5.5.1 Release Notes -========================== - -Fixes since v1.5.5 ------------------- - - * "git archive --prefix=$path/" mishandled gitattributes. - - * "git fetch -v" that fetches into FETCH_HEAD did not report the summary - the same way as done for updating the tracking refs. - - * "git svn" misbehaved when the configuration file customized the "git - log" output format using format.pretty. - - * "git submodule status" leaked an unnecessary error message. - - * "git log --date-order --topo-order" did not override the earlier - date-order with topo-order as expected. - - * "git bisect good $this" did not check the validity of the revision - given properly. - - * "url.<there>.insteadOf" did not work correctly. - - * "git clean" ran inside subdirectory behaved as if the directory was - explicitly specified for removal by the end user from the top level. - - * "git bisect" from a detached head leaked an unnecessary error message. - - * "git bisect good $a $b" when $a is Ok but $b is bogus should have - atomically failed before marking $a as good. - - * "git fmt-merge-msg" did not clean up leading empty lines from commit - log messages like "git log" family does. - - * "git am" recorded a commit with empty Subject: line without - complaining. - - * when given a commit log message whose first paragraph consists of - multiple lines, "git rebase" squashed it into a single line. - - * "git remote add $bogus_name $url" did not complain properly. - -Also comes with various documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.5.2.txt b/third_party/git/Documentation/RelNotes/1.5.5.2.txt deleted file mode 100644 index 391a7b02eaf3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.5.2.txt +++ /dev/null @@ -1,27 +0,0 @@ -GIT v1.5.5.2 Release Notes -========================== - -Fixes since v1.5.5.1 --------------------- - - * "git repack -n" was mistakenly made no-op earlier. - - * "git imap-send" wanted to always have imap.host even when use of - imap.tunnel made it unnecessary. - - * reflog syntax that uses time e.g. "HEAD@{10 seconds ago}:path" did not - stop parsing at the closing "}". - - * "git rev-parse --symbolic-full-name ^master^2" printed solitary "^", - but it should print nothing. - - * "git commit" did not detect when it failed to write tree objects. - - * "git fetch" sometimes transferred too many objects unnecessarily. - - * a path specification "a/b" in .gitattributes file should not match - "sub/a/b". - - * various gitweb fixes. - -Also comes with various documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.5.3.txt b/third_party/git/Documentation/RelNotes/1.5.5.3.txt deleted file mode 100644 index f22f98b734f8..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.5.3.txt +++ /dev/null @@ -1,12 +0,0 @@ -GIT v1.5.5.3 Release Notes -========================== - -Fixes since v1.5.5.2 --------------------- - - * "git send-email --compose" did not notice that non-ascii contents - needed some MIME magic. - - * "git fast-export" did not export octopus merges correctly. - -Also comes with various documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.5.5.4.txt b/third_party/git/Documentation/RelNotes/1.5.5.4.txt deleted file mode 100644 index 2d0279ecce62..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.5.4.txt +++ /dev/null @@ -1,7 +0,0 @@ -GIT v1.5.5.4 Release Notes -========================== - -Fixes since v1.5.5.4 --------------------- - - * "git name-rev --all" used to segfault. diff --git a/third_party/git/Documentation/RelNotes/1.5.5.5.txt b/third_party/git/Documentation/RelNotes/1.5.5.5.txt deleted file mode 100644 index 30fa3615c77d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.5.5.txt +++ /dev/null @@ -1,11 +0,0 @@ -GIT v1.5.5.5 Release Notes -========================== - -I personally do not think there is any reason anybody should want to -run v1.5.5.X series these days, because 'master' version is always -more stable than any tagged released version of git. - -This is primarily to futureproof "git-shell" to accept requests -without a dash between "git" and subcommand name (e.g. "git -upload-pack") which the newer client will start to make sometime in -the future. diff --git a/third_party/git/Documentation/RelNotes/1.5.5.6.txt b/third_party/git/Documentation/RelNotes/1.5.5.6.txt deleted file mode 100644 index d5e85cb70ebe..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.5.6.txt +++ /dev/null @@ -1,10 +0,0 @@ -GIT v1.5.5.6 Release Notes -========================== - -Fixes since 1.5.5.5 -------------------- - - * Removed support for an obsolete gitweb request URI, whose - implementation ran "git diff" Porcelain, instead of using plumbing, - which would have run an external diff command specified in the - repository configuration as the gitweb user. diff --git a/third_party/git/Documentation/RelNotes/1.5.5.txt b/third_party/git/Documentation/RelNotes/1.5.5.txt deleted file mode 100644 index 29322124881b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.5.txt +++ /dev/null @@ -1,207 +0,0 @@ -GIT v1.5.5 Release Notes -======================== - -Updates since v1.5.4 --------------------- - -(subsystems) - - * Comes with git-gui 0.10.1 - -(portability) - - * We shouldn't ask for BSD group ownership semantics by setting g+s bit - on directories on older BSD systems that refuses chmod() by non root - users. BSD semantics is the default there anyway. - - * Bunch of portability improvement patches coming from an effort to port - to Solaris has been applied. - -(performance) - - * On platforms with suboptimal qsort(3) implementation, there - is an option to use more reasonable substitute we ship with - our software. - - * New configuration variable "pack.packsizelimit" can be used - in place of command line option --max-pack-size. - - * "git fetch" over the native git protocol used to make a - connection to find out the set of current remote refs and - another to actually download the pack data. We now use only - one connection for these tasks. - - * "git commit" does not run lstat(2) more than necessary - anymore. - -(usability, bells and whistles) - - * Bash completion script (in contrib) are aware of more commands and - options. - - * You can be warned when core.autocrlf conversion is applied in - such a way that results in an irreversible conversion. - - * A catch-all "color.ui" configuration variable can be used to - enable coloring of all color-capable commands, instead of - individual ones such as "color.status" and "color.branch". - - * The commands refused to take absolute pathnames where they - require pathnames relative to the work tree or the current - subdirectory. They now can take absolute pathnames in such a - case as long as the pathnames do not refer outside of the - work tree. E.g. "git add $(pwd)/foo" now works. - - * Error messages used to be sent to stderr, only to get hidden, - when $PAGER was in use. They now are sent to stdout along - with the command output to be shown in the $PAGER. - - * A pattern "foo/" in .gitignore file now matches a directory - "foo". Pattern "foo" also matches as before. - - * bash completion's prompt helper function can talk about - operation in-progress (e.g. merge, rebase, etc.). - - * Configuration variables "url.<usethis>.insteadof = <otherurl>" can be - used to tell "git-fetch" and "git-push" to use different URL than what - is given from the command line. - - * "git add -i" behaves better even before you make an initial commit. - - * "git am" refused to run from a subdirectory without a good reason. - - * After "git apply --whitespace=fix" fixes whitespace errors in a patch, - a line before the fix can appear as a context or preimage line in a - later patch, causing the patch not to apply. The command now knows to - see through whitespace fixes done to context lines to successfully - apply such a patch series. - - * "git branch" (and "git checkout -b") to branch from a local branch can - optionally set "branch.<name>.merge" to mark the new branch to build on - the other local branch, when "branch.autosetupmerge" is set to - "always", or when passing the command line option "--track" (this option - was ignored when branching from local branches). By default, this does - not happen when branching from a local branch. - - * "git checkout" to switch to a branch that has "branch.<name>.merge" set - (i.e. marked to build on another branch) reports how much the branch - and the other branch diverged. - - * When "git checkout" has to update a lot of paths, it used to be silent - for 4 seconds before it showed any progress report. It is now a bit - more impatient and starts showing progress report early. - - * "git commit" learned a new hook "prepare-commit-msg" that can - inspect what is going to be committed and prepare the commit - log message template to be edited. - - * "git cvsimport" can now take more than one -M options. - - * "git describe" learned to limit the tags to be used for - naming with --match option. - - * "git describe --contains" now barfs when the named commit - cannot be described. - - * "git describe --exact-match" describes only commits that are tagged. - - * "git describe --long" describes a tagged commit as $tag-0-$sha1, - instead of just showing the exact tagname. - - * "git describe" warns when using a tag whose name and path contradict - with each other. - - * "git diff" learned "--relative" option to limit and output paths - relative to the current directory when working in a subdirectory. - - * "git diff" learned "--dirstat" option to show birds-eye-summary of - changes more concisely than "--diffstat". - - * "git format-patch" learned --cover-letter option to generate a cover - letter template. - - * "git gc" learned --quiet option. - - * "git gc" now automatically prunes unreachable objects that are two - weeks old or older. - - * "git gc --auto" can be disabled more easily by just setting gc.auto - to zero. It also tolerates more packfiles by default. - - * "git grep" now knows "--name-only" is a synonym for the "-l" option. - - * "git help <alias>" now reports "'git <alias>' is alias to <what>", - instead of saying "No manual entry for git-<alias>". - - * "git help" can use different backends to show manual pages and this can - be configured using "man.viewer" configuration. - - * "gitk" does not restore window position from $HOME/.gitk anymore (it - still restores the size). - - * "git log --grep=<what>" learned "--fixed-strings" option to look for - <what> without treating it as a regular expression. - - * "git gui" learned an auto-spell checking. - - * "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as - expected; they push the current branch (and only the current branch). - In addition, HEAD can be written as the value of "remote.<there>.push" - configuration variable. - - * When the configuration variable "pack.threads" is set to 0, "git - repack" auto detects the number of CPUs and uses that many threads. - - * "git send-email" learned to prompt for passwords - interactively. - - * "git send-email" learned an easier way to suppress CC - recipients. - - * "git stash" learned "pop" command, that applies the latest stash and - removes it from the stash, and "drop" command to discard the named - stash entry. - - * "git submodule" learned a new subcommand "summary" to show the - symmetric difference between the HEAD version and the work tree version - of the submodule commits. - - * Various "git cvsimport", "git cvsexportcommit", "git cvsserver", - "git svn" and "git p4" improvements. - -(internal) - - * Duplicated code between git-help and git-instaweb that - launches user's preferred browser has been refactored. - - * It is now easier to write test scripts that records known - breakages. - - * "git checkout" is rewritten in C. - - * "git remote" is rewritten in C. - - * Two conflict hunks that are separated by a very short span of common - lines are now coalesced into one larger hunk, to make the result easier - to read. - - * Run-command API's use of file descriptors is documented clearer and - is more consistent now. - - * diff output can be sent to FILE * that is different from stdout. This - will help reimplementing more things in C. - -Fixes since v1.5.4 ------------------- - -All of the fixes in v1.5.4 maintenance series are included in -this release, unless otherwise noted. - - * "git-http-push" did not allow deletion of remote ref with the usual - "push <remote> :<branch>" syntax. - - * "git-rebase --abort" did not go back to the right location if - "git-reset" was run during the "git-rebase" session. - - * "git imap-send" without setting imap.host did not error out but - segfaulted. diff --git a/third_party/git/Documentation/RelNotes/1.5.6.1.txt b/third_party/git/Documentation/RelNotes/1.5.6.1.txt deleted file mode 100644 index 4864b16445f3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.6.1.txt +++ /dev/null @@ -1,28 +0,0 @@ -GIT v1.5.6.1 Release Notes -========================== - -Fixes since v1.5.6 ------------------- - -* Last minute change broke loose object creation on AIX. - -* (performance fix) We used to make $GIT_DIR absolute path early in the - programs but keeping it relative to the current directory internally - gives 1-3 per-cent performance boost. - -* bash completion knows the new --graph option to git-log family. - - -* git-diff -c/--cc showed unnecessary "deletion" lines at the context - boundary. - -* git-for-each-ref ignored %(object) and %(type) requests for tag - objects. - -* git-merge usage had a typo. - -* Rebuilding of git-svn metainfo database did not take rewriteRoot - option into account. - -* Running "git-rebase --continue/--skip/--abort" before starting a - rebase gave nonsense error messages. diff --git a/third_party/git/Documentation/RelNotes/1.5.6.2.txt b/third_party/git/Documentation/RelNotes/1.5.6.2.txt deleted file mode 100644 index 5902a85a7861..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.6.2.txt +++ /dev/null @@ -1,40 +0,0 @@ -GIT v1.5.6.2 Release Notes -========================== - -Futureproof ------------ - - * "git-shell" accepts requests without a dash between "git" and - subcommand name (e.g. "git upload-pack") which the newer client will - start to make sometime in the future. - -Fixes since v1.5.6.1 --------------------- - -* "git clone" from a remote that is named with url.insteadOf setting in - $HOME/.gitconfig did not work well. - -* "git describe --long --tags" segfaulted when the described revision was - tagged with a lightweight tag. - -* "git diff --check" did not report the result via its exit status - reliably. - -* When remote side used to have branch 'foo' and git-fetch finds that now - it has branch 'foo/bar', it refuses to lose the existing remote tracking - branch and its reflog. The error message has been improved to suggest - pruning the remote if the user wants to proceed and get the latest set - of branches from the remote, including such 'foo/bar'. - -* "git reset file" should mean the same thing as "git reset HEAD file", - but we required disambiguating -- even when "file" is not ambiguous. - -* "git show" segfaulted when an annotated tag that points at another - annotated tag was given to it. - -* Optimization for a large import via "git-svn" introduced in v1.5.6 had a - serious memory and temporary file leak, which made it unusable for - moderately large import. - -* "git-svn" mangled remote nickname used in the configuration file - unnecessarily. diff --git a/third_party/git/Documentation/RelNotes/1.5.6.3.txt b/third_party/git/Documentation/RelNotes/1.5.6.3.txt deleted file mode 100644 index f61dd3504afb..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.6.3.txt +++ /dev/null @@ -1,52 +0,0 @@ -GIT v1.5.6.3 Release Notes -========================== - -Fixes since v1.5.6.2 --------------------- - -* Setting core.sharedrepository to traditional "true" value was supposed to make - the repository group writable but should not affect permission for others. - However, since 1.5.6, it was broken to drop permission for others when umask is - 022, making the repository unreadable by others. - -* Setting GIT_TRACE will report spawning of external process via run_command(). - -* Using an object with very deep delta chain pinned memory needed for extracting - intermediate base objects unnecessarily long, leading to excess memory usage. - -* Bash completion script did not notice '--' marker on the command - line and tried the relatively slow "ref completion" even when - completing arguments after one. - -* Registering a non-empty blob racily and then truncating the working - tree file for it confused "racy-git avoidance" logic into thinking - that the path is now unchanged. - -* The section that describes attributes related to git-archive were placed - in a wrong place in the gitattributes(5) manual page. - -* "git am" was not helpful to the users when it detected that the committer - information is not set up properly yet. - -* "git clone" had a leftover debugging fprintf(). - -* "git clone -q" was not quiet enough as it used to and gave object count - and progress reports. - -* "git clone" marked downloaded packfile with .keep; this could be a - good thing if the remote side is well packed but otherwise not, - especially for a project that is not really big. - -* "git daemon" used to call syslog() from a signal handler, which - could raise signals of its own but generally is not reentrant. This - was fixed by restructuring the code to report syslog() after the handler - returns. - -* When "git push" tries to remove a remote ref, and corresponding - tracking ref is missing, we used to report error (i.e. failure to - remove something that does not exist). - -* "git mailinfo" (hence "git am") did not handle commit log messages in a - MIME multipart mail correctly. - -Contains other various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.5.6.4.txt b/third_party/git/Documentation/RelNotes/1.5.6.4.txt deleted file mode 100644 index d8968f1ecbd9..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.6.4.txt +++ /dev/null @@ -1,47 +0,0 @@ -GIT v1.5.6.4 Release Notes -========================== - -Fixes since v1.5.6.3 --------------------- - -* Various commands could overflow its internal buffer on a platform - with small PATH_MAX value in a repository that has contents with - long pathnames. - -* There wasn't a way to make --pretty=format:%<> specifiers to honor - .mailmap name rewriting for authors and committers. Now you can with - %aN and %cN. - -* Bash completion wasted too many cycles; this has been optimized to be - usable again. - -* Bash completion lost ref part when completing something like "git show - pu:Makefile". - -* "git-cvsserver" did not clean up its temporary working area after annotate - request. - -* "git-daemon" called syslog() from its signal handler, which was a - no-no. - -* "git-fetch" into an empty repository used to remind that the fetch will - be huge by saying "no common commits", but this was an unnecessary - noise; it is already known by the user anyway. - -* "git-http-fetch" would have segfaulted when pack idx file retrieved - from the other side was corrupt. - -* "git-index-pack" used too much memory when dealing with a deep delta chain. - -* "git-mailinfo" (hence "git-am") did not correctly handle in-body [PATCH] - line to override the commit title taken from the mail Subject header. - -* "git-rebase -i -p" lost parents that are not involved in the history - being rewritten. - -* "git-rm" lost track of where the index file was when GIT_DIR was - specified as a relative path. - -* "git-rev-list --quiet" was not quiet as advertised. - -Contains other various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.5.6.5.txt b/third_party/git/Documentation/RelNotes/1.5.6.5.txt deleted file mode 100644 index 47ca1724620f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.6.5.txt +++ /dev/null @@ -1,29 +0,0 @@ -GIT v1.5.6.5 Release Notes -========================== - -Fixes since v1.5.6.4 --------------------- - -* "git cvsimport" used to spit out "UNKNOWN LINE..." diagnostics to stdout. - -* "git commit -F filename" and "git tag -F filename" run from subdirectories - did not read the right file. - -* "git init --template=" with blank "template" parameter linked files - under root directories to .git, which was a total nonsense. Instead, it - means "I do not want to use anything from the template directory". - -* "git diff-tree" and other diff plumbing ignored diff.renamelimit configuration - variable when the user explicitly asked for rename detection. - -* "git name-rev --name-only" did not work when "--stdin" option was in effect. - -* "git show-branch" mishandled its 8th branch. - -* Addition of "git update-index --ignore-submodules" that happened during - 1.5.6 cycle broke "git update-index --ignore-missing". - -* "git send-email" did not parse charset from an existing Content-type: - header properly. - -Contains other various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.5.6.6.txt b/third_party/git/Documentation/RelNotes/1.5.6.6.txt deleted file mode 100644 index 79da23db5ac6..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.6.6.txt +++ /dev/null @@ -1,10 +0,0 @@ -GIT v1.5.6.6 Release Notes -========================== - -Fixes since 1.5.6.5 -------------------- - - * Removed support for an obsolete gitweb request URI, whose - implementation ran "git diff" Porcelain, instead of using plumbing, - which would have run an external diff command specified in the - repository configuration as the gitweb user. diff --git a/third_party/git/Documentation/RelNotes/1.5.6.txt b/third_party/git/Documentation/RelNotes/1.5.6.txt deleted file mode 100644 index e143d8d61be1..000000000000 --- a/third_party/git/Documentation/RelNotes/1.5.6.txt +++ /dev/null @@ -1,115 +0,0 @@ -GIT v1.5.6 Release Notes -======================== - -Updates since v1.5.5 --------------------- - -(subsystems) - -* Comes with updated gitk and git-gui. - -(portability) - -* git will build on AIX better than before now. - -* core.ignorecase configuration variable can be used to work better on - filesystems that are not case sensitive. - -* "git init" now autodetects the case sensitivity of the filesystem and - sets core.ignorecase accordingly. - -* cpio is no longer used; neither "curl" binary (libcurl is still used). - -(documentation) - -* Many freestanding documentation pages have been converted and made - available to "git help" (aka "man git<something>") as section 7 of - the manual pages. This means bookmarks to some HTML documentation - files may need to be updated (eg "tutorial.html" became - "gittutorial.html"). - -(performance) - -* "git clone" was rewritten in C. This will hopefully help cloning a - repository with insane number of refs. - -* "git rebase --onto $there $from $branch" used to switch to the tip of - $branch only to immediately reset back to $from, smudging work tree - files unnecessarily. This has been optimized. - -* Object creation codepath in "git-svn" has been optimized by enhancing - plumbing commands git-cat-file and git-hash-object. - -(usability, bells and whistles) - -* "git add -p" (and the "patch" subcommand of "git add -i") can choose to - apply (or not apply) mode changes independently from contents changes. - -* "git bisect help" gives longer and more helpful usage information. - -* "git bisect" does not use a special branch "bisect" anymore; instead, it - does its work on a detached HEAD. - -* "git branch" (and "git checkout -b") can be told to set up - branch.<name>.rebase automatically, so that later you can say "git pull" - and magically cause "git pull --rebase" to happen. - -* "git branch --merged" and "git branch --no-merged" can be used to list - branches that have already been merged (or not yet merged) to the - current branch. - -* "git cherry-pick" and "git revert" can add a sign-off. - -* "git commit" mentions the author identity when you are committing - somebody else's changes. - -* "git diff/log --dirstat" output is consistent between binary and textual - changes. - -* "git filter-branch" rewrites signed tags by demoting them to annotated. - -* "git format-patch --no-binary" can produce a patch that lack binary - changes (i.e. cannot be used to propagate the whole changes) meant only - for reviewing. - -* "git init --bare" is a synonym for "git --bare init" now. - -* "git gc --auto" honors a new pre-auto-gc hook to temporarily disable it. - -* "git log --pretty=tformat:<custom format>" gives a LF after each entry, - instead of giving a LF between each pair of entries which is how - "git log --pretty=format:<custom format>" works. - -* "git log" and friends learned the "--graph" option to show the ancestry - graph at the left margin of the output. - -* "git log" and friends can be told to use date format that is different - from the default via 'log.date' configuration variable. - -* "git send-email" now can send out messages outside a git repository. - -* "git send-email --compose" was made aware of rfc2047 quoting. - -* "git status" can optionally include output from "git submodule - summary". - -* "git svn" learned --add-author-from option to propagate the authorship - by munging the commit log message. - -* new object creation and looking up in "git svn" has been optimized. - -* "gitweb" can read from a system-wide configuration file. - -(internal) - -* "git unpack-objects" and "git receive-pack" is now more strict about - detecting breakage in the objects they receive over the wire. - - -Fixes since v1.5.5 ------------------- - -All of the fixes in v1.5.5 maintenance series are included in -this release, unless otherwise noted. - -And there are too numerous small fixes to otherwise note here ;-) diff --git a/third_party/git/Documentation/RelNotes/1.6.0.1.txt b/third_party/git/Documentation/RelNotes/1.6.0.1.txt deleted file mode 100644 index 49d7a1cafabd..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.0.1.txt +++ /dev/null @@ -1,36 +0,0 @@ -GIT v1.6.0.1 Release Notes -========================== - -Fixes since v1.6.0 ------------------- - -* "git diff --cc" did not honor content mangling specified by - gitattributes and core.autocrlf when reading from the work tree. - -* "git diff --check" incorrectly detected new trailing blank lines when - whitespace check was in effect. - -* "git for-each-ref" tried to dereference NULL when asked for '%(body)" on - a tag with a single incomplete line as its payload. - -* "git format-patch" peeked before the beginning of a string when - "format.headers" variable is empty (a misconfiguration). - -* "git help help" did not work correctly. - -* "git mailinfo" (hence "git am") was unhappy when MIME multipart message - contained garbage after the finishing boundary. - -* "git mailinfo" also was unhappy when the "From: " line only had a bare - e-mail address. - -* "git merge" did not refresh the index correctly when a merge resulted in - a fast-forward. - -* "git merge" did not resolve a truly trivial merges that can be done - without content level merges. - -* "git svn dcommit" to a repository with URL that has embedded usernames - did not work correctly. - -Contains other various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.6.0.2.txt b/third_party/git/Documentation/RelNotes/1.6.0.2.txt deleted file mode 100644 index 7d8fb85e1b49..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.0.2.txt +++ /dev/null @@ -1,81 +0,0 @@ -GIT v1.6.0.2 Release Notes -========================== - -Fixes since v1.6.0.1 --------------------- - -* Installation on platforms that needs .exe suffix to git-* programs were - broken in 1.6.0.1. - -* Installation on filesystems without symbolic links support did not - work well. - -* In-tree documentations and test scripts now use "git foo" form to set a - better example, instead of the "git-foo" form (which is an acceptable - form if you have "PATH=$(git --exec-path):$PATH" in your script) - -* Many commands did not use the correct working tree location when used - with GIT_WORK_TREE environment settings. - -* Some systems need to use compatibility fnmatch and regex libraries - independent from each other; the compat/ area has been reorganized to - allow this. - - -* "git apply --unidiff-zero" incorrectly applied a -U0 patch that inserts - a new line before the second line. - -* "git blame -c" did not exactly work like "git annotate" when range - boundaries are involved. - -* "git checkout file" when file is still unmerged checked out contents from - a random high order stage, which was confusing. - -* "git clone $there $here/" with extra trailing slashes after explicit - local directory name $here did not work as expected. - -* "git diff" on tracked contents with CRLF line endings did not drive "less" - intelligently when showing added or removed lines. - -* "git diff --dirstat -M" did not add changes in subdirectories up - correctly for renamed paths. - -* "git diff --cumulative" did not imply "--dirstat". - -* "git for-each-ref refs/heads/" did not work as expected. - -* "git gui" allowed users to feed patch without any context to be applied. - -* "git gui" botched parsing "diff" output when a line that begins with two - dashes and a space gets removed or a line that begins with two pluses - and a space gets added. - -* "git gui" translation updates and i18n fixes. - -* "git index-pack" is more careful against disk corruption while completing - a thin pack. - -* "git log -i --grep=pattern" did not ignore case; neither "git log -E - --grep=pattern" triggered extended regexp. - -* "git log --pretty="%ad" --date=short" did not use short format when - showing the timestamp. - -* "git log --author=author" match incorrectly matched with the - timestamp part of "author " line in commit objects. - -* "git log -F --author=author" did not work at all. - -* Build procedure for "git shell" that used stub versions of some - functions and globals was not understood by linkers on some platforms. - -* "git stash" was fooled by a stat-dirty but otherwise unmodified paths - and refused to work until the user refreshed the index. - -* "git svn" was broken on Perl before 5.8 with recent fixes to reduce - use of temporary files. - -* "git verify-pack -v" did not work correctly when given more than one - packfile. - -Also contains many documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.6.0.3.txt b/third_party/git/Documentation/RelNotes/1.6.0.3.txt deleted file mode 100644 index ae0577836ae8..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.0.3.txt +++ /dev/null @@ -1,117 +0,0 @@ -GIT v1.6.0.3 Release Notes -========================== - -Fixes since v1.6.0.2 --------------------- - -* "git archive --format=zip" did not honor core.autocrlf while - --format=tar did. - -* Continuing "git rebase -i" was very confused when the user left modified - files in the working tree while resolving conflicts. - -* Continuing "git rebase -i" was also very confused when the user left - some staged changes in the index after "edit". - -* "git rebase -i" now honors the pre-rebase hook, just like the - other rebase implementations "git rebase" and "git rebase -m". - -* "git rebase -i" incorrectly aborted when there is no commit to replay. - -* Behaviour of "git diff --quiet" was inconsistent with "diff --exit-code" - with the output redirected to /dev/null. - -* "git diff --no-index" on binary files no longer outputs a bogus - "diff --git" header line. - -* "git diff" hunk header patterns with multiple elements separated by LF - were not used correctly. - -* Hunk headers in "git diff" default to using extended regular - expressions, fixing some of the internal patterns on non-GNU - platforms. - -* New config "diff.*.xfuncname" exposes extended regular expressions - for user specified hunk header patterns. - -* "git gc" when ejecting otherwise unreachable objects from packfiles into - loose form leaked memory. - -* "git index-pack" was recently broken and mishandled objects added by - thin-pack completion processing under memory pressure. - -* "git index-pack" was recently broken and misbehaved when run from inside - .git/objects/pack/ directory. - -* "git stash apply sash@{1}" was fixed to error out. Prior versions - would have applied stash@{0} incorrectly. - -* "git stash apply" now offers a better suggestion on how to continue - if the working tree is currently dirty. - -* "git for-each-ref --format=%(subject)" fixed for commits with no - no newline in the message body. - -* "git remote" fixed to protect printf from user input. - -* "git remote show -v" now displays all URLs of a remote. - -* "git checkout -b branch" was confused when branch already existed. - -* "git checkout -q" once again suppresses the locally modified file list. - -* "git clone -q", "git fetch -q" asks remote side to not send - progress messages, actually making their output quiet. - -* Cross-directory renames are no longer used when creating packs. This - allows more graceful behavior on filesystems like sshfs. - -* Stale temporary files under $GIT_DIR/objects/pack are now cleaned up - automatically by "git prune". - -* "git merge" once again removes directories after the last file has - been removed from it during the merge. - -* "git merge" did not allocate enough memory for the structure itself when - enumerating the parents of the resulting commit. - -* "git blame -C -C" no longer segfaults while trying to pass blame if - it encounters a submodule reference. - -* "git rm" incorrectly claimed that you have local modifications when a - path was merely stat-dirty. - -* "git svn" fixed to display an error message when 'set-tree' failed, - instead of a Perl compile error. - -* "git submodule" fixed to handle checking out a different commit - than HEAD after initializing the submodule. - -* The "git commit" error message when there are still unmerged - files present was clarified to match "git write-tree". - -* "git init" was confused when core.bare or core.sharedRepository are set - in system or user global configuration file by mistake. When --bare or - --shared is given from the command line, these now override such - settings made outside the repositories. - -* Some segfaults due to uncaught NULL pointers were fixed in multiple - tools such as apply, reset, update-index. - -* Solaris builds now default to OLD_ICONV=1 to avoid compile warnings; - Solaris 8 does not define NEEDS_LIBICONV by default. - -* "Git.pm" tests relied on unnecessarily more recent version of Perl. - -* "gitweb" triggered undef warning on commits without log messages. - -* "gitweb" triggered undef warnings on missing trees. - -* "gitweb" now removes PATH_INFO from its URLs so users don't have - to manually set the URL in the gitweb configuration. - -* Bash completion removed support for legacy "git-fetch", "git-push" - and "git-pull" as these are no longer installed. Dashless form - ("git fetch") is still however supported. - -Many other documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.6.0.4.txt b/third_party/git/Documentation/RelNotes/1.6.0.4.txt deleted file mode 100644 index d522661d315c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.0.4.txt +++ /dev/null @@ -1,39 +0,0 @@ -GIT v1.6.0.4 Release Notes -========================== - -Fixes since v1.6.0.3 --------------------- - -* 'git add -p' said "No changes" when only binary files were changed. - -* 'git archive' did not work correctly in bare repositories. - -* 'git checkout -t -b newbranch' when you are on detached HEAD was broken. - -* when we refuse to detect renames because there are too many new or - deleted files, 'git diff' did not say how many there are. - -* 'git push --mirror' tried and failed to push the stash; there is no - point in sending it to begin with. - -* 'git push' did not update the remote tracking reference if the corresponding - ref on the remote end happened to be already up to date. - -* 'git pull $there $branch:$current_branch' did not work when you were on - a branch yet to be born. - -* when giving up resolving a conflicted merge, 'git reset --hard' failed - to remove new paths from the working tree. - -* 'git send-email' had a small fd leak while scanning directory. - -* 'git status' incorrectly reported a submodule directory as an untracked - directory. - -* 'git svn' used deprecated 'git-foo' form of subcommand invocation. - -* 'git update-ref -d' to remove a reference did not honor --no-deref option. - -* Plugged small memleaks here and there. - -* Also contains many documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.6.0.5.txt b/third_party/git/Documentation/RelNotes/1.6.0.5.txt deleted file mode 100644 index a08bb96738aa..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.0.5.txt +++ /dev/null @@ -1,56 +0,0 @@ -GIT v1.6.0.5 Release Notes -========================== - -Fixes since v1.6.0.4 --------------------- - -* "git checkout" used to crash when your HEAD was pointing at a deleted - branch. - -* "git checkout" from an un-checked-out state did not allow switching out - of the current branch. - -* "git diff" always allowed GIT_EXTERNAL_DIFF and --no-ext-diff was no-op for - the command. - -* Giving 3 or more tree-ish to "git diff" is supposed to show the combined - diff from second and subsequent trees to the first one, but the order was - screwed up. - -* "git fast-export" did not export all tags. - -* "git ls-files --with-tree=<tree>" did not work with options other - than -c, most notably with -m. - -* "git pack-objects" did not make its best effort to honor --max-pack-size - option when a single first object already busted the given limit and - placed many objects in a single pack. - -* "git-p4" fast import frontend was too eager to trigger its keyword expansion - logic, even on a keyword-looking string that does not have closing '$' on the - same line. - -* "git push $there" when the remote $there is defined in $GIT_DIR/branches/$there - behaves more like what cg-push from Cogito used to work. - -* when giving up resolving a conflicted merge, "git reset --hard" failed - to remove new paths from the working tree. - -* "git tag" did not complain when given mutually incompatible set of options. - -* The message constructed in the internal editor was discarded when "git - tag -s" failed to sign the message, which was often caused by the user - not configuring GPG correctly. - -* "make check" cannot be run without sparse; people may have meant to say - "make test" instead, so suggest that. - -* Internal diff machinery had a corner case performance bug that choked on - a large file with many repeated contents. - -* "git repack" used to grab objects out of packs marked with .keep - into a new pack. - -* Many unsafe call to sprintf() style varargs functions are corrected. - -* Also contains quite a few documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.6.0.6.txt b/third_party/git/Documentation/RelNotes/1.6.0.6.txt deleted file mode 100644 index 64ece1ffd5cb..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.0.6.txt +++ /dev/null @@ -1,33 +0,0 @@ -GIT v1.6.0.6 Release Notes -========================== - -Fixes since 1.6.0.5 -------------------- - - * "git fsck" had a deep recursion that wasted stack space. - - * "git fast-export" and "git fast-import" choked on an old style - annotated tag that lack the tagger information. - - * "git mergetool -- file" did not correctly skip "--" marker that - signals the end of options list. - - * "git show $tag" segfaulted when an annotated $tag pointed at a - nonexistent object. - - * "git show 2>error" when the standard output is automatically redirected - to the pager redirected the standard error to the pager as well; there - was no need to. - - * "git send-email" did not correctly handle list of addresses when - they had quoted comma (e.g. "Lastname, Givenname" <mail@addre.ss>). - - * Logic to discover branch ancestry in "git svn" was unreliable when - the process to fetch history was interrupted. - - * Removed support for an obsolete gitweb request URI, whose - implementation ran "git diff" Porcelain, instead of using plumbing, - which would have run an external diff command specified in the - repository configuration as the gitweb user. - -Also contains numerous documentation typofixes. diff --git a/third_party/git/Documentation/RelNotes/1.6.0.txt b/third_party/git/Documentation/RelNotes/1.6.0.txt deleted file mode 100644 index de7ef166b692..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.0.txt +++ /dev/null @@ -1,258 +0,0 @@ -GIT v1.6.0 Release Notes -======================== - -User visible changes --------------------- - -With the default Makefile settings, most of the programs are now -installed outside your $PATH, except for "git", "gitk" and -some server side programs that need to be accessible for technical -reasons. Invoking a git subcommand as "git-xyzzy" from the command -line has been deprecated since early 2006 (and officially announced in -1.5.4 release notes); use of them from your scripts after adding -output from "git --exec-path" to the $PATH is still supported in this -release, but users are again strongly encouraged to adjust their -scripts to use "git xyzzy" form, as we will stop installing -"git-xyzzy" hardlinks for built-in commands in later releases. - -An earlier change to page "git status" output was overwhelmingly unpopular -and has been reverted. - -Source changes needed for porting to MinGW environment are now all in the -main git.git codebase. - -By default, packfiles created with this version uses delta-base-offset -encoding introduced in v1.4.4. Pack idx files are using version 2 that -allows larger packs and added robustness thanks to its CRC checking, -introduced in v1.5.2 and v1.4.4.5. If you want to keep your repositories -backwards compatible past these versions, set repack.useDeltaBaseOffset -to false or pack.indexVersion to 1, respectively. - -We used to prevent sample hook scripts shipped in templates/ from -triggering by default by relying on the fact that we install them as -unexecutable, but on some filesystems, this approach does not work. -They are now shipped with ".sample" suffix. If you want to activate -any of these samples as-is, rename them to drop the ".sample" suffix, -instead of running "chmod +x" on them. For example, you can rename -hooks/post-update.sample to hooks/post-update to enable the sample -hook that runs update-server-info, in order to make repositories -friendly to dumb protocols (i.e. HTTP). - -GIT_CONFIG, which was only documented as affecting "git config", but -actually affected all git commands, now only affects "git config". -GIT_LOCAL_CONFIG, also only documented as affecting "git config" and -not different from GIT_CONFIG in a useful way, is removed. - -The ".dotest" temporary area "git am" and "git rebase" use is now moved -inside the $GIT_DIR, to avoid mistakes of adding it to the project by -accident. - -An ancient merge strategy "stupid" has been removed. - - -Updates since v1.5.6 --------------------- - -(subsystems) - -* git-p4 in contrib learned "allowSubmit" configuration to control on - which branch to allow "submit" subcommand. - -* git-gui learned to stage changes per-line. - -(portability) - -* Changes for MinGW port have been merged, thanks to Johannes Sixt and - gangs. - -* Sample hook scripts shipped in templates/ are now suffixed with - *.sample. - -* perl's in-place edit (-i) does not work well without backup files on Windows; - some tests are rewritten to cope with this. - -(documentation) - -* Updated howto/update-hook-example - -* Got rid of usage of "git-foo" from the tutorial and made typography - more consistent. - -* Disambiguating "--" between revs and paths is finally documented. - -(performance, robustness, sanity etc.) - -* index-pack used too much memory when dealing with a deep delta chain. - This has been optimized. - -* reduced excessive inlining to shrink size of the "git" binary. - -* verify-pack checks the object CRC when using version 2 idx files. - -* When an object is corrupt in a pack, the object became unusable even - when the same object is available in a loose form, We now try harder to - fall back to these redundant objects when able. In particular, "git - repack -a -f" can be used to fix such a corruption as long as necessary - objects are available. - -* Performance of "git-blame -C -C" operation is vastly improved. - -* git-clone does not create refs in loose form anymore (it behaves as - if you immediately ran git-pack-refs after cloning). This will help - repositories with insanely large number of refs. - -* core.fsyncobjectfiles configuration can be used to ensure that the loose - objects created will be fsync'ed (this is only useful on filesystems - that does not order data writes properly). - -* "git commit-tree" plumbing can make Octopus with more than 16 parents. - "git commit" has been capable of this for quite some time. - -(usability, bells and whistles) - -* even more documentation pages are now accessible via "man" and "git help". - -* A new environment variable GIT_CEILING_DIRECTORIES can be used to stop - the discovery process of the toplevel of working tree; this may be useful - when you are working in a slow network disk and are outside any working tree, - as bash-completion and "git help" may still need to run in these places. - -* By default, stash entries never expire. Set reflogexpire in [gc - "refs/stash"] to a reasonable value to get traditional auto-expiration - behaviour back - -* Longstanding latency issue with bash completion script has been - addressed. This will need to be backmerged to 'maint' later. - -* pager.<cmd> configuration variable can be used to enable/disable the - default paging behaviour per command. - -* "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk - manually. - -* git-am records the original tip of the branch in ORIG_HEAD before it - starts applying patches. - -* git-apply can handle a patch that touches the same path more than once - much better than before. - -* git-apply can be told not to trust the line counts recorded in the input - patch but recount, with the new --recount option. - -* git-apply can be told to apply a patch to a path deeper than what the - patch records with --directory option. - -* git-archive can be told to omit certain paths from its output using - export-ignore attributes. - -* git-archive uses the zlib default compression level when creating - zip archive. - -* git-archive's command line options --exec and --remote can take their - parameters as separate command line arguments, similar to other commands. - IOW, both "--exec=path" and "--exec path" are now supported. - -* With -v option, git-branch describes the remote tracking statistics - similar to the way git-checkout reports by how many commits your branch - is ahead/behind. - -* git-branch's --contains option used to always require a commit parameter - to limit the branches with; it now defaults to list branches that - contains HEAD if this parameter is omitted. - -* git-branch's --merged and --no-merged option used to always limit the - branches relative to the HEAD, but they can now take an optional commit - argument that is used in place of HEAD. - -* git-bundle can read the revision arguments from the standard input. - -* git-cherry-pick can replay a root commit now. - -* git-clone can clone from a remote whose URL would be rewritten by - configuration stored in $HOME/.gitconfig now. - -* "git-clone --mirror" is a handy way to set up a bare mirror repository. - -* git-cvsserver learned to respond to "cvs co -c". - -* git-diff --check now checks leftover merge conflict markers. - -* "git-diff -p" learned to grab a better hunk header lines in - BibTex, Pascal/Delphi, and Ruby files and also pays attention to - chapter and part boundary in TeX documents. - -* When remote side used to have branch 'foo' and git-fetch finds that now - it has branch 'foo/bar', it refuses to lose the existing remote tracking - branch and its reflog. The error message has been improved to suggest - pruning the remote if the user wants to proceed and get the latest set - of branches from the remote, including such 'foo/bar'. - -* fast-export learned to export and import marks file; this can be used to - interface with fast-import incrementally. - -* fast-import and fast-export learned to export and import gitlinks. - -* "gitk" left background process behind after being asked to dig very deep - history and the user killed the UI; the process is killed when the UI goes - away now. - -* git-rebase records the original tip of branch in ORIG_HEAD before it is - rewound. - -* "git rerere" can be told to update the index with auto-reused resolution - with rerere.autoupdate configuration variable. - -* git-rev-parse learned $commit^! and $commit^@ notations used in "log" - family. These notations are available in gitk as well, because the gitk - command internally uses rev-parse to interpret its arguments. - -* git-rev-list learned --children option to show child commits it - encountered during the traversal, instead of showing parent commits. - -* git-send-mail can talk not just over SSL but over TLS now. - -* git-shortlog honors custom output format specified with "--pretty=format:". - -* "git-stash save" learned --keep-index option. This lets you stash away the - local changes and bring the changes staged in the index to your working - tree for examination and testing. - -* git-stash also learned branch subcommand to create a new branch out of - stashed changes. - -* git-status gives the remote tracking statistics similar to the way - git-checkout reports by how many commits your branch is ahead/behind. - -* "git-svn dcommit" is now aware of auto-props setting the subversion user - has. - -* You can tell "git status -u" to even more aggressively omit checking - untracked files with --untracked-files=no. - -* Original SHA-1 value for "update-ref -d" is optional now. - -* Error codes from gitweb are made more descriptive where possible, rather - than "403 forbidden" as we used to issue everywhere. - -(internal) - -* git-merge has been reimplemented in C. - - -Fixes since v1.5.6 ------------------- - -All of the fixes in v1.5.6 maintenance series are included in -this release, unless otherwise noted. - - * git-clone ignored its -u option; the fix needs to be backported to - 'maint'; - - * git-mv used to lose the distinction between changes that are staged - and that are only in the working tree, by staging both in the index - after moving such a path. - - * "git-rebase -i -p" rewrote the parents to wrong ones when amending - (either edit or squash) was involved, and did not work correctly - when fast forwarding. - diff --git a/third_party/git/Documentation/RelNotes/1.6.1.1.txt b/third_party/git/Documentation/RelNotes/1.6.1.1.txt deleted file mode 100644 index 8c594ba02fe6..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.1.1.txt +++ /dev/null @@ -1,59 +0,0 @@ -GIT v1.6.1.1 Release Notes -========================== - -Fixes since v1.6.1 ------------------- - -* "git add frotz/nitfol" when "frotz" is a submodule should have errored - out, but it didn't. - -* "git apply" took file modes from the patch text and updated the mode - bits of the target tree even when the patch was not about mode changes. - -* "git bisect view" on Cygwin did not launch gitk - -* "git checkout $tree" did not trigger an error. - -* "git commit" tried to remove COMMIT_EDITMSG from the work tree by mistake. - -* "git describe --all" complained when a commit is described with a tag, - which was nonsense. - -* "git diff --no-index --" did not trigger no-index (aka "use git-diff as - a replacement of diff on untracked files") behaviour. - -* "git format-patch -1 HEAD" on a root commit failed to produce patch - text. - -* "git fsck branch" did not work as advertised; instead it behaved the same - way as "git fsck". - -* "git log --pretty=format:%s" did not handle a multi-line subject the - same way as built-in log listers (i.e. shortlog, --pretty=oneline, etc.) - -* "git daemon", and "git merge-file" are more careful when freopen fails - and barf, instead of going on and writing to unopened filehandle. - -* "git http-push" did not like some RFC 4918 compliant DAV server - responses. - -* "git merge -s recursive" mistakenly overwritten an untracked file in the - work tree upon delete/modify conflict. - -* "git merge -s recursive" didn't leave the index unmerged for entries with - rename/delete conflicts. - -* "git merge -s recursive" clobbered untracked files in the work tree. - -* "git mv -k" with more than one erroneous paths misbehaved. - -* "git read-tree -m -u" hence branch switching incorrectly lost a - subdirectory in rare cases. - -* "git rebase -i" issued an unnecessary error message upon a user error of - marking the first commit to be "squash"ed. - -* "git shortlog" did not format a commit message with multi-line - subject correctly. - -Many documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.6.1.2.txt b/third_party/git/Documentation/RelNotes/1.6.1.2.txt deleted file mode 100644 index be37cbb8583b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.1.2.txt +++ /dev/null @@ -1,39 +0,0 @@ -GIT v1.6.1.2 Release Notes -========================== - -Fixes since v1.6.1.1 --------------------- - -* The logic for rename detection in internal diff used by commands like - "git diff" and "git blame" has been optimized to avoid loading the same - blob repeatedly. - -* We did not allow writing out a blob that is larger than 2GB for no good - reason. - -* "git format-patch -o $dir", when $dir is a relative directory, used it - as relative to the root of the work tree, not relative to the current - directory. - -* v1.6.1 introduced an optimization for "git push" into a repository (A) - that borrows its objects from another repository (B) to avoid sending - objects that are available in repository B, when they are not yet used - by repository A. However the code on the "git push" sender side was - buggy and did not work when repository B had new objects that are not - known by the sender. This caused pushing into a "forked" repository - served by v1.6.1 software using "git push" from v1.6.1 sometimes did not - work. The bug was purely on the "git push" sender side, and has been - corrected. - -* "git status -v" did not paint its diff output in colour even when - color.ui configuration was set. - -* "git ls-tree" learned --full-tree option to help Porcelain scripts that - want to always see the full path regardless of the current working - directory. - -* "git grep" incorrectly searched in work tree paths even when they are - marked as assume-unchanged. It now searches in the index entries. - -* "git gc" with no grace period needlessly ejected packed but unreachable - objects in their loose form, only to delete them right away. diff --git a/third_party/git/Documentation/RelNotes/1.6.1.3.txt b/third_party/git/Documentation/RelNotes/1.6.1.3.txt deleted file mode 100644 index cd08d8174ec1..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.1.3.txt +++ /dev/null @@ -1,28 +0,0 @@ -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. diff --git a/third_party/git/Documentation/RelNotes/1.6.1.4.txt b/third_party/git/Documentation/RelNotes/1.6.1.4.txt deleted file mode 100644 index ccbad794c034..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.1.4.txt +++ /dev/null @@ -1,41 +0,0 @@ -GIT v1.6.1.4 Release Notes -========================== - -Fixes since v1.6.1.3 --------------------- - -* .gitignore learned to handle backslash as a quoting mechanism for - comment introduction character "#". - This fix was first merged to 1.6.2.1. - -* "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-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). - This fix was first merged to 1.6.2.3. - -* import-zips script (in contrib) did not compute the common directory - prefix correctly. - This fix was first merged to 1.6.2.2. - -* "git init" segfaulted when given an overlong template location via - the --template= option. - This fix was first merged to 1.6.2.4. - -* "git repack" did not error out when necessary object was missing in the - repository. - -* git-repack (invoked from git-gc) did not work as nicely as it should in - a repository that borrows objects from neighbours via alternates - mechanism especially when some packs are marked with the ".keep" flag - to prevent them from being repacked. - This fix was first merged to 1.6.2.3. - -Also includes minor documentation fixes and updates. diff --git a/third_party/git/Documentation/RelNotes/1.6.1.txt b/third_party/git/Documentation/RelNotes/1.6.1.txt deleted file mode 100644 index 7b152a6fdc5d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.1.txt +++ /dev/null @@ -1,280 +0,0 @@ -GIT v1.6.1 Release Notes -======================== - -Updates since v1.6.0 --------------------- - -When some commands (e.g. "git log", "git diff") spawn pager internally, we -used to make the pager the parent process of the git command that produces -output. This meant that the exit status of the whole thing comes from the -pager, not the underlying git command. We swapped the order of the -processes around and you will see the exit code from the command from now -on. - -(subsystems) - -* gitk can call out to git-gui to view "git blame" output; git-gui in turn - can run gitk from its blame view. - -* Various git-gui updates including updated translations. - -* Various gitweb updates from repo.or.cz installation. - -* Updates to emacs bindings. - -(portability) - -* A few test scripts used nonportable "grep" that did not work well on - some platforms, e.g. Solaris. - -* Sample pre-auto-gc script has OS X support. - -* Makefile has support for (ancient) FreeBSD 4.9. - -(performance) - -* Many operations that are lstat(3) heavy can be told to pre-execute - necessary lstat(3) in parallel before their main operations, which - potentially gives much improved performance for cold-cache cases or in - environments with weak metadata caching (e.g. NFS). - -* The underlying diff machinery to produce textual output has been - optimized, which would result in faster "git blame" processing. - -* Most of the test scripts (but not the ones that try to run servers) - can be run in parallel. - -* Bash completion of refnames in a repository with massive number of - refs has been optimized. - -* Cygwin port uses native stat/lstat implementations when applicable, - which leads to improved performance. - -* "git push" pays attention to alternate repositories to avoid sending - unnecessary objects. - -* "git svn" can rebuild an out-of-date rev_map file. - -(usability, bells and whistles) - -* When you mistype a command name, git helpfully suggests what it guesses - you might have meant to say. help.autocorrect configuration can be set - to a non-zero value to accept the suggestion when git can uniquely - guess. - -* The packfile machinery hopefully is more robust when dealing with - corrupt packs if redundant objects involved in the corruption are - available elsewhere. - -* "git add -N path..." adds the named paths as an empty blob, so that - subsequent "git diff" will show a diff as if they are creation events. - -* "git add" gained a built-in synonym for people who want to say "stage - changes" instead of "add contents to the staging area" which amounts - to the same thing. - -* "git apply" learned --include=paths option, similar to the existing - --exclude=paths option. - -* "git bisect" is careful about a user mistake and suggests testing of - merge base first when good is not a strict ancestor of bad. - -* "git bisect skip" can take a range of commits. - -* "git blame" re-encodes the commit metainfo to UTF-8 from i18n.commitEncoding - by default. - -* "git check-attr --stdin" can check attributes for multiple paths. - -* "git checkout --track origin/hack" used to be a syntax error. It now - DWIMs to create a corresponding local branch "hack", i.e. acts as if you - said "git checkout --track -b hack origin/hack". - -* "git checkout --ours/--theirs" can be used to check out one side of a - conflicting merge during conflict resolution. - -* "git checkout -m" can be used to recreate the initial conflicted state - during conflict resolution. - -* "git cherry-pick" can also utilize rerere for conflict resolution. - -* "git clone" learned to be verbose with -v - -* "git commit --author=$name" can look up author name from existing - commits. - -* output from "git commit" has been reworded in a more concise and yet - more informative way. - -* "git count-objects" reports the on-disk footprint for packfiles and - their corresponding idx files. - -* "git daemon" learned --max-connections=<count> option. - -* "git daemon" exports REMOTE_ADDR to record client address, so that - spawned programs can act differently on it. - -* "git describe --tags" favours closer lightweight tags than farther - annotated tags now. - -* "git diff" learned to mimic --suppress-blank-empty from GNU diff via a - configuration option. - -* "git diff" learned to put more sensible hunk headers for Python, - HTML and ObjC contents. - -* "git diff" learned to vary the a/ vs b/ prefix depending on what are - being compared, controlled by diff.mnemonicprefix configuration. - -* "git diff" learned --dirstat-by-file to count changed files, not number - of lines, when summarizing the global picture. - -* "git diff" learned "textconv" filters --- a binary or hard-to-read - contents can be munged into human readable form and the difference - between the results of the conversion can be viewed (obviously this - cannot produce a patch that can be applied, so this is disabled in - format-patch among other things). - -* "--cached" option to "git diff has an easier to remember synonym "--staged", - to ask "what is the difference between the given commit and the - contents staged in the index?" - -* "git for-each-ref" learned "refname:short" token that gives an - unambiguously abbreviated refname. - -* Auto-numbering of the subject lines is the default for "git - format-patch" now. - -* "git grep" learned to accept -z similar to GNU grep. - -* "git help" learned to use GIT_MAN_VIEWER environment variable before - using "man" program. - -* "git imap-send" can optionally talk SSL. - -* "git index-pack" is more careful against disk corruption while - completing a thin pack. - -* "git log --check" and "git log --exit-code" passes their underlying diff - status with their exit status code. - -* "git log" learned --simplify-merges, a milder variant of --full-history; - "gitk --simplify-merges" is easier to view than with --full-history. - -* "git log" learned "--source" to show what ref each commit was reached - from. - -* "git log" also learned "--simplify-by-decoration" to show the - birds-eye-view of the topology of the history. - -* "git log --pretty=format:" learned "%d" format element that inserts - names of tags that point at the commit. - -* "git merge --squash" and "git merge --no-ff" into an unborn branch are - noticed as user errors. - -* "git merge -s $strategy" can use a custom built strategy if you have a - command "git-merge-$strategy" on your $PATH. - -* "git pull" (and "git fetch") can be told to operate "-v"erbosely or - "-q"uietly. - -* "git push" can be told to reject deletion of refs with receive.denyDeletes - configuration. - -* "git rebase" honours pre-rebase hook; use --no-verify to bypass it. - -* "git rebase -p" uses interactive rebase machinery now to preserve the merges. - -* "git reflog expire branch" can be used in place of "git reflog expire - refs/heads/branch". - -* "git remote show $remote" lists remote branches one-per-line now. - -* "git send-email" can be given revision range instead of files and - maildirs on the command line, and automatically runs format-patch to - generate patches for the given revision range. - -* "git submodule foreach" subcommand allows you to iterate over checked - out submodules. - -* "git submodule sync" subcommands allows you to update the origin URL - recorded in submodule directories from the toplevel .gitmodules file. - -* "git svn branch" can create new branches on the other end. - -* "gitweb" can use more saner PATH_INFO based URL. - -(internal) - -* "git hash-object" learned to lie about the path being hashed, so that - correct gitattributes processing can be done while hashing contents - stored in a temporary file. - -* various callers of git-merge-recursive avoid forking it as an external - process. - -* Git class defined in "Git.pm" can be subclasses a bit more easily. - -* We used to link GNU regex library as a compatibility layer for some - platforms, but it turns out it is not necessary on most of them. - -* Some path handling routines used fixed number of buffers used alternately - but depending on the call depth, this arrangement led to hard to track - bugs. This issue is being addressed. - - -Fixes since v1.6.0 ------------------- - -All of the fixes in v1.6.0.X maintenance series are included in this -release, unless otherwise noted. - -* Porcelains implemented as shell scripts were utterly confused when you - entered to a subdirectory of a work tree from sideways, following a - symbolic link (this may need to be backported to older releases later). - -* Tracking symbolic links would work better on filesystems whose lstat() - returns incorrect st_size value for them. - -* "git add" and "git update-index" incorrectly allowed adding S/F when S - is a tracked symlink that points at a directory D that has a path F in - it (we still need to fix a similar nonsense when S is a submodule and F - is a path in it). - -* "git am" after stopping at a broken patch lost --whitespace, -C, -p and - --3way options given from the command line initially. - -* "git diff --stdin" used to take two trees on a line and compared them, - but we dropped support for such a use case long time ago. This has - been resurrected. - -* "git filter-branch" failed to rewrite a tag name with slashes in it. - -* "git http-push" did not understand URI scheme other than opaquelocktoken - when acquiring a lock from the server (this may need to be backported to - older releases later). - -* After "git rebase -p" stopped with conflicts while replaying a merge, - "git rebase --continue" did not work (may need to be backported to older - releases). - -* "git revert" records relative to which parent a revert was made when - reverting a merge. Together with new documentation that explains issues - around reverting a merge and merging from the updated branch later, this - hopefully will reduce user confusion (this may need to be backported to - older releases later). - -* "git rm --cached" used to allow an empty blob that was added earlier to - be removed without --force, even when the file in the work tree has - since been modified. - -* "git push --tags --all $there" failed with generic usage message without - telling saying these two options are incompatible. - -* "git log --author/--committer" match used to potentially match the - timestamp part, exposing internal implementation detail. Also these did - not work with --fixed-strings match at all. - -* "gitweb" did not mark non-ASCII characters imported from external HTML fragments - correctly. diff --git a/third_party/git/Documentation/RelNotes/1.6.2.1.txt b/third_party/git/Documentation/RelNotes/1.6.2.1.txt deleted file mode 100644 index dfa36416af24..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.2.1.txt +++ /dev/null @@ -1,19 +0,0 @@ -GIT v1.6.2.1 Release Notes -========================== - -Fixes since v1.6.2 ------------------- - -* .gitignore learned to handle backslash as a quoting mechanism for - comment introduction character "#". - -* timestamp output in --date=relative mode used to display timestamps that - are long time ago in the default mode; it now uses "N years M months - ago", and "N years ago". - -* git-add -i/-p now works with non-ASCII pathnames. - -* "git hash-object -w" did not read from the configuration file from the - correct .git directory. - -* git-send-email learned to correctly handle multiple Cc: addresses. diff --git a/third_party/git/Documentation/RelNotes/1.6.2.2.txt b/third_party/git/Documentation/RelNotes/1.6.2.2.txt deleted file mode 100644 index fafa9986b0e5..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.2.2.txt +++ /dev/null @@ -1,45 +0,0 @@ -GIT v1.6.2.2 Release Notes -========================== - -Fixes since v1.6.2.1 --------------------- - -* A longstanding confusing description of what --pickaxe option of - git-diff does has been clarified in the documentation. - -* "git-blame -S" did not quite work near the commits that were given - on the command line correctly. - -* "git diff --pickaxe-regexp" did not count overlapping matches - correctly. - -* "git diff" did not feed files in work-tree representation to external - diff and textconv. - -* "git-fetch" in a repository that was not cloned from anywhere said - it cannot find 'origin', which was hard to understand for new people. - -* "git-format-patch --numbered-files --stdout" did not have to die of - incompatible options; it now simply ignores --numbered-files as no files - are produced anyway. - -* "git-ls-files --deleted" did not work well with GIT_DIR&GIT_WORK_TREE. - -* "git-read-tree A B C..." without -m option has been broken for a long - time. - -* git-send-email ignored --in-reply-to when --no-thread was given. - -* 'git-submodule add' did not tolerate extra slashes and ./ in the path it - accepted from the command line; it now is more lenient. - -* git-svn misbehaved when the project contained a path that began with - two dashes. - -* import-zips script (in contrib) did not compute the common directory - prefix correctly. - -* miscompilation of negated enum constants by old gcc (2.9) affected the - codepaths to spawn subprocesses. - -Many small documentation updates are included as well. diff --git a/third_party/git/Documentation/RelNotes/1.6.2.3.txt b/third_party/git/Documentation/RelNotes/1.6.2.3.txt deleted file mode 100644 index 4d3c1ac91cf3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.2.3.txt +++ /dev/null @@ -1,22 +0,0 @@ -GIT v1.6.2.3 Release Notes -========================== - -Fixes since v1.6.2.2 --------------------- - -* Setting an octal mode value to core.sharedrepository configuration to - restrict access to the repository to group members did not work as - advertised. - -* A fairly large and trivial memory leak while rev-list shows list of - reachable objects has been identified and plugged. - -* "git-commit --interactive" did not abort when underlying "git-add -i" - signaled a failure. - -* git-repack (invoked from git-gc) did not work as nicely as it should in - a repository that borrows objects from neighbours via alternates - mechanism especially when some packs are marked with the ".keep" flag - to prevent them from being repacked. - -Many small documentation updates are included as well. diff --git a/third_party/git/Documentation/RelNotes/1.6.2.4.txt b/third_party/git/Documentation/RelNotes/1.6.2.4.txt deleted file mode 100644 index f4bf1d09863c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.2.4.txt +++ /dev/null @@ -1,39 +0,0 @@ -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. - -* pruning reflog entries that are unreachable from the tip of the ref - during "git reflog prune" (hence "git gc") was very inefficient. - -* "git-add -p" lacked a way to say "q"uit to refuse staging any hunks for - the remaining paths. You had to say "d" and then ^C. - -* "git-checkout <tree-ish> <submodule>" did not update the index entry at - the named path; it now does. - -* "git-fast-export" choked when seeing a tag that does not point at commit. - -* "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-38-g318b847 -git shortlog --no-merges $O..maint diff --git a/third_party/git/Documentation/RelNotes/1.6.2.5.txt b/third_party/git/Documentation/RelNotes/1.6.2.5.txt deleted file mode 100644 index b23f9e95d1cb..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.2.5.txt +++ /dev/null @@ -1,21 +0,0 @@ -GIT v1.6.2.5 Release Notes -========================== - -Fixes since v1.6.2.4 --------------------- - -* "git apply" mishandled if you fed a git generated patch that renames - file A to B and file B to A at the same time. - -* "git diff -c -p" (and "diff --cc") did not expect to see submodule - differences and instead refused to work. - -* "git grep -e '('" segfaulted, instead of diagnosing a mismatched - parentheses error. - -* "git fetch" generated packs with offset-delta encoding when both ends of - the connection are capable of producing one; this cannot be read by - ancient git and the user should be able to disable this by setting - repack.usedeltabaseoffset configuration to false. - - diff --git a/third_party/git/Documentation/RelNotes/1.6.2.txt b/third_party/git/Documentation/RelNotes/1.6.2.txt deleted file mode 100644 index 980adfb31546..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.2.txt +++ /dev/null @@ -1,164 +0,0 @@ -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://git.or.cz/gitwiki/GitFaq#non-bare - https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ - -for more details on the reason why this change is needed and the -transition plan. - -For a similar reason, "git push $there :$killed" to delete the branch -$killed in a remote repository $there, if $killed branch is the current -branch pointed at by its HEAD, gets a large warning. You can choose what -should happen upon such a push by setting the configuration variable -receive.denyDeleteCurrent in the receiving repository. - - -Updates since v1.6.1 --------------------- - -(subsystems) - -* git-svn updates. - -* gitweb updates, including a new patch view and RSS/Atom feed - improvements. - -* (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) - -* pack-objects autodetects the number of CPUs available and uses threaded - version. - -(usability, bells and whistles) - -* automatic typo correction works on aliases as well - -* @{-1} is a way to refer to the last branch you were on. This is - accepted not only where an object name is expected, but anywhere - a branch name is expected and acts as if you typed the branch name. - E.g. "git branch --track mybranch @{-1}", "git merge @{-1}", and - "git rev-parse --symbolic-full-name @{-1}" would work as expected. - -* When refs/remotes/origin/HEAD points at a remote tracking branch that - has been pruned away, many git operations issued warning when they - internally enumerated the refs. We now warn only when you say "origin" - to refer to that pruned branch. - -* The location of .mailmap file can be configured, and its file format was - enhanced to allow mapping an incorrect e-mail field as well. - -* "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. - -* "git checkout -" is a shorthand for "git checkout @{-1}". - -* "git cherry" defaults to whatever the current branch is tracking (if - exists) when the <upstream> argument is not given. - -* "git cvsserver" can be told not to add extra "via git-CVS emulator" to - 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. - -* The definition of what constitutes a word for "git diff --color-words" - can be customized via gitattributes, command line or a configuration. - -* "git diff" learned --patience to run "patience diff" algorithm. - -* "git filter-branch" learned --prune-empty option that discards commits - that do not change the contents. - -* "git fsck" now checks loose objects in alternate object stores, instead - of misreporting them as missing. - -* "git gc --prune" was resurrected to allow "git gc --no-prune" and - giving non-default expiration period e.g. "git gc --prune=now". - -* "git grep -w" and "git grep" for fixed strings have been optimized. - -* "git mergetool" learned -y(--no-prompt) option to disable prompting. - -* "git rebase -i" can transplant a history down to root to elsewhere - with --root option. - -* "git reset --merge" is a new mode that works similar to the way - "git checkout" switches branches, taking the local changes while - switching to another commit. - -* "git submodule update" learned --no-fetch option. - -* "git tag" learned --contains that works the same way as the same option - from "git branch". - - -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 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 gc" did not work if your repository was created with an ancient git - and never had any pack files in it before. - -* "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. diff --git a/third_party/git/Documentation/RelNotes/1.6.3.1.txt b/third_party/git/Documentation/RelNotes/1.6.3.1.txt deleted file mode 100644 index 2400b72ef7bc..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.3.1.txt +++ /dev/null @@ -1,10 +0,0 @@ -GIT v1.6.3.1 Release Notes -========================== - -Fixes since v1.6.3 ------------------- - -* "git checkout -b new-branch" with a staged change in the index - incorrectly primed the in-index cache-tree, resulting a wrong tree - object to be written out of the index. This is a grave regression - since the last 1.6.2.X maintenance release. diff --git a/third_party/git/Documentation/RelNotes/1.6.3.2.txt b/third_party/git/Documentation/RelNotes/1.6.3.2.txt deleted file mode 100644 index b2f3f0293c0d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.3.2.txt +++ /dev/null @@ -1,61 +0,0 @@ -GIT v1.6.3.2 Release Notes -========================== - -Fixes since v1.6.3.1 --------------------- - - * A few codepaths picked up the first few bytes from an sha1[] by - casting the (char *) pointer to (int *); GCC 4.4 did not like this, - and aborted compilation. - - * Some unlink(2) failures went undiagnosed. - - * The "recursive" merge strategy misbehaved when faced rename/delete - conflicts while coming up with an intermediate merge base. - - * The low-level merge algorithm did not handle a degenerate case of - merging a file with itself using itself as the common ancestor - gracefully. It should produce the file itself, but instead - produced an empty result. - - * GIT_TRACE mechanism segfaulted when tracing a shell-quoted aliases. - - * OpenBSD also uses st_ctimspec in "struct stat", instead of "st_ctim". - - * With NO_CROSS_DIRECTORY_HARDLINKS, "make install" can be told not to - create hardlinks between $(gitexecdir)/git-$builtin_commands and - $(bindir)/git. - - * command completion code in bash did not reliably detect that we are - in a bare repository. - - * "git add ." in an empty directory complained that pathspec "." did not - match anything, which may be technically correct, but not useful. We - silently make it a no-op now. - - * "git add -p" (and "patch" action in "git add -i") was broken when - the first hunk that adds a line at the top was split into two and - both halves are marked to be used. - - * "git blame path" misbehaved at the commit where path became file - from a directory with some files in it. - - * "git for-each-ref" had a segfaulting bug when dealing with a tag object - created by an ancient git. - - * "git format-patch -k" still added patch numbers if format.numbered - configuration was set. - - * "git grep --color ''" did not terminate. The command also had - subtle bugs with its -w option. - - * http-push had a small use-after-free bug. - - * "git push" was converting OFS_DELTA pack representation into less - efficient REF_DELTA representation unconditionally upon transfer, - making the transferred data unnecessarily larger. - - * "git remote show origin" segfaulted when origin was still empty. - -Many other general usability updates around help text, diagnostic messages -and documentation are included as well. diff --git a/third_party/git/Documentation/RelNotes/1.6.3.3.txt b/third_party/git/Documentation/RelNotes/1.6.3.3.txt deleted file mode 100644 index 1c28398bb640..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.3.3.txt +++ /dev/null @@ -1,38 +0,0 @@ -GIT v1.6.3.3 Release Notes -========================== - -Fixes since v1.6.3.2 --------------------- - - * "git archive" running on Cygwin can get stuck in an infinite loop. - - * "git daemon" did not correctly parse the initial line that carries - virtual host request information. - - * "git diff --textconv" leaked memory badly when the textconv filter - errored out. - - * The built-in regular expressions to pick function names to put on - hunk header lines for java and objc were very inefficiently written. - - * in certain error situations git-fetch (and git-clone) on Windows didn't - detect connection abort and ended up waiting indefinitely. - - * import-tars script (in contrib) did not import symbolic links correctly. - - * http.c used CURLOPT_SSLKEY even on libcURL version 7.9.2, even though - it was only available starting 7.9.3. - - * low-level filelevel merge driver used return value from strdup() - without checking if we ran out of memory. - - * "git rebase -i" left stray closing parenthesis in its reflog message. - - * "git remote show" did not show all the URLs associated with the named - remote, even though "git remote -v" did. Made them consistent by - making the former show all URLs. - - * "whitespace" attribute that is set was meant to detect all errors known - to git, but it told git to ignore trailing carriage-returns. - -Includes other documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.6.3.4.txt b/third_party/git/Documentation/RelNotes/1.6.3.4.txt deleted file mode 100644 index cad461bc76f7..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.3.4.txt +++ /dev/null @@ -1,36 +0,0 @@ -GIT v1.6.3.4 Release Notes -========================== - -Fixes since v1.6.3.3 --------------------- - - * "git add --no-ignore-errors" did not override configured - add.ignore-errors configuration. - - * "git apply --whitespace=fix" did not fix trailing whitespace on an - incomplete line. - - * "git branch" opened too many commit objects unnecessarily. - - * "git checkout -f $commit" with a path that is a file (or a symlink) in - the work tree to a commit that has a directory at the path issued an - unnecessary error message. - - * "git diff -c/--cc" was very inefficient in coalescing the removed lines - shared between parents. - - * "git diff -c/--cc" showed removed lines at the beginning of a file - incorrectly. - - * "git remote show nickname" did not honor configured - remote.nickname.uploadpack when inspecting the branches at the remote. - - * "git request-pull" when talking to the terminal for a preview - showed some of the output in the pager. - - * "git request-pull start nickname [end]" did not honor configured - remote.nickname.uploadpack when it ran git-ls-remote against the remote - repository to learn the current tip of branches. - -Includes other documentation updates and minor fixes. - diff --git a/third_party/git/Documentation/RelNotes/1.6.3.txt b/third_party/git/Documentation/RelNotes/1.6.3.txt deleted file mode 100644 index 4bcff945e019..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.3.txt +++ /dev/null @@ -1,182 +0,0 @@ -GIT v1.6.3 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://git.or.cz/gitwiki/GitFaq#non-bare - https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ - -for more details on the reason why this change is needed and the -transition plan. - -For a similar reason, "git push $there :$killed" to delete the branch -$killed in a remote repository $there, if $killed branch is the current -branch pointed at by its HEAD, gets a large warning. You can choose what -should happen upon such a push by setting the configuration variable -receive.denyDeleteCurrent in the receiving repository. - -When the user does not tell "git push" what to push, it has always -pushed matching refs. For some people it is unexpected, and a new -configuration variable push.default has been introduced to allow -changing a different default behaviour. To advertise the new feature, -a big warning is issued if this is not configured and a git push without -arguments is attempted. - - -Updates since v1.6.2 --------------------- - -(subsystems) - -* various git-svn updates. - -* git-gui updates, including an update to Russian translation, and a - fix to an infinite loop when showing an empty diff. - -* gitk updates, including an update to Russian translation and improved Windows - support. - -(performance) - -* many uses of lstat(2) in the codepath for "git checkout" have been - optimized out. - -(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. - -* http transport learned to prompt and use password when fetching from or - pushing to http://user@host.xz/ URL. - -* (msysgit) progress output that is sent over the sideband protocol can - be handled appropriately in Windows console. - -* "--pretty=<style>" option to the log family of commands can now be - spelled as "--format=<style>". In addition, --format=%formatstring - is a short-hand for --pretty=tformat:%formatstring. - -* "--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. - -* @{-1} is a new way to refer to the last branch you were on introduced in - 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-archive learned --output=<file> 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. - -* You can give --date=<format> option to git-blame. - -* "git-branch -r" shows HEAD symref that points at a remote branch in - interest of each tracked remote repository. - -* "git-branch -v -v" is a new way to get list of names for branches and the - "upstream" branch for them. - -* git-config learned -e option to open an editor to edit the config file - directly. - -* 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-for-each-ref learned a new "upstream" token. - -* git-format-patch can be told to use attachment with a new configuration, - format.attach. - -* git-format-patch can be told to produce deep or shallow message threads. - -* git-format-patch can be told to always add sign-off with a configuration - variable. - -* git-format-patch learned format.headers configuration to add extra - header fields to the output. This behaviour is similar to the existing - --add-header=<header> option of the command. - -* git-format-patch gives human readable names to the attached files, when - told to send patches as attachments. - -* git-grep learned to highlight the found substrings in color. - -* git-imap-send learned to work around Thunderbird's inability to easily - disable format=flowed with a new configuration, imap.preformattedHTML. - -* git-rebase can be told to rebase the series even if your branch is a - descendant of the commit you are rebasing onto with --force-rebase - option. - -* git-rebase can be told to report diffstat with the --stat option. - -* Output from git-remote command has been vastly improved. - -* "git remote update --prune $remote" updates from the named remote and - then prunes stale tracking branches. - -* git-send-email learned --confirm option to review the Cc: list before - sending the messages out. - -(developers) - -* Test scripts can be run under valgrind. - -* Test scripts can be run with installed git. - -* Makefile learned 'coverage' option to run the test suites with - coverage tracking enabled. - -* Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now - requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug. - This workaround used to be enabled by default, but causes problems - with newer versions of docbook-xsl. In addition, there are a few more - knobs you can tweak to work around issues with various versions of the - docbook-xsl package. See comments in Documentation/Makefile for details. - -* Support for building and testing a subset of git on a system without a - working perl has been improved. - - -Fixes since v1.6.2 ------------------- - -All of the fixes in v1.6.2.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.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-gc spent excessive amount of time to decide if an object appears - in a locally existing pack (if needed, backport by merging 69e020a). diff --git a/third_party/git/Documentation/RelNotes/1.6.4.1.txt b/third_party/git/Documentation/RelNotes/1.6.4.1.txt deleted file mode 100644 index e439e45b96a6..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.4.1.txt +++ /dev/null @@ -1,46 +0,0 @@ -GIT v1.6.4.1 Release Notes -========================== - -Fixes since v1.6.4 ------------------- - - * An unquoted value in the configuration file, when it contains more than - one whitespaces in a row, got them replaced with a single space. - - * "git am" used to accept a single piece of e-mail per file (not a mbox) - as its input, but multiple input format support in v1.6.4 broke it. - Apparently many people have been depending on this feature. - - * The short help text for "git filter-branch" command was a single long - line, wrapped by terminals, and was hard to read. - - * The "recursive" strategy of "git merge" segfaulted when a merge has - more than one merge-bases, and merging of these merge-bases involves - a rename/rename or a rename/add conflict. - - * "git pull --rebase" did not use the right fork point when the - repository has already fetched from the upstream that rewinds the - branch it is based on in an earlier fetch. - - * Explain the concept of fast-forward more fully in "git push" - documentation, and hint to refer to it from an error message when the - command refuses an update to protect the user. - - * The default value for pack.deltacachesize, used by "git repack", is now - 256M, instead of unbounded. Otherwise a repack of a moderately sized - repository would needlessly eat into swap. - - * Document how "git repack" (hence "git gc") interacts with a repository - that borrows its objects from other repositories (e.g. ones created by - "git clone -s"). - - * "git show" on an annotated tag lacked a delimiting blank line between - the tag itself and the contents of the object it tags. - - * "git verify-pack -v" erroneously reported number of objects with too - deep delta depths as "chain length 0" objects. - - * Long names of authors and committers outside US-ASCII were sometimes - incorrectly shown in "gitweb". - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.4.2.txt b/third_party/git/Documentation/RelNotes/1.6.4.2.txt deleted file mode 100644 index c11ec0115c64..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.4.2.txt +++ /dev/null @@ -1,32 +0,0 @@ -GIT v1.6.4.2 Release Notes -========================== - -Fixes since v1.6.4.1 --------------------- - -* --date=relative output between 1 and 5 years ago rounded the number of - years when saying X years Y months ago, instead of rounding it down. - -* "git add -p" did not handle changes in executable bits correctly - (a regression around 1.6.3). - -* "git apply" did not honor GNU diff's convention to mark the creation/deletion - event with UNIX epoch timestamp on missing side. - -* "git checkout" incorrectly removed files in a directory pointed by a - symbolic link during a branch switch that replaces a directory with - a symbolic link. - -* "git clean -d -f" happily descended into a subdirectory that is managed by a - separate git repository. It now requires two -f options for safety. - -* "git fetch/push" over http transports had two rather grave bugs. - -* "git format-patch --cover-letter" did not prepare the cover letter file - for use with non-ASCII strings when there are the series contributors with - non-ASCII names. - -* "git pull origin branch" and "git fetch origin && git merge origin/branch" - left different merge messages in the resulting commit. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.4.3.txt b/third_party/git/Documentation/RelNotes/1.6.4.3.txt deleted file mode 100644 index 5643e6537de5..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.4.3.txt +++ /dev/null @@ -1,29 +0,0 @@ -GIT v1.6.4.3 Release Notes -========================== - -Fixes since v1.6.4.2 --------------------- - -* "git clone" from an empty repository gave unnecessary error message, - even though it did everything else correctly. - -* "git cvsserver" invoked git commands via "git-foo" style, which has long - been deprecated. - -* "git fetch" and "git clone" had an extra sanity check to verify the - presence of the corresponding *.pack file before downloading *.idx - file by issuing a HEAD request. Github server however sometimes - gave 500 (Internal server error) response to HEAD even if a GET - request for *.pack file to the same URL would have succeeded, and broke - clone over HTTP from some of their repositories. As a workaround, this - verification has been removed (as it is not absolutely necessary). - -* "git grep" did not like relative pathname to refer outside the current - directory when run from a subdirectory. - -* an error message from "git push" was formatted in a very ugly way. - -* "git svn" did not quote the subversion user name correctly when - running its author-prog helper program. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.4.4.txt b/third_party/git/Documentation/RelNotes/1.6.4.4.txt deleted file mode 100644 index 0ead45fc727e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.4.4.txt +++ /dev/null @@ -1,26 +0,0 @@ -GIT v1.6.4.4 Release Notes -========================== - -Fixes since v1.6.4.4 --------------------- - -* The workaround for Github server that sometimes gave 500 (Internal server - error) response to HEAD requests in 1.6.4.3 introduced a regression that - caused re-fetching projects over http to segfault in certain cases due - to uninitialized pointer being freed. - -* "git pull" on an unborn branch used to consider anything in the work - tree and the index discardable. - -* "git diff -b/w" did not work well on the incomplete line at the end of - the file, due to an incorrect hashing of lines in the low-level xdiff - routines. - -* "git checkout-index --prefix=$somewhere" used to work when $somewhere is - a symbolic link to a directory elsewhere, but v1.6.4.2 broke it. - -* "git unpack-objects --strict", invoked when receive.fsckobjects - configuration is set in the receiving repository of "git push", did not - properly check the objects, especially the submodule links, it received. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.4.5.txt b/third_party/git/Documentation/RelNotes/1.6.4.5.txt deleted file mode 100644 index eb6307dcbb4a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.4.5.txt +++ /dev/null @@ -1,20 +0,0 @@ -Git v1.6.4.5 Release Notes -========================== - -Fixes since v1.6.4.4 --------------------- - - * Simplified base85 implementation. - - * An overlong line after ".gitdir: " in a git file caused out of bounds - access to an array on the stack. - - * "git count-objects" did not handle packs larger than 4G. - - * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option - when --keep-dashdash was in effect. - - * "gitweb" can sometimes be tricked into parrotting a filename argument - given in a request without properly quoting. - -Other minor fixes and documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.4.txt b/third_party/git/Documentation/RelNotes/1.6.4.txt deleted file mode 100644 index a2a34b43a75d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.4.txt +++ /dev/null @@ -1,147 +0,0 @@ -GIT v1.6.4 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://git.or.cz/gitwiki/GitFaq#non-bare - https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ - -for more details on the reason why this change is needed and the -transition plan. - -For a similar reason, "git push $there :$killed" to delete the branch -$killed in a remote repository $there, if $killed branch is the current -branch pointed at by its HEAD, gets a large warning. You can choose what -should happen upon such a push by setting the configuration variable -receive.denyDeleteCurrent in the receiving repository. - - -Updates since v1.6.3 --------------------- - -(subsystems) - - * gitweb Perl style clean-up. - - * git-svn updates, including a new --authors-prog option to map author - names by invoking an external program, 'git svn reset' to unwind - 'git svn fetch', support for more than one branches, documenting - of the useful --minimize-url feature, new "git svn gc" command, etc. - -(portability) - - * We feed iconv with "UTF-8" instead of "utf8"; the former is - understood more widely. Similarly updated test scripts to use - encoding names more widely understood (e.g. use "ISO8859-1" instead - of "ISO-8859-1"). - - * Various portability fixes/workarounds for different vintages of - SunOS, IRIX, and Windows. - - * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink. - -(performance) - - * Many repeated use of lstat() are optimized out in "checkout" codepath. - - * git-status (and underlying git-diff-index --cached) are optimized - to take advantage of cache-tree information in the index. - -(usability, bells and whistles) - - * "git add --edit" lets users edit the whole patch text to fine-tune what - is added to the index. - - * "git am" accepts StGIT series file as its input. - - * "git bisect skip" skips to a more randomly chosen place in the hope - to avoid testing a commit that is too close to a commit that is - already known to be untestable. - - * "git cvsexportcommit" learned -k option to stop CVS keywords expansion - - * "git fast-export" learned to handle history simplification more - gracefully. - - * "git fast-export" learned an option --tag-of-filtered-object to handle - dangling tags resulting from history simplification more usefully. - - * "git grep" learned -p option to show the location of the match using the - same context hunk marker "git diff" uses. - - * https transport can optionally be told that the used client - certificate is password protected, in which case it asks the - password only once. - - * "git imap-send" is IPv6 aware. - - * "git log --graph" draws graphs more compactly by using horizontal lines - when able. - - * "git log --decorate" shows shorter refnames by stripping well-known - refs/* prefix. - - * "git push $name" honors remote.$name.pushurl if present before - using remote.$name.url. In other words, the URL used for fetching - and pushing can be different. - - * "git send-email" understands quoted aliases in .mailrc files (might - have to be backported to 1.6.3.X). - - * "git send-email" can fetch the sender address from the configuration - variable "sendmail.from" (and "sendmail.<identity>.from"). - - * "git show-branch" can color its output. - - * "add" and "update" subcommands to "git submodule" learned --reference - option to use local clone with references. - - * "git submodule update" learned --rebase option to update checked - out submodules by rebasing the local changes. - - * "gitweb" can optionally use gravatar to adorn author/committer names. - -(developers) - - * A major part of the "git bisect" wrapper has moved to C. - - * Formatting with the new version of AsciiDoc 8.4.1 is now supported. - -Fixes since v1.6.3 ------------------- - -All of the fixes in v1.6.3.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.3.X series. - - * "git diff-tree -r -t" used to omit new or removed directories from - the output. df533f3 (diff-tree -r -t: include added/removed - directories in the output, 2009-06-13) may need to be cherry-picked - to backport this fix. - - * The way Git.pm sets up a Repository object was not friendly to callers - that chdir around. It now internally records the repository location - as an absolute path when autodetected. - - * Removing a section with "git config --remove-section", when its - section header has a variable definition on the same line, lost - that variable definition. - - * "git rebase -p --onto" used to always leave side branches of a merge - intact, even when both branches are subject to rewriting. - - * "git repack" used to faithfully follow grafts and considered true - parents recorded in the commit object unreachable from the commit. - After such a repacking, you cannot remove grafts without corrupting - the repository. - - * "git send-email" did not detect erroneous loops in alias expansion. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.1.txt b/third_party/git/Documentation/RelNotes/1.6.5.1.txt deleted file mode 100644 index 309ba181b27e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.1.txt +++ /dev/null @@ -1,20 +0,0 @@ -GIT v1.6.5.1 Release Notes -========================== - -Fixes since v1.6.5 ------------------- - - * An corrupt pack could make codepath to read objects into an - infinite loop. - - * Download throughput display was always shown in KiB/s but on fast links - it is more appropriate to show it in MiB/s. - - * "git grep -f filename" used uninitialized variable and segfaulted. - - * "git clone -b branch" gave a wrong commit object name to post-checkout - hook. - - * "git pull" over http did not work on msys. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.2.txt b/third_party/git/Documentation/RelNotes/1.6.5.2.txt deleted file mode 100644 index aa7ccce3a23b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.2.txt +++ /dev/null @@ -1,19 +0,0 @@ -GIT v1.6.5.2 Release Notes -========================== - -Fixes since v1.6.5.1 --------------------- - - * Installation of templates triggered a bug in busybox when using tar - implementation from it. - - * "git add -i" incorrectly ignored paths that are already in the index - if they matched .gitignore patterns. - - * "git describe --always" should have produced some output even there - were no tags in the repository, but it didn't. - - * "git ls-files" when showing tracked files incorrectly paid attention - to the exclude patterns. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.3.txt b/third_party/git/Documentation/RelNotes/1.6.5.3.txt deleted file mode 100644 index b2fad1b22e0b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.3.txt +++ /dev/null @@ -1,63 +0,0 @@ -Git v1.6.5.3 Release Notes -========================== - -Fixes since v1.6.5.2 --------------------- - - * info/grafts file didn't ignore trailing CR at the end of lines. - - * Packages generated on newer FC were unreadable by older versions of - RPM as the new default is to use stronger hash. - - * output from "git blame" was unreadable when the file ended in an - incomplete line. - - * "git add -i/-p" didn't handle deletion of empty files correctly. - - * "git clone" takes up to two parameters, but did not complain when - given more arguments than necessary and silently ignored them. - - * "git cvsimport" did not read files given as command line arguments - correctly when it is run from a subdirectory. - - * "git diff --color-words -U0" didn't work correctly. - - * The handling of blank lines at the end of file by "git diff/apply - --whitespace" was inconsistent with the other kinds of errors. - They are now colored, warned against, and fixed the same way as others. - - * There was no way to allow blank lines at the end of file without - allowing extra blanks at the end of lines. You can use blank-at-eof - and blank-at-eol whitespace error class to specify them separately. - The old trailing-space error class is now a short-hand to set both. - - * "-p" option to "git format-patch" was supposed to suppress diffstat - generation, but it was broken since 1.6.1. - - * "git imap-send" did not compile cleanly with newer OpenSSL. - - * "git help -a" outside of a git repository was broken. - - * "git ls-files -i" was supposed to be inverse of "git ls-files" without -i - with respect to exclude patterns, but it was broken since 1.6.5.2. - - * "git ls-remote" outside of a git repository over http was broken. - - * "git rebase -i" gave bogus error message when the command word was - misspelled. - - * "git receive-pack" that is run in response to "git push" did not run - garbage collection nor update-server-info, but in larger hosting sites, - these almost always need to be run. To help site administrators, the - command now runs "gc --auto" and "u-s-i" by setting receive.autogc - and receive.updateserverinfo configuration variables, respectively. - - * Release notes spelled the package name with incorrect capitalization. - - * "gitweb" did not escape non-ascii characters correctly in the URL. - - * "gitweb" showed "patch" link even for merge commits. - - * "gitweb" showed incorrect links for blob line numbers in pathinfo mode. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.4.txt b/third_party/git/Documentation/RelNotes/1.6.5.4.txt deleted file mode 100644 index 344333de66e5..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.4.txt +++ /dev/null @@ -1,32 +0,0 @@ -Git v1.6.5.4 Release Notes -========================== - -Fixes since v1.6.5.3 --------------------- - - * "git help" (without argument) used to check if you are in a directory - under git control. There was no breakage in behaviour per-se, but this - was unnecessary. - - * "git prune-packed" gave progress output even when its standard error is - not connected to a terminal; this caused cron jobs that run it to - produce cruft. - - * "git pack-objects --all-progress" is an option to ask progress output - from write-object phase _if_ progress output were to be produced, and - shouldn't have forced the progress output. - - * "git apply -p<n> --directory=<elsewhere>" did not work well for a - non-default value of n. - - * "git merge foo HEAD" was misparsed as an old-style invocation of the - command and produced a confusing error message. As it does not specify - any other branch to merge, it shouldn't be mistaken as such. We will - remove the old style "git merge <message> HEAD <commit>..." syntax in - future versions, but not in this release, - - * "git merge -m <message> <branch>..." added the standard merge message - on its own after user-supplied message, which should have overridden the - standard one. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.5.txt b/third_party/git/Documentation/RelNotes/1.6.5.5.txt deleted file mode 100644 index ecfc57d87563..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.5.txt +++ /dev/null @@ -1,49 +0,0 @@ -Git v1.6.5.5 Release Notes -========================== - -Fixes since v1.6.5.4 --------------------- - - * Manual pages can be formatted with older xmlto again. - - * GREP_OPTIONS exported from user's environment could have broken - our scripted commands. - - * In configuration files, a few variables that name paths can begin with - ~/ and ~username/ and they are expanded as expected. This is not a - bugfix but 1.6.6 will have this and without backporting users cannot - easily use the same ~/.gitconfig across versions. - - * "git diff -B -M" did the same computation to hash lines of contents - twice, and held onto memory after it has used the data in it - unnecessarily before it freed. - - * "git diff -B" and "git diff --dirstat" was not counting newly added - contents correctly. - - * "git format-patch revisions... -- path" issued an incorrect error - message that suggested to use "--" on the command line when path - does not exist in the current work tree (it is a separate matter if - it makes sense to limit format-patch with pathspecs like that - without using the --full-diff option). - - * "git grep -F -i StRiNg" did not work as expected. - - * Enumeration of available merge strategies iterated over the list of - commands in a wrong way, sometimes producing an incorrect result. - - * "git shortlog" did not honor the "encoding" header embedded in the - commit object like "git log" did. - - * Reading progress messages that come from the remote side while running - "git pull" is given precedence over reading the actual pack data to - prevent garbled progress message on the user's terminal. - - * "git rebase" got confused when the log message began with certain - strings that looked like Subject:, Date: or From: header. - - * "git reset" accidentally run in .git/ directory checked out the - work tree contents in there. - - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.6.txt b/third_party/git/Documentation/RelNotes/1.6.5.6.txt deleted file mode 100644 index a9eaf76f62e3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.6.txt +++ /dev/null @@ -1,23 +0,0 @@ -Git v1.6.5.6 Release Notes -========================== - -Fixes since v1.6.5.5 --------------------- - - * "git add -p" had a regression since v1.6.5.3 that broke deletion of - non-empty files. - - * "git archive -o o.zip -- Makefile" produced an archive in o.zip - but in POSIX tar format. - - * Error message given to "git pull --rebase" when the user didn't give - enough clue as to what branch to integrate with still talked about - "merging with" the branch. - - * Error messages given by "git merge" when the merge resulted in a - fast-forward still were in plumbing lingo, even though in v1.6.5 - we reworded messages in other cases. - - * The post-upload-hook run by upload-pack in response to "git fetch" has - been removed, due to security concerns (the hook first appeared in - 1.6.5). diff --git a/third_party/git/Documentation/RelNotes/1.6.5.7.txt b/third_party/git/Documentation/RelNotes/1.6.5.7.txt deleted file mode 100644 index dc5302c21cd2..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.7.txt +++ /dev/null @@ -1,19 +0,0 @@ -Git v1.6.5.7 Release Notes -========================== - -Fixes since v1.6.5.6 --------------------- - -* If a user specifies a color for a <slot> (i.e. a class of things to show - in a particular color) that is known only by newer versions of git - (e.g. "color.diff.func" was recently added for upcoming 1.6.6 release), - an older version of git should just ignore them. Instead we diagnosed - it as an error. - -* With help.autocorrect set to non-zero value, the logic to guess typos - in the subcommand name misfired and ran a random nonsense command. - -* If a command is run with an absolute path as a pathspec inside a bare - repository, e.g. "rev-list HEAD -- /home", the code tried to run - strlen() on NULL, which is the result of get_git_work_tree(), and - segfaulted. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.8.txt b/third_party/git/Documentation/RelNotes/1.6.5.8.txt deleted file mode 100644 index 8b24bebb966c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.8.txt +++ /dev/null @@ -1,28 +0,0 @@ -Git v1.6.5.8 Release Notes -========================== - -Fixes since v1.6.5.7 --------------------- - -* "git count-objects" did not handle packfiles that are bigger than 4G on - platforms with 32-bit off_t. - -* "git rebase -i" did not abort cleanly if it failed to launch the editor. - -* "git blame" did not work well when commit lacked the author name. - -* "git fast-import" choked when handling a tag that points at an object - that is not a commit. - -* "git reset --hard" did not work correctly when GIT_WORK_TREE environment - variable is used to point at the root of the true work tree. - -* "git grep" fed a buffer that is not NUL-terminated to underlying - regexec(). - -* "git checkout -m other" while on a branch that does not have any commit - segfaulted, instead of failing. - -* "git branch -a other" should have diagnosed the command as an error. - -Other minor documentation updates are also included. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.9.txt b/third_party/git/Documentation/RelNotes/1.6.5.9.txt deleted file mode 100644 index bb469dd71e55..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.9.txt +++ /dev/null @@ -1,18 +0,0 @@ -Git v1.6.5.9 Release Notes -========================== - -Fixes since v1.6.5.8 --------------------- - - * An overlong line after ".gitdir: " in a git file caused out of bounds - access to an array on the stack. - - * "git blame -L $start,$end" segfaulted when too large $start was given. - - * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option - when --keep-dashdash was in effect. - - * "gitweb" can sometimes be tricked into parrotting a filename argument - given in a request without properly quoting. - -Other minor fixes and documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.5.txt b/third_party/git/Documentation/RelNotes/1.6.5.txt deleted file mode 100644 index 6c7f7da7eb9a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.5.txt +++ /dev/null @@ -1,169 +0,0 @@ -GIT v1.6.5 Release Notes -======================== - -In git 1.7.0, which was planned to be the release after 1.6.5, "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. - -Also, "git push $there :$killed" to delete the branch $killed in a remote -repository $there, when $killed branch is the current branch pointed at by -its HEAD, will be refused by default. - -You can choose what should happen upon such a push by setting the -configuration variable receive.denyDeleteCurrent 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://git.or.cz/gitwiki/GitFaq#non-bare - https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ - -for more details on the reason why this change is needed and the -transition plan. - -Updates since v1.6.4 --------------------- - -(subsystems) - - * various updates to gitk, git-svn and gitweb. - -(portability) - - * more improvements on mingw port. - - * mingw will also give FRSX as the default value for the LESS - environment variable when the user does not have one. - - * initial support to compile git on Windows with MSVC. - -(performance) - - * On major platforms, the system can be compiled to use with Linus's - block-sha1 implementation of the SHA-1 hash algorithm, which - outperforms the default fallback implementation we borrowed from - Mozilla. - - * Unnecessary inefficiency in deepening of a shallow repository has - been removed. - - * "git clone" does not grab objects that it does not need (i.e. - referenced only from refs outside refs/heads and refs/tags - hierarchy) anymore. - - * The "git" main binary used to link with libcurl, which then dragged - in a large number of external libraries. When using basic plumbing - commands in scripts, this unnecessarily slowed things down. We now - implement http/https/ftp transfer as a separate executable as we - used to. - - * "git clone" run locally hardlinks or copies the files in .git/ to - newly created repository. It used to give new mtime to copied files, - but this delayed garbage collection to trigger unnecessarily in the - cloned repository. We now preserve mtime for these files to avoid - this issue. - -(usability, bells and whistles) - - * Human writable date format to various options, e.g. --since=yesterday, - master@{2000.09.17}, are taught to infer some omitted input properly. - - * A few programs gave verbose "advice" messages to help uninitiated - people when issuing error messages. An infrastructure to allow - users to squelch them has been introduced, and a few such messages - can be silenced now. - - * refs/replace/ hierarchy is designed to be usable as a replacement - of the "grafts" mechanism, with the added advantage that it can be - transferred across repositories. - - * "git am" learned to optionally ignore whitespace differences. - - * "git am" handles input e-mail files that has CRLF line endings sensibly. - - * "git am" learned "--scissors" option to allow you to discard early part - of an incoming e-mail. - - * "git archive -o output.zip" works without being told what format to - use with an explicit "--format=zip".option. - - * "git checkout", "git reset" and "git stash" learned to pick and - choose to use selected changes you made, similar to "git add -p". - - * "git clone" learned a "-b" option to pick a HEAD to check out - different from the remote's default branch. - - * "git clone" learned --recursive option. - - * "git clone" from a local repository on a different filesystem used to - copy individual object files without preserving the old timestamp, giving - them extra lifetime in the new repository until they gc'ed. - - * "git commit --dry-run $args" is a new recommended way to ask "what would - happen if I try to commit with these arguments." - - * "git commit --dry-run" and "git status" shows conflicted paths in a - separate section to make them easier to spot during a merge. - - * "git cvsimport" now supports password-protected pserver access even - when the password is not taken from ~/.cvspass file. - - * "git fast-export" learned --no-data option that can be useful when - reordering commits and trees without touching the contents of - blobs. - - * "git fast-import" has a pair of new front-end in contrib/ area. - - * "git init" learned to mkdir/chdir into a directory when given an - extra argument (i.e. "git init this"). - - * "git instaweb" optionally can use mongoose as the web server. - - * "git log --decorate" can optionally be told with --decorate=full to - give the reference name in full. - - * "git merge" issued an unnecessarily scary message when it detected - that the merge may have to touch the path that the user has local - uncommitted changes to. The message has been reworded to make it - clear that the command aborted, without doing any harm. - - * "git push" can be told to be --quiet. - - * "git push" pays attention to url.$base.pushInsteadOf and uses a URL - that is derived from the URL used for fetching. - - * informational output from "git reset" that lists the locally modified - paths is made consistent with that of "git checkout $another_branch". - - * "git submodule" learned to give submodule name to scripts run with - "foreach" subcommand. - - * various subcommands to "git submodule" learned --recursive option. - - * "git submodule summary" learned --files option to compare the work - tree vs the commit bound at submodule path, instead of comparing - the index. - - * "git upload-pack", which is the server side support for "git clone" and - "git fetch", can call a new post-upload-pack hook for statistics purposes. - -(developers) - - * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the - source directory; using tmpfs may give faster turnaround. - - * With NO_PERL_MAKEMAKER set, DESTDIR= is now honoured, so you can - build for one location, and install into another location to tar it - up. - -Fixes since v1.6.4 ------------------- - -All of the fixes in v1.6.4.X maintenance series are included in this -release, unless otherwise noted. diff --git a/third_party/git/Documentation/RelNotes/1.6.6.1.txt b/third_party/git/Documentation/RelNotes/1.6.6.1.txt deleted file mode 100644 index f1d0a4ae2d63..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.6.1.txt +++ /dev/null @@ -1,37 +0,0 @@ -Git v1.6.6.1 Release Notes -========================== - -Fixes since v1.6.6 ------------------- - - * "git blame" did not work well when commit lacked the author name. - - * "git branch -a name" wasn't diagnosed as an error. - - * "git count-objects" did not handle packfiles that are bigger than 4G on - platforms with 32-bit off_t. - - * "git checkout -m other" while on a branch that does not have any commit - segfaulted, instead of failing. - - * "git fast-import" choked when fed a tag that do not point at a - commit. - - * "git grep" finding from work tree files could have fed garbage to - the underlying regexec(3). - - * "git grep -L" didn't show empty files (they should never match, and - they should always appear in -L output as unmatching). - - * "git rebase -i" did not abort cleanly if it failed to launch the editor. - - * "git reset --hard" did not work correctly when GIT_WORK_TREE environment - variable is used to point at the root of the true work tree. - - * http-backend was not listed in the command list in the documentation. - - * Building on FreeBSD (both 7 and 8) needs OLD_ICONV set in the Makefile - - * "git checkout -m some-branch" while on an unborn branch crashed. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.6.2.txt b/third_party/git/Documentation/RelNotes/1.6.6.2.txt deleted file mode 100644 index 4eaddc0106e5..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.6.2.txt +++ /dev/null @@ -1,46 +0,0 @@ -Git v1.6.6.2 Release Notes -========================== - -Fixes since v1.6.6.1 --------------------- - - * recursive merge didn't correctly diagnose its own programming errors, - and instead caused the caller to segfault. - - * The new "smart http" aware clients probed the web servers to see if - they support smart http, but did not fall back to dumb http transport - correctly with some servers. - - * Time based reflog syntax e.g. "@{yesterday}" didn't diagnose a misspelled - time specification and instead assumed "@{now}". - - * "git archive HEAD -- no-such-directory" produced an empty archive - without complaining. - - * "git blame -L start,end -- file" misbehaved when given a start that is - larger than the number of lines in the file. - - * "git checkout -m" didn't correctly call custom merge backend supplied - by the end user. - - * "git config -f <file>" misbehaved when run from a subdirectory. - - * "git cvsserver" didn't like having regex metacharacters (e.g. '+') in - CVSROOT environment. - - * "git fast-import" did not correctly handle large blobs that may - bust the pack size limit. - - * "git gui" is supposed to work even when launched from inside a .git - directory. - - * "git gui" misbehaved when applying a hunk that ends with deletion. - - * "git imap-send" did not honor imap.preformattedHTML as documented. - - * "git log" family incorrectly showed the commit notes unconditionally by - mistake, which was especially irritating when running "git log --oneline". - - * "git status" shouldn't require an write access to the repository. - -Other minor documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.6.3.txt b/third_party/git/Documentation/RelNotes/1.6.6.3.txt deleted file mode 100644 index 11483acaec55..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.6.3.txt +++ /dev/null @@ -1,23 +0,0 @@ -Git v1.6.6.3 Release Notes -========================== - -Fixes since v1.6.6.2 --------------------- - - * An overlong line after ".gitdir: " in a git file caused out of bounds - access to an array on the stack. - - * "git bisect $path" did not correctly diagnose an error when given a - non-existent path. - - * "git blame -L $start,$end" segfaulted when too large $start was given. - - * "git imap-send" did not write draft box with CRLF line endings per RFC. - - * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option - when --keep-dashdash was in effect. - - * "gitweb" can sometimes be tricked into parrotting a filename argument - given in a request without properly quoting. - -Other minor fixes and documentation updates are included. diff --git a/third_party/git/Documentation/RelNotes/1.6.6.txt b/third_party/git/Documentation/RelNotes/1.6.6.txt deleted file mode 100644 index 3ed1e0143374..000000000000 --- a/third_party/git/Documentation/RelNotes/1.6.6.txt +++ /dev/null @@ -1,224 +0,0 @@ -Git v1.6.6 Release Notes -======================== - -Notes on behaviour change -------------------------- - - * In this release, "git fsck" defaults to "git fsck --full" and - checks packfiles, and because of this it will take much longer to - complete than before. If you prefer a quicker check only on loose - objects (the old default), you can say "git fsck --no-full". This - has been supported by 1.5.4 and newer versions of git, so it is - safe to write it in your script even if you use slightly older git - on some of your machines. - -Preparing yourselves for compatibility issues in 1.7.0 ------------------------------------------------------- - -In git 1.7.0, which is planned to be the release after 1.6.6, there will -be a handful of behaviour changes that will break backward compatibility. - -These changes were discussed long time ago and existing behaviours have -been identified as more problematic to the userbase than keeping them for -the sake of backward compatibility. - -When necessary, a transition strategy for existing users has been designed -not to force them running around setting configuration variables and -updating their scripts in order to either keep the traditional behaviour -or adjust to the new behaviour, on the day their sysadmin decides to install -the new version of git. When we switched from "git-foo" to "git foo" in -1.6.0, even though the change had been advertised and the transition -guide had been provided for a very long time, the users procrastinated -during the entire transition period, and ended up panicking on the day -their sysadmins updated their git installation. We are trying to avoid -repeating that unpleasantness in the 1.7.0 release. - -For changes decided to be in 1.7.0, commands that will be affected -have been much louder to strongly discourage such procrastination, and -they continue to be in this release. If you have been using recent -versions of git, you would have seen warnings issued when you used -features whose behaviour will change, with a clear instruction on how -to keep the existing behaviour if you want to. You hopefully are -already well prepared. - -Of course, we have also been giving "this and that will change in -1.7.0; prepare yourselves" warnings in the release notes and -announcement messages for the past few releases. Let's see how well -users will fare this time. - - * "git push" into a branch that is currently checked out (i.e. pointed by - HEAD in a repository that is not bare) will be refused by default. - - Similarly, "git push $there :$killed" to delete the branch $killed - in a remote repository $there, when $killed branch is the current - branch pointed at by its HEAD, will be refused by default. - - Setting the configuration variables receive.denyCurrentBranch and - receive.denyDeleteCurrent to 'ignore' in the receiving repository - can be used to override these safety features. Versions of git - since 1.6.2 have issued a loud warning when you tried to do these - operations without setting the configuration, so repositories of - people who still need to be able to perform such a push should - already have been future proofed. - - Please refer to: - - http://git.or.cz/gitwiki/GitFaq#non-bare - https://lore.kernel.org/git/7vbptlsuyv.fsf@gitster.siamese.dyndns.org/ - - for more details on the reason why this change is needed and the - transition process that already took place so far. - - * "git send-email" will not make deep threads by default when sending a - patch series with more than two messages. All messages will be sent - as a reply to the first message, i.e. cover letter. Git 1.6.6 (this - release) will issue a warning about the upcoming default change, when - it uses the traditional "deep threading" behaviour as the built-in - default. To squelch the warning but still use the "deep threading" - behaviour, give --chain-reply-to option or set sendemail.chainreplyto - to true. - - It has been possible to configure send-email to send "shallow thread" - by setting sendemail.chainreplyto configuration variable to false. - The only thing 1.7.0 release will do is to change the default when - you haven't configured that variable. - - * "git status" will not be "git commit --dry-run". This change does not - affect you if you run the command without pathspec. - - Nobody sane found the current behaviour of "git status Makefile" useful - nor meaningful, and it confused users. "git commit --dry-run" has been - provided as a way to get the current behaviour of this command since - 1.6.5. - - * "git diff" traditionally treated various "ignore whitespace" options - only as a way to filter the patch output. "git diff --exit-code -b" - exited with non-zero status even if all changes were about changing the - amount of whitespace and nothing else. and "git diff -b" showed the - "diff --git" header line for such a change without patch text. - - In 1.7.0, the "ignore whitespaces" will affect the semantics of the - diff operation itself. A change that does not affect anything but - whitespaces will be reported with zero exit status when run with - --exit-code, and there will not be "diff --git" header for such a - change. - - -Updates since v1.6.5 --------------------- - -(subsystems) - - * various gitk updates including use of themed widgets under Tk 8.5, - Japanese translation, a fix to a bug when running "gui blame" from - a subdirectory, etc. - - * various git-gui updates including new translations, wm states fixes, - Tk bug workaround after quitting, improved heuristics to trigger gc, - etc. - - * various git-svn updates. - - * "git fetch" over http learned a new mode that is different from the - traditional "dumb commit walker". - -(portability) - - * imap-send can be built on mingw port. - -(performance) - - * "git diff -B" has smaller memory footprint. - -(usability, bells and whistles) - - * The object replace mechanism can be bypassed with --no-replace-objects - global option given to the "git" program. - - * In configuration files, a few variables that name paths can begin with ~/ - and ~username/ and they are expanded as expected. - - * "git subcmd -h" now shows short usage help for many more subcommands. - - * "git bisect reset" can reset to an arbitrary commit. - - * "git checkout frotz" when there is no local branch "frotz" but there - is only one remote tracking branch "frotz" is taken as a request to - start the named branch at the corresponding remote tracking branch. - - * "git commit -c/-C/--amend" can be told with a new "--reset-author" option - to ignore authorship information in the commit it is taking the message - from. - - * "git describe" can be told to add "-dirty" suffix with "--dirty" option. - - * "git diff" learned --submodule option to show a list of one-line logs - instead of differences between the commit object names. - - * "git diff" learned to honor diff.color.func configuration to paint - function name hint printed on the hunk header "@@ -j,k +l,m @@" line - in the specified color. - - * "git fetch" learned --all and --multiple options, to run fetch from - many repositories, and --prune option to remove remote tracking - branches that went stale. These make "git remote update" and "git - remote prune" less necessary (there is no plan to remove "remote - update" nor "remote prune", though). - - * "git fsck" by default checks the packfiles (i.e. "--full" is the - default); you can turn it off with "git fsck --no-full". - - * "git grep" can use -F (fixed strings) and -i (ignore case) together. - - * import-tars contributed fast-import frontend learned more types of - compressed tarballs. - - * "git instaweb" knows how to talk with mod_cgid to apache2. - - * "git log --decorate" shows the location of HEAD as well. - - * "git log" and "git rev-list" learned to take revs and pathspecs from - the standard input with the new "--stdin" option. - - * "--pretty=format" option to "log" family of commands learned: - - . to wrap text with the "%w()" specifier. - . to show reflog information with "%g[sdD]" specifier. - - * "git notes" command to annotate existing commits. - - * "git merge" (and "git pull") learned --ff-only option to make it fail - if the merge does not result in a fast-forward. - - * "git mergetool" learned to use p4merge. - - * "git rebase -i" learned "reword" that acts like "edit" but immediately - starts an editor to tweak the log message without returning control to - the shell, which is done by "edit" to give an opportunity to tweak the - contents. - - * "git send-email" can be told with "--envelope-sender=auto" to use the - same address as "From:" address as the envelope sender address. - - * "git send-email" will issue a warning when it defaults to the - --chain-reply-to behaviour without being told by the user and - instructs to prepare for the change of the default in 1.7.0 release. - - * In "git submodule add <repository> <path>", <path> is now optional and - inferred from <repository> the same way "git clone <repository>" does. - - * "git svn" learned to read SVN 1.5+ and SVK merge tickets. - - * "git svn" learned to recreate empty directories tracked only by SVN. - - * "gitweb" can optionally render its "blame" output incrementally (this - requires JavaScript on the client side). - - * Author names shown in gitweb output are links to search commits by the - author. - -Fixes since v1.6.5 ------------------- - -All of the fixes in v1.6.5.X maintenance series are included in this -release, unless otherwise noted. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.1.txt b/third_party/git/Documentation/RelNotes/1.7.0.1.txt deleted file mode 100644 index 8ff5bcada81f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.1.txt +++ /dev/null @@ -1,35 +0,0 @@ -Git v1.7.0.1 Release Notes -========================== - -Fixes since v1.7.0 ------------------- - - * In a freshly created repository "rev-parse HEAD^0" complained that - it is dangling symref, even though "rev-parse HEAD" didn't. - - * "git show :no-such-name" tried to access the index without bounds - check, leading to a potential segfault. - - * Message from "git cherry-pick" was harder to read and use than necessary - when it stopped due to conflicting changes. - - * We referred to ".git/refs/" throughout the documentation when we - meant to talk about abstract notion of "ref namespace". Because - people's repositories often have packed refs these days, this was - confusing. - - * "git diff --output=/path/that/cannot/be/written" did not correctly - error out. - - * "git grep -e -pattern-that-begin-with-dash paths..." could not be - spelled as "git grep -- -pattern-that-begin-with-dash paths..." which - would be a GNU way to use "--" as "end of options". - - * "git grep" compiled with threading support tried to access an - uninitialized mutex on boxes with a single CPU. - - * "git stash pop -q --index" failed because the unnecessary --index - option was propagated to "git stash drop" that is internally run at the - end. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.2.txt b/third_party/git/Documentation/RelNotes/1.7.0.2.txt deleted file mode 100644 index 73ed2b527843..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.2.txt +++ /dev/null @@ -1,40 +0,0 @@ -Git v1.7.0.2 Release Notes -========================== - -Fixes since v1.7.0.1 --------------------- - - * GIT_PAGER was not honored consistently by some scripted Porcelains, most - notably "git am". - - * updating working tree files after telling git to add them to the - index and while it is still working created garbage object files in - the repository without diagnosing it as an error. - - * "git bisect -- pathspec..." did not diagnose an error condition properly when - the simplification with given pathspec made the history empty. - - * "git rev-list --cherry-pick A...B" now has an obvious optimization when the - histories haven't diverged (i.e. when one end is an ancestor of the other). - - * "git diff --quiet -w" did not work as expected. - - * "git fast-import" didn't work with a large input, as it lacked support - for producing the pack index in v2 format. - - * "git imap-send" didn't use CRLF line endings over the imap protocol - when storing its payload to the draft box, violating RFC 3501. - - * "git log --format='%w(x,y,z)%b'" and friends that rewrap message - has been optimized for utf-8 payload. - - * Error messages generated on the receiving end did not come back to "git - push". - - * "git status" in 1.7.0 lacked the optimization we used to have in 1.6.X series - to speed up scanning of large working tree. - - * "gitweb" did not diagnose parsing errors properly while reading its configuration - file. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.3.txt b/third_party/git/Documentation/RelNotes/1.7.0.3.txt deleted file mode 100644 index 3b355737c0c0..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.3.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git v1.7.0.3 Release Notes -========================== - -Fixes since v1.7.0.2 --------------------- - - * Object files are created in a more ACL friendly way in repositories - where group permission is ACL controlled. - - * "git add -i" didn't handle a deleted path very well. - - * "git blame" padded line numbers with one extra SP when the total number - of lines was one less than multiple of ten due to an off-by-one error. - - * "git fetch --all/--multi" used to discard information for remotes that - are fetched earlier. - - * "git log --author=me --grep=it" tried to find commits that have "it" - or are written by "me", instead of the ones that have "it" _and_ are - written by "me". - - * "git log -g branch" misbehaved when there was no entries in the reflog - for the named branch. - - * "git mailinfo" (hence "git am") incorrectly removed initial indent from - paragraphs. - - * "git prune" and "git reflog" (hence "git gc" as well) didn't honor - an instruction never to expire by setting gc.reflogexpire to never. - - * "git push" misbehaved when branch.<name>.merge was configured without - matching branch.<name>.remote. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.4.txt b/third_party/git/Documentation/RelNotes/1.7.0.4.txt deleted file mode 100644 index cf7f60e60d73..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.4.txt +++ /dev/null @@ -1,27 +0,0 @@ -Git v1.7.0.4 Release Notes -========================== - -Fixes since v1.7.0.3 --------------------- - - * Optimized ntohl/htonl on big-endian machines were broken. - - * Color values given to "color.<cmd>.<slot>" configuration can now have - more than one attributes (e.g. "bold ul"). - - * "git add -u nonexistent-path" did not complain. - - * "git apply --whitespace=fix" didn't work well when an early patch in - a patch series adds trailing blank lines and a later one depended on - such a block of blank lines at the end. - - * "git fast-export" didn't check error status and stop when marks file - cannot be opened. - - * "git format-patch --ignore-if-in-upstream" gave unwarranted errors - when the range was empty, instead of silently finishing. - - * "git remote prune" did not detect remote tracking refs that became - dangling correctly. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.5.txt b/third_party/git/Documentation/RelNotes/1.7.0.5.txt deleted file mode 100644 index 3149c91b7b9c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.5.txt +++ /dev/null @@ -1,26 +0,0 @@ -Git v1.7.0.5 Release Notes -========================== - -Fixes since v1.7.0.4 --------------------- - - * "git daemon" failed to compile on platforms without sockaddr_storage type. - - * Output from "git rev-list --pretty=oneline" was unparsable when a - commit did not have any message, which is abnormal but possible in a - repository converted from foreign scm. - - * "git stash show <commit-that-is-not-a-stash>" gave an error message - that was not so useful. Reworded the message to "<it> is not a - stash". - - * Python scripts in contrib/ area now start with "#!/usr/bin/env python" - to honor user's PATH. - - * "git imap-send" used to mistake any line that begins with "From " as a - message separator in format-patch output. - - * Smart http server backend failed to report an internal server error and - infinitely looped instead after output pipe was closed. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.6.txt b/third_party/git/Documentation/RelNotes/1.7.0.6.txt deleted file mode 100644 index b2852b67d05b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.6.txt +++ /dev/null @@ -1,13 +0,0 @@ -Git v1.7.0.6 Release Notes -========================== - -Fixes since v1.7.0.5 --------------------- - - * "git diff --stat" used "int" to count the size of differences, - which could result in overflowing. - - * "git rev-list --abbrev-commit" defaulted to 40-byte abbreviations, unlike - newer tools in the git toolset. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.7.txt b/third_party/git/Documentation/RelNotes/1.7.0.7.txt deleted file mode 100644 index d0cb7ca7e27c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.7.txt +++ /dev/null @@ -1,16 +0,0 @@ -Git v1.7.0.7 Release Notes -========================== - -Fixes since v1.7.0.6 --------------------- - - * "make NO_CURL=NoThanks install" was broken. - - * An overlong line after ".gitdir: " in a git file caused out of bounds - access to an array on the stack. - - * "git config --path conf.var" to attempt to expand a variable conf.var - that uses "~/" short-hand segfaulted when $HOME environment variable - was not set. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.8.txt b/third_party/git/Documentation/RelNotes/1.7.0.8.txt deleted file mode 100644 index 7f05b48e17b9..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.8.txt +++ /dev/null @@ -1,10 +0,0 @@ -Git v1.7.0.8 Release Notes -========================== - -This is primarily to backport support for the new "add.ignoreErrors" -name given to the existing "add.ignore-errors" configuration variable. - -The next version, Git 1.7.4, and future versions, will support both -old and incorrect name and the new corrected name, but without this -backport, users who want to use the new name "add.ignoreErrors" in -their repositories cannot use older versions of Git. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.9.txt b/third_party/git/Documentation/RelNotes/1.7.0.9.txt deleted file mode 100644 index bfb31663873c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.9.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v1.7.0.9 Release Notes -========================== - -Fixes since v1.7.0.8 --------------------- - - * "gitweb" can sometimes be tricked into parrotting a filename argument - given in a request without properly quoting. diff --git a/third_party/git/Documentation/RelNotes/1.7.0.txt b/third_party/git/Documentation/RelNotes/1.7.0.txt deleted file mode 100644 index 0bb8c0b2a2a7..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.0.txt +++ /dev/null @@ -1,214 +0,0 @@ -Git v1.7.0 Release Notes -======================== - -Notes on behaviour change -------------------------- - - * "git push" into a branch that is currently checked out (i.e. pointed at by - HEAD in a repository that is not bare) is refused by default. - - Similarly, "git push $there :$killed" to delete the branch $killed - in a remote repository $there, when $killed branch is the current - branch pointed at by its HEAD, will be refused by default. - - Setting the configuration variables receive.denyCurrentBranch and - receive.denyDeleteCurrent to 'ignore' in the receiving repository - can be used to override these safety features. - - * "git send-email" does not make deep threads by default when sending a - patch series with more than two messages. All messages will be sent - as a reply to the first message, i.e. cover letter. - - It has been possible already to configure send-email to send "shallow thread" - by setting sendemail.chainreplyto configuration variable to false. The - only thing this release does is to change the default when you haven't - configured that variable. - - * "git status" is not "git commit --dry-run" anymore. This change does - not affect you if you run the command without argument. - - * "git diff" traditionally treated various "ignore whitespace" options - only as a way to filter the patch output. "git diff --exit-code -b" - exited with non-zero status even if all changes were about changing the - amount of whitespace and nothing else; and "git diff -b" showed the - "diff --git" header line for such a change without patch text. - - In this release, the "ignore whitespaces" options affect the semantics - of the diff operation. A change that does not affect anything but - whitespaces is reported with zero exit status when run with - --exit-code, and there is no "diff --git" header for such a change. - - * External diff and textconv helpers are now executed using the shell. - This makes them consistent with other programs executed by git, and - allows you to pass command-line parameters to the helpers. Any helper - paths containing spaces or other metacharacters now need to be - shell-quoted. The affected helpers are GIT_EXTERNAL_DIFF in the - environment, and diff.*.command and diff.*.textconv in the config - file. - - * The --max-pack-size argument to 'git repack', 'git pack-objects', and - 'git fast-import' was assuming the provided size to be expressed in MiB, - unlike the corresponding config variable and other similar options accepting - a size value. It is now expecting a size expressed in bytes, with a possible - unit suffix of 'k', 'm', or 'g'. - -Updates since v1.6.6 --------------------- - -(subsystems) - - * "git fast-import" updates; adds "option" and "feature" to detect the - mismatch between fast-import and the frontends that produce the input - stream. - - * "git svn" support of subversion "merge tickets" and miscellaneous fixes. - - * "gitk" and "git gui" translation updates. - - * "gitweb" updates (code clean-up, load checking etc.) - -(portability) - - * Some more MSVC portability patches for msysgit port. - - * Minimum Pthreads emulation for msysgit port. - -(performance) - - * More performance improvement patches for msysgit port. - -(usability, bells and whistles) - - * More commands learned "--quiet" and "--[no-]progress" options. - - * Various commands given by the end user (e.g. diff.type.textconv, - and GIT_EDITOR) can be specified with command line arguments. E.g. it - is now possible to say "[diff "utf8doc"] textconv = nkf -w". - - * "sparse checkout" feature allows only part of the work tree to be - checked out. - - * HTTP transfer can use authentication scheme other than basic - (i.e./e.g. digest). - - * Switching from a version of superproject that used to have a submodule - to another version of superproject that no longer has it did not remove - the submodule directory when it should (namely, when you are not - interested in the submodule at all and didn't clone/checkout). - - * A new attribute conflict-marker-size can be used to change the size of - the conflict markers from the default 7; this is useful when tracked - contents (e.g. git-merge documentation) have strings that resemble the - conflict markers. - - * A new syntax "<branch>@{upstream}" can be used on the command line to - substitute the name of the "upstream" of the branch. Missing branch - defaults to the current branch, so "git fetch && git merge @{upstream}" - will be equivalent to "git pull". - - * "git am --resolved" has a synonym "git am --continue". - - * "git branch --set-upstream" can be used to update the (surprise!) upstream, - i.e. where the branch is supposed to pull and merge from (or rebase onto). - - * "git checkout A...B" is a way to detach HEAD at the merge base between - A and B. - - * "git checkout -m path" to reset the work tree file back into the - conflicted state works even when you already ran "git add path" and - resolved the conflicts. - - * "git commit --date='<date>'" can be used to override the author date - just like "git commit --author='<name> <email>'" can be used to - override the author identity. - - * "git commit --no-status" can be used to omit the listing of the index - and the work tree status in the editor used to prepare the log message. - - * "git commit" warns a bit more aggressively until you configure user.email, - whose default value almost always is not (and fundamentally cannot be) - what you want. - - * "git difftool" has been extended to make it easier to integrate it - with gitk. - - * "git fetch --all" can now be used in place of "git remote update". - - * "git grep" does not rely on external grep anymore. It can use more than - one thread to accelerate the operation. - - * "git grep" learned "--quiet" option. - - * "git log" and friends learned "--glob=heads/*" syntax that is a more - flexible way to complement "--branches/--tags/--remotes". - - * "git merge" learned to pass options specific to strategy-backends. E.g. - - - "git merge -Xsubtree=path/to/directory" can be used to tell the subtree - strategy how much to shift the trees explicitly. - - - "git merge -Xtheirs" can be used to auto-merge as much as possible, - while discarding your own changes and taking merged version in - conflicted regions. - - * "git push" learned "git push origin --delete branch", a syntactic sugar - for "git push origin :branch". - - * "git push" learned "git push --set-upstream origin forker:forkee" that - lets you configure your "forker" branch to later pull from "forkee" - branch at "origin". - - * "git rebase --onto A...B" means the history is replayed on top of the - merge base between A and B. - - * "git rebase -i" learned new action "fixup" that squashes the change - but does not affect existing log message. - - * "git rebase -i" also learned --autosquash option that is useful - together with the new "fixup" action. - - * "git remote" learned set-url subcommand that updates (surprise!) url - for an existing remote nickname. - - * "git rerere" learned "forget path" subcommand. Together with "git - checkout -m path" it will be useful when you recorded a wrong - resolution. - - * Use of "git reset --merge" has become easier when resetting away a - conflicted mess left in the work tree. - - * "git rerere" had rerere.autoupdate configuration but there was no way - to countermand it from the command line; --no-rerere-autoupdate option - given to "merge", "revert", etc. fixes this. - - * "git status" learned "-s(hort)" output format. - -(developers) - - * The infrastructure to build foreign SCM interface has been updated. - - * Many more commands are now built-in. - - * THREADED_DELTA_SEARCH is no more. If you build with threads, delta - compression will always take advantage of it. - -Fixes since v1.6.6 ------------------- - -All of the fixes in v1.6.6.X maintenance series are included in this -release, unless otherwise noted. - - * "git branch -d branch" used to refuse deleting the branch even when - the branch is fully merged to its upstream branch if it is not merged - to the current branch. It now deletes it in such a case. - - * "filter-branch" command incorrectly said --prune-empty and --filter-commit - were incompatible; the latter should be read as --commit-filter. - - * When using "git status" or asking "git diff" to compare the work tree - with something, they used to consider that a checked-out submodule with - uncommitted changes is not modified; this could cause people to forget - committing these changes in the submodule before committing in the - superproject. They now consider such a change as a modification and - "git diff" will append a "-dirty" to the work tree side when generating - patch output or when used with the --submodule option. diff --git a/third_party/git/Documentation/RelNotes/1.7.1.1.txt b/third_party/git/Documentation/RelNotes/1.7.1.1.txt deleted file mode 100644 index 3f6b3148a309..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.1.1.txt +++ /dev/null @@ -1,96 +0,0 @@ -Git v1.7.1.1 Release Notes -========================== - -Fixes since v1.7.1 ------------------- - - * Authentication over http transport can now be made lazily, in that the - request can first go to a URL without username, get a 401 response and - then the client will ask for the username to use. - - * We used to mistakenly think "../work" is a subdirectory of the current - directory when we are in "../work-xyz". - - * The attribute mechanism now allows an entry that uses an attribute - macro that set/unset one attribute, immediately followed by an - overriding setting; this makes attribute macros much easier to use. - - * We didn't recognize timezone "Z" as a synonym for "UTC" (75b37e70). - - * In 1.7.0, read-tree and user commands that use the mechanism such as - checkout and merge were fixed to handle switching between branches one - of which has a file while the other has a directory at the same path - correctly even when there are some "confusing" pathnames in them. But - the algorithm used for this fix was suboptimal and had a terrible - performance degradation especially in larger trees. - - * "git am -3" did not show diagnosis when the patch in the message was corrupt. - - * After "git apply --whitespace=fix" removed trailing blank lines in an - patch in a patch series, it failed to apply later patches that depend - on the presence of such blank lines. - - * "git bundle --stdin" segfaulted. - - * "git checkout" and "git rebase" overwrote paths that are marked "assume - unchanged". - - * "git commit --amend" on a commit with an invalid author-name line that - lacks the display name didn't work. - - * "git describe" did not tie-break tags that point at the same commit - correctly; newer ones are preferred by paying attention to the - tagger date now. - - * "git diff" used to tell underlying xdiff machinery to work very hard to - minimize the output, but this often was spending too many extra cycles - for very little gain. - - * "git diff --color" did not paint extended diff headers per line - (i.e. the coloring escape sequence didn't end at the end of line), - which confused "less -R". - - * "git fetch" over HTTP verifies the downloaded packfiles more robustly. - - * The memory usage by "git index-pack" (run during "git fetch" and "git - push") got leaner. - - * "GIT_DIR=foo.git git init --bare bar.git" created foo.git instead of bar.git. - - * "git log --abbrev=$num --format='%h' ignored --abbrev=$num. - - * "git ls-files ../out/side/cwd" refused to work. - - * "git merge --log" used to replace the custom message given by "-m" with - the shortlog, instead of appending to it. - - * "git notes copy" without any other argument segfaulted. - - * "git pull" accepted "--dry-run", gave it to underlying "git fetch" but - ignored the option itself, resulting in a bogus attempt to merge - unrelated commit. - - * "git rebase" did not faithfully reproduce a malformed author ident, that - is often seen in a repository converted from foreign SCMs. - - * "git reset --hard" started from a wrong directory and a working tree in - a nonstandard location is in use got confused. - - * "git send-email" lacked a way to specify the domainname used in the - EHLO/HELO exchange, causing rejected connection from picky servers. - It learned --smtp-domain option to solve this issue. - - * "git send-email" did not declare a content-transfer-encoding and - content-type even when its payload needs to be sent in 8-bit. - - * "git show -C -C" and other corner cases lost diff metainfo output - in 1.7.0. - - * "git stash" incorrectly lost paths in the working tree that were - previously removed from the index. - - * "git status" stopped refreshing the index by mistake in 1.7.1. - - * "git status" showed excess "hints" even when advice.statusHints is set to false. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.1.2.txt b/third_party/git/Documentation/RelNotes/1.7.1.2.txt deleted file mode 100644 index 61ba14e262a4..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.1.2.txt +++ /dev/null @@ -1,28 +0,0 @@ -Git v1.7.1.2 Release Notes -========================== - -Fixes since v1.7.1.1 --------------------- - - * "git commit" did not honor GIT_REFLOG_ACTION environment variable, resulting - reflog messages for cherry-pick and revert actions to be recorded as "commit". - - * "git clone/fetch/pull" issued an incorrect error message when a ref and - a symref that points to the ref were updated at the same time. This - obviously would update them to the same value, and should not result in - an error condition. - - * "git diff" inside a tree with many pathnames that have certain - characters has become very slow in 1.7.0 by mistake. - - * "git rev-parse --parseopt --stop-at-non-option" did not stop at non option - when --keep-dashdash was in effect. - - * An overlong line after ".gitdir: " in a git file caused out of bounds - access to an array on the stack. - - * "git config --path conf.var" to attempt to expand a variable conf.var - that uses "~/" short-hand segfaulted when $HOME environment variable - was not set. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.1.3.txt b/third_party/git/Documentation/RelNotes/1.7.1.3.txt deleted file mode 100644 index 5b1851844907..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.1.3.txt +++ /dev/null @@ -1,10 +0,0 @@ -Git v1.7.1.3 Release Notes -========================== - -This is primarily to backport support for the new "add.ignoreErrors" -name given to the existing "add.ignore-errors" configuration variable. - -The next version, Git 1.7.4, and future versions, will support both -old and incorrect name and the new corrected name, but without this -backport, users who want to use the new name "add.ignoreErrors" in -their repositories cannot use older versions of Git. diff --git a/third_party/git/Documentation/RelNotes/1.7.1.4.txt b/third_party/git/Documentation/RelNotes/1.7.1.4.txt deleted file mode 100644 index 7c734b4f7b0e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.1.4.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v1.7.1.4 Release Notes -========================== - -Fixes since v1.7.1.3 --------------------- - - * "gitweb" can sometimes be tricked into parrotting a filename argument - given in a request without properly quoting. diff --git a/third_party/git/Documentation/RelNotes/1.7.1.txt b/third_party/git/Documentation/RelNotes/1.7.1.txt deleted file mode 100644 index 9d89fedb36b4..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.1.txt +++ /dev/null @@ -1,89 +0,0 @@ -Git v1.7.1 Release Notes -======================== - -Updates since v1.7.0 --------------------- - - * Eric Raymond is the maintainer of updated CIAbot scripts, in contrib/. - - * gitk updates. - - * Some commands (e.g. svn and http interfaces) that interactively ask - for a password can be told to use an external program given via - GIT_ASKPASS. - - * Conflict markers that lead the common ancestor in diff3-style output - now have a label, which hopefully would help third-party tools that - expect one. - - * Comes with an updated bash-completion script. - - * "git am" learned "--keep-cr" option to handle inputs that are - a mixture of changes to files with and without CRLF line endings. - - * "git cvsimport" learned -R option to leave revision mapping between - CVS revisions and resulting git commits. - - * "git diff --submodule" notices and describes dirty submodules. - - * "git for-each-ref" learned %(symref), %(symref:short) and %(flag) - tokens. - - * "git hash-object --stdin-paths" can take "--no-filters" option now. - - * "git init" can be told to look at init.templatedir configuration - variable (obviously that has to come from either /etc/gitconfig or - $HOME/.gitconfig). - - * "git grep" learned "--no-index" option, to search inside contents that - are not managed by git. - - * "git grep" learned --color=auto/always/never. - - * "git grep" learned to paint filename and line-number in colors. - - * "git log -p --first-parent -m" shows one-parent diff for merge - commits, instead of showing combined diff. - - * "git merge-file" learned to use custom conflict marker size and also - to use the "union merge" behaviour. - - * "git notes" command has been rewritten in C and learned many commands - and features to help you carry notes forward across rebases and amends. - - * "git request-pull" identifies the commit the request is relative to in - a more readable way. - - * "git reset" learned "--keep" option that lets you discard commits - near the tip while preserving your local changes in a way similar - to how "git checkout branch" does. - - * "git status" notices and describes dirty submodules. - - * "git svn" should work better when interacting with repositories - with CRLF line endings. - - * "git imap-send" learned to support CRAM-MD5 authentication. - - * "gitweb" installation procedure can use "minified" js/css files - better. - - * Various documentation updates. - -Fixes since v1.7.0 ------------------- - -All of the fixes in v1.7.0.X maintenance series are included in this -release, unless otherwise noted. - - * "git add frotz/nitfol" did not complain when the entire frotz/ directory - was ignored. - - * "git diff --stat" used "int" to count the size of differences, - which could result in overflowing. - - * "git rev-list --pretty=oneline" didn't terminate a record with LF for - commits without any message. - - * "git rev-list --abbrev-commit" defaulted to 40-byte abbreviations, unlike - newer tools in the git toolset. diff --git a/third_party/git/Documentation/RelNotes/1.7.10.1.txt b/third_party/git/Documentation/RelNotes/1.7.10.1.txt deleted file mode 100644 index 71a86cb7c6d8..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.10.1.txt +++ /dev/null @@ -1,78 +0,0 @@ -Git v1.7.10.1 Release Notes -=========================== - -Additions since v1.7.10 ------------------------ - -Localization message files for Danish and German have been added. - - -Fixes since v1.7.10 -------------------- - - * "git add -p" is not designed to deal with unmerged paths but did - not exclude them and tried to apply funny patches only to fail. - - * "git blame" started missing quite a few changes from the origin - since we stopped using the diff minimization by default in v1.7.2 - era. - - * When PATH contains an unreadable directory, alias expansion code - did not kick in, and failed with an error that said "git-subcmd" - was not found. - - * "git clean -d -f" (not "-d -f -f") is supposed to protect nested - working trees of independent git repositories that exist in the - current project working tree from getting removed, but the - protection applied only to such working trees that are at the - top-level of the current project by mistake. - - * "git commit --author=$name" did not tell the name that was being - recorded in the resulting commit to hooks, even though it does do - so when the end user overrode the authorship via the - "GIT_AUTHOR_NAME" environment variable. - - * When "git commit --template F" errors out because the user did not - touch the message, it claimed that it aborts due to "empty - message", which was utterly wrong. - - * The regexp configured with diff.wordregex was incorrectly reused - across files. - - * An age-old corner case bug in combine diff (only triggered with -U0 - and the hunk at the beginning of the file needs to be shown) has - been fixed. - - * Rename detection logic used to match two empty files as renames - during merge-recursive, leading to unnatural mismerges. - - * The parser in "fast-import" did not diagnose ":9" style references - that is not followed by required SP/LF as an error. - - * When "git fetch" encounters repositories with too many references, - the command line of "fetch-pack" that is run by a helper - e.g. remote-curl, may fail to hold all of them. Now such an - internal invocation can feed the references through the standard - input of "fetch-pack". - - * "git fetch" that recurses into submodules on demand did not check - if it needs to go into submodules when non branches (most notably, - tags) are fetched. - - * "log -p --graph" used with "--stat" had a few formatting error. - - * Running "notes merge --commit" failed to perform correctly when run - from any directory inside $GIT_DIR/. When "notes merge" stops with - conflicts, $GIT_DIR/NOTES_MERGE_WORKTREE is the place a user edits - to resolve it. - - * The 'push to upstream' implementation was broken in some corner - cases. "git push $there" without refspec, when the current branch - is set to push to a remote different from $there, used to push to - $there using the upstream information to a remote unrelated to - $there. - - * Giving "--continue" to a conflicted "rebase -i" session skipped a - commit that only results in changes to submodules. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.10.2.txt b/third_party/git/Documentation/RelNotes/1.7.10.2.txt deleted file mode 100644 index 7a7e9d6fd128..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.10.2.txt +++ /dev/null @@ -1,85 +0,0 @@ -Git v1.7.10.2 Release Notes -=========================== - -Fixes since v1.7.10.1 ---------------------- - - * The test scaffolding for git-daemon was flaky. - - * The test scaffolding for fast-import was flaky. - - * The filesystem boundary was not correctly reported when .git directory - discovery stopped at a mount point. - - * HTTP transport that requires authentication did not work correctly when - multiple connections are used simultaneously. - - * Minor memory leak during unpack_trees (hence "merge" and "checkout" - to check out another branch) has been plugged. - - * In the older days, the header "Conflicts:" in "cherry-pick" and "merge" - was separated by a blank line from the list of paths that follow for - readability, but when "merge" was rewritten in C, we lost it by - mistake. Remove the newline from "cherry-pick" to make them match - again. - - * The command line parser choked "git cherry-pick $name" when $name can - be both revision name and a pathname, even though $name can never be a - path in the context of the command. - - * The "include.path" facility in the configuration mechanism added in - 1.7.10 forgot to interpret "~/path" and "~user/path" as it should. - - * "git config --rename-section" to rename an existing section into a - bogus one did not check the new name. - - * The "diff --no-index" codepath used limited-length buffers, risking - pathnames getting truncated. Update it to use the strbuf API. - - * The report from "git fetch" said "new branch" even for a non branch - ref. - - * The http-backend (the server side of the smart http transfer) used - to overwrite GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL with the - value obtained from REMOTE_USER unconditionally, making it - impossible for the server side site-specific customization to use - different identity sources to affect the names logged. It now uses - REMOTE_USER only as a fallback value. - - * "log --graph" was not very friendly with "--stat" option and its - output had line breaks at wrong places. - - * Octopus merge strategy did not reduce heads that are recorded in the - final commit correctly. - - * "git push" over smart-http lost progress output a few releases ago; - this release resurrects it. - - * The error and advice messages given by "git push" when it fails due - to non-ff were not very helpful to new users; it has been broken - into three cases, and each is given a separate advice message. - - * The insn sheet given by "rebase -i" did not make it clear that the - insn lines can be re-ordered to affect the order of the commits in - the resulting history. - - * "git repack" used to write out unreachable objects as loose objects - when repacking, even if such loose objects will immediately pruned - due to its age. - - * A contrib script "rerere-train" did not work out of the box unless - user futzed with her $PATH. - - * "git rev-parse --show-prefix" used to emit nothing when run at the - top-level of the working tree, but now it gives a blank line. - - * The i18n of error message "git stash save" was not properly done. - - * "git submodule" used a sed script that some platforms mishandled. - - * When using a Perl script on a system where "perl" found on user's - $PATH could be ancient or otherwise broken, we allow builders to - specify the path to a good copy of Perl with $PERL_PATH. The - gitweb test forgot to use that Perl when running its test. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.10.3.txt b/third_party/git/Documentation/RelNotes/1.7.10.3.txt deleted file mode 100644 index 703fbf1d60a7..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.10.3.txt +++ /dev/null @@ -1,43 +0,0 @@ -Git v1.7.10.3 Release Notes -=========================== - -Fixes since v1.7.10.2 ---------------------- - - * The message file for German translation has been updated a bit. - - * Running "git checkout" on an unborn branch used to corrupt HEAD. - - * When checking out another commit from an already detached state, we - used to report all commits that are not reachable from any of the - refs as lossage, but some of them might be reachable from the new - HEAD, and there is no need to warn about them. - - * Some time ago, "git clone" lost the progress output for its - "checkout" phase; when run without any "--quiet" option, it should - give progress to the lengthy operation. - - * The directory path used in "git diff --no-index", when it recurses - down, was broken with a recent update after v1.7.10.1 release. - - * "log -z --pretty=tformat:..." did not terminate each record with - NUL. The fix is not entirely correct when the output also asks for - --patch and/or --stat, though. - - * The DWIM behaviour for "log --pretty=format:%gd -g" was somewhat - broken and gave undue precedence to configured log.date, causing - "git stash list" to show "stash@{time stamp string}". - - * "git status --porcelain" ignored "--branch" option by mistake. The - output for "git status --branch -z" was also incorrect and did not - terminate the record for the current branch name with NUL as asked. - - * When a submodule repository uses alternate object store mechanism, - some commands that were started from the superproject did not - notice it and failed with "No such object" errors. The subcommands - of "git submodule" command that recursed into the submodule in a - separate process were OK; only the ones that cheated and peeked - directly into the submodule's repository from the primary process - were affected. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.10.4.txt b/third_party/git/Documentation/RelNotes/1.7.10.4.txt deleted file mode 100644 index 57597f2bf35d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.10.4.txt +++ /dev/null @@ -1,29 +0,0 @@ -Git v1.7.10.4 Release Notes -=========================== - -Fixes since v1.7.10.3 ---------------------- - - * The message file for Swedish translation has been updated a bit. - - * A name taken from mailmap was copied into an internal buffer - incorrectly and could overrun the buffer if it is too long. - - * A malformed commit object that has a header line chomped in the - middle could kill git with a NULL pointer dereference. - - * An author/committer name that is a single character was mishandled - as an invalid name by mistake. - - * The progress indicator for a large "git checkout" was sent to - stderr even if it is not a terminal. - - * "git grep -e '$pattern'", unlike the case where the patterns are - read from a file, did not treat individual lines in the given - pattern argument as separate regular expressions as it should. - - * When "git rebase" was given a bad commit to replay the history on, - its error message did not correctly give the command line argument - it had trouble parsing. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.10.5.txt b/third_party/git/Documentation/RelNotes/1.7.10.5.txt deleted file mode 100644 index 4db1770e3888..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.10.5.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v1.7.10.5 Release Notes -=========================== - -Fixes since v1.7.10.4 ---------------------- - - * "git fast-export" did not give a readable error message when the - same mark erroneously appeared twice in the --import-marks input. - - * "git rebase -p" used to pay attention to rebase.autosquash which - was wrong. "git rebase -p -i" should, but "git rebase -p" by - itself should not. diff --git a/third_party/git/Documentation/RelNotes/1.7.10.txt b/third_party/git/Documentation/RelNotes/1.7.10.txt deleted file mode 100644 index 58100bf04e1c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.10.txt +++ /dev/null @@ -1,219 +0,0 @@ -Git v1.7.10 Release Notes -========================= - -Compatibility Notes -------------------- - - * From this release on, the "git merge" command in an interactive - session will start an editor when it automatically resolves the - merge for the user to explain the resulting commit, just like the - "git commit" command does when it wasn't given a commit message. - - If you have a script that runs "git merge" and keeps its standard - input and output attached to the user's terminal, and if you do not - want the user to explain the resulting merge commits, you can - export GIT_MERGE_AUTOEDIT environment variable set to "no", like - this: - - #!/bin/sh - GIT_MERGE_AUTOEDIT=no - export GIT_MERGE_AUTOEDIT - - to disable this behavior (if you want your users to explain their - merge commits, you do not have to do anything). Alternatively, you - can give the "--no-edit" option to individual invocations of the - "git merge" command if you know everybody who uses your script has - Git v1.7.8 or newer. - - * The "--binary/-b" options to "git am" have been a no-op for quite a - while and were deprecated in mid 2008 (v1.6.0). When you give these - options to "git am", it will now warn and ask you not to use them. - - * When you do not tell which branches and tags to push to the "git - push" command in any way, the command used "matching refs" rule to - update remote branches and tags with branches and tags with the - same name you locally have. In future versions of Git, this will - change to push out only your current branch according to either the - "upstream" or the "current" rule. Although "upstream" may be more - powerful once the user understands Git better, the semantics - "current" gives is simpler and easier to understand for beginners - and may be a safer and better default option. We haven't decided - yet which one to switch to. - - -Updates since v1.7.9 --------------------- - -UI, Workflows & Features - - * various "gitk" updates. - - show the path to the top level directory in the window title - - update preference edit dialog - - display file list correctly when directories are given on command line - - make "git-describe" output in the log message into a clickable link - - avoid matching the UNIX timestamp part when searching all fields - - give preference to symbolic font names like sans & monospace - - allow comparing two commits using a mark - - "gitk" honors log.showroot configuration. - - * Teams for localizing the messages from the Porcelain layer of - commands are starting to form, thanks to Jiang Xin who volunteered - to be the localization coordinator. Translated messages for - simplified Chinese, Swedish and Portuguese are available. - - * The configuration mechanism learned an "include" facility; an - assignment to the include.path pseudo-variable causes the named - file to be included in-place when Git looks up configuration - variables. - - * A content filter (clean/smudge) used to be just a way to make the - recorded contents "more useful", and allowed to fail; a filter can - now optionally be marked as "required". - - * Options whose names begin with "--no-" (e.g. the "--no-verify" - option of the "git commit" command) can be negated by omitting - "no-" from its name, e.g. "git commit --verify". - - * "git am" learned to pass "-b" option to underlying "git mailinfo", so - that a bracketed string other than "PATCH" at the beginning can be kept. - - * "git clone" learned "--single-branch" option to limit cloning to a - single branch (surprise!); tags that do not point into the history - of the branch are not fetched. - - * "git clone" learned to detach the HEAD in the resulting repository - when the user specifies a tag with "--branch" (e.g., "--branch=v1.0"). - Clone also learned to print the usual "detached HEAD" advice in such - a case, similar to "git checkout v1.0". - - * When showing a patch while ignoring whitespace changes, the context - lines are taken from the postimage, in order to make it easier to - view the output. - - * "git diff --stat" learned to adjust the width of the output on - wider terminals, and give more columns to pathnames as needed. - - * "diff-highlight" filter (in contrib/) was updated to produce more - aesthetically pleasing output. - - * "fsck" learned "--no-dangling" option to omit dangling object - information. - - * "git log -G" and "git log -S" learned to pay attention to the "-i" - option. With "-i", "log -G" ignores the case when finding patch - hunks that introduce or remove a string that matches the given - pattern. Similarly with "-i", "log -S" ignores the case when - finding the commit the given block of text appears or disappears - from the file. - - * "git merge" in an interactive session learned to spawn the editor - by default to let the user edit the auto-generated merge message, - to encourage people to explain their merges better. Legacy scripts - can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior. - Both "git merge" and "git pull" can be given --no-edit from the - command line to accept the auto-generated merge message. - - * The advice message given when the user didn't give enough clue on - what to merge to "git pull" and "git merge" has been updated to - be more concise and easier to understand. - - * "git push" learned the "--prune" option, similar to "git fetch". - - * The whole directory that houses a top-level superproject managed by - "git submodule" can be moved to another place. - - * "git symbolic-ref" learned the "--short" option to abbreviate the - refname it shows unambiguously. - - * "git tag --list" can be given "--points-at <object>" to limit its - output to those that point at the given object. - - * "gitweb" allows intermediate entries in the directory hierarchy - that leads to a project to be clicked, which in turn shows the - list of projects inside that directory. - - * "gitweb" learned to read various pieces of information for the - repositories lazily, instead of reading everything that could be - needed (including the ones that are not necessary for a specific - task). - - * Project search in "gitweb" shows the substring that matched in the - project name and description highlighted. - - * HTTP transport learned to authenticate with a proxy if needed. - - * A new script "diffall" is added to contrib/; it drives an - external tool to perform a directory diff of two Git revisions - in one go, unlike "difftool" that compares one file at a time. - -Foreign Interface - - * Improved handling of views, labels and branches in "git-p4" (in contrib). - - * "git-p4" (in contrib) suffered from unnecessary merge conflicts when - p4 expanded the embedded $RCS$-like keywords; it can be now told to - unexpand them. - - * Some "git-svn" updates. - - * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and - support incremental imports. - - * "git difftool/mergetool" learned to drive DeltaWalker. - -Performance - - * Unnecessary calls to parse_object() "git upload-pack" makes in - response to "git fetch", have been eliminated, to help performance - in repositories with excessive number of refs. - -Internal Implementation (please report possible regressions) - - * Recursive call chains in "git index-pack" to deal with long delta - chains have been flattened, to reduce the stack footprint. - - * Use of add_extra_ref() API is now gone, to make it possible to - cleanly restructure the overall refs API. - - * The command line parser of "git pack-objects" now uses parse-options - API. - - * The test suite supports the new "test_pause" helper function. - - * Parallel to the test suite, there is a beginning of performance - benchmarking framework. - - * t/Makefile is adjusted to prevent newer versions of GNU make from - running tests in seemingly random order. - - * The code to check if a path points at a file beyond a symbolic link - has been restructured to be thread-safe. - - * When pruning directories that has become empty during "git prune" - and "git prune-packed", call closedir() that iterates over a - directory before rmdir() it. - -Also contains minor documentation updates and code clean-ups. - - -Fixes since v1.7.9 ------------------- - -Unless otherwise noted, all the fixes since v1.7.9 in the maintenance -releases are contained in this release (see release notes to them for -details). - - * Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work - with versions of Perl older than 5.8.3. - (merge 5eb660e ab/perl-i18n later to maint). - - * "git tag -s" honored "gpg.program" configuration variable since - 1.7.9, but "git tag -v" and "git verify-tag" didn't. - (merge a2c2506 az/verify-tag-use-gpg-config later to maint). - - * "configure" script learned to take "--with-sane-tool-path" from the - command line to record SANE_TOOL_PATH (used to avoid broken platform - tools in /usr/bin) in config.mak.autogen. This may be useful for - people on Solaris who have saner tools outside /usr/xpg[46]/bin. - - * zsh port of bash completion script needed another workaround. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.1.txt b/third_party/git/Documentation/RelNotes/1.7.11.1.txt deleted file mode 100644 index 577eccaacd63..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.1.txt +++ /dev/null @@ -1,9 +0,0 @@ -Git v1.7.11.1 Release Notes -=========================== - -Fixes since v1.7.11 -------------------- - - * The cross links in the HTML version of manual pages were broken. - -Also contains minor typofixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.2.txt b/third_party/git/Documentation/RelNotes/1.7.11.2.txt deleted file mode 100644 index f0cfd02d6ff3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.2.txt +++ /dev/null @@ -1,53 +0,0 @@ -Git v1.7.11.2 Release Notes -=========================== - -Fixes since v1.7.11.1 ---------------------- - - * On Cygwin, the platform pread(2) is not thread safe, just like our - own compat/ emulation, and cannot be used in the index-pack - program. Makefile variable NO_THREAD_SAFE_PREAD can be defined to - avoid use of this function in a threaded program. - - * "git add" allows adding a regular file to the path where a - submodule used to exist, but "git update-index" does not allow an - equivalent operation to Porcelain writers. - - * "git archive" incorrectly computed the header checksum; the symptom - was observed only when using pathnames with hi-bit set. - - * "git blame" did not try to make sure that the abbreviated commit - object names in its output are unique. - - * Running "git bundle verify" on a bundle that records a complete - history said "it requires these 0 commits". - - * "git clone --single-branch" to clone a single branch did not limit - the cloning to the specified branch. - - * "git diff --no-index" did not correctly handle relative paths and - did not correctly give exit codes when run under "--quiet" option. - - * "git diff --no-index" did not work with pagers correctly. - - * "git diff COPYING HEAD:COPYING" gave a nonsense error message that - claimed that the tree-ish HEAD did not have COPYING in it. - - * When "git log" gets "--simplify-merges/by-decoration" together with - "--first-parent", the combination of these options makes the - simplification logic to use in-core commit objects that haven't - been examined for relevance, either producing incorrect result or - taking too long to produce any output. Teach the simplification - logic to ignore commits that the first-parent traversal logic - ignored when both are in effect to work around the issue. - - * "git ls-files --exclude=t -i" did not consider anything under t/ as - excluded, as it did not pay attention to exclusion of leading paths - while walking the index. Other two users of excluded() are also - updated. - - * "git request-pull $url dev" when the tip of "dev" branch was tagged - with "ext4-for-linus" used the contents from the tag in the output - but still asked the "dev" branch to be pulled, not the tag. - -Also contains minor typofixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.3.txt b/third_party/git/Documentation/RelNotes/1.7.11.3.txt deleted file mode 100644 index 64494f89d93a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.3.txt +++ /dev/null @@ -1,53 +0,0 @@ -Git v1.7.11.3 Release Notes -=========================== - -Fixes since v1.7.11.3 ---------------------- - - * The error message from "git push $there :bogo" (and its equivalent - "git push $there --delete bogo") mentioned that we tried and failed - to guess what ref is being deleted based on the LHS of the refspec, - which we don't. - - * A handful of files and directories we create had tighter than - necessary permission bits when the user wanted to have group - writability (e.g. by setting "umask 002"). - - * "commit --amend" used to refuse amending a commit with an empty log - message, with or without "--allow-empty-message". - - * "git commit --amend --only --" was meant to allow "Clever" people to - rewrite the commit message without making any change even when they - have already changes for the next commit added to their index, but - it never worked as advertised since it was introduced in 1.3.0 era. - - * Even though the index can record pathnames longer than 1<<12 bytes, - in some places we were not comparing them in full, potentially - replacing index entries instead of adding. - - * "git show"'s auto-walking behaviour was an unreliable and - unpredictable hack; it now behaves just like "git log" does when it - walks. - - * "git diff", "git status" and anything that internally uses the - comparison machinery was utterly broken when the difference - involved a file with "-" as its name. This was due to the way "git - diff --no-index" was incorrectly bolted on to the system, making - any comparison that involves a file "-" at the root level - incorrectly read from the standard input. - - * We did not have test to make sure "git rebase" without extra options - filters out an empty commit in the original history. - - * "git fast-export" produced an input stream for fast-import without - properly quoting pathnames when they contain SPs in them. - - * "git checkout --detach", when you are still on an unborn branch, - should be forbidden, but it wasn't. - - * Some implementations of Perl terminates "lines" with CRLF even when - the script is operating on just a sequence of bytes. Make sure to - use "$PERL_PATH", the version of Perl the user told Git to use, in - our tests to avoid unnecessary breakages in tests. - -Also contains minor typofixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.4.txt b/third_party/git/Documentation/RelNotes/1.7.11.4.txt deleted file mode 100644 index 3a640c2d4dbd..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.4.txt +++ /dev/null @@ -1,31 +0,0 @@ -Git v1.7.11.4 Release Notes -=========================== - -Fixes since v1.7.11.3 ---------------------- - - * "$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log - message user edits was not documented. - - * The advise() function did not use varargs correctly to format - its message. - - * When "git am" failed, old timers knew to check .git/rebase-apply/patch - to see what went wrong, but we never told the users about it. - - * "git commit-tree" learned a more natural "-p <parent> <tree>" order - of arguments long time ago, but recently forgot it by mistake. - - * "git diff --no-ext-diff" did not output anything for a typechange - filepair when GIT_EXTERNAL_DIFF is in effect. - - * In 1.7.9 era, we taught "git rebase" about the raw timestamp format - but we did not teach the same trick to "filter-branch", which rolled - a similar logic on its own. - - * When "git submodule add" clones a submodule repository, it can get - confused where to store the resulting submodule repository in the - superproject's .git/ directory when there is a symbolic link in the - path to the current directory. - -Also contains minor typofixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.5.txt b/third_party/git/Documentation/RelNotes/1.7.11.5.txt deleted file mode 100644 index 0a2ed855c595..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.5.txt +++ /dev/null @@ -1,36 +0,0 @@ -Git v1.7.11.5 Release Notes -=========================== - -Fixes since v1.7.11.4 ---------------------- - - * The Makefile rule to create assembly output (primarily for - debugging purposes) did not create it next to the source. - - * The code to avoid mistaken attempt to add the object directory - itself as its own alternate could read beyond end of a string while - comparison. - - * On some architectures, "block-sha1" did not compile correctly - when compilers inferred alignment guarantees from our source we - did not intend to make. - - * When talking to a remote running ssh on IPv6 enabled host, whose - address is spelled as "[HOST]:PORT", we did not parse the address - correctly and failed to connect. - - * git-blame.el (in compat/) have been updated to use Elisp more - correctly. - - * "git checkout <branchname>" to come back from a detached HEAD state - incorrectly computed reachability of the detached HEAD, resulting - in unnecessary warnings. - - * "git mergetool" did not support --tool-help option to give the list - of supported backends, like "git difftool" does. - - * "git grep" stopped spawning an external "grep" long time ago, but a - duplicated test to check internal and external "grep" was left - behind. - -Also contains minor typofixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.6.txt b/third_party/git/Documentation/RelNotes/1.7.11.6.txt deleted file mode 100644 index ba7d3c396653..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.6.txt +++ /dev/null @@ -1,84 +0,0 @@ -Git v1.7.11.6 Release Notes -=========================== - -Fixes since v1.7.11.5 ---------------------- - - * "ciabot" script (in contrib/) has been updated with extensive - documentation. - - * "git foo" errored out with "Not a directory" when the user had a - non-directory on $PATH, and worse yet it masked an alias "foo" from - running. - - * When the user exports a non-default IFS without HT, scripts that - rely on being able to parse "ls-files -s | while read a b c..." - started to fail. Protect them from such a misconfiguration. - - * When the user gives an argument that can be taken as both a - revision name and a pathname without disambiguating with "--", we - used to give a help message "Use '--' to separate". The message - has been clarified to show where that '--' goes on the command - line. - - * Documentation for the configuration file format had a confusing - example. - - * Older parts of the documentation described as if having a regular - file in .git/refs/ hierarchy were the only way to have branches and - tags, which is not true for quite some time. - - * It was generally understood that "--long-option"s to many of our - subcommands can be abbreviated to the unique prefix, but it was not - easy to find it described for new readers of the documentation set. - - * The "--topo-order", "--date-order" (and the lack of either means - the default order) options to "rev-list" and "log" family of - commands were poorly described in the documentation. - - * "git commit --amend" let the user edit the log message and then - died when the human-readable committer name was given - insufficiently by getpwent(3). - - * The exit status code from "git config" was way overspecified while - being incorrect. The implementation has been updated to give the - documented status for a case that was documented, and introduce a - new code for "all other errors". - - * The output from "git diff -B" for a file that ends with an - incomplete line did not put "\ No newline..." on a line of its own. - - * "git diff" had a confusion between taking data from a path in the - working tree and taking data from an object that happens to have - name 0{40} recorded in a tree. - - * The "--rebase" option to "git pull" can be abbreviated to "-r", - but we didn't document it. - - * When "git push" triggered the automatic gc on the receiving end, a - message from "git prune" that said it was removing cruft leaked to - the standard output, breaking the communication protocol. - - * The reflog entries left by "git rebase" and "git rebase -i" were - inconsistent (the interactive one gave an abbreviated object name). - - * "git send-email" did not unquote encoded words that appear on the - header correctly, and lost "_" from strings. - - * "git stash apply/pop" did not trigger "rerere" upon conflicts - unlike other mergy operations. - - * "git submodule <cmd> path" did not error out when the path to the - submodule was misspelt. - - * "git submodule update -f" did not update paths in the working tree - that has local changes. - (merge 01d4721 sz/submodule-force-update later to maint). - - * "gitweb" when used with PATH_INFO failed to notice directories with - SP (and other characters that need URL-style quoting) in them. - - * Fallback 'getpass' implementation made unportable use of stdio API. - - * A utility shell function test_seq has been added as a replacement - for the 'seq' utility found on some platforms. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.7.txt b/third_party/git/Documentation/RelNotes/1.7.11.7.txt deleted file mode 100644 index e743a2a8e46e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.7.txt +++ /dev/null @@ -1,46 +0,0 @@ -Git v1.7.11.7 Release Notes -=========================== - -Fixes since v1.7.11.6 ---------------------- - - * The synopsis said "checkout [-B branch]" to make it clear the - branch name is a parameter to the option, but the heading for the - option description was "-B::", not "-B branch::", making the - documentation misleading. - - * Git ships with a fall-back regexp implementation for platforms with - buggy regexp library, but it was easy for people to keep using their - platform regexp. A new test has been added to check this. - - * "git apply -p0" did not parse pathnames on "diff --git" line - correctly. This caused patches that had pathnames in no other - places to be mistakenly rejected (most notably, binary patch that - does not rename nor change mode). Textual patches, renames or mode - changes have preimage and postimage pathnames in different places - in a form that can be parsed unambiguously and did not suffer from - this problem. - - * After "gitk" showed the contents of a tag, neither "Reread - references" nor "Reload" did not update what is shown as the - contents of it, when the user overwrote the tag with "git tag -f". - - * "git for-each-ref" did not correctly support more than one --sort - option. - - * "git log .." errored out saying it is both rev range and a path - when there is no disambiguating "--" is on the command line. - Update the command line parser to interpret ".." as a path in such - a case. - - * Pushing to smart HTTP server with recent Git fails without having - the username in the URL to force authentication, if the server is - configured to allow GET anonymously, while requiring authentication - for POST. - - * "git show --format='%ci'" did not give timestamp correctly for - commits created without human readable name on "committer" line. - (merge e27ddb6 jc/maint-ident-missing-human-name later to maint). - - * "git show --quiet" ought to be a synonym for "git show -s", but - wasn't. diff --git a/third_party/git/Documentation/RelNotes/1.7.11.txt b/third_party/git/Documentation/RelNotes/1.7.11.txt deleted file mode 100644 index 15b954ca4b01..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.11.txt +++ /dev/null @@ -1,139 +0,0 @@ -Git v1.7.11 Release Notes -========================= - -Updates since v1.7.10 ---------------------- - -UI, Workflows & Features - - * A new mode for push, "simple", which is a cross between "current" - and "upstream", has been introduced. "git push" without any refspec - will push the current branch out to the same name at the remote - repository only when it is set to track the branch with the same - name over there. The plan is to make this mode the new default - value when push.default is not configured. - - * A couple of commands learned the "--column" option to produce - columnar output. - - * A third-party tool "git subtree" is distributed in contrib/ - - * A remote helper that acts as a proxy and caches ssl session for the - https:// transport is added to the contrib/ area. - - * Error messages given when @{u} is used for a branch without its - upstream configured have been clarified. - - * Even with the "-q"uiet option, "checkout" used to report setting up - tracking. Also "branch" learned the "-q"uiet option to squelch - informational message. - - * Your build platform may support hardlinks but you may prefer not to - use them, e.g. when installing to DESTDIR to make a tarball and - untarring on a filesystem that has poor support for hardlinks. - There is a Makefile option NO_INSTALL_HARDLINKS for you. - - * The smart-http backend used to always override GIT_COMMITTER_* - variables with REMOTE_USER and REMOTE_ADDR, but these variables are - now preserved when set. - - * "git am" learned the "--include" option, which is an opposite of - existing the "--exclude" option. - - * When "git am -3" needs to fall back to an application of the patch - to a synthesized preimage followed by a 3-way merge, the paths that - needed such treatment are now reported to the end user, so that the - result in them can be eyeballed with extra care. - - * The output from "diff/log --stat" used to always allocate 4 columns - to show the number of modified lines, but not anymore. - - * "git difftool" learned the "--dir-diff" option to spawn external - diff tools that can compare two directory hierarchies at a time - after populating two temporary directories, instead of running an - instance of the external tool once per a file pair. - - * The "fmt-merge-msg" command learned to list the primary contributors - involved in the side topic you are merging in a comment in the merge - commit template. - - * "git rebase" learned to optionally keep commits that do not - introduce any change in the original history. - - * "git push --recurse-submodules" learned to optionally look into the - histories of submodules bound to the superproject and push them - out. - - * A 'snapshot' request to "gitweb" honors If-Modified-Since: header, - based on the commit date. - - * "gitweb" learned to highlight the patch it outputs even more. - -Foreign Interface - - * "git svn" used to die with unwanted SIGPIPE when talking with an HTTP - server that uses keep-alive. - - * "git svn" learned to use platform specific authentication - providers, e.g. gnome-keyring, kwallet, etc. - - * "git p4" has been moved out of the contrib/ area and has seen more - work on importing labels as tags from (and exporting tags as labels - to) p4. - -Performance and Internal Implementation (please report possible regressions) - - * Bash completion script (in contrib/) have been cleaned up to make - future work on it simpler. - - * An experimental "version 4" format of the index file has been - introduced to reduce on-disk footprint and I/O overhead. - - * "git archive" learned to produce its output without reading the - blob object it writes out in memory in its entirety. - - * "git index-pack" that runs when fetching or pushing objects to - complete the packfile on the receiving end learned to use multiple - threads to do its job when available. - - * The code to compute hash values for lines used by the internal diff - engine was optimized on little-endian machines, using the same - trick the kernel folks came up with. - - * "git apply" had some memory leaks plugged. - - * Setting up a revision traversal with many starting points was - inefficient as these were placed in a date-order priority queue - one-by-one. Now they are collected in the queue unordered first, - and sorted immediately before getting used. - - * More lower-level commands learned to use the streaming API to read - from the object store without keeping everything in core. - - * The weighting parameters to suggestion command name typo have been - tweaked, so that "git tags" will suggest "tag?" and not "stage?". - - * Because "sh" on the user's PATH may be utterly broken on some - systems, run-command API now uses SHELL_PATH, not /bin/sh, when - spawning an external command (not applicable to Windows port). - - * The API to iterate over the refs/ hierarchy has been tweaked to - allow walking only a subset of it more efficiently. - -Also contains minor documentation updates and code clean-ups. - - -Fixes since v1.7.10 -------------------- - -Unless otherwise noted, all the fixes since v1.7.10 in the maintenance -releases are contained in this release (see release notes to them for -details). - - * "git submodule init" used to report "registered for path ..." - even for submodules that were registered earlier. - (cherry-pick c1c259e jl/submodule-report-new-path-once later to maint). - - * "git diff --stat" used to fully count a binary file with modified - execution bits whose contents is unmodified, which was not quite - right. diff --git a/third_party/git/Documentation/RelNotes/1.7.12.1.txt b/third_party/git/Documentation/RelNotes/1.7.12.1.txt deleted file mode 100644 index b8f04af19f96..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.12.1.txt +++ /dev/null @@ -1,134 +0,0 @@ -Git 1.7.12.1 Release Notes -========================== - -Fixes since v1.7.12 -------------------- - - * "git apply -p0" did not parse pathnames on "diff --git" line - correctly. This caused patches that had pathnames in no other - places to be mistakenly rejected (most notably, binary patch that - does not rename nor change mode). Textual patches, renames or mode - changes have preimage and postimage pathnames in different places - in a form that can be parsed unambiguously and did not suffer from - this problem. - - * "git cherry-pick A C B" used to replay changes in A and then B and - then C if these three commits had committer timestamps in that - order, which is not what the user who said "A C B" naturally - expects. - - * "git commit --amend" let the user edit the log message and then - died when the human-readable committer name was given - insufficiently by getpwent(3). - - * Some capabilities were asked by fetch-pack even when upload-pack - did not advertise that they are available. fetch-pack has been - fixed not to do so. - - * "git diff" had a confusion between taking data from a path in the - working tree and taking data from an object that happens to have - name 0{40} recorded in a tree. - - * "git for-each-ref" did not correctly support more than one --sort - option. - - * "git log .." errored out saying it is both rev range and a path - when there is no disambiguating "--" is on the command line. - Update the command line parser to interpret ".." as a path in such - a case. - - * The "--topo-order", "--date-order" (and the lack of either means - the default order) options to "rev-list" and "log" family of - commands were poorly described in the documentation. - - * "git prune" without "-v" used to warn about leftover temporary - files (which is an indication of an earlier aborted operation). - - * Pushing to smart HTTP server with recent Git fails without having - the username in the URL to force authentication, if the server is - configured to allow GET anonymously, while requiring authentication - for POST. - - * The reflog entries left by "git rebase" and "git rebase -i" were - inconsistent (the interactive one gave an abbreviated object name). - - * When "git push" triggered the automatic gc on the receiving end, a - message from "git prune" that said it was removing cruft leaked to - the standard output, breaking the communication protocol. - - * "git show --quiet" ought to be a synonym for "git show -s", but - wasn't. - - * "git show --format='%ci'" did not give timestamp correctly for - commits created without human readable name on "committer" line. - - * "git send-email" did not unquote encoded words that appear on the - header correctly, and lost "_" from strings. - - * The interactive prompt "git send-email" gives was error prone. It - asked "What e-mail address do you want to use?" with the address it - guessed (correctly) the user would want to use in its prompt, - tempting the user to say "y". But the response was taken as "No, - please use 'y' as the e-mail address instead", which is most - certainly not what the user meant. - - * "gitweb" when used with PATH_INFO failed to notice directories with - SP (and other characters that need URL-style quoting) in them. - - * When the user gives an argument that can be taken as both a - revision name and a pathname without disambiguating with "--", we - used to give a help message "Use '--' to separate". The message - has been clarified to show where that '--' goes on the command - line. - - * When the user exports a non-default IFS without HT, scripts that - rely on being able to parse "ls-files -s | while read a b c..." - started to fail. Protect them from such a misconfiguration. - - * The attribute system may be asked for a path that itself or its - leading directories no longer exists in the working tree, and it is - fine if we cannot open .gitattribute file in such a case. Failure - to open per-directory .gitattributes with error status other than - ENOENT and ENOTDIR should be diagnosed, but it wasn't. - - * After "gitk" showed the contents of a tag, neither "Reread - references" nor "Reload" did not update what is shown as the - contents of it, when the user overwrote the tag with "git tag -f". - - * "ciabot" script (in contrib/) has been updated with extensive - documentation. - - * "git-jump" script (in contrib/) did not work well when - diff.noprefix or diff.mnemonicprefix is in effect. - - * Older parts of the documentation described as if having a regular - file in .git/refs/ hierarchy were the only way to have branches and - tags, which is not true for quite some time. - - * A utility shell function test_seq has been added as a replacement - for the 'seq' utility found on some platforms. - - * Compatibility wrapper to learn the maximum number of file - descriptors we can open around sysconf(_SC_OPEN_MAX) and - getrlimit(RLIMIT_NO_FILE) has been introduced for portability. - - * We used curl_easy_strerror() without checking version of cURL, - breaking the build for versions before curl 7.12.0. - - * Code to work around MacOS X UTF-8 gotcha has been cleaned up. - - * Fallback 'getpass' implementation made unportable use of stdio API. - - * The "--rebase" option to "git pull" can be abbreviated to "-r", - but we didn't document it. - - * It was generally understood that "--long-option"s to many of our - subcommands can be abbreviated to the unique prefix, but it was not - easy to find it described for new readers of the documentation set. - - * The synopsis said "checkout [-B branch]" to make it clear the - branch name is a parameter to the option, but the heading for the - option description was "-B::", not "-B branch::", making the - documentation misleading. - -Also contains numerous documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.12.2.txt b/third_party/git/Documentation/RelNotes/1.7.12.2.txt deleted file mode 100644 index 69255745e6ea..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.12.2.txt +++ /dev/null @@ -1,40 +0,0 @@ -Git 1.7.12.2 Release Notes -========================== - -Fixes since v1.7.12.1 ---------------------- - - * When "git am" is fed an input that has multiple "Content-type: ..." - header, it did not grok charset= attribute correctly. - - * Even during a conflicted merge, "git blame $path" always meant to - blame uncommitted changes to the "working tree" version; make it - more useful by showing cleanly merged parts as coming from the other - branch that is being merged. - - * "git blame MAKEFILE" run in a history that has "Makefile" but not - "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got - confused on a case insensitive filesystem and failed to do so. - - * "git fetch --all", when passed "--no-tags", did not honor the - "--no-tags" option while fetching from individual remotes (the same - issue existed with "--tags", but combination "--all --tags" makes - much less sense than "--all --no-tags"). - - * "git log/diff/format-patch --stat" showed the "N line(s) added" - comment in user's locale and caused careless submitters to send - patches with such a line in them to projects whose project language - is not their language, mildly irritating others. Localization to - the line has been disabled for now. - - * "git log --all-match --grep=A --grep=B" ought to show commits that - mention both A and B, but when these three options are used with - --author or --committer, it showed commits that mention either A or - B (or both) instead. - - * The subcommand to remove the definition of a remote in "git remote" - was named "rm" even though all other subcommands were spelled out. - Introduce "git remote remove" to remove confusion, and keep "rm" as - a backward compatible synonym. - -Also contains a handful of documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.12.3.txt b/third_party/git/Documentation/RelNotes/1.7.12.3.txt deleted file mode 100644 index 4b822976b8ad..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.12.3.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git 1.7.12.3 Release Notes -========================== - -Fixes since v1.7.12.2 ---------------------- - - * "git am" mishandled a patch attached as application/octet-stream - (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not - honored correctly. - - * It was unclear in the documentation for "git blame" that it is - unnecessary for users to use the "--follow" option. - - * A repository created with "git clone --single" had its fetch - refspecs set up just like a clone without "--single", leading the - subsequent "git fetch" to slurp all the other branches, defeating - the whole point of specifying "only this branch". - - * "git fetch" over http had an old workaround for an unlikely server - misconfiguration; it turns out that this hurts debuggability of the - configuration in general, and has been reverted. - - * "git fetch" over http advertised that it supports "deflate", which - is much less common, and did not advertise the more common "gzip" on - its Accept-Encoding header. - - * "git receive-pack" (the counterpart to "git push") did not give - progress output while processing objects it received to the user - when run over the smart-http protocol. - - * "git status" honored the ignore=dirty settings in .gitmodules but - "git commit" didn't. - -Also contains a handful of documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.12.4.txt b/third_party/git/Documentation/RelNotes/1.7.12.4.txt deleted file mode 100644 index c6da3cc93956..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.12.4.txt +++ /dev/null @@ -1,23 +0,0 @@ -Git 1.7.12.4 Release Notes -========================== - -Fixes since v1.7.12.3 ---------------------- - - * "git fetch" over the dumb-http revision walker could segfault when - curl's multi interface was used. - - * It was possible to give specific paths for "asciidoc" and other - tools in the documentation toolchain, but not for "xmlto". - - * "gitweb" did not give the correct committer timezone in its feed - output due to a typo. - - * The "-Xours" (and similarly -Xtheirs) backend option to "git - merge -s recursive" was ignored for binary files. Now it is - honored. - - * The "binary" synthetic attribute made "diff" to treat the path as - binary, but not "merge". - -Also contains many documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.12.txt b/third_party/git/Documentation/RelNotes/1.7.12.txt deleted file mode 100644 index 010d8c7de471..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.12.txt +++ /dev/null @@ -1,136 +0,0 @@ -Git v1.7.12 Release Notes -========================= - -Updates since v1.7.11 ---------------------- - -UI, Workflows & Features - - * Git can be told to normalize pathnames it read from readdir(3) and - all arguments it got from the command line into precomposed UTF-8 - (assuming that they come as decomposed UTF-8), in order to work - around issues on Mac OS. - - I think there still are other places that need conversion - (e.g. paths that are read from stdin for some commands), but this - should be a good first step in the right direction. - - * Per-user $HOME/.gitconfig file can optionally be stored in - $HOME/.config/git/config instead, which is in line with XDG. - - * The value of core.attributesfile and core.excludesfile default to - $HOME/.config/git/attributes and $HOME/.config/git/ignore respectively - when these files exist. - - * Logic to disambiguate abbreviated object names have been taught to - take advantage of object types that are expected in the context, - e.g. XXXXXX in the "git describe" output v1.2.3-gXXXXXX must be a - commit object, not a blob nor a tree. This will help us prolong - the lifetime of abbreviated object names. - - * "git apply" learned to wiggle the base version and perform three-way - merge when a patch does not exactly apply to the version you have. - - * Scripted Porcelain writers now have access to the credential API via - the "git credential" plumbing command. - - * "git help" used to always default to "man" format even on platforms - where "man" viewer is not widely available. - - * "git clone --local $path" started its life as an experiment to - optionally use link/copy when cloning a repository on the disk, but - we didn't deprecate it after we made the option a no-op to always - use the optimization. The command learned "--no-local" option to - turn this off, as a more explicit alternative over use of file:// - URL. - - * "git fetch" and friends used to say "remote side hung up - unexpectedly" when they failed to get response they expect from the - other side, but one common reason why they don't get expected - response is that the remote repository does not exist or cannot be - read. The error message in this case was updated to give better - hints to the user. - - * "git help -w $cmd" can show HTML version of documentation for - "git-$cmd" by setting help.htmlpath to somewhere other than the - default location where the build procedure installs them locally; - the variable can even point at a http:// URL. - - * "git rebase [-i] --root $tip" can now be used to rewrite all the - history leading to "$tip" down to the root commit. - - * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after - each commit in the resulting history. - - * "git status" gives finer classification to various states of paths - in conflicted state and offer advice messages in its output. - - * "git submodule" learned to deal with nested submodule structure - where a module is contained within a module whose origin is - specified as a relative URL to its superproject's origin. - - * A rather heavy-ish "git completion" script has been split to create - a separate "git prompting" script, to help lazy-autoloading of the - completion part while making prompting part always available. - - * "gitweb" pays attention to various forms of credits that are - similar to "Signed-off-by:" lines in the commit objects and - highlights them accordingly. - - -Foreign Interface - - * "mediawiki" remote helper (in contrib/) learned to handle file - attachments. - - * "git p4" now uses "Jobs:" and "p4 move" when appropriate. - - * vcs-svn has been updated to clean-up compilation, lift 32-bit - limitations, etc. - - -Performance, Internal Implementation, etc. (please report possible regressions) - - * Some tests showed false failures caused by a bug in ecryptofs. - - * We no longer use AsciiDoc7 syntax in our documentation and favor a - more modern style. - - * "git am --rebasing" codepath was taught to grab authorship, log - message and the patch text directly out of existing commits. This - will help rebasing commits that have confusing "diff" output in - their log messages. - - * "git index-pack" and "git pack-objects" use streaming API to read - from the object store to avoid having to hold a large blob object - in-core while they are doing their thing. - - * Code to match paths with exclude patterns learned to avoid calling - fnmatch() by comparing fixed leading substring literally when - possible. - - * "git log -n 1 -- rarely-touched-path" was spending unnecessary - cycles after showing the first change to find the next one, only to - discard it. - - * "git svn" got a large-looking code reorganization at the last - minute before the code freeze. - - -Also contains minor documentation updates and code clean-ups. - - -Fixes since v1.7.11 -------------------- - -Unless otherwise noted, all the fixes since v1.7.11 in the maintenance -releases are contained in this release (see release notes to them for -details). - - * "git submodule add" was confused when the superproject did not have - its repository in its usual place in the working tree and GIT_DIR - and GIT_WORK_TREE was used to access it. - - * "git commit --amend" let the user edit the log message and then died - when the human-readable committer name was given insufficiently by - getpwent(3). diff --git a/third_party/git/Documentation/RelNotes/1.7.2.1.txt b/third_party/git/Documentation/RelNotes/1.7.2.1.txt deleted file mode 100644 index 1103c47a4f69..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.2.1.txt +++ /dev/null @@ -1,25 +0,0 @@ -Git v1.7.2.1 Release Notes -========================== - -Fixes since v1.7.2 ------------------- - - * "git instaweb" wasn't useful when your Apache was installed under a - name other than apache2 (e.g. "httpd"). - - * Similarly, "git web--browse" (invoked by "git help -w") learned that - chrome browser is sometimes called google-chrome. - - * An overlong line after ".gitdir: " in a git file caused out of bounds - access to an array on the stack. - - * "git config --path conf.var" to attempt to expand a variable conf.var - that uses "~/" short-hand segfaulted when $HOME environment variable - was not set. - - * Documentation on Cygwin failed to build. - - * The error message from "git pull blarg" when 'blarg' is an unknown - remote name has been improved. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.2.2.txt b/third_party/git/Documentation/RelNotes/1.7.2.2.txt deleted file mode 100644 index 71eb6a8b0a5a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.2.2.txt +++ /dev/null @@ -1,22 +0,0 @@ -Git v1.7.2.2 Release Notes -========================== - -Fixes since v1.7.2.1 --------------------- - - * Object transfer over smart http transport deadlocked the client when - the remote HTTP server returned a failure, instead of erroring it out. - - * git-gui honors custom textconv filters when showing diff and blame; - - * git diff --relative=subdir (without the necessary trailing /) did not - work well; - - * "git diff-files -p --submodule" was recently broken; - - * "git checkout -b n ':/token'" did not work; - - * "git index-pack" (hence "git fetch/clone/pull/push") enabled the object - replacement machinery by mistake (it never should have); - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.2.3.txt b/third_party/git/Documentation/RelNotes/1.7.2.3.txt deleted file mode 100644 index 610960cfe120..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.2.3.txt +++ /dev/null @@ -1,39 +0,0 @@ -Git v1.7.2.3 Release Notes -========================== - -Fixes since v1.7.2.2 --------------------- - - * When people try insane things such as delta-compressing 4GiB files, we - threw an assertion failure. - - * "git archive" gave the full commit ID for "$Format:%h$". - - * "git fetch --tags" did not fetch tags when remote.<nick>.tagopt was set - to --no-tags. The command line option now overrides the configuration - setting. - - * "git for-each-ref --format='%(objectname:short)'" has been completely - broken for a long time. - - * "git gc" incorrectly pruned a rerere record that was created long - time ago but still is actively and repeatedly used. - - * "git log --follow -M -p" was seriously broken in 1.7.2, reporting - assertion failure. - - * Running "git log" with an incorrect option started pager nevertheless, - forcing the user to dismiss it. - - * "git rebase" did not work well when the user has diff.renames - configuration variable set. - - * An earlier (and rather old) fix to "git rebase" against a rebased - upstream broke a more normal, non rebased upstream case rather badly, - attempting to re-apply patches that are already accepted upstream. - - * "git submodule sync" forgot to update the superproject's config file - when submodule URL changed. - - * "git pack-refs --all --prune" did not remove a directory that has - become empty. diff --git a/third_party/git/Documentation/RelNotes/1.7.2.4.txt b/third_party/git/Documentation/RelNotes/1.7.2.4.txt deleted file mode 100644 index f7950a4c04d0..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.2.4.txt +++ /dev/null @@ -1,10 +0,0 @@ -Git v1.7.2.4 Release Notes -========================== - -This is primarily to backport support for the new "add.ignoreErrors" -name given to the existing "add.ignore-errors" configuration variable. - -The next version, Git 1.7.4, and future versions, will support both -old and incorrect name and the new corrected name, but without this -backport, users who want to use the new name "add.ignoreErrors" in -their repositories cannot use older versions of Git. diff --git a/third_party/git/Documentation/RelNotes/1.7.2.5.txt b/third_party/git/Documentation/RelNotes/1.7.2.5.txt deleted file mode 100644 index bf976c40db7a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.2.5.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v1.7.2.5 Release Notes -========================== - -Fixes since v1.7.2.4 --------------------- - - * "gitweb" can sometimes be tricked into parrotting a filename argument - given in a request without properly quoting. diff --git a/third_party/git/Documentation/RelNotes/1.7.2.txt b/third_party/git/Documentation/RelNotes/1.7.2.txt deleted file mode 100644 index 15cf01178c1f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.2.txt +++ /dev/null @@ -1,151 +0,0 @@ -Git v1.7.2 Release Notes -======================== - -Updates since v1.7.1 --------------------- - - * core.eol configuration and text/eol attributes are the new way to control - the end of line conventions for files in the working tree. - - * core.autocrlf has been made safer - it will now only handle line - endings for new files and files that are LF-only in the - repository. To normalize content that has been checked in with - CRLF, use the new eol/text attributes. - - * The whitespace rules used in "git apply --whitespace" and "git diff" - gained a new member in the family (tab-in-indent) to help projects with - policy to indent only with spaces. - - * When working from a subdirectory, by default, git does not look for its - metadirectory ".git" across filesystems, primarily to help people who - have invocations of git in their custom PS1 prompts, as being outside - of a git repository would look for ".git" all the way up to the root - directory, and NFS mounts are often slow. DISCOVERY_ACROSS_FILESYSTEM - environment variable can be used to tell git not to stop at a - filesystem boundary. - - * Usage help messages generated by parse-options library (i.e. most - of the Porcelain commands) are sent to the standard output now. - - * ':/<string>' notation to look for a commit now takes regular expression - and it is not anchored at the beginning of the commit log message - anymore (this is a backward incompatible change). - - * "git" wrapper learned "-c name=value" option to override configuration - variable from the command line. - - * Improved portability for various platforms including older SunOS, - HP-UX 10/11, AIX, Tru64, etc. and platforms with Python 2.4. - - * The message from "git am -3" has been improved when conflict - resolution ended up making the patch a no-op. - - * "git blame" applies the textconv filter to the contents it works - on, when available. - - * "git checkout --orphan newbranch" is similar to "-b newbranch" but - prepares to create a root commit that is not connected to any existing - commit. - - * "git cherry-pick" learned to pick a range of commits - (e.g. "cherry-pick A..B" and "cherry-pick --stdin"), so did "git - revert"; these do not support the nicer sequencing control "rebase - [-i]" has, though. - - * "git cherry-pick" and "git revert" learned --strategy option to specify - the merge strategy to be used when performing three-way merges. - - * "git cvsserver" can be told to use pserver; its password file can be - stored outside the repository. - - * The output from the textconv filter used by "git diff" can be cached to - speed up their reuse. - - * "git diff --word-diff=<mode>" extends the existing "--color-words" - option, making it more useful in color-challenged environments. - - * The regexp to detect function headers used by "git diff" for PHP has - been enhanced for visibility modifiers (public, protected, etc.) to - better support PHP5. - - * "diff.noprefix" configuration variable can be used to implicitly - ask for "diff --no-prefix" behaviour. - - * "git for-each-ref" learned "%(objectname:short)" that gives the object - name abbreviated. - - * "git format-patch" learned --signature option and format.signature - configuration variable to customize the e-mail signature used in the - output. - - * Various options to "git grep" (e.g. --count, --name-only) work better - with binary files. - - * "git grep" learned "-Ovi" to open the files with hits in your editor. - - * "git help -w" learned "chrome" and "chromium" browsers. - - * "git log --decorate" shows commit decorations in various colours. - - * "git log --follow <path>" follows across copies (it used to only follow - renames). This may make the processing more expensive. - - * "git log --pretty=format:<template>" specifier learned "% <something>" - magic that inserts a space only when %<something> expands to a - non-empty string; this is similar to "%+<something>" magic, but is - useful in a context to generate a single line output. - - * "git notes prune" learned "-n" (dry-run) and "-v" options, similar to - what "git prune" has. - - * "git patch-id" can be fed a mbox without getting confused by the - signature line in the format-patch output. - - * "git remote" learned "set-branches" subcommand. - - * "git rev-list A..B" learned --ancestry-path option to further limit - the result to the commits that are on the ancestry chain between A and - B (i.e. commits that are not descendants of A are excluded). - - * "git show -5" is equivalent to "git show --do-walk 5"; this is similar - to the update to make "git show master..next" walk the history, - introduced in 1.6.4. - - * "git status [-s] --ignored" can be used to list ignored paths. - - * "git status -s -b" shows the current branch in the output. - - * "git status" learned "--ignore-submodules" option. - - * Various "gitweb" enhancements and clean-ups, including syntax - highlighting, "plackup" support for instaweb, .fcgi suffix to run - it as FastCGI script, etc. - - * The test harness has been updated to produce TAP-friendly output. - - * Many documentation improvement patches are also included. - - -Fixes since v1.7.1 ------------------- - -All of the fixes in v1.7.1.X maintenance series are included in this -release, unless otherwise noted. - - * We didn't URL decode "file:///path/to/repo" correctly when path/to/repo - had percent-encoded characters (638794c, 9d2e942, ce83eda, 3c73a1d). - - * "git clone" did not configure remote.origin.url correctly for bare - clones (df61c889). - - * "git diff --graph" works better with "--color-words" and other options - (81fa024..4297c0a). - - * "git diff" could show ambiguous abbreviation of blob object names on - its "index" line (3e5a188). - - * "git reset --hard" started from a wrong directory and a working tree in - a nonstandard location is in use got confused (560fb6a1). - - * "git read-tree -m A B" used to switch to branch B while retaining - local changes added an incorrect cache-tree information (b1f47514). diff --git a/third_party/git/Documentation/RelNotes/1.7.3.1.txt b/third_party/git/Documentation/RelNotes/1.7.3.1.txt deleted file mode 100644 index 002c93b9612d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.3.1.txt +++ /dev/null @@ -1,14 +0,0 @@ -Git v1.7.3.1 Release Notes -========================== - -Fixes since v1.7.3 ------------------- - - * "git stash show stash@{$n}" was accidentally broken in 1.7.3 ("git - stash show" without any argument still worked, though). - - * "git stash branch $branch stash@{$n}" was accidentally broken in - 1.7.3 and started dropping the named stash even when branch creation - failed. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.3.2.txt b/third_party/git/Documentation/RelNotes/1.7.3.2.txt deleted file mode 100644 index 5c93b85af4a2..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.3.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v1.7.3.2 Release Notes -========================== - -This is primarily to push out many documentation fixes accumulated since -the 1.7.3.1 release. diff --git a/third_party/git/Documentation/RelNotes/1.7.3.3.txt b/third_party/git/Documentation/RelNotes/1.7.3.3.txt deleted file mode 100644 index 9b2b2448dfd4..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.3.3.txt +++ /dev/null @@ -1,54 +0,0 @@ -Git v1.7.3.3 Release Notes -========================== - -In addition to the usual fixes, this release also includes support for -the new "add.ignoreErrors" name given to the existing "add.ignore-errors" -configuration variable. - -The next version, Git 1.7.4, and future versions, will support both -old and incorrect name and the new corrected name, but without this -backport, users who want to use the new name "add.ignoreErrors" in -their repositories cannot use older versions of Git. - -Fixes since v1.7.3.2 --------------------- - - * "git apply" segfaulted when a bogus input is fed to it. - - * Running "git cherry-pick --ff" on a root commit segfaulted. - - * "diff", "blame" and friends incorrectly applied textconv filters to - symlinks. - - * Highlighting of whitespace breakage in "diff" output was showing - incorrect amount of whitespaces when blank-at-eol is set and the line - consisted only of whitespaces and a TAB. - - * "diff" was overly inefficient when trying to find the line to use for - the function header (i.e. equivalent to --show-c-function of GNU diff). - - * "git imap-send" depends on libcrypto but our build rule relied on the - linker to implicitly link it via libssl, which was wrong. - - * "git merge-file" can be called from within a subdirectory now. - - * "git repack -f" expanded and recompressed non-delta objects in the - existing pack, which was wasteful. Use new "-F" option if you really - want to (e.g. when changing the pack.compression level). - - * "git rev-list --format="...%x00..." incorrectly chopped its output - at NUL. - - * "git send-email" did not correctly remove duplicate mail addresses from - the Cc: header that appear on the To: header. - - * The completion script (in contrib/completion) ignored lightweight tags - in __git_ps1(). - - * "git-blame" mode (in contrib/emacs) didn't say (require 'format-spec) - even though it depends on it; it didn't work with Emacs 22 or older - unless Gnus is used. - - * "git-p4" (in contrib/) did not correctly handle deleted files. - -Other minor fixes and documentation updates are also included. diff --git a/third_party/git/Documentation/RelNotes/1.7.3.4.txt b/third_party/git/Documentation/RelNotes/1.7.3.4.txt deleted file mode 100644 index e57f7c176db8..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.3.4.txt +++ /dev/null @@ -1,45 +0,0 @@ -Git v1.7.3.4 Release Notes -========================== - -Fixes since v1.7.3.3 --------------------- - - * Smart HTTP transport used to incorrectly retry redirected POST - request with GET request. - - * "git apply" did not correctly handle patches that only change modes - if told to apply while stripping leading paths with -p option. - - * "git apply" can deal with patches with timezone formatted with a - colon between the hours and minutes part (e.g. "-08:00" instead of - "-0800"). - - * "git checkout" removed an untracked file "foo" from the working - tree when switching to a branch that contains a tracked path - "foo/bar". Prevent this, just like the case where the conflicting - path were "foo" (c752e7f..7980872d). - - * "git cherry-pick" or "git revert" refused to work when a path that - would be modified by the operation was stat-dirty without a real - difference in the contents of the file. - - * "git diff --check" reported an incorrect line number for added - blank lines at the end of file. - - * "git imap-send" failed to build under NO_OPENSSL. - - * Setting log.decorate configuration variable to "0" or "1" to mean - "false" or "true" did not work. - - * "git push" over dumb HTTP protocol did not work against WebDAV - servers that did not terminate a collection name with a slash. - - * "git tag -v" did not work with GPG signatures in rfc1991 mode. - - * The post-receive-email sample hook was accidentally broken in 1.7.3.3 - update. - - * "gitweb" can sometimes be tricked into parrotting a filename argument - given in a request without properly quoting. - -Other minor fixes and documentation updates are also included. diff --git a/third_party/git/Documentation/RelNotes/1.7.3.5.txt b/third_party/git/Documentation/RelNotes/1.7.3.5.txt deleted file mode 100644 index 40f3ba579544..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.3.5.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git 1.7.3.5 Release Notes -========================= - - * The xfuncname pattern used by "git diff" and "git grep" to show the - last notable line in context were broken for python and ruby for a long - time. - - * "git merge" into an unborn branch removed an untracked file "foo" from - the working tree when merged branch had "foo" (this fix was already in - 1.7.3.3 but was omitted from the release notes by mistake). - - * "git status -s" did not quote unprintable characters in paths as - documented. - - * "git am --abort" used to always reset to the commit at the beginning of - the last "am" invocation that has stopped, losing any unrelated commits - that may have been made since then. Now it refrains from doing so and - instead issues a warning. - - * "git blame" incorrectly reused bogusly cached result of textconv - filter for files from the working tree. - - * "git commit" used to abort after the user edited the log message - when the committer information was not correctly set up. It now - aborts before starting the editor. - - * "git commit --date=invalid" used to silently ignore the incorrectly - specified date; it is now diagnosed as an error. - - * "git rebase --skip" to skip the last commit in a series used to fail - to run post-rewrite hook and to copy notes from old commits that have - successfully been rebased so far. Now it do (backmerge ef88ad2). - - * "gitweb" tried to show a wrong feed logo when none was specified. diff --git a/third_party/git/Documentation/RelNotes/1.7.3.txt b/third_party/git/Documentation/RelNotes/1.7.3.txt deleted file mode 100644 index 309c33181f86..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.3.txt +++ /dev/null @@ -1,76 +0,0 @@ -Git v1.7.3 Release Notes -======================== - -Updates since v1.7.2 --------------------- - - * git-gui, now at version 0.13.0, got various updates and a new - maintainer, Pat Thoyts. - - * Gitweb allows its configuration to change per each request; it used to - read the configuration once upon startup. - - * When git finds a corrupt object, it now reports the file that contains - it. - - * "git checkout -B <it>" is a shorter way to say "git branch -f <it>" - followed by "git checkout <it>". - - * When "git checkout" or "git merge" refuse to proceed in order to - protect local modification to your working tree, they used to stop - after showing just one path that might be lost. They now show all, - in a format that is easier to read. - - * "git clean" learned "-e" ("--exclude") option. - - * Hunk headers produced for C# files by "git diff" and friends show more - relevant context than before. - - * diff.ignoresubmodules configuration variable can be used to squelch the - differences in submodules reported when running commands (e.g. "diff", - "status", etc.) at the superproject level. - - * http.useragent configuration can be used to lie who you are to your - restrictive firewall. - - * "git rebase --strategy <s>" learned "-X" option to pass extra options - that are understood by the chosen merge strategy. - - * "git rebase -i" learned "exec" that you can insert into the insn sheet - to run a command between its steps. - - * "git rebase" between branches that have many binary changes that do - not conflict should be faster. - - * "git rebase -i" peeks into rebase.autosquash configuration and acts as - if you gave --autosquash from the command line. - - -Also contains various documentation updates. - - -Fixes since v1.7.2 ------------------- - -All of the fixes in v1.7.2.X maintenance series are included in this -release, unless otherwise noted. - - * "git merge -s recursive" (which is the default) did not handle cases - where a directory becomes a file (or vice versa) very well. - - * "git fetch" and friends were accidentally broken for url with "+" in - its path, e.g. "git://git.gnome.org/gtk+". - - * "git fetch $url" (i.e. without refspecs) was broken for quite some - time, if the current branch happen to be tracking some remote. - - * "git ls-tree dir dirgarbage", when "dir" was a directory, - incorrectly recursed into "dir". - - * "git note remove" created unnecessary extra commit when named object - did not have any note to begin with. - - * "git rebase" did not work well if you had diff.noprefix configured. - - * "git -c foo=bar subcmd" did not work well for subcmd that is not - implemented as a built-in command. diff --git a/third_party/git/Documentation/RelNotes/1.7.4.1.txt b/third_party/git/Documentation/RelNotes/1.7.4.1.txt deleted file mode 100644 index 79923a6d2f57..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.4.1.txt +++ /dev/null @@ -1,27 +0,0 @@ -Git v1.7.4.1 Release Notes -========================== - -Fixes since v1.7.4 ------------------- - - * On Windows platform, the codepath to spawn a new child process forgot - to first flush the output buffer. - - * "git bundle" did not use OFS_DELTA encoding, making its output a few - per-cent larger than necessarily. - - * The option to tell "git clone" to recurse into the submodules was - misspelled with an underscore "--recurse_submodules". - - * "git diff --cached HEAD" before the first commit does what an end user - would expect (namely, show what would be committed without further "git - add"). - - * "git fast-import" didn't accept the command to ask for "notes" feature - to be present in its input stream, even though it was capable of the - feature. - - * "git fsck" gave up scanning loose object files in directories with - garbage files. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.4.2.txt b/third_party/git/Documentation/RelNotes/1.7.4.2.txt deleted file mode 100644 index ef4ce1fcd37a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.4.2.txt +++ /dev/null @@ -1,58 +0,0 @@ -Git v1.7.4.2 Release Notes -========================== - -Fixes since v1.7.4.1 --------------------- - - * Many documentation updates to match "git cmd -h" output and the - git-cmd manual page. - - * We used to keep one file descriptor open for each and every packfile - that we have a mmap window on it (read: "in use"), even when for very - tiny packfiles. We now close the file descriptor early when the entire - packfile fits inside one mmap window. - - * "git bisect visualize" tried to run "gitk" in windowing - environments even when "gitk" is not installed, resulting in a - strange error message. - - * "git clone /no/such/path" did not fail correctly. - - * "git commit" did not correctly error out when the user asked to use a - non existent file as the commit message template. - - * "git diff --stat -B" ran on binary files counted the changes in lines, - which was nonsensical. - - * "git diff -M" opportunistically detected copies, which was not - necessarily a good thing, especially when it is internally run by - recursive merge. - - * "git difftool" didn't tell (g)vimdiff that the files it is reading are - to be opened read-only. - - * "git merge" didn't pay attention to prepare-commit-msg hook, even - though if a merge is conflicted and manually resolved, the subsequent - "git commit" would have triggered the hook, which was inconsistent. - - * "git patch-id" (and commands like "format-patch --ignore-in-upstream" - that use it as their internal logic) handled changes to files that end - with incomplete lines incorrectly. - - * The official value to tell "git push" to push the current branch back - to update the upstream branch it forked from is now called "upstream". - The old name "tracking" is and will be supported. - - * "git submodule update" used to honor the --merge/--rebase option (or - corresponding configuration variables) even for a newly cloned - subproject, which made no sense (so/submodule-no-update-first-time). - - * gitweb's "highlight" interface mishandled tabs. - - * gitweb didn't understand timezones with GMT offset that is not - multiple of a whole hour. - - * gitweb had a few forward-incompatible syntactic constructs and - also used incorrect variable when showing the file mode in a diff. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.4.3.txt b/third_party/git/Documentation/RelNotes/1.7.4.3.txt deleted file mode 100644 index 02a3d5bdf65c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.4.3.txt +++ /dev/null @@ -1,32 +0,0 @@ -Git v1.7.4.3 Release Notes -========================== - -Fixes since v1.7.4.2 --------------------- - - * "git apply" used to confuse lines updated by previous hunks as lines - that existed before when applying a hunk, contributing misapplication - of patches with offsets. - - * "git branch --track" (and "git checkout --track --branch") used to - allow setting up a random non-branch that does not make sense to follow - as the "upstream". The command correctly diagnoses it as an error. - - * "git checkout $other_branch" silently removed untracked symbolic links - in the working tree that are in the way in order to check out paths - under it from the named branch. - - * "git cvsimport" did not bail out immediately when the cvs server cannot - be reached, spewing unnecessary error messages that complain about the - server response that it never got. - - * "git diff --quiet" did not work very well with the "--diff-filter" - option. - - * "git grep -n" lacked a long-hand synonym --line-number. - - * "git stash apply" reported the result of its operation by running - "git status" from the top-level of the working tree; it should (and - now does) run it from the user's working directory. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.4.4.txt b/third_party/git/Documentation/RelNotes/1.7.4.4.txt deleted file mode 100644 index ff06e04a58c0..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.4.4.txt +++ /dev/null @@ -1,35 +0,0 @@ -Git v1.7.4.4 Release Notes -========================== - -Fixes since v1.7.4.3 --------------------- - - * Compilation of sha1_file.c on BSD platforms were broken due to our - recent use of getrlimit() without including <sys/resource.h>. - - * "git config" did not diagnose incorrect configuration variable names. - - * "git format-patch" did not wrap a long subject line that resulted from - rfc2047 encoding. - - * "git instaweb" should work better again with plackup. - - * "git log --max-count=4 -Sfoobar" now shows 4 commits that changes the - number of occurrences of string "foobar"; it used to scan only for 4 - commits and then emitted only matching ones. - - * "git log --first-parent --boundary $c^..$c" segfaulted on a merge. - - * "git pull" into an empty branch should have behaved as if - fast-forwarding from emptiness to the version being pulled, with - the usual protection against overwriting untracked files. - - * "git submodule" that is run while a merge in the superproject is in - conflicted state tried to process each conflicted submodule up to - three times. - - * "git status" spent all the effort to notice racily-clean index entries - but didn't update the index file to help later operations go faster in - some cases. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.4.5.txt b/third_party/git/Documentation/RelNotes/1.7.4.5.txt deleted file mode 100644 index b7a0eeb22f86..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.4.5.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v1.7.4.5 Release Notes -========================== - -This contains only minor documentation fixes accumulated since 1.7.4.4. diff --git a/third_party/git/Documentation/RelNotes/1.7.4.txt b/third_party/git/Documentation/RelNotes/1.7.4.txt deleted file mode 100644 index d5bca731b589..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.4.txt +++ /dev/null @@ -1,156 +0,0 @@ -Git v1.7.4 Release Notes -======================== - -Updates since v1.7.3 --------------------- - - * The documentation Makefile now assumes by default asciidoc 8 and - docbook-xsl >= 1.73. If you have older versions, you can set - ASCIIDOC7 and ASCIIDOC_ROFF, respectively. - - * The option parsers of various commands that create new branches (or - rename existing ones to a new name) were too loose and users were - allowed to give a branch a name that begins with a dash by creative - abuse of their command line options, which only led to burning - themselves. The name of a branch cannot begin with a dash now. - - * System-wide fallback default attributes can be stored in - /etc/gitattributes; the core.attributesfile configuration variable can - be used to customize the path to this file. - - * The thread structure generated by "git send-email" has changed - slightly. Setting the cover letter of the latest series as a reply - to the cover letter of the previous series with --in-reply-to used - to make the new cover letter and all the patches replies to the - cover letter of the previous series; this has been changed to make - the patches in the new series replies to the new cover letter. - - * The Bash completion script in contrib/ has been adjusted to be usable with - Bash 4 (options with '=value' didn't complete). It has been also made - usable with zsh. - - * Different pagers can be chosen depending on which subcommand is - being run under the pager, using the "pager.<subcommand>" variable. - - * The hardcoded tab-width of 8 that is used in whitespace breakage checks is now - configurable via the attributes mechanism. - - * Support of case insensitive filesystems (i.e. "core.ignorecase") has - been improved. For example, the gitignore mechanism didn't pay attention - to case insensitivity. - - * The <tree>:<path> syntax for naming a blob in a tree, and the :<path> - syntax for naming a blob in the index (e.g. "master:Makefile", - ":hello.c") have been extended. You can start <path> with "./" to - implicitly have the (sub)directory you are in prefixed to the - lookup. Similarly, ":../Makefile" from a subdirectory would mean - "the Makefile of the parent directory in the index". - - * "git blame" learned the --show-email option to display the e-mail - addresses instead of the names of authors. - - * "git commit" learned the --fixup and --squash options to help later invocation - of interactive rebase. - - * Command line options to "git cvsimport" whose names are in capital - letters (-A, -M, -R and -S) can now be specified as the default in - the .git/config file by their longer names (cvsimport.authorsFile, - cvsimport.mergeRegex, cvsimport.trackRevisions, cvsimport.ignorePaths). - - * "git daemon" can be built in the MinGW environment. - - * "git daemon" can take more than one --listen option to listen to - multiple addresses. - - * "git describe --exact-match" was optimized not to read commit - objects unnecessarily. - - * "git diff" and "git grep" learned what functions and subroutines - in Fortran, Pascal and Perl look like. - - * "git fetch" learned the "--recurse-submodules" option. - - * "git mergetool" tells vim/gvim to show a three-way diff by default - (use vimdiff2/gvimdiff2 as the tool name for old behavior). - - * "git log -G<pattern>" limits the output to commits whose change has - added or deleted lines that match the given pattern. - - * "git read-tree" with no argument as a way to empty the index is - deprecated; we might want to remove it in the future. Users can - use the new --empty option to be more explicit instead. - - * "git repack -f" does not spend cycles to recompress objects in the - non-delta representation anymore (use -F if you really mean it - e.g. after you changed the core.compression variable setting). - - * "git merge --log" used to limit the resulting merge log to 20 - entries; this is now customizable by giving e.g. "--log=47". - - * "git merge" may work better when all files were moved out of a - directory in one branch while a new file is created in place of that - directory in the other branch. - - * "git merge" learned the "--abort" option, synonymous to - "git reset --merge" when a merge is in progress. - - * "git notes" learned the "merge" subcommand to merge notes refs. - In addition to the default manual conflict resolution, there are - also several notes merge strategies for automatically resolving - notes merge conflicts. - - * "git rebase --autosquash" can use SHA-1 object names to name the - commit which is to be fixed up (e.g. "fixup! e83c5163"). - - * The default "recursive" merge strategy learned the --rename-threshold - option to influence the rename detection, similar to the -M option - of "git diff". From the "git merge" frontend, the "-X<strategy option>" - interface, e.g. "git merge -Xrename-threshold=50% ...", can be used - to trigger this. - - * The "recursive" strategy also learned to ignore various whitespace - changes; the most notable is -Xignore-space-at-eol. - - * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read - the recipient list from a command output. - - * "git send-email" learned to read and use "To:" from its input files. - - * you can extend "git shell", which is often used on boxes that allow - git-only login over ssh as login shell, with a custom set of - commands. - - * The current branch name in "git status" output can be colored differently - from the generic header color by setting the "color.status.branch" variable. - - * "git submodule sync" updates metainformation for all submodules, - not just the ones that have been checked out. - - * gitweb can use a custom 'highlight' command with its configuration file. - - * other gitweb updates. - - -Also contains various documentation updates. - - -Fixes since v1.7.3 ------------------- - -All of the fixes in the v1.7.3.X maintenance series are included in this -release, unless otherwise noted. - - * "git log --author=me --author=her" did not find commits written by - me or by her; instead it looked for commits written by me and by - her, which is impossible. - - * "git push --progress" shows progress indicators now. - - * "git rebase -i" showed a confusing error message when given a - branch name that does not exist. - - * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack - instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames. - - * "git submodule update --recursive --other-flags" passes flags down - to its subinvocations. diff --git a/third_party/git/Documentation/RelNotes/1.7.5.1.txt b/third_party/git/Documentation/RelNotes/1.7.5.1.txt deleted file mode 100644 index c6ebd76d1934..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.5.1.txt +++ /dev/null @@ -1,47 +0,0 @@ -Git v1.7.5.1 Release Notes -========================== - -Fixes since v1.7.5 ------------------- - - * When an object "$tree:$path" does not exist, if $path does exist in the - subtree of $tree that corresponds to the subdirectory the user is in, - git now suggests using "$tree:./$path" in addition to the advice to use - the full path from the root of the working tree. - - * The "--date=relative" output format used to say "X years, 12 months" - when it should have said "X+1 years". - - * The smart-HTTP transfer was broken in 1.7.5 when the client needs - to issue a small POST (which uses content-length) and then a large - POST (which uses chunked) back to back. - - * "git clean" used to fail on an empty directory that is not readable, - even though rmdir(2) could remove such a directory. Now we attempt it - as the last resort. - - * The "--dirstat" option of "diff" family of commands used to totally - ignore a change that only rearranged lines within a file. Such a - change now counts as at least a minimum but non zero change. - - * The "--dirstat" option of "diff" family of commands used to use the - pathname in the original, instead of the pathname in the result, - when renames are involved. - - * "git pack-object" did not take core.bigfilethreashold into account - (unlike fast-import); now it does. - - * "git reflog" ignored options like "--format=.." on the command line. - - * "git stash apply" used to refuse to work if there was any change in - the working tree, even when the change did not overlap with the change - the stash recorded. - - * "git stash apply @{99999}" was not diagnosed as an error, even when you - did not have that many stash entries. - - * An error message from "git send-email" to diagnose a broken SMTP - connection configuration lacked a space between "hello=<smtp-domain>" - and "port=<smtp-server-port>". - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.5.2.txt b/third_party/git/Documentation/RelNotes/1.7.5.2.txt deleted file mode 100644 index 951eb7cb0842..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.5.2.txt +++ /dev/null @@ -1,57 +0,0 @@ -Git v1.7.5.2 Release Notes -========================== - -The release notes to 1.7.5.1 forgot to mention: - - * "git stash -p --no-keep-index" and "git stash --no-keep-index -p" now - mean the same thing. - - * "git upload-pack" (hence "git push" over git native protocol) had a - subtle race condition that could lead to a deadlock. - -Fixes since v1.7.5.1 --------------------- - - * "git add -p" did not work correctly when a hunk is split and then - one of them was given to the editor. - - * "git add -u" did not resolve a conflict where our history deleted and - their history modified the same file, and the working tree resolved to - keep a file. - - * "git cvsimport" did not know that CVSNT stores its password file in a - location different from the traditional CVS. - - * "git diff-files" did not show the mode information from the working - tree side of an unmerged path correctly. - - * "git diff -M --cached" used to use unmerged path as a possible rename - source candidate, which made no sense. - - * The option name parser in "git fast-import" used prefix matches for - some options where it shouldn't, and accepted non-existent options, - e.g. "--relative-marksmith" or "--forceps". - - * "git format-patch" did not quote RFC822 special characters in the - email address (e.g From: Junio C. Hamano <jch@example.com>, not - From: "Junio C. Hamano" <jch@example.com>). - - * "git format-patch" when run with "--quiet" option used to produce a - nonsense result that consists of alternating empty output. - - * In "git merge", per-branch branch.<name>.mergeoptions configuration - variables did not override the fallback default merge.<option> - configuration variables such as merge.ff, merge.log, etc. - - * "git merge-one-file" did not honor GIT_WORK_TREE settings when - handling a "both sides added, differently" conflict. - - * "git mergetool" did not handle conflicted submoudules gracefully. - - * "git-p4" (in contrib) used a wrong base image while merge a file that - was added on both branches differently. - - * "git rebase -i -p" failed to preserve the history when there is a - redundant merge created with the --no-ff option. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.5.3.txt b/third_party/git/Documentation/RelNotes/1.7.5.3.txt deleted file mode 100644 index 1d24edcf2fa6..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.5.3.txt +++ /dev/null @@ -1,32 +0,0 @@ -Git v1.7.5.3 Release Notes -========================== - -Fixes since v1.7.5.2 --------------------- - - * The bash completion scripts should correctly work using zsh's bash - completion emulation layer now. - - * Setting $(prefix) in config.mak did not affect where etc/gitconfig - file is read from, even though passing it from the command line of - $(MAKE) did. - - * The logic to handle "&" (expand to UNIX username) in GECOS field - miscounted the length of the name it formatted. - - * "git cherry-pick -s resolve" failed to cherry-pick a root commit. - - * "git diff --word-diff" misbehaved when diff.suppress-blank-empty was - in effect. - - * "git log --stdin path" with an input that has additional pathspec - used to corrupt memory. - - * "git send-pack" (hence "git push") over smart-HTTP protocol could - deadlock when the client side pack-object died early. - - * Compressed tarball gitweb generates used to be made with the timestamp - of the tarball generation; this was bad because snapshot from the same - tree should result in a same tarball. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.5.4.txt b/third_party/git/Documentation/RelNotes/1.7.5.4.txt deleted file mode 100644 index 7796df3fe482..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.5.4.txt +++ /dev/null @@ -1,21 +0,0 @@ -Git v1.7.5.4 Release Notes -========================== - -Fixes since v1.7.5.3 --------------------- - - * The single-key mode of "git add -p" was easily fooled into thinking - that it was told to add everything ('a') when up-arrow was pressed by - mistake. - - * Setting a git command that uses custom configuration via "-c var=val" - as an alias caused a crash due to a realloc(3) failure. - - * "git diff -C -C" used to disable the rename detection entirely when - there are too many copy candidate paths in the tree; now it falls - back to "-C" when doing so would keep the copy candidate paths - under the rename detection limit. - - * "git rerere" did not diagnose a corrupt MERGE_RR file in some cases. - -And other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.5.txt b/third_party/git/Documentation/RelNotes/1.7.5.txt deleted file mode 100644 index 987919c32143..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.5.txt +++ /dev/null @@ -1,132 +0,0 @@ -Git v1.7.5 Release Notes -======================== - -Updates since v1.7.4 --------------------- - - * Various MinGW portability fixes. - - * Various git-p4 enhancements (in contrib). - - * Various vcs-svn, git-svn and gitk enhancements and fixes. - - * Various git-gui updates (0.14.0). - - * Update to more modern HP-UX port. - - * The codebase is getting prepared for i18n/l10n; no translated - strings nor translation mechanism in the code yet, but the strings - are being marked for l10n. - - * The bash completion script can now complete symmetric difference - for "git diff" command, e.g. "git diff ...bra<TAB>". - - * The default minimum length of abbreviated and unique object names - can now be configured by setting the core.abbrev configuration - variable. - - * "git apply -v" reports offset lines when the patch does not apply at - the exact location recorded in the diff output. - - * "git config" used to be also known as "git repo-config", but the old - name is now officially deprecated. - - * "git checkout --detach <commit>" is a more user friendly synonym for - "git checkout <commit>^0". - - * "git checkout" performed on detached HEAD gives a warning and - advice when the commit being left behind will become unreachable from - any branch or tag. - - * "git cherry-pick" and "git revert" can be told to use a custom merge - strategy, similar to "git rebase". - - * "git cherry-pick" remembers which commit failed to apply when it is - stopped by conflicts, making it unnecessary to use "commit -c $commit" - to conclude it. - - * "git cvsimport" bails out immediately when the cvs server cannot be - reached, without spewing unnecessary error messages that complain about - the server response it never got. - - * "git fetch" vs "git upload-pack" transfer learned 'no-done' - protocol extension to save one round-trip after the content - negotiation is done. This saves one HTTP RPC, reducing the overall - latency for a trivial fetch. - - * "git fetch" can be told to recursively fetch submodules on-demand. - - * "git grep -f <filename>" learned to treat "-" as "read from the - standard input stream". - - * "git grep --no-index" did not honor pathspecs correctly, returning - paths outside the specified area. - - * "git init" learned the --separate-git-dir option to allow the git - directory for a new repository created elsewhere and linked via the - gitdir mechanism. This is primarily to help submodule support later - to switch between a branch of superproject that has the submodule - and another that does not. - - * "git log" type commands now understand globbing pathspecs. You - can say "git log -- '*.txt'" for example. - - * "git log" family of commands learned --cherry and --cherry-mark - options that can be used to view two diverged branches while omitting - or highlighting equivalent changes that appear on both sides of a - symmetric difference (e.g. "log --cherry A...B"). - - * A lazy "git merge" that didn't say what to merge used to be an error. - When run on a branch that has an upstream defined, however, the command - now merges from the configured upstream. - - * "git mergetool" learned how to drive "beyond compare 3" as well. - - * "git rerere forget" without pathspec used to forget all the saved - conflicts that relate to the current merge; it now requires you to - give it pathspecs. - - * "git rev-list --objects $revs -- $pathspec" now limits the objects listed - in its output properly with the pathspec, in preparation for narrow - clones. - - * "git push" with no parameters gives better advice messages when - "tracking" is used as the push.default semantics or there is no remote - configured yet. - - * A possible value to the "push.default" configuration variable, - 'tracking', gained a synonym that more naturally describes what it - does, 'upstream'. - - * "git rerere" learned a new subcommand "remaining" that is similar to - "status" and lists the paths that had conflicts which are known to - rerere, but excludes the paths that have already been marked as - resolved in the index from its output. "git mergetool" has been - updated to use this facility. - -Also contains various documentation updates. - - -Fixes since v1.7.4 ------------------- - -All of the fixes in the v1.7.4.X maintenance series are included in this -release, unless otherwise noted. - - * "git fetch" from a client that is mostly following the remote - needlessly told all of its refs to the server for both sides to - compute the set of objects that need to be transferred efficiently, - instead of stopping when the server heard enough. In a project with - many tags, this turns out to be extremely wasteful, especially over - the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1). - - * "git fetch" run from a repository that uses the same repository as - its alternate object store as the repository it is fetching from - did not tell the server that it already has access to objects - reachable from the refs in their common alternate object store, - causing it to fetch unnecessary objects (jc/maint-fetch-alt). - - * "git remote add --mirror" created a configuration that is suitable for - doing both a mirror fetch and a mirror push at the same time, which - made little sense. We now warn and require the command line to specify - either --mirror=fetch or --mirror=push. diff --git a/third_party/git/Documentation/RelNotes/1.7.6.1.txt b/third_party/git/Documentation/RelNotes/1.7.6.1.txt deleted file mode 100644 index 42e46ab17f8b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.6.1.txt +++ /dev/null @@ -1,63 +0,0 @@ -Git v1.7.6.1 Release Notes -========================== - -Fixes since v1.7.6 ------------------- - - * Various codepaths that invoked zlib deflate/inflate assumed that these - functions can compress or uncompress more than 4GB data in one call on - platforms with 64-bit long, which has been corrected. - - * "git unexecutable" reported that "unexecutable" was not found, even - though the actual error was that "unexecutable" was found but did - not have a proper she-bang line to be executed. - - * Error exits from $PAGER were silently ignored. - - * "git checkout -b <branch>" was confused when attempting to create a - branch whose name ends with "-g" followed by hexadecimal digits, - and refused to work. - - * "git checkout -b <branch>" sometimes wrote a bogus reflog entry, - causing later "git checkout -" to fail. - - * "git diff --cc" learned to correctly ignore binary files. - - * "git diff -c/--cc" mishandled a deletion that resolves a conflict, and - looked in the working tree instead. - - * "git fast-export" forgot to quote pathnames with unsafe characters - in its output. - - * "git fetch" over smart-http transport used to abort when the - repository was updated between the initial connection and the - subsequent object transfer. - - * "git fetch" did not recurse into submodules in subdirectories. - - * "git ls-tree" did not error out when asked to show a corrupt tree. - - * "git pull" without any argument left an extra whitespace after the - command name in its reflog. - - * "git push --quiet" was not really quiet. - - * "git rebase -i -p" incorrectly dropped commits from side branches. - - * "git reset [<commit>] paths..." did not reset the index entry correctly - for unmerged paths. - - * "git submodule add" did not allow a relative repository path when - the superproject did not have any default remote url. - - * "git submodule foreach" failed to correctly give the standard input to - the user-supplied command it invoked. - - * submodules that the user has never showed interest in by running - "git submodule init" was incorrectly marked as interesting by "git - submodule sync". - - * "git submodule update --quiet" was not really quiet. - - * "git tag -l <glob>..." did not take multiple glob patterns from the - command line. diff --git a/third_party/git/Documentation/RelNotes/1.7.6.2.txt b/third_party/git/Documentation/RelNotes/1.7.6.2.txt deleted file mode 100644 index 67ae41496511..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.6.2.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v1.7.6.2 Release Notes -========================== - -Fixes since v1.7.6.1 --------------------- - - * v1.7.6.1 broke "git push --quiet"; it used to be a no-op against an old - version of Git running on the other end, but v1.7.6.1 made it abort. diff --git a/third_party/git/Documentation/RelNotes/1.7.6.3.txt b/third_party/git/Documentation/RelNotes/1.7.6.3.txt deleted file mode 100644 index 95971831b90d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.6.3.txt +++ /dev/null @@ -1,24 +0,0 @@ -Git v1.7.6.3 Release Notes -========================== - -Fixes since v1.7.6.2 --------------------- - - * "git -c var=value subcmd" misparsed the custom configuration when - value contained an equal sign. - - * "git fetch" had a major performance regression, wasting many - needless cycles in a repository where there is no submodules - present. This was especially bad, when there were many refs. - - * "git reflog $refname" did not default to the "show" subcommand as - the documentation advertised the command to do. - - * "git reset" did not leave meaningful log message in the reflog. - - * "git status --ignored" did not show ignored items when there is no - untracked items. - - * "git tag --contains $commit" was unnecessarily inefficient. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.6.4.txt b/third_party/git/Documentation/RelNotes/1.7.6.4.txt deleted file mode 100644 index e19acac2da5f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.6.4.txt +++ /dev/null @@ -1,32 +0,0 @@ -Git v1.7.6.4 Release Notes -========================== - -Fixes since v1.7.6.3 --------------------- - - * The error reporting logic of "git am" when the command is fed a file - whose mail-storage format is unknown was fixed. - - * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly. - - * "git check-ref-format --print" used to parrot a candidate string that - began with a slash (e.g. /refs/heads/master) without stripping it, to make - the result a suitably normalized string the caller can append to "$GIT_DIR/". - - * "git clone" failed to clone locally from a ".git" file that itself - is not a directory but is a pointer to one. - - * "git clone" from a local repository that borrows from another - object store using a relative path in its objects/info/alternates - file did not adjust the alternates in the resulting repository. - - * "git describe --dirty" did not refresh the index before checking the - state of the working tree files. - - * "git ls-files ../$path" that is run from a subdirectory reported errors - incorrectly when there is no such path that matches the given pathspec. - - * "git mergetool" could loop forever prompting when nothing can be read - from the standard input. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.6.5.txt b/third_party/git/Documentation/RelNotes/1.7.6.5.txt deleted file mode 100644 index 6713132a9e89..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.6.5.txt +++ /dev/null @@ -1,26 +0,0 @@ -Git v1.7.6.5 Release Notes -========================== - -Fixes since v1.7.6.4 --------------------- - - * The date parser did not accept timezone designators that lack minutes - part and also has a colon between "hh:mm". - - * After fetching from a remote that has very long refname, the reporting - output could have corrupted by overrunning a static buffer. - - * "git mergetool" did not use its arguments as pathspec, but as a path to - the file that may not even have any conflict. - - * "git name-rev --all" tried to name all _objects_, naturally failing to - describe many blobs and trees, instead of showing only commits as - advertised in its documentation. - - * "git remote rename $a $b" were not careful to match the remote name - against $a (i.e. source side of the remote nickname). - - * "gitweb" used to produce a non-working link while showing the contents - of a blob, when JavaScript actions are enabled. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.6.6.txt b/third_party/git/Documentation/RelNotes/1.7.6.6.txt deleted file mode 100644 index 5343e004005e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.6.6.txt +++ /dev/null @@ -1,16 +0,0 @@ -Git v1.7.6.6 Release Notes -========================== - -Fixes since v1.7.6.5 --------------------- - - * The code to look up attributes for paths reused entries from a wrong - directory when two paths in question are in adjacent directories and - the name of the one directory is a prefix of the other. - - * When producing a "thin pack" (primarily used in bundles and smart - HTTP transfers) out of a fully packed repository, we unnecessarily - avoided sending recent objects as a delta against objects we know - the other side has. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.6.txt b/third_party/git/Documentation/RelNotes/1.7.6.txt deleted file mode 100644 index 9ec498ea39d9..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.6.txt +++ /dev/null @@ -1,136 +0,0 @@ -Git v1.7.6 Release Notes -======================== - -Updates since v1.7.5 --------------------- - - * Various git-svn updates. - - * Updates the way content tags are handled in gitweb. Also adds - a UI to choose common timezone for displaying the dates. - - * Similar to branch names, tagnames that begin with "-" are now - disallowed. - - * Clean-up of the C part of i18n (but not l10n---please wait) - continues. - - * The scripting part of the codebase is getting prepared for i18n/l10n. - - * Pushing and pulling from a repository with large number of refs that - point to identical commits are optimized by not listing the same commit - during the common ancestor negotiation exchange with the other side. - - * Adding a file larger than core.bigfilethreshold (defaults to 1/2 Gig) - using "git add" will send the contents straight to a packfile without - having to hold it and its compressed representation both at the same - time in memory. - - * Processes spawned by "[alias] <name> = !process" in the configuration - can inspect GIT_PREFIX environment variable to learn where in the - working tree the original command was invoked. - - * A magic pathspec ":/" tells a command that limits its operation to - the current directory when ran from a subdirectory to work on the - entire working tree. In general, ":/path/to/file" would be relative - to the root of the working tree hierarchy. - - After "git reset --hard; edit Makefile; cd t/", "git add -u" would - be a no-op, but "git add -u :/" would add the updated contents of - the Makefile at the top level. If you want to name a path in the - current subdirectory whose unusual name begins with ":/", you can - name it by "./:/that/path" or by "\:/that/path". - - * "git blame" learned "--abbrev[=<n>]" option to control the minimum - number of hexdigits shown for commit object names. - - * "git blame" learned "--line-porcelain" that is less efficient but is - easier to parse. - - * Aborting "git commit --interactive" discards updates to the index - made during the interactive session. - - * "git commit" learned a "--patch" option to directly jump to the - per-hunk selection UI of the interactive mode. - - * "git diff" and its family of commands learned --dirstat=0 to show - directories that contribute less than 0.1% of changes. - - * "git diff" and its family of commands learned --dirstat=lines mode to - assess damage to the directory based on number of lines in the patch - output, not based on the similarity numbers. - - * "git format-patch" learned "--quiet" option to suppress the output of - the names of generated files. - - * "git format-patch" quotes people's names when it has RFC822 special - characters in it, e.g. "Junio C. Hamano" <jch@example.com>. Earlier - it was up to the user to do this when using its output. - - * "git format-patch" can take an empty --subject-prefix now. - - * "git grep" learned the "-P" option to take pcre regular expressions. - - * "git log" and friends learned a new "--notes" option to replace the - "--show-notes" option. Unlike "--show-notes", "--notes=<ref>" does - not imply showing the default notes. - - * They also learned a log.abbrevCommit configuration variable to augment - the --abbrev-commit command line option. - - * "git ls-remote" learned "--exit-code" option to consider it a - different kind of error when no remote ref to be shown. - - * "git merge" learned "-" as a short-hand for "the previous branch", just - like the way "git checkout -" works. - - * "git merge" uses "merge.ff" configuration variable to decide to always - create a merge commit (i.e. --no-ff, aka merge.ff=no), refuse to create - a merge commit (i.e. --ff-only, aka merge.ff=only). Setting merge.ff=yes - (or not setting it at all) restores the default behaviour of allowing - fast-forward to happen when possible. - - * p4-import (from contrib) learned a new option --preserve-user. - - * "git read-tree -m" learned "--dry-run" option that reports if a merge - would fail without touching the index nor the working tree. - - * "git rebase" that does not specify on top of which branch to rebase - the current branch now uses @{upstream} of the current branch. - - * "git rebase" finished either normally or with --abort did not - update the reflog for HEAD to record the event to come back to - where it started from. - - * "git remote add -t only-this-branch --mirror=fetch" is now allowed. Earlier - a fetch-mode mirror meant mirror everything, but now it only means refs are - not renamed. - - * "git rev-list --count" used with "--cherry-mark" counts the cherry-picked - commits separately, producing more a useful output. - - * "git submodule update" learned "--force" option to get rid of local - changes in submodules and replace them with the up-to-date version. - - * "git status" and friends ignore .gitmodules file while the file is - still in a conflicted state during a merge, to avoid using information - that is not final and possibly corrupt with conflict markers. - -Also contains various documentation updates and minor miscellaneous -changes. - - -Fixes since v1.7.5 ------------------- - -Unless otherwise noted, all the fixes in 1.7.5.X maintenance track are -included in this release. - - * "git config" used to choke with an insanely long line. - (merge ef/maint-strbuf-init later) - - * "git diff --quiet" did not work well with --diff-filter. - (merge jk/diff-not-so-quick later) - - * "git status -z" did not default to --porcelain output format. - (merge bc/maint-status-z-to-use-porcelain later) diff --git a/third_party/git/Documentation/RelNotes/1.7.7.1.txt b/third_party/git/Documentation/RelNotes/1.7.7.1.txt deleted file mode 100644 index ac9b838e25b3..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.1.txt +++ /dev/null @@ -1,60 +0,0 @@ -Git v1.7.7.1 Release Notes -========================== - -Fixes since v1.7.7 ------------------- - - * On some BSD systems, adding +s bit on directories is detrimental - (it is not necessary on BSD to begin with). "git init --shared" - has been updated to take this into account without extra makefile - settings on platforms the Makefile knows about. - - * After incorrectly written third-party tools store a tag object in - HEAD, git diagnosed it as a repository corruption and refused to - proceed in order to avoid spreading the damage. We now gracefully - recover from such a situation by pretending as if the commit that - is pointed at by the tag were in HEAD. - - * "git apply --whitespace=error" did not bother to report the exact - line number in the patch that introduced new blank lines at the end - of the file. - - * "git apply --index" did not check corrupted patch. - - * "git checkout $tree $directory/" resurrected paths locally removed or - modified only in the working tree in $directory/ that did not appear - in $directory of the given $tree. They should have been kept intact. - - * "git diff $tree $path" used to apply the pathspec at the output stage, - reading the whole tree, wasting resources. - - * The code to check for updated submodules during a "git fetch" of the - superproject had an unnecessary quadratic loop. - - * "git fetch" from a large bundle did not enable the progress output. - - * When "git fsck --lost-and-found" found that an empty blob object in the - object store is unreachable, it incorrectly reported an error after - writing the lost blob out successfully. - - * "git filter-branch" did not refresh the index before checking that the - working tree was clean. - - * "git grep $tree" when run with multiple threads had an unsafe access to - the object database that should have been protected with mutex. - - * The "--ancestry-path" option to "git log" and friends misbehaved in a - history with complex criss-cross merges and showed an uninteresting - side history as well. - - * Test t1304 assumed LOGNAME is always set, which may not be true on - some systems. - - * Tests with --valgrind failed to find "mergetool" scriptlets. - - * "git patch-id" miscomputed the patch-id in a patch that has a line longer - than 1kB. - - * When an "exec" insn failed after modifying the index and/or the working - tree during "rebase -i", we now check and warn that the changes need to - be cleaned up. diff --git a/third_party/git/Documentation/RelNotes/1.7.7.2.txt b/third_party/git/Documentation/RelNotes/1.7.7.2.txt deleted file mode 100644 index e6bbef2f0174..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.2.txt +++ /dev/null @@ -1,44 +0,0 @@ -Git v1.7.7.2 Release Notes -========================== - -Fixes since v1.7.7.1 --------------------- - - * We used to drop error messages from libcurl on certain kinds of - errors. - - * Error report from smart HTTP transport, when the connection was - broken in the middle of a transfer, showed a useless message on - a corrupt packet. - - * "git fetch --prune" was unsafe when used with refspecs from the - command line. - - * The attribute mechanism did not use case insensitive match when - core.ignorecase was set. - - * "git bisect" did not notice when it failed to update the working tree - to the next commit to be tested. - - * "git config --bool --get-regexp" failed to separate the variable name - and its value "true" when the variable is defined without "= true". - - * "git remote rename $a $b" were not careful to match the remote name - against $a (i.e. source side of the remote nickname). - - * "git mergetool" did not use its arguments as pathspec, but as a path to - the file that may not even have any conflict. - - * "git diff --[num]stat" used to use the number of lines of context - different from the default, potentially giving different results from - "git diff | diffstat" and confusing the users. - - * "git pull" and "git rebase" did not work well even when GIT_WORK_TREE is - set correctly with GIT_DIR if the current directory is outside the working - tree. - - * "git send-email" did not honor the configured hostname when restarting - the HELO/EHLO exchange after switching TLS on. - - * "gitweb" used to produce a non-working link while showing the contents - of a blob, when JavaScript actions are enabled. diff --git a/third_party/git/Documentation/RelNotes/1.7.7.3.txt b/third_party/git/Documentation/RelNotes/1.7.7.3.txt deleted file mode 100644 index 09301f095799..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.3.txt +++ /dev/null @@ -1,19 +0,0 @@ -Git v1.7.7.3 Release Notes -========================== - -Fixes since v1.7.7.2 --------------------- - - * Adjust the "quick-install-doc" procedures as preformatted - html/manpage are no longer in the source repository. - - * The logic to optimize the locality of the data in a pack introduced in - 1.7.7 was grossly inefficient. - - * The logic to filter out forked projects in the project list in - "gitweb" was broken for some time. - - * "git branch -m/-M" advertised to update RENAME_REF ref in the - commit log message that introduced the feature but not anywhere in - the documentation, and never did update such a ref anyway. This - undocumented misfeature that did not exist has been excised. diff --git a/third_party/git/Documentation/RelNotes/1.7.7.4.txt b/third_party/git/Documentation/RelNotes/1.7.7.4.txt deleted file mode 100644 index e5234485e714..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.4.txt +++ /dev/null @@ -1,14 +0,0 @@ -Git v1.7.7.4 Release Notes -========================== - -Fixes since v1.7.7.3 --------------------- - - * A few header dependencies were missing from the Makefile. - - * Some newer parts of the code used C99 __VA_ARGS__ while we still - try to cater to older compilers. - - * "git name-rev --all" tried to name all _objects_, naturally failing to - describe many blobs and trees, instead of showing only commits as - advertised in its documentation. diff --git a/third_party/git/Documentation/RelNotes/1.7.7.5.txt b/third_party/git/Documentation/RelNotes/1.7.7.5.txt deleted file mode 100644 index 7b0931987b1f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.5.txt +++ /dev/null @@ -1,14 +0,0 @@ -Git v1.7.7.5 Release Notes -========================== - -Fixes since v1.7.7.4 --------------------- - - * After fetching from a remote that has very long refname, the reporting - output could have corrupted by overrunning a static buffer. - - * "git checkout" and "git merge" treated in-tree .gitignore and exclude - file in $GIT_DIR/info/ directory inconsistently when deciding which - untracked files are ignored and expendable. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.7.6.txt b/third_party/git/Documentation/RelNotes/1.7.7.6.txt deleted file mode 100644 index 8df606d45273..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.6.txt +++ /dev/null @@ -1,20 +0,0 @@ -Git v1.7.7.6 Release Notes -========================== - -Fixes since v1.7.7.5 --------------------- - - * The code to look up attributes for paths reused entries from a wrong - directory when two paths in question are in adjacent directories and - the name of the one directory is a prefix of the other. - - * A wildcard that matches deeper hierarchy given to the "diff-index" command, - e.g. "git diff-index HEAD -- '*.txt'", incorrectly reported additions of - matching files even when there is no change. - - * When producing a "thin pack" (primarily used in bundles and smart - HTTP transfers) out of a fully packed repository, we unnecessarily - avoided sending recent objects as a delta against objects we know - the other side has. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.7.7.txt b/third_party/git/Documentation/RelNotes/1.7.7.7.txt deleted file mode 100644 index e79118d063bb..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.7.txt +++ /dev/null @@ -1,13 +0,0 @@ -Git v1.7.7.7 Release Notes -========================== - -Fixes since v1.7.7.6 --------------------- - - * An error message from 'git bundle' had an unmatched single quote pair in it. - - * 'git diff --histogram' option was not described. - - * 'git imap-send' carried an unused dead code. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.7.txt b/third_party/git/Documentation/RelNotes/1.7.7.txt deleted file mode 100644 index 6eff128c80b7..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.7.txt +++ /dev/null @@ -1,134 +0,0 @@ -Git v1.7.7 Release Notes -======================== - -Updates since v1.7.6 --------------------- - - * The scripting part of the codebase is getting prepared for i18n/l10n. - - * Interix, Cygwin and Minix ports got updated. - - * Various updates to git-p4 (in contrib/), fast-import, and git-svn. - - * Gitweb learned to read from /etc/gitweb-common.conf when it exists, - before reading from gitweb_config.perl or from /etc/gitweb.conf - (this last one is read only when per-repository gitweb_config.perl - does not exist). - - * Various codepaths that invoked zlib deflate/inflate assumed that these - functions can compress or uncompress more than 4GB data in one call on - platforms with 64-bit long, which has been corrected. - - * Git now recognizes loose objects written by other implementations that - use a non-standard window size for zlib deflation (e.g. Agit running on - Android with 4kb window). We used to reject anything that was not - deflated with 32kb window. - - * Interaction between the use of pager and coloring of the output has - been improved, especially when a command that is not built-in was - involved. - - * "git am" learned to pass the "--exclude=<path>" option through to underlying - "git apply". - - * You can now feed many empty lines before feeding an mbox file to - "git am". - - * "git archive" can be told to pass the output to gzip compression and - produce "archive.tar.gz". - - * "git bisect" can be used in a bare repository (provided that the test - you perform per each iteration does not need a working tree, of - course). - - * The length of abbreviated object names in "git branch -v" output - now honors the core.abbrev configuration variable. - - * "git check-attr" can take relative paths from the command line. - - * "git check-attr" learned an "--all" option to list the attributes for a - given path. - - * "git checkout" (both the code to update the files upon checking out a - different branch and the code to checkout a specific set of files) learned - to stream the data from object store when possible, without having to - read the entire contents of a file into memory first. An earlier round - of this code that is not in any released version had a large leak but - now it has been plugged. - - * "git clone" can now take a "--config key=value" option to set the - repository configuration options that affect the initial checkout. - - * "git commit <paths>..." now lets you feed relative pathspecs that - refer to outside your current subdirectory. - - * "git diff --stat" learned a --stat-count option to limit the output of - a diffstat report. - - * "git diff" learned a "--histogram" option to use a different diff - generation machinery stolen from jgit, which might give better - performance. - - * "git diff" had a weird worst case behaviour that can be triggered - when comparing files with potentially many places that could match. - - * "git fetch", "git push" and friends no longer show connection - errors for addresses that couldn't be connected to when at least one - address succeeds (this is arguably a regression but a deliberate - one). - - * "git grep" learned "--break" and "--heading" options, to let users mimic - the output format of "ack". - - * "git grep" learned a "-W" option that shows wider context using the same - logic used by "git diff" to determine the hunk header. - - * Invoking the low-level "git http-fetch" without "-a" option (which - git itself never did--normal users should not have to worry about - this) is now deprecated. - - * The "--decorate" option to "git log" and its family learned to - highlight grafted and replaced commits. - - * "git rebase master topci" no longer spews usage hints after giving - the "fatal: no such branch: topci" error message. - - * The recursive merge strategy implementation got a fairly large - fix for many corner cases that may rarely happen in real world - projects (it has been verified that none of the 16000+ merges in - the Linux kernel history back to v2.6.12 is affected with the - corner case bugs this update fixes). - - * "git stash" learned an "--include-untracked option". - - * "git submodule update" used to stop at the first error updating a - submodule; it now goes on to update other submodules that can be - updated, and reports the ones with errors at the end. - - * "git push" can be told with the "--recurse-submodules=check" option to - refuse pushing of the supermodule, if any of its submodules' - commits hasn't been pushed out to their remotes. - - * "git upload-pack" and "git receive-pack" learned to pretend that only a - subset of the refs exist in a repository. This may help a site to - put many tiny repositories into one repository (this would not be - useful for larger repositories as repacking would be problematic). - - * "git verify-pack" has been rewritten to use the "index-pack" machinery - that is more efficient in reading objects in packfiles. - - * test scripts for gitweb tried to run even when CGI-related perl modules - are not installed; they now exit early when the latter are unavailable. - -Also contains various documentation updates and minor miscellaneous -changes. - - -Fixes since v1.7.6 ------------------- - -Unless otherwise noted, all fixes in the 1.7.6.X maintenance track are -included in this release. - - * "git branch -m" and "git checkout -b" incorrectly allowed the tip - of the branch that is currently checked out updated. diff --git a/third_party/git/Documentation/RelNotes/1.7.8.1.txt b/third_party/git/Documentation/RelNotes/1.7.8.1.txt deleted file mode 100644 index 33dc948b9449..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.8.1.txt +++ /dev/null @@ -1,38 +0,0 @@ -Git v1.7.8.1 Release Notes -========================== - -Fixes since v1.7.8 ------------------- - - * In some codepaths (notably, checkout and merge), the ignore patterns - recorded in $GIT_DIR/info/exclude were not honored. They now are. - - * "git apply --check" did not error out when given an empty input - without any patch. - - * "git archive" mistakenly allowed remote clients to ask for commits - that are not at the tip of any ref. - - * "git checkout" and "git merge" treated in-tree .gitignore and exclude - file in $GIT_DIR/info/ directory inconsistently when deciding which - untracked files are ignored and expendable. - - * LF-to-CRLF streaming filter used when checking out a large-ish blob - fell into an infinite loop with a rare input. - - * The function header pattern for files with "diff=cpp" attribute did - not consider "type *funcname(type param1,..." as the beginning of a - function. - - * The error message from "git diff" and "git status" when they fail - to inspect changes in submodules did not report which submodule they - had trouble with. - - * After fetching from a remote that has very long refname, the reporting - output could have corrupted by overrunning a static buffer. - - * "git pack-objects" avoids creating cyclic dependencies among deltas - when seeing a broken packfile that records the same object in both - the deflated form and as a delta. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.8.2.txt b/third_party/git/Documentation/RelNotes/1.7.8.2.txt deleted file mode 100644 index b9c66aa1b799..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.8.2.txt +++ /dev/null @@ -1,71 +0,0 @@ -Git v1.7.8.2 Release Notes -========================== - -Fixes since v1.7.8.1 --------------------- - - * Porcelain commands like "git reset" did not distinguish deletions - and type-changes from ordinary modification, and reported them with - the same 'M' moniker. They now use 'D' (for deletion) and 'T' (for - type-change) to match "git status -s" and "git diff --name-status". - - * The configuration file parser used for sizes (e.g. bigFileThreshold) - did not correctly interpret 'g' suffix. - - * The replacement implementation for snprintf used on platforms with - native snprintf that is broken did not use va_copy correctly. - - * LF-to-CRLF streaming filter replaced all LF with CRLF, which might - be technically correct but not friendly to people who are trying - to recover from earlier mistakes of using CRLF in the repository - data in the first place. It now refrains from doing so for LF that - follows a CR. - - * git native connection going over TCP (not over SSH) did not set - SO_KEEPALIVE option which failed to receive link layer errors. - - * "git branch -m <current branch> HEAD" is an obvious no-op but was not - allowed. - - * "git checkout -m" did not recreate the conflicted state in a "both - sides added, without any common ancestor version" conflict - situation. - - * "git cherry-pick $commit" (not a range) created an unnecessary - sequencer state and interfered with valid workflow to use the - command during a session to cherry-pick multiple commits. - - * You could make "git commit" segfault by giving the "--no-message" - option. - - * "fast-import" did not correctly update an existing notes tree, - possibly corrupting the fan-out. - - * "git fetch-pack" accepted unqualified refs that do not begin with - refs/ by mistake and compensated it by matching the refspec with - tail-match, which was doubly wrong. This broke fetching from a - repository with a funny named ref "refs/foo/refs/heads/master" and a - 'master' branch with "git fetch-pack refs/heads/master", as the - command incorrectly considered the former a "match". - - * "git log --follow" did not honor the rename threshold score given - with the -M option (e.g. "-M50%"). - - * "git mv" gave suboptimal error/warning messages when it overwrites - target files. It also did not pay attention to "-v" option. - - * Authenticated "git push" over dumb HTTP were broken with a recent - change and failed without asking for password when username is - given. - - * "git push" to an empty repository over HTTP were broken with a - recent change to the ref handling. - - * "git push -v" forgot how to be verbose by mistake. It now properly - becomes verbose when asked to. - - * When a "reword" action in "git rebase -i" failed to run "commit --amend", - we did not give the control back to the user to resolve the situation, and - instead kept the original commit log message. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.8.3.txt b/third_party/git/Documentation/RelNotes/1.7.8.3.txt deleted file mode 100644 index a92714c14bcb..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.8.3.txt +++ /dev/null @@ -1,16 +0,0 @@ -Git v1.7.8.3 Release Notes -========================== - -Fixes since v1.7.8.2 --------------------- - - * Attempt to fetch from an empty file pretending it to be a bundle did - not error out correctly. - - * gitweb did not correctly fall back to configured $fallback_encoding - that is not 'latin1'. - - * "git clone --depth $n" did not catch a non-number given as $n as an - error. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.8.4.txt b/third_party/git/Documentation/RelNotes/1.7.8.4.txt deleted file mode 100644 index 9bebdbf13d86..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.8.4.txt +++ /dev/null @@ -1,23 +0,0 @@ -Git v1.7.8.4 Release Notes -========================== - -Fixes since v1.7.8.3 --------------------- - - * The code to look up attributes for paths reused entries from a wrong - directory when two paths in question are in adjacent directories and - the name of the one directory is a prefix of the other. - - * A wildcard that matches deeper hierarchy given to the "diff-index" command, - e.g. "git diff-index HEAD -- '*.txt'", incorrectly reported additions of - matching files even when there is no change. - - * When producing a "thin pack" (primarily used in bundles and smart - HTTP transfers) out of a fully packed repository, we unnecessarily - avoided sending recent objects as a delta against objects we know - the other side has. - - * "git send-email" did not properly treat sendemail.multiedit as a - boolean (e.g. setting it to "false" did not turn it off). - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.8.5.txt b/third_party/git/Documentation/RelNotes/1.7.8.5.txt deleted file mode 100644 index 011fd2a42838..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.8.5.txt +++ /dev/null @@ -1,19 +0,0 @@ -Git v1.7.8.5 Release Notes -========================== - -Fixes since v1.7.8.4 --------------------- - - * Dependency on our thread-utils.h header file was missing for - objects that depend on it in the Makefile. - - * "git am" when fed an empty file did not correctly finish reading it - when it attempts to guess the input format. - - * "git grep -P" (when PCRE is enabled in the build) did not match the - beginning and the end of the line correctly with ^ and $. - - * "git rebase -m" tried to run "git notes copy" needlessly when - nothing was rewritten. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.8.6.txt b/third_party/git/Documentation/RelNotes/1.7.8.6.txt deleted file mode 100644 index d9bf2b741aad..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.8.6.txt +++ /dev/null @@ -1,22 +0,0 @@ -Git v1.7.8.6 Release Notes -========================== - -Fixes since v1.7.8.5 --------------------- - - * An error message from 'git bundle' had an unmatched single quote pair in it. - - * 'git diff --histogram' option was not described. - - * Documentation for 'git rev-list' had minor formatting errors. - - * 'git imap-send' carried an unused dead code. - - * The way 'git fetch' implemented its connectivity check over - received objects was overly pessimistic, and wasted a lot of - cycles. - - * Various minor backports of fixes from the 'master' and the 'maint' - branch. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.8.txt b/third_party/git/Documentation/RelNotes/1.7.8.txt deleted file mode 100644 index 249311361e00..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.8.txt +++ /dev/null @@ -1,161 +0,0 @@ -Git v1.7.8 Release Notes -======================== - -Updates since v1.7.7 --------------------- - - * Some git-svn, git-gui, git-p4 (in contrib) and msysgit updates. - - * Updates to bash completion scripts. - - * The build procedure has been taught to take advantage of computed - dependency automatically when the compiler supports it. - - * The date parser now accepts timezone designators that lack minutes - part and also has a colon between "hh:mm". - - * The contents of the /etc/mailname file, if exists, is used as the - default value of the hostname part of the committer/author e-mail. - - * "git am" learned how to read from patches generated by Hg. - - * "git archive" talking with a remote repository can report errors - from the remote side in a more informative way. - - * "git branch" learned an explicit --list option to ask for branches - listed, optionally with a glob matching pattern to limit its output. - - * "git check-attr" learned "--cached" option to look at .gitattributes - files from the index, not from the working tree. - - * Variants of "git cherry-pick" and "git revert" that take multiple - commits learned to "--continue" and "--abort". - - * "git daemon" gives more human readable error messages to clients - using ERR packets when appropriate. - - * Errors at the network layer is logged by "git daemon". - - * "git diff" learned "--minimal" option to spend extra cycles to come - up with a minimal patch output. - - * "git diff" learned "--function-context" option to show the whole - function as context that was affected by a change. - - * "git difftool" can be told to skip launching the tool for a path by - answering 'n' to its prompt. - - * "git fetch" learned to honor transfer.fsckobjects configuration to - validate the objects that were received from the other end, just like - "git receive-pack" (the receiving end of "git push") does. - - * "git fetch" makes sure that the set of objects it received from the - other end actually completes the history before updating the refs. - "git receive-pack" (the receiving end of "git push") learned to do the - same. - - * "git fetch" learned that fetching/cloning from a regular file on the - filesystem is not necessarily a request to unpack a bundle file; the - file could be ".git" with "gitdir: <path>" in it. - - * "git for-each-ref" learned "%(contents:subject)", "%(contents:body)" - and "%(contents:signature)". The last one is useful for signed tags. - - * "git grep" used to incorrectly pay attention to .gitignore files - scattered in the directory it was working in even when "--no-index" - option was used. It no longer does this. The "--exclude-standard" - option needs to be given to explicitly activate the ignore - mechanism. - - * "git grep" learned "--untracked" option, where given patterns are - searched in untracked (but not ignored) files as well as tracked - files in the working tree, so that matches in new but not yet - added files do not get missed. - - * The recursive merge backend no longer looks for meaningless - existing merges in submodules unless in the outermost merge. - - * "git log" and friends learned "--children" option. - - * "git ls-remote" learned to respond to "-h"(elp) requests. - - * "mediawiki" remote helper can interact with (surprise!) MediaWiki - with "git fetch" & "git push". - - * "git merge" learned the "--edit" option to allow users to edit the - merge commit log message. - - * "git rebase -i" can be told to use special purpose editor suitable - only for its insn sheet via sequence.editor configuration variable. - - * "git send-email" learned to respond to "-h"(elp) requests. - - * "git send-email" allows the value given to sendemail.aliasfile to begin - with "~/" to refer to the $HOME directory. - - * "git send-email" forces use of Authen::SASL::Perl to work around - issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN. - - * "git stash" learned "--include-untracked" option to stash away - untracked/ignored cruft from the working tree. - - * "git submodule clone" does not leak an error message to the UI - level unnecessarily anymore. - - * "git submodule update" learned to honor "none" as the value for - submodule.<name>.update to specify that the named submodule should - not be checked out by default. - - * When populating a new submodule directory with "git submodule init", - the $GIT_DIR metainformation directory for submodules is created inside - $GIT_DIR/modules/<name>/ directory of the superproject and referenced - via the gitfile mechanism. This is to make it possible to switch - between commits in the superproject that has and does not have the - submodule in the tree without re-cloning. - - * "gitweb" leaked unescaped control characters from syntax hiliter - outputs. - - * "gitweb" can be told to give custom string at the end of the HTML - HEAD element. - - * "gitweb" now has its own manual pages. - - -Also contains other documentation updates and minor code cleanups. - - -Fixes since v1.7.7 ------------------- - -Unless otherwise noted, all fixes in the 1.7.7.X maintenance track are -included in this release. - - * HTTP transport did not use pushurl correctly, and also did not tell - what host it is trying to authenticate with when asking for - credentials. - (merge deba493 jk/http-auth later to maint). - - * "git blame" was aborted if started from an uncommitted content and - the path had the textconv filter in effect. - (merge 8518088 ss/blame-textconv-fake-working-tree later to maint). - - * Adding many refs to the local repository in one go (e.g. "git fetch" - that fetches many tags) and looking up a ref by name in a repository - with too many refs were unnecessarily slow. - (merge 17d68a54d jp/get-ref-dir-unsorted later to maint). - - * Report from "git commit" on untracked files was confused under - core.ignorecase option. - (merge 395c7356 jk/name-hash-dirent later to maint). - - * "git merge" did not understand ":/<pattern>" as a way to name a commit. - - " "git push" on the receiving end used to call post-receive and post-update - hooks for attempted removal of non-existing refs. - (merge 160b81ed ph/push-to-delete-nothing later to maint). - - * Help text for "git remote set-url" and "git remote set-branches" - were misspelled. - (merge c49904e fc/remote-seturl-usage-fix later to maint). - (merge 656cdf0 jc/remote-setbranches-usage-fix later to maint). diff --git a/third_party/git/Documentation/RelNotes/1.7.9.1.txt b/third_party/git/Documentation/RelNotes/1.7.9.1.txt deleted file mode 100644 index 6957183dbb00..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.1.txt +++ /dev/null @@ -1,63 +0,0 @@ -Git v1.7.9.1 Release Notes -========================== - -Fixes since v1.7.9 ------------------- - - * The makefile allowed environment variable X seep into it result in - command names suffixed with unnecessary strings. - - * The set of included header files in compat/inet-{ntop,pton} - wrappers was updated for Windows some time ago, but in a way that - broke Solaris build. - - * rpmbuild noticed an unpackaged but installed *.mo file and failed. - - * Subprocesses spawned from various git programs were often left running - to completion even when the top-level process was killed. - - * "git add -e" learned not to show a diff for an otherwise unmodified - submodule that only has uncommitted local changes in the patch - prepared by for the user to edit. - - * Typo in "git branch --edit-description my-tpoic" was not diagnosed. - - * Using "git grep -l/-L" together with options -W or --break may not - make much sense as the output is to only count the number of hits - and there is no place for file breaks, but the latter options made - "-l/-L" to miscount the hits. - - * "git log --first-parent $pathspec" did not stay on the first parent - chain and veered into side branch from which the whole change to the - specified paths came. - - * "git merge --no-edit $tag" failed to honor the --no-edit option. - - * "git merge --ff-only $tag" failed because it cannot record the - required mergetag without creating a merge, but this is so common - operation for branch that is used _only_ to follow the upstream, so - it was changed to allow fast-forwarding without recording the mergetag. - - * "git mergetool" now gives an empty file as the common base version - to the backend when dealing with the "both sides added, differently" - case. - - * "git push -q" was not sufficiently quiet. - - * When "git push" fails to update any refs, the client side did not - report an error correctly to the end user. - - * "rebase" and "commit --amend" failed to work on commits with ancient - timestamps near year 1970. - - * When asking for a tag to be pulled, "request-pull" did not show the - name of the tag prefixed with "tags/", which would have helped older - clients. - - * "git submodule add $path" forgot to recompute the name to be stored - in .gitmodules when the submodule at $path was once added to the - superproject and already initialized. - - * Many small corner case bugs on "git tag -n" was corrected. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.9.2.txt b/third_party/git/Documentation/RelNotes/1.7.9.2.txt deleted file mode 100644 index e500da75ddc9..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.2.txt +++ /dev/null @@ -1,69 +0,0 @@ -Git v1.7.9.2 Release Notes -========================== - -Fixes since v1.7.9.1 --------------------- - - * Bash completion script (in contrib/) did not like a pattern that - begins with a dash to be passed to __git_ps1 helper function. - - * Adaptation of the bash completion script (in contrib/) for zsh - incorrectly listed all subcommands when "git <TAB><TAB>" was given - to ask for list of porcelain subcommands. - - * The build procedure for profile-directed optimized binary was not - working very well. - - * Some systems need to explicitly link -lcharset to get locale_charset(). - - * t5541 ignored user-supplied port number used for HTTP server testing. - - * The error message emitted when we see an empty loose object was - not phrased correctly. - - * The code to ask for password did not fall back to the terminal - input when GIT_ASKPASS is set but does not work (e.g. lack of X - with GUI askpass helper). - - * We failed to give the true terminal width to any subcommand when - they are invoked with the pager, i.e. "git -p cmd". - - * map_user() was not rewriting its output correctly, which resulted - in the user visible symptom that "git blame -e" sometimes showed - excess '>' at the end of email addresses. - - * "git checkout -b" did not allow switching out of an unborn branch. - - * When you have both .../foo and .../foo.git, "git clone .../foo" did not - favor the former but the latter. - - * "git commit" refused to create a commit when entries added with - "add -N" remained in the index, without telling Git what their content - in the next commit should be. We should have created the commit without - these paths. - - * "git diff --stat" said "files", "insertions", and "deletions" even - when it is showing one "file", one "insertion" or one "deletion". - - * The output from "git diff --stat" for two paths that have the same - amount of changes showed graph bars of different length due to the - way we handled rounding errors. - - * "git grep" did not pay attention to -diff (hence -binary) attribute. - - * The transport programs (fetch, push, clone)ignored --no-progress - and showed progress when sending their output to a terminal. - - * Sometimes error status detected by a check in an earlier phase of - "git receive-pack" (the other end of "git push") was lost by later - checks, resulting in false indication of success. - - * "git rev-list --verify" sometimes skipped verification depending on - the phase of the moon, which dates back to 1.7.8.x series. - - * Search box in "gitweb" did not accept non-ASCII characters correctly. - - * Search interface of "gitweb" did not show multiple matches in the same file - correctly. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.9.3.txt b/third_party/git/Documentation/RelNotes/1.7.9.3.txt deleted file mode 100644 index 91c65012f981..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.3.txt +++ /dev/null @@ -1,51 +0,0 @@ -Git v1.7.9.3 Release Notes -========================== - -Fixes since v1.7.9.2 --------------------- - - * "git p4" (in contrib/) submit the changes to a wrong place when the - "--use-client-spec" option is set. - - * The config.mak.autogen generated by optional autoconf support tried - to link the binary with -lintl even when libintl.h is missing from - the system. - - * When the filter driver exits before reading the content before the - main git process writes the contents to be filtered to the pipe to - it, the latter could be killed with SIGPIPE instead of ignoring - such an event as an error. - - * "git add --refresh <pathspec>" used to warn about unmerged paths - outside the given pathspec. - - * The bulk check-in codepath in "git add" streamed contents that - needs smudge/clean filters without running them, instead of punting - and delegating to the codepath to run filters after slurping - everything to core. - - * "git branch --with $that" assumed incorrectly that the user will never - ask the question with nonsense value in $that. - - * "git bundle create" produced a corrupt bundle file upon seeing - commits with excessively long subject line. - - * When a remote helper exits before reading the blank line from the - main git process to signal the end of commands, the latter could be - killed with SIGPIPE. Instead we should ignore such event as a - non-error. - - * The commit log template given with "git merge --edit" did not have - a short instructive text like what "git commit" gives. - - * "git rev-list --verify-objects -q" omitted the extra verification - it needs to do over "git rev-list --objects -q" by mistake. - - * "gitweb" used to drop warnings in the log file when "heads" view is - accessed in a repository whose HEAD does not point at a valid - branch. - - * An invalid regular expression pattern given by an end user made - "gitweb" to return garbled response. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.9.4.txt b/third_party/git/Documentation/RelNotes/1.7.9.4.txt deleted file mode 100644 index e5217a1889cf..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.4.txt +++ /dev/null @@ -1,24 +0,0 @@ -Git v1.7.9.4 Release Notes -========================== - -Fixes since v1.7.9.3 --------------------- - - * The code to synthesize the fake ancestor tree used by 3-way merge - fallback in "git am" was not prepared to read a patch created with - a non-standard -p<num> value. - - * "git bundle" did not record boundary commits correctly when there - are many of them. - - * "git diff-index" and its friends at the plumbing level showed the - "diff --git" header and nothing else for a path whose cached stat - info is dirty without actual difference when asked to produce a - patch. This was a longstanding bug that we could have fixed long - time ago. - - * "gitweb" did use quotemeta() to prepare search string when asked to - do a fixed-string project search, but did not use it by mistake and - used the user-supplied string instead. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.9.5.txt b/third_party/git/Documentation/RelNotes/1.7.9.5.txt deleted file mode 100644 index 95cc2bbf2cda..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.5.txt +++ /dev/null @@ -1,23 +0,0 @@ -Git v1.7.9.5 Release Notes -========================== - -Fixes since v1.7.9.4 --------------------- - - * When "git config" diagnoses an error in a configuration file and - shows the line number for the offending line, it miscounted if the - error was at the end of line. - - * "git fast-import" accepted "ls" command with an empty path by - mistake. - - * Various new-ish output decoration modes of "git grep" were not - documented in the manual's synopsis section. - - * The "remaining" subcommand to "git rerere" was not documented. - - * "gitweb" used to drop warnings in the log file when "heads" view is - accessed in a repository whose HEAD does not point at a valid - branch. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.9.6.txt b/third_party/git/Documentation/RelNotes/1.7.9.6.txt deleted file mode 100644 index 74bf8825e2be..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.6.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v1.7.9.6 Release Notes -========================== - -Fixes since v1.7.9.5 --------------------- - - * "git merge $tag" to merge an annotated tag always opens the editor - during an interactive edit session. v1.7.10 series introduced an - environment variable GIT_MERGE_AUTOEDIT to help older scripts decline - this behaviour, but the maintenance track should also support it. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.9.7.txt b/third_party/git/Documentation/RelNotes/1.7.9.7.txt deleted file mode 100644 index 59667d0f2a6d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.7.txt +++ /dev/null @@ -1,13 +0,0 @@ -Git v1.7.9.7 Release Notes -========================== - -Fixes since v1.7.9.6 --------------------- - - * An error message from 'git bundle' had an unmatched single quote pair in it. - - * The way 'git fetch' implemented its connectivity check over - received objects was overly pessimistic, and wasted a lot of - cycles. - -Also contains minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.7.9.txt b/third_party/git/Documentation/RelNotes/1.7.9.txt deleted file mode 100644 index 95320aad5dd2..000000000000 --- a/third_party/git/Documentation/RelNotes/1.7.9.txt +++ /dev/null @@ -1,112 +0,0 @@ -Git v1.7.9 Release Notes -======================== - -Updates since v1.7.8 --------------------- - - * gitk updates accumulated since early 2011. - - * git-gui updated to 0.16.0. - - * git-p4 (in contrib/) updates. - - * Git uses gettext to translate its most common interface messages - into the user's language if translations are available and the - locale is appropriately set. Distributors can drop new PO files - in po/ to add new translations. - - * The code to handle username/password for HTTP transactions used in - "git push" & "git fetch" learned to talk "credential API" to - external programs to cache or store them, to allow integration with - platform native keychain mechanisms. - - * The input prompts in the terminal use our own getpass() replacement - when possible. HTTP transactions used to ask for the username without - echoing back what was typed, but with this change you will see it as - you type. - - * The internals of "revert/cherry-pick" have been tweaked to prepare - building more generic "sequencer" on top of the implementation that - drives them. - - * "git rev-parse FETCH_HEAD" after "git fetch" without specifying - what to fetch from the command line will now show the commit that - would be merged if the command were "git pull". - - * "git add" learned to stream large files directly into a packfile - instead of writing them into individual loose object files. - - * "git checkout -B <current branch> <elsewhere>" is a more intuitive - way to spell "git reset --keep <elsewhere>". - - * "git checkout" and "git merge" learned "--no-overwrite-ignore" option - to tell Git that untracked and ignored files are not expendable. - - * "git commit --amend" learned "--no-edit" option to say that the - user is amending the tree being recorded, without updating the - commit log message. - - * "git commit" and "git reset" re-learned the optimization to prime - the cache-tree information in the index, which makes it faster to - write a tree object out after the index entries are updated. - - * "git commit" detects and rejects an attempt to stuff NUL byte in - the commit log message. - - * "git commit" learned "-S" to GPG-sign the commit; this can be shown - with the "--show-signature" option to "git log". - - * fsck and prune are relatively lengthy operations that still go - silent while making the end-user wait. They learned to give progress - output like other slow operations. - - * The set of built-in function-header patterns for various languages - knows MATLAB. - - * "git log --format='<format>'" learned new %g[nNeE] specifiers to - show information from the reflog entries when walking the reflog - (i.e. with "-g"). - - * "git pull" can be used to fetch and merge an annotated/signed tag, - instead of the tip of a topic branch. The GPG signature from the - signed tag is recorded in the resulting merge commit for later - auditing. - - * "git log" learned "--show-signature" option to show the signed tag - that was merged that is embedded in the merge commit. It also can - show the signature made on the commit with "git commit -S". - - * "git branch --edit-description" can be used to add descriptive text - to explain what a topic branch is about. - - * "git fmt-merge-msg" learned to take the branch description into - account when preparing a merge summary that "git merge" records - when merging a local branch. - - * "git request-pull" has been updated to convey more information - useful for integrators to decide if a topic is worth merging and - what is pulled is indeed what the requestor asked to pull, - including: - - - the tip of the branch being requested to be merged; - - the branch description describing what the topic is about; - - the contents of the annotated tag, when requesting to pull a tag. - - * "git pull" learned to notice 'pull.rebase' configuration variable, - which serves as a global fallback for setting 'branch.<name>.rebase' - configuration variable per branch. - - * "git tag" learned "--cleanup" option to control how the whitespaces - and empty lines in tag message are cleaned up. - - * "gitweb" learned to show side-by-side diff. - -Also contains minor documentation updates and code clean-ups. - - -Fixes since v1.7.8 ------------------- - -Unless otherwise noted, all the fixes since v1.7.8 in the maintenance -releases are contained in this release (see release notes to them for -details). diff --git a/third_party/git/Documentation/RelNotes/1.8.0.1.txt b/third_party/git/Documentation/RelNotes/1.8.0.1.txt deleted file mode 100644 index 1f372fa0b552..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.0.1.txt +++ /dev/null @@ -1,64 +0,0 @@ -Git v1.8.0.1 Release Notes -========================== - -Fixes since v1.8.0 ------------------- - - * The configuration parser had an unnecessary hardcoded limit on - variable names that was not checked consistently. - - * The "say" function in the test scaffolding incorrectly allowed - "echo" to interpret "\a" as if it were a C-string asking for a - BEL output. - - * "git mergetool" feeds /dev/null as a common ancestor when dealing - with an add/add conflict, but p4merge backend cannot handle - it. Work it around by passing a temporary empty file. - - * "git log -F -E --grep='<ere>'" failed to use the given <ere> - pattern as extended regular expression, and instead looked for the - string literally. - - * "git grep -e pattern <tree>" asked the attribute system to read - "<tree>:.gitattributes" file in the working tree, which was - nonsense. - - * A symbolic ref refs/heads/SYM was not correctly removed with "git - branch -d SYM"; the command removed the ref pointed by SYM - instead. - - * Earlier we fixed documentation to hyphenate "remote-tracking branch" - to clarify that these are not a remote entity, but unhyphenated - spelling snuck in to a few places since then. - - * "git pull --rebase" run while the HEAD is detached tried to find - the upstream branch of the detached HEAD (which by definition - does not exist) and emitted unnecessary error messages. - - * The refs/replace hierarchy was not mentioned in the - repository-layout docs. - - * Sometimes curl_multi_timeout() function suggested a wrong timeout - value when there is no file descriptors to wait on and the http - transport ended up sleeping for minutes in select(2) system call. - A workaround has been added for this. - - * Various rfc2047 quoting issues around a non-ASCII name on the - From: line in the output from format-patch have been corrected. - - * "git diff -G<pattern>" did not honor textconv filter when looking - for changes. - - * Bash completion script (in contrib/) did not correctly complete a - lazy "git checkout $name_of_remote_tracking_branch_that_is_unique" - command line. - - * RSS feed from "gitweb" had a xss hole in its title output. - - * "git config --path $key" segfaulted on "[section] key" (a boolean - "true" spelled without "=", not "[section] key = true"). - - * "git checkout -b foo" while on an unborn branch did not say - "Switched to a new branch 'foo'" like other cases. - -Also contains other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.8.0.2.txt b/third_party/git/Documentation/RelNotes/1.8.0.2.txt deleted file mode 100644 index 8497e051dee7..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.0.2.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git v1.8.0.2 Release Notes -========================== - -Fixes since v1.8.0.1 --------------------- - - * Various codepaths have workaround for a common misconfiguration to - spell "UTF-8" as "utf8", but it was not used uniformly. Most - notably, mailinfo (which is used by "git am") lacked this support. - - * We failed to mention a file without any content change but whose - permission bit was modified, or (worse yet) a new file without any - content in the "git diff --stat" output. - - * When "--stat-count" hides a diffstat for binary contents, the total - number of added and removed lines at the bottom was computed - incorrectly. - - * When "--stat-count" hides a diffstat for unmerged paths, the total - number of affected files at the bottom of the "diff --stat" output - was computed incorrectly. - - * "diff --shortstat" miscounted the total number of affected files - when there were unmerged paths. - - * "git p4" used to try expanding malformed "$keyword$" that spans - across multiple lines. - - * "git update-ref -d --deref SYM" to delete a ref through a symbolic - ref that points to it did not remove it correctly. - - * Syntax highlighting in "gitweb" was not quite working. - -Also contains other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.8.0.3.txt b/third_party/git/Documentation/RelNotes/1.8.0.3.txt deleted file mode 100644 index 92b1e4b36303..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.0.3.txt +++ /dev/null @@ -1,14 +0,0 @@ -Git v1.8.0.3 Release Notes -========================== - -Fixes since v1.8.0.2 --------------------- - - * "git log -p -S<string>" did not apply the textconv filter while - looking for the <string>. - - * In the documentation, some invalid example e-mail addresses were - formatted into mailto: links. - -Also contains many documentation updates backported from the 'master' -branch that is preparing for the upcoming 1.8.1 release. diff --git a/third_party/git/Documentation/RelNotes/1.8.0.txt b/third_party/git/Documentation/RelNotes/1.8.0.txt deleted file mode 100644 index 63d6e4afa4df..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.0.txt +++ /dev/null @@ -1,267 +0,0 @@ -Git v1.8.0 Release Notes -======================== - -Backward compatibility notes ----------------------------- - -In the next major release (not *this* one), we will change the -behavior of the "git push" command. - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). We will use the "simple" semantics that pushes the -current branch to the branch with the same name, only when the current -branch is set to integrate with that remote branch. There is a user -preference configuration variable "push.default" to change this, and -"git push" will warn about the upcoming change until you set this -variable in this release. - -"git branch --set-upstream" is deprecated and may be removed in a -relatively distant future. "git branch [-u|--set-upstream-to]" has -been introduced with a saner order of arguments. - - -Updates since v1.7.12 ---------------------- - -UI, Workflows & Features - - * A credential helper for Win32 to allow access to the keychain of - the logged-in user has been added. - - * An initial port to HP NonStop. - - * A credential helper to allow access to the Gnome keyring has been - added. - - * When "git am" sanitizes the "Subject:" line, we strip the prefix from - "Re: subject" and also from a less common "re: subject", but left - the even less common "RE: subject" intact. Now we strip that too. - - * It was tempting to say "git branch --set-upstream origin/master", - but that tells Git to arrange the local branch "origin/master" to - integrate with the currently checked out branch, which is highly - unlikely what the user meant. The option is deprecated; use the - new "--set-upstream-to" (with a short-and-sweet "-u") option - instead. - - * "git cherry-pick" learned the "--allow-empty-message" option to - allow it to replay a commit without any log message. - - * After "git cherry-pick -s" gave control back to the user asking - help to resolve conflicts, concluding "git commit" used to need to - be run with "-s" if the user wants to sign it off; now the command - leaves the sign-off line in the log template. - - * "git daemon" learned the "--access-hook" option to allow an - external command to decline service based on the client address, - repository path, etc. - - * "git difftool --dir-diff" learned to use symbolic links to prepare - a temporary copy of the working tree when available. - - * "git grep" learned to use a non-standard pattern type by default if - a configuration variable tells it to. - - * Accumulated updates to "git gui" has been merged. - - * "git log -g" learned the "--grep-reflog=<pattern>" option to limit - its output to commits with a reflog message that matches the given - pattern. - - * "git merge-base" learned the "--is-ancestor A B" option to tell if A is - an ancestor of B. The result is indicated by its exit status code. - - * "git mergetool" now allows users to override the actual command used - with the mergetool.$name.cmd configuration variable even for built-in - mergetool backends. - - * "git rebase -i" learned the "--edit-todo" option to open an editor - to edit the instruction sheet. - - -Foreign Interface - - * "git svn" has been updated to work with SVN 1.7. - - * "git p4" learned the "--conflicts" option to specify what to do when - encountering a conflict during "p4 submit". - - -Performance, Internal Implementation, etc. - - * Git ships with a fall-back regexp implementation for platforms with - buggy regexp library, but it was easy for people to keep using their - platform regexp by mistake. A new test has been added to check this. - - * The "check-docs" build target has been updated and greatly - simplified. - - * The test suite is run under MALLOC_CHECK_ when running with a glibc - that supports the feature. - - * The documentation in the TeXinfo format was using indented output - for materials meant to be examples that are better typeset in - monospace. - - * Compatibility wrapper around some mkdir(2) implementations that - reject parameters with trailing slash has been introduced. - - * Compatibility wrapper for systems that lack usable setitimer() has - been added. - - * The option parsing of "git checkout" had error checking, dwim and - defaulting missing options, all mixed in the code, and issuing an - appropriate error message with useful context was getting harder. - The code has been reorganized to allow giving a proper diagnosis - when the user says "git checkout -b -t foo bar" (e.g. "-t" is not a - good name for a branch). - - * Many internal uses of a "git merge-base" equivalent were only to see - if one commit fast-forwards to the other, which did not need the - full set of merge bases to be computed. They have been updated to - use less expensive checks. - - * The heuristics to detect and silently convert latin1 to utf8 when - we were told to use utf-8 in the log message has been transplanted - from "mailinfo" to "commit" and "commit-tree". - - * Messages given by "git <subcommand> -h" from many subcommands have - been marked for translation. - - -Also contains minor documentation updates and code clean-ups. - - -Fixes since v1.7.12 -------------------- - -Unless otherwise noted, all the fixes since v1.7.12 in the -maintenance track are contained in this release (see release notes -to them for details). - - * The attribute system may be asked for a path that itself or its - leading directories no longer exists in the working tree, and it is - fine if we cannot open .gitattribute file in such a case. Failure - to open per-directory .gitattributes with error status other than - ENOENT and ENOTDIR should be diagnosed, but it wasn't. - - * When looking for $HOME/.gitconfig etc., it is OK if we cannot read - them because they do not exist, but we did not diagnose existing - files that we cannot read. - - * When "git am" is fed an input that has multiple "Content-type: ..." - header, it did not grok charset= attribute correctly. - - * "git am" mishandled a patch attached as application/octet-stream - (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not - honored correctly. - - * "git blame MAKEFILE" run in a history that has "Makefile" but not - "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got - confused on a case insensitive filesystem and failed to do so. - - * Even during a conflicted merge, "git blame $path" always meant to - blame uncommitted changes to the "working tree" version; make it - more useful by showing cleanly merged parts as coming from the other - branch that is being merged. - - * It was unclear in the documentation for "git blame" that it is - unnecessary for users to use the "--follow" option. - - * Output from "git branch -v" contains "(no branch)" that could be - localized, but the code to align it along with the names of - branches was counting in bytes, not in display columns. - - * "git cherry-pick A C B" used to replay changes in A and then B and - then C if these three commits had committer timestamps in that - order, which is not what the user who said "A C B" naturally - expects. - - * A repository created with "git clone --single" had its fetch - refspecs set up just like a clone without "--single", leading the - subsequent "git fetch" to slurp all the other branches, defeating - the whole point of specifying "only this branch". - - * Documentation talked about "first line of commit log" when it meant - the title of the commit. The description was clarified by defining - how the title is decided and rewording the casual mention of "first - line" to "title". - - * "git cvsimport" did not thoroughly cleanse tag names that it - inferred from the names of the tags it obtained from CVS, which - caused "git tag" to barf and stop the import in the middle. - - * Earlier we made the diffstat summary line that shows the number of - lines added/deleted localizable, but it was found irritating having - to see them in various languages on a list whose discussion language - is English, and this change has been reverted. - - * "git fetch --all", when passed "--no-tags", did not honor the - "--no-tags" option while fetching from individual remotes (the same - issue existed with "--tags", but the combination "--all --tags" makes - much less sense than "--all --no-tags"). - - * "git fetch" over http had an old workaround for an unlikely server - misconfiguration; it turns out that this hurts debuggability of the - configuration in general, and has been reverted. - - * "git fetch" over http advertised that it supports "deflate", which - is much less common, and did not advertise the more common "gzip" on - its Accept-Encoding header. - - * "git fetch" over the dumb-http revision walker could segfault when - curl's multi interface was used. - - * "git gc --auto" notified the user that auto-packing has triggered - even under the "--quiet" option. - - * After "gitk" showed the contents of a tag, neither "Reread - references" nor "Reload" updated what is shown as the - contents of it when the user overwrote the tag with "git tag -f". - - * "git log --all-match --grep=A --grep=B" ought to show commits that - mention both A and B, but when these three options are used with - --author or --committer, it showed commits that mention either A or - B (or both) instead. - - * The "-Xours" backend option to "git merge -s recursive" was ignored - for binary files. - - * "git p4", when "--use-client-spec" and "--detect-branches" are used - together, misdetected branches. - - * "git receive-pack" (the counterpart to "git push") did not give - progress output while processing objects it received to the user - when run over the smart-http protocol. - - * When you misspell the command name you give to the "exec" action in - the "git rebase -i" instruction sheet you were told that 'rebase' is not a - git subcommand from "git rebase --continue". - - * The subcommand in "git remote" to remove a defined remote was - "rm" and the command did not take a fully-spelled "remove". - - * The interactive prompt that "git send-email" gives was error prone. It - asked "What e-mail address do you want to use?" with the address it - guessed (correctly) the user would want to use in its prompt, - tempting the user to say "y". But the response was taken as "No, - please use 'y' as the e-mail address instead", which is most - certainly not what the user meant. - - * "git show --format='%ci'" did not give the timestamp correctly for - commits created without human readable name on the "committer" line. - - * "git show --quiet" ought to be a synonym for "git show -s", but - wasn't. - - * "git submodule frotz" was not diagnosed as "frotz" being an unknown - subcommand to "git submodule"; the user instead got a complaint - that "git submodule status" was run with an unknown path "frotz". - - * "git status" honored the ignore=dirty settings in .gitmodules but - "git commit" didn't. - - * "gitweb" did not give the correct committer timezone in its feed - output due to a typo. diff --git a/third_party/git/Documentation/RelNotes/1.8.1.1.txt b/third_party/git/Documentation/RelNotes/1.8.1.1.txt deleted file mode 100644 index 6cde07ba290c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.1.1.txt +++ /dev/null @@ -1,87 +0,0 @@ -Git 1.8.1.1 Release Notes -========================= - -Fixes since v1.8.1 ------------------- - - * The attribute mechanism didn't allow limiting attributes to be - applied to only a single directory itself with "path/" like the - exclude mechanism does. - - * When attempting to read the XDG-style $HOME/.config/git/config and - finding that $HOME/.config/git is a file, we gave a wrong error - message, instead of treating the case as "a custom config file does - not exist there" and moving on. - - * After failing to create a temporary file using mkstemp(), failing - pathname was not reported correctly on some platforms. - - * http transport was wrong to ask for the username when the - authentication is done by certificate identity. - - * The behaviour visible to the end users was confusing, when they - attempt to kill a process spawned in the editor that was in turn - launched by Git with SIGINT (or SIGQUIT), as Git would catch that - signal and die. We ignore these signals now. - - * A child process that was killed by a signal (e.g. SIGINT) was - reported in an inconsistent way depending on how the process was - spawned by us, with or without a shell in between. - - * After "git add -N" and then writing a tree object out of the - index, the cache-tree data structure got corrupted. - - * "git apply" misbehaved when fixing whitespace breakages by removing - excess trailing blank lines in some corner cases. - - * A tar archive created by "git archive" recorded a directory in a - way that made NetBSD's implementation of "tar" sometimes unhappy. - - * When "git clone --separate-git-dir=$over_there" is interrupted, it - failed to remove the real location of the $GIT_DIR it created. - This was most visible when interrupting a submodule update. - - * "git fetch --mirror" and fetch that uses other forms of refspec - with wildcard used to attempt to update a symbolic ref that match - the wildcard on the receiving end, which made little sense (the - real ref that is pointed at by the symbolic ref would be updated - anyway). Symbolic refs no longer are affected by such a fetch. - - * The "log --graph" codepath fell into infinite loop in some - corner cases. - - * "git merge" started calling prepare-commit-msg hook like "git - commit" does some time ago, but forgot to pay attention to the exit - status of the hook. - - * "git pack-refs" that ran in parallel to another process that - created new refs had a race that can lose new ones. - - * When a line to be wrapped has a solid run of non space characters - whose length exactly is the wrap width, "git shortlog -w" failed - to add a newline after such a line. - - * The way "git svn" asked for password using SSH_ASKPASS and - GIT_ASKPASS was not in line with the rest of the system. - - * "gitweb", when sorting by age to show repositories with new - activities first, used to sort repositories with absolutely - nothing in it early, which was not very useful. - - * "gitweb", when sorting by age to show repositories with new - activities first, used to sort repositories with absolutely - nothing in it early, which was not very useful. - - * When autoconf is used, any build on a different commit always ran - "config.status --recheck" even when unnecessary. - - * Some scripted programs written in Python did not get updated when - PYTHON_PATH changed. - - * We have been carrying a translated and long-unmaintained copy of an - old version of the tutorial; removed. - - * Portability issues in many self-test scripts have been addressed. - - -Also contains other minor fixes and documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.8.1.2.txt b/third_party/git/Documentation/RelNotes/1.8.1.2.txt deleted file mode 100644 index 5ab7b18906f0..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.1.2.txt +++ /dev/null @@ -1,25 +0,0 @@ -Git 1.8.1.2 Release Notes -========================= - -Fixes since v1.8.1.1 --------------------- - - * An element on GIT_CEILING_DIRECTORIES list that does not name the - real path to a directory (i.e. a symbolic link) could have caused - the GIT_DIR discovery logic to escape the ceiling. - - * Command line completion for "tcsh" emitted an unwanted space - after completing a single directory name. - - * Command line completion leaked an unnecessary error message while - looking for possible matches with paths in <tree-ish>. - - * "git archive" did not record uncompressed size in the header when - streaming a zip archive, which confused some implementations of unzip. - - * When users spelled "cc:" in lowercase in the fake "header" in the - trailer part, "git send-email" failed to pick up the addresses from - there. As e-mail headers field names are case insensitive, this - script should follow suit and treat "cc:" and "Cc:" the same way. - -Also contains various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.8.1.3.txt b/third_party/git/Documentation/RelNotes/1.8.1.3.txt deleted file mode 100644 index 681cb35c0a3a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.1.3.txt +++ /dev/null @@ -1,47 +0,0 @@ -Git 1.8.1.3 Release Notes -========================= - -Fixes since v1.8.1.2 --------------------- - - * The attribute mechanism didn't allow limiting attributes to be - applied to only a single directory itself with "path/" like the - exclude mechanism does. The fix for this in 1.8.1.2 had - performance degradations. - - * Command line completion code was inadvertently made incompatible with - older versions of bash by using a newer array notation. - - * Scripts to test bash completion was inherently flaky as it was - affected by whatever random things the user may have on $PATH. - - * A fix was added to the build procedure to work around buggy - versions of ccache broke the auto-generation of dependencies, which - unfortunately is still relevant because some people use ancient - distros. - - * We used to stuff "user@" and then append what we read from - /etc/mailname to come up with a default e-mail ident, but a bug - lost the "user@" part. - - * "git am" did not parse datestamp correctly from Hg generated patch, - when it is run in a locale outside C (or en). - - * Attempt to "branch --edit-description" an existing branch, while - being on a detached HEAD, errored out. - - * "git cherry-pick" did not replay a root commit to an unborn branch. - - * We forgot to close the file descriptor reading from "gpg" output, - killing "git log --show-signature" on a long history. - - * "git rebase --preserve-merges" lost empty merges in recent versions - of Git. - - * Rebasing the history of superproject with change in the submodule - has been broken since v1.7.12. - - * A failure to push due to non-ff while on an unborn branch - dereferenced a NULL pointer when showing an error message. - -Also contains various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.8.1.4.txt b/third_party/git/Documentation/RelNotes/1.8.1.4.txt deleted file mode 100644 index 22af1d164326..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.1.4.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git 1.8.1.4 Release Notes -========================= - -Fixes since v1.8.1.3 --------------------- - - * "git imap-send" talking over imaps:// did make sure it received a - valid certificate from the other end, but did not check if the - certificate matched the host it thought it was talking to. - -Also contains various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.8.1.5.txt b/third_party/git/Documentation/RelNotes/1.8.1.5.txt deleted file mode 100644 index efa68aef226c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.1.5.txt +++ /dev/null @@ -1,47 +0,0 @@ -Git 1.8.1.5 Release Notes -========================= - -Fixes since v1.8.1.4 --------------------- - - * Given a string with a multi-byte character that begins with '-' on - the command line where an option is expected, the option parser - used just one byte of the unknown letter when reporting an error. - - * In v1.8.1, the attribute parser was tightened too restrictive to - error out upon seeing an entry that begins with an ! (exclamation), - which may confuse users to expect a "negative match", which does - not exist. This has been demoted to a warning; such an entry is - still ignored. - - * "git apply --summary" has been taught to make sure the similarity - value shown in its output is sensible, even when the input had a - bogus value. - - * "git clean" showed what it was going to do, but sometimes ended - up finding that it was not allowed to do so, which resulted in a - confusing output (e.g. after saying that it will remove an - untracked directory, it found an embedded git repository there - which it is not allowed to remove). It now performs the actions - and then reports the outcome more faithfully. - - * "git clone" used to allow --bare and --separate-git-dir=$there - options at the same time, which was nonsensical. - - * "git cvsimport" mishandled timestamps at DST boundary. - - * We used to have an arbitrary 32 limit for combined diff input, - resulting in incorrect number of leading colons shown when showing - the "--raw --cc" output. - - * The smart HTTP clients forgot to verify the content-type that comes - back from the server side to make sure that the request is being - handled properly. - - * "git help remote-helpers" failed to find the documentation. - - * "gitweb" pages served over HTTPS, when configured to show picon or - gravatar, referred to these external resources to be fetched via - HTTP, resulting in mixed contents warning in browsers. - -Also contains various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.8.1.6.txt b/third_party/git/Documentation/RelNotes/1.8.1.6.txt deleted file mode 100644 index c15cf2e80545..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.1.6.txt +++ /dev/null @@ -1,39 +0,0 @@ -Git 1.8.1.6 Release Notes -========================= - -Fixes since v1.8.1.5 --------------------- - - * An earlier change to the attribute system introduced at v1.8.1.2 by - mistake stopped a pattern "dir" (without trailing slash) from - matching a directory "dir" (it only wanted to allow pattern "dir/" - to also match). - - * The code to keep track of what directory names are known to Git on - platforms with case insensitive filesystems can get confused upon a - hash collision between these pathnames and looped forever. - - * When the "--prefix" option is used to "checkout-index", the code - did not pick the correct output filter based on the attribute - setting. - - * Annotated tags outside refs/tags/ hierarchy were not advertised - correctly to the ls-remote and fetch with recent version of Git. - - * The logic used by "git diff -M --stat" to shorten the names of - files before and after a rename did not work correctly when the - common prefix and suffix between the two filenames overlapped. - - * "git update-index -h" did not do the usual "-h(elp)" thing. - - * perl/Git.pm::cat_blob slurped everything in core only to write it - out to a file descriptor, which was not a very smart thing to do. - - * The SSL peer verification done by "git imap-send" did not ask for - Server Name Indication (RFC 4366), failing to connect SSL/TLS - sites that serve multiple hostnames on a single IP. - - * "git bundle verify" did not say "records a complete history" for a - bundle that does not have any prerequisites. - -Also contains various documentation fixes. diff --git a/third_party/git/Documentation/RelNotes/1.8.1.txt b/third_party/git/Documentation/RelNotes/1.8.1.txt deleted file mode 100644 index d6f9555923ae..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.1.txt +++ /dev/null @@ -1,241 +0,0 @@ -Git v1.8.1 Release Notes -======================== - -Backward compatibility notes ----------------------------- - -In the next major release (not *this* one), we will change the -behavior of the "git push" command. - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). We will use the "simple" semantics that pushes the -current branch to the branch with the same name, only when the current -branch is set to integrate with that remote branch. There is a user -preference configuration variable "push.default" to change this, and -"git push" will warn about the upcoming change until you set this -variable in this release. - -"git branch --set-upstream" is deprecated and may be removed in a -relatively distant future. "git branch [-u|--set-upstream-to]" has -been introduced with a saner order of arguments to replace it. - - -Updates since v1.8.0 --------------------- - -UI, Workflows & Features - - * Command-line completion scripts for tcsh and zsh have been added. - - * "git-prompt" scriptlet (in contrib/completion) can be told to paint - pieces of the hints in the prompt string in colors. - - * Some documentation pages that used to ship only in the plain text - format are now formatted in HTML as well. - - * We used to have a workaround for a bug in ancient "less" that - causes it to exit without any output when the terminal is resized. - The bug has been fixed in "less" version 406 (June 2007), and the - workaround has been removed in this release. - - * When "git checkout" checks out a branch, it tells the user how far - behind (or ahead) the new branch is relative to the remote tracking - branch it builds upon. The message now also advises how to sync - them up by pushing or pulling. This can be disabled with the - advice.statusHints configuration variable. - - * "git config --get" used to diagnose presence of multiple - definitions of the same variable in the same configuration file as - an error, but it now applies the "last one wins" rule used by the - internal configuration logic. Strictly speaking, this may be an - API regression but it is expected that nobody will notice it in - practice. - - * A new configuration variable "diff.context" can be used to - give the default number of context lines in the patch output, to - override the hardcoded default of 3 lines. - - * "git format-patch" learned the "--notes=<ref>" option to give - notes for the commit after the three-dash lines in its output. - - * "git log -p -S<string>" now looks for the <string> after applying - the textconv filter (if defined); earlier it inspected the contents - of the blobs without filtering. - - * "git log --grep=<pcre>" learned to honor the "grep.patterntype" - configuration set to "perl". - - * "git replace -d <object>" now interprets <object> as an extended - SHA-1 (e.g. HEAD~4 is allowed), instead of only accepting full hex - object name. - - * "git rm $submodule" used to punt on removing a submodule working - tree to avoid losing the repository embedded in it. Because - recent git uses a mechanism to separate the submodule repository - from the submodule working tree, "git rm" learned to detect this - case and removes the submodule working tree when it is safe to do so. - - * "git send-email" used to prompt for the sender address, even when - the committer identity is well specified (e.g. via user.name and - user.email configuration variables). The command no longer gives - this prompt when not necessary. - - * "git send-email" did not allow non-address garbage strings to - appear after addresses on Cc: lines in the patch files (and when - told to pick them up to find more recipients), e.g. - - Cc: Stable Kernel <stable@k.org> # for v3.2 and up - - The command now strips " # for v3.2 and up" part before adding the - remainder of this line to the list of recipients. - - * "git submodule add" learned to add a new submodule at the same - path as the path where an unrelated submodule was bound to in an - existing revision via the "--name" option. - - * "git submodule sync" learned the "--recursive" option. - - * "diff.submodule" configuration variable can be used to give custom - default value to the "git diff --submodule" option. - - * "git symbolic-ref" learned the "-d $symref" option to delete the - named symbolic ref, which is more intuitive way to spell it than - "update-ref -d --no-deref $symref". - - -Foreign Interface - - * "git cvsimport" can be told to record timezones (other than GMT) - per-author via its author info file. - - * The remote helper interface to interact with subversion - repositories (one of the GSoC 2012 projects) has been merged. - - * A new remote-helper interface for Mercurial has been added to - contrib/remote-helpers. - - * The documentation for git(1) was pointing at a page at an external - site for the list of authors that no longer existed. The link has - been updated to point at an alternative site. - - -Performance, Internal Implementation, etc. - - * Compilation on Cygwin with newer header files are supported now. - - * A couple of low-level implementation updates on MinGW. - - * The logic to generate the initial advertisement from "upload-pack" - (i.e. what is invoked by "git fetch" on the other side of the - connection) to list what refs are available in the repository has - been optimized. - - * The logic to find set of attributes that match a given path has - been optimized. - - * Use preloadindex in "git diff-index" and "git update-index", which - has a nice speedup on systems with slow stat calls (and even on - Linux). - - -Also contains minor documentation updates and code clean-ups. - - -Fixes since v1.8.0 ------------------- - -Unless otherwise noted, all the fixes since v1.8.0 in the maintenance -track are contained in this release (see release notes to them for -details). - - * The configuration parser had an unnecessary hardcoded limit on - variable names that was not checked consistently. - - * The "say" function in the test scaffolding incorrectly allowed - "echo" to interpret "\a" as if it were a C-string asking for a - BEL output. - - * "git mergetool" feeds /dev/null as a common ancestor when dealing - with an add/add conflict, but p4merge backend cannot handle - it. Work it around by passing a temporary empty file. - - * "git log -F -E --grep='<ere>'" failed to use the given <ere> - pattern as extended regular expression, and instead looked for the - string literally. - - * "git grep -e pattern <tree>" asked the attribute system to read - "<tree>:.gitattributes" file in the working tree, which was - nonsense. - - * A symbolic ref refs/heads/SYM was not correctly removed with "git - branch -d SYM"; the command removed the ref pointed by SYM - instead. - - * Update "remote tracking branch" in the documentation to - "remote-tracking branch". - - * "git pull --rebase" run while the HEAD is detached tried to find - the upstream branch of the detached HEAD (which by definition - does not exist) and emitted unnecessary error messages. - - * The refs/replace hierarchy was not mentioned in the - repository-layout docs. - - * Various rfc2047 quoting issues around a non-ASCII name on the - From: line in the output from format-patch have been corrected. - - * Sometimes curl_multi_timeout() function suggested a wrong timeout - value when there is no file descriptor to wait on and the http - transport ended up sleeping for minutes in select(2) system call. - A workaround has been added for this. - - * For a fetch refspec (or the result of applying wildcard on one), - we always want the RHS to map to something inside "refs/" - hierarchy, but the logic to check it was not exactly right. - (merge 5c08c1f jc/maint-fetch-tighten-refname-check later to maint). - - * "git diff -G<pattern>" did not honor textconv filter when looking - for changes. - - * Some HTTP servers ask for auth only during the actual packing phase - (not in ls-remote phase); this is not really a recommended - configuration, but the clients used to fail to authenticate with - such servers. - (merge 2e736fd jk/maint-http-half-auth-fetch later to maint). - - * "git p4" used to try expanding malformed "$keyword$" that spans - across multiple lines. - - * Syntax highlighting in "gitweb" was not quite working. - - * RSS feed from "gitweb" had a xss hole in its title output. - - * "git config --path $key" segfaulted on "[section] key" (a boolean - "true" spelled without "=", not "[section] key = true"). - - * "git checkout -b foo" while on an unborn branch did not say - "Switched to a new branch 'foo'" like other cases. - - * Various codepaths have workaround for a common misconfiguration to - spell "UTF-8" as "utf8", but it was not used uniformly. Most - notably, mailinfo (which is used by "git am") lacked this support. - - * We failed to mention a file without any content change but whose - permission bit was modified, or (worse yet) a new file without any - content in the "git diff --stat" output. - - * When "--stat-count" hides a diffstat for binary contents, the total - number of added and removed lines at the bottom was computed - incorrectly. - - * When "--stat-count" hides a diffstat for unmerged paths, the total - number of affected files at the bottom of the "diff --stat" output - was computed incorrectly. - - * "diff --shortstat" miscounted the total number of affected files - when there were unmerged paths. - - * "update-ref -d --deref SYM" to delete a ref through a symbolic ref - that points to it did not remove it correctly. diff --git a/third_party/git/Documentation/RelNotes/1.8.2.1.txt b/third_party/git/Documentation/RelNotes/1.8.2.1.txt deleted file mode 100644 index 769a6fc06c9e..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.2.1.txt +++ /dev/null @@ -1,115 +0,0 @@ -Git v1.8.2.1 Release Notes -========================== - -Fixes since v1.8.2 ------------------- - - * An earlier change to the attribute system introduced at v1.8.1.2 by - mistake stopped a pattern "dir" (without trailing slash) from - matching a directory "dir" (it only wanted to allow pattern "dir/" - to also match). - - * Verification of signed tags were not done correctly when not in C - or en/US locale. - - * 'git commit -m "$msg"' used to add an extra newline even when - $msg already ended with one. - - * The "--match=<pattern>" option of "git describe", when used with - "--all" to allow refs that are not annotated tags to be used as a - base of description, did not restrict the output from the command - to those that match the given pattern. - - * An aliased command spawned from a bare repository that does not say - it is bare with "core.bare = yes" is treated as non-bare by mistake. - - * When "format-patch" quoted a non-ascii strings on the header files, - it incorrectly applied rfc2047 and chopped a single character in - the middle of it. - - * "git archive" reports a failure when asked to create an archive out - of an empty tree. It would be more intuitive to give an empty - archive back in such a case. - - * "git tag -f <tag>" always said "Updated tag '<tag>'" even when - creating a new tag (i.e. not overwriting nor updating). - - * "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and - instead the parser kept reading beyond the end of the string. - - * Annotated tags outside refs/tags/ hierarchy were not advertised - correctly to the ls-remote and fetch with recent version of Git. - - * The code to keep track of what directory names are known to Git on - platforms with case insensitive filesystems can get confused upon a - hash collision between these pathnames and looped forever. - - * The logic used by "git diff -M --stat" to shorten the names of - files before and after a rename did not work correctly when the - common prefix and suffix between the two filenames overlapped. - - * "git submodule update", when recursed into sub-submodules, did not - accumulate the prefix paths. - - * "git am $maildir/" applied messages in an unexpected order; sort - filenames read from the maildir/ in a way that is more likely to - sort messages in the order the writing MUA meant to, by sorting - numeric segment in numeric order and non-numeric segment in - alphabetical order. - - * When export-subst is used, "zip" output recorded incorrect - size of the file. - - * Some platforms and users spell UTF-8 differently; retry with the - most official "UTF-8" when the system does not understand the - user-supplied encoding name that are the common alternative - spellings of UTF-8. - - * "git branch" did not bother to check nonsense command line - parameters and issue errors in many cases. - - * "git update-index -h" did not do the usual "-h(elp)" thing. - - * perl/Git.pm::cat_blob slurped everything in core only to write it - out to a file descriptor, which was not a very smart thing to do. - - * The SSL peer verification done by "git imap-send" did not ask for - Server Name Indication (RFC 4366), failing to connect SSL/TLS - sites that serve multiple hostnames on a single IP. - - * "git index-pack" had a buffer-overflow while preparing an - informational message when the translated version of it was too - long. - - * Clarify in the documentation "what" gets pushed to "where" when the - command line to "git push" does not say these explicitly. - - * In "git reflog expire", REACHABLE bit was not cleared from the - correct objects. - - * The "--color=<when>" argument to the commands in the diff family - was described poorly. - - * The arguments given to pre-rebase hook were not documented. - - * The v4 index format was not documented. - - * The "--match=<pattern>" argument "git describe" takes uses glob - pattern but it wasn't obvious from the documentation. - - * Some sources failed to compile on systems that lack NI_MAXHOST in - their system header (e.g. z/OS). - - * Add an example use of "--env-filter" in "filter-branch" - documentation. - - * "git bundle verify" did not say "records a complete history" for a - bundle that does not have any prerequisites. - - * In the v1.8.0 era, we changed symbols that do not have to be global - to file scope static, but a few functions in graph.c were used by - CGit from sideways bypassing the entry points of the API the - in-tree users use. - - * "git merge-tree" had a typo in the logic to detect d/f conflicts, - which caused it to segfault in some cases. diff --git a/third_party/git/Documentation/RelNotes/1.8.2.2.txt b/third_party/git/Documentation/RelNotes/1.8.2.2.txt deleted file mode 100644 index 708df1ae196c..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.2.2.txt +++ /dev/null @@ -1,61 +0,0 @@ -Git v1.8.2.2 Release Notes -========================== - -Fixes since v1.8.2.1 --------------------- - - * Zsh completion forgot that '%' character used to signal untracked - files needs to be escaped with another '%'. - - * A commit object whose author or committer ident are malformed - crashed some code that trusted that a name, an email and an - timestamp can always be found in it. - - * The new core.commentchar configuration was not applied to a few - places. - - * "git pull --rebase" did not pass "-v/-q" options to underlying - "git rebase". - - * When receive-pack detects error in the pack header it received in - order to decide which of unpack-objects or index-pack to run, it - returned without closing the error stream, which led to a hang - sideband thread. - - * "git diff --diff-algorithm=algo" was understood by the command line - parser, but "git diff --diff-algorithm algo" was not. - - * "git log -S/-G" started paying attention to textconv filter, but - there was no way to disable this. Make it honor --no-textconv - option. - - * "git merge $(git rev-parse v1.8.2)" behaved quite differently from - "git merge v1.8.2", as if v1.8.2 were written as v1.8.2^0 and did - not pay much attention to the annotated tag payload. Make the code - notice the type of the tag object, in addition to the dwim_ref() - based classification the current code uses (i.e. the name appears - in refs/tags/) to decide when to special case merging of tags. - - * "git cherry-pick" and "git revert" can take more than one commit - on the command line these days, but it was not mentioned on the usage - text. - - * Perl scripts like "git-svn" closed (not redirecting to /dev/null) - the standard error stream, which is not a very smart thing to do. - Later open may return file descriptor #2 for unrelated purpose, and - error reporting code may write into them. - - * "git apply --whitespace=fix" was not prepared to see a line getting - longer after fixing whitespaces (e.g. tab-in-indent aka Python). - - * "git diff/log --cc" did not work well with options that ignore - whitespace changes. - - * Documentation on setting up a http server that requires - authentication only on the push but not fetch has been clarified. - - * A few bugfixes to "git rerere" working on corner case merge - conflicts have been applied. - - * "git bundle" did not like a bundle created using a commit without - any message as its one of the prerequisites. diff --git a/third_party/git/Documentation/RelNotes/1.8.2.3.txt b/third_party/git/Documentation/RelNotes/1.8.2.3.txt deleted file mode 100644 index 613948251add..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.2.3.txt +++ /dev/null @@ -1,19 +0,0 @@ -Git v1.8.2.3 Release Notes -========================== - -Fixes since v1.8.2.2 --------------------- - - * "rev-list --stdin" and friends kept bogus pointers into the input - buffer around as human readable object names. This was not a - huge problem but was exposed by a new change that uses these - names in error output. - - * When "git difftool" drove "kdiff3", it mistakenly passed --auto - option that was meant while resolving merge conflicts. - - * "git remote add" command did not diagnose extra command line - arguments as an error and silently ignored them. - -Also contains a handful of trivial code clean-ups, documentation -updates, updates to the test suite, etc. diff --git a/third_party/git/Documentation/RelNotes/1.8.2.txt b/third_party/git/Documentation/RelNotes/1.8.2.txt deleted file mode 100644 index fc606ae11623..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.2.txt +++ /dev/null @@ -1,495 +0,0 @@ -Git v1.8.2 Release Notes -======================== - -Backward compatibility notes (this release) -------------------------------------------- - -"git push $there tag v1.2.3" used to allow replacing a tag v1.2.3 -that already exists in the repository $there, if the rewritten tag -you are pushing points at a commit that is a descendant of a commit -that the old tag v1.2.3 points at. This was found to be error prone -and starting with this release, any attempt to update an existing -ref under refs/tags/ hierarchy will fail, without "--force". - -When "git add -u" and "git add -A" that does not specify what paths -to add on the command line is run from inside a subdirectory, the -scope of the operation has always been limited to the subdirectory. -Many users found this counter-intuitive, given that "git commit -a" -and other commands operate on the entire tree regardless of where you -are. In this release, these commands give a warning message that -suggests the users to use "git add -u/-A ." when they want to limit -the scope to the current directory; doing so will squelch the message, -while training their fingers. - - -Backward compatibility notes (for Git 2.0) ------------------------------------------- - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). In Git 2.0, the default will change to the "simple" -semantics that pushes the current branch to the branch with the same -name, only when the current branch is set to integrate with that -remote branch. There is a user preference configuration variable -"push.default" to change this. If you are an old-timer who is used -to the "matching" semantics, you can set it to "matching" to keep the -traditional behaviour. If you want to live in the future early, -you can set it to "simple" today without waiting for Git 2.0. - -When "git add -u" and "git add -A", that does not specify what paths -to add on the command line is run from inside a subdirectory, these -commands will operate on the entire tree in Git 2.0 for consistency -with "git commit -a" and other commands. Because there will be no -mechanism to make "git add -u" behave as if "git add -u .", it is -important for those who are used to "git add -u" (without pathspec) -updating the index only for paths in the current subdirectory to start -training their fingers to explicitly say "git add -u ." when they mean -it before Git 2.0 comes. - - -Updates since v1.8.1 --------------------- - -UI, Workflows & Features - - * Initial ports to QNX and z/OS UNIX System Services have started. - - * Output from the tests is coloured using "green is okay, yellow is - questionable, red is bad and blue is informative" scheme. - - * Mention of "GIT/Git/git" in the documentation have been updated to - be more uniform and consistent. The name of the system and the - concept it embodies is "Git"; the command the users type is "git". - All-caps "GIT" was merely a way to imitate "Git" typeset in small - caps in our ASCII text only documentation and to be avoided. - - * The completion script (in contrib/completion) used to let the - default completer to suggest pathnames, which gave too many - irrelevant choices (e.g. "git add" would not want to add an - unmodified path). It learnt to use a more git-aware logic to - enumerate only relevant ones. - - * In bare repositories, "git shortlog" and other commands now read - mailmap files from the tip of the history, to help running these - tools in server settings. - - * Color specifiers, e.g. "%C(blue)Hello%C(reset)", used in the - "--format=" option of "git log" and friends can be disabled when - the output is not sent to a terminal by prefixing them with - "auto,", e.g. "%C(auto,blue)Hello%C(auto,reset)". - - * Scripts can ask Git that wildcard patterns in pathspecs they give do - not have any significance, i.e. take them as literal strings. - - * The patterns in .gitignore and .gitattributes files can have **/, - as a pattern that matches 0 or more levels of subdirectory. - E.g. "foo/**/bar" matches "bar" in "foo" itself or in a - subdirectory of "foo". - - * When giving arguments without "--" disambiguation, object names - that come earlier on the command line must not be interpretable as - pathspecs and pathspecs that come later on the command line must - not be interpretable as object names. This disambiguation rule has - been tweaked so that ":/" (no other string before or after) is - always interpreted as a pathspec; "git cmd -- :/" is no longer - needed, you can just say "git cmd :/". - - * Various "hint" lines Git gives when it asks the user to edit - messages in the editor are commented out with '#' by default. The - core.commentchar configuration variable can be used to customize - this '#' to a different character. - - * "git add -u" and "git add -A" without pathspec issues warning to - make users aware that they are only operating on paths inside the - subdirectory they are in. Use ":/" (everything from the top) or - "." (everything from the $cwd) to disambiguate. - - * "git blame" (and "git diff") learned the "--no-follow" option. - - * "git branch" now rejects some nonsense combinations of command line - arguments (e.g. giving more than one branch name to rename) with - more case-specific error messages. - - * "git check-ignore" command to help debugging .gitignore files has - been added. - - * "git cherry-pick" can be used to replay a root commit to an unborn - branch. - - * "git commit" can be told to use --cleanup=whitespace by setting the - configuration variable commit.cleanup to 'whitespace'. - - * "git diff" and other Porcelain commands can be told to use a - non-standard algorithm by setting diff.algorithm configuration - variable. - - * "git fetch --mirror" and fetch that uses other forms of refspec - with wildcard used to attempt to update a symbolic ref that match - the wildcard on the receiving end, which made little sense (the - real ref that is pointed at by the symbolic ref would be updated - anyway). Symbolic refs no longer are affected by such a fetch. - - * "git format-patch" now detects more cases in which a whole branch - is being exported, and uses the description for the branch, when - asked to write a cover letter for the series. - - * "git format-patch" learned "-v $count" option, and prepends a - string "v$count-" to the names of its output files, and also - automatically sets the subject prefix to "PATCH v$count". This - allows patches from rerolled series to be stored under different - names and makes it easier to reuse cover letter messages. - - * "git log" and friends can be told with --use-mailmap option to - rewrite the names and email addresses of people using the mailmap - mechanism. - - * "git log --cc --graph" now shows the combined diff output with the - ancestry graph. - - * "git log --grep=<pattern>" honors i18n.logoutputencoding to look - for the pattern after fixing the log message to the specified - encoding. - - * "git mergetool" and "git difftool" learned to list the available - tool backends in a more consistent manner. - - * "git mergetool" is aware of TortoiseGitMerge now and uses it over - TortoiseMerge when available. - - * "git push" now requires "-f" to update a tag, even if it is a - fast-forward, as tags are meant to be fixed points. - - * Error messages from "git push" when it stops to prevent remote refs - from getting overwritten by mistake have been improved to explain - various situations separately. - - * "git push" will stop without doing anything if the new "pre-push" - hook exists and exits with a failure. - - * When "git rebase" fails to generate patches to be applied (e.g. due - to oom), it failed to detect the failure and instead behaved as if - there were nothing to do. A workaround to use a temporary file has - been applied, but we probably would want to revisit this later, as - it hurts the common case of not failing at all. - - * Input and preconditions to "git reset" has been loosened where - appropriate. "git reset $fromtree Makefile" requires $fromtree to - be any tree (it used to require it to be a commit), for example. - "git reset" (without options or parameters) used to error out when - you do not have any commits in your history, but it now gives you - an empty index (to match non-existent commit you are not even on). - - * "git status" says what branch is being bisected or rebased when - able, not just "bisecting" or "rebasing". - - * "git submodule" started learning a new mode to integrate with the - tip of the remote branch (as opposed to integrating with the commit - recorded in the superproject's gitlink). - - * "git upload-pack" which implements the service "ls-remote" and - "fetch" talk to can be told to hide ref hierarchies the server - side internally uses (and that clients have no business learning - about) with transfer.hiderefs configuration. - - -Foreign Interface - - * "git fast-export" has been updated for its use in the context of - the remote helper interface. - - * A new remote helper to interact with bzr has been added to contrib/. - - * "git p4" got various bugfixes around its branch handling. It is - also made usable with Python 2.4/2.5. In addition, its various - portability issues for Cygwin have been addressed. - - * The remote helper to interact with Hg in contrib/ has seen a few - fixes. - - -Performance, Internal Implementation, etc. - - * "git fsck" has been taught to be pickier about entries in tree - objects that should not be there, e.g. ".", ".git", and "..". - - * Matching paths with common forms of pathspecs that contain wildcard - characters has been optimized further. - - * We stopped paying attention to $GIT_CONFIG environment that points - at a single configuration file from any command other than "git config" - quite a while ago, but "git clone" internally set, exported, and - then unexported the variable during its operation unnecessarily. - - * "git reset" internals has been reworked and should be faster in - general. We tried to be careful not to break any behaviour but - there could be corner cases, especially when running the command - from a conflicted state, that we may have missed. - - * The implementation of "imap-send" has been updated to reuse xml - quoting code from http-push codepath, and lost a lot of unused - code. - - * There is a simple-minded checker for the test scripts in t/ - directory to catch most common mistakes (it is not enabled by - default). - - * You can build with USE_WILDMATCH=YesPlease to use a replacement - implementation of pattern matching logic used for pathname-like - things, e.g. refnames and paths in the repository. This new - implementation is not expected change the existing behaviour of Git - in this release, except for "git for-each-ref" where you can now - say "refs/**/master" and match with both refs/heads/master and - refs/remotes/origin/master. We plan to use this new implementation - in wider places (e.g. "git ls-files '**/Makefile' may find Makefile - at the top-level, and "git log '**/t*.sh'" may find commits that - touch a shell script whose name begins with "t" at any level) in - future versions of Git, but we are not there yet. By building with - USE_WILDMATCH, using the resulting Git daily and reporting when you - find breakages, you can help us get closer to that goal. - - * Some reimplementations of Git do not write all the stat info back - to the index due to their implementation limitations (e.g. jgit). - A configuration option can tell Git to ignore changes to most of - the stat fields and only pay attention to mtime and size, which - these implementations can reliably update. This can be used to - avoid excessive revalidation of contents. - - * Some platforms ship with old version of expat where xmlparse.h - needs to be included instead of expat.h; the build procedure has - been taught about this. - - * "make clean" on platforms that cannot compute header dependencies - on the fly did not work with implementations of "rm" that do not - like an empty argument list. - -Also contains minor documentation updates and code clean-ups. - - -Fixes since v1.8.1 ------------------- - -Unless otherwise noted, all the fixes since v1.8.1 in the maintenance -track are contained in this release (see release notes to them for -details). - - * An element on GIT_CEILING_DIRECTORIES list that does not name the - real path to a directory (i.e. a symbolic link) could have caused - the GIT_DIR discovery logic to escape the ceiling. - - * When attempting to read the XDG-style $HOME/.config/git/config and - finding that $HOME/.config/git is a file, we gave a wrong error - message, instead of treating the case as "a custom config file does - not exist there" and moving on. - - * The behaviour visible to the end users was confusing, when they - attempt to kill a process spawned in the editor that was in turn - launched by Git with SIGINT (or SIGQUIT), as Git would catch that - signal and die. We ignore these signals now. - (merge 0398fc34 pf/editor-ignore-sigint later to maint). - - * A child process that was killed by a signal (e.g. SIGINT) was - reported in an inconsistent way depending on how the process was - spawned by us, with or without a shell in between. - - * After failing to create a temporary file using mkstemp(), failing - pathname was not reported correctly on some platforms. - - * We used to stuff "user@" and then append what we read from - /etc/mailname to come up with a default e-mail ident, but a bug - lost the "user@" part. - - * The attribute mechanism didn't allow limiting attributes to be - applied to only a single directory itself with "path/" like the - exclude mechanism does. The initial implementation of this that - was merged to 'maint' and 1.8.1.2 was with a severe performance - degradations and needs to merge a fix-up topic. - - * The smart HTTP clients forgot to verify the content-type that comes - back from the server side to make sure that the request is being - handled properly. - - * "git am" did not parse datestamp correctly from Hg generated patch, - when it is run in a locale outside C (or en). - - * "git apply" misbehaved when fixing whitespace breakages by removing - excess trailing blank lines. - - * "git apply --summary" has been taught to make sure the similarity - value shown in its output is sensible, even when the input had a - bogus value. - - * A tar archive created by "git archive" recorded a directory in a - way that made NetBSD's implementation of "tar" sometimes unhappy. - - * "git archive" did not record uncompressed size in the header when - streaming a zip archive, which confused some implementations of unzip. - - * "git archive" did not parse configuration values in tar.* namespace - correctly. - (merge b3873c3 jk/config-parsing-cleanup later to maint). - - * Attempt to "branch --edit-description" an existing branch, while - being on a detached HEAD, errored out. - - * "git clean" showed what it was going to do, but sometimes end up - finding that it was not allowed to do so, which resulted in a - confusing output (e.g. after saying that it will remove an - untracked directory, it found an embedded git repository there - which it is not allowed to remove). It now performs the actions - and then reports the outcome more faithfully. - - * When "git clone --separate-git-dir=$over_there" is interrupted, it - failed to remove the real location of the $GIT_DIR it created. - This was most visible when interrupting a submodule update. - - * "git cvsimport" mishandled timestamps at DST boundary. - - * We used to have an arbitrary 32 limit for combined diff input, - resulting in incorrect number of leading colons shown when showing - the "--raw --cc" output. - - * "git fetch --depth" was broken in at least three ways. The - resulting history was deeper than specified by one commit, it was - unclear how to wipe the shallowness of the repository with the - command, and documentation was misleading. - (merge cfb70e1 nd/fetch-depth-is-broken later to maint). - - * "git log --all -p" that walked refs/notes/textconv/ ref can later - try to use the textconv data incorrectly after it gets freed. - - * We forgot to close the file descriptor reading from "gpg" output, - killing "git log --show-signature" on a long history. - - * The way "git svn" asked for password using SSH_ASKPASS and - GIT_ASKPASS was not in line with the rest of the system. - - * The --graph code fell into infinite loop when asked to do what the - code did not expect. - - * http transport was wrong to ask for the username when the - authentication is done by certificate identity. - - * "git pack-refs" that ran in parallel to another process that - created new refs had a nasty race. - - * Rebasing the history of superproject with change in the submodule - has been broken since v1.7.12. - - * After "git add -N" and then writing a tree object out of the - index, the cache-tree data structure got corrupted. - - * "git clone" used to allow --bare and --separate-git-dir=$there - options at the same time, which was nonsensical. - - * "git rebase --preserve-merges" lost empty merges in recent versions - of Git. - - * "git merge --no-edit" computed who were involved in the work done - on the side branch, even though that information is to be discarded - without getting seen in the editor. - - * "git merge" started calling prepare-commit-msg hook like "git - commit" does some time ago, but forgot to pay attention to the exit - status of the hook. - - * A failure to push due to non-ff while on an unborn branch - dereferenced a NULL pointer when showing an error message. - - * When users spell "cc:" in lowercase in the fake "header" in the - trailer part, "git send-email" failed to pick up the addresses from - there. As e-mail headers field names are case insensitive, this - script should follow suit and treat "cc:" and "Cc:" the same way. - - * Output from "git status --ignored" showed an unexpected interaction - with "--untracked". - - * "gitweb", when sorting by age to show repositories with new - activities first, used to sort repositories with absolutely - nothing in it early, which was not very useful. - - * "gitweb"'s code to sanitize control characters before passing it to - "highlight" filter lost known-to-be-safe control characters by - mistake. - - * "gitweb" pages served over HTTPS, when configured to show picon or - gravatar, referred to these external resources to be fetched via - HTTP, resulting in mixed contents warning in browsers. - - * When a line to be wrapped has a solid run of non space characters - whose length exactly is the wrap width, "git shortlog -w" failed - to add a newline after such a line. - - * Command line completion leaked an unnecessary error message while - looking for possible matches with paths in <tree-ish>. - - * Command line completion for "tcsh" emitted an unwanted space - after completing a single directory name. - - * Command line completion code was inadvertently made incompatible with - older versions of bash by using a newer array notation. - - * "git push" was taught to refuse updating the branch that is - currently checked out long time ago, but the user manual was left - stale. - (merge 50995ed wk/man-deny-current-branch-is-default-these-days later to maint). - - * Some shells do not behave correctly when IFS is unset; work it - around by explicitly setting it to the default value. - - * Some scripted programs written in Python did not get updated when - PYTHON_PATH changed. - (cherry-pick 96a4647fca54031974cd6ad1 later to maint). - - * When autoconf is used, any build on a different commit always ran - "config.status --recheck" even when unnecessary. - - * A fix was added to the build procedure to work around buggy - versions of ccache broke the auto-generation of dependencies, which - unfortunately is still relevant because some people use ancient - distros. - - * The autoconf subsystem passed --mandir down to generated - config.mak.autogen but forgot to do the same for --htmldir. - (merge 55d9bf0 ct/autoconf-htmldir later to maint). - - * A change made on v1.8.1.x maintenance track had a nasty regression - to break the build when autoconf is used. - (merge 7f1b697 jn/less-reconfigure later to maint). - - * We have been carrying a translated and long-unmaintained copy of an - old version of the tutorial; removed. - - * t0050 had tests expecting failures from a bug that was fixed some - time ago. - - * t4014, t9502 and t0200 tests had various portability issues that - broke on OpenBSD. - - * t9020 and t3600 tests had various portability issues. - - * t9200 runs "cvs init" on a directory that already exists, but a - platform can configure this fail for the current user (e.g. you - need to be in the cvsadmin group on NetBSD 6.0). - - * t9020 and t9810 had a few non-portable shell script construct. - - * Scripts to test bash completion was inherently flaky as it was - affected by whatever random things the user may have on $PATH. - - * An element on GIT_CEILING_DIRECTORIES could be a "logical" pathname - that uses a symbolic link to point at somewhere else (e.g. /home/me - that points at /net/host/export/home/me, and the latter directory - is automounted). Earlier when Git saw such a pathname e.g. /home/me - on this environment variable, the "ceiling" mechanism did not take - effect. With this release (the fix has also been merged to the - v1.8.1.x maintenance series), elements on GIT_CEILING_DIRECTORIES - are by default checked for such aliasing coming from symbolic - links. As this needs to actually resolve symbolic links for each - element on the GIT_CEILING_DIRECTORIES, you can disable this - mechanism for some elements by listing them after an empty element - on the GIT_CEILING_DIRECTORIES. e.g. Setting /home/me::/home/him to - GIT_CEILING_DIRECTORIES makes Git resolve symbolic links in - /home/me when checking if the current directory is under /home/me, - but does not do so for /home/him. - (merge 7ec30aa mh/maint-ceil-absolute later to maint). diff --git a/third_party/git/Documentation/RelNotes/1.8.3.1.txt b/third_party/git/Documentation/RelNotes/1.8.3.1.txt deleted file mode 100644 index 986637b7551f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.3.1.txt +++ /dev/null @@ -1,14 +0,0 @@ -Git v1.8.3.1 Release Notes -========================== - -Fixes since v1.8.3 ------------------- - - * When $HOME is misconfigured to point at an unreadable directory, we - used to complain and die. The check has been loosened. - - * Handling of negative exclude pattern for directories "!dir" was - broken in the update to v1.8.3. - -Also contains a handful of trivial code clean-ups, documentation -updates, updates to the test suite, etc. diff --git a/third_party/git/Documentation/RelNotes/1.8.3.2.txt b/third_party/git/Documentation/RelNotes/1.8.3.2.txt deleted file mode 100644 index 26ae142c3d90..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.3.2.txt +++ /dev/null @@ -1,59 +0,0 @@ -Git v1.8.3.2 Release Notes -========================== - -Fixes since v1.8.3.1 --------------------- - - * Cloning with "git clone --depth N" while fetch.fsckobjects (or - transfer.fsckobjects) is set to true did not tell the cut-off - points of the shallow history to the process that validates the - objects and the history received, causing the validation to fail. - - * "git checkout foo" DWIMs the intended "upstream" and turns it into - "git checkout -t -b foo remotes/origin/foo". This codepath has been - updated to correctly take existing remote definitions into account. - - * "git fetch" into a shallow repository from a repository that does - not know about the shallow boundary commits (e.g. a different fork - from the repository the current shallow repository was cloned from) - did not work correctly. - - * "git subtree" (in contrib/) had one codepath with loose error - checks to lose data at the remote side. - - * "git log --ancestry-path A...B" did not work as expected, as it did - not pay attention to the fact that the merge base between A and B - was the bottom of the range being specified. - - * "git diff -c -p" was not showing a deleted line from a hunk when - another hunk immediately begins where the earlier one ends. - - * "git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22" - incorrectly when your previous branch was "frotz" (it should be - rewritten to "git merge frotz~22" instead). - - * "git commit --allow-empty-message -m ''" should not start an - editor. - - * "git push --[no-]verify" was not documented. - - * An entry for "file://" scheme in the enumeration of URL types Git - can take in the HTML documentation was made into a clickable link - by mistake. - - * zsh prompt script that borrowed from bash prompt script did not - work due to slight differences in array variable notation between - these two shells. - - * The bash prompt code (in contrib/) displayed the name of the branch - being rebased when "rebase -i/-m/-p" modes are in use, but not the - plain vanilla "rebase". - - * "git push $there HEAD:branch" did not resolve HEAD early enough, so - it was easy to flip it around while push is still going on and push - out a branch that the user did not originally intended when the - command was started. - - * "difftool --dir-diff" did not copy back changes made by the - end-user in the diff tool backend to the working tree in some - cases. diff --git a/third_party/git/Documentation/RelNotes/1.8.3.3.txt b/third_party/git/Documentation/RelNotes/1.8.3.3.txt deleted file mode 100644 index 9ba4f4da0f4f..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.3.3.txt +++ /dev/null @@ -1,47 +0,0 @@ -Git v1.8.3.3 Release Notes -========================== - -Fixes since v1.8.3.2 --------------------- - - * "git apply" parsed patches that add new files, generated by programs - other than Git, incorrectly. This is an old breakage in v1.7.11. - - * Older cURL wanted piece of memory we call it with to be stable, but - we updated the auth material after handing it to a call. - - * "git pull" into nothing trashed "local changes" that were in the - index. - - * Many "git submodule" operations did not work on a submodule at a - path whose name is not in ASCII. - - * "cherry-pick" had a small leak in its error codepath. - - * Logic used by git-send-email to suppress cc mishandled names like - "A U. Thor" <author@example.xz>, where the human readable part - needs to be quoted (the user input may not have the double quotes - around the name, and comparison was done between quoted and - unquoted strings). It also mishandled names that need RFC2047 - quoting. - - * "gitweb" forgot to clear a global variable $search_regexp upon each - request, mistakenly carrying over the previous search to a new one - when used as a persistent CGI. - - * The wildmatch engine did not honor WM_CASEFOLD option correctly. - - * "git log -c --follow $path" segfaulted upon hitting the commit that - renamed the $path being followed. - - * When a reflog notation is used for implicit "current branch", - e.g. "git log @{u}", we did not say which branch and worse said - "branch ''" in the error messages. - - * Mac OS X does not like to write(2) more than INT_MAX number of - bytes; work it around by chopping write(2) into smaller pieces. - - * Newer MacOS X encourages the programs to compile and link with - their CommonCrypto, not with OpenSSL. - -Also contains various minor documentation updates. diff --git a/third_party/git/Documentation/RelNotes/1.8.3.4.txt b/third_party/git/Documentation/RelNotes/1.8.3.4.txt deleted file mode 100644 index 56f106e2623b..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.3.4.txt +++ /dev/null @@ -1,20 +0,0 @@ -Git v1.8.3.4 Release Notes -========================== - -This update is mostly to propagate documentation fixes and test -updates from the master front back to the maintenance track. - -Fixes since v1.8.3.3 --------------------- - - * The bisect log listed incorrect commits when bisection ends with - only skipped ones. - - * The test coverage framework was left broken for some time. - - * The test suite for HTTP transport did not run with Apache 2.4. - - * "git diff" used to fail when core.safecrlf is set and the working - tree contents had mixed CRLF/LF line endings. Committing such a - content must be prohibited, but "git diff" should help the user to - locate and fix such problems without failing. diff --git a/third_party/git/Documentation/RelNotes/1.8.3.txt b/third_party/git/Documentation/RelNotes/1.8.3.txt deleted file mode 100644 index ead568e7f157..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.3.txt +++ /dev/null @@ -1,436 +0,0 @@ -Git v1.8.3 Release Notes -======================== - -Backward compatibility notes (for Git 2.0) ------------------------------------------- - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). In Git 2.0, the default will change to the "simple" -semantics that pushes only the current branch to the branch with the same -name, and only when the current branch is set to integrate with that -remote branch. Use the user preference configuration variable -"push.default" to change this. If you are an old-timer who is used -to the "matching" semantics, you can set the variable to "matching" -to keep the traditional behaviour. If you want to live in the future -early, you can set it to "simple" today without waiting for Git 2.0. - -When "git add -u" (and "git add -A") is run inside a subdirectory and -does not specify which paths to add on the command line, it -will operate on the entire tree in Git 2.0 for consistency -with "git commit -a" and other commands. There will be no -mechanism to make plain "git add -u" behave like "git add -u .". -Current users of "git add -u" (without a pathspec) should start -training their fingers to explicitly say "git add -u ." -before Git 2.0 comes. A warning is issued when these commands are -run without a pathspec and when you have local changes outside the -current directory, because the behaviour in Git 2.0 will be different -from today's version in such a situation. - -In Git 2.0, "git add <path>" will behave as "git add -A <path>", so -that "git add dir/" will notice paths you removed from the directory -and record the removal. Versions before Git 2.0, including this -release, will keep ignoring removals, but the users who rely on this -behaviour are encouraged to start using "git add --ignore-removal <path>" -now before 2.0 is released. - - -Updates since v1.8.2 --------------------- - -Foreign interface - - * remote-hg and remote-bzr helpers (in contrib/ since v1.8.2) have - been updated; especially, the latter has been done in an - accelerated schedule (read: we may not have merged to this release - if we were following the usual "cook sufficiently in next before - unleashing it to the world" workflow) in order to help Emacs folks, - whose primary SCM seems to be stagnating. - - -UI, Workflows & Features - - * A handful of updates applied to gitk, including an addition of - "revert" action, showing dates in tags in a nicer way, making - colors configurable, and support for -G'pickaxe' search. - - * The prompt string generator (in contrib/completion/) learned to - show how many changes there are in total and how many have been - replayed during a "git rebase" session. - - * "git branch --vv" learned to paint the name of the branch it - integrates with in a different color (color.branch.upstream, - which defaults to blue). - - * In a sparsely populated working tree, "git checkout <pathspec>" no - longer unmarks paths that match the given pathspec that were - originally ignored with "--sparse" (use --ignore-skip-worktree-bits - option to resurrect these paths out of the index if you really want - to). - - * "git log --format" specifier learned %C(auto) token that tells Git - to use color when interpolating %d (decoration), %h (short commit - object name), etc. for terminal output. - - * "git bisect" leaves the final outcome as a comment in its bisect - log file. - - * "git clone --reference" can now refer to a gitfile "textual symlink" - that points at the real location of the repository. - - * "git count-objects" learned "--human-readable" aka "-H" option to - show various large numbers in Ki/Mi/GiB scaled as necessary. - - * "git cherry-pick $blob" and "git cherry-pick $tree" are nonsense, - and a more readable error message e.g. "can't cherry-pick a tree" - is given (we used to say "expected exactly one commit"). - - * The "--annotate" option to "git send-email" can be turned on (or - off) by default with sendemail.annotate configuration variable (you - can use --no-annotate from the command line to override it). - - * The "--cover-letter" option to "git format-patch" can be turned on - (or off) by default with format.coverLetter configuration - variable. By setting it to 'auto', you can turn it on only for a - series with two or more patches. - - * The bash completion support (in contrib/) learned that cherry-pick - takes a few more options than it already knew about. - - * "git help" learned "-g" option to show the list of guides just like - list of commands are given with "-a". - - * A triangular "pull from one place, push to another place" workflow - is supported better by new remote.pushdefault (overrides the - "origin" thing) and branch.*.pushremote (overrides the - branch.*.remote) configuration variables. - - * "git status" learned to report that you are in the middle of a - revert session, just like it does for a cherry-pick and a bisect - session. - - * The handling by "git branch --set-upstream-to" against various forms - of erroneous inputs was suboptimal and has been improved. - - * When the interactive access to git-shell is not enabled, it issues - a message meant to help the system administrator to enable it. An - explicit way has been added to issue custom messages to refuse an - access over the network to help the end users who connect to the - service expecting an interactive shell. - - * In addition to the case where the user edits the log message with - the "e)dit" option of "am -i", replace the "Applying: this patch" - message with the final log message contents after applymsg hook - munges it. - - * "git status" suggests users to look into using --untracked=no option - when it takes too long. - - * "git status" shows a bit more information during a rebase/bisect - session. - - * "git fetch" learned to fetch a commit at the tip of an unadvertised - ref by specifying a raw object name from the command line when the - server side supports this feature. - - * Output from "git log --graph" works better with submodule log - output now. - - * "git count-objects -v" learned to report leftover temporary - packfiles and other garbage in the object store. - - * A new read-only credential helper (in contrib/) to interact with - the .netrc/.authinfo files has been added. - - * "git send-email" can be used with the credential helper system. - - * There was no Porcelain way to say "I no longer am interested in - this submodule", once you express your interest in a submodule with - "submodule init". "submodule deinit" is the way to do so. - - * "git pull --rebase" learned to pass "-v/-q" options to underlying - "git rebase". - - * The new "--follow-tags" option tells "git push" to push relevant - annotated tags when pushing branches out. - - * "git merge" and "git pull" can optionally be told to inspect and - reject when merging a commit that does not carry a trusted GPG - signature. - - * "git mergetool" now feeds files to the "p4merge" backend in the - order that matches the p4 convention, where "theirs" is usually - shown on the left side, which is the opposite from what other backends - expect. - - * "show/log" now honors gpg.program configuration just like other - parts of the code that use GnuPG. - - * "git log" that shows the difference between the parent and the - child has been optimized somewhat. - - * "git difftool" allows the user to write into the temporary files - being shown; if the user makes changes to the working tree at the - same time, it now refrains from overwriting the copy in the working - tree and leaves the temporary file so that changes can be merged - manually. - - * There was no good way to ask "I have a random string that came from - outside world. I want to turn it into a 40-hex object name while - making sure such an object exists". A new peeling suffix ^{object} - can be used for that purpose, together with "rev-parse --verify". - - -Performance, Internal Implementation, etc. - - * Updates for building under msvc. - - * A handful of issues in the code that traverses the working tree to find - untracked and/or ignored files have been fixed, and the general - codepath involved in "status -u" and "clean" have been cleaned up - and optimized. - - * The stack footprint of some codepaths that access an object from a - pack has been shrunk. - - * The logic to coalesce the same lines removed from the parents in - the output from "diff -c/--cc" has been updated, but with O(n^2) - complexity, so this might turn out to be undesirable. - - * The code to enforce permission bits on files in $GIT_DIR/ for - shared repositories has been simplified. - - * A few codepaths know how much data they need to put in the - hashtables they use when they start, but still began with small tables - and repeatedly grew and rehashed them. - - * The API to walk reflog entries from the latest to older, which was - necessary for operations such as "git checkout -", was cumbersome - to use correctly and also inefficient. - - * Codepaths that inspect log-message-to-be and decide when to add a - new Signed-off-by line in various commands have been consolidated. - - * The pkt-line API, implementation and its callers have been cleaned - up to make them more robust. - - * The Cygwin port has a faster-but-lying lstat(2) emulation whose - incorrectness does not matter in practice except for a few - codepaths, and setting permission bits on directories is a codepath - that needs to use a more correct one. - - * "git checkout" had repeated pathspec matches on the same paths, - which have been consolidated. Also a bug in "git checkout dir/" - that is started from an unmerged index has been fixed. - - * A few bugfixes to "git rerere" working on corner case merge - conflicts have been applied. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v1.8.2 ------------------- - -Unless otherwise noted, all the fixes since v1.8.2 in the maintenance -track are contained in this release (see release notes to them for -details). - - * Recent versions of File::Temp (used by "git svn") started blowing - up when its tempfile sub is called as a class method; updated the - callsite to call it as a plain vanilla function to fix it. - (merge eafc2dd hb/git-pm-tempfile later to maint). - - * Various subcommands of "git remote" simply ignored extraneous - command line arguments instead of diagnosing them as errors. - - * When receive-pack detects an error in the pack header it received in - order to decide which of unpack-objects or index-pack to run, it - returned without closing the error stream, which led to a hung - sideband thread. - - * Zsh completion forgot that the '%' character used to signal untracked - files needs to be escaped with another '%'. - - * A commit object whose author or committer ident are malformed - crashed some code that trusted that a name, an email and a - timestamp can always be found in it. - - * When "upload-pack" fails while generating a pack in response to - "git fetch" (or "git clone"), the receiving side had - a programming error that triggered the die handler - recursively. - - * "rev-list --stdin" and friends kept bogus pointers into the input - buffer around as human readable object names. This was not a huge - problem but was exposed by a new change that uses these names in - error output. - - * Smart-capable HTTP servers were not restricted via the - GIT_NAMESPACE mechanism when talking with commit-walking clients, - like they are when talking with smart HTTP clients. - (merge 6130f86 jk/http-dumb-namespaces later to maint). - - * "git merge-tree" did not omit a merge result that is identical to - the "our" side in certain cases. - (merge aacecc3 jk/merge-tree-added-identically later to maint). - - * Perl scripts like "git-svn" closed (instead of redirecting to /dev/null) - the standard error stream, which is not a very smart thing to do. - A later open may return file descriptor #2 for an unrelated purpose, and - error reporting code may write into it. - - * "git show-branch" was not prepared to show a very long run of - ancestor operators e.g. foobar^2~2^2^2^2...^2~4 correctly. - - * "git diff --diff-algorithm algo" is also understood as "git diff - --diff-algorithm=algo". - - * The new core.commentchar configuration was not applied in a few - places. - - * "git bundle" erroneously bailed out when parsing a valid bundle - containing a prerequisite commit without a commit message. - - * "git log -S/-G" started paying attention to textconv filter, but - there was no way to disable this. Make it honor the --no-textconv - option. - - * When used with the "-d temporary-directory" option, "git filter-branch" - failed to come back to the original working tree to perform the - final clean-up procedure. - - * "git merge $(git rev-parse v1.8.2)" behaved quite differently from - "git merge v1.8.2", as if v1.8.2 were written as v1.8.2^0 and did - not pay much attention to the annotated tag payload. Make the code - notice the type of the tag object, in addition to the dwim_ref() - based classification the current code uses (i.e. the name appears - in refs/tags/) to decide when to special-case tag merging. - - * Fix a 1.8.1.x regression that stopped matching "dir" (without a - trailing slash) to a directory "dir". - - * "git apply --whitespace=fix" was not prepared to see a line getting - longer after fixing whitespaces (e.g. tab-in-indent aka Python). - - * The prompt string generator (in contrib/completion/) did not notice - when we are in a middle of a "git revert" session. - - * "submodule summary --summary-limit" option did not support the - "--option=value" form. - - * "index-pack --fix-thin" used an uninitialized value to compute - the delta depths of objects it appends to the resulting pack. - - * "index-pack --verify-stat" used a few counters outside the protection - of a mutex, possibly showing incorrect numbers. - - * The code to keep track of what directory names are known to Git on - platforms with case insensitive filesystems could get confused upon a - hash collision between these pathnames and would loop forever. - - * Annotated tags outside the refs/tags/ hierarchy were not advertised - correctly to ls-remote and fetch with recent versions of Git. - - * Recent optimizations broke shallow clones. - - * "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and - instead the parser kept reading beyond the end of the string. - - * "git tag -f <tag>" always said "Updated tag '<tag>'" even when - creating a new tag (i.e. neither overwriting nor updating). - - * "git p4" did not behave well when the path to the root of the P4 - client was not its real path. - (merge bbd8486 pw/p4-symlinked-root later to maint). - - * "git archive" reported a failure when asked to create an archive out - of an empty tree. It is more intuitive to give an empty - archive back in such a case. - - * When "format-patch" quoted a non-ascii string in header files, - it incorrectly applied rfc2047 and chopped a single character in - the middle of the string. - - * An aliased command spawned from a bare repository that does not say - it is bare with "core.bare = yes" was treated as non-bare by mistake. - - * In "git reflog expire", the REACHABLE bit was not cleared from the - correct objects. - - * The logic used by "git diff -M --stat" to shorten the names of - files before and after a rename did not work correctly when the - common prefix and suffix between the two filenames overlapped. - - * The "--match=<pattern>" option of "git describe", when used with - "--all" to allow refs that are not annotated tags to be a - base of description, did not restrict the output from the command - to those refs that match the given pattern. - - * Clarify in the documentation "what" gets pushed to "where" when the - command line to "git push" does not say these explicitly. - - * The "--color=<when>" argument to the commands in the diff family - was described poorly. - - * The arguments given to the pre-rebase hook were not documented. - - * The v4 index format was not documented. - - * The "--match=<pattern>" argument "git describe" takes uses glob - pattern but it wasn't obvious from the documentation. - - * Some sources failed to compile on systems that lack NI_MAXHOST in - their system header (e.g. z/OS). - - * Add an example use of "--env-filter" in "filter-branch" - documentation. - - * "git bundle verify" did not say "records a complete history" for a - bundle that does not have any prerequisites. - - * In the v1.8.0 era, we changed symbols that do not have to be global - to file scope static, but a few functions in graph.c were used by - CGit sideways, bypassing the entry points of the API the - in-tree users use. - - * "git update-index -h" did not do the usual "-h(elp)" thing. - - * "git index-pack" had a buffer-overflow while preparing an - informational message when the translated version of it was too - long. - - * 'git commit -m "$msg"' used to add an extra newline even when - $msg already ended with one. - - * The SSL peer verification done by "git imap-send" did not ask for - Server Name Indication (RFC 4366), failing to connect to SSL/TLS - sites that serve multiple hostnames on a single IP. - - * perl/Git.pm::cat_blob slurped everything in core only to write it - out to a file descriptor, which was not a very smart thing to do. - - * "git branch" did not bother to check nonsense command line - parameters. It now issues errors in many cases. - - * Verification of signed tags was not done correctly when not in C - or en/US locale. - - * Some platforms and users spell UTF-8 differently; retry with the - most official "UTF-8" when the system does not understand the - user-supplied encoding name that is a common alternative - spelling of UTF-8. - - * When export-subst is used, "zip" output recorded an incorrect - size of the file. - - * "git am $maildir/" applied messages in an unexpected order; sort - filenames read from the maildir/ in a way that is more likely to - sort the messages in the order the writing MUA meant to, by sorting - numeric segments in numeric order and non-numeric segments in - alphabetical order. - - * "git submodule update", when recursed into sub-submodules, did not - accumulate the prefix paths. diff --git a/third_party/git/Documentation/RelNotes/1.8.4.1.txt b/third_party/git/Documentation/RelNotes/1.8.4.1.txt deleted file mode 100644 index c257beb114c9..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.4.1.txt +++ /dev/null @@ -1,71 +0,0 @@ -Git v1.8.4.1 Release Notes -========================== - -Fixes since v1.8.4 ------------------- - - * Some old versions of bash do not grok some constructs like - 'printf -v varname' which the prompt and completion code started - to use recently. The completion and prompt scripts have been - adjusted to work better with these old versions of bash. - - * In FreeBSD's and NetBSD's "sh", a return in a dot script in a - function returns from the function, not only in the dot script, - breaking "git rebase" on these platforms (regression introduced - in 1.8.4-rc1). - - * "git rebase -i" and other scripted commands were feeding a - random, data dependent error message to 'echo' and expecting it - to come out literally. - - * Setting the "submodule.<name>.path" variable to the empty - "true" caused the configuration parser to segfault. - - * Output from "git log --full-diff -- <pathspec>" looked strange - because comparison was done with the previous ancestor that - touched the specified <pathspec>, causing the patches for paths - outside the pathspec to show more than the single commit has - changed. - - * The auto-tag-following code in "git fetch" tries to reuse the - same transport twice when the serving end does not cooperate and - does not give tags that point to commits that are asked for as - part of the primary transfer. Unfortunately, Git-aware transport - helper interface is not designed to be used more than once, hence - this did not work over smart-http transfer. Fixed. - - * Send a large request to read(2)/write(2) as a smaller but still - reasonably large chunks, which would improve the latency when the - operation needs to be killed and incidentally works around broken - 64-bit systems that cannot take a 2GB write or read in one go. - - * A ".mailmap" file that ends with an incomplete line, when read - from a blob, was not handled properly. - - * The recent "short-cut clone connectivity check" topic broke a - shallow repository when a fetch operation tries to auto-follow - tags. - - * When send-email comes up with an error message to die with upon - failure to start an SSL session, it tried to read the error - string from a wrong place. - - * A call to xread() was used without a loop to cope with short - read in the codepath to stream large blobs to a pack. - - * On platforms with fgetc() and friends defined as macros, the - configuration parser did not compile. - - * New versions of MediaWiki introduced a new API for returning - more than 500 results in response to a query, which would cause - the MediaWiki remote helper to go into an infinite loop. - - * Subversion's serf access method (the only one available in - Subversion 1.8) for http and https URLs in skelta mode tells its - caller to open multiple files at a time, which made "git svn - fetch" complain that "Temp file with moniker 'svn_delta' already - in use" instead of fetching. - - -Also contains a handful of trivial code clean-ups, documentation -updates, updates to the test suite, etc. diff --git a/third_party/git/Documentation/RelNotes/1.8.4.2.txt b/third_party/git/Documentation/RelNotes/1.8.4.2.txt deleted file mode 100644 index bf6fb1a02369..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.4.2.txt +++ /dev/null @@ -1,77 +0,0 @@ -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=<whom>" forgot to omit unnecessary in-body - from line, i.e. when <whom> 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 <au.thor@example.xz>" 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/third_party/git/Documentation/RelNotes/1.8.4.3.txt b/third_party/git/Documentation/RelNotes/1.8.4.3.txt deleted file mode 100644 index 267a1b34b4d8..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.4.3.txt +++ /dev/null @@ -1,54 +0,0 @@ -Git v1.8.4.3 Release Notes -========================== - -Fixes since v1.8.4.2 --------------------- - - * The interaction between use of Perl in our test suite and NO_PERL - has been clarified a bit. - - * A fast-import stream expresses a pathname with funny characters by - quoting them in C style; remote-hg remote helper (in contrib/) - forgot to unquote such a path. - - * 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. - - * We did not handle cases where http transport gets redirected during - the authorization request (e.g. from http:// to https://). - - * "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. - - * The fall-back parsing of commit objects with broken author or - committer lines were less robust than ideal in picking up the - timestamps. - - * 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). - - * "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 --". - - * Coloring around octopus merges in "log --graph" output was screwy. - - * We did not generate HTML version of documentation to "git subtree" - in contrib/. - - * The synopsis section of "git unpack-objects" documentation has been - clarified a bit. - - * An ancient How-To on serving Git repositories on an HTTP server - lacked a warning that it has been mostly superseded with more - modern way. - -Also contains a handful of trivial code clean-ups, documentation -updates, updates to the test suite, etc. diff --git a/third_party/git/Documentation/RelNotes/1.8.4.4.txt b/third_party/git/Documentation/RelNotes/1.8.4.4.txt deleted file mode 100644 index a7c1ce15c061..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.4.4.txt +++ /dev/null @@ -1,10 +0,0 @@ -Git v1.8.4.4 Release Notes -========================== - -Fixes since v1.8.4.3 --------------------- - - * The fix in v1.8.4.3 to the pack transfer protocol to propagate - the target of symbolic refs broke "git clone/git fetch" from a - repository with too many symbolic refs. As a hotfix/workaround, - we transfer only the information on HEAD. diff --git a/third_party/git/Documentation/RelNotes/1.8.4.5.txt b/third_party/git/Documentation/RelNotes/1.8.4.5.txt deleted file mode 100644 index 215bd1a7a27a..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.4.5.txt +++ /dev/null @@ -1,13 +0,0 @@ -Git v1.8.4.5 Release Notes -========================== - -Fixes since v1.8.4.4 --------------------- - - * Recent update to remote-hg that attempted to make it work better - with non ASCII pathnames fed Unicode strings to the underlying Hg - API, which was wrong. - - * "git submodule init" copied "submodule.$name.update" settings from - .gitmodules to .git/config without making sure if the suggested - value was sensible. diff --git a/third_party/git/Documentation/RelNotes/1.8.4.txt b/third_party/git/Documentation/RelNotes/1.8.4.txt deleted file mode 100644 index 255e185af6fc..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.4.txt +++ /dev/null @@ -1,486 +0,0 @@ -Git v1.8.4 Release Notes -======================== - -Backward compatibility notes (for Git 2.0) ------------------------------------------- - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). In Git 2.0, the default will change to the "simple" -semantics that pushes: - - - only the current branch to the branch with the same name, and only - when the current branch is set to integrate with that remote - branch, if you are pushing to the same remote as you fetch from; or - - - only the current branch to the branch with the same name, if you - are pushing to a remote that is not where you usually fetch from. - -Use the user preference configuration variable "push.default" to -change this. If you are an old-timer who is used to the "matching" -semantics, you can set the variable to "matching" to keep the -traditional behaviour. If you want to live in the future early, you -can set it to "simple" today without waiting for Git 2.0. - -When "git add -u" (and "git add -A") is run inside a subdirectory and -does not specify which paths to add on the command line, it -will operate on the entire tree in Git 2.0 for consistency -with "git commit -a" and other commands. There will be no -mechanism to make plain "git add -u" behave like "git add -u .". -Current users of "git add -u" (without a pathspec) should start -training their fingers to explicitly say "git add -u ." -before Git 2.0 comes. A warning is issued when these commands are -run without a pathspec and when you have local changes outside the -current directory, because the behaviour in Git 2.0 will be different -from today's version in such a situation. - -In Git 2.0, "git add <path>" will behave as "git add -A <path>", so -that "git add dir/" will notice paths you removed from the directory -and record the removal. Versions before Git 2.0, including this -release, will keep ignoring removals, but the users who rely on this -behaviour are encouraged to start using "git add --ignore-removal <path>" -now before 2.0 is released. - - -Updates since v1.8.3 --------------------- - -Foreign interfaces, subsystems and ports. - - * Cygwin port has been updated for more recent Cygwin 1.7. - - * "git rebase -i" now honors --strategy and -X options. - - * Git-gui has been updated to its 0.18.0 version. - - * MediaWiki remote helper (in contrib/) has been updated to use the - credential helper interface from Git.pm. - - * Update build for Cygwin 1.[57]. Torsten Bรถgershausen reports that - this is fine with Cygwin 1.7 (cf. <51A606A0.5060101@web.de>) so let's try moving it - ahead. - - * The credential helper to talk to keychain on OS X (in contrib/) has - been updated to kick in not just when talking http/https but also - imap(s) and smtp. - - * Remote transport helper has been updated to report errors and - maintain ref hierarchy used to keep track of its own state better. - - * With "export" remote-helper protocol, (1) a push that tries to - update a remote ref whose name is different from the pushing side - does not work yet, and (2) the helper may not know how to do - --dry-run; these problematic cases are disabled for now. - - * git-remote-hg/bzr (in contrib/) updates. - - * git-remote-mw (in contrib/) hints users to check the certificate, - when https:// connection failed. - - * git-remote-mw (in contrib/) adds a command to allow previewing the - contents locally before pushing it out, when working with a - MediaWiki remote. - - -UI, Workflows & Features - - * Sample "post-receive-email" hook script got an enhanced replacement - "multimail" (in contrib/). - - * Also in contrib/ is a new "contacts" script that runs "git blame" - to find out the people who may be interested in a set of changes. - - * "git clean" command learned an interactive mode. - - * The "--head" option to "git show-ref" was only to add "HEAD" to the - list of candidate refs to be filtered by the usual rules - (e.g. "--heads" that only show refs under refs/heads). The meaning - of the option has been changed to always show "HEAD" regardless of - what filtering will be applied to any other ref. - - This is a backward incompatible change and might cause breakages to - people's existing scripts. - - * "git show -s" was less discoverable than it should have been. It - now has a natural synonym "git show --no-patch". - - * "git check-mailmap" is a new command that lets you map usernames - and e-mail addresses through the mailmap mechanism, just like many - built-in commands do. - - * "git name-rev" learned to name an annotated tag object back to its - tagname; "git name-rev $(git rev-parse v1.0.0)" gives "tags/v1.0.0", - for example. - - * "git cat-file --batch-check=<format>" is added, primarily to allow - on-disk footprint of objects in packfiles (often they are a lot - smaller than their true size, when expressed as deltas) to be - reported. - - * "git rebase [-i]" used to leave just "rebase" as its reflog messages - for some operations. They have been reworded to be more informative. - - * In addition to the choice from "rebase, merge, or checkout-detach", - "submodule update" can allow a custom command to be used in to - update the working tree of submodules via the "submodule.*.update" - configuration variable. - - * "git submodule update" can optionally clone the submodule - repositories shallowly. - - * "git format-patch" learned "--from[=whom]" option, which sets the - "From: " header to the specified person (or the person who runs the - command, if "=whom" part is missing) and move the original author - information to an in-body From: header as necessary. - - * The configuration variable "merge.ff" was cleary a tri-state to - choose one from "favor fast-forward when possible", "always create - a merge even when the history could fast-forward" and "do not - create any merge, only update when the history fast-forwards", but - the command line parser did not implement the usual convention of - "last one wins, and command line overrides the configuration" - correctly. - - * "gitweb" learned to optionally place extra links that point at the - levels higher than the Gitweb pages themselves in the breadcrumbs, - so that it can be used as part of a larger installation. - - * "git log --format=" now honors i18n.logoutputencoding configuration - variable. - - * The "push.default=simple" mode of "git push" has been updated to - behave like "current" without requiring a remote tracking - information, when you push to a remote that is different from where - you fetch from (i.e. a triangular workflow). - - * Having multiple "fixup!" on a line in the rebase instruction sheet - did not work very well with "git rebase -i --autosquash". - - * "git log" learned the "--author-date-order" option, with which the - output is topologically sorted and commits in parallel histories - are shown intermixed together based on the author timestamp. - - * Various subcommands of "git submodule" refused to run from anywhere - other than the top of the working tree of the superproject, but - they have been taught to let you run from a subdirectory. - - * "git diff" learned a mode that ignores hunks whose change consists - only of additions and removals of blank lines, which is the same as - "diff -B" (ignore blank lines) of GNU diff. - - * "git rm" gives a single message followed by list of paths to report - multiple paths that cannot be removed. - - * "git rebase" can be told with ":/look for this string" syntax commits - to replay the changes onto and where the work to be replayed begins. - - * Many tutorials teach users to set "color.ui" to "auto" as the first - thing after you set "user.name/email" to introduce yourselves to - Git. Now the variable defaults to "auto". - - * On Cygwin, "cygstart" is now recognised as a possible way to start - a web browser (used in "help -w" and "instaweb" among others). - - * "git status" learned status.branch and status.short configuration - variables to use --branch and --short options by default (override - with --no-branch and --no-short options from the command line). - - * "git cmd <name>", when <name> happens to be a 40-hex string, - directly uses the 40-hex string as an object name, even if a ref - "refs/<some hierarchy>/<name>" exists. This disambiguation order - is unlikely to change, but we should warn about the ambiguity just - like we warn when more than one refs/ hierarchies share the same - name. - - * "git rebase" learned "--[no-]autostash" option to save local - changes instead of refusing to run (to which people's normal - response was to stash them and re-run). This introduced a corner - case breakage to "git am --abort" but it has been fixed. - - * "check-ignore" (new feature since 1.8.2) has been updated to work - more like "check-attr" over bidi-pipes. - - * "git describe" learned "--first-parent" option to limit its closest - tagged commit search to the first-parent chain. - - * "git merge foo" that might have meant "git merge origin/foo" is - diagnosed with a more informative error message. - - * "git log -L<line>,<range>:<filename>" has been added. This may - still have leaks and rough edges, though. - - * We used the approxidate() parser for "--expire=<timestamp>" options - of various commands, but it is better to treat --expire=all and - --expire=now a bit more specially than using the current timestamp. - "git gc" and "git reflog" have been updated with a new parsing - function for expiry dates. - - * Updates to completion (both bash and zsh) helpers. - - * The behaviour of the "--chain-reply-to" option of "git send-email" - have changed at 1.7.0, and we added a warning/advice message to - help users adjust to the new behaviour back then, but we kept it - around for too long. The message has finally been removed. - - * "git fetch origin master" unlike "git fetch origin" or "git fetch" - did not update "refs/remotes/origin/master"; this was an early - design decision to keep the update of remote tracking branches - predictable, but in practice it turns out that people find it more - convenient to opportunistically update them whenever we have a - chance, and we have been updating them when we run "git push" which - already breaks the original "predictability" anyway. - - * The configuration variable core.checkstat was advertised in the - documentation but the code expected core.statinfo instead. - For now, we accept both core.checkstat and core.statinfo, but the - latter will be removed in the longer term. - - -Performance, Internal Implementation, etc. - - * On Cygwin, we used to use our own lstat(2) emulation that is - allegedly faster than the platform one in codepaths where some of - the information it returns did not matter, but it started to bite - us in a few codepaths where the trick it uses to cheat does show - breakages. This emulation has been removed and we use the native - lstat(2) emulation supplied by Cygwin now. - - * The function attributes extensions are used to catch mistakes in - use of our own variadic functions that use NULL sentinel at the end - (i.e. like execl(3)) and format strings (i.e. like printf(3)). - - * The code to allow configuration data to be read from in-tree blob - objects is in. This may help working in a bare repository and - submodule updates. - - * Fetching between repositories with many refs employed O(n^2) - algorithm to match up the common objects, which has been corrected. - - * The original way to specify remote repository using .git/branches/ - used to have a nifty feature. The code to support the feature was - still in a function but the caller was changed not to call it 5 - years ago, breaking that feature and leaving the supporting code - unreachable. The dead code has been removed. - - * "git pack-refs" that races with new ref creation or deletion have - been susceptible to lossage of refs under right conditions, which - has been tightened up. - - * We read loose and packed references in two steps, but after - deciding to read a loose ref but before actually opening it to read - it, another process racing with us can unlink it, which would cause - us to barf. The codepath has been updated to retry when such a - race is detected, instead of outright failing. - - * Uses of the platform fnmatch(3) function (many places in the code, - matching pathspec, .gitignore and .gitattributes to name a few) - have been replaced with wildmatch, allowing "foo/**/bar" that would - match foo/bar, foo/a/bar, foo/a/b/bar, etc. - - * Memory ownership and lifetime rules for what for-each-ref feeds to - its callbacks have been clarified (in short, "you do not own it, so - make a copy if you want to keep it"). - - * The revision traversal logic to improve culling of irrelevant - parents while traversing a mergy history has been updated. - - * Some leaks in unpack-trees (used in merge, cherry-pick and other - codepaths) have been plugged. - - * The codepath to read from marks files in fast-import/export did not - have to accept anything but 40-hex representation of the object - name. Further, fast-export did not need full in-core object - representation to have parsed wen reading from them. These - codepaths have been optimized by taking advantage of these access - patterns. - - * Object lookup logic, when the object hashtable starts to become - crowded, has been optimized. - - * When TEST_OUTPUT_DIRECTORY setting is used, it was handled somewhat - inconsistently between the test framework and t/Makefile, and logic - to summarize the results looked at a wrong place. - - * "git clone" uses a lighter-weight implementation when making sure - that the history behind refs are complete. - - * Many warnings from sparse source checker in compat/ area has been - squelched. - - * The code to reading and updating packed-refs file has been updated, - correcting corner case bugs. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v1.8.3 ------------------- - -Unless otherwise noted, all the fixes since v1.8.3 in the maintenance -track are contained in this release (see release notes to them for -details). - - * Newer Net::SMTP::SSL module does not want the user programs to use - the default behaviour to let server certificate go without - verification, so by default enable the verification with a - mechanism to turn it off if needed. - (merge 35035bb rr/send-email-ssl-verify later to maint). - - * When "git" is spawned in such a way that any of the low 3 file - descriptors is closed, our first open() may yield file descriptor 2, - and writing error message to it would screw things up in a big way. - (merge a11c396 tr/protect-low-3-fds later to maint). - - * The mailmap mechanism unnecessarily downcased the e-mail addresses - in the output, and also ignored the human name when it is a single - character name. - (merge bd23794 jc/mailmap-case-insensitivity later to maint). - - * In two places we did not check return value (expected to be a file - descriptor) correctly. - (merge a77f106 tr/fd-gotcha-fixes later to maint). - - * Logic to auto-detect character encodings in the commit log message - did not reject overlong and invalid UTF-8 characters. - (merge 81050ac bc/commit-invalid-utf8 later to maint). - - * Pass port number as a separate argument when "send-email" initializes - Net::SMTP, instead of as a part of the hostname, i.e. host:port. - This allows GSSAPI codepath to match with the hostname given. - (merge 1a741bf bc/send-email-use-port-as-separate-param later to maint). - - * "git diff" refused to even show difference when core.safecrlf is - set to true (i.e. error out) and there are offending lines in the - working tree files. - (merge 5430bb2 jc/maint-diff-core-safecrlf later to maint). - - * A test that should have failed but didn't revealed a bug that needs - to be corrected. - (merge 94d75d1 jc/t1512-fix later to maint). - - * An overlong path to a .git directory may have overflown the - temporary path buffer used to create a name for lockfiles. - (merge 2fbd4f9 mh/maint-lockfile-overflow later to maint). - - * Invocations of "git checkout" used internally by "git rebase" were - counted as "checkout", and affected later "git checkout -" to the - the user to an unexpected place. - (merge 3bed291 rr/rebase-checkout-reflog later to maint). - - * The configuration variable column.ui was poorly documented. - (merge 5e62cc1 rr/column-doc later to maint). - - * "git name-rev --refs=tags/v*" were forbidden, which was a bit - inconvenient (you had to give a pattern to match refs fully, like - --refs=refs/tags/v*). - (merge 98c5c4a nk/name-rev-abbreviated-refs later to maint). - - * "git apply" parsed patches that add new files, generated by - programs other than Git, incorrectly. This is an old breakage in - v1.7.11 and will need to be merged down to the maintenance tracks. - - * Older cURL wanted piece of memory we call it with to be stable, but - we updated the auth material after handing it to a call. - - * "git pull" into nothing trashed "local changes" that were in the - index, and this avoids it. - - * Many "git submodule" operations do not work on a submodule at a - path whose name is not in ASCII. - - * "cherry-pick" had a small leak in an error codepath. - - * Logic used by git-send-email to suppress cc mishandled names like - "A U. Thor" <author@example.xz>, where the human readable part - needs to be quoted (the user input may not have the double quotes - around the name, and comparison was done between quoted and - unquoted strings). It also mishandled names that need RFC2047 - quoting. - - * Call to discard_cache/discard_index (used when we use different - contents of the index in-core, in many operations like commit, - apply, and merge) used to leak memory that held the array of index - entries, which has been plugged. - (merge a0fc4db rs/discard-index-discard-array later to maint). - - * "gitweb" forgot to clear a global variable $search_regexp upon each - request, mistakenly carrying over the previous search to a new one - when used as a persistent CGI. - - * The wildmatch engine did not honor WM_CASEFOLD option correctly. - - * "git log -c --follow $path" segfaulted upon hitting the commit that - renamed the $path being followed. - - * When a reflog notation is used for implicit "current branch", we - did not say which branch and worse said "branch ''". - - * "difftool --dir-diff" did not copy back changes made by the - end-user in the diff tool backend to the working tree in some - cases. - - * "git push $there HEAD:branch" did not resolve HEAD early enough, so - it was easy to flip it around while push is still going on and push - out a branch that the user did not originally intended when the - command was started. - - * The bash prompt code (in contrib/) displayed the name of the branch - being rebased when "rebase -i/-m/-p" modes are in use, but not the - plain vanilla "rebase". - - * Handling of negative exclude pattern for directories "!dir" was - broken in the update to v1.8.3. - - * zsh prompt script that borrowed from bash prompt script did not - work due to slight differences in array variable notation between - these two shells. - - * An entry for "file://" scheme in the enumeration of URL types Git - can take in the HTML documentation was made into a clickable link - by mistake. - - * "git push --[no-]verify" was not documented. - - * Stop installing the git-remote-testpy script that is only used for - testing. - - * "git commit --allow-empty-message -m ''" should not start an - editor. - - * "git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22" - incorrectly when your previous branch was "frotz" (it should be - rewritten to "git merge frotz~22" instead). - - * "git diff -c -p" was not showing a deleted line from a hunk when - another hunk immediately begins where the earlier one ends. - - * "git log --ancestry-path A...B" did not work as expected, as it did - not pay attention to the fact that the merge base between A and B - was the bottom of the range being specified. - - * Mac OS X does not like to write(2) more than INT_MAX number of - bytes; work it around by chopping write(2) into smaller pieces. - - * Newer MacOS X encourages the programs to compile and link with - their CommonCrypto, not with OpenSSL. - - * "git clone foo/bar:baz" cannot be a request to clone from a remote - over git-over-ssh specified in the scp style. This case is now - detected and clones from a local repository at "foo/bar:baz". - - * When $HOME is misconfigured to point at an unreadable directory, we - used to complain and die. Loosen the check. - - * "git subtree" (in contrib/) had one codepath with loose error - checks to lose data at the remote side. - - * "git fetch" into a shallow repository from a repository that does - not know about the shallow boundary commits (e.g. a different fork - from the repository the current shallow repository was cloned from) - did not work correctly. - - * "git checkout foo" DWIMs the intended "upstream" and turns it into - "git checkout -t -b foo remotes/origin/foo". This codepath has been - updated to correctly take existing remote definitions into account. diff --git a/third_party/git/Documentation/RelNotes/1.8.5.1.txt b/third_party/git/Documentation/RelNotes/1.8.5.1.txt deleted file mode 100644 index 7236aaf2323d..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.5.1.txt +++ /dev/null @@ -1,9 +0,0 @@ -Git v1.8.5.1 Release Notes -========================== - -Fixes since v1.8.5 ------------------- - - * "git submodule init" copied "submodule.$name.update" settings from - .gitmodules to .git/config without making sure if the suggested - value was sensible. diff --git a/third_party/git/Documentation/RelNotes/1.8.5.2.txt b/third_party/git/Documentation/RelNotes/1.8.5.2.txt deleted file mode 100644 index 3ac4984f10f2..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.5.2.txt +++ /dev/null @@ -1,20 +0,0 @@ -Git v1.8.5.2 Release Notes -========================== - -Fixes since v1.8.5.1 --------------------- - - * "git diff -- ':(icase)makefile'" was unnecessarily rejected at the - command line parser. - - * "git cat-file --batch-check=ok" did not check the existence of - the named object. - - * "git am --abort" sometimes complained about not being able to write - a tree with an 0{40} object in it. - - * Two processes creating loose objects at the same time could have - failed unnecessarily when the name of their new objects started - with the same byte value, due to a race condition. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/1.8.5.3.txt b/third_party/git/Documentation/RelNotes/1.8.5.3.txt deleted file mode 100644 index 3de2dd0f1947..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.5.3.txt +++ /dev/null @@ -1,27 +0,0 @@ -Git v1.8.5.3 Release Notes -========================== - -Fixes since v1.8.5.2 --------------------- - - * The "--[no-]informative-errors" options to "git daemon" were parsed - a bit too loosely, allowing any other string after these option - names. - - * A "gc" process running as a different user should be able to stop a - new "gc" process from starting. - - * An earlier "clean-up" introduced an unnecessary memory leak to the - credential subsystem. - - * "git mv A B/", when B does not exist as a directory, should error - out, but it didn't. - - * "git rev-parse <revs> -- <paths>" did not implement the usual - disambiguation rules the commands in the "git log" family used in - the same way. - - * "git cat-file --batch=", an admittedly useless command, did not - behave very well. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/1.8.5.4.txt b/third_party/git/Documentation/RelNotes/1.8.5.4.txt deleted file mode 100644 index d18c40389eba..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.5.4.txt +++ /dev/null @@ -1,48 +0,0 @@ -Git v1.8.5.4 Release Notes -========================== - -Fixes since v1.8.5.3 --------------------- - - * "git fetch --depth=0" was a no-op, and was silently ignored. - Diagnose it as an error. - - * Remote repository URL expressed in scp-style host:path notation are - parsed more carefully (e.g. "foo/bar:baz" is local, "[::1]:/~user" asks - to connect to user's home directory on host at address ::1. - - * SSL-related options were not passed correctly to underlying socket - layer in "git send-email". - - * "git commit -v" appends the patch to the log message before - editing, and then removes the patch when the editor returned - control. However, the patch was not stripped correctly when the - first modified path was a submodule. - - * "git mv A B/", when B does not exist as a directory, should error - out, but it didn't. - - * When we figure out how many file descriptors to allocate for - keeping packfiles open, a system with non-working getrlimit() could - cause us to die(), but because we make this call only to get a - rough estimate of how many is available and we do not even attempt - to use up all file descriptors available ourselves, it is nicer to - fall back to a reasonable low value rather than dying. - - * "git log --decorate" did not handle a tag pointed by another tag - nicely. - - * "git add -A" (no other arguments) in a totally empty working tree - used to emit an error. - - * There is no reason to have a hardcoded upper limit of the number of - parents for an octopus merge, created via the graft mechanism, but - there was. - - * The implementation of 'git stash $cmd "stash@{...}"' did not quote - the stash argument properly and left it split at IFS whitespace. - - * The documentation to "git pull" hinted there is an "-m" option - because it incorrectly shared the documentation with "git merge". - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/1.8.5.5.txt b/third_party/git/Documentation/RelNotes/1.8.5.5.txt deleted file mode 100644 index 9191ce948fc8..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.5.5.txt +++ /dev/null @@ -1,37 +0,0 @@ -Git v1.8.5.5 Release Notes -========================== - -Fixes since v1.8.5.4 --------------------- - - * The pathspec matching code, while comparing two trees (e.g. "git - diff A B -- path1 path2") was too aggressive and failed to match - some paths when multiple pathspecs were involved. - - * "git repack --max-pack-size=8g" stopped being parsed correctly when - the command was reimplemented in C. - - * A recent update to "git send-email" broke platforms where - /etc/ssl/certs/ directory exists but cannot be used as SSL_ca_path - (e.g. Fedora rawhide). - - * A handful of bugs around interpreting $branch@{upstream} notation - and its lookalike, when $branch part has interesting characters, - e.g. "@", and ":", have been fixed. - - * "git clone" would fail to clone from a repository that has a ref - directly under "refs/", e.g. "refs/stash", because different - validation paths do different things on such a refname. Loosen the - client side's validation to allow such a ref. - - * "git log --left-right A...B" lost the "leftness" of commits - reachable from A when A is a tag as a side effect of a recent - bugfix. This is a regression in 1.8.4.x series. - - * "git merge-base --octopus" used to leave cleaning up suboptimal - result to the caller, but now it does the clean-up itself. - - * "git mv A B/", when B does not exist as a directory, should error - out, but it didn't. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/1.8.5.6.txt b/third_party/git/Documentation/RelNotes/1.8.5.6.txt deleted file mode 100644 index 92ff92b1e6e2..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.5.6.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git v1.8.5.6 Release Notes -========================== - -Fixes since v1.8.5.5 --------------------- - - * We used to allow committing a path ".Git/config" with Git that is - running on a case sensitive filesystem, but an attempt to check out - such a path with Git that runs on a case insensitive filesystem - would have clobbered ".git/config", which is definitely not what - the user would have expected. Git now prevents you from tracking - a path with ".Git" (in any case combination) as a path component. - - * On Windows, certain path components that are different from ".git" - are mapped to ".git", e.g. "git~1/config" is treated as if it were - ".git/config". HFS+ has a similar issue, where certain unicode - codepoints are ignored, e.g. ".g\u200cit/config" is treated as if - it were ".git/config". Pathnames with these potential issues are - rejected on the affected systems. Git on systems that are not - affected by this issue (e.g. Linux) can also be configured to - reject them to ensure cross platform interoperability of the hosted - projects. - - * "git fsck" notices a tree object that records such a path that can - be confused with ".git", and with receive.fsckObjects configuration - set to true, an attempt to "git push" such a tree object will be - rejected. Such a path may not be a problem on a well behaving - filesystem but in order to protect those on HFS+ and on case - insensitive filesystems, this check is enabled on all platforms. - -A big "thanks!" for bringing this issue to us goes to our friends in -the Mercurial land, namely, Matt Mackall and Augie Fackler. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/1.8.5.txt b/third_party/git/Documentation/RelNotes/1.8.5.txt deleted file mode 100644 index 602df0cac2de..000000000000 --- a/third_party/git/Documentation/RelNotes/1.8.5.txt +++ /dev/null @@ -1,456 +0,0 @@ -Git v1.8.5 Release Notes -======================== - -Backward compatibility notes (for Git 2.0) ------------------------------------------- - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). In Git 2.0, the default will change to the "simple" -semantics, which pushes: - - - only the current branch to the branch with the same name, and only - when the current branch is set to integrate with that remote - branch, if you are pushing to the same remote as you fetch from; or - - - only the current branch to the branch with the same name, if you - are pushing to a remote that is not where you usually fetch from. - -Use the user preference configuration variable "push.default" to -change this. If you are an old-timer who is used to the "matching" -semantics, you can set the variable to "matching" to keep the -traditional behaviour. If you want to live in the future early, you -can set it to "simple" today without waiting for Git 2.0. - -When "git add -u" (and "git add -A") is run inside a subdirectory and -does not specify which paths to add on the command line, it -will operate on the entire tree in Git 2.0 for consistency -with "git commit -a" and other commands. There will be no -mechanism to make plain "git add -u" behave like "git add -u .". -Current users of "git add -u" (without a pathspec) should start -training their fingers to explicitly say "git add -u ." -before Git 2.0 comes. A warning is issued when these commands are -run without a pathspec and when you have local changes outside the -current directory, because the behaviour in Git 2.0 will be different -from today's version in such a situation. - -In Git 2.0, "git add <path>" will behave as "git add -A <path>", so -that "git add dir/" will notice paths you removed from the directory -and record the removal. Versions before Git 2.0, including this -release, will keep ignoring removals, but the users who rely on this -behaviour are encouraged to start using "git add --ignore-removal <path>" -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 --------------------- - -Foreign interfaces, subsystems and ports. - - * "git-svn" has been taught to use the serf library, which is the - only option SVN 1.8.0 offers us when talking the HTTP protocol. - - * "git-svn" talking over an https:// connection using the serf library - dumped core due to a bug in the serf library that SVN uses. Work - around it on our side, even though the SVN side is being fixed. - - * On MacOS X, we detected if the filesystem needs the "pre-composed - unicode strings" workaround, but did not automatically enable it. - Now we do. - - * remote-hg remote helper misbehaved when interacting with a local Hg - repository relative to the home directory, e.g. "clone hg::~/there". - - * imap-send ported to OS X uses Apple's security framework instead of - OpenSSL's. - - * "git fast-import" treats an empty path given to "ls" as the root of - the tree. - - -UI, Workflows & Features - - * xdg-open can be used as a browser backend for "git web-browse" - (hence to show "git help -w" output), when available. - - * "git grep" and "git show" pay attention to the "--textconv" option - when these commands are told to operate on blob objects (e.g. "git - grep -e pattern --textconv 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 a replacement using "git update-ref", as an - escape hatch). - - * "git status" no longer prints the dirty status information of - 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 which original commit is - being picked. - - * Instead of typing four capital letters "HEAD", you can say "@" now, - e.g. "git log @". - - * "git check-ignore" follows the same rule as "git add" and "git - status" in that the ignore/exclude mechanism does not take effect - on paths that are already tracked. With the "--no-index" option, it - can be used to diagnose which paths that should have been ignored - have been mistakenly added to the index. - - * Some irrelevant "advice" messages that are shared with "git status" - output have been removed from the commit log template. - - * "update-refs" learned a "--stdin" option to read multiple update - requests and perform them in an all-or-none fashion. - - * Just like "make -C <directory>", "git -C <directory> ..." tells Git - to go there before doing anything else. - - * Just like "git checkout -" knows to check out, and "git merge -" - knows to merge, the branch you were previously on, "git cherry-pick" - now understands "git cherry-pick -" to pick from the previous - branch. - - * "git status" now omits the prefix to make its output a comment in a - commit log editor, which is not necessary for human consumption. - Scripts that parse the output of "git status" are advised to use - "git status --porcelain" instead, as its format is stable and easier - to parse. - - * The ref syntax "foo^{tag}" (with the literal string "{tag}") peels a - tag ref to itself, i.e. it's a no-op., and fails if - "foo" is not a tag. "git rev-parse --verify v1.0^{tag}" is - a more convenient way than "test $(git cat-file -t v1.0) = tag" to - check if v1.0 is a tag. - - * "git branch -v -v" (and "git status") did not distinguish among a - branch that is not based on any other branch, a branch that is in - sync with its upstream branch, and a branch that is configured with an - upstream branch that no longer exists. - - * Earlier we started rejecting any attempt to add the 0{40} object name to - the index and to tree objects, but it sometimes is necessary to - allow this to be able to use tools like filter-branch to correct such - broken tree objects. "filter-branch" can again be used to do this. - - * "git config" did not provide a way to set or access numbers larger - than a native "int" on the platform; it now provides 64-bit signed - integers on all platforms. - - * "git pull --rebase" always chose to do the bog-standard flattening - rebase. You can tell it to run "rebase --preserve-merges" with - "git pull --rebase=preserve" or by - setting "pull.rebase" configuration to "preserve". - - * "git push --no-thin" actually disables the "thin pack transfer" - optimization. - - * Magic pathspecs like ":(icase)makefile" (matches both Makefile - and makefile) and ":(glob)foo/**/bar" (matches "bar" in "foo" - and any subdirectory of "foo") can be used in more places. - - * The "http.*" variables can now be specified for individual URLs. - For example, - - [http] - sslVerify = true - [http "https://weak.example.com/"] - sslVerify = false - - would flip http.sslVerify off only when talking to that specific - site. - - * "git mv A B" when moving a submodule has been taught to - relocate the submodule's working tree and to adjust the paths in the - .gitmodules file. - - * "git blame" can now take more than one -L option to discover the - origin of multiple blocks of lines. - - * The http transport clients can optionally ask to save cookies - with the http.savecookies configuration variable. - - * "git push" learned a more fine grained control over a blunt - "--force" when requesting a non-fast-forward update with the - "--force-with-lease=<refname>:<expected object name>" option. - - * "git diff --diff-filter=<classes of changes>" can now take - lowercase letters (e.g. "--diff-filter=d") to mean "show - everything but these classes". "git diff-files -q" is now a - deprecated synonym for "git diff-files --diff-filter=d". - - * "git fetch" (hence "git pull" as well) learned to check - "fetch.prune" and "remote.*.prune" configuration variables and - to behave as if the "--prune" command line option was given. - - * "git check-ignore -z" applied the NUL termination to both its input - (with --stdin) and its output, but "git check-attr -z" ignored the - option on the output side. Make both honor -z on the input and - output side the same way. - - * "git whatchanged" may still be used by old timers, but mention of - it in documents meant for new users will only waste readers' time - wondering what the difference is between it and "git log". Make it - less prominent in the general part of the documentation and explain - that it is merely a "git log" with different default behaviour in - its own document. - - -Performance, Internal Implementation, etc. - - * "git for-each-ref" when asking for merely the object name does not - have to parse the object pointed at by the refs; the codepath has - been optimized. - - * 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. - - * Many commands use a --dashed-option as an operation mode selector - (e.g. "git tag --delete") that excludes other operation modes - (e.g. "git tag --delete --verify" is nonsense) and that cannot be - negated (e.g. "git tag --no-delete" is nonsense). The parse-options - API learned a new OPT_CMDMODE macro to make it easier to implement - such a set of options. - - * OPT_BOOLEAN() in the parse-options API was misdesigned to be "counting - up" but many subcommands expect it to behave as "on/off". Update - them to use OPT_BOOL() which is a proper boolean. - - * "git gc" exits early without doing any work when it detects - that another instance of itself is already running. - - * Under memory pressure and/or file descriptor pressure, we used to - close pack windows that are not used and also closed filehandles to - open but unused packfiles. These are now controlled separately - to better cope with the load. - -Also contains various documentation updates and code clean-ups. - - -Fixes since v1.8.4 ------------------- - -Unless otherwise noted, all the fixes since v1.8.4 in the maintenance -track are contained in this release (see the maintenance releases' notes for -details). - - * An ancient How-To on serving Git repositories on an HTTP server - lacked a warning that it has been mostly superseded with a more - modern way. - (merge 6d52bc3 sc/doc-howto-dumb-http later to maint). - - * The interaction between the use of Perl in our test suite and NO_PERL - has been clarified a bit. - (merge f8fc0ee jn/test-prereq-perl-doc later to maint). - - * The synopsis section of the "git unpack-objects" documentation has been - clarified a bit. - (merge 61e2e22 vd/doc-unpack-objects later to maint). - - * We did not generate the HTML version of the documentation to "git subtree" - in contrib/. - (merge 95c62fb jk/subtree-install-fix later to maint). - - * A fast-import stream expresses a pathname with funny characters by - quoting them in C style; the remote-hg remote helper forgot to unquote - such a path. - (merge 1136265 ap/remote-hg-unquote-cquote later to maint). - - * "git reset -p HEAD" has a codepath to special-case it to behave - differently from resetting to contents of other commits, but a - recent change broke it. - - * 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 - branch 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 the 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 - was coded in a way unsupported 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 was 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 the 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" wrote some progress messages to standard output, not - to standard error, and did not suppress them with the - --no-progress option. - (merge 643f918 jk/clone-progress-to-stderr later to maint). - - * "format-patch --from=<whom>" forgot to omit an unnecessary in-body - from line, i.e. when <whom> 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 ignores 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 - small empty messages to keep the connection alive. - (merge 115dedd jk/upload-pack-keepalive later to maint). - - * "git rebase" had a portability regression in v1.8.4 that triggered a - bug in some BSD shell implementations. - (merge 99855dd mm/rebase-continue-freebsd-WB later to maint). - - * "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. - (merge b0f49ff jh/checkout-auto-tracking later to maint). - - * When the web server responds with "405 Method Not Allowed", "git - http-backend" should tell the client what methods are allowed with - the "Allow" header. - (merge 9247be0 bc/http-backend-allow-405 later to maint). - - * 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. - (merge f21d2a7 nd/fetch-into-shallow later to maint). - - * "git cvsserver" computed the permission mode bits incorrectly for - executable files. - (merge 1b48d56 jc/cvsserver-perm-bit-fix later to maint). - - * When send-email obtains an error message to die with upon - failure to start an SSL session, it tried to read the error string - from a wrong place. - (merge 6cb0c88 bc/send-email-ssl-die-message-fix later to maint). - - * The implementation of "add -i" has some crippling code to work around an - ActiveState Perl limitation but it by mistake also triggered on Git - for Windows where MSYS perl is used. - (merge df17e77 js/add-i-mingw later to maint). - - * We made sure that we notice when the user-supplied GIT_DIR is actually a - gitfile, but did not do the same when the default ".git" is a - gitfile. - (merge 487a2b7 nd/git-dir-pointing-at-gitfile later to maint). - - * When an object is not found after checking the packfiles and the - 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(). - (merge 45e8a74 jk/has-sha1-file-retry-packed later to maint). - - * "git commit --author=$name", when $name is not in the canonical - "A. U. Thor <au.thor@example.xz>" format, looks for a matching name - from existing history, but did not consult mailmap to grab the - preferred author name. - (merge ea16794 ap/commit-author-mailmap later to maint). - - * "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. - (merge 680be04 jc/ls-files-killed-optim later to maint). - - * The shortened commit object names in the insn sheet that is prepared at the - beginning of a "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. - (merge 75c6976 es/rebase-i-no-abbrev later to maint). - - * "git rebase --preserve-merges" internally used the merge machinery - and as a side effect left the merge summary message in the log, but - when rebasing there is no need for the merge summary. - (merge a9f739c rt/rebase-p-no-merge-summary later to maint). - - * A call to xread() was used without a loop around it to cope with short - reads in the codepath to stream new contents to a pack. - (merge e92527c js/xread-in-full later to maint). - - * "git rebase -i" forgot that the comment character is - configurable while reading its insn sheet. - (merge 7bca7af es/rebase-i-respect-core-commentchar later to maint). - - * The mailmap support code read past the allocated buffer when the - mailmap file ended with an incomplete line. - (merge f972a16 jk/mailmap-incomplete-line later to maint). - - * We used to send a large request to read(2)/write(2) as a single - system call, which was bad from the latency point of view when - the operation needs to be killed, and also triggered an error on - broken 64-bit systems that refuse to read or write more than 2GB - in one go. - (merge a487916 sp/clip-read-write-to-8mb later to maint). - - * "git fetch" that auto-followed tags incorrectly reused the - connection with Git-aware transport helper (like the sample "ext::" - helper shipped with Git). - (merge 0f73f8b jc/transport-do-not-use-connect-twice-in-fetch later to maint). - - * "git log --full-diff -- <pathspec>" showed a huge diff for paths - outside the given <pathspec> for each commit, instead of showing - the change relative to the parent of the commit. "git reflog -p" - had a similar problem. - (merge 838f9a1 tr/log-full-diff-keep-true-parents later to maint). - - * Setting a submodule.*.path configuration variable to true (without - giving "= value") caused Git to segfault. - (merge 4b05440 jl/some-submodule-config-are-not-boolean later to maint). - - * "git rebase -i" (there could be others, as the root cause is pretty - generic) fed a random, data dependent string to 'echo' and - expected it to come out literally, corrupting its error message. - (merge 89b0230 mm/no-shell-escape-in-die-message later to maint). - - * Some people still use rather old versions of bash, which cannot - grok some constructs like 'printf -v varname' which the prompt and - completion code started to use recently. - (merge a44aa69 bc/completion-for-bash-3.0 later to maint). - - * Code to read configuration from a blob object did not compile on - platforms with fgetc() etc. implemented as macros. - (merge 49d6cfa hv/config-from-blob later to maint-1.8.3). - - * The recent "short-cut clone connectivity check" topic broke a - shallow repository when a fetch operation tries to auto-follow tags. - (merge 6da8bdc nd/fetch-pack-shallow-fix later to maint-1.8.3). diff --git a/third_party/git/Documentation/RelNotes/1.9.0.txt b/third_party/git/Documentation/RelNotes/1.9.0.txt deleted file mode 100644 index 4e4b88aa5c89..000000000000 --- a/third_party/git/Documentation/RelNotes/1.9.0.txt +++ /dev/null @@ -1,345 +0,0 @@ -Git v1.9.0 Release Notes -======================== - -Backward compatibility notes ----------------------------- - -"git submodule foreach $cmd $args" used to treat "$cmd $args" the same -way "ssh" did, concatenating them into a single string and letting the -shell unquote. Careless users who forget to sufficiently quote $args -get their argument split at $IFS whitespaces by the shell, and got -unexpected results due to this. Starting from this release, the -command line is passed directly to the shell, if it has an argument. - -Read-only support for experimental loose-object format, in which users -could optionally choose to write their loose objects for a short -while between v1.4.3 and v1.5.3 era, has been dropped. - -The meanings of the "--tags" option to "git fetch" has changed; the -command fetches tags _in addition to_ what is fetched by the same -command line without the option. - -The way "git push $there $what" interprets the $what part given on the -command line, when it does not have a colon that explicitly tells us -what ref at the $there repository is to be updated, has been enhanced. - -A handful of ancient commands that have long been deprecated are -finally gone (repo-config, tar-tree, lost-found, and peek-remote). - - -Backward compatibility notes (for Git 2.0.0) --------------------------------------------- - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). In Git 2.0, the default will change to the "simple" -semantics, which pushes: - - - only the current branch to the branch with the same name, and only - when the current branch is set to integrate with that remote - branch, if you are pushing to the same remote as you fetch from; or - - - only the current branch to the branch with the same name, if you - are pushing to a remote that is not where you usually fetch from. - -Use the user preference configuration variable "push.default" to -change this. If you are an old-timer who is used to the "matching" -semantics, you can set the variable to "matching" to keep the -traditional behaviour. If you want to live in the future early, you -can set it to "simple" today without waiting for Git 2.0. - -When "git add -u" (and "git add -A") is run inside a subdirectory and -does not specify which paths to add on the command line, it -will operate on the entire tree in Git 2.0 for consistency -with "git commit -a" and other commands. There will be no -mechanism to make plain "git add -u" behave like "git add -u .". -Current users of "git add -u" (without a pathspec) should start -training their fingers to explicitly say "git add -u ." -before Git 2.0 comes. A warning is issued when these commands are -run without a pathspec and when you have local changes outside the -current directory, because the behaviour in Git 2.0 will be different -from today's version in such a situation. - -In Git 2.0, "git add <path>" will behave as "git add -A <path>", so -that "git add dir/" will notice paths you removed from the directory -and record the removal. Versions before Git 2.0, including this -release, will keep ignoring removals, but the users who rely on this -behaviour are encouraged to start using "git add --ignore-removal <path>" -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.5 --------------------- - -Foreign interfaces, subsystems and ports. - - * The HTTP transport, when talking GSS-Negotiate, uses "100 - Continue" response to avoid having to rewind and resend a large - payload, which may not be always doable. - - * Various bugfixes to remote-bzr and remote-hg (in contrib/). - - * The build procedure is aware of MirBSD now. - - * Various "git p4", "git svn" and "gitk" updates. - - -UI, Workflows & Features - - * Fetching from a shallowly-cloned repository used to be forbidden, - primarily because the codepaths involved were not carefully vetted - and we did not bother supporting such usage. This release attempts - to allow object transfer out of a shallowly-cloned repository in a - more controlled way (i.e. the receiver becomes a shallow repository - with a truncated history). - - * Just like we give a reasonable default for "less" via the LESS - environment variable, we now specify a reasonable default for "lv" - via the "LV" environment variable when spawning the pager. - - * Two-level configuration variable names in "branch.*" and "remote.*" - hierarchies, whose variables are predominantly three-level, were - not completed by hitting a <TAB> in bash and zsh completions. - - * Fetching a 'frotz' branch with "git fetch", while a 'frotz/nitfol' - remote-tracking branch from an earlier fetch was still there, would - error out, primarily because the command was not told that it is - allowed to lose any information on our side. "git fetch --prune" - now can be used to remove 'frotz/nitfol' to make room for fetching and - storing the 'frotz' remote-tracking branch. - - * "diff.orderfile=<file>" configuration variable can be used to - pretend as if the "-O<file>" option were given from the command - line of "git diff", etc. - - * The negative pathspec syntax allows "git log -- . ':!dir'" to tell - us "I am interested in everything but 'dir' directory". - - * "git difftool" shows how many different paths there are in total, - and how many of them have been shown so far, to indicate progress. - - * "git push origin master" used to push our 'master' branch to update - the 'master' branch at the 'origin' repository. This has been - enhanced to use the same ref mapping "git push origin" would use to - determine what ref at the 'origin' to be updated with our 'master'. - For example, with this configuration - - [remote "origin"] - push = refs/heads/*:refs/review/* - - that would cause "git push origin" to push out our local branches - to corresponding refs under refs/review/ hierarchy at 'origin', - "git push origin master" would update 'refs/review/master' over - there. Alternatively, if push.default is set to 'upstream' and our - 'master' is set to integrate with 'topic' from the 'origin' branch, - running "git push origin" while on our 'master' would update their - 'topic' branch, and running "git push origin master" while on any - of our branches does the same. - - * "gitweb" learned to treat ref hierarchies other than refs/heads as - if they are additional branch namespaces (e.g. refs/changes/ in - Gerrit). - - * "git for-each-ref --format=..." learned a few formatting directives; - e.g. "%(color:red)%(HEAD)%(color:reset) %(refname:short) %(subject)". - - * The command string given to "git submodule foreach" is passed - directly to the shell, without being eval'ed. This is a backward - incompatible change that may break existing users. - - * "git log" and friends learned the "--exclude=<glob>" option, to - allow people to say "list history of all branches except those that - match this pattern" with "git log --exclude='*/*' --branches". - - * "git rev-parse --parseopt" learned a new "--stuck-long" option to - help scripts parse options with an optional parameter. - - * The "--tags" option to "git fetch" no longer tells the command to - fetch _only_ the tags. It instead fetches tags _in addition to_ - what are fetched by the same command line without the option. - - -Performance, Internal Implementation, etc. - - * When parsing a 40-hex string into the object name, the string is - checked to see if it can be interpreted as a ref so that a warning - can be given for ambiguity. The code kicked in even when the - core.warnambiguousrefs is set to false to squelch this warning, in - which case the cycles spent to look at the ref namespace were an - expensive no-op, as the result was discarded without being used. - - * The naming convention of the packfiles has been updated; it used to - be based on the enumeration of names of the objects that are - contained in the pack, but now it also depends on how the packed - result is represented--packing the same set of objects using - different settings (or delta order) would produce a pack with - different name. - - * "git diff --no-index" mode used to unnecessarily attempt to read - the index when there is one. - - * The deprecated parse-options macro OPT_BOOLEAN has been removed; - use OPT_BOOL or OPT_COUNTUP in new code. - - * A few duplicate implementations of prefix/suffix string comparison - functions have been unified to starts_with() and ends_with(). - - * The new PERLLIB_EXTRA makefile variable can be used to specify - additional directories Perl modules (e.g. the ones necessary to run - git-svn) are installed on the platform when building. - - * "git merge-base" learned the "--fork-point" mode, that implements - the same logic used in "git pull --rebase" to find a suitable fork - point out of the reflog entries for the remote-tracking branch the - work has been based on. "git rebase" has the same logic that can be - triggered with the "--fork-point" option. - - * A third-party "receive-pack" (the responder to "git push") can - advertise the "no-thin" capability to tell "git push" not to use - the thin-pack optimization. Our receive-pack has always been - capable of accepting and fattening a thin-pack, and will continue - not to ask "git push" to use a non-thin pack. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v1.8.5 ------------------- - -Unless otherwise noted, all the fixes since v1.8.5 in the maintenance -track are contained in this release (see the maintenance releases' notes -for details). - - * The pathspec matching code, while comparing two trees (e.g. "git - diff A B -- path1 path2") was too aggressive and failed to match - some paths when multiple pathspecs were involved. - - * "git repack --max-pack-size=8g" stopped being parsed correctly when - the command was reimplemented in C. - - * An earlier update in v1.8.4.x to "git rev-list --objects" with - negative ref had a performance regression. - (merge 200abe7 jk/mark-edges-uninteresting later to maint). - - * A recent update to "git send-email" broke platforms where - /etc/ssl/certs/ directory exists but cannot be used as SSL_ca_path - (e.g. Fedora rawhide). - - * A handful of bugs around interpreting $branch@{upstream} notation - and its lookalike, when $branch part has interesting characters, - e.g. "@", and ":", have been fixed. - - * "git clone" would fail to clone from a repository that has a ref - directly under "refs/", e.g. "refs/stash", because different - validation paths do different things on such a refname. Loosen the - client side's validation to allow such a ref. - - * "git log --left-right A...B" lost the "leftness" of commits - reachable from A when A is a tag as a side effect of a recent - bugfix. This is a regression in 1.8.4.x series. - - * documentations to "git pull" hinted there is an "-m" option because - it incorrectly shared the documentation with "git merge". - - * "git diff A B submod" and "git diff A B submod/" ought to have done - the same for a submodule "submod", but didn't. - - * "git clone $origin foo\bar\baz" on Windows failed to create the - leading directories (i.e. a moral-equivalent of "mkdir -p"). - - * "submodule.*.update=checkout", when propagated from .gitmodules to - .git/config, turned into a "submodule.*.update=none", which did not - make much sense. - (merge efa8fd7 fp/submodule-checkout-mode later to maint). - - * The implementation of 'git stash $cmd "stash@{...}"' did not quote - the stash argument properly and left it split at IFS whitespace. - - * The "--[no-]informative-errors" options to "git daemon" were parsed - a bit too loosely, allowing any other string after these option - names. - - * There is no reason to have a hardcoded upper limit for the number of - parents of an octopus merge, created via the graft mechanism, but - there was. - - * The basic test used to leave unnecessary trash directories in the - t/ directory. - (merge 738a8be jk/test-framework-updates later to maint). - - * "git merge-base --octopus" used to leave cleaning up suboptimal - result to the caller, but now it does the clean-up itself. - - * A "gc" process running as a different user should be able to stop a - new "gc" process from starting, but it didn't. - - * An earlier "clean-up" introduced an unnecessary memory leak. - - * "git add -A" (no other arguments) in a totally empty working tree - used to emit an error. - - * "git log --decorate" did not handle a tag pointed by another tag - nicely. - - * When we figure out how many file descriptors to allocate for - keeping packfiles open, a system with non-working getrlimit() could - cause us to die(), but because we make this call only to get a - rough estimate of how many are available and we do not even attempt - to use up all available file descriptors ourselves, it is nicer to - fall back to a reasonable low value rather than dying. - - * read_sha1_file(), that is the workhorse to read the contents given - an object name, honoured object replacements, but there was no - corresponding mechanism to sha1_object_info() that was used to - obtain the metainfo (e.g. type & size) about the object. This led - callers to weird inconsistencies. - (merge 663a856 cc/replace-object-info later to maint). - - * "git cat-file --batch=", an admittedly useless command, did not - behave very well. - - * "git rev-parse <revs> -- <paths>" did not implement the usual - disambiguation rules the commands in the "git log" family used in - the same way. - - * "git mv A B/", when B does not exist as a directory, should error - out, but it didn't. - - * A workaround to an old bug in glibc prior to glibc 2.17 has been - retired; this would remove a side effect of the workaround that - corrupts system error messages in non-C locales. - - * SSL-related options were not passed correctly to underlying socket - layer in "git send-email". - - * "git commit -v" appends the patch to the log message before - editing, and then removes the patch when the editor returned - control. However, the patch was not stripped correctly when the - first modified path was a submodule. - - * "git fetch --depth=0" was a no-op, and was silently ignored. - Diagnose it as an error. - - * Remote repository URLs expressed in scp-style host:path notation are - parsed more carefully (e.g. "foo/bar:baz" is local, "[::1]:/~user" asks - to connect to user's home directory on host at address ::1. - - * "git diff -- ':(icase)makefile'" was unnecessarily rejected at the - command line parser. - - * "git cat-file --batch-check=ok" did not check the existence of - the named object. - - * "git am --abort" sometimes complained about not being able to write - a tree with an 0{40} object in it. - - * Two processes creating loose objects at the same time could have - failed unnecessarily when the name of their new objects started - with the same byte value, due to a race condition. diff --git a/third_party/git/Documentation/RelNotes/1.9.1.txt b/third_party/git/Documentation/RelNotes/1.9.1.txt deleted file mode 100644 index 5b0602053caf..000000000000 --- a/third_party/git/Documentation/RelNotes/1.9.1.txt +++ /dev/null @@ -1,59 +0,0 @@ -Git v1.9.1 Release Notes -======================== - -Fixes since v1.9.0 ------------------- - - * "git clean -d pathspec" did not use the given pathspec correctly - and ended up cleaning too much. - - * "git difftool" misbehaved when the repository is bound to the - working tree with the ".git file" mechanism, where a textual file - ".git" tells us where it is. - - * "git push" did not pay attention to branch.*.pushremote if it is - defined earlier than remote.pushdefault; the order of these two - variables in the configuration file should not matter, but it did - by mistake. - - * Codepaths that parse timestamps in commit objects have been - tightened. - - * "git diff --external-diff" incorrectly fed the submodule directory - in the working tree to the external diff driver when it knew it is - the same as one of the versions being compared. - - * "git reset" needs to refresh the index when working in a working - tree (it can also be used to match the index to the HEAD in an - otherwise bare repository), but it failed to set up the working - tree properly, causing GIT_WORK_TREE to be ignored. - - * "git check-attr" when working on a repository with a working tree - did not work well when the working tree was specified via the - --work-tree (and obviously with --git-dir) option. - - * "merge-recursive" was broken in 1.7.7 era and stopped working in - an empty (temporary) working tree, when there are renames - involved. This has been corrected. - - * "git rev-parse" was loose in rejecting command line arguments - that do not make sense, e.g. "--default" without the required - value for that option. - - * include.path variable (or any variable that expects a path that - can use ~username expansion) in the configuration file is not a - boolean, but the code failed to check it. - - * "git diff --quiet -- pathspec1 pathspec2" sometimes did not return - correct status value. - - * Attempting to deepen a shallow repository by fetching over smart - HTTP transport failed in the protocol exchange, when no-done - extension was used. The fetching side waited for the list of - shallow boundary commits after the sending end stopped talking to - it. - - * Allow "git cmd path/", when the 'path' is where a submodule is - bound to the top-level working tree, to match 'path', despite the - extra and unnecessary trailing slash (such a slash is often - given by command line completion). diff --git a/third_party/git/Documentation/RelNotes/1.9.2.txt b/third_party/git/Documentation/RelNotes/1.9.2.txt deleted file mode 100644 index 47a34ca964da..000000000000 --- a/third_party/git/Documentation/RelNotes/1.9.2.txt +++ /dev/null @@ -1,67 +0,0 @@ -Git v1.9.2 Release Notes -======================== - -Fixes since v1.9.1 ------------------- - - * Documentation and in-code comments had many instances of mistaken - use of "nor", which have been corrected. - - * "git fetch --prune", when the right-hand-side of multiple fetch - refspecs overlap (e.g. storing "refs/heads/*" to - "refs/remotes/origin/*", while storing "refs/frotz/*" to - "refs/remotes/origin/fr/*"), aggressively thought that lack of - "refs/heads/fr/otz" on the origin site meant we should remove - "refs/remotes/origin/fr/otz" from us, without checking their - "refs/frotz/otz" first. - - Note that such a configuration is inherently unsafe (think what - should happen when "refs/heads/fr/otz" does appear on the origin - site), but that is not a reason not to be extra careful. - - * "git update-ref --stdin" did not fail a request to create a ref - when the ref already existed. - - * "git diff --no-index -Mq a b" fell into an infinite loop. - - * When it is not necessary to edit a commit log message (e.g. "git - commit -m" is given a message without specifying "-e"), we used to - disable the spawning of the editor by overriding GIT_EDITOR, but - this means all the uses of the editor, other than to edit the - commit log message, are also affected. - - * "git status --porcelain --branch" showed its output with labels - "ahead/behind/gone" translated to the user's locale. - - * "git mv" that moves a submodule forgot to adjust the array that - uses to keep track of which submodules were to be moved to update - its configuration. - - * Length limit for the pathname used when removing a path in a deep - subdirectory has been removed to avoid buffer overflows. - - * The test helper lib-terminal always run an actual test_expect_* - when included, which screwed up with the use of skil-all that may - have to be done later. - - * "git index-pack" used a wrong variable to name the keep-file in an - error message when the file cannot be written or closed. - - * "rebase -i" produced a broken insn sheet when the title of a commit - happened to contain '\n' (or ended with '\c') due to a careless use - of 'echo'. - - * There were a few instances of 'git-foo' remaining in the - documentation that should have been spelled 'git foo'. - - * Serving objects from a shallow repository needs to write a - new file to hold the temporary shallow boundaries but it was not - cleaned when we exit due to die() or a signal. - - * When "git stash pop" stops after failing to apply the stash - (e.g. due to conflicting changes), the stash is not dropped. State - that explicitly in the output to let the users know. - - * The labels in "git status" output that describe the nature of - conflicts (e.g. "both deleted") were limited to 20 bytes, which was - too short for some l10n (e.g. fr). diff --git a/third_party/git/Documentation/RelNotes/1.9.3.txt b/third_party/git/Documentation/RelNotes/1.9.3.txt deleted file mode 100644 index 17b05ca7b546..000000000000 --- a/third_party/git/Documentation/RelNotes/1.9.3.txt +++ /dev/null @@ -1,21 +0,0 @@ -Git v1.9.3 Release Notes -======================== - -Fixes since v1.9.2 ------------------- - - * "git p4" dealing with changes in binary files were broken by a - change in 1.9 release. - - * The shell prompt script (in contrib/), when using the PROMPT_COMMAND - interface, used an unsafe construct when showing the branch name in - $PS1. - - * "git rebase" used a POSIX shell construct FreeBSD /bin/sh does not - work well with. - - * Some more Unicode codepoints defined in Unicode 6.3 as having - zero width have been taught to our display column counting logic. - - * Some tests used shell constructs that did not work well on - FreeBSD. diff --git a/third_party/git/Documentation/RelNotes/1.9.4.txt b/third_party/git/Documentation/RelNotes/1.9.4.txt deleted file mode 100644 index e1d183543684..000000000000 --- a/third_party/git/Documentation/RelNotes/1.9.4.txt +++ /dev/null @@ -1,16 +0,0 @@ -Git v1.9.4 Release Notes -======================== - -Fixes since v1.9.3 ------------------- - - * Commands that take pathspecs on the command line misbehaved when - the pathspec is given as an absolute pathname (which is a - practice not particularly encouraged) that points at a symbolic - link in the working tree. - - * An earlier fix to the shell prompt script (in contrib/) for using - the PROMPT_COMMAND interface did not correctly check if the extra - code path needs to trigger, causing the branch name not to appear - when 'promptvars' option is disabled in bash or PROMPT_SUBST is - unset in zsh. diff --git a/third_party/git/Documentation/RelNotes/1.9.5.txt b/third_party/git/Documentation/RelNotes/1.9.5.txt deleted file mode 100644 index 8d6ac0cf5357..000000000000 --- a/third_party/git/Documentation/RelNotes/1.9.5.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git v1.9.5 Release Notes -======================== - -Fixes since v1.9.4 ------------------- - - * We used to allow committing a path ".Git/config" with Git that is - running on a case sensitive filesystem, but an attempt to check out - such a path with Git that runs on a case insensitive filesystem - would have clobbered ".git/config", which is definitely not what - the user would have expected. Git now prevents you from tracking - a path with ".Git" (in any case combination) as a path component. - - * On Windows, certain path components that are different from ".git" - are mapped to ".git", e.g. "git~1/config" is treated as if it were - ".git/config". HFS+ has a similar issue, where certain unicode - codepoints are ignored, e.g. ".g\u200cit/config" is treated as if - it were ".git/config". Pathnames with these potential issues are - rejected on the affected systems. Git on systems that are not - affected by this issue (e.g. Linux) can also be configured to - reject them to ensure cross platform interoperability of the hosted - projects. - - * "git fsck" notices a tree object that records such a path that can - be confused with ".git", and with receive.fsckObjects configuration - set to true, an attempt to "git push" such a tree object will be - rejected. Such a path may not be a problem on a well behaving - filesystem but in order to protect those on HFS+ and on case - insensitive filesystems, this check is enabled on all platforms. - -A big "thanks!" for bringing this issue to us goes to our friends in -the Mercurial land, namely, Matt Mackall and Augie Fackler. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.0.0.txt b/third_party/git/Documentation/RelNotes/2.0.0.txt deleted file mode 100644 index 2617372a0c50..000000000000 --- a/third_party/git/Documentation/RelNotes/2.0.0.txt +++ /dev/null @@ -1,364 +0,0 @@ -Git v2.0 Release Notes -====================== - -Backward compatibility notes ----------------------------- - -When "git push [$there]" does not say what to push, we have used the -traditional "matching" semantics so far (all your branches were sent -to the remote as long as there already are branches of the same name -over there). In Git 2.0, the default is now the "simple" semantics, -which pushes: - - - only the current branch to the branch with the same name, and only - when the current branch is set to integrate with that remote - branch, if you are pushing to the same remote as you fetch from; or - - - only the current branch to the branch with the same name, if you - are pushing to a remote that is not where you usually fetch from. - -You can use the configuration variable "push.default" to change -this. If you are an old-timer who wants to keep using the -"matching" semantics, you can set the variable to "matching", for -example. Read the documentation for other possibilities. - -When "git add -u" and "git add -A" are run inside a subdirectory -without specifying which paths to add on the command line, they -operate on the entire tree for consistency with "git commit -a" and -other commands (these commands used to operate only on the current -subdirectory). Say "git add -u ." or "git add -A ." if you want to -limit the operation to the current directory. - -"git add <path>" is the same as "git add -A <path>" now, so that -"git add dir/" will notice paths you removed from the directory and -record the removal. In older versions of Git, "git add <path>" used -to ignore removals. You can say "git add --ignore-removal <path>" to -add only added or modified paths in <path>, if you really want to. - -The "-q" option to "git diff-files", which does *NOT* mean "quiet", -has been removed (it told Git to ignore deletion, which you can do -with "git diff-files --diff-filter=d"). - -"git request-pull" lost a few "heuristics" that often led to mistakes. - -The default prefix for "git svn" has changed in Git 2.0. For a long -time, "git svn" created its remote-tracking branches directly under -refs/remotes, but it now places them under refs/remotes/origin/ unless -it is told otherwise with its "--prefix" option. - - -Updates since v1.9 series -------------------------- - -UI, Workflows & Features - - * The "multi-mail" post-receive hook (in contrib/) has been updated - to a more recent version from upstream. - - * The "remote-hg/bzr" remote-helper interfaces (used to be in - contrib/) are no more. They are now maintained separately as - third-party plug-ins in their own repositories. - - * "git gc --aggressive" learned "--depth" option and - "gc.aggressiveDepth" configuration variable to allow use of a less - insane depth than the built-in default value of 250. - - * "git log" learned the "--show-linear-break" option to show where a - single strand-of-pearls is broken in its output. - - * The "rev-parse --parseopt" mechanism used by scripted Porcelains to - parse command-line options and to give help text learned to take - the argv-help (the placeholder string for an option parameter, - e.g. "key-id" in "--gpg-sign=<key-id>"). - - * The pattern to find where the function begins in C/C++ used in - "diff" and "grep -p" has been updated to improve viewing C++ - sources. - - * "git rebase" learned to interpret a lone "-" as "@{-1}", the - branch that we were previously on. - - * "git commit --cleanup=<mode>" learned a new mode, scissors. - - * "git tag --list" output can be sorted using "version sort" with - "--sort=version:refname". - - * Discard the accumulated "heuristics" to guess from which branch the - result wants to be pulled from and make sure that what the end user - specified is not second-guessed by "git request-pull", to avoid - mistakes. When you pushed out your 'master' branch to your public - repository as 'for-linus', use the new "master:for-linus" syntax to - denote the branch to be pulled. - - * "git grep" learned to behave in a way similar to native grep when - "-h" (no header) and "-c" (count) options are given. - - * "git push" via transport-helper interface has been updated to - allow forced ref updates in a way similar to the natively - supported transports. - - * The "simple" mode is the default for "git push". - - * "git add -u" and "git add -A", when run without any pathspec, is a - tree-wide operation even when run inside a subdirectory of a - working tree. - - * "git add <path>" is the same as "git add -A <path>" now. - - * "core.statinfo" configuration variable, which is a - never-advertised synonym to "core.checkstat", has been removed. - - * The "-q" option to "git diff-files", which does *NOT* mean - "quiet", has been removed (it told Git to ignore deletion, which - you can do with "git diff-files --diff-filter=d"). - - * Server operators can loosen the "tips of refs only" restriction for - the remote archive service with the uploadarchive.allowUnreachable - configuration option. - - * The progress indicators from various time-consuming commands have - been marked for i18n/l10n. - - * "git notes -C <blob>" diagnoses as an error an attempt to use an - object that is not a blob. - - * "git config" learned to read from the standard input when "-" is - given as the value to its "--file" parameter (attempting an - operation to update the configuration in the standard input is - rejected, of course). - - * Trailing whitespaces in .gitignore files, unless they are quoted - for fnmatch(3), e.g. "path\ ", are warned and ignored. Strictly - speaking, this is a backward-incompatible change, but very unlikely - to bite any sane user and adjusting should be obvious and easy. - - * Many commands that create commits, e.g. "pull" and "rebase", - learned to take the "--gpg-sign" option on the command line. - - * "git commit" can be told to always GPG sign the resulting commit - by setting the "commit.gpgsign" configuration variable to "true" - (the command-line option "--no-gpg-sign" should override it). - - * "git pull" can be told to only accept fast-forward by setting the - new "pull.ff" configuration variable. - - * "git reset" learned the "-N" option, which does not reset the index - fully for paths the index knows about but the tree-ish the command - resets to does not (these paths are kept as intend-to-add entries). - - -Performance, Internal Implementation, etc. - - * The compilation options to port to AIX and to MSVC have been - updated. - - * We started using wildmatch() in place of fnmatch(3) a few releases - ago; complete the process and stop using fnmatch(3). - - * Uses of curl's "multi" interface and "easy" interface do not mix - well when we attempt to reuse outgoing connections. Teach the RPC - over HTTP code, used in the smart HTTP transport, not to use the - "easy" interface. - - * The bitmap-index feature from JGit has been ported, which should - significantly improve performance when serving objects from a - repository that uses it. - - * The way "git log --cc" shows a combined diff against multiple - parents has been optimized. - - * The prefixcmp() and suffixcmp() functions are gone. Use - starts_with() and ends_with(), and also consider if skip_prefix() - suits your needs better when using the former. - - -Also contains various documentation updates and code clean-ups. Many -of them came from flurry of activities as GSoC candidate microproject -exercises. - - -Fixes since v1.9 series ------------------------ - -Unless otherwise noted, all the fixes since v1.9 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git p4" was broken in 1.9 release to deal with changes in binary - files. - (merge 749b668 cl/p4-use-diff-tree later to maint). - - * The shell prompt script (in contrib/), when using the PROMPT_COMMAND - interface, used an unsafe construct when showing the branch name in - $PS1. - (merge 1e4119c8 rh/prompt-pcmode-avoid-eval-on-refname later to maint). - - * "git rebase" used a POSIX shell construct FreeBSD's /bin/sh does not - work well with. - (merge 8cd6596 km/avoid-non-function-return-in-rebase later to maint). - - * zsh prompt (in contrib/) leaked unnecessary error messages. - - * Bash completion (in contrib/) did not complete the refs and remotes - correctly given "git pu<TAB>" when "pu" is aliased to "push". - - * Some more Unicode code points, defined in Unicode 6.3 as having zero - width, have been taught to our display column counting logic. - (merge d813ab9 tb/unicode-6.3-zero-width later to maint). - - * Some tests used shell constructs that did not work well on FreeBSD - (merge ff7a1c6 km/avoid-bs-in-shell-glob later to maint). - (merge 00764ca km/avoid-cp-a later to maint). - - * "git update-ref --stdin" did not fail a request to create a ref - when the ref already existed. - (merge b9d56b5 mh/update-ref-batch-create-fix later to maint). - - * "git diff --no-index -Mq a b" fell into an infinite loop. - (merge ad1c3fb jc/fix-diff-no-index-diff-opt-parse later to maint). - - * "git fetch --prune", when the right-hand side of multiple fetch - refspecs overlap (e.g. storing "refs/heads/*" to - "refs/remotes/origin/*", while storing "refs/frotz/*" to - "refs/remotes/origin/fr/*"), aggressively thought that lack of - "refs/heads/fr/otz" on the origin site meant we should remove - "refs/remotes/origin/fr/otz" from us, without checking their - "refs/frotz/otz" first. - - Note that such a configuration is inherently unsafe (think what - should happen when "refs/heads/fr/otz" does appear on the origin - site), but that is not a reason not to be extra careful. - (merge e6f6371 cn/fetch-prune-overlapping-destination later to maint). - - * "git status --porcelain --branch" showed its output with labels - "ahead/behind/gone" translated to the user's locale. - (merge 7a76c28 mm/status-porcelain-format-i18n-fix later to maint). - - * A stray environment variable $prefix could have leaked into and - affected the behaviour of the "subtree" script (in contrib/). - - * When it is not necessary to edit a commit log message (e.g. "git - commit -m" is given a message without specifying "-e"), we used to - disable the spawning of the editor by overriding GIT_EDITOR, but - this means all the uses of the editor, other than to edit the - commit log message, are also affected. - (merge b549be0 bp/commit-p-editor later to maint). - - * "git mv" that moves a submodule forgot to adjust the array that - uses to keep track of which submodules were to be moved to update - its configuration. - (merge fb8a4e8 jk/mv-submodules-fix later to maint). - - * Length limit for the pathname used when removing a path in a deep - subdirectory has been removed to avoid buffer overflows. - (merge 2f29e0c mh/remove-subtree-long-pathname-fix later to maint). - - * The test helper lib-terminal always run an actual test_expect_* - when included, which screwed up with the use of skil-all that may - have to be done later. - (merge 7e27173 jk/lib-terminal-lazy later to maint). - - * "git index-pack" used a wrong variable to name the keep-file in an - error message when the file cannot be written or closed. - (merge de983a0 nd/index-pack-error-message later to maint). - - * "rebase -i" produced a broken insn sheet when the title of a commit - happened to contain '\n' (or ended with '\c') due to a careless use - of 'echo'. - (merge cb1aefd us/printf-not-echo later to maint). - - * There were a few instances of 'git-foo' remaining in the - documentation that should have been spelled 'git foo'. - (merge 3c3e6f5 rr/doc-merge-strategies later to maint). - - * Serving objects from a shallow repository needs to write a - new file to hold the temporary shallow boundaries, but it was not - cleaned when we exit due to die() or a signal. - (merge 7839632 jk/shallow-update-fix later to maint). - - * When "git stash pop" stops after failing to apply the stash - (e.g. due to conflicting changes), the stash is not dropped. State - that explicitly in the output to let the users know. - (merge 2d4c993 jc/stash-pop-not-popped later to maint). - - * The labels in "git status" output that describe the nature of - conflicts (e.g. "both deleted") were limited to 20 bytes, which was - too short for some l10n (e.g. fr). - (merge c7cb333 jn/wt-status later to maint). - - * "git clean -d pathspec" did not use the given pathspec correctly - and ended up cleaning too much. - (merge 1f2e108 jk/clean-d-pathspec later to maint). - - * "git difftool" misbehaved when the repository is bound to the - working tree with the ".git file" mechanism, where a textual file - ".git" tells us where it is. - (merge fcfec8b da/difftool-git-files later to maint). - - * "git push" did not pay attention to "branch.*.pushremote" if it is - defined earlier than "remote.pushdefault"; the order of these two - variables in the configuration file should not matter, but it did - by mistake. - (merge 98b406f jk/remote-pushremote-config-reading later to maint). - - * Code paths that parse timestamps in commit objects have been - tightened. - (merge f80d1f9 jk/commit-dates-parsing-fix later to maint). - - * "git diff --external-diff" incorrectly fed the submodule directory - in the working tree to the external diff driver when it knew that it - is the same as one of the versions being compared. - (merge aba4727 tr/diff-submodule-no-reuse-worktree later to maint). - - * "git reset" needs to refresh the index when working in a working - tree (it can also be used to match the index to the HEAD in an - otherwise bare repository), but it failed to set up the working - tree properly, causing GIT_WORK_TREE to be ignored. - (merge b7756d4 nd/reset-setup-worktree later to maint). - - * "git check-attr" when working on a repository with a working tree - did not work well when the working tree was specified via the - "--work-tree" (and obviously with "--git-dir") option. - (merge cdbf623 jc/check-attr-honor-working-tree later to maint). - - * "merge-recursive" was broken in 1.7.7 era and stopped working in - an empty (temporary) working tree, when there are renames - involved. This has been corrected. - (merge 6e2068a bk/refresh-missing-ok-in-merge-recursive later to maint.) - - * "git rev-parse" was loose in rejecting command-line arguments - that do not make sense, e.g. "--default" without the required - value for that option. - (merge a43219f ds/rev-parse-required-args later to maint.) - - * "include.path" variable (or any variable that expects a path that - can use ~username expansion) in the configuration file is not a - boolean, but the code failed to check it. - (merge 67beb60 jk/config-path-include-fix later to maint.) - - * Commands that take pathspecs on the command line misbehaved when - the pathspec is given as an absolute pathname (which is a - practice not particularly encouraged) that points at a symbolic - link in the working tree. - (merge 6127ff6 mw/symlinks later to maint.) - - * "git diff --quiet -- pathspec1 pathspec2" sometimes did not return - the correct status value. - (merge f34b205 nd/diff-quiet-stat-dirty later to maint.) - - * Attempting to deepen a shallow repository by fetching over smart - HTTP transport failed in the protocol exchange, when the no-done - extension was used. The fetching side waited for the list of - shallow boundary commits after the sending side stopped talking to - it. - (merge 0232852 nd/http-fetch-shallow-fix later to maint.) - - * Allow "git cmd path/", when the 'path' is where a submodule is - bound to the top-level working tree, to match 'path', despite the - extra and unnecessary trailing slash (such a slash is often - given by command-line completion). - (merge 2e70c01 nd/submodule-pathspec-ending-with-slash later to maint.) - - * Documentation and in-code comments had many instances of mistaken - use of "nor", which have been corrected. - (merge 235e8d5 jl/nor-or-nand-and later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.0.1.txt b/third_party/git/Documentation/RelNotes/2.0.1.txt deleted file mode 100644 index ce5579db3e7c..000000000000 --- a/third_party/git/Documentation/RelNotes/2.0.1.txt +++ /dev/null @@ -1,115 +0,0 @@ -Git v2.0.1 Release Notes -======================== - - * We used to unconditionally disable the pager in the pager process - we spawn to feed out output, but that prevented people who want to - run "less" within "less" from doing so. - - * Tools that read diagnostic output in our standard error stream do - not want to see terminal control sequence (e.g. erase-to-eol). - Detect them by checking if the standard error stream is connected - to a tty. - * Reworded the error message given upon a failure to open an existing - loose object file due to e.g. permission issues; it was reported as - the object being corrupt, but that is not quite true. - - * "git log -2master" is a common typo that shows two commits starting - from whichever random branch that is not 'master' that happens to - be checked out currently. - - * The "%<(10,trunc)%s" pretty format specifier in the log family of - commands is used to truncate the string to a given length (e.g. 10 - in the example) with padding to column-align the output, but did - not take into account that number of bytes and number of display - columns are different. - - * The "mailmap.file" configuration option did not support the tilde - expansion (i.e. ~user/path and ~/path). - - * The completion scripts (in contrib/) did not know about quite a few - options that are common between "git merge" and "git pull", and a - couple of options unique to "git merge". - - * "--ignore-space-change" option of "git apply" ignored the spaces - at the beginning of line too aggressively, which is inconsistent - with the option of the same name "diff" and "git diff" have. - - * "git blame" miscounted number of columns needed to show localized - timestamps, resulting in jaggy left-side-edge of the source code - lines in its output. - - * "git blame" assigned the blame to the copy in the working-tree if - the repository is set to core.autocrlf=input and the file used CRLF - line endings. - - * "git commit --allow-empty-message -C $commit" did not work when the - commit did not have any log message. - - * "git diff --find-copies-harder" sometimes pretended as if the mode - bits have changed for paths that are marked with assume-unchanged - bit. - - * "git format-patch" did not enforce the rule that the "--follow" - option from the log/diff family of commands must be used with - exactly one pathspec. - - * "git gc --auto" was recently changed to run in the background to - give control back early to the end-user sitting in front of the - terminal, but it forgot that housekeeping involving reflogs should - be done without other processes competing for accesses to the refs. - - * "git grep -O" to show the lines that hit in the pager did not work - well with case insensitive search. We now spawn "less" with its - "-I" option when it is used as the pager (which is the default). - - * We used to disable threaded "git index-pack" on platforms without - thread-safe pread(); use a different workaround for such - platforms to allow threaded "git index-pack". - - * The error reporting from "git index-pack" has been improved to - distinguish missing objects from type errors. - - * "git mailinfo" used to read beyond the end of header string while - parsing an incoming e-mail message to extract the patch. - - * On a case insensitive filesystem, merge-recursive incorrectly - deleted the file that is to be renamed to a name that is the same - except for case differences. - - * "git pack-objects" unnecessarily copied the previous contents when - extending the hashtable, even though it will populate the table - from scratch anyway. - - * "git rerere forget" did not work well when merge.conflictstyle - was set to a non-default value. - - * "git remote rm" and "git remote prune" can involve removing many - refs at once, which is not a very efficient thing to do when very - many refs exist in the packed-refs file. - - * "git log --exclude=<glob> --all | git shortlog" worked as expected, - but "git shortlog --exclude=<glob> --all", which is supposed to be - identical to the above pipeline, was not accepted at the command - line argument parser level. - - * The autostash mode of "git rebase -i" did not restore the dirty - working tree state if the user aborted the interactive rebase by - emptying the insn sheet. - - * "git show -s" (i.e. show log message only) used to incorrectly emit - an extra blank line after a merge commit. - - * "git status", even though it is a read-only operation, tries to - update the index with refreshed lstat(2) info to optimize future - accesses to the working tree opportunistically, but this could - race with a "read-write" operation that modify the index while it - is running. Detect such a race and avoid overwriting the index. - - * "git status" (and "git commit") behaved as if changes in a modified - submodule are not there if submodule.*.ignore configuration is set, - which was misleading. The configuration is only to unclutter diff - output during the course of development, and should not to hide - changes in the "status" output to cause the users forget to commit - them. - - * The mode to run tests with HTTP server tests disabled was broken. diff --git a/third_party/git/Documentation/RelNotes/2.0.2.txt b/third_party/git/Documentation/RelNotes/2.0.2.txt deleted file mode 100644 index 8e8321b2ef3b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.0.2.txt +++ /dev/null @@ -1,32 +0,0 @@ -Git v2.0.2 Release Notes -======================== - - * Documentation for "git submodule sync" forgot to say that the subcommand - can take the "--recursive" option. - - * Mishandling of patterns in .gitignore that has trailing SPs quoted - with backslashes (e.g. ones that end with "\ ") have been - corrected. - - * Recent updates to "git repack" started to duplicate objects that - are in packfiles marked with .keep flag into the new packfile by - mistake. - - * "git clone -b brefs/tags/bar" would have mistakenly thought we were - following a single tag, even though it was a name of the branch, - because it incorrectly used strstr(). - - * "%G" (nothing after G) is an invalid pretty format specifier, but - the parser did not notice it as garbage. - - * Code to avoid adding the same alternate object store twice was - subtly broken for a long time, but nobody seems to have noticed. - - * A handful of code paths had to read the commit object more than - once when showing header fields that are usually not parsed. The - internal data structure to keep track of the contents of the commit - object has been updated to reduce the need for this double-reading, - and to allow the caller find the length of the object. - - * During "git rebase --merge", a conflicted patch could not be - skipped with "--skip" if the next one also conflicted. diff --git a/third_party/git/Documentation/RelNotes/2.0.3.txt b/third_party/git/Documentation/RelNotes/2.0.3.txt deleted file mode 100644 index 4047b46bbe8d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.0.3.txt +++ /dev/null @@ -1,17 +0,0 @@ -Git v2.0.3 Release Notes -======================== - - * An ancient rewrite passed a wrong pointer to a curl library - function in a rarely used code path. - - * "filter-branch" left an empty single-parent commit that results when - all parents of a merge commit gets mapped to the same commit, even - under "--prune-empty". - - * "log --show-signature" incorrectly decided the color to paint a - mergetag that was and was not correctly validated. - - * "log --show-signature" did not pay attention to "--graph" option. - -Also a lot of fixes to the tests and some updates to the docs are -included. diff --git a/third_party/git/Documentation/RelNotes/2.0.4.txt b/third_party/git/Documentation/RelNotes/2.0.4.txt deleted file mode 100644 index 7e340921a267..000000000000 --- a/third_party/git/Documentation/RelNotes/2.0.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.0.4 Release Notes -======================== - - * An earlier update to v2.0.2 broken output from "git diff-tree", - which is fixed in this release. diff --git a/third_party/git/Documentation/RelNotes/2.0.5.txt b/third_party/git/Documentation/RelNotes/2.0.5.txt deleted file mode 100644 index 3a16f697e818..000000000000 --- a/third_party/git/Documentation/RelNotes/2.0.5.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git v2.0.5 Release Notes -======================== - -Fixes since v2.0.4 ------------------- - - * We used to allow committing a path ".Git/config" with Git that is - running on a case sensitive filesystem, but an attempt to check out - such a path with Git that runs on a case insensitive filesystem - would have clobbered ".git/config", which is definitely not what - the user would have expected. Git now prevents you from tracking - a path with ".Git" (in any case combination) as a path component. - - * On Windows, certain path components that are different from ".git" - are mapped to ".git", e.g. "git~1/config" is treated as if it were - ".git/config". HFS+ has a similar issue, where certain unicode - codepoints are ignored, e.g. ".g\u200cit/config" is treated as if - it were ".git/config". Pathnames with these potential issues are - rejected on the affected systems. Git on systems that are not - affected by this issue (e.g. Linux) can also be configured to - reject them to ensure cross platform interoperability of the hosted - projects. - - * "git fsck" notices a tree object that records such a path that can - be confused with ".git", and with receive.fsckObjects configuration - set to true, an attempt to "git push" such a tree object will be - rejected. Such a path may not be a problem on a well behaving - filesystem but in order to protect those on HFS+ and on case - insensitive filesystems, this check is enabled on all platforms. - -A big "thanks!" for bringing this issue to us goes to our friends in -the Mercurial land, namely, Matt Mackall and Augie Fackler. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.1.0.txt b/third_party/git/Documentation/RelNotes/2.1.0.txt deleted file mode 100644 index ae4753728eff..000000000000 --- a/third_party/git/Documentation/RelNotes/2.1.0.txt +++ /dev/null @@ -1,391 +0,0 @@ -Git v2.1 Release Notes -====================== - -Backward compatibility notes ----------------------------- - - * The default value we give to the environment variable LESS has been - changed from "FRSX" to "FRX", losing "S" (chop long lines instead - of wrapping). Existing users who prefer not to see line-wrapped - output may want to set - - $ git config core.pager "less -S" - - to restore the traditional behaviour. It is expected that people - find output from most subcommands easier to read with the new - default, except for "blame" which tends to produce really long - lines. To override the new default only for "git blame", you can - do this: - - $ git config pager.blame "less -S" - - * A few disused directories in contrib/ have been retired. - - -Updates since v2.0 ------------------- - -UI, Workflows & Features - - * Since the very beginning of Git, we gave the LESS environment a - default value "FRSX" when we spawn "less" as the pager. "S" (chop - long lines instead of wrapping) has been removed from this default - set of options, because it is more or less a personal taste thing, - as opposed to the others that have good justifications (i.e. "R" is - very much justified because many kinds of output we produce are - colored and "FX" is justified because output we produce is often - shorter than a page). - - * The logic and data used to compute the display width needed for - UTF-8 strings have been updated to match Unicode 7.0 better. - - * HTTP-based transports learned to better propagate the error messages from - the webserver to the client coming over the HTTP transport. - - * The completion script for bash (in contrib/) has been updated to - better handle aliases that define a complex sequence of commands. - - * The "core.preloadindex" configuration variable is enabled by default, - allowing modern platforms to take advantage of their - multiple cores. - - * "git clone" applies the "if cloning from a local disk, physically - copy the repository using hardlinks, unless otherwise told not to with - --no-local" optimization when the url.*.insteadOf mechanism rewrites a - remote-repository "git clone $URL" into a - clone from a local disk. - - * "git commit --date=<date>" option learned more - timestamp formats, including "--date=now". - - * The `core.commentChar` configuration variable is used to specify a - custom comment character (other than the default "#") for - the commit message editor. This can be set to `auto` to attempt to - choose a different character that does not conflict with any that - already starts a line in the message being edited, for cases like - "git commit --amend". - - * "git format-patch" learned --signature-file=<file> to add the contents - of a file as a signature to the mail message it produces. - - * "git grep" learned the grep.fullname configuration variable to force - "--full-name" to be the default. This may cause regressions for - scripted users who do not expect this new behaviour. - - * "git imap-send" learned to ask the credential helper for auth - material. - - * "git log" and friends now understand the value "auto" for the - "log.decorate" configuration variable to enable the "--decorate" - option automatically when the output is sent to tty. - - * "git merge" without an argument, even when there is an upstream - defined for the current branch, refused to run until - merge.defaultToUpstream is set to true. Flip the default of that - configuration variable to true. - - * "git mergetool" learned to drive the vimdiff3 backend. - - * mergetool.prompt used to default to 'true', always asking "do you - really want to run the tool on this path?". The default has been - changed to 'false'. However, the prompt will still appear if - mergetool used its autodetection system to guess which tool to use. - Users who explicitly specify or configure a tool will no longer see - the prompt by default. - - Strictly speaking, this is a backward incompatible change and - users need to explicitly set the variable to 'true' if they want - to be prompted to confirm running the tool on each path. - - * "git replace" learned the "--edit" subcommand to create a - replacement by editing an existing object. - - * "git replace" learned a "--graft" option to rewrite the parents of a - commit. - - * "git send-email" learned "--to-cover" and "--cc-cover" options, to - tell it to copy To: and Cc: headers found in the first input file - when emitting later input files. - - * "git svn" learned to cope with malformed timestamps with only one - digit in the hour part, e.g. 2014-01-07T5:01:02.048176Z, emitted - by some broken subversion server implementations. - - * "git tag" when editing the tag message shows the name of the tag - being edited as a comment in the editor. - - * "git tag" learned to pay attention to "tag.sort" configuration, to - be used as the default sort order when no --sort=<value> option - is given. - - * A new "git verify-commit" command, to check GPG signatures in signed - commits, in a way similar to "git verify-tag" is used to check - signed tags, was added. - - -Performance, Internal Implementation, etc. - - * Build procedure for 'subtree' (in contrib/) has been cleaned up. - - * Support for the profile-feedback build, which has - bit-rotted for quite a while, has been updated. - - * An experimental format to use two files (the base file and - incremental changes relative to it) to represent the index has been - introduced; this may reduce I/O cost of rewriting a large index - when only small part of the working tree changes. - - * Effort to shrink the size of patches Windows folks maintain on top - by upstreaming them continues. More tests that are not applicable - to the Windows environment are identified and either skipped or - made more portable. - - * Eradication of "test $condition -a $condition" from our scripts - continues. - - * The `core.deltabasecachelimit` used to default to 16 MiB , but this - proved to be too small, and has been bumped to 96 MiB. - - * "git blame" has been optimized greatly by reorganising the data - structure that is used to keep track of the work to be done. - - * "git diff" that compares 3-or-more trees (e.g. parents and the - result of a merge) has been optimized. - - * The API to update/delete references are being converted to handle - updates to multiple references in a transactional way. As an - example, "update-ref --stdin [-z]" has been updated to use this - API. - - * skip_prefix() and strip_suffix() API functions are used a lot more - widely throughout the codebase now. - - * Parts of the test scripts can be skipped by using a range notation, - e.g. "sh t1234-test.sh --run='1-4 6 8-'" to omit test piece 5 and 7 - and run everything else. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.0 ----------------- - -Unless otherwise noted, all the fixes since v2.0 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * We used to unconditionally disable the pager in the pager process - we spawn to feed out output, but that prevented people who want to - run "less" within "less" from doing so. - (merge c0459ca je/pager-do-not-recurse later to maint). - - * Tools that read diagnostic output in our standard error stream do - not want to see terminal control sequence (e.g. erase-to-eol). - Detect them by checking if the standard error stream is connected - to a tty. - (merge 38de156 mn/sideband-no-ansi later to maint). - - * Mishandling of patterns in .gitignore that have trailing SPs quoted - with backslashes (e.g. ones that end with "\ ") has been - corrected. - (merge 97c1364be6b pb/trim-trailing-spaces later to maint). - - * Reworded the error message given upon a failure to open an existing - loose object file due to e.g. permission issues; it was reported as - the object being corrupt, but that is not quite true. - (merge d6c8a05 jk/report-fail-to-read-objects-better later to maint). - - * "git log -2master" is a common typo that shows two commits starting - from whichever random branch that is not 'master' that happens to - be checked out currently. - (merge e3fa568 jc/revision-dash-count-parsing later to maint). - - * Code to avoid adding the same alternate object store twice was - subtly broken for a long time, but nobody seems to have noticed. - (merge 80b4785 rs/fix-alt-odb-path-comparison later to maint). - (merge 539e750 ek/alt-odb-entry-fix later to maint). - - * The "%<(10,trunc)%s" pretty format specifier in the log family of - commands is used to truncate the string to a given length (e.g. 10 - in the example) with padding to column-align the output, but did - not take into account that number of bytes and number of display - columns are different. - (merge 7d50987 as/pretty-truncate later to maint). - - * "%G" (nothing after G) is an invalid pretty format specifier, but - the parser did not notice it as garbage. - (merge 958b2eb jk/pretty-G-format-fixes later to maint). - - * A handful of code paths had to read the commit object more than - once when showing header fields that are usually not parsed. The - internal data structure to keep track of the contents of the commit - object has been updated to reduce the need for this double-reading, - and to allow the caller find the length of the object. - (merge 218aa3a jk/commit-buffer-length later to maint). - - * The "mailmap.file" configuration option did not support tilde - expansion (i.e. ~user/path and ~/path). - (merge 9352fd5 ow/config-mailmap-pathname later to maint). - - * The completion scripts (in contrib/) did not know about quite a few - options that are common between "git merge" and "git pull", and a - couple of options unique to "git merge". - (merge 8fee872 jk/complete-merge-pull later to maint). - - * The unix-domain socket used by the sample credential cache daemon - tried to unlink an existing stale one at a wrong path, if the path - to the socket was given as an overlong path that does not fit in - the sun_path member of the sockaddr_un structure. - (merge 2869b3e rs/fix-unlink-unix-socket later to maint). - - * An ancient rewrite passed a wrong pointer to a curl library - function in a rarely used code path. - (merge 479eaa8 ah/fix-http-push later to maint). - - * "--ignore-space-change" option of "git apply" ignored the spaces - at the beginning of lines too aggressively, which is inconsistent - with the option of the same name that "diff" and "git diff" have. - (merge 14d3bb4 jc/apply-ignore-whitespace later to maint). - - * "git blame" miscounted the number of columns needed to show localized - timestamps, resulting in a jaggy left-side-edge for the source code - lines in its output. - (merge dd75553 jx/blame-align-relative-time later to maint). - - * "git blame" assigned the blame to the copy in the working-tree if - the repository is set to core.autocrlf=input and the file used CRLF - line endings. - (merge 4d4813a bc/blame-crlf-test later to maint). - - * "git clone -b brefs/tags/bar" would have mistakenly thought we were - following a single tag, even though it was a name of the branch, - because it incorrectly used strstr(). - (merge 60a5f5f jc/fix-clone-single-starting-at-a-tag later to maint). - - * "git commit --allow-empty-message -C $commit" did not work when the - commit did not have any log message. - (merge 076cbd6 jk/commit-C-pick-empty later to maint). - - * "git diff --find-copies-harder" sometimes pretended as if the mode - bits have changed for paths that are marked with the assume-unchanged - bit. - (merge 5304810 jk/diff-files-assume-unchanged later to maint). - - * "filter-branch" left an empty single-parent commit that results when - all parents of a merge commit get mapped to the same commit, even - under "--prune-empty". - (merge 79bc4ef cb/filter-branch-prune-empty-degenerate-merges later to maint). - - * "git format-patch" did not enforce the rule that the "--follow" - option from the log/diff family of commands must be used with - exactly one pathspec. - (merge dd63f16 jk/diff-follow-must-take-one-pathspec later to maint). - - * "git gc --auto" was recently changed to run in the background to - give control back early to the end-user sitting in front of the - terminal, but it forgot that housekeeping involving reflogs should - be done without other processes competing for accesses to the refs. - (merge 62aad18 nd/daemonize-gc later to maint). - - * "git grep -O" to show the lines that hit in the pager did not work - well with case insensitive search. We now spawn "less" with its - "-I" option when it is used as the pager (which is the default). - (merge f7febbe sk/spawn-less-case-insensitively-from-grep-O-i later to maint). - - * We used to disable threaded "git index-pack" on platforms without - thread-safe pread(); use a different workaround for such - platforms to allow threaded "git index-pack". - (merge 3953949 nd/index-pack-one-fd-per-thread later to maint). - - * The error reporting from "git index-pack" has been improved to - distinguish missing objects from type errors. - (merge 77583e7 jk/index-pack-report-missing later to maint). - - * "log --show-signature" incorrectly decided the color to paint a - mergetag that was and was not correctly validated. - (merge 42c55ce mg/fix-log-mergetag-color later to maint). - - * "log --show-signature" did not pay attention to the "--graph" option. - (merge cf3983d zk/log-graph-showsig later to maint). - - * "git mailinfo" used to read beyond the ends of header strings while - parsing an incoming e-mail message to extract the patch. - (merge b1a013d rs/mailinfo-header-cmp later to maint). - - * On a case insensitive filesystem, merge-recursive incorrectly - deleted the file that is to be renamed to a name that is the same - except for case differences. - (merge baa37bf dt/merge-recursive-case-insensitive later to maint). - - * Merging changes into a file that ends in an incomplete line made the - last line into a complete one, even when the other branch did not - change anything around the end of file. - (merge ba31180 mk/merge-incomplete-files later to maint). - - * "git pack-objects" unnecessarily copied the previous contents when - extending the hashtable, even though it will populate the table - from scratch anyway. - (merge fb79947 rs/pack-objects-no-unnecessary-realloc later to maint). - - * Recent updates to "git repack" started to duplicate objects that - are in packfiles marked with the .keep flag into the new packfile by - mistake. - (merge d078d85 jk/repack-pack-keep-objects later to maint). - - * "git rerere forget" did not work well when merge.conflictstyle - was set to a non-default value. - (merge de3d8bb fc/rerere-conflict-style later to maint). - - * "git remote rm" and "git remote prune" can involve removing many - refs at once, which is not a very efficient thing to do when very - many refs exist in the packed-refs file. - (merge e6bea66 jl/remote-rm-prune later to maint). - - * "git log --exclude=<glob> --all | git shortlog" worked as expected, - but "git shortlog --exclude=<glob> --all", which is supposed to be - identical to the above pipeline, was not accepted at the command - line argument parser level. - (merge eb07774 jc/shortlog-ref-exclude later to maint). - - * The autostash mode of "git rebase -i" did not restore the dirty - working tree state if the user aborted the interactive rebase by - emptying the insn sheet. - (merge ddb5432 rr/rebase-autostash-fix later to maint). - - * "git rebase --fork-point" did not filter out patch-identical - commits correctly. - - * During "git rebase --merge", a conflicted patch could not be - skipped with "--skip" if the next one also conflicted. - (merge 95104c7 bc/fix-rebase-merge-skip later to maint). - - * "git show -s" (i.e. show log message only) used to incorrectly emit - an extra blank line after a merge commit. - (merge ad2f725 mk/show-s-no-extra-blank-line-for-merges later to maint). - - * "git status", even though it is a read-only operation, tries to - update the index with refreshed lstat(2) info to optimize future - accesses to the working tree opportunistically, but this could - race with a "read-write" operation that modifies the index while it - is running. Detect such a race and avoid overwriting the index. - (merge 426ddee ym/fix-opportunistic-index-update-race later to maint). - - * "git status" (and "git commit") behaved as if changes in a modified - submodule are not there if submodule.*.ignore configuration is set, - which was misleading. The configuration is only to unclutter diff - output during the course of development, and not to hide - changes in the "status" output to cause the users forget to commit - them. - (merge c215d3d jl/status-added-submodule-is-never-ignored later to maint). - - * Documentation for "git submodule sync" forgot to say that the subcommand - can take the "--recursive" option. - (merge 9393ae7 mc/doc-submodule-sync-recurse later to maint). - - * "git update-index --cacheinfo" in 2.0 release crashed on a - malformed command line. - (merge c8e1ee4 jc/rev-parse-argh-dashed-multi-words later to maint). - - * The mode to run tests with HTTP server tests disabled was broken. - (merge afa53fe na/no-http-test-in-the-middle later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.1.1.txt b/third_party/git/Documentation/RelNotes/2.1.1.txt deleted file mode 100644 index 830fc3cc6dd7..000000000000 --- a/third_party/git/Documentation/RelNotes/2.1.1.txt +++ /dev/null @@ -1,44 +0,0 @@ -Git v2.1.1 Release Notes -======================== - - * Git 2.0 had a regression where "git fetch" into a shallowly - cloned repository from a repository with bitmap object index - enabled did not work correctly. This has been corrected. - - * Git 2.0 had a regression which broke (rarely used) "git diff-tree - -t". This has been corrected. - - * "git log --pretty/format=" with an empty format string did not - mean the more obvious "No output whatsoever" but "Use default - format", which was counterintuitive. Now it means "nothing shown - for the log message part". - - * "git -c section.var command" and "git -c section.var= command" - should pass the configuration differently (the former should be a - boolean true, the latter should be an empty string), but they - didn't work that way. Now it does. - - * Applying a patch not generated by Git in a subdirectory used to - check the whitespace breakage using the attributes for incorrect - paths. Also whitespace checks were performed even for paths - excluded via "git apply --exclude=<path>" mechanism. - - * "git bundle create" with date-range specification were meant to - exclude tags outside the range, but it did not work correctly. - - * "git add x" where x that used to be a directory has become a - symbolic link to a directory misbehaved. - - * The prompt script checked $GIT_DIR/ref/stash file to see if there - is a stash, which was a no-no. - - * "git checkout -m" did not switch to another branch while carrying - the local changes forward when a path was deleted from the index. - - * With sufficiently long refnames, fast-import could have overflown - an on-stack buffer. - - * After "pack-refs --prune" packed refs at the top-level, it failed - to prune them. - - * "git gc --auto" triggered from "git fetch --quiet" was not quiet. diff --git a/third_party/git/Documentation/RelNotes/2.1.2.txt b/third_party/git/Documentation/RelNotes/2.1.2.txt deleted file mode 100644 index abc3b8928a00..000000000000 --- a/third_party/git/Documentation/RelNotes/2.1.2.txt +++ /dev/null @@ -1,20 +0,0 @@ -Git v2.1.2 Release Notes -======================== - - * "git push" over HTTP transport had an artificial limit on number of - refs that can be pushed imposed by the command line length. - - * When receiving an invalid pack stream that records the same object - twice, multiple threads got confused due to a race. - - * An attempt to remove the entire tree in the "git fast-import" input - stream caused it to misbehave. - - * Reachability check (used in "git prune" and friends) did not add a - detached HEAD as a starting point to traverse objects still in use. - - * "git config --add section.var val" used to lose existing - section.var whose value was an empty string. - - * "git fsck" failed to report that it found corrupt objects via its - exit status in some cases. diff --git a/third_party/git/Documentation/RelNotes/2.1.3.txt b/third_party/git/Documentation/RelNotes/2.1.3.txt deleted file mode 100644 index 0dfb17c4fc6f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.1.3.txt +++ /dev/null @@ -1,26 +0,0 @@ -Git v2.1.3 Release Notes -======================== - - * Some MUAs mangled a line in a message that begins with "From " to - ">From " when writing to a mailbox file and feeding such an input to - "git am" used to lose such a line. - - * "git daemon" (with NO_IPV6 build configuration) used to incorrectly - use the hostname even when gethostbyname() reported that the given - hostname is not found. - - * Newer versions of 'meld' breaks the auto-detection we use to see if - they are new enough to support the `--output` option. - - * "git pack-objects" forgot to disable the codepath to generate - object reachability bitmap when it needs to split the resulting - pack. - - * "gitweb" used deprecated CGI::startfrom, which was removed from - CGI.pm as of 4.04; use CGI::start_from instead. - - * "git log" documentation had an example section marked up not - quite correctly, which passed AsciiDoc but failed with - AsciiDoctor. - -Also contains some documentation updates. diff --git a/third_party/git/Documentation/RelNotes/2.1.4.txt b/third_party/git/Documentation/RelNotes/2.1.4.txt deleted file mode 100644 index d16e5f041f5d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.1.4.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git v2.1.4 Release Notes -======================== - -Fixes since v2.1.3 ------------------- - - * We used to allow committing a path ".Git/config" with Git that is - running on a case sensitive filesystem, but an attempt to check out - such a path with Git that runs on a case insensitive filesystem - would have clobbered ".git/config", which is definitely not what - the user would have expected. Git now prevents you from tracking - a path with ".Git" (in any case combination) as a path component. - - * On Windows, certain path components that are different from ".git" - are mapped to ".git", e.g. "git~1/config" is treated as if it were - ".git/config". HFS+ has a similar issue, where certain unicode - codepoints are ignored, e.g. ".g\u200cit/config" is treated as if - it were ".git/config". Pathnames with these potential issues are - rejected on the affected systems. Git on systems that are not - affected by this issue (e.g. Linux) can also be configured to - reject them to ensure cross platform interoperability of the hosted - projects. - - * "git fsck" notices a tree object that records such a path that can - be confused with ".git", and with receive.fsckObjects configuration - set to true, an attempt to "git push" such a tree object will be - rejected. Such a path may not be a problem on a well behaving - filesystem but in order to protect those on HFS+ and on case - insensitive filesystems, this check is enabled on all platforms. - -A big "thanks!" for bringing this issue to us goes to our friends in -the Mercurial land, namely, Matt Mackall and Augie Fackler. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.10.0.txt b/third_party/git/Documentation/RelNotes/2.10.0.txt deleted file mode 100644 index 3792b7d03d5f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.10.0.txt +++ /dev/null @@ -1,675 +0,0 @@ -Git 2.10 Release Notes -====================== - -Backward compatibility notes ----------------------------- - -Updates since v2.9 ------------------- - -UI, Workflows & Features - - * "git pull --rebase --verify-signature" learned to warn the user - that "--verify-signature" is a no-op when rebasing. - - * An upstream project can make a recommendation to shallowly clone - some submodules in the .gitmodules file it ships. - - * "git worktree add" learned that '-' can be used as a short-hand for - "@{-1}", the previous branch. - - * Update the funcname definition to support css files. - - * The completion script (in contrib/) learned to complete "git - status" options. - - * Messages that are generated by auto gc during "git push" on the - receiving end are now passed back to the sending end in such a way - that they are shown with "remote: " prefix to avoid confusing the - users. - - * "git add -i/-p" learned to honor diff.compactionHeuristic - experimental knob, so that the user can work on the same hunk split - as "git diff" output. - - * "upload-pack" allows a custom "git pack-objects" replacement when - responding to "fetch/clone" via the uploadpack.packObjectsHook. - (merge b738396 jk/upload-pack-hook later to maint). - - * Teach format-patch and mailsplit (hence "am") how a line that - happens to begin with "From " in the e-mail message is quoted with - ">", so that these lines can be restored to their original shape. - (merge d9925d1 ew/mboxrd-format-am later to maint). - - * "git repack" learned the "--keep-unreachable" option, which sends - loose unreachable objects to a pack instead of leaving them loose. - This helps heuristics based on the number of loose objects - (e.g. "gc --auto"). - (merge e26a8c4 jk/repack-keep-unreachable later to maint). - - * "log --graph --format=" learned that "%>|(N)" specifies the width - relative to the terminal's left edge, not relative to the area to - draw text that is to the right of the ancestry-graph section. It - also now accepts negative N that means the column limit is relative - to the right border. - - * A careless invocation of "git send-email directory/" after editing - 0001-change.patch with an editor often ends up sending both - 0001-change.patch and its backup file, 0001-change.patch~, causing - embarrassment and a minor confusion. Detect such an input and - offer to skip the backup files when sending the patches out. - (merge 531220b jc/send-email-skip-backup later to maint). - - * "git submodule update" that drives many "git clone" could - eventually hit flaky servers/network conditions on one of the - submodules; the command learned to retry the attempt. - - * The output coloring scheme learned two new attributes, italic and - strike, in addition to existing bold, reverse, etc. - - * "git log" learns log.showSignature configuration variable, and a - command line option "--no-show-signature" to countermand it. - (merge fce04c3 mj/log-show-signature-conf later to maint). - - * More markings of messages for i18n, with updates to various tests - to pass GETTEXT_POISON tests. - - * "git archive" learned to handle files that are larger than 8GB and - commits far in the future than expressible by the traditional US-TAR - format. - (merge 560b0e8 jk/big-and-future-archive-tar later to maint). - - - * A new configuration variable core.sshCommand has been added to - specify what value for GIT_SSH_COMMAND to use per repository. - - * "git worktree prune" protected worktrees that are marked as - "locked" by creating a file in a known location. "git worktree" - command learned a dedicated command pair to create and remove such - a file, so that the users do not have to do this with editor. - - * A handful of "git svn" updates. - - * "git push" learned to accept and pass extra options to the - receiving end so that hooks can read and react to them. - - * "git status" learned to suggest "merge --abort" during a conflicted - merge, just like it already suggests "rebase --abort" during a - conflicted rebase. - - * "git jump" script (in contrib/) has been updated a bit. - (merge a91e692 jk/git-jump later to maint). - - * "git push" and "git clone" learned to give better progress meters - to the end user who is waiting on the terminal. - - * An entry "git log --decorate" for the tip of the current branch is - shown as "HEAD -> name" (where "name" is the name of the branch); - the arrow is now painted in the same color as "HEAD", not in the - color for commits. - - * "git format-patch" learned format.from configuration variable to - specify the default settings for its "--from" option. - - * "git am -3" calls "git merge-recursive" when it needs to fall back - to a three-way merge; this call has been turned into an internal - subroutine call instead of spawning a separate subprocess. - - * The command line completion scripts (in contrib/) now knows about - "git branch --delete/--move [--remote]". - (merge 2703c22 vs/completion-branch-fully-spelled-d-m-r later to maint). - - * "git rev-parse --git-path hooks/<hook>" learned to take - core.hooksPath configuration variable (introduced during 2.9 cycle) - into account. - (merge 9445b49 ab/hooks later to maint). - - * "git log --show-signature" and other commands that display the - verification status of PGP signature now shows the longer key-id, - as 32-bit key-id is so last century. - - -Performance, Internal Implementation, Development Support etc. - - * "git fast-import" learned the same performance trick to avoid - creating too small a packfile as "git fetch" and "git push" have, - using *.unpackLimit configuration. - - * When "git daemon" is run without --[init-]timeout specified, a - connection from a client that silently goes offline can hang around - for a long time, wasting resources. The socket-level KEEPALIVE has - been enabled to allow the OS to notice such failed connections. - - * "git upload-pack" command has been updated to use the parse-options - API. - - * The "git apply" standalone program is being libified; the first - step to move many state variables into a structure that can be - explicitly (re)initialized to make the machinery callable more - than once has been merged. - - * HTTP transport gained an option to produce more detailed debugging - trace. - (merge 73e57aa ep/http-curl-trace later to maint). - - * Instead of taking advantage of the fact that a struct string_list - that is allocated with all NULs happens to be the INIT_NODUP kind, - the users of string_list structures are taught to initialize them - explicitly as such, to document their behaviour better. - (merge 2721ce2 jk/string-list-static-init later to maint). - - * HTTPd tests learned to show the server error log to help diagnosing - a failing tests. - (merge 44f243d nd/test-lib-httpd-show-error-log-in-verbose later to maint). - - * The ownership rule for the piece of memory that hold references to - be fetched in "git fetch" was screwy, which has been cleaned up. - - * "git bisect" makes an internal call to "git diff-tree" when - bisection finds the culprit, but this call did not initialize the - data structure to pass to the diff-tree API correctly. - - * Further preparatory clean-up for "worktree" feature continues. - (merge 0409e0b nd/worktree-cleanup-post-head-protection later to maint). - - * Formats of the various data (and how to validate them) where we use - GPG signature have been documented. - - * A new run-command API function pipe_command() is introduced to - sanely feed data to the standard input while capturing data from - the standard output and the standard error of an external process, - which is cumbersome to hand-roll correctly without deadlocking. - - * The codepath to sign data in a prepared buffer with GPG has been - updated to use this API to read from the status-fd to check for - errors (instead of relying on GPG's exit status). - (merge efee955 jk/gpg-interface-cleanup later to maint). - - * Allow t/perf framework to use the features from the most recent - version of Git even when testing an older installed version. - - * The commands in the "log/diff" family have had an FILE* pointer in the - data structure they pass around for a long time, but some codepaths - used to always write to the standard output. As a preparatory step - to make "git format-patch" available to the internal callers, these - codepaths have been updated to consistently write into that FILE* - instead. - - * Conversion from unsigned char sha1[20] to struct object_id - continues. - - * Improve the look of the way "git fetch" reports what happened to - each ref that was fetched. - - * The .c/.h sources are marked as such in our .gitattributes file so - that "git diff -W" and friends would work better. - - * Code clean-up to avoid using a variable string that compilers may - feel untrustable as printf-style format given to write_file() - helper function. - - * "git p4" used a location outside $GIT_DIR/refs/ to place its - temporary branches, which has been moved to refs/git-p4-tmp/. - - * Existing autoconf generated test for the need to link with pthread - library did not check all the functions from pthread libraries; - recent FreeBSD has some functions in libc but not others, and we - mistakenly thought linking with libc is enough when it is not. - - * When "git fsck" reports a broken link (e.g. a tree object contains - a blob that does not exist), both containing object and the object - that is referred to were reported with their 40-hex object names. - The command learned the "--name-objects" option to show the path to - the containing object from existing refs (e.g. "HEAD~24^2:file.txt"). - - * Allow http daemon tests in Travis CI tests. - - * Makefile assumed that -lrt is always available on platforms that - want to use clock_gettime() and CLOCK_MONOTONIC, which is not a - case for recent Mac OS X. The necessary symbols are often found in - libc on many modern systems and having -lrt on the command line, as - long as the library exists, had no effect, but when the platform - removes librt.a that is a different matter--having -lrt will break - the linkage. - - This change could be seen as a regression for those who do need to - specify -lrt, as they now specifically ask for NEEDS_LIBRT when - building. Hopefully they are in the minority these days. - - * Further preparatory work on the refs API before the pluggable - backend series can land. - - * Error handling in the codepaths that updates refs has been - improved. - - * The API to iterate over all the refs (i.e. for_each_ref(), etc.) - has been revamped. - - * The handling of the "text=auto" attribute has been corrected. - $ echo "* text=auto eol=crlf" >.gitattributes - used to have the same effect as - $ echo "* text eol=crlf" >.gitattributes - i.e. declaring all files are text (ignoring "auto"). The - combination has been fixed to be equivalent to doing - $ git config core.autocrlf true - - * Documentation has been updated to show better example usage - of the updated "text=auto" attribute. - - * A few tests that specifically target "git rebase -i" have been - added. - - * Dumb http transport on the client side has been optimized. - (merge ecba195 ew/http-walker later to maint). - - * Users of the parse_options_concat() API function need to allocate - extra slots in advance and fill them with OPT_END() when they want - to decide the set of supported options dynamically, which makes the - code error-prone and hard to read. This has been corrected by tweaking - the API to allocate and return a new copy of "struct option" array. - - * "git fetch" exchanges batched have/ack messages between the sender - and the receiver, initially doubling every time and then falling - back to enlarge the window size linearly. The "smart http" - transport, being an half-duplex protocol, outgrows the preset limit - too quickly and becomes inefficient when interacting with a large - repository. The internal mechanism learned to grow the window size - more aggressively when working with the "smart http" transport. - - * Tests for "git svn" have been taught to reuse the lib-httpd test - infrastructure when testing the subversion integration that - interacts with subversion repositories served over the http:// - protocol. - (merge a8a5d25 ew/git-svn-http-tests later to maint). - - * "git pack-objects" has a few options that tell it not to pack - objects found in certain packfiles, which require it to scan .idx - files of all available packs. The codepaths involved in these - operations have been optimized for a common case of not having any - non-local pack and/or any .kept pack. - - * The t3700 test about "add --chmod=-x" have been made a bit more - robust and generally cleaned up. - (merge 766cdc4 ib/t3700-add-chmod-x-updates later to maint). - - * The build procedure learned PAGER_ENV knob that lists what default - environment variable settings to export for popular pagers. This - mechanism is used to tweak the default settings to MORE on FreeBSD. - (merge 995bc22 ew/build-time-pager-tweaks later to maint). - - * The http-backend (the server-side component of smart-http - transport) used to trickle the HTTP header one at a time. Now - these write(2)s are batched. - (merge b36045c ew/http-backend-batch-headers later to maint). - - * When "git rebase" tries to compare set of changes on the updated - upstream and our own branch, it computes patch-id for all of these - changes and attempts to find matches. This has been optimized by - lazily computing the full patch-id (which is expensive) to be - compared only for changes that touch the same set of paths. - (merge ba67504 kw/patch-ids-optim later to maint). - - * A handful of tests that were broken under gettext-poison build have - been fixed. - - * The recent i18n patch we added during this cycle did a bit too much - refactoring of the messages to avoid word-legos; the repetition has - been reduced to help translators. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.9 ----------------- - -Unless otherwise noted, all the fixes since v2.8 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * The commands in `git log` family take %C(auto) in a custom format - string. This unconditionally turned the color on, ignoring - --no-color or with --color=auto when the output is not connected to - a tty; this was corrected to make the format truly behave as - "auto". - - * "git rev-list --count" whose walk-length is limited with "-n" - option did not work well with the counting optimized to look at the - bitmap index. - - * "git show -W" (extend hunks to cover the entire function, delimited - by lines that match the "funcname" pattern) used to show the entire - file when a change added an entire function at the end of the file, - which has been fixed. - - * The documentation set has been updated so that literal commands, - configuration variables and environment variables are consistently - typeset in fixed-width font and bold in manpages. - - * "git svn propset" subcommand that was added in 2.3 days is - documented now. - - * The documentation tries to consistently spell "GPG"; when - referring to the specific program name, "gpg" is used. - - * "git reflog" stopped upon seeing an entry that denotes a branch - creation event (aka "unborn"), which made it appear as if the - reflog was truncated. - - * The git-prompt scriptlet (in contrib/) was not friendly with those - who uses "set -u", which has been fixed. - - * compat/regex code did not cleanly compile. - - * A codepath that used alloca(3) to place an unbounded amount of data - on the stack has been updated to avoid doing so. - - * "git update-index --add --chmod=+x file" may be usable as an escape - hatch, but not a friendly thing to force for people who do need to - use it regularly. "git add --chmod=+x file" can be used instead. - - * Build improvements for gnome-keyring (in contrib/) - - * "git status" used to say "working directory" when it meant "working - tree". - - * Comments about misbehaving FreeBSD shells have been clarified with - the version number (9.x and before are broken, newer ones are OK). - - * "git cherry-pick A" worked on an unborn branch, but "git - cherry-pick A..B" didn't. - - * Fix an unintended regression in v2.9 that breaks "clone --depth" - that recurses down to submodules by forcing the submodules to also - be cloned shallowly, which many server instances that host upstream - of the submodules are not prepared for. - - * Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}' - to set the default value, without enclosing it in double quotes. - - * Some platform-specific code had non-ANSI strict declarations of C - functions that do not take any parameters, which has been - corrected. - - * The internal code used to show local timezone offset is not - prepared to handle timestamps beyond year 2100, and gave a - bogus offset value to the caller. Use a more benign looking - +0000 instead and let "git log" going in such a case, instead - of aborting. - - * One among four invocations of readlink(1) in our test suite has - been rewritten so that the test can run on systems without the - command (others are in valgrind test framework and t9802). - - * t/perf needs /usr/bin/time with GNU extension; the invocation of it - is updated to "gtime" on Darwin. - - * A bug, which caused "git p4" while running under verbose mode to - report paths that are omitted due to branch prefix incorrectly, has - been fixed; the command said "Ignoring file outside of prefix" for - paths that are _inside_. - - * The top level documentation "git help git" still pointed at the - documentation set hosted at now-defunct google-code repository. - Update it to point to https://git.github.io/htmldocs/git.html - instead. - - * A helper function that takes the contents of a commit object and - finds its subject line did not ignore leading blank lines, as is - commonly done by other codepaths. Make it ignore leading blank - lines to match. - - * For a long time, we carried an in-code comment that said our - colored output would work only when we use fprintf/fputs on - Windows, which no longer is the case for the past few years. - - * "gc.autoPackLimit" when set to 1 should not trigger a repacking - when there is only one pack, but the code counted poorly and did - so. - - * Add a test to specify the desired behaviour that currently is not - available in "git rebase -Xsubtree=...". - - * More mark-up updates to typeset strings that are expected to - literally typed by the end user in fixed-width font. - - * "git commit --amend --allow-empty-message -S" for a commit without - any message body could have misidentified where the header of the - commit object ends. - - * "git rebase -i --autostash" did not restore the auto-stashed change - when the operation was aborted. - - * Git does not know what the contents in the index should be for a - path added with "git add -N" yet, so "git grep --cached" should not - show hits (or show lack of hits, with -L) in such a path, but that - logic does not apply to "git grep", i.e. searching in the working - tree files. But we did so by mistake, which has been corrected. - - * "git blame -M" missed a single line that was moved within the file. - - * Fix recently introduced codepaths that are involved in parallel - submodule operations, which gave up on reading too early, and - could have wasted CPU while attempting to write under a corner - case condition. - - * "git grep -i" has been taught to fold case in non-ascii locales - correctly. - - * A test that unconditionally used "mktemp" learned that the command - is not necessarily available everywhere. - - * There are certain house-keeping tasks that need to be performed at - the very beginning of any Git program, and programs that are not - built-in commands had to do them exactly the same way as "git" - potty does. It was easy to make mistakes in one-off standalone - programs (like test helpers). A common "main()" function that - calls cmd_main() of individual program has been introduced to - make it harder to make mistakes. - (merge de61ceb jk/common-main later to maint). - - * The test framework learned a new helper test_match_signal to - check an exit code from getting killed by an expected signal. - - * General code clean-up around a helper function to write a - single-liner to a file. - (merge 7eb6e10 jk/write-file later to maint). - - * One part of "git am" had an oddball helper function that called - stuff from outside "his" as opposed to calling what we have "ours", - which was not gender-neutral and also inconsistent with the rest of - the system where outside stuff is usually called "theirs" in - contrast to "ours". - - * "git blame file" allowed the lineage of lines in the uncommitted, - unadded contents of "file" to be inspected, but it refused when - "file" did not appear in the current commit. When "file" was - created by renaming an existing file (but the change has not been - committed), this restriction was unnecessarily tight. - - * "git add -N dir/file && git write-tree" produced an incorrect tree - when there are other paths in the same directory that sorts after - "file". - - * "git fetch http://user:pass@host/repo..." scrubbed the userinfo - part, but "git push" didn't. - - * "git merge" with renormalization did not work well with - merge-recursive, due to "safer crlf" conversion kicking in when it - shouldn't. - (merge 1335d76 jc/renormalize-merge-kill-safer-crlf later to maint). - - * The use of strbuf in "git rm" to build filename to remove was a bit - suboptimal, which has been fixed. - - * An age old bug that caused "git diff --ignore-space-at-eol" - misbehave has been fixed. - - * "git notes merge" had a code to see if a path exists (and fails if - it does) and then open the path for writing (when it doesn't). - Replace it with open with O_EXCL. - - * "git pack-objects" and "git index-pack" mostly operate with off_t - when talking about the offset of objects in a packfile, but there - were a handful of places that used "unsigned long" to hold that - value, leading to an unintended truncation. - - * Recent update to "git daemon" tries to enable the socket-level - KEEPALIVE, but when it is spawned via inetd, the standard input - file descriptor may not necessarily be connected to a socket. - Suppress an ENOTSOCK error from setsockopt(). - - * Recent FreeBSD stopped making perl available at /usr/bin/perl; - switch the default the built-in path to /usr/local/bin/perl on not - too ancient FreeBSD releases. - - * "git commit --help" said "--no-verify" is only about skipping the - pre-commit hook, and failed to say that it also skipped the - commit-msg hook. - - * "git merge" in Git v2.9 was taught to forbid merging an unrelated - lines of history by default, but that is exactly the kind of thing - the "--rejoin" mode of "git subtree" (in contrib/) wants to do. - "git subtree" has been taught to use the "--allow-unrelated-histories" - option to override the default. - - * The build procedure for "git persistent-https" helper (in contrib/) - has been updated so that it can be built with more recent versions - of Go. - - * There is an optimization used in "git diff $treeA $treeB" to borrow - an already checked-out copy in the working tree when it is known to - be the same as the blob being compared, expecting that open/mmap of - such a file is faster than reading it from the object store, which - involves inflating and applying delta. This however kicked in even - when the checked-out copy needs to go through the convert-to-git - conversion (including the clean filter), which defeats the whole - point of the optimization. The optimization has been disabled when - the conversion is necessary. - - * "git -c grep.patternType=extended log --basic-regexp" misbehaved - because the internal API to access the grep machinery was not - designed well. - - * Windows port was failing some tests in t4130, due to the lack of - inum in the returned values by its lstat(2) emulation. - - * The reflog output format is documented better, and a new format - --date=unix to report the seconds-since-epoch (without timezone) - has been added. - (merge 442f6fd jk/reflog-date later to maint). - - * "git difftool <paths>..." started in a subdirectory failed to - interpret the paths relative to that directory, which has been - fixed. - - * The characters in the label shown for tags/refs for commits in - "gitweb" output are now properly escaped for proper HTML output. - - * FreeBSD can lie when asked mtime of a directory, which made the - untracked cache code to fall back to a slow-path, which in turn - caused tests in t7063 to fail because it wanted to verify the - behaviour of the fast-path. - - * Squelch compiler warnings for nedmalloc (in compat/) library. - - * A small memory leak in the command line parsing of "git blame" - has been plugged. - - * The API documentation for hashmap was unclear if hashmap_entry - can be safely discarded without any other consideration. State - that it is safe to do so. - - * Not-so-recent rewrite of "git am" that started making internal - calls into the commit machinery had an unintended regression, in - that no matter how many seconds it took to apply many patches, the - resulting committer timestamp for the resulting commits were all - the same. - - * "git push --force-with-lease" already had enough logic to allow - ensuring that such a push results in creation of a ref (i.e. the - receiving end did not have another push from sideways that would be - discarded by our force-pushing), but didn't expose this possibility - to the users. It does so now. - (merge 9eed4f3 jk/push-force-with-lease-creation later to maint). - - * The mechanism to limit the pack window memory size, when packing is - done using multiple threads (which is the default), is per-thread, - but this was not documented clearly. - (merge 954176c ms/document-pack-window-memory-is-per-thread later to maint). - - * "import-tars" fast-import script (in contrib/) used to ignore a - hardlink target and replaced it with an empty file, which has been - corrected to record the same blob as the other file the hardlink is - shared with. - (merge 04e0869 js/import-tars-hardlinks later to maint). - - * "git mv dir non-existing-dir/" did not work in some environments - the same way as existing mainstream platforms. The code now moves - "dir" to "non-existing-dir", without relying on rename("A", "B/") - that strips the trailing slash of '/'. - (merge 189d035 js/mv-dir-to-new-directory later to maint). - - * The "t/" hierarchy is prone to get an unusual pathname; "make test" - has been taught to make sure they do not contain paths that cannot - be checked out on Windows (and the mechanism can be reusable to - catch pathnames that are not portable to other platforms as need - arises). - (merge c2cafd3 js/test-lint-pathname later to maint). - - * When "git merge-recursive" works on history with many criss-cross - merges in "verbose" mode, the names the command assigns to the - virtual merge bases could have overwritten each other by unintended - reuse of the same piece of memory. - (merge 5447a76 rs/pull-signed-tag later to maint). - - * "git checkout --detach <branch>" used to give the same advice - message as that is issued when "git checkout <tag>" (or anything - that is not a branch name) is given, but asking with "--detach" is - an explicit enough sign that the user knows what is going on. The - advice message has been squelched in this case. - (merge 779b88a sb/checkout-explit-detach-no-advice later to maint). - - * "git difftool" by default ignores the error exit from the backend - commands it spawns, because often they signal that they found - differences by exiting with a non-zero status code just like "diff" - does; the exit status codes 126 and above however are special in - that they are used to signal that the command is not executable, - does not exist, or killed by a signal. "git difftool" has been - taught to notice these exit status codes. - (merge 45a4f5d jk/difftool-command-not-found later to maint). - - * On Windows, help.browser configuration variable used to be ignored, - which has been corrected. - (merge 6db5967 js/no-html-bypass-on-windows later to maint). - - * The "git -c var[=val] cmd" facility to append a configuration - variable definition at the end of the search order was described in - git(1) manual page, but not in git-config(1), which was more likely - place for people to look for when they ask "can I make a one-shot - override, and if so how?" - (merge ae1f709 dg/document-git-c-in-git-config-doc later to maint). - - * The tempfile (hence its user lockfile) API lets the caller to open - a file descriptor to a temporary file, write into it and then - finalize it by first closing the filehandle and then either - removing or renaming the temporary file. When the process spawns a - subprocess after obtaining the file descriptor, and if the - subprocess has not exited when the attempt to remove or rename is - made, the last step fails on Windows, because the subprocess has - the file descriptor still open. Open tempfile with O_CLOEXEC flag - to avoid this (on Windows, this is mapped to O_NOINHERIT). - (merge 05d1ed6 bw/mingw-avoid-inheriting-fd-to-lockfile later to maint). - - * Correct an age-old calco (is that a typo-like word for calc) - in the documentation. - (merge 7841c48 ls/packet-line-protocol-doc-fix later to maint). - - * Other minor clean-ups and documentation updates - (merge 02a8cfa rs/merge-add-strategies-simplification later to maint). - (merge af4941d rs/merge-recursive-string-list-init later to maint). - (merge 1eb47f1 rs/use-strbuf-add-unique-abbrev later to maint). - (merge ddd0bfa jk/tighten-alloc later to maint). - (merge ecf30b2 rs/mailinfo-lib later to maint). - (merge 0eb75ce sg/reflog-past-root later to maint). - (merge 4369523 hv/doc-commit-reference-style later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.10.1.txt b/third_party/git/Documentation/RelNotes/2.10.1.txt deleted file mode 100644 index 70462f7f7e9b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.10.1.txt +++ /dev/null @@ -1,131 +0,0 @@ -Git v2.10.1 Release Notes -========================= - -Fixes since v2.10 ------------------ - - * Clarify various ways to specify the "revision ranges" in the - documentation. - - * "diff-highlight" script (in contrib/) learned to work better with - "git log -p --graph" output. - - * The test framework left the number of tests and success/failure - count in the t/test-results directory, keyed by the name of the - test script plus the process ID. The latter however turned out not - to serve any useful purpose. The process ID part of the filename - has been removed. - - * Having a submodule whose ".git" repository is somehow corrupt - caused a few commands that recurse into submodules loop forever. - - * "git symbolic-ref -d HEAD" happily removes the symbolic ref, but - the resulting repository becomes an invalid one. Teach the command - to forbid removal of HEAD. - - * A test spawned a short-lived background process, which sometimes - prevented the test directory from getting removed at the end of the - script on some platforms. - - * Update a few tests that used to use GIT_CURL_VERBOSE to use the - newer GIT_TRACE_CURL. - - * Update Japanese translation for "git-gui". - - * "git fetch http::/site/path" did not die correctly and segfaulted - instead. - - * "git commit-tree" stopped reading commit.gpgsign configuration - variable that was meant for Porcelain "git commit" in Git 2.9; we - forgot to update "git gui" to look at the configuration to match - this change. - - * "git log --cherry-pick" used to include merge commits as candidates - to be matched up with other commits, resulting a lot of wasted time. - The patch-id generation logic has been updated to ignore merges to - avoid the wastage. - - * The http transport (with curl-multi option, which is the default - these days) failed to remove curl-easy handle from a curlm session, - which led to unnecessary API failures. - - * "git diff -W" output needs to extend the context backward to - include the header line of the current function and also forward to - include the body of the entire current function up to the header - line of the next one. This process may have to merge to adjacent - hunks, but the code forgot to do so in some cases. - - * Performance tests done via "t/perf" did not use the same set of - build configuration if the user relied on autoconf generated - configuration. - - * "git format-patch --base=..." feature that was recently added - showed the base commit information after "-- " e-mail signature - line, which turned out to be inconvenient. The base information - has been moved above the signature line. - - * Even when "git pull --rebase=preserve" (and the underlying "git - rebase --preserve") can complete without creating any new commit - (i.e. fast-forwards), it still insisted on having a usable ident - information (read: user.email is set correctly), which was less - than nice. As the underlying commands used inside "git rebase" - would fail with a more meaningful error message and advice text - when the bogus ident matters, this extra check was removed. - - * "git gc --aggressive" used to limit the delta-chain length to 250, - which is way too deep for gaining additional space savings and is - detrimental for runtime performance. The limit has been reduced to - 50. - - * Documentation for individual configuration variables to control use - of color (like `color.grep`) said that their default value is - 'false', instead of saying their default is taken from `color.ui`. - When we updated the default value for color.ui from 'false' to - 'auto' quite a while ago, all of them broke. This has been - corrected. - - * A shell script example in check-ref-format documentation has been - fixed. - - * "git checkout <word>" does not follow the usual disambiguation - rules when the <word> can be both a rev and a path, to allow - checking out a branch 'foo' in a project that happens to have a - file 'foo' in the working tree without having to disambiguate. - This was poorly documented and the check was incorrect when the - command was run from a subdirectory. - - * Some codepaths in "git diff" used regexec(3) on a buffer that was - mmap(2)ed, which may not have a terminating NUL, leading to a read - beyond the end of the mapped region. This was fixed by introducing - a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND - extension. - - * The procedure to build Git on Mac OS X for Travis CI hardcoded the - internal directory structure we assumed HomeBrew uses, which was a - no-no. The procedure has been updated to ask HomeBrew things we - need to know to fix this. - - * When "git rebase -i" is given a broken instruction, it told the - user to fix it with "--edit-todo", but didn't say what the step - after that was (i.e. "--continue"). - - * "git add --chmod=+x" added recently lacked documentation, which has - been corrected. - - * "git add --chmod=+x <pathspec>" added recently only toggled the - executable bit for paths that are either new or modified. This has - been corrected to flip the executable bit for all paths that match - the given pathspec. - - * "git pack-objects --include-tag" was taught that when we know that - we are sending an object C, we want a tag B that directly points at - C but also a tag A that points at the tag B. We used to miss the - intermediate tag B in some cases. - - * Documentation around tools to import from CVS was fairly outdated. - - * In the codepath that comes up with the hostname to be used in an - e-mail when the user didn't tell us, we looked at ai_canonname - field in struct addrinfo without making sure it is not NULL first. - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.10.2.txt b/third_party/git/Documentation/RelNotes/2.10.2.txt deleted file mode 100644 index abbd331508a5..000000000000 --- a/third_party/git/Documentation/RelNotes/2.10.2.txt +++ /dev/null @@ -1,111 +0,0 @@ -Git v2.10.2 Release Notes -========================= - -Fixes since v2.10.1 -------------------- - - * The code that parses the format parameter of for-each-ref command - has seen a micro-optimization. - - * The "graph" API used in "git log --graph" miscounted the number of - output columns consumed so far when drawing a padding line, which - has been fixed; this did not affect any existing code as nobody - tried to write anything after the padding on such a line, though. - - * Almost everybody uses DEFAULT_ABBREV to refer to the default - setting for the abbreviation, but "git blame" peeked into - underlying variable bypassing the macro for no good reason. - - * Doc update to clarify what "log -3 --reverse" does. - - * An author name, that spelled a backslash-quoted double quote in the - human readable part "My \"double quoted\" name", was not unquoted - correctly while applying a patch from a piece of e-mail. - - * The original command line syntax for "git merge", which was "git - merge <msg> HEAD <parent>...", has been deprecated for quite some - time, and "git gui" was the last in-tree user of the syntax. This - is finally fixed, so that we can move forward with the deprecation. - - * Codepaths that read from an on-disk loose object were too loose in - validating what they are reading is a proper object file and - sometimes read past the data they read from the disk, which has - been corrected. H/t to Gustavo Grieco for reporting. - - * "git worktree", even though it used the default_abbrev setting that - ought to be affected by core.abbrev configuration variable, ignored - the variable setting. The command has been taught to read the - default set of configuration variables to correct this. - - * A low-level function verify_packfile() was meant to show errors - that were detected without dying itself, but under some conditions - it didn't and died instead, which has been fixed. - - * When "git fetch" tries to find where the history of the repository - it runs in has diverged from what the other side has, it has a - mechanism to avoid digging too deep into irrelevant side branches. - This however did not work well over the "smart-http" transport due - to a design bug, which has been fixed. - - * When we started cURL to talk to imap server when a new enough - version of cURL library is available, we forgot to explicitly add - imap(s):// before the destination. To some folks, that didn't work - and the library tried to make HTTP(s) requests instead. - - * The ./configure script generated from configure.ac was taught how - to detect support of SSL by libcurl better. - - * http.emptyauth configuration is a way to allow an empty username to - pass when attempting to authenticate using mechanisms like - Kerberos. We took an unspecified (NULL) username and sent ":" - (i.e. no username, no password) to CURLOPT_USERPWD, but did not do - the same when the username is explicitly set to an empty string. - - * "git clone" of a local repository can be done at the filesystem - level, but the codepath did not check errors while copying and - adjusting the file that lists alternate object stores. - - * Documentation for "git commit" was updated to clarify that "commit - -p <paths>" adds to the current contents of the index to come up - with what to commit. - - * A stray symbolic link in $GIT_DIR/refs/ directory could make name - resolution loop forever, which has been corrected. - - * The "submodule.<name>.path" stored in .gitmodules is never copied - to .git/config and such a key in .git/config has no meaning, but - the documentation described it and submodule.<name>.url next to - each other as if both belong to .git/config. This has been fixed. - - * Recent git allows submodule.<name>.branch to use a special token - "." instead of the branch name; the documentation has been updated - to describe it. - - * In a worktree connected to a repository elsewhere, created via "git - worktree", "git checkout" attempts to protect users from confusion - by refusing to check out a branch that is already checked out in - another worktree. However, this also prevented checking out a - branch, which is designated as the primary branch of a bare - repository, in a worktree that is connected to the bare - repository. The check has been corrected to allow it. - - * "git rebase" immediately after "git clone" failed to find the fork - point from the upstream. - - * When fetching from a remote that has many tags that are irrelevant - to branches we are following, we used to waste way too many cycles - when checking if the object pointed at by a tag (that we are not - going to fetch!) exists in our repository too carefully. - - * The Travis CI configuration we ship ran the tests with --verbose - option but this risks non-TAP output that happens to be "ok" to be - misinterpreted as TAP signalling a test that passed. This resulted - in unnecessary failure. This has been corrected by introducing a - new mode to run our tests in the test harness to send the verbose - output separately to the log file. - - * Some AsciiDoc formatter mishandles a displayed illustration with - tabs in it. Adjust a few of them in merge-base documentation to - work around them. - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.10.3.txt b/third_party/git/Documentation/RelNotes/2.10.3.txt deleted file mode 100644 index ad6a01bf8351..000000000000 --- a/third_party/git/Documentation/RelNotes/2.10.3.txt +++ /dev/null @@ -1,55 +0,0 @@ -Git v2.10.3 Release Notes -========================= - -Fixes since v2.10.2 -------------------- - - * Extract a small helper out of the function that reads the authors - script file "git am" internally uses. - This by itself is not useful until a second caller appears in the - future for "rebase -i" helper. - - * The command-line completion script (in contrib/) learned to - complete "git cmd ^mas<HT>" to complete the negative end of - reference to "git cmd ^master". - - * "git send-email" attempts to pick up valid e-mails from the - trailers, but people in real world write non-addresses there, like - "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending - on the availability and vintage of Mail::Address perl module. - - * The code that we have used for the past 10+ years to cycle - 4-element ring buffers turns out to be not quite portable in - theoretical world. - - * "git daemon" used fixed-length buffers to turn URL to the - repository the client asked for into the server side directory - path, using snprintf() to avoid overflowing these buffers, but - allowed possibly truncated paths to the directory. This has been - tightened to reject such a request that causes overlong path to be - required to serve. - - * Recent update to git-sh-setup (a library of shell functions that - are used by our in-tree scripted Porcelain commands) included - another shell library git-sh-i18n without specifying where it is, - relying on the $PATH. This has been fixed to be more explicit by - prefixing $(git --exec-path) output in front. - - * Fix for a racy false-positive test failure. - - * Portability update and workaround for builds on recent Mac OS X. - - * Update to the test framework made in 2.9 timeframe broke running - the tests under valgrind, which has been fixed. - - * Improve the rule to convert "unsigned char [20]" into "struct - object_id *" in contrib/coccinelle/ - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.10.4.txt b/third_party/git/Documentation/RelNotes/2.10.4.txt deleted file mode 100644 index ee8142ad244d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.10.4.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v2.10.4 Release Notes -========================= - -This release forward-ports the fix for "ssh://..." URL from Git v2.7.6 diff --git a/third_party/git/Documentation/RelNotes/2.10.5.txt b/third_party/git/Documentation/RelNotes/2.10.5.txt deleted file mode 100644 index a498fd6fdc24..000000000000 --- a/third_party/git/Documentation/RelNotes/2.10.5.txt +++ /dev/null @@ -1,17 +0,0 @@ -Git v2.10.5 Release Notes -========================= - -Fixes since v2.10.4 -------------------- - - * "git cvsserver" no longer is invoked by "git daemon" by default, - as it is old and largely unmaintained. - - * Various Perl scripts did not use safe_pipe_capture() instead of - backticks, leaving them susceptible to end-user input. They have - been corrected. - -Credits go to joernchen <joernchen@phenoelit.de> for finding the -unsafe constructs in "git cvsserver", and to Jeff King at GitHub for -finding and fixing instances of the same issue in other scripts. - diff --git a/third_party/git/Documentation/RelNotes/2.11.0.txt b/third_party/git/Documentation/RelNotes/2.11.0.txt deleted file mode 100644 index b7b7dd361ef0..000000000000 --- a/third_party/git/Documentation/RelNotes/2.11.0.txt +++ /dev/null @@ -1,593 +0,0 @@ -Git 2.11 Release Notes -====================== - -Backward compatibility notes. - - * An empty string used as a pathspec element has always meant - 'everything matches', but it is too easy to write a script that - finds a path to remove in $path and run 'git rm "$paht"' by - mistake (when the user meant to give "$path"), which ends up - removing everything. This release starts warning about the - use of an empty string that is used for 'everything matches' and - asks users to use a more explicit '.' for that instead. - - The hope is that existing users will not mind this change, and - eventually the warning can be turned into a hard error, upgrading - the deprecation into removal of this (mis)feature. - - * The historical argument order "git merge <msg> HEAD <commit>..." - has been deprecated for quite some time, and will be removed in the - next release (not this one). - - * The default abbreviation length, which has historically been 7, now - scales as the repository grows, using the approximate number of - objects in the repository and a bit of math around the birthday - paradox. The logic suggests to use 12 hexdigits for the Linux - kernel, and 9 to 10 for Git itself. - - -Updates since v2.10 -------------------- - -UI, Workflows & Features - - * Comes with new version of git-gui, now at its 0.21.0 tag. - - * "git format-patch --cover-letter HEAD^" to format a single patch - with a separate cover letter now numbers the output as [PATCH 0/1] - and [PATCH 1/1] by default. - - * An incoming "git push" that attempts to push too many bytes can now - be rejected by setting a new configuration variable at the receiving - end. - - * "git nosuchcommand --help" said "No manual entry for gitnosuchcommand", - which was not intuitive, given that "git nosuchcommand" said "git: - 'nosuchcommand' is not a git command". - - * "git clone --recurse-submodules --reference $path $URL" is a way to - reduce network transfer cost by borrowing objects in an existing - $path repository when cloning the superproject from $URL; it - learned to also peek into $path for presence of corresponding - repositories of submodules and borrow objects from there when able. - - * The "git diff --submodule={short,log}" mechanism has been enhanced - to allow "--submodule=diff" to show the patch between the submodule - commits bound to the superproject. - - * Even though "git hash-objects", which is a tool to take an - on-filesystem data stream and put it into the Git object store, - can perform "outside-world-to-Git" conversions (e.g. - end-of-line conversions and application of the clean-filter), and - it has had this feature on by default from very early days, its reverse - operation "git cat-file", which takes an object from the Git object - store and externalizes it for consumption by the outside world, - lacked an equivalent mechanism to run the "Git-to-outside-world" - conversion. The command learned the "--filters" option to do so. - - * Output from "git diff" can be made easier to read by intelligently selecting - which lines are common and which lines are added/deleted - when the lines before and after the changed section - are the same. A command line option (--indent-heuristic) and a - configuration variable (diff.indentHeuristic) are added to help with the - experiment to find good heuristics. - - * In some projects, it is common to use "[RFC PATCH]" as the subject - prefix for a patch meant for discussion rather than application. A - new format-patch option "--rfc" is a short-hand for "--subject-prefix=RFC PATCH" - to help the participants of such projects. - - * "git add --chmod={+,-}x <pathspec>" only changed the - executable bit for paths that are either new or modified. This has - been corrected to change the executable bit for all paths that match - the given pathspec. - - * When "git format-patch --stdout" output is placed as an in-body - header and it uses RFC2822 header folding, "git am" fails to - put the header line back into a single logical line. The - underlying "git mailinfo" was taught to handle this properly. - - * "gitweb" can spawn "highlight" to show blob contents with - (programming) language-specific syntax highlighting, but only - when the language is known. "highlight" can however be told - to guess the language itself by giving it "--force" option, which - has been enabled. - - * "git gui" l10n to Portuguese. - - * When given an abbreviated object name that is not (or more - realistically, "no longer") unique, we gave a fatal error - "ambiguous argument". This error is now accompanied by a hint that - lists the objects beginning with the given prefix. During the - course of development of this new feature, numerous minor bugs were - uncovered and corrected, the most notable one of which is that we - gave "short SHA1 xxxx is ambiguous." twice without good reason. - - * "git log rev^..rev" is an often-used revision range specification - to show what was done on a side branch merged at rev. This has - gained a short-hand "rev^-1". In general "rev^-$n" is the same as - "^rev^$n rev", i.e. what has happened on other branches while the - history leading to nth parent was looking the other way. - - * In recent versions of cURL, GSSAPI credential delegation is - disabled by default due to CVE-2011-2192; introduce a http.delegation - configuration variable to selectively allow enabling this. - (merge 26a7b23429 ps/http-gssapi-cred-delegation later to maint). - - * "git mergetool" learned to honor "-O<orderfile>" to control the - order of paths to present to the end user. - - * "git diff/log --ws-error-highlight=<kind>" lacked the corresponding - configuration variable (diff.wsErrorHighlight) to set it by default. - - * "git ls-files" learned the "--recurse-submodules" option - to get a listing of tracked files across submodules (i.e. this - only works with the "--cached" option, not for listing untracked or - ignored files). This would be a useful tool to sit on the upstream - side of a pipe that is read with xargs to work on all working tree - files from the top-level superproject. - - * A new credential helper that talks via "libsecret" with - implementations of XDG Secret Service API has been added to - contrib/credential/. - - * The GPG verification status shown by the "%G?" pretty format specifier - was not rich enough to differentiate a signature made by an expired - key, a signature made by a revoked key, etc. New output letters - have been assigned to express them. - - * In addition to purely abbreviated commit object names, "gitweb" - learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787) - into clickable links in its output. - - * "git commit" created an empty commit when invoked with an index - consisting solely of intend-to-add paths (added with "git add -N"). - It now requires the "--allow-empty" option to create such a commit. - The same logic prevented "git status" from showing such paths as "new files" in the - "Changes not staged for commit" section. - - * The smudge/clean filter API spawns an external process - to filter the contents of each path that has a filter defined. A - new type of "process" filter API has been added to allow the first - request to run the filter for a path to spawn a single process, and - all filtering is served by this single process for multiple - paths, reducing the process creation overhead. - - * The user always has to say "stash@{$N}" when naming a single - element in the default location of the stash, i.e. reflogs in - refs/stash. The "git stash" command learned to accept "git stash - apply 4" as a short-hand for "git stash apply stash@{4}". - - -Performance, Internal Implementation, Development Support etc. - - * The delta-base-cache mechanism has been a key to the performance in - a repository with a tightly packed packfile, but it did not scale - well even with a larger value of core.deltaBaseCacheLimit. - - * Enhance "git status --porcelain" output by collecting more data on - the state of the index and the working tree files, which may - further be used to teach git-prompt (in contrib/) to make fewer - calls to git. - - * Extract a small helper out of the function that reads the authors - script file "git am" internally uses. - (merge a77598e jc/am-read-author-file later to maint). - - * Lift calls to exit(2) and die() higher in the callchain in - sequencer.c files so that more helper functions in it can be used - by callers that want to handle error conditions themselves. - - * "git am" has been taught to make an internal call to "git apply"'s - innards without spawning the latter as a separate process. - - * The ref-store abstraction was introduced to the refs API so that we - can plug in different backends to store references. - - * The "unsigned char sha1[20]" to "struct object_id" conversion - continues. Notable changes in this round includes that ce->sha1, - i.e. the object name recorded in the cache_entry, turns into an - object_id. - - * JGit can show a fake ref "capabilities^{}" to "git fetch" when it - does not advertise any refs, but "git fetch" was not prepared to - see such an advertisement. When the other side disconnects without - giving any ref advertisement, we used to say "there may not be a - repository at that URL", but we may have seen other advertisements - like "shallow" and ".have" in which case we definitely know that a - repository is there. The code to detect this case has also been - updated. - - * Some codepaths in "git pack-objects" were not ready to use an - existing pack bitmap; now they are and as a result they have - become faster. - - * The codepath in "git fsck" to detect malformed tree objects has - been updated not to die but keep going after detecting them. - - * We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of - the time third parameter is redundant. A new QSORT() macro lets us - omit it. - - * "git pack-objects" in a repository with many packfiles used to - spend a lot of time looking for/at objects in them; the accesses to - the packfiles are now optimized by checking the most-recently-used - packfile first. - (merge c9af708b1a jk/pack-objects-optim-mru later to maint). - - * Codepaths involved in interacting alternate object stores have - been cleaned up. - - * In order for the receiving end of "git push" to inspect the - received history and decide to reject the push, the objects sent - from the sending end need to be made available to the hook and - the mechanism for the connectivity check, and this was done - traditionally by storing the objects in the receiving repository - and letting "git gc" expire them. Instead, store the newly - received objects in a temporary area, and make them available by - reusing the alternate object store mechanism to them only while we - decide if we accept the check, and once we decide, either migrate - them to the repository or purge them immediately. - - * The require_clean_work_tree() helper was recreated in C when "git - pull" was rewritten from shell; the helper is now made available to - other callers in preparation for upcoming "rebase -i" work. - - * "git upload-pack" had its code cleaned-up and performance improved - by reducing use of timestamp-ordered commit-list, which was - replaced with a priority queue. - - * "git diff --no-index" codepath has been updated not to try to peek - into a .git/ directory that happens to be under the current - directory, when we know we are operating outside any repository. - - * Update of the sequencer codebase to make it reusable to reimplement - "rebase -i" continues. - - * Git generally does not explicitly close file descriptors that were - open in the parent process when spawning a child process, but most - of the time the child does not want to access them. As Windows does - not allow removing or renaming a file that has a file descriptor - open, a slow-to-exit child can even break the parent process by - holding onto them. Use O_CLOEXEC flag to open files in various - codepaths. - - * Update "interpret-trailers" machinery and teach it that people in - the real world write all sorts of cruft in the "trailer" that was - originally designed to have the neat-o "Mail-Header: like thing" - and nothing else. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.10 ------------------ - -Unless otherwise noted, all the fixes since v2.9 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * Clarify various ways to specify the "revision ranges" in the - documentation. - - * "diff-highlight" script (in contrib/) learned to work better with - "git log -p --graph" output. - - * The test framework left the number of tests and success/failure - count in the t/test-results directory, keyed by the name of the - test script plus the process ID. The latter however turned out not - to serve any useful purpose. The process ID part of the filename - has been removed. - - * Having a submodule whose ".git" repository is somehow corrupt - caused a few commands that recurse into submodules to loop forever. - - * "git symbolic-ref -d HEAD" happily removes the symbolic ref, but - the resulting repository becomes an invalid one. Teach the command - to forbid removal of HEAD. - - * A test spawned a short-lived background process, which sometimes - prevented the test directory from getting removed at the end of the - script on some platforms. - - * Update a few tests that used to use GIT_CURL_VERBOSE to use the - newer GIT_TRACE_CURL. - - * "git pack-objects --include-tag" was taught that when we know that - we are sending an object C, we want a tag B that directly points at - C but also a tag A that points at the tag B. We used to miss the - intermediate tag B in some cases. - - * Update Japanese translation for "git-gui". - - * "git fetch http::/site/path" did not die correctly and segfaulted - instead. - - * "git commit-tree" stopped reading commit.gpgsign configuration - variable that was meant for Porcelain "git commit" in Git 2.9; we - forgot to update "git gui" to look at the configuration to match - this change. - - * "git add --chmod={+,-}x" added recently lacked documentation, which has - been corrected. - - * "git log --cherry-pick" used to include merge commits as candidates - to be matched up with other commits, resulting a lot of wasted time. - The patch-id generation logic has been updated to ignore merges and - avoid the wastage. - - * The http transport (with curl-multi option, which is the default - these days) failed to remove curl-easy handle from a curlm session, - which led to unnecessary API failures. - - * There were numerous corner cases in which the configuration files - are read and used or not read at all depending on the directory a - Git command was run, leading to inconsistent behaviour. The code - to set-up repository access at the beginning of a Git process has - been updated to fix them. - (merge 4d0efa1 jk/setup-sequence-update later to maint). - - * "git diff -W" output needs to extend the context backward to - include the header line of the current function and also forward to - include the body of the entire current function up to the header - line of the next one. This process may have to merge two adjacent - hunks, but the code forgot to do so in some cases. - - * Performance tests done via "t/perf" did not use the right - build configuration if the user relied on autoconf generated - configuration. - - * "git format-patch --base=..." feature that was recently added - showed the base commit information after the "-- " e-mail signature - line, which turned out to be inconvenient. The base information - has been moved above the signature line. - - * More i18n. - - * Even when "git pull --rebase=preserve" (and the underlying "git - rebase --preserve") can complete without creating any new commits - (i.e. fast-forwards), it still insisted on having usable ident - information (read: user.email is set correctly), which was less - than nice. As the underlying commands used inside "git rebase" - would fail with a more meaningful error message and advice text - when the bogus ident matters, this extra check was removed. - - * "git gc --aggressive" used to limit the delta-chain length to 250, - which is way too deep for gaining additional space savings and is - detrimental for runtime performance. The limit has been reduced to - 50. - - * Documentation for individual configuration variables to control use - of color (like `color.grep`) said that their default value is - 'false', instead of saying their default is taken from `color.ui`. - When we updated the default value for color.ui from 'false' to - 'auto' quite a while ago, all of them broke. This has been - corrected. - - * The pretty-format specifier "%C(auto)" used by the "log" family of - commands to enable coloring of the output is taught to also issue a - color-reset sequence to the output. - - * A shell script example in check-ref-format documentation has been - fixed. - - * "git checkout <word>" does not follow the usual disambiguation - rules when the <word> can be both a rev and a path, to allow - checking out a branch 'foo' in a project that happens to have a - file 'foo' in the working tree without having to disambiguate. - This was poorly documented and the check was incorrect when the - command was run from a subdirectory. - - * Some codepaths in "git diff" used regexec(3) on a buffer that was - mmap(2)ed, which may not have a terminating NUL, leading to a read - beyond the end of the mapped region. This was fixed by introducing - a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND - extension. - - * The procedure to build Git on Mac OS X for Travis CI hardcoded the - internal directory structure we assumed HomeBrew uses, which was a - no-no. The procedure has been updated to ask HomeBrew things we - need to know to fix this. - - * When "git rebase -i" is given a broken instruction, it told the - user to fix it with "--edit-todo", but didn't say what the step - after that was (i.e. "--continue"). - - * Documentation around tools to import from CVS was fairly outdated. - - * "git clone --recurse-submodules" lost the progress eye-candy in - a recent update, which has been corrected. - - * A low-level function verify_packfile() was meant to show errors - that were detected without dying itself, but under some conditions - it didn't and died instead, which has been fixed. - - * When "git fetch" tries to find where the history of the repository - it runs in has diverged from what the other side has, it has a - mechanism to avoid digging too deep into irrelevant side branches. - This however did not work well over the "smart-http" transport due - to a design bug, which has been fixed. - - * In the codepath that comes up with the hostname to be used in an - e-mail when the user didn't tell us, we looked at the ai_canonname - field in struct addrinfo without making sure it is not NULL first. - - * "git worktree", even though it used the default_abbrev setting that - ought to be affected by the core.abbrev configuration variable, ignored - the variable setting. The command has been taught to read the - default set of configuration variables to correct this. - - * "git init" tried to record core.worktree in the repository's - 'config' file when the GIT_WORK_TREE environment variable was set and - it was different from where GIT_DIR appears as ".git" at its top, - but the logic was faulty when .git is a "gitdir:" file that points - at the real place, causing trouble in working trees that are - managed by "git worktree". This has been corrected. - - * Codepaths that read from an on-disk loose object were too loose in - validating that they are reading a proper object file and - sometimes read past the data they read from the disk, which has - been corrected. H/t to Gustavo Grieco for reporting. - - * The original command line syntax for "git merge", which was "git - merge <msg> HEAD <parent>...", has been deprecated for quite some - time, and "git gui" was the last in-tree user of the syntax. This - is finally fixed, so that we can move forward with the deprecation. - - * An author name that has a backslash-quoted double quote in the - human readable part ("My \"double quoted\" name"), was not unquoted - correctly while applying a patch from a piece of e-mail. - - * Doc update to clarify what "log -3 --reverse" does. - - * Almost everybody uses DEFAULT_ABBREV to refer to the default - setting for the abbreviation, but "git blame" peeked into - underlying variable bypassing the macro for no good reason. - - * The "graph" API used in "git log --graph" miscounted the number of - output columns consumed so far when drawing a padding line, which - has been fixed; this did not affect any existing code as nobody - tried to write anything after the padding on such a line, though. - - * The code that parses the format parameter of the for-each-ref command - has seen a micro-optimization. - - * When we started to use cURL to talk to an imap server, we forgot to explicitly add - imap(s):// before the destination. To some folks, that didn't work - and the library tried to make HTTP(s) requests instead. - - * The ./configure script generated from configure.ac was taught how - to detect support of SSL by libcurl better. - - * The command-line completion script (in contrib/) learned to - complete "git cmd ^mas<HT>" to complete the negative end of - reference to "git cmd ^master". - (merge 49416ad22a cp/completion-negative-refs later to maint). - - * The existing "git fetch --depth=<n>" option was hard to use - correctly when making the history of an existing shallow clone - deeper. A new option, "--deepen=<n>", has been added to make this - easier to use. "git clone" also learned "--shallow-since=<date>" - and "--shallow-exclude=<tag>" options to make it easier to specify - "I am interested only in the recent N months worth of history" and - "Give me only the history since that version". - (merge cccf74e2da nd/shallow-deepen later to maint). - - * "git blame --reverse OLD path" is now DWIMmed to show how lines - in path in an old revision OLD have survived up to the current - commit. - (merge e1d09701a4 jc/blame-reverse later to maint). - - * The http.emptyauth configuration variable is a way to allow an empty username to - pass when attempting to authenticate using mechanisms like - Kerberos. We took an unspecified (NULL) username and sent ":" - (i.e. no username, no password) to CURLOPT_USERPWD, but did not do - the same when the username is explicitly set to an empty string. - - * "git clone" of a local repository can be done at the filesystem - level, but the codepath did not check errors while copying and - adjusting the file that lists alternate object stores. - - * Documentation for "git commit" was updated to clarify that "commit - -p <paths>" adds to the current contents of the index to come up - with what to commit. - - * A stray symbolic link in the $GIT_DIR/refs/ directory could make name - resolution loop forever, which has been corrected. - - * The "submodule.<name>.path" stored in .gitmodules is never copied - to .git/config and such a key in .git/config has no meaning, but - the documentation described it next to submodule.<name>.url - as if both belong to .git/config. This has been fixed. - - * In a worktree created via "git - worktree", "git checkout" attempts to protect users from confusion - by refusing to check out a branch that is already checked out in - another worktree. However, this also prevented checking out a - branch which is designated as the primary branch of a bare - repository, in a worktree that is connected to the bare - repository. The check has been corrected to allow it. - - * "git rebase" immediately after "git clone" failed to find the fork - point from the upstream. - - * When fetching from a remote that has many tags that are irrelevant - to branches we are following, we used to waste way too many cycles - checking if the object pointed at by a tag (that we are not - going to fetch!) exists in our repository too carefully. - - * Protect our code from over-eager compilers. - - * Recent git allows submodule.<name>.branch to use a special token - "." instead of the branch name; the documentation has been updated - to describe it. - - * "git send-email" attempts to pick up valid e-mails from the - trailers, but people in the real world write non-addresses there, like - "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending - on the availability and vintage of the Mail::Address perl module. - (merge dcfafc5214 mm/send-email-cc-cruft-after-address later to maint). - - * The Travis CI configuration we ship ran the tests with the --verbose - option but this risks non-TAP output that happens to be "ok" to be - misinterpreted as TAP signalling a test that passed. This resulted - in unnecessary failures. This has been corrected by introducing a - new mode to run our tests in the test harness to send the verbose - output separately to the log file. - - * Some AsciiDoc formatters mishandle a displayed illustration with - tabs in it. Adjust a few of them in merge-base documentation to - work around them. - - * Fixed a minor regression in "git submodule" that was introduced - when more helper functions were reimplemented in C. - (merge 77b63ac31e sb/submodule-ignore-trailing-slash later to maint). - - * The code that we have used for the past 10+ years to cycle - 4-element ring buffers turns out to be not quite portable in - theoretical world. - (merge bb84735c80 rs/ring-buffer-wraparound later to maint). - - * "git daemon" used fixed-length buffers to turn URLs to the - repository the client asked for into the server side directory - paths, using snprintf() to avoid overflowing these buffers, but - allowed possibly truncated paths to the directory. This has been - tightened to reject such a request that causes an overlong path to be - served. - (merge 6bdb0083be jk/daemon-path-ok-check-truncation later to maint). - - * Recent update to git-sh-setup (a library of shell functions that - are used by our in-tree scripted Porcelain commands) included - another shell library git-sh-i18n without specifying where it is, - relying on the $PATH. This has been fixed to be more explicit by - prefixing with $(git --exec-path) output. - (merge 1073094f30 ak/sh-setup-dot-source-i18n-fix later to maint). - - * Fix for a racy false-positive test failure. - (merge fdf4f6c79b as/merge-attr-sleep later to maint). - - * Portability update and workaround for builds on recent Mac OS X. - (merge a296bc0132 ls/macos-update later to maint). - - * Using a %(HEAD) placeholder in "for-each-ref --format=" option - caused the command to segfault when on an unborn branch. - (merge 84679d470d jc/for-each-ref-head-segfault-fix later to maint). - - * "git rebase -i" did not work well with the core.commentchar - configuration variable for two reasons, both of which have been - fixed. - (merge 882cd23777 js/rebase-i-commentchar-fix later to maint). - - * Other minor doc, test and build updates and code cleanups. - (merge 5c238e29a8 jk/common-main later to maint). - (merge 5a5749e45b ak/pre-receive-hook-template-modefix later to maint). - (merge 6d834ac8f1 jk/rebase-config-insn-fmt-docfix later to maint). - (merge de9f7fa3b0 rs/commit-pptr-simplify later to maint). - (merge 4259d693fc sc/fmt-merge-msg-doc-markup-fix later to maint). - (merge 28fab7b23d nd/test-helpers later to maint). - (merge c2bb0c1d1e rs/cocci later to maint). - (merge 3285b7badb ps/common-info-doc later to maint). - (merge 2b090822e8 nd/worktree-lock later to maint). - (merge 4bd488ea7c jk/create-branch-remove-unused-param later to maint). - (merge 974e0044d6 tk/diffcore-delta-remove-unused later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.11.1.txt b/third_party/git/Documentation/RelNotes/2.11.1.txt deleted file mode 100644 index 7d35cf186dbf..000000000000 --- a/third_party/git/Documentation/RelNotes/2.11.1.txt +++ /dev/null @@ -1,168 +0,0 @@ -Git v2.11.1 Release Notes -========================= - -Fixes since v2.11 ------------------ - - * The default Travis-CI configuration specifies newer P4 and GitLFS. - - * The character width table has been updated to match Unicode 9.0 - - * Update the isatty() emulation for Windows by updating the previous - hack that depended on internals of (older) MSVC runtime. - - * "git rev-parse --symbolic" failed with a more recent notation like - "HEAD^-1" and "HEAD^!". - - * An empty directory in a working tree that can simply be nuked used - to interfere while merging or cherry-picking a change to create a - submodule directory there, which has been fixed.. - - * The code in "git push" to compute if any commit being pushed in the - superproject binds a commit in a submodule that hasn't been pushed - out was overly inefficient, making it unusable even for a small - project that does not have any submodule but have a reasonable - number of refs. - - * "git push --dry-run --recurse-submodule=on-demand" wasn't - "--dry-run" in the submodules. - - * The output from "git worktree list" was made in readdir() order, - and was unstable. - - * mergetool.<tool>.trustExitCode configuration variable did not apply - to built-in tools, but now it does. - - * "git p4" LFS support was broken when LFS stores an empty blob. - - * Fix a corner case in merge-recursive regression that crept in - during 2.10 development cycle. - - * Update the error messages from the dumb-http client when it fails - to obtain loose objects; we used to give sensible error message - only upon 404 but we now forbid unexpected redirects that needs to - be reported with something sensible. - - * When diff.renames configuration is on (and with Git 2.9 and later, - it is enabled by default, which made it worse), "git stash" - misbehaved if a file is removed and another file with a very - similar content is added. - - * "git diff --no-index" did not take "--no-abbrev" option. - - * "git difftool --dir-diff" had a minor regression when started from - a subdirectory, which has been fixed. - - * "git commit --allow-empty --only" (no pathspec) with dirty index - ought to be an acceptable way to create a new commit that does not - change any paths, but it was forbidden, perhaps because nobody - needed it so far. - - * A pathname that begins with "//" or "\\" on Windows is special but - path normalization logic was unaware of it. - - * "git pull --rebase", when there is no new commits on our side since - we forked from the upstream, should be able to fast-forward without - invoking "git rebase", but it didn't. - - * The way to specify hotkeys to "xxdiff" that is used by "git - mergetool" has been modernized to match recent versions of xxdiff. - - * Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back - to where cherry-pick started while picking multiple changes, when - the cherry-pick stopped to ask for help from the user, and the user - did "git reset --hard" to a different commit in order to re-attempt - the operation. - - * Code cleanup in shallow boundary computation. - - * A recent update to receive-pack to make it easier to drop garbage - objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot - have a pathname with a colon in it (no surprise!), and this in turn - made it impossible to push into a repository at such a path. This - has been fixed by introducing a quoting mechanism used when - appending such a path to the colon-separated list. - - * The function usage_msg_opt() has been updated to say "fatal:" - before the custom message programs give, when they want to die - with a message about wrong command line options followed by the - standard usage string. - - * "git index-pack --stdin" needs an access to an existing repository, - but "git index-pack file.pack" to generate an .idx file that - corresponds to a packfile does not. - - * Fix for NDEBUG builds. - - * A lazy "git push" without refspec did not internally use a fully - specified refspec to perform 'current', 'simple', or 'upstream' - push, causing unnecessary "ambiguous ref" errors. - - * "git p4" misbehaved when swapping a directory and a symbolic link. - - * Even though an fix was attempted in Git 2.9.3 days, but running - "git difftool --dir-diff" from a subdirectory never worked. This - has been fixed. - - * "git p4" that tracks multiple p4 paths imported a single changelist - that touches files in these multiple paths as one commit, followed - by many empty commits. This has been fixed. - - * A potential but unlikely buffer overflow in Windows port has been - fixed. - - * When the http server gives an incomplete response to a smart-http - rpc call, it could lead to client waiting for a full response that - will never come. Teach the client side to notice this condition - and abort the transfer. - - * Some platforms no longer understand "latin-1" that is still seen in - the wild in e-mail headers; replace them with "iso-8859-1" that is - more widely known when conversion fails from/to it. - - * Update the procedure to generate "tags" for developer support. - - * Update the definition of the MacOSX test environment used by - TravisCI. - - * A few git-svn updates. - - * Compression setting for producing packfiles were spread across - three codepaths, one of which did not honor any configuration. - Unify these so that all of them honor core.compression and - pack.compression variables the same way. - - * "git fast-import" sometimes mishandled while rebalancing notes - tree, which has been fixed. - - * Recent update to the default abbreviation length that auto-scales - lacked documentation update, which has been corrected. - - * Leakage of lockfiles in the config subsystem has been fixed. - - * It is natural that "git gc --auto" may not attempt to pack - everything into a single pack, and there is no point in warning - when the user has configured the system to use the pack bitmap, - leading to disabling further "gc". - - * "git archive" did not read the standard configuration files, and - failed to notice a file that is marked as binary via the userdiff - driver configuration. - - * "git blame --porcelain" misidentified the "previous" <commit, path> - pair (aka "source") when contents came from two or more files. - - * "git rebase -i" with a recent update started showing an incorrect - count when squashing more than 10 commits. - - * "git <cmd> @{push}" on a detached HEAD used to segfault; it has - been corrected to error out with a message. - - * Tighten a test to avoid mistaking an extended ERE regexp engine as - a PRE regexp engine. - - * Typing ^C to pager, which usually does not kill it, killed Git and - took the pager down as a collateral damage in certain process-tree - structure. This has been fixed. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.11.2.txt b/third_party/git/Documentation/RelNotes/2.11.2.txt deleted file mode 100644 index 74288511686c..000000000000 --- a/third_party/git/Documentation/RelNotes/2.11.2.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.11.2 Release Notes -========================= - -Fixes since v2.11.1 -------------------- - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). diff --git a/third_party/git/Documentation/RelNotes/2.11.3.txt b/third_party/git/Documentation/RelNotes/2.11.3.txt deleted file mode 100644 index 4e3b78d0e8f9..000000000000 --- a/third_party/git/Documentation/RelNotes/2.11.3.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v2.11.3 Release Notes -========================= - -This release forward-ports the fix for "ssh://..." URL from Git v2.7.6 diff --git a/third_party/git/Documentation/RelNotes/2.11.4.txt b/third_party/git/Documentation/RelNotes/2.11.4.txt deleted file mode 100644 index ad4da8eb09ef..000000000000 --- a/third_party/git/Documentation/RelNotes/2.11.4.txt +++ /dev/null @@ -1,17 +0,0 @@ -Git v2.11.4 Release Notes -========================= - -Fixes since v2.11.3 -------------------- - - * "git cvsserver" no longer is invoked by "git daemon" by default, - as it is old and largely unmaintained. - - * Various Perl scripts did not use safe_pipe_capture() instead of - backticks, leaving them susceptible to end-user input. They have - been corrected. - -Credits go to joernchen <joernchen@phenoelit.de> for finding the -unsafe constructs in "git cvsserver", and to Jeff King at GitHub for -finding and fixing instances of the same issue in other scripts. - diff --git a/third_party/git/Documentation/RelNotes/2.12.0.txt b/third_party/git/Documentation/RelNotes/2.12.0.txt deleted file mode 100644 index d2f6a836146d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.12.0.txt +++ /dev/null @@ -1,500 +0,0 @@ -Git 2.12 Release Notes -====================== - -Backward compatibility notes. - - * Use of an empty string that is used for 'everything matches' is - still warned and Git asks users to use a more explicit '.' for that - instead. The hope is that existing users will not mind this - change, and eventually the warning can be turned into a hard error, - upgrading the deprecation into removal of this (mis)feature. That - is not scheduled to happen in the upcoming release (yet). - - * The historical argument order "git merge <msg> HEAD <commit>..." - has been deprecated for quite some time, and will be removed in a - future release. - - * An ancient script "git relink" has been removed. - - -Updates since v2.11 -------------------- - -UI, Workflows & Features - - * Various updates to "git p4". - - * "git p4" didn't interact with the internal of .git directory - correctly in the modern "git-worktree"-enabled world. - - * "git branch --list" and friends learned "--ignore-case" option to - optionally sort branches and tags case insensitively. - - * In addition to %(subject), %(body), "log --pretty=format:..." - learned a new placeholder %(trailers). - - * "git rebase" learned "--quit" option, which allows a user to - remove the metadata left by an earlier "git rebase" that was - manually aborted without using "git rebase --abort". - - * "git clone --reference $there --recurse-submodules $super" has been - taught to guess repositories usable as references for submodules of - $super that are embedded in $there while making a clone of the - superproject borrow objects from $there; extend the mechanism to - also allow submodules of these submodules to borrow repositories - embedded in these clones of the submodules embedded in the clone of - the superproject. - - * Porcelain scripts written in Perl are getting internationalized. - - * "git merge --continue" has been added as a synonym to "git commit" - to conclude a merge that has stopped due to conflicts. - - * Finer-grained control of what protocols are allowed for transports - during clone/fetch/push have been enabled via a new configuration - mechanism. - - * "git shortlog" learned "--committer" option to group commits by - committer, instead of author. - - * GitLFS integration with "git p4" has been updated. - - * The isatty() emulation for Windows has been updated to eradicate - the previous hack that depended on internals of (older) MSVC - runtime. - - * Some platforms no longer understand "latin-1" that is still seen in - the wild in e-mail headers; replace them with "iso-8859-1" that is - more widely known when conversion fails from/to it. - - * "git grep" has been taught to optionally recurse into submodules. - - * "git rm" used to refuse to remove a submodule when it has its own - git repository embedded in its working tree. It learned to move - the repository away to $GIT_DIR/modules/ of the superproject - instead, and allow the submodule to be deleted (as long as there - will be no loss of local modifications, that is). - - * A recent updates to "git p4" was not usable for older p4 but it - could be made to work with minimum changes. Do so. - - * "git diff" learned diff.interHunkContext configuration variable - that gives the default value for its --inter-hunk-context option. - - * The prereleaseSuffix feature of version comparison that is used in - "git tag -l" did not correctly when two or more prereleases for the - same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2 - are there and the code needs to compare 2.0-beta1 and 2.0-beta2). - - * "git submodule push" learned "--recurse-submodules=only option to - push submodules out without pushing the top-level superproject. - - * "git tag" and "git verify-tag" learned to put GPG verification - status in their "--format=<placeholders>" output format. - - * An ancient repository conversion tool left in contrib/ has been - removed. - - * "git show-ref HEAD" used with "--verify" because the user is not - interested in seeing refs/remotes/origin/HEAD, and used with - "--head" because the user does not want HEAD to be filtered out, - i.e. "git show-ref --head --verify HEAD", did not work as expected. - - * "git submodule add" used to be confused and refused to add a - locally created repository; users can now use "--force" option - to add them. - (merge 619acfc78c sb/submodule-add-force later to maint). - - * Some people feel the default set of colors used by "git log --graph" - rather limiting. A mechanism to customize the set of colors has - been introduced. - - * "git read-tree" and its underlying unpack_trees() machinery learned - to report problematic paths prefixed with the --super-prefix option. - - * When a submodule "A", which has another submodule "B" nested within - it, is "absorbed" into the top-level superproject, the inner - submodule "B" used to be left in a strange state. The logic to - adjust the .git pointers in these submodules has been corrected. - - * The user can specify a custom update method that is run when - "submodule update" updates an already checked out submodule. This - was ignored when checking the submodule out for the first time and - we instead always just checked out the commit that is bound to the - path in the superproject's index. - - * The command line completion (in contrib/) learned that - "git diff --submodule=" can take "diff" as a recently added option. - - * The "core.logAllRefUpdates" that used to be boolean has been - enhanced to take 'always' as well, to record ref updates to refs - other than the ones that are expected to be updated (i.e. branches, - remote-tracking branches and notes). - - * Comes with more command line completion (in contrib/) for recently - introduced options. - - -Performance, Internal Implementation, Development Support etc. - - * Commands that operate on a log message and add lines to the trailer - blocks, such as "format-patch -s", "cherry-pick (-x|-s)", and - "commit -s", have been taught to use the logic of and share the - code with "git interpret-trailer". - - * The default Travis-CI configuration specifies newer P4 and GitLFS. - - * The "fast hash" that had disastrous performance issues in some - corner cases has been retired from the internal diff. - - * The character width table has been updated to match Unicode 9.0 - - * Update the procedure to generate "tags" for developer support. - - * The codeflow of setting NOATIME and CLOEXEC on file descriptors Git - opens has been simplified. - - * "git diff" and its family had two experimental heuristics to shift - the contents of a hunk to make the patch easier to read. One of - them turns out to be better than the other, so leave only the - "--indent-heuristic" option and remove the other one. - - * A new submodule helper "git submodule embedgitdirs" to make it - easier to move embedded .git/ directory for submodules in a - superproject to .git/modules/ (and point the latter with the former - that is turned into a "gitdir:" file) has been added. - - * "git push \\server\share\dir" has recently regressed and then - fixed. A test has retroactively been added for this breakage. - - * Build updates for Cygwin. - - * The implementation of "real_path()" was to go there with chdir(2) - and call getcwd(3), but this obviously wouldn't be usable in a - threaded environment. Rewrite it to manually resolve relative - paths including symbolic links in path components. - - * Adjust documentation to help AsciiDoctor render better while not - breaking the rendering done by AsciiDoc. - - * The sequencer machinery has been further enhanced so that a later - set of patches can start using it to reimplement "rebase -i". - - * Update the definition of the MacOSX test environment used by - TravisCI. - - * Rewrite a scripted porcelain "git difftool" in C. - - * "make -C t failed" will now run only the tests that failed in the - previous run. This is usable only when prove is not use, and gives - a useless error message when run after "make clean", but otherwise - is serviceable. - - * "uchar [40]" to "struct object_id" conversion continues. - - -Also contains various documentation updates and code clean-ups. - -Fixes since v2.10 ------------------ - -Unless otherwise noted, all the fixes since v2.9 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * We often decide if a session is interactive by checking if the - standard I/O streams are connected to a TTY, but isatty() that - comes with Windows incorrectly returned true if it is used on NUL - (i.e. an equivalent to /dev/null). This has been fixed. - - * "git svn" did not work well with path components that are "0", and - some configuration variable it uses were not documented. - - * "git rev-parse --symbolic" failed with a more recent notation like - "HEAD^-1" and "HEAD^!". - - * An empty directory in a working tree that can simply be nuked used - to interfere while merging or cherry-picking a change to create a - submodule directory there, which has been fixed.. - - * The code in "git push" to compute if any commit being pushed in the - superproject binds a commit in a submodule that hasn't been pushed - out was overly inefficient, making it unusable even for a small - project that does not have any submodule but have a reasonable - number of refs. - - * "git push --dry-run --recurse-submodule=on-demand" wasn't - "--dry-run" in the submodules. - - * The output from "git worktree list" was made in readdir() order, - and was unstable. - - * mergetool.<tool>.trustExitCode configuration variable did not apply - to built-in tools, but now it does. - - * "git p4" LFS support was broken when LFS stores an empty blob. - - * A corner case in merge-recursive regression that crept in - during 2.10 development cycle has been fixed. - - * Transport with dumb http can be fooled into following foreign URLs - that the end user does not intend to, especially with the server - side redirects and http-alternates mechanism, which can lead to - security issues. Tighten the redirection and make it more obvious - to the end user when it happens. - - * Update the error messages from the dumb-http client when it fails - to obtain loose objects; we used to give sensible error message - only upon 404 but we now forbid unexpected redirects that needs to - be reported with something sensible. - - * When diff.renames configuration is on (and with Git 2.9 and later, - it is enabled by default, which made it worse), "git stash" - misbehaved if a file is removed and another file with a very - similar content is added. - - * "git diff --no-index" did not take "--no-abbrev" option. - - * "git difftool --dir-diff" had a minor regression when started from - a subdirectory, which has been fixed. - - * "git commit --allow-empty --only" (no pathspec) with dirty index - ought to be an acceptable way to create a new commit that does not - change any paths, but it was forbidden, perhaps because nobody - needed it so far. - - * Git 2.11 had a minor regression in "merge --ff-only" that competed - with another process that simultaneously attempted to update the - index. We used to explain what went wrong with an error message, - but the new code silently failed. The error message has been - resurrected. - - * A pathname that begins with "//" or "\\" on Windows is special but - path normalization logic was unaware of it. - - * "git pull --rebase", when there is no new commits on our side since - we forked from the upstream, should be able to fast-forward without - invoking "git rebase", but it didn't. - - * The way to specify hotkeys to "xxdiff" that is used by "git - mergetool" has been modernized to match recent versions of xxdiff. - - * Unlike "git am --abort", "git cherry-pick --abort" moved HEAD back - to where cherry-pick started while picking multiple changes, when - the cherry-pick stopped to ask for help from the user, and the user - did "git reset --hard" to a different commit in order to re-attempt - the operation. - - * Code cleanup in shallow boundary computation. - - * A recent update to receive-pack to make it easier to drop garbage - objects made it clear that GIT_ALTERNATE_OBJECT_DIRECTORIES cannot - have a pathname with a colon in it (no surprise!), and this in turn - made it impossible to push into a repository at such a path. This - has been fixed by introducing a quoting mechanism used when - appending such a path to the colon-separated list. - - * The function usage_msg_opt() has been updated to say "fatal:" - before the custom message programs give, when they want to die - with a message about wrong command line options followed by the - standard usage string. - - * "git index-pack --stdin" needs an access to an existing repository, - but "git index-pack file.pack" to generate an .idx file that - corresponds to a packfile does not. - - * Fix for NDEBUG builds. - - * A lazy "git push" without refspec did not internally use a fully - specified refspec to perform 'current', 'simple', or 'upstream' - push, causing unnecessary "ambiguous ref" errors. - - * "git p4" misbehaved when swapping a directory and a symbolic link. - - * Even though an fix was attempted in Git 2.9.3 days, but running - "git difftool --dir-diff" from a subdirectory never worked. This - has been fixed. - - * "git p4" that tracks multiple p4 paths imported a single changelist - that touches files in these multiple paths as one commit, followed - by many empty commits. This has been fixed. - - * A potential but unlikely buffer overflow in Windows port has been - fixed. - - * When the http server gives an incomplete response to a smart-http - rpc call, it could lead to client waiting for a full response that - will never come. Teach the client side to notice this condition - and abort the transfer. - - * Compression setting for producing packfiles were spread across - three codepaths, one of which did not honor any configuration. - Unify these so that all of them honor core.compression and - pack.compression variables the same way. - - * "git fast-import" sometimes mishandled while rebalancing notes - tree, which has been fixed. - - * Recent update to the default abbreviation length that auto-scales - lacked documentation update, which has been corrected. - - * Leakage of lockfiles in the config subsystem has been fixed. - - * It is natural that "git gc --auto" may not attempt to pack - everything into a single pack, and there is no point in warning - when the user has configured the system to use the pack bitmap, - leading to disabling further "gc". - - * "git archive" did not read the standard configuration files, and - failed to notice a file that is marked as binary via the userdiff - driver configuration. - - * "git blame --porcelain" misidentified the "previous" <commit, path> - pair (aka "source") when contents came from two or more files. - - * "git rebase -i" with a recent update started showing an incorrect - count when squashing more than 10 commits. - - * "git <cmd> @{push}" on a detached HEAD used to segfault; it has - been corrected to error out with a message. - - * Running "git add a/b" when "a" is a submodule correctly errored - out, but without a meaningful error message. - (merge 2d81c48fa7 sb/pathspec-errors later to maint). - - * Typing ^C to pager, which usually does not kill it, killed Git and - took the pager down as a collateral damage in certain process-tree - structure. This has been fixed. - - * "git mergetool" without any pathspec on the command line that is - run from a subdirectory became no-op in Git v2.11 by mistake, which - has been fixed. - - * Retire long unused/unmaintained gitview from the contrib/ area. - (merge 3120925c25 sb/remove-gitview later to maint). - - * Tighten a test to avoid mistaking an extended ERE regexp engine as - a PRE regexp engine. - - * An error message with an ASCII control character like '\r' in it - can alter the message to hide its early part, which is problematic - when a remote side gives such an error message that the local side - will relay with a "remote: " prefix. - (merge f290089879 jk/vreport-sanitize later to maint). - - * "git fsck" inspects loose objects more carefully now. - (merge cce044df7f jk/loose-object-fsck later to maint). - - * A crashing bug introduced in v2.11 timeframe has been found (it is - triggerable only in fast-import) and fixed. - (merge abd5a00268 jk/clear-delta-base-cache-fix later to maint). - - * With an anticipatory tweak for remotes defined in ~/.gitconfig - (e.g. "remote.origin.prune" set to true, even though there may or - may not actually be "origin" remote defined in a particular Git - repository), "git remote rename" and other commands misinterpreted - and behaved as if such a non-existing remote actually existed. - (merge e459b073fb js/remote-rename-with-half-configured-remote later to maint). - - * A few codepaths had to rely on a global variable when sorting - elements of an array because sort(3) API does not allow extra data - to be passed to the comparison function. Use qsort_s() when - natively available, and a fallback implementation of it when not, - to eliminate the need, which is a prerequisite for making the - codepath reentrant. - - * "git fsck --connectivity-check" was not working at all. - (merge a2b22854bd jk/fsck-connectivity-check-fix later to maint). - - * After starting "git rebase -i", which first opens the user's editor - to edit the series of patches to apply, but before saving the - contents of that file, "git status" failed to show the current - state (i.e. you are in an interactive rebase session, but you have - applied no steps yet) correctly. - (merge df9ded4984 js/status-pre-rebase-i later to maint). - - * Test tweak for FreeBSD where /usr/bin/unzip is unsuitable to run - our tests but /usr/local/bin/unzip is usable. - (merge d98b2c5fce js/unzip-in-usr-bin-workaround later to maint). - - * "git p4" did not work well with multiple git-p4.mapUser entries on - Windows. - (merge c3c2b05776 gv/mingw-p4-mapuser later to maint). - - * "git help" enumerates executable files in $PATH; the implementation - of "is this file executable?" on Windows has been optimized. - (merge c755015f79 hv/mingw-help-is-executable later to maint). - - * Test tweaks for those who have default ACL in their git source tree - that interfere with the umask test. - (merge d549d21307 mm/reset-facl-before-umask-test later to maint). - - * Names of the various hook scripts must be spelled exactly, but on - Windows, an .exe binary must be named with .exe suffix; notice - $GIT_DIR/hooks/<hookname>.exe as a valid <hookname> hook. - (merge 235be51fbe js/mingw-hooks-with-exe-suffix later to maint). - - * Asciidoctor, an alternative reimplementation of AsciiDoc, still - needs some changes to work with documents meant to be formatted - with AsciiDoc. "make USE_ASCIIDOCTOR=YesPlease" to use it out of - the box to document our pages is getting closer to reality. - - * Correct command line completion (in contrib/) on "git svn" - (merge 2cbad17642 ew/complete-svn-authorship-options later to maint). - - * Incorrect usage help message for "git worktree prune" has been fixed. - (merge 2488dcab22 ps/worktree-prune-help-fix later to maint). - - * Adjust a perf test to new world order where commands that do - require a repository are really strict about having a repository. - (merge c86000c1a7 rs/p5302-create-repositories-before-tests later to maint). - - * "git log --graph" did not work well with "--name-only", even though - other forms of "diff" output were handled correctly. - (merge f5022b5fed jk/log-graph-name-only later to maint). - - * The push-options given via the "--push-options" option were not - passed through to external remote helpers such as "smart HTTP" that - are invoked via the transport helper. - - * The documentation explained what "git stash" does to the working - tree (after stashing away the local changes) in terms of "reset - --hard", which was exposing an unnecessary implementation detail. - (merge 20a7e06172 tg/stash-doc-cleanup later to maint). - - * When "git p4" imports changelist that removes paths, it failed to - convert pathnames when the p4 used encoding different from the one - used on the Git side. This has been corrected. - (merge a8b05162e8 ls/p4-path-encoding later to maint). - - * A new coccinelle rule that catches a check of !pointer before the - pointer is free(3)d, which most likely is a bug. - (merge ec6cd14c7a rs/cocci-check-free-only-null later to maint). - - * "ls-files" run with pathspec has been micro-optimized to avoid - having to memmove(3) unnecessary bytes. - (merge 96f6d3f61a rs/ls-files-partial-optim later to maint). - - * A hotfix for a topic already in 'master'. - (merge a4d92d579f js/mingw-isatty later to maint). - - * Other minor doc, test and build updates and code cleanups. - (merge f2627d9b19 sb/submodule-config-cleanup later to maint). - (merge 384f1a167b sb/unpack-trees-cleanup later to maint). - (merge 874444b704 rh/diff-orderfile-doc later to maint). - (merge eafd5d9483 cw/doc-sign-off later to maint). - (merge 0aaad415bc rs/absolute-pathdup later to maint). - (merge 4432dd6b5b rs/receive-pack-cleanup later to maint). - (merge 540a398e9c sg/mailmap-self later to maint). - (merge 209df269a6 nd/rev-list-all-includes-HEAD-doc later to maint). - (merge 941b9c5270 sb/doc-unify-bottom later to maint). - (merge 2aaf37b62c jk/doc-remote-helpers-markup-fix later to maint). - (merge e91461b332 jk/doc-submodule-markup-fix later to maint). - (merge 8ab9740d9f dp/submodule-doc-markup-fix later to maint). - (merge 0838cbc22f jk/tempfile-ferror-fclose-confusion later to maint). - (merge 115a40add6 dr/doc-check-ref-format-normalize later to maint). - (merge 133f0a299d gp/document-dotfiles-in-templates-are-not-copied later to maint). - (merge 2b35a9f4c7 bc/blame-doc-fix later to maint). - (merge 7e82388024 ps/doc-gc-aggressive-depth-update later to maint). - (merge 9993a7c5f1 bc/worktree-doc-fix-detached later to maint). - (merge e519eccdf4 rt/align-add-i-help-text later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.12.1.txt b/third_party/git/Documentation/RelNotes/2.12.1.txt deleted file mode 100644 index a74f7db74767..000000000000 --- a/third_party/git/Documentation/RelNotes/2.12.1.txt +++ /dev/null @@ -1,41 +0,0 @@ -Git v2.12.1 Release Notes -========================= - -Fixes since v2.12 ------------------ - - * Reduce authentication round-trip over HTTP when the server supports - just a single authentication method. This also improves the - behaviour when Git is misconfigured to enable http.emptyAuth - against a server that does not authenticate without a username - (i.e. not using Kerberos etc., which makes http.emptyAuth - pointless). - - * Windows port wants to use OpenSSL's implementation of SHA-1 - routines, so let them. - - * Add 32-bit Linux variant to the set of platforms to be tested with - Travis CI. - - * When a redirected http transport gets an error during the - redirected request, we ignored the error we got from the server, - and ended up giving a not-so-useful error message. - - * The patch subcommand of "git add -i" was meant to have paths - selection prompt just like other subcommand, unlike "git add -p" - directly jumps to hunk selection. Recently, this was broken and - "add -i" lost the paths selection dialog, but it now has been - fixed. - - * Git v2.12 was shipped with an embarrassing breakage where various - operations that verify paths given from the user stopped dying when - seeing an issue, and instead later triggering segfault. - - * The code to parse "git log -L..." command line was buggy when there - are many ranges specified with -L; overrun of the allocated buffer - has been fixed. - - * The command-line parsing of "git log -L" copied internal data - structures using incorrect size on ILP32 systems. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.12.2.txt b/third_party/git/Documentation/RelNotes/2.12.2.txt deleted file mode 100644 index 441939709c77..000000000000 --- a/third_party/git/Documentation/RelNotes/2.12.2.txt +++ /dev/null @@ -1,83 +0,0 @@ -Git v2.12.2 Release Notes -========================= - -Fixes since v2.12.1 -------------------- - - * "git status --porcelain" is supposed to give a stable output, but a - few strings were left as translatable by mistake. - - * "Dumb http" transport used to misparse a nonsense http-alternates - response, which has been fixed. - - * "git diff --quiet" relies on the size field in diff_filespec to be - correctly populated, but diff_populate_filespec() helper function - made an incorrect short-cut when asked only to populate the size - field for paths that need to go through convert_to_git() (e.g. CRLF - conversion). - - * There is no need for Python only to give a few messages to the - standard error stream, but we somehow did. - - * A leak in a codepath to read from a packed object in (rare) cases - has been plugged. - - * "git upload-pack", which is a counter-part of "git fetch", did not - report a request for a ref that was not advertised as invalid. - This is generally not a problem (because "git fetch" will stop - before making such a request), but is the right thing to do. - - * A "gc.log" file left by a backgrounded "gc --auto" disables further - automatic gc; it has been taught to run at least once a day (by - default) by ignoring a stale "gc.log" file that is too old. - - * "git remote rm X", when a branch has remote X configured as the - value of its branch.*.remote, tried to remove branch.*.remote and - branch.*.merge and failed if either is unset. - - * A caller of tempfile API that uses stdio interface to write to - files may ignore errors while writing, which is detected when - tempfile is closed (with a call to ferror()). By that time, the - original errno that may have told us what went wrong is likely to - be long gone and was overwritten by an irrelevant value. - close_tempfile() now resets errno to EIO to make errno at least - predictable. - - * "git show-branch" expected there were only very short branch names - in the repository and used a fixed-length buffer to hold them - without checking for overflow. - - * The code that parses header fields in the commit object has been - updated for (micro)performance and code hygiene. - - * A test that creates a confusing branch whose name is HEAD has been - corrected not to do so. - - * "Cc:" on the trailer part does not have to conform to RFC strictly, - unlike in the e-mail header. "git send-email" has been updated to - ignore anything after '>' when picking addresses, to allow non-address - cruft like " # stable 4.4" after the address. - - * "git push" had a handful of codepaths that could lead to a deadlock - when unexpected error happened, which has been fixed. - - * Code to read submodule.<name>.ignore config did not state the - variable name correctly when giving an error message diagnosing - misconfiguration. - - * "git ls-remote" and "git archive --remote" are designed to work - without being in a directory under Git's control. However, recent - updates revealed that we randomly look into a directory called - .git/ without actually doing necessary set-up when working in a - repository. Stop doing so. - - * The code to parse the command line "git grep <patterns>... <rev> - [[--] <pathspec>...]" has been cleaned up, and a handful of bugs - have been fixed (e.g. we used to check "--" if it is a rev). - - * The code to parse "git -c VAR=VAL cmd" and set configuration - variable for the duration of cmd had two small bugs, which have - been fixed. - This supersedes jc/config-case-cmdline topic that has been discarded. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.12.3.txt b/third_party/git/Documentation/RelNotes/2.12.3.txt deleted file mode 100644 index ebca846d5d80..000000000000 --- a/third_party/git/Documentation/RelNotes/2.12.3.txt +++ /dev/null @@ -1,64 +0,0 @@ -Git v2.12.3 Release Notes -========================= - -Fixes since v2.12.2 -------------------- - - * The "parse_config_key()" API function has been cleaned up. - - * An helper function to make it easier to append the result from - real_path() to a strbuf has been added. - - * The t/perf performance test suite was not prepared to test not so - old versions of Git, but now it covers versions of Git that are not - so ancient. - - * Picking two versions of Git and running tests to make sure the - older one and the newer one interoperate happily has now become - possible. - - * Teach the "debug" helper used in the test framework that allows a - command to run under "gdb" to make the session interactive. - - * "git repack --depth=<n>" for a long time busted the specified depth - when reusing delta from existing packs. This has been corrected. - - * user.email that consists of only cruft chars should consistently - error out, but didn't. - - * A few tests were run conditionally under (rare) conditions where - they cannot be run (like running cvs tests under 'root' account). - - * "git branch @" created refs/heads/@ as a branch, and in general the - code that handled @{-1} and @{upstream} was a bit too loose in - disambiguating. - - * "git fetch" that requests a commit by object name, when the other - side does not allow such an request, failed without much - explanation. - - * "git filter-branch --prune-empty" drops a single-parent commit that - becomes a no-op, but did not drop a root commit whose tree is empty. - - * Recent versions of Git treats http alternates (used in dumb http - transport) just like HTTP redirects and requires the client to - enable following it, due to security concerns. But we forgot to - give a warning when we decide not to honor the alternates. - - * NO_PTHREADS build has been broken for some time; now fixed. - - * Fix for potential segv introduced in v2.11.0 and later (also - v2.10.2). - - * A few unterminated here documents in tests were fixed, which in - turn revealed incorrect expectations the tests make. These tests - have been updated. - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.12.4.txt b/third_party/git/Documentation/RelNotes/2.12.4.txt deleted file mode 100644 index 3f569382211d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.12.4.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v2.12.4 Release Notes -========================= - -This release forward-ports the fix for "ssh://..." URL from Git v2.7.6 diff --git a/third_party/git/Documentation/RelNotes/2.12.5.txt b/third_party/git/Documentation/RelNotes/2.12.5.txt deleted file mode 100644 index 8fa73cfce7fa..000000000000 --- a/third_party/git/Documentation/RelNotes/2.12.5.txt +++ /dev/null @@ -1,17 +0,0 @@ -Git v2.12.5 Release Notes -========================= - -Fixes since v2.12.4 -------------------- - - * "git cvsserver" no longer is invoked by "git daemon" by default, - as it is old and largely unmaintained. - - * Various Perl scripts did not use safe_pipe_capture() instead of - backticks, leaving them susceptible to end-user input. They have - been corrected. - -Credits go to joernchen <joernchen@phenoelit.de> for finding the -unsafe constructs in "git cvsserver", and to Jeff King at GitHub for -finding and fixing instances of the same issue in other scripts. - diff --git a/third_party/git/Documentation/RelNotes/2.13.0.txt b/third_party/git/Documentation/RelNotes/2.13.0.txt deleted file mode 100644 index 2a47b4cb0cd4..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.0.txt +++ /dev/null @@ -1,618 +0,0 @@ -Git 2.13 Release Notes -====================== - -Backward compatibility notes. - - * Use of an empty string as a pathspec element that is used for - 'everything matches' is still warned and Git asks users to use a - more explicit '.' for that instead. The hope is that existing - users will not mind this change, and eventually the warning can be - turned into a hard error, upgrading the deprecation into removal of - this (mis)feature. That is not scheduled to happen in the upcoming - release (yet). - - * The historical argument order "git merge <msg> HEAD <commit>..." - has been deprecated for quite some time, and is now removed. - - * The default location "~/.git-credential-cache/socket" for the - socket used to communicate with the credential-cache daemon has - been moved to "~/.cache/git/credential/socket". - - * Git now avoids blindly falling back to ".git" when the setup - sequence said we are _not_ in Git repository. A corner case that - happens to work right now may be broken by a call to die("BUG"). - We've tried hard to locate such cases and fixed them, but there - might still be cases that need to be addressed--bug reports are - greatly appreciated. - - -Updates since v2.12 -------------------- - -UI, Workflows & Features - - * "git describe" and "git name-rev" have been taught to take more - than one refname patterns to restrict the set of refs to base their - naming output on, and also learned to take negative patterns to - name refs not to be used for naming via their "--exclude" option. - - * Deletion of a branch "foo/bar" could remove .git/refs/heads/foo - once there no longer is any other branch whose name begins with - "foo/", but we didn't do so so far. Now we do. - - * When "git merge" detects a path that is renamed in one history - while the other history deleted (or modified) it, it now reports - both paths to help the user understand what is going on in the two - histories being merged. - - * The <url> part in "http.<url>.<variable>" configuration variable - can now be spelled with '*' that serves as wildcard. - E.g. "http.https://*.example.com.proxy" can be used to specify the - proxy used for https://a.example.com, https://b.example.com, etc., - i.e. any host in the example.com domain. - - * "git tag" did not leave useful message when adding a new entry to - reflog; this was left unnoticed for a long time because refs/tags/* - doesn't keep reflog by default. - - * The "negative" pathspec feature was somewhat more cumbersome to use - than necessary in that its short-hand used "!" which needed to be - escaped from shells, and it required "exclude from what?" specified. - - * The command line options for ssh invocation needs to be tweaked for - some implementations of SSH (e.g. PuTTY plink wants "-P <port>" - while OpenSSH wants "-p <port>" to specify port to connect to), and - the variant was guessed when GIT_SSH environment variable is used - to specify it. The logic to guess now applies to the command - specified by the newer GIT_SSH_COMMAND and also core.sshcommand - configuration variable, and comes with an escape hatch for users to - deal with misdetected cases. - - * The "--git-path", "--git-common-dir", and "--shared-index-path" - options of "git rev-parse" did not produce usable output. They are - now updated to show the path to the correct file, relative to where - the caller is. - - * "git diff -W" has been taught to handle the case where a new - function is added at the end of the file better. - - * "git update-ref -d" and other operations to delete references did - not leave any entry in HEAD's reflog when the reference being - deleted was the current branch. This is not a problem in practice - because you do not want to delete the branch you are currently on, - but caused renaming of the current branch to something else not to - be logged in a useful way. - - * "Cc:" on the trailer part does not have to conform to RFC strictly, - unlike in the e-mail header. "git send-email" has been updated to - ignore anything after '>' when picking addresses, to allow non-address - cruft like " # stable 4.4" after the address. - - * When "git submodule init" decides that the submodule in the working - tree is its upstream, it now gives a warning as it is not a very - common setup. - - * "git stash push" takes a pathspec so that the local changes can be - stashed away only partially. - - * Documentation for "git ls-files" did not refer to core.quotePath. - - * The experimental "split index" feature has gained a few - configuration variables to make it easier to use. - - * From a working tree of a repository, a new option of "rev-parse" - lets you ask if the repository is used as a submodule of another - project, and where the root level of the working tree of that - project (i.e. your superproject) is. - - * The pathspec mechanism learned to further limit the paths that - match the pattern to those that have specified attributes attached - via the gitattributes mechanism. - - * Our source code has used the SHA1_HEADER cpp macro after "#include" - in the C code to switch among the SHA-1 implementations. Instead, - list the exact header file names and switch among implementations - using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif"; - this helps some IDE tools. - - * The start-up sequence of "git" needs to figure out some configured - settings before it finds and set itself up in the location of the - repository and was quite messy due to its "chicken-and-egg" nature. - The code has been restructured. - - * The command line prompt (in contrib/) learned a new 'tag' style - that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a - detached HEAD with "git describe --tags". - - * The configuration file learned a new "includeIf.<condition>.path" - that includes the contents of the given path only when the - condition holds. This allows you to say "include this work-related - bit only in the repositories under my ~/work/ directory". - - * Recent update to "rebase -i" started showing a message that is not - a warning with "warning:" prefix by mistake. This has been fixed. - - * Recently we started passing the "--push-options" through the - external remote helper interface; now the "smart HTTP" remote - helper understands what to do with the passed information. - - * "git describe --dirty" dies when it cannot be determined if the - state in the working tree matches that of HEAD (e.g. broken - repository or broken submodule). The command learned a new option - "git describe --broken" to give "$name-broken" (where $name is the - description of HEAD) in such a case. - - * "git checkout" is taught the "--recurse-submodules" option. - - * Recent enhancement to "git stash push" command to support pathspec - to allow only a subset of working tree changes to be stashed away - was found to be too chatty and exposed the internal implementation - detail (e.g. when it uses reset to match the index to HEAD before - doing other things, output from reset seeped out). These, and - other chattyness has been fixed. - - * "git merge <message> HEAD <commit>" syntax that has been deprecated - since October 2007 has been removed. - - * The refs completion for large number of refs has been sped up, - partly by giving up disambiguating ambiguous refs and partly by - eliminating most of the shell processing between 'git for-each-ref' - and 'ls-remote' and Bash's completion facility. - - * On many keyboards, typing "@{" involves holding down SHIFT key and - one can easily end up with "@{Up..." when typing "@{upstream}". As - the upstream/push keywords do not appear anywhere else in the syntax, - we can safely accept them case insensitively without introducing - ambiguity or confusion to solve this. - - * "git tag/branch/for-each-ref" family of commands long allowed to - filter the refs by "--contains X" (show only the refs that are - descendants of X), "--merged X" (show only the refs that are - ancestors of X), "--no-merged X" (show only the refs that are not - ancestors of X). One curious omission, "--no-contains X" (show - only the refs that are not descendants of X) has been added to - them. - - * The default behaviour of "git log" in an interactive session has - been changed to enable "--decorate". - - * The output from "git status --short" has been extended to show - various kinds of dirtiness in submodules differently; instead of to - "M" for modified, 'm' and '?' can be shown to signal changes only - to the working tree of the submodule but not the commit that is - checked out. - - * Allow the http.postbuffer configuration variable to be set to a - size that can be expressed in size_t, which can be larger than - ulong on some platforms. - - * "git rebase" learns "--signoff" option. - - * The completion script (in contrib/) learned to complete "git push - --delete b<TAB>" to complete branch name to be deleted. - - * "git worktree add --lock" allows to lock a worktree immediately - after it's created. This helps prevent a race between "git worktree - add; git worktree lock" and "git worktree prune". - - * Completion for "git checkout <branch>" that auto-creates the branch - out of a remote tracking branch can now be disabled, as this - completion often gets in the way when completing to checkout an - existing local branch that happens to share the same prefix with - bunch of remote tracking branches. - - -Performance, Internal Implementation, Development Support etc. - - * The code to list branches in "git branch" has been consolidated - with the more generic ref-filter API. - - * Resource usage while enumerating refs from alternate object store - has been optimized to help receiving end of "push" that hosts a - repository with many "forks". - - * The gitattributes machinery is being taught to work better in a - multi-threaded environment. - - * "git rebase -i" starts using the recently updated "sequencer" code. - - * Code and design clean-up for the refs API. - - * The preload-index code has been taught not to bother with the index - entries that are paths that are not checked out by "sparse checkout". - - * Some warning() messages from "git clean" were updated to show the - errno from failed system calls. - - * The "parse_config_key()" API function has been cleaned up. - - * A test that creates a confusing branch whose name is HEAD has been - corrected not to do so. - - * The code that parses header fields in the commit object has been - updated for (micro)performance and code hygiene. - - * An helper function to make it easier to append the result from - real_path() to a strbuf has been added. - - * Reduce authentication round-trip over HTTP when the server supports - just a single authentication method. This also improves the - behaviour when Git is misconfigured to enable http.emptyAuth - against a server that does not authenticate without a username - (i.e. not using Kerberos etc., which makes http.emptyAuth - pointless). - - * Windows port wants to use OpenSSL's implementation of SHA-1 - routines, so let them. - - * The t/perf performance test suite was not prepared to test not so - old versions of Git, but now it covers versions of Git that are not - so ancient. - - * Add 32-bit Linux variant to the set of platforms to be tested with - Travis CI. - - * "git branch --list" takes the "--abbrev" and "--no-abbrev" options - to control the output of the object name in its "-v"(erbose) - output, but a recent update started ignoring them; fix it before - the breakage reaches to any released version. - - * Picking two versions of Git and running tests to make sure the - older one and the newer one interoperate happily has now become - possible. - - * "git tag --contains" used to (ab)use the object bits to keep track - of the state of object reachability without clearing them after - use; this has been cleaned up and made to use the newer commit-slab - facility. - - * The "debug" helper used in the test framework learned to run - a command under "gdb" interactively. - - * The "detect attempt to create collisions" variant of SHA-1 - implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft) - has been integrated and made the default. - - * The test framework learned to detect unterminated here documents. - - * The name-hash used for detecting paths that are different only in - cases (which matter on case insensitive filesystems) has been - optimized to take advantage of multi-threading when it makes sense. - - * An earlier version of sha1dc/sha1.c that was merged to 'master' - compiled incorrectly on Windows, which has been fixed. - - * "what URL do we want to update this submodule?" and "are we - interested in this submodule?" are split into two distinct - concepts, and then the way used to express the latter got extended, - paving a way to make it easier to manage a project with many - submodules and make it possible to later extend use of multiple - worktrees for a project with submodules. - - * Some debugging output from "git describe" were marked for l10n, - but some weren't. Mark missing ones for l10n. - - * Define a new task in .travis.yml that triggers a test session on - Windows run elsewhere. - - * Conversion from uchar[20] to struct object_id continues. - - * The "submodule" specific field in the ref_store structure is - replaced with a more generic "gitdir" that can later be used also - when dealing with ref_store that represents the set of refs visible - from the other worktrees. - - * The string-list API used a custom reallocation strategy that was - very inefficient, instead of using the usual ALLOC_GROW() macro, - which has been fixed. - (merge 950a234cbd jh/string-list-micro-optim later to maint). - - * In a 2- and 3-way merge of trees, more than one source trees often - end up sharing an identical subtree; optimize by not reading the - same tree multiple times in such a case. - (merge d12a8cf0af jh/unpack-trees-micro-optim later to maint). - - * The index file has a trailing SHA-1 checksum to detect file - corruption, and historically we checked it every time the index - file is used. Omit the validation during normal use, and instead - verify only in "git fsck". - - * Having a git command on the upstream side of a pipe in a test - script will hide the exit status from the command, which may cause - us to fail to notice a breakage; rewrite tests in a script to avoid - this issue. - - * Travis CI learns to run coccicheck. - - * "git checkout" that handles a lot of paths has been optimized by - reducing the number of unnecessary checks of paths in the - has_dir_name() function. - - * The internals of the refs API around the cached refs has been - streamlined. - - * Output from perf tests have been updated to align their titles. - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.12 ------------------ - -Unless otherwise noted, all the fixes since v2.12 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git repack --depth=<n>" for a long time busted the specified depth - when reusing delta from existing packs. This has been corrected. - - * The code to parse the command line "git grep <patterns>... <rev> - [[--] <pathspec>...]" has been cleaned up, and a handful of bugs - have been fixed (e.g. we used to check "--" if it is a rev). - - * "git ls-remote" and "git archive --remote" are designed to work - without being in a directory under Git's control. However, recent - updates revealed that we randomly look into a directory called - .git/ without actually doing necessary set-up when working in a - repository. Stop doing so. - - * "git show-branch" expected there were only very short branch names - in the repository and used a fixed-length buffer to hold them - without checking for overflow. - - * A caller of tempfile API that uses stdio interface to write to - files may ignore errors while writing, which is detected when - tempfile is closed (with a call to ferror()). By that time, the - original errno that may have told us what went wrong is likely to - be long gone and was overwritten by an irrelevant value. - close_tempfile() now resets errno to EIO to make errno at least - predictable. - - * "git remote rm X", when a branch has remote X configured as the - value of its branch.*.remote, tried to remove branch.*.remote and - branch.*.merge and failed if either is unset. - - * A "gc.log" file left by a backgrounded "gc --auto" disables further - automatic gc; it has been taught to run at least once a day (by - default) by ignoring a stale "gc.log" file that is too old. - - * The code to parse "git -c VAR=VAL cmd" and set configuration - variable for the duration of cmd had two small bugs, which have - been fixed. - - * user.email that consists of only cruft chars should consistently - error out, but didn't. - - * "git upload-pack", which is a counter-part of "git fetch", did not - report a request for a ref that was not advertised as invalid. - This is generally not a problem (because "git fetch" will stop - before making such a request), but is the right thing to do. - - * A leak in a codepath to read from a packed object in (rare) cases - has been plugged. - - * When a redirected http transport gets an error during the - redirected request, we ignored the error we got from the server, - and ended up giving a not-so-useful error message. - - * The patch subcommand of "git add -i" was meant to have paths - selection prompt just like other subcommand, unlike "git add -p" - directly jumps to hunk selection. Recently, this was broken and - "add -i" lost the paths selection dialog, but it now has been - fixed. - - * Git v2.12 was shipped with an embarrassing breakage where various - operations that verify paths given from the user stopped dying when - seeing an issue, and instead later triggering segfault. - - * There is no need for Python only to give a few messages to the - standard error stream, but we somehow did. - - * The code to parse "git log -L..." command line was buggy when there - are many ranges specified with -L; overrun of the allocated buffer - has been fixed. - - * The command-line parsing of "git log -L" copied internal data - structures using incorrect size on ILP32 systems. - - * "git diff --quiet" relies on the size field in diff_filespec to be - correctly populated, but diff_populate_filespec() helper function - made an incorrect short-cut when asked only to populate the size - field for paths that need to go through convert_to_git() (e.g. CRLF - conversion). - - * A few tests were run conditionally under (rare) conditions where - they cannot be run (like running cvs tests under 'root' account). - - * "git branch @" created refs/heads/@ as a branch, and in general the - code that handled @{-1} and @{upstream} was a bit too loose in - disambiguating. - - * "git fetch" that requests a commit by object name, when the other - side does not allow such an request, failed without much - explanation. - - * "git filter-branch --prune-empty" drops a single-parent commit that - becomes a no-op, but did not drop a root commit whose tree is empty. - - * Recent versions of Git treats http alternates (used in dumb http - transport) just like HTTP redirects and requires the client to - enable following it, due to security concerns. But we forgot to - give a warning when we decide not to honor the alternates. - - * "git push" had a handful of codepaths that could lead to a deadlock - when unexpected error happened, which has been fixed. - - * "Dumb http" transport used to misparse a nonsense http-alternates - response, which has been fixed. - - * "git add -p <pathspec>" unnecessarily expanded the pathspec to a - list of individual files that matches the pathspec by running "git - ls-files <pathspec>", before feeding it to "git diff-index" to see - which paths have changes, because historically the pathspec - language supported by "diff-index" was weaker. These days they are - equivalent and there is no reason to internally expand it. This - helps both performance and avoids command line argument limit on - some platforms. - (merge 7288e12cce jk/add-i-use-pathspecs later to maint). - - * "git status --porcelain" is supposed to give a stable output, but a - few strings were left as translatable by mistake. - - * "git revert -m 0 $merge_commit" complained that reverting a merge - needs to say relative to which parent the reversion needs to - happen, as if "-m 0" weren't given. The correct diagnosis is that - "-m 0" does not refer to the first parent ("-m 1" does). This has - been fixed. - - * Code to read submodule.<name>.ignore config did not state the - variable name correctly when giving an error message diagnosing - misconfiguration. - - * Fix for NO_PTHREADS build. - - * Fix for potential segv introduced in v2.11.0 and later (also - v2.10.2) to "git log --pickaxe-regex -S". - - * A few unterminated here documents in tests were fixed, which in - turn revealed incorrect expectations the tests make. These tests - have been updated. - - * Fix for NO_PTHREADS option. - (merge 2225e1ea20 bw/grep-recurse-submodules later to maint). - - * Git now avoids blindly falling back to ".git" when the setup - sequence said we are _not_ in Git repository. A corner case that - happens to work right now may be broken by a call to die("BUG"). - (merge b1ef400eec jk/no-looking-at-dotgit-outside-repo-final later to maint). - - * A few commands that recently learned the "--recurse-submodule" - option misbehaved when started from a subdirectory of the - superproject. - (merge b2dfeb7c00 bw/recurse-submodules-relative-fix later to maint). - - * FreeBSD implementation of getcwd(3) behaved differently when an - intermediate directory is unreadable/unsearchable depending on the - length of the buffer provided, which our strbuf_getcwd() was not - aware of. strbuf_getcwd() has been taught to cope with it better. - (merge a54e938e5b rs/freebsd-getcwd-workaround later to maint). - - * A recent update to "rebase -i" stopped running hooks for the "git - commit" command during "reword" action, which has been fixed. - - * Removing an entry from a notes tree and then looking another note - entry from the resulting tree using the internal notes API - functions did not work as expected. No in-tree users of the API - has such access pattern, but it still is worth fixing. - - * "git receive-pack" could have been forced to die by attempting - allocate an unreasonably large amount of memory with a crafted push - certificate; this has been fixed. - (merge f2214dede9 bc/push-cert-receive-fix later to maint). - - * Update error handling for codepath that deals with corrupt loose - objects. - (merge 51054177b3 jk/loose-object-info-report-error later to maint). - - * "git diff --submodule=diff" learned to work better in a project - with a submodule that in turn has its own submodules. - (merge 17b254cda6 sb/show-diff-for-submodule-in-diff-fix later to maint). - - * Update the build dependency so that an update to /usr/bin/perl - etc. result in recomputation of perl.mak file. - (merge c59c4939c2 ab/regen-perl-mak-with-different-perl later to maint). - - * "git push --recurse-submodules --push-option=<string>" learned to - propagate the push option recursively down to pushes in submodules. - - * If a patch e-mail had its first paragraph after an in-body header - indented (even after a blank line after the in-body header line), - the indented line was mistook as a continuation of the in-body - header. This has been fixed. - (merge fd1062e52e lt/mailinfo-in-body-header-continuation later to maint). - - * Clean up fallouts from recent tightening of the set-up sequence, - where Git barfs when repository information is accessed without - first ensuring that it was started in a repository. - (merge bccb22cbb1 jk/no-looking-at-dotgit-outside-repo later to maint). - - * "git p4" used "name-rev HEAD" when it wants to learn what branch is - checked out; it should use "symbolic-ref HEAD". - (merge eff451101d ld/p4-current-branch-fix later to maint). - - * "http.proxy" set to an empty string is used to disable the usage of - proxy. We broke this early last year. - (merge ae51d91105 sr/http-proxy-configuration-fix later to maint). - - * $GIT_DIR may in some cases be normalized with all symlinks resolved - while "gitdir" path expansion in the pattern does not receive the - same treatment, leading to incorrect mismatch. This has been fixed. - - * "git submodule" script does not work well with strange pathnames. - Protect it from a path with slashes in them, at least. - - * "git fetch-pack" was not prepared to accept ERR packet that the - upload-pack can send with a human-readable error message. It - showed the packet contents with ERR prefix, so there was no data - loss, but it was redundant to say "ERR" in an error message. - (merge 8e2c7bef03 jt/fetch-pack-error-reporting later to maint). - - * "ls-files --recurse-submodules" did not quite work well in a - project with nested submodules. - - * gethostname(2) may not NUL terminate the buffer if hostname does - not fit; unfortunately there is no easy way to see if our buffer - was too small, but at least this will make sure we will not end up - using garbage past the end of the buffer. - (merge 5781a9a270 dt/xgethostname-nul-termination later to maint). - - * A recent update broke "git add -p ../foo" from a subdirectory. - - * While handy, "git_path()" is a dangerous function to use as a - callsite that uses it safely one day can be broken by changes - to other code that calls it. Reduction of its use continues. - (merge 16d2676c9e jk/war-on-git-path later to maint). - - * The split-index code configuration code used an unsafe git_path() - function without copying its result out. - - * Many stale HTTP(s) links have been updated in our documentation. - (merge 613416f0be jk/update-links-in-docs later to maint). - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). - - * Other minor doc, test and build updates and code cleanups. - (merge df2a6e38b7 jk/pager-in-use later to maint). - (merge 75ec4a6cb0 ab/branch-list-doc later to maint). - (merge 3e5b36c637 sg/skip-prefix-in-prettify-refname later to maint). - (merge 2c5e2865cc jk/fast-import-cleanup later to maint). - (merge 4473060bc2 ab/test-readme-updates later to maint). - (merge 48a96972fd ab/doc-submitting later to maint). - (merge f5c2bc2b96 jk/make-coccicheck-detect-errors later to maint). - (merge c105f563d1 cc/untracked later to maint). - (merge 8668976b53 jc/unused-symbols later to maint). - (merge fba275dc93 jc/bs-t-is-not-a-tab-for-sed later to maint). - (merge be6ed145de mm/ls-files-s-doc later to maint). - (merge 60b091c679 qp/bisect-docfix later to maint). - (merge 47242cd103 ah/diff-files-ours-theirs-doc later to maint). - (merge 35ad44cbd8 sb/submodule-rm-absorb later to maint). - (merge 0301f1fd92 va/i18n-perl-scripts later to maint). - (merge 733e064d98 vn/revision-shorthand-for-side-branch-log later to maint). - (merge 85999743e7 tb/doc-eol-normalization later to maint). - (merge 0747fb49fd jk/loose-object-fsck later to maint). - (merge d8f4481c4f jk/quarantine-received-objects later to maint). - (merge 7ba1ceef95 xy/format-patch-base later to maint). - (merge fa1912c89a rs/misc-cppcheck-fixes later to maint). - (merge f17d642d3b ab/push-cas-doc-n-test later to maint). - (merge 61e282425a ss/gitmodules-ignore-doc later to maint). - (merge 8d3047cd5b ss/submodule-shallow-doc later to maint). - (merge 1f9e18b772 jk/prio-queue-avoid-swap-with-self later to maint). - (merge 627fde1025 jk/submodule-init-segv-fix later to maint). - (merge d395745d81 rg/doc-pull-typofix later to maint). - (merge 01e60a9a22 rg/doc-submittingpatches-wordfix later to maint). - (merge 501d3cd7b8 sr/hooks-cwd-doc later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.13.1.txt b/third_party/git/Documentation/RelNotes/2.13.1.txt deleted file mode 100644 index ed7cd976d923..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.1.txt +++ /dev/null @@ -1,114 +0,0 @@ -Git v2.13.1 Release Notes -========================= - -Fixes since v2.13 ------------------ - - * The Web interface to gmane news archive is long gone, even though - the articles are still accessible via NTTP. Replace the links with - ones to public-inbox.org. Because their message identification is - based on the actual message-id, it is likely that it will be easier - to migrate away from it if/when necessary. - - * Update tests to pass under GETTEXT_POISON (a mechanism to ensure - that output strings that should not be translated are not - translated by mistake), and tell TravisCI to run them. - - * Setting "log.decorate=false" in the configuration file did not take - effect in v2.13, which has been corrected. - - * An earlier update to test 7400 needed to be skipped on CYGWIN. - - * Git sometimes gives an advice in a rhetorical question that does - not require an answer, which can confuse new users and non native - speakers. Attempt to rephrase them. - - * "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use - --empty if you want to clear the index". With "-m", such a request - will still fail anyway, as you'd need to name at least one tree-ish - to be merged. - - * The codepath in "git am" that is used when running "git rebase" - leaked memory held for the log message of the commits being rebased. - - * "pack-objects" can stream a slice of an existing packfile out when - the pack bitmap can tell that the reachable objects are all needed - in the output, without inspecting individual objects. This - strategy however would not work well when "--local" and other - options are in use, and need to be disabled. - - * Clarify documentation for include.path and includeIf.<condition>.path - configuration variables. - - * Tag objects, which are not reachable from any ref, that point at - missing objects were mishandled by "git gc" and friends (they - should silently be ignored instead) - - * A few http:// links that are redirected to https:// in the - documentation have been updated to https:// links. - - * Make sure our tests would pass when the sources are checked out - with "platform native" line ending convention by default on - Windows. Some "text" files out tests use and the test scripts - themselves that are meant to be run with /bin/sh, ought to be - checked out with eol=LF even on Windows. - - * Fix memory leaks pointed out by Coverity (and people). - - * The receive-pack program now makes sure that the push certificate - records the same set of push options used for pushing. - - * "git cherry-pick" and other uses of the sequencer machinery - mishandled a trailer block whose last line is an incomplete line. - This has been fixed so that an additional sign-off etc. are added - after completing the existing incomplete line. - - * The shell completion script (in contrib/) learned "git stash" has - a new "push" subcommand. - - * Travis CI gained a task to format the documentation with both - AsciiDoc and AsciiDoctor. - - * Update the C style recommendation for notes for translators, as - recent versions of gettext tools can work with our style of - multi-line comments. - - * "git clone --config var=val" is a way to populate the - per-repository configuration file of the new repository, but it did - not work well when val is an empty string. This has been fixed. - - * A few codepaths in "checkout" and "am" working on an unborn branch - tried to access an uninitialized piece of memory. - - * "git for-each-ref --format=..." with %(HEAD) in the format used to - resolve the HEAD symref as many times as it had processed refs, - which was wasteful, and "git branch" shared the same problem. - - * "git interpret-trailers", when used as GIT_EDITOR for "git commit - -v", looked for and appended to a trailer block at the very end, - i.e. at the end of the "diff" output. The command has been - corrected to pay attention to the cut-mark line "commit -v" adds to - the buffer---the real trailer block should appear just before it. - - * A test allowed both "git push" and "git receive-pack" on the other - end write their traces into the same file. This is OK on platforms - that allows atomically appending to a file opened with O_APPEND, - but on other platforms led to a mangled output, causing - intermittent test failures. This has been fixed by disabling - traces from "receive-pack" in the test. - - * "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no - slashes in it, cannot be a nickname for a remote on Windows, as - that is likely to be a pathname on a local filesystem. - - * The "collision detecting" SHA-1 implementation shipped with 2.13 - was quite broken on some big-endian platforms and/or platforms that - do not like unaligned fetches. Update to the upstream code which - has already fixed these issues. - - * "git am -h" triggered a BUG(). - - * The interaction of "url.*.insteadOf" and custom URL scheme's - whitelisting is now documented better. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.13.2.txt b/third_party/git/Documentation/RelNotes/2.13.2.txt deleted file mode 100644 index 8c2b20071ed2..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.2.txt +++ /dev/null @@ -1,54 +0,0 @@ -Git v2.13.2 Release Notes -========================= - -Fixes since v2.13.1 -------------------- - - * The "collision detecting" SHA-1 implementation shipped with 2.13.1 - was still broken on some platforms. Update to the upstream code - again to take their fix. - - * "git checkout --recurse-submodules" did not quite work with a - submodule that itself has submodules. - - * Introduce the BUG() macro to improve die("BUG: ..."). - - * The "run-command" API implementation has been made more robust - against dead-locking in a threaded environment. - - * A recent update to t5545-push-options.sh started skipping all the - tests in the script when a web server testing is disabled or - unavailable, not just the ones that require a web server. Non HTTP - tests have been salvaged to always run in this script. - - * "git clean -d" used to clean directories that has ignored files, - even though the command should not lose ignored ones without "-x". - "git status --ignored" did not list ignored and untracked files - without "-uall". These have been corrected. - - * The timestamp of the index file is now taken after the file is - closed, to help Windows, on which a stale timestamp is reported by - fstat() on a file that is opened for writing and data was written - but not yet closed. - - * "git pull --rebase --autostash" didn't auto-stash when the local history - fast-forwards to the upstream. - - * "git describe --contains" penalized light-weight tags so much that - they were almost never considered. Instead, give them about the - same chance to be considered as an annotated tag that is the same - age as the underlying commit would. - - * The result from "git diff" that compares two blobs, e.g. "git diff - $commit1:$path $commit2:$path", used to be shown with the full - object name as given on the command line, but it is more natural to - use the $path in the output and use it to look up .gitattributes. - - * A flaky test has been corrected. - - * Help contributors that visit us at GitHub. - - * "git stash push <pathspec>" did not work from a subdirectory at all. - Bugfix for a topic in v2.13 - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.13.3.txt b/third_party/git/Documentation/RelNotes/2.13.3.txt deleted file mode 100644 index 384e4de26526..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.3.txt +++ /dev/null @@ -1,62 +0,0 @@ -Git v2.13.3 Release Notes -========================= - -Fixes since v2.13.2 -------------------- - - * The "collision detecting" SHA-1 implementation shipped with 2.13.2 - was still broken on some platforms. Update to the upstream code - again to take their fix. - - * The 'diff-highlight' program (in contrib/) has been restructured - for easier reuse by an external project 'diff-so-fancy'. - - * "git mergetool" learned to work around a wrapper MacOS X adds - around underlying meld. - - * An example in documentation that does not work in multi worktree - configuration has been corrected. - - * The pretty-format specifiers like '%h', '%t', etc. had an - optimization that no longer works correctly. In preparation/hope - of getting it correctly implemented, first discard the optimization - that is broken. - - * The code to pick up and execute command alias definition from the - configuration used to switch to the top of the working tree and - then come back when the expanded alias was executed, which was - unnecessarily complex. Attempt to simplify the logic by using the - early-config mechanism that does not chdir around. - - * "git add -p" were updated in 2.12 timeframe to cope with custom - core.commentchar but the implementation was buggy and a - metacharacter like $ and * did not work. - - * Fix a recent regression to "git rebase -i" and add tests that would - have caught it and others. - - * An unaligned 32-bit access in pack-bitmap code has been corrected. - - * Tighten error checks for invalid "git apply" input. - - * The split index code did not honor core.sharedrepository setting - correctly. - - * The Makefile rule in contrib/subtree for building documentation - learned to honour USE_ASCIIDOCTOR just like the main documentation - set does. - - * A few tests that tried to verify the contents of push certificates - did not use 'git rev-parse' to formulate the line to look for in - the certificate correctly. - - * After "git branch --move" of the currently checked out branch, the - code to walk the reflog of HEAD via "log -g" and friends - incorrectly stopped at the reflog entry that records the renaming - of the branch. - - * The rewrite of "git branch --list" using for-each-ref's internals - that happened in v2.13 regressed its handling of color.branch.local; - this has been fixed. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.13.4.txt b/third_party/git/Documentation/RelNotes/2.13.4.txt deleted file mode 100644 index 9a9f8f9599df..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.4.txt +++ /dev/null @@ -1,28 +0,0 @@ -Git v2.13.4 Release Notes -========================= - -Fixes since v2.13.3 -------------------- - - * Update the character width tables. - - * A recent update broke an alias that contained an uppercase letter, - which has been fixed. - - * On Cygwin, similar to Windows, "git push //server/share/repository" - ought to mean a repository on a network share that can be accessed - locally, but this did not work correctly due to stripping the double - slashes at the beginning. - - * The progress meter did not give a useful output when we haven't had - 0.5 seconds to measure the throughput during the interval. Instead - show the overall throughput rate at the end, which is a much more - useful number. - - * We run an early part of "git gc" that deals with refs before - daemonising (and not under lock) even when running a background - auto-gc, which caused multiple gc processes attempting to run the - early part at the same time. This is now prevented by running the - early part also under the GC lock. - -Also contains a handful of small code and documentation clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.13.5.txt b/third_party/git/Documentation/RelNotes/2.13.5.txt deleted file mode 100644 index 6949fcda78df..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.5.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v2.13.5 Release Notes -========================= - -This release forward-ports the fix for "ssh://..." URL from Git v2.7.6 diff --git a/third_party/git/Documentation/RelNotes/2.13.6.txt b/third_party/git/Documentation/RelNotes/2.13.6.txt deleted file mode 100644 index afcae9c808de..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.6.txt +++ /dev/null @@ -1,17 +0,0 @@ -Git v2.13.6 Release Notes -========================= - -Fixes since v2.13.5 -------------------- - - * "git cvsserver" no longer is invoked by "git daemon" by default, - as it is old and largely unmaintained. - - * Various Perl scripts did not use safe_pipe_capture() instead of - backticks, leaving them susceptible to end-user input. They have - been corrected. - -Credits go to joernchen <joernchen@phenoelit.de> for finding the -unsafe constructs in "git cvsserver", and to Jeff King at GitHub for -finding and fixing instances of the same issue in other scripts. - diff --git a/third_party/git/Documentation/RelNotes/2.13.7.txt b/third_party/git/Documentation/RelNotes/2.13.7.txt deleted file mode 100644 index 09fc01406c7c..000000000000 --- a/third_party/git/Documentation/RelNotes/2.13.7.txt +++ /dev/null @@ -1,20 +0,0 @@ -Git v2.13.7 Release Notes -========================= - -Fixes since v2.13.6 -------------------- - - * Submodule "names" come from the untrusted .gitmodules file, but we - blindly append them to $GIT_DIR/modules to create our on-disk repo - paths. This means you can do bad things by putting "../" into the - name. We now enforce some rules for submodule names which will cause - Git to ignore these malicious names (CVE-2018-11235). - - Credit for finding this vulnerability and the proof of concept from - which the test script was adapted goes to Etienne Stalmans. - - * It was possible to trick the code that sanity-checks paths on NTFS - into reading random piece of memory (CVE-2018-11233). - -Credit for fixing for these bugs goes to Jeff King, Johannes -Schindelin and others. diff --git a/third_party/git/Documentation/RelNotes/2.14.0.txt b/third_party/git/Documentation/RelNotes/2.14.0.txt deleted file mode 100644 index 2711a2529dad..000000000000 --- a/third_party/git/Documentation/RelNotes/2.14.0.txt +++ /dev/null @@ -1,517 +0,0 @@ -Git 2.14 Release Notes -====================== - -Backward compatibility notes and other notable changes. - - * Use of an empty string as a pathspec element that is used for - 'everything matches' is still warned and Git asks users to use a - more explicit '.' for that instead. The hope is that existing - users will not mind this change, and eventually the warning can be - turned into a hard error, upgrading the deprecation into removal of - this (mis)feature. That is not scheduled to happen in the upcoming - release (yet). - - * Git now avoids blindly falling back to ".git" when the setup - sequence said we are _not_ in Git repository. A corner case that - happens to work right now may be broken by a call to die("BUG"). - We've tried hard to locate such cases and fixed them, but there - might still be cases that need to be addressed--bug reports are - greatly appreciated. - - * The experiment to improve the hunk-boundary selection of textual - diff output has finished, and the "indent heuristics" has now - become the default. - - * Git can now be built with PCRE v2 instead of v1 of the PCRE - library. Replace USE_LIBPCRE=YesPlease with USE_LIBPCRE2=YesPlease - in existing build scripts to build against the new version. As the - upstream PCRE maintainer has abandoned v1 maintenance for all but - the most critical bug fixes, use of v2 is recommended. - - -Updates since v2.13 -------------------- - -UI, Workflows & Features - - * The colors in which "git status --short --branch" showed the names - of the current branch and its remote-tracking branch are now - configurable. - - * "git clone" learned the "--no-tags" option not to fetch all tags - initially, and also set up the tagopt not to follow any tags in - subsequent fetches. - - * "git archive --format=zip" learned to use zip64 extension when - necessary to go beyond the 4GB limit. - - * "git reset" learned "--recurse-submodules" option. - - * "git diff --submodule=diff" now recurses into nested submodules. - - * "git repack" learned to accept the --threads=<n> option and pass it - to pack-objects. - - * "git send-email" learned to run sendemail-validate hook to inspect - and reject a message before sending it out. - - * There is no good reason why "git fetch $there $sha1" should fail - when the $sha1 names an object at the tip of an advertised ref, - even when the other side hasn't enabled allowTipSHA1InWant. - - * The "[includeIf "gitdir:$dir"] path=..." mechanism introduced in - 2.13.0 would canonicalize the path of the gitdir being matched, - and did not match e.g. "gitdir:~/work/*" against a repo in - "~/work/main" if "~/work" was a symlink to "/mnt/storage/work". - Now we match both the resolved canonical path and what "pwd" would - show. The include will happen if either one matches. - - * The "indent" heuristics is now the default in "diff". The - diff.indentHeuristic configuration variable can be set to "false" - for those who do not want it. - - * Many commands learned to pay attention to submodule.recurse - configuration. - - * The convention for a command line is to follow "git cmdname - --options" with revisions followed by an optional "--" - disambiguator and then finally pathspecs. When "--" is not there, - we make sure early ones are all interpretable as revs (and do not - look like paths) and later ones are the other way around. A - pathspec with "magic" (e.g. ":/p/a/t/h" that matches p/a/t/h from - the top-level of the working tree, no matter what subdirectory you - are working from) are conservatively judged as "not a path", which - required disambiguation more often. The command line parser - learned to say "it's a pathspec" a bit more often when the syntax - looks like so. - - * Update "perl-compatible regular expression" support to enable JIT - and also allow linking with the newer PCRE v2 library. - - * "filter-branch" learned a pseudo filter "--setup" that can be used - to define common functions/variables that can be used by other - filters. - - * Using "git add d/i/r" when d/i/r is the top of the working tree of - a separate repository would create a gitlink in the index, which - would appear as a not-quite-initialized submodule to others. We - learned to give warnings when this happens. - - * "git status" learned to optionally give how many stash entries there - are in its output. - - * "git status" has long shown essentially the same message as "git - commit"; the message it gives while preparing for the root commit, - i.e. "Initial commit", was hard to understand for some new users. - Now it says "No commits yet" to stress more on the current status - (rather than the commit the user is preparing for, which is more in - line with the focus of "git commit"). - - * "git send-email" now has --batch-size and --relogin-delay options - which can be used to overcome limitations on SMTP servers that - restrict on how many of e-mails can be sent in a single session. - - * An old message shown in the commit log template was removed, as it - has outlived its usefulness. - - * "git pull --rebase --recurse-submodules" learns to rebase the - branch in the submodules to an updated base. - - * "git log" learned -P as a synonym for --perl-regexp, "git grep" - already had such a synonym. - - * "git log" didn't understand --regexp-ignore-case when combined with - --perl-regexp. This has been fixed. - -Performance, Internal Implementation, Development Support etc. - - * The default packed-git limit value has been raised on larger - platforms to save "git fetch" from a (recoverable) failure while - "gc" is running in parallel. - - * Code to update the cache-tree has been tightened so that we won't - accidentally write out any 0{40} entry in the tree object. - - * Attempt to allow us notice "fishy" situation where we fail to - remove the temporary directory used during the test. - - * Travis CI gained a task to format the documentation with both - AsciiDoc and AsciiDoctor. - - * Some platforms have ulong that is smaller than time_t, and our - historical use of ulong for timestamp would mean they cannot - represent some timestamp that the platform allows. Invent a - separate and dedicated timestamp_t (so that we can distinguish - timestamps and a vanilla ulongs, which along is already a good - move), and then declare uintmax_t is the type to be used as the - timestamp_t. - - * We can trigger Windows auto-build tester (credits: Dscho & - Microsoft) from our existing Travis CI tester now. - - * Conversion from uchar[20] to struct object_id continues. - - * Simplify parse_pathspec() codepath and stop it from looking at the - default in-core index. - - * Add perf-test for wildmatch. - - * Code from "conversion using external process" codepath has been - extracted to a separate sub-process.[ch] module. - - * When "git checkout", "git merge", etc. manipulates the in-core - index, various pieces of information in the index extensions are - discarded from the original state, as it is usually not the case - that they are kept up-to-date and in-sync with the operation on the - main index. The untracked cache extension is copied across these - operations now, which would speed up "git status" (as long as the - cache is properly invalidated). - - * The internal implementation of "git grep" has seen some clean-up. - - * Update the C style recommendation for notes for translators, as - recent versions of gettext tools can work with our style of - multi-line comments. - - * The implementation of "ref" API around the "packed refs" have been - cleaned up, in preparation for further changes. - - * The internal logic used in "git blame" has been libified to make it - easier to use by cgit. - - * Our code often opens a path to an optional file, to work on its - contents when we can successfully open it. We can ignore a failure - to open if such an optional file does not exist, but we do want to - report a failure in opening for other reasons (e.g. we got an I/O - error, or the file is there, but we lack the permission to open). - - The exact errors we need to ignore are ENOENT (obviously) and - ENOTDIR (less obvious). Instead of repeating comparison of errno - with these two constants, introduce a helper function to do so. - - * We often try to open a file for reading whose existence is - optional, and silently ignore errors from open/fopen; report such - errors if they are not due to missing files. - - * When an existing repository is used for t/perf testing, we first - create bit-for-bit copy of it, which may grab a transient state of - the repository and freeze it into the repository used for testing, - which then may cause Git operations to fail. Single out "the index - being locked" case and forcibly drop the lock from the copy. - - * Three instances of the same helper function have been consolidated - to one. - - * "fast-import" uses a default pack chain depth that is consistent - with other parts of the system. - - * A new test to show the interaction between the pattern [^a-z] - (which matches '/') and a slash in a path has been added. The - pattern should not match the slash with "pathmatch", but should - with "wildmatch". - - * The 'diff-highlight' program (in contrib/) has been restructured - for easier reuse by an external project 'diff-so-fancy'. - - * A common pattern to free a piece of memory and assign NULL to the - pointer that used to point at it has been replaced with a new - FREE_AND_NULL() macro. - - * Traditionally, the default die() routine had a code to prevent it - from getting called multiple times, which interacted badly when a - threaded program used it (one downside is that the real error may - be hidden and instead the only error message given to the user may - end up being "die recursion detected", which is not very useful). - - * Introduce a "repository" object to eventually make it easier to - work in multiple repositories (the primary focus is to work with - the superproject and its submodules) in a single process. - - * Optimize "what are the object names already taken in an alternate - object database?" query that is used to derive the length of prefix - an object name is uniquely abbreviated to. - - * The hashmap API has been updated so that data to customize the - behaviour of the comparison function can be specified at the time a - hashmap is initialized. - - * The "collision detecting" SHA-1 implementation shipped with 2.13 is - now integrated into git.git as a submodule (the first submodule to - ship with git.git). Clone git.git with --recurse-submodules to get - it. For now a non-submodule copy of the same code is also shipped - as part of the tree. - - * A recent update made it easier to use "-fsanitize=" option while - compiling but supported only one sanitize option. Allow more than - one to be combined, joined with a comma, like "make SANITIZE=foo,bar". - - * Use "p4 -G" to make "p4 changes" output more Python-friendly - to parse. - - * We started using "%" PRItime, imitating "%" PRIuMAX and friends, as - a way to format the internal timestamp value, but this does not - play well with gettext(1) i18n framework, and causes "make pot" - that is run by the l10n coordinator to create a broken po/git.pot - file. This is a possible workaround for that problem. - - * It turns out that Cygwin also needs the fopen() wrapper that - returns failure when a directory is opened for reading. - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.13 ------------------ - -Unless otherwise noted, all the fixes since v2.13 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git gc" did not interact well with "git worktree"-managed - per-worktree refs. - - * "git cherry-pick" and other uses of the sequencer machinery - mishandled a trailer block whose last line is an incomplete line. - This has been fixed so that an additional sign-off etc. are added - after completing the existing incomplete line. - - * The codepath in "git am" that is used when running "git rebase" - leaked memory held for the log message of the commits being rebased. - - * "git clone --config var=val" is a way to populate the - per-repository configuration file of the new repository, but it did - not work well when val is an empty string. This has been fixed. - - * Setting "log.decorate=false" in the configuration file did not take - effect in v2.13, which has been corrected. - - * A few codepaths in "checkout" and "am" working on an unborn branch - tried to access an uninitialized piece of memory. - - * The Web interface to gmane news archive is long gone, even though - the articles are still accessible via NTTP. Replace the links with - ones to public-inbox.org. Because their message identification is - based on the actual message-id, it is likely that it will be easier - to migrate away from it if/when necessary. - - * The receive-pack program now makes sure that the push certificate - records the same set of push options used for pushing. - - * Tests have been updated to pass under GETTEXT_POISON (a mechanism - to ensure that output strings that should not be translated are - not translated by mistake), and TravisCI is told to run them. - - * "git checkout --recurse-submodules" did not quite work with a - submodule that itself has submodules. - - * "pack-objects" can stream a slice of an existing packfile out when - the pack bitmap can tell that the reachable objects are all needed - in the output, without inspecting individual objects. This - strategy however would not work well when "--local" and other - options are in use, and need to be disabled. - - * Fix memory leaks pointed out by Coverity (and people). - - * "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use - --empty if you want to clear the index". With "-m", such a request - will still fail anyway, as you'd need to name at least one tree-ish - to be merged. - - * Make sure our tests would pass when the sources are checked out - with "platform native" line ending convention by default on - Windows. Some "text" files out tests use and the test scripts - themselves that are meant to be run with /bin/sh, ought to be - checked out with eol=LF even on Windows. - - * Introduce the BUG() macro to improve die("BUG: ..."). - - * Clarify documentation for include.path and includeIf.<condition>.path - configuration variables. - - * Git sometimes gives an advice in a rhetorical question that does - not require an answer, which can confuse new users and non native - speakers. Attempt to rephrase them. - - * A few http:// links that are redirected to https:// in the - documentation have been updated to https:// links. - - * "git for-each-ref --format=..." with %(HEAD) in the format used to - resolve the HEAD symref as many times as it had processed refs, - which was wasteful, and "git branch" shared the same problem. - - * Regression fix to topic recently merged to 'master'. - - * The shell completion script (in contrib/) learned "git stash" has - a new "push" subcommand. - - * "git interpret-trailers", when used as GIT_EDITOR for "git commit - -v", looked for and appended to a trailer block at the very end, - i.e. at the end of the "diff" output. The command has been - corrected to pay attention to the cut-mark line "commit -v" adds to - the buffer---the real trailer block should appear just before it. - - * A test allowed both "git push" and "git receive-pack" on the other - end write their traces into the same file. This is OK on platforms - that allows atomically appending to a file opened with O_APPEND, - but on other platforms led to a mangled output, causing - intermittent test failures. This has been fixed by disabling - traces from "receive-pack" in the test. - - * Tag objects, which are not reachable from any ref, that point at - missing objects were mishandled by "git gc" and friends (they - should silently be ignored instead) - - * "git describe --contains" penalized light-weight tags so much that - they were almost never considered. Instead, give them about the - same chance to be considered as an annotated tag that is the same - age as the underlying commit would. - - * The "run-command" API implementation has been made more robust - against dead-locking in a threaded environment. - - * A recent update to t5545-push-options.sh started skipping all the - tests in the script when a web server testing is disabled or - unavailable, not just the ones that require a web server. Non HTTP - tests have been salvaged to always run in this script. - - * "git send-email" now uses Net::SMTP::SSL, which is obsolete, only - when needed. Recent versions of Net::SMTP can do TLS natively. - - * "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no - slashes in it, cannot be a nickname for a remote on Windows, as - that is likely to be a pathname on a local filesystem. - - * "git clean -d" used to clean directories that has ignored files, - even though the command should not lose ignored ones without "-x". - "git status --ignored" did not list ignored and untracked files - without "-uall". These have been corrected. - - * The result from "git diff" that compares two blobs, e.g. "git diff - $commit1:$path $commit2:$path", used to be shown with the full - object name as given on the command line, but it is more natural to - use the $path in the output and use it to look up .gitattributes. - - * The "collision detecting" SHA-1 implementation shipped with 2.13 - was quite broken on some big-endian platforms and/or platforms that - do not like unaligned fetches. Update to the upstream code which - has already fixed these issues. - - * "git am -h" triggered a BUG(). - - * The interaction of "url.*.insteadOf" and custom URL scheme's - whitelisting is now documented better. - - * The timestamp of the index file is now taken after the file is - closed, to help Windows, on which a stale timestamp is reported by - fstat() on a file that is opened for writing and data was written - but not yet closed. - - * "git pull --rebase --autostash" didn't auto-stash when the local history - fast-forwards to the upstream. - - * A flaky test has been corrected. - - * "git $cmd -h" for builtin commands calls the implementation of the - command (i.e. cmd_$cmd() function) without doing any repository - set-up, and the commands that expect RUN_SETUP is done by the Git - potty needs to be prepared to show the help text without barfing. - (merge d691551192 jk/consistent-h later to maint). - - * Help contributors that visit us at GitHub. - - * "git stash push <pathspec>" did not work from a subdirectory at all. - Bugfix for a topic in v2.13 - - * As there is no portable way to pass timezone information to - strftime, some output format from "git log" and friends are - impossible to produce. Teach our own strbuf_addftime to replace %z - and %Z with caller-supplied values to help working around this. - (merge 6eced3ec5e rs/strbuf-addftime-zZ later to maint). - - * "git mergetool" learned to work around a wrapper MacOS X adds - around underlying meld. - - * An example in documentation that does not work in multi worktree - configuration has been corrected. - - * The pretty-format specifiers like '%h', '%t', etc. had an - optimization that no longer works correctly. In preparation/hope - of getting it correctly implemented, first discard the optimization - that is broken. - - * The code to pick up and execute command alias definition from the - configuration used to switch to the top of the working tree and - then come back when the expanded alias was executed, which was - unnecessarily complex. Attempt to simplify the logic by using the - early-config mechanism that does not chdir around. - - * Fix configuration codepath to pay proper attention to commondir - that is used in multi-worktree situation, and isolate config API - into its own header file. - (merge dc8441fdb4 bw/config-h later to maint). - - * "git add -p" were updated in 2.12 timeframe to cope with custom - core.commentchar but the implementation was buggy and a - metacharacter like $ and * did not work. - - * A recent regression in "git rebase -i" has been fixed and tests - that would have caught it and others have been added. - - * An unaligned 32-bit access in pack-bitmap code has been corrected. - - * Tighten error checks for invalid "git apply" input. - - * The split index code did not honor core.sharedRepository setting - correctly. - - * The Makefile rule in contrib/subtree for building documentation - learned to honour USE_ASCIIDOCTOR just like the main documentation - set does. - - * Code clean-up to fix possible buffer over-reading. - - * A few tests that tried to verify the contents of push certificates - did not use 'git rev-parse' to formulate the line to look for in - the certificate correctly. - - * Update the character width tables. - - * After "git branch --move" of the currently checked out branch, the - code to walk the reflog of HEAD via "log -g" and friends - incorrectly stopped at the reflog entry that records the renaming - of the branch. - - * The rewrite of "git branch --list" using for-each-ref's internals - that happened in v2.13 regressed its handling of color.branch.local; - this has been fixed. - - * The build procedure has been improved to allow building and testing - Git with address sanitizer more easily. - (merge 425ca6710b jk/build-with-asan later to maint). - - * On Cygwin, similar to Windows, "git push //server/share/repository" - ought to mean a repository on a network share that can be accessed - locally, but this did not work correctly due to stripping the double - slashes at the beginning. - - * The progress meter did not give a useful output when we haven't had - 0.5 seconds to measure the throughput during the interval. Instead - show the overall throughput rate at the end, which is a much more - useful number. - - * Code clean-up, that makes us in sync with Debian by one patch. - - * We run an early part of "git gc" that deals with refs before - daemonising (and not under lock) even when running a background - auto-gc, which caused multiple gc processes attempting to run the - early part at the same time. This is now prevented by running the - early part also under the GC lock. - - * A recent update broke an alias that contained an uppercase letter. - - * Other minor doc, test and build updates and code cleanups. - (merge 5053313562 rs/urlmatch-cleanup later to maint). - (merge 42c78a216e rs/use-div-round-up later to maint). - (merge 5e8d2729ae rs/wt-status-cleanup later to maint). - (merge bc9b7e207f as/diff-options-grammofix later to maint). - (merge ac05222b31 ah/patch-id-doc later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.14.1.txt b/third_party/git/Documentation/RelNotes/2.14.1.txt deleted file mode 100644 index 9403340f7f50..000000000000 --- a/third_party/git/Documentation/RelNotes/2.14.1.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v2.14.1 Release Notes -========================= - -This release forward-ports the fix for "ssh://..." URL from Git v2.7.6 diff --git a/third_party/git/Documentation/RelNotes/2.14.2.txt b/third_party/git/Documentation/RelNotes/2.14.2.txt deleted file mode 100644 index bec9186adefe..000000000000 --- a/third_party/git/Documentation/RelNotes/2.14.2.txt +++ /dev/null @@ -1,105 +0,0 @@ -Git v2.14.2 Release Notes -========================= - -Fixes since v2.14.1 -------------------- - - * Because recent Git for Windows do come with a real msgfmt, the - build procedure for git-gui has been updated to use it instead of a - hand-rolled substitute. - - * "%C(color name)" in the pretty print format always produced ANSI - color escape codes, which was an early design mistake. They now - honor the configuration (e.g. "color.ui = never") and also tty-ness - of the output medium. - - * The http.{sslkey,sslCert} configuration variables are to be - interpreted as a pathname that honors "~[username]/" prefix, but - weren't, which has been fixed. - - * Numerous bugs in walking of reflogs via "log -g" and friends have - been fixed. - - * "git commit" when seeing an totally empty message said "you did not - edit the message", which is clearly wrong. The message has been - corrected. - - * When a directory is not readable, "gitweb" fails to build the - project list. Work this around by skipping such a directory. - - * A recently added test for the "credential-cache" helper revealed - that EOF detection done around the time the connection to the cache - daemon is torn down were flaky. This was fixed by reacting to - ECONNRESET and behaving as if we got an EOF. - - * Some versions of GnuPG fail to kill gpg-agent it auto-spawned - and such a left-over agent can interfere with a test. Work it - around by attempting to kill one before starting a new test. - - * "git log --tag=no-such-tag" showed log starting from HEAD, which - has been fixed---it now shows nothing. - - * The "tag.pager" configuration variable was useless for those who - actually create tag objects, as it interfered with the use of an - editor. A new mechanism has been introduced for commands to enable - pager depending on what operation is being carried out to fix this, - and then "git tag -l" is made to run pager by default. - - * "git push --recurse-submodules $there HEAD:$target" was not - propagated down to the submodules, but now it is. - - * Commands like "git rebase" accepted the --rerere-autoupdate option - from the command line, but did not always use it. This has been - fixed. - - * "git clone --recurse-submodules --quiet" did not pass the quiet - option down to submodules. - - * "git am -s" has been taught that some input may end with a trailer - block that is not Signed-off-by: and it should refrain from adding - an extra blank line before adding a new sign-off in such a case. - - * "git svn" used with "--localtime" option did not compute the tz - offset for the timestamp in question and instead always used the - current time, which has been corrected. - - * Memory leaks in a few error codepaths have been plugged. - - * bash 4.4 or newer gave a warning on NUL byte in command - substitution done in "git stash"; this has been squelched. - - * "git grep -L" and "git grep --quiet -L" reported different exit - codes; this has been corrected. - - * When handshake with a subprocess filter notices that the process - asked for an unknown capability, Git did not report what program - the offending subprocess was running. This has been corrected. - - * "git apply" that is used as a better "patch -p1" failed to apply a - taken from a file with CRLF line endings to a file with CRLF line - endings. The root cause was because it misused convert_to_git() - that tried to do "safe-crlf" processing by looking at the index - entry at the same path, which is a nonsense---in that mode, "apply" - is not working on the data in (or derived from) the index at all. - This has been fixed. - - * Killing "git merge --edit" before the editor returns control left - the repository in a state with MERGE_MSG but without MERGE_HEAD, - which incorrectly tells the subsequent "git commit" that there was - a squash merge in progress. This has been fixed. - - * "git archive" did not work well with pathspecs and the - export-ignore attribute. - - * "git cvsserver" no longer is invoked by "git daemon" by default, - as it is old and largely unmaintained. - - * Various Perl scripts did not use safe_pipe_capture() instead of - backticks, leaving them susceptible to end-user input. They have - been corrected. - -Also contains various documentation updates and code clean-ups. - -Credits go to joernchen <joernchen@phenoelit.de> for finding the -unsafe constructs in "git cvsserver", and to Jeff King at GitHub for -finding and fixing instances of the same issue in other scripts. diff --git a/third_party/git/Documentation/RelNotes/2.14.3.txt b/third_party/git/Documentation/RelNotes/2.14.3.txt deleted file mode 100644 index 977c9e857c0e..000000000000 --- a/third_party/git/Documentation/RelNotes/2.14.3.txt +++ /dev/null @@ -1,99 +0,0 @@ -Git v2.14.3 Release Notes -========================= - -Fixes since v2.14.2 -------------------- - - * A helper function to read a single whole line into strbuf - mistakenly triggered OOM error at EOF under certain conditions, - which has been fixed. - - * In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft" - was taught to "git send-email" as a valid way to tell it that it - needs to also send a carbon copy to <a@dd.re.ss> in the trailer - section. - - * Fix regression to "gitk --bisect" by a recent update. - - * Unlike "git commit-tree < file", "git commit-tree -F file" did not - pass the contents of the file verbatim and instead completed an - incomplete line at the end, if exists. The latter has been updated - to match the behaviour of the former. - - * "git archive", especially when used with pathspec, stored an empty - directory in its output, even though Git itself never does so. - This has been fixed. - - * API error-proofing which happens to also squelch warnings from GCC. - - * "git gc" tries to avoid running two instances at the same time by - reading and writing pid/host from and to a lock file; it used to - use an incorrect fscanf() format when reading, which has been - corrected. - - * The test linter has been taught that we do not like "echo -e". - - * Code cmp.std.c nitpick. - - * "git describe --match" learned to take multiple patterns in v2.13 - series, but the feature ignored the patterns after the first one - and did not work at all. This has been fixed. - - * "git cat-file --textconv" started segfaulting recently, which - has been corrected. - - * The built-in pattern to detect the "function header" for HTML did - not match <H1>..<H6> elements without any attributes, which has - been fixed. - - * "git mailinfo" was loose in decoding quoted printable and produced - garbage when the two letters after the equal sign are not - hexadecimal. This has been fixed. - - * The documentation for '-X<option>' for merges was misleadingly - written to suggest that "-s theirs" exists, which is not the case. - - * Spell the name of our system as "Git" in the output from - request-pull script. - - * Fixes for a handful memory access issues identified by valgrind. - - * Backports a moral equivalent of 2015 fix to the poll emulation from - the upstream gnulib to fix occasional breakages on HPE NonStop. - - * In the "--format=..." option of the "git for-each-ref" command (and - its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" - (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat - them as if the colon and an empty string that follows it were not - there. - - * Users with "color.ui = always" in their configuration were broken - by a recent change that made plumbing commands to pay attention to - them as the patch created internally by "git add -p" were colored - (heh) and made unusable. This has been fixed. - - * "git branch -M a b" while on a branch that is completely unrelated - to either branch a or branch b misbehaved when multiple worktree - was in use. This has been fixed. - - * "git fast-export" with -M/-C option issued "copy" instruction on a - path that is simultaneously modified, which was incorrect. - - * The checkpoint command "git fast-import" did not flush updates to - refs and marks unless at least one object was created since the - last checkpoint, which has been corrected, as these things can - happen without any new object getting created. - - * The scripts to drive TravisCI has been reorganized and then an - optimization to avoid spending cycles on a branch whose tip is - tagged has been implemented. - - * "git fetch <there> <src>:<dst>" allows an object name on the <src> - side when the other side accepts such a request since Git v2.5, but - the documentation was left stale. - - * A regression in 2.11 that made the code to read the list of - alternate object stores overrun the end of the string has been - fixed. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.14.4.txt b/third_party/git/Documentation/RelNotes/2.14.4.txt deleted file mode 100644 index 97755a89d9fb..000000000000 --- a/third_party/git/Documentation/RelNotes/2.14.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.14.4 Release Notes -========================= - -This release is to forward-port the fixes made in the v2.13.7 version -of Git. See its release notes for details. diff --git a/third_party/git/Documentation/RelNotes/2.14.5.txt b/third_party/git/Documentation/RelNotes/2.14.5.txt deleted file mode 100644 index 130645fb292a..000000000000 --- a/third_party/git/Documentation/RelNotes/2.14.5.txt +++ /dev/null @@ -1,16 +0,0 @@ -Git v2.14.5 Release Notes -========================= - -This release is to address the recently reported CVE-2018-17456. - -Fixes since v2.14.4 -------------------- - - * Submodules' "URL"s come from the untrusted .gitmodules file, but - we blindly gave it to "git clone" to clone submodules when "git - clone --recurse-submodules" was used to clone a project that has - such a submodule. The code has been hardened to reject such - malformed URLs (e.g. one that begins with a dash). - -Credit for finding and fixing this vulnerability goes to joernchen -and Jeff King, respectively. diff --git a/third_party/git/Documentation/RelNotes/2.14.6.txt b/third_party/git/Documentation/RelNotes/2.14.6.txt deleted file mode 100644 index 72b7af679917..000000000000 --- a/third_party/git/Documentation/RelNotes/2.14.6.txt +++ /dev/null @@ -1,54 +0,0 @@ -Git v2.14.6 Release Notes -========================= - -This release addresses the security issues CVE-2019-1348, -CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, -CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387. - -Fixes since v2.14.5 -------------------- - - * CVE-2019-1348: - The --export-marks option of git fast-import is exposed also via - the in-stream command feature export-marks=... and it allows - overwriting arbitrary paths. - - * CVE-2019-1349: - When submodules are cloned recursively, under certain circumstances - Git could be fooled into using the same Git directory twice. We now - require the directory to be empty. - - * CVE-2019-1350: - Incorrect quoting of command-line arguments allowed remote code - execution during a recursive clone in conjunction with SSH URLs. - - * CVE-2019-1351: - While the only permitted drive letters for physical drives on - Windows are letters of the US-English alphabet, this restriction - does not apply to virtual drives assigned via subst <letter>: - <path>. Git mistook such paths for relative paths, allowing writing - outside of the worktree while cloning. - - * CVE-2019-1352: - Git was unaware of NTFS Alternate Data Streams, allowing files - inside the .git/ directory to be overwritten during a clone. - - * CVE-2019-1353: - When running Git in the Windows Subsystem for Linux (also known as - "WSL") while accessing a working directory on a regular Windows - drive, none of the NTFS protections were active. - - * CVE-2019-1354: - Filenames on Linux/Unix can contain backslashes. On Windows, - backslashes are directory separators. Git did not use to refuse to - write out tracked files with such filenames. - - * CVE-2019-1387: - Recursive clones are currently affected by a vulnerability that is - caused by too-lax validation of submodule names, allowing very - targeted attacks via remote code execution in recursive clones. - -Credit for finding these vulnerabilities goes to Microsoft Security -Response Center, in particular to Nicolas Joly. The `fast-import` -fixes were provided by Jeff King, the other fixes by Johannes -Schindelin with help from Garima Singh. diff --git a/third_party/git/Documentation/RelNotes/2.15.0.txt b/third_party/git/Documentation/RelNotes/2.15.0.txt deleted file mode 100644 index cdd761bcc207..000000000000 --- a/third_party/git/Documentation/RelNotes/2.15.0.txt +++ /dev/null @@ -1,508 +0,0 @@ -Git 2.15 Release Notes -====================== - -Backward compatibility notes and other notable changes. - - * Use of an empty string as a pathspec element that is used for - 'everything matches' is still warned and Git asks users to use a - more explicit '.' for that instead. The hope is that existing - users will not mind this change, and eventually the warning can be - turned into a hard error, upgrading the deprecation into removal of - this (mis)feature. That is now scheduled to happen in Git v2.16, - the next major release after this one. - - * Git now avoids blindly falling back to ".git" when the setup - sequence said we are _not_ in Git repository. A corner case that - happens to work right now may be broken by a call to BUG(). - We've tried hard to locate such cases and fixed them, but there - might still be cases that need to be addressed--bug reports are - greatly appreciated. - - * "branch --set-upstream" that has been deprecated in Git 1.8 has - finally been retired. - - -Updates since v2.14 -------------------- - -UI, Workflows & Features - - * An example that is now obsolete has been removed from a sample hook, - and an old example in it that added a sign-off manually has been - improved to use the interpret-trailers command. - - * The advice message given when "git rebase" stops for conflicting - changes has been improved. - - * The "rerere-train" script (in contrib/) learned the "--overwrite" - option to allow overwriting existing recorded resolutions. - - * "git contacts" (in contrib/) now lists the address on the - "Reported-by:" trailer to its output, in addition to those on - S-o-b: and other trailers, to make it easier to notify (and thank) - the original bug reporter. - - * "git rebase", especially when it is run by mistake and ends up - trying to replay many changes, spent long time in silence. The - command has been taught to show progress report when it spends - long time preparing these many changes to replay (which would give - the user a chance to abort with ^C). - - * "git merge" learned a "--signoff" option to add the Signed-off-by: - trailer with the committer's name. - - * "git diff" learned to optionally paint new lines that are the same - as deleted lines elsewhere differently from genuinely new lines. - - * "git interpret-trailers" learned to take the trailer specifications - from the command line that overrides the configured values. - - * "git interpret-trailers" has been taught a "--parse" and a few - other options to make it easier for scripts to grab existing - trailer lines from a commit log message. - - * The "--format=%(trailers)" option "git log" and its friends take - learned to take the 'unfold' and 'only' modifiers to normalize its - output, e.g. "git log --format=%(trailers:only,unfold)". - - * "gitweb" shows a link to visit the 'raw' contents of blobs in the - history overview page. - - * "[gc] rerereResolved = 5.days" used to be invalid, as the variable - is defined to take an integer counting the number of days. It now - is allowed. - - * The code to acquire a lock on a reference (e.g. while accepting a - push from a client) used to immediately fail when the reference is - already locked---now it waits for a very short while and retries, - which can make it succeed if the lock holder was holding it during - a read-only operation. - - * "branch --set-upstream" that has been deprecated in Git 1.8 has - finally been retired. - - * The codepath to call external process filter for smudge/clean - operation learned to show the progress meter. - - * "git rev-parse" learned "--is-shallow-repository", that is to be - used in a way similar to existing "--is-bare-repository" and - friends. - - * "git describe --match <pattern>" has been taught to play well with - the "--all" option. - - * "git branch" learned "-c/-C" to create a new branch by copying an - existing one. - - * Some commands (most notably "git status") makes an opportunistic - update when performing a read-only operation to help optimize later - operations in the same repository. The new "--no-optional-locks" - option can be passed to Git to disable them. - - * "git for-each-ref --format=..." learned a new format element, - %(trailers), to show only the commit log trailer part of the log - message. - - -Performance, Internal Implementation, Development Support etc. - - * Conversion from uchar[20] to struct object_id continues. - - * Start using selected c99 constructs in small, stable and - essential part of the system to catch people who care about - older compilers that do not grok them. - - * The filter-process interface learned to allow a process with long - latency give a "delayed" response. - - * Many uses of comparison callback function the hashmap API uses - cast the callback function type when registering it to - hashmap_init(), which defeats the compile time type checking when - the callback interface changes (e.g. gaining more parameters). - The callback implementations have been updated to take "void *" - pointers and cast them to the type they expect instead. - - * Because recent Git for Windows do come with a real msgfmt, the - build procedure for git-gui has been updated to use it instead of a - hand-rolled substitute. - - * "git grep --recurse-submodules" has been reworked to give a more - consistent output across submodule boundary (and do its thing - without having to fork a separate process). - - * A helper function to read a single whole line into strbuf - mistakenly triggered OOM error at EOF under certain conditions, - which has been fixed. - - * The "ref-store" code reorganization continues. - - * "git commit" used to discard the index and re-read from the filesystem - just in case the pre-commit hook has updated it in the middle; this - has been optimized out when we know we do not run the pre-commit hook. - (merge 680ee550d7 kw/commit-keep-index-when-pre-commit-is-not-run later to maint). - - * Updates to the HTTP layer we made recently unconditionally used - features of libCurl without checking the existence of them, causing - compilation errors, which has been fixed. Also migrate the code to - check feature macros, not version numbers, to cope better with - libCurl that vendor ships with backported features. - - * The API to start showing progress meter after a short delay has - been simplified. - (merge 8aade107dd jc/simplify-progress later to maint). - - * Code clean-up to avoid mixing values read from the .gitmodules file - and values read from the .git/config file. - - * We used to spend more than necessary cycles allocating and freeing - piece of memory while writing each index entry out. This has been - optimized. - - * Platforms that ship with a separate sha1 with collision detection - library can link to it instead of using the copy we ship as part of - our source tree. - - * Code around "notes" have been cleaned up. - (merge 3964281524 mh/notes-cleanup later to maint). - - * The long-standing rule that an in-core lockfile instance, once it - is used, must not be freed, has been lifted and the lockfile and - tempfile APIs have been updated to reduce the chance of programming - errors. - - * Our hashmap implementation in hashmap.[ch] is not thread-safe when - adding a new item needs to expand the hashtable by rehashing; add - an API to disable the automatic rehashing to work it around. - - * Many of our programs consider that it is OK to release dynamic - storage that is used throughout the life of the program by simply - exiting, but this makes it harder to leak detection tools to avoid - reporting false positives. Plug many existing leaks and introduce - a mechanism for developers to mark that the region of memory - pointed by a pointer is not lost/leaking to help these tools. - - * As "git commit" to conclude a conflicted "git merge" honors the - commit-msg hook, "git merge" that records a merge commit that - cleanly auto-merges should, but it didn't. - - * The codepath for "git merge-recursive" has been cleaned up. - - * Many leaks of strbuf have been fixed. - - * "git imap-send" has our own implementation of the protocol and also - can use more recent libCurl with the imap protocol support. Update - the latter so that it can use the credential subsystem, and then - make it the default option to use, so that we can eventually - deprecate and remove the former. - - * "make style" runs git-clang-format to help developers by pointing - out coding style issues. - - * A test to demonstrate "git mv" failing to adjust nested submodules - has been added. - (merge c514167df2 hv/mv-nested-submodules-test later to maint). - - * On Cygwin, "ulimit -s" does not report failure but it does not work - at all, which causes an unexpected success of some tests that - expect failures under a limited stack situation. This has been - fixed. - - * Many codepaths have been updated to squelch -Wimplicit-fallthrough - warnings from Gcc 7 (which is a good code hygiene). - - * Add a helper for DLL loading in anticipation for its need in a - future topic RSN. - - * "git status --ignored", when noticing that a directory without any - tracked path is ignored, still enumerated all the ignored paths in - the directory, which is unnecessary. The codepath has been - optimized to avoid this overhead. - - * The final batch to "git rebase -i" updates to move more code from - the shell script to C has been merged. - - * Operations that do not touch (majority of) packed refs have been - optimized by making accesses to packed-refs file lazy; we no longer - pre-parse everything, and an access to a single ref in the - packed-refs does not touch majority of irrelevant refs, either. - - * Add comment to clarify that the style file is meant to be used with - clang-5 and the rules are still work in progress. - - * Many variables that points at a region of memory that will live - throughout the life of the program have been marked with UNLEAK - marker to help the leak checkers concentrate on real leaks.. - - * Plans for weaning us off of SHA-1 has been documented. - - * A new "oidmap" API has been introduced and oidset API has been - rewritten to use it. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.14 ------------------ - - * "%C(color name)" in the pretty print format always produced ANSI - color escape codes, which was an early design mistake. They now - honor the configuration (e.g. "color.ui = never") and also tty-ness - of the output medium. - - * The http.{sslkey,sslCert} configuration variables are to be - interpreted as a pathname that honors "~[username]/" prefix, but - weren't, which has been fixed. - - * Numerous bugs in walking of reflogs via "log -g" and friends have - been fixed. - - * "git commit" when seeing an totally empty message said "you did not - edit the message", which is clearly wrong. The message has been - corrected. - - * When a directory is not readable, "gitweb" fails to build the - project list. Work this around by skipping such a directory. - - * Some versions of GnuPG fails to kill gpg-agent it auto-spawned - and such a left-over agent can interfere with a test. Work it - around by attempting to kill one before starting a new test. - - * A recently added test for the "credential-cache" helper revealed - that EOF detection done around the time the connection to the cache - daemon is torn down were flaky. This was fixed by reacting to - ECONNRESET and behaving as if we got an EOF. - - * "git log --tag=no-such-tag" showed log starting from HEAD, which - has been fixed---it now shows nothing. - - * The "tag.pager" configuration variable was useless for those who - actually create tag objects, as it interfered with the use of an - editor. A new mechanism has been introduced for commands to enable - pager depending on what operation is being carried out to fix this, - and then "git tag -l" is made to run pager by default. - - * "git push --recurse-submodules $there HEAD:$target" was not - propagated down to the submodules, but now it is. - - * Commands like "git rebase" accepted the --rerere-autoupdate option - from the command line, but did not always use it. This has been - fixed. - - * "git clone --recurse-submodules --quiet" did not pass the quiet - option down to submodules. - - * Test portability fix for OBSD. - - * Portability fix for OBSD. - - * "git am -s" has been taught that some input may end with a trailer - block that is not Signed-off-by: and it should refrain from adding - an extra blank line before adding a new sign-off in such a case. - - * "git svn" used with "--localtime" option did not compute the tz - offset for the timestamp in question and instead always used the - current time, which has been corrected. - - * Memory leak in an error codepath has been plugged. - - * "git stash -u" used the contents of the committed version of the - ".gitignore" file to decide which paths are ignored, even when the - file has local changes. The command has been taught to instead use - the locally modified contents. - - * bash 4.4 or newer gave a warning on NUL byte in command - substitution done in "git stash"; this has been squelched. - - * "git grep -L" and "git grep --quiet -L" reported different exit - codes; this has been corrected. - - * When handshake with a subprocess filter notices that the process - asked for an unknown capability, Git did not report what program - the offending subprocess was running. This has been corrected. - - * "git apply" that is used as a better "patch -p1" failed to apply a - taken from a file with CRLF line endings to a file with CRLF line - endings. The root cause was because it misused convert_to_git() - that tried to do "safe-crlf" processing by looking at the index - entry at the same path, which is a nonsense---in that mode, "apply" - is not working on the data in (or derived from) the index at all. - This has been fixed. - - * Killing "git merge --edit" before the editor returns control left - the repository in a state with MERGE_MSG but without MERGE_HEAD, - which incorrectly tells the subsequent "git commit" that there was - a squash merge in progress. This has been fixed. - - * "git archive" did not work well with pathspecs and the - export-ignore attribute. - - * In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft" - was taught to "git send-email" as a valid way to tell it that it - needs to also send a carbon copy to <a@dd.re.ss> in the trailer - section. - - * "git branch -M a b" while on a branch that is completely unrelated - to either branch a or branch b misbehaved when multiple worktree - was in use. This has been fixed. - (merge 31824d180d nd/worktree-kill-parse-ref later to maint). - - * "git gc" and friends when multiple worktrees are used off of a - single repository did not consider the index and per-worktree refs - of other worktrees as the root for reachability traversal, making - objects that are in use only in other worktrees to be subject to - garbage collection. - - * A regression to "gitk --bisect" by a recent update has been fixed. - - * "git -c submodule.recurse=yes pull" did not work as if the - "--recurse-submodules" option was given from the command line. - This has been corrected. - - * Unlike "git commit-tree < file", "git commit-tree -F file" did not - pass the contents of the file verbatim and instead completed an - incomplete line at the end, if exists. The latter has been updated - to match the behaviour of the former. - - * Many codepaths did not diagnose write failures correctly when disks - go full, due to their misuse of write_in_full() helper function, - which have been corrected. - (merge f48ecd38cb jk/write-in-full-fix later to maint). - - * "git help co" now says "co is aliased to ...", not "git co is". - (merge b3a8076e0d ks/help-alias-label later to maint). - - * "git archive", especially when used with pathspec, stored an empty - directory in its output, even though Git itself never does so. - This has been fixed. - - * API error-proofing which happens to also squelch warnings from GCC. - - * The explanation of the cut-line in the commit log editor has been - slightly tweaked. - (merge 8c4b1a3593 ks/commit-do-not-touch-cut-line later to maint). - - * "git gc" tries to avoid running two instances at the same time by - reading and writing pid/host from and to a lock file; it used to - use an incorrect fscanf() format when reading, which has been - corrected. - - * The scripts to drive TravisCI has been reorganized and then an - optimization to avoid spending cycles on a branch whose tip is - tagged has been implemented. - (merge 8376eb4a8f ls/travis-scriptify later to maint). - - * The test linter has been taught that we do not like "echo -e". - - * Code cmp.std.c nitpick. - - * A regression fix for 2.11 that made the code to read the list of - alternate object stores overrun the end of the string. - (merge f0f7bebef7 jk/info-alternates-fix later to maint). - - * "git describe --match" learned to take multiple patterns in v2.13 - series, but the feature ignored the patterns after the first one - and did not work at all. This has been fixed. - - * "git filter-branch" cannot reproduce a history with a tag without - the tagger field, which only ancient versions of Git allowed to be - created. This has been corrected. - (merge b2c1ca6b4b ic/fix-filter-branch-to-handle-tag-without-tagger later to maint). - - * "git cat-file --textconv" started segfaulting recently, which - has been corrected. - - * The built-in pattern to detect the "function header" for HTML did - not match <H1>..<H6> elements without any attributes, which has - been fixed. - - * "git mailinfo" was loose in decoding quoted printable and produced - garbage when the two letters after the equal sign are not - hexadecimal. This has been fixed. - - * The machinery to create xdelta used in pack files received the - sizes of the data in size_t, but lost the higher bits of them by - storing them in "unsigned int" during the computation, which is - fixed. - - * The delta format used in the packfile cannot reference data at - offset larger than what can be expressed in 4-byte, but the - generator for the data failed to make sure the offset does not - overflow. This has been corrected. - - * The documentation for '-X<option>' for merges was misleadingly - written to suggest that "-s theirs" exists, which is not the case. - - * "git fast-export" with -M/-C option issued "copy" instruction on a - path that is simultaneously modified, which was incorrect. - (merge b3e8ca89cf jt/fast-export-copy-modify-fix later to maint). - - * Many codepaths have been updated to squelch -Wsign-compare - warnings. - (merge 071bcaab64 rj/no-sign-compare later to maint). - - * Memory leaks in various codepaths have been plugged. - (merge 4d01a7fa65 ma/leakplugs later to maint). - - * Recent versions of "git rev-parse --parseopt" did not parse the - option specification that does not have the optional flags (*=?!) - correctly, which has been corrected. - (merge a6304fa4c2 bc/rev-parse-parseopt-fix later to maint). - - * The checkpoint command "git fast-import" did not flush updates to - refs and marks unless at least one object was created since the - last checkpoint, which has been corrected, as these things can - happen without any new object getting created. - (merge 30e215a65c er/fast-import-dump-refs-on-checkpoint later to maint). - - * Spell the name of our system as "Git" in the output from - request-pull script. - - * Fixes for a handful memory access issues identified by valgrind. - - * Backports a moral equivalent of 2015 fix to the poll() emulation - from the upstream gnulib to fix occasional breakages on HPE NonStop. - - * Users with "color.ui = always" in their configuration were broken - by a recent change that made plumbing commands to pay attention to - them as the patch created internally by "git add -p" were colored - (heh) and made unusable. This has been fixed by reverting the - offending change. - - * In the "--format=..." option of the "git for-each-ref" command (and - its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" - (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat - them as if the colon and an empty string that follows it were not - there. - - * An ancient bug that made Git misbehave with creation/renaming of - refs has been fixed. - - * "git fetch <there> <src>:<dst>" allows an object name on the <src> - side when the other side accepts such a request since Git v2.5, but - the documentation was left stale. - (merge 83558a412a jc/fetch-refspec-doc-update later to maint). - - * Update the documentation for "git filter-branch" so that the filter - options are listed in the same order as they are applied, as - described in an earlier part of the doc. - (merge 07c4984508 dg/filter-branch-filter-order-doc later to maint). - - * A possible oom error is now caught as a fatal error, instead of - continuing and dereferencing NULL. - (merge 55d7d15847 ao/path-use-xmalloc later to maint). - - * Other minor doc, test and build updates and code cleanups. - (merge f094b89a4d ma/parse-maybe-bool later to maint). - (merge 6cdf8a7929 ma/ts-cleanups later to maint). - (merge 7560f547e6 ma/up-to-date later to maint). - (merge 0db3dc75f3 rs/apply-epoch later to maint). - (merge 276d0e35c0 ma/split-symref-update-fix later to maint). - (merge f777623514 ks/branch-tweak-error-message-for-extra-args later to maint). - (merge 33f3c683ec ks/verify-filename-non-option-error-message-tweak later to maint). - (merge 7cbbf9d6a2 ls/filter-process-delayed later to maint). - (merge 488aa65c8f wk/merge-options-gpg-sign-doc later to maint). - (merge e61cb19a27 jc/branch-force-doc-readability-fix later to maint). - (merge 32fceba3fd np/config-path-doc later to maint). - (merge e38c681fb7 sb/rev-parse-show-superproject-root later to maint). - (merge 4f851dc883 sg/rev-list-doc-reorder-fix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.15.1.txt b/third_party/git/Documentation/RelNotes/2.15.1.txt deleted file mode 100644 index ec06704e637d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.15.1.txt +++ /dev/null @@ -1,88 +0,0 @@ -Git v2.15.1 Release Notes -========================= - -Fixes since v2.15 ------------------ - - * TravisCI build updates. - - * "auto" as a value for the columnar output configuration ought to - judge "is the output consumed by humans?" with the same criteria as - "auto" for coloured output configuration, i.e. either the standard - output stream is going to tty, or a pager is in use. We forgot the - latter, which has been fixed. - - * The experimental "color moved lines differently in diff output" - feature was buggy around "ignore whitespace changes" edges, which - has been corrected. - - * Instead of using custom line comparison and hashing functions to - implement "moved lines" coloring in the diff output, use the pair - of these functions from lower-layer xdiff/ code. - - * Some codepaths did not check for errors when asking what branch the - HEAD points at, which have been fixed. - - * "git commit", after making a commit, did not check for errors when - asking on what branch it made the commit, which has been corrected. - - * "git status --ignored -u" did not stop at a working tree of a - separate project that is embedded in an ignored directory and - listed files in that other project, instead of just showing the - directory itself as ignored. - - * A broken access to object databases in recent update to "git grep - --recurse-submodules" has been fixed. - - * A recent regression in "git rebase -i" that broke execution of git - commands from subdirectories via "exec" instruction has been fixed. - - * "git check-ref-format --branch @{-1}" bit a "BUG()" when run - outside a repository for obvious reasons; clarify the documentation - and make sure we do not even try to expand the at-mark magic in - such a case, but still call the validation logic for branch names. - - * Command line completion (in contrib/) update. - - * Description of blame.{showroot,blankboundary,showemail,date} - configuration variables have been added to "git config --help". - - * After an error from lstat(), diff_populate_filespec() function - sometimes still went ahead and used invalid data in struct stat, - which has been fixed. - - * UNC paths are also relevant in Cygwin builds and they are now - tested just like Mingw builds. - - * Correct start-up sequence so that a repository could be placed - immediately under the root directory again (which was broken at - around Git 2.13). - - * The credential helper for libsecret (in contrib/) has been improved - to allow possibly prompting the end user to unlock secrets that are - currently locked (otherwise the secrets may not be loaded). - - * Updates from GfW project. - - * "git rebase -i" recently started misbehaving when a submodule that - is configured with 'submodule.<name>.ignore' is dirty; this has - been corrected. - - * Some error messages did not quote filenames shown in it, which have - been fixed. - - * Building with NO_LIBPCRE1_JIT did not disable it, which has been fixed. - - * We used to add an empty alternate object database to the system - that does not help anything; it has been corrected. - - * Error checking in "git imap-send" for empty response has been - improved. - - * An ancient bug in "git apply --ignore-space-change" codepath has - been fixed. - - * There was a recent semantic mismerge in the codepath to write out a - section of a configuration section, which has been corrected. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.15.2.txt b/third_party/git/Documentation/RelNotes/2.15.2.txt deleted file mode 100644 index b480e56b684d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.15.2.txt +++ /dev/null @@ -1,50 +0,0 @@ -Git v2.15.2 Release Notes -========================= - -Fixes since v2.15.1 -------------------- - - * Recent update to the refs infrastructure implementation started - rewriting packed-refs file more often than before; this has been - optimized again for most trivial cases. - - * The SubmittingPatches document has been converted to produce an - HTML version via AsciiDoc/Asciidoctor. - - * Contrary to the documentation, "git pull -4/-6 other-args" did not - ask the underlying "git fetch" to go over IPv4/IPv6, which has been - corrected. - - * When "git rebase" prepared an mailbox of changes and fed it to "git - am" to replay them, it was confused when a stray "From " happened - to be in the log message of one of the replayed changes. This has - been corrected. - - * Command line completion (in contrib/) has been taught about the - "--copy" option of "git branch". - - * "git apply --inaccurate-eof" when used with "--ignore-space-change" - triggered an internal sanity check, which has been fixed. - - * The sequencer machinery (used by "git cherry-pick A..B", and "git - rebase -i", among other things) would have lost a commit if stopped - due to an unlockable index file, which has been fixed. - - * The three-way merge performed by "git cherry-pick" was confused - when a new submodule was added in the meantime, which has been - fixed (or "papered over"). - - * "git notes" sent its error message to its standard output stream, - which was corrected. - - * A few scripts (both in production and tests) incorrectly redirected - their error output. These have been corrected. - - * Clarify and enhance documentation for "merge-base --fork-point", as - it was clear what it computed but not why/what for. - - * This release also contains the fixes made in the v2.13.7 version of - Git. See its release notes for details. - - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.15.3.txt b/third_party/git/Documentation/RelNotes/2.15.3.txt deleted file mode 100644 index fd2e6f8df786..000000000000 --- a/third_party/git/Documentation/RelNotes/2.15.3.txt +++ /dev/null @@ -1,6 +0,0 @@ -Git v2.15.3 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.5 to address -the recently reported CVE-2018-17456; see the release notes for that -version for details. diff --git a/third_party/git/Documentation/RelNotes/2.15.4.txt b/third_party/git/Documentation/RelNotes/2.15.4.txt deleted file mode 100644 index dc241cba349f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.15.4.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git v2.15.4 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6 to address -the security issues CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, -CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, and -CVE-2019-1387; see the release notes for that version for details. - -In conjunction with a vulnerability that was fixed in v2.20.2, -`.gitmodules` is no longer allowed to contain entries of the form -`submodule.<name>.update=!command`. diff --git a/third_party/git/Documentation/RelNotes/2.16.0.txt b/third_party/git/Documentation/RelNotes/2.16.0.txt deleted file mode 100644 index b474781ed827..000000000000 --- a/third_party/git/Documentation/RelNotes/2.16.0.txt +++ /dev/null @@ -1,482 +0,0 @@ -Git 2.16 Release Notes -====================== - -Backward compatibility notes and other notable changes. - - * Use of an empty string as a pathspec element that is used for - 'everything matches' is now an error. - - -Updates since v2.15 -------------------- - -UI, Workflows & Features - - * An empty string as a pathspec element that means "everything" - i.e. 'git add ""', is now illegal. We started this by first - deprecating and warning a pathspec that has such an element in - 2.11 (Nov 2016). - - * A hook script that is set unexecutable is simply ignored. Git - notifies when such a file is ignored, unless the message is - squelched via advice.ignoredHook configuration. - - * "git pull" has been taught to accept "--[no-]signoff" option and - pass it down to "git merge". - - * The "--push-option=<string>" option to "git push" now defaults to a - list of strings configured via push.pushOption variable. - - * "gitweb" checks if a directory is searchable with Perl's "-x" - operator, which can be enhanced by using "filetest 'access'" - pragma, which now we do. - - * "git stash save" has been deprecated in favour of "git stash push". - - * The set of paths output from "git status --ignored" was tied - closely with its "--untracked=<mode>" option, but now it can be - controlled more flexibly. Most notably, a directory that is - ignored because it is listed to be ignored in the ignore/exclude - mechanism can be handled differently from a directory that ends up - to be ignored only because all files in it are ignored. - - * The remote-helper for talking to MediaWiki has been updated to - truncate an overlong pagename so that ".mw" suffix can still be - added. - - * The remote-helper for talking to MediaWiki has been updated to - work with mediawiki namespaces. - - * The "--format=..." option "git for-each-ref" takes learned to show - the name of the 'remote' repository and the ref at the remote side - that is affected for 'upstream' and 'push' via "%(push:remotename)" - and friends. - - * Doc and message updates to teach users "bisect view" is a synonym - for "bisect visualize". - - * "git bisect run" that did not specify any command to run used to go - ahead and treated all commits to be tested as 'good'. This has - been corrected by making the command error out. - - * The SubmittingPatches document has been converted to produce an - HTML version via AsciiDoc/Asciidoctor. - - * We learned to optionally talk to a file system monitor via new - fsmonitor extension to speed up "git status" and other operations - that need to see which paths have been modified. Currently we only - support "watchman". See File System Monitor section of - git-update-index(1) for more detail. - - * The "diff" family of commands learned to ignore differences in - carriage return at the end of line. - - * Places that know about "sendemail.to", like documentation and shell - completion (in contrib/) have been taught about "sendemail.tocmd", - too. - - * "git add --renormalize ." is a new and safer way to record the fact - that you are correcting the end-of-line convention and other - "convert_to_git()" glitches in the in-repository data. - - * "git branch" and "git checkout -b" are now forbidden from creating - a branch whose name is "HEAD". - - * "git branch --list" learned to show its output through the pager by - default when the output is going to a terminal, which is controlled - by the pager.branch configuration variable. This is similar to a - recent change to "git tag --list". - - * "git grep -W", "git diff -W" and their friends learned a heuristic - to extend a pre-context beyond the line that matches the "function - pattern" (aka "diff.*.xfuncname") to include a comment block, if - exists, that immediately precedes it. - - * "git config --expiry-date gc.reflogexpire" can read "2.weeks" from - the configuration and report it as a timestamp, just like "--int" - would read "1k" and report 1024, to help consumption by scripts. - - * The shell completion (in contrib/) learned that "git pull" can take - the "--autostash" option. - - * The tagnames "git log --decorate" uses to annotate the commits can - now be limited to subset of available refs with the two additional - options, --decorate-refs[-exclude]=<pattern>. - - * "git grep" compiled with libpcre2 sometimes triggered a segfault, - which is being fixed. - - * "git send-email" tries to see if the sendmail program is available - in /usr/lib and /usr/sbin; extend the list of locations to be - checked to also include directories on $PATH. - - * "git diff" learned, "--anchored", a variant of the "--patience" - algorithm, to which the user can specify which 'unique' line to be - used as anchoring points. - - * The way "git worktree add" determines what branch to create from - where and checkout in the new worktree has been updated a bit. - - * Ancient part of codebase still shows dots after an abbreviated - object name just to show that it is not a full object name, but - these ellipses are confusing to people who newly discovered Git - who are used to seeing abbreviated object names and find them - confusing with the range syntax. - - * With a configuration variable rebase.abbreviateCommands set, - "git rebase -i" produces the todo list with a single-letter - command names. - - * "git worktree add" learned to run the post-checkout hook, just like - "git checkout" does, after the initial checkout. - - * "git svn" has been updated to strip CRs in the commit messages, as - recent versions of Subversion rejects them. - - * "git imap-send" did not correctly quote the folder name when - making a request to the server, which has been corrected. - - * Error messages from "git rebase" have been somewhat cleaned up. - - * Git has been taught to support an https:// URL used for http.proxy - when using recent versions of libcurl. - - * "git merge" learned to pay attention to merge.verifySignatures - configuration variable and pretend as if '--verify-signatures' - option was given from the command line. - - * "git describe" was taught to dig trees deeper to find a - <commit-ish>:<path> that refers to a given blob object. - - -Performance, Internal Implementation, Development Support etc. - - * An earlier update made it possible to use an on-stack in-core - lockfile structure (as opposed to having to deliberately leak an - on-heap one). Many codepaths have been updated to take advantage - of this new facility. - - * Calling cmd_foo() as if it is a general purpose helper function is - a no-no. Correct two instances of such to set an example. - - * We try to see if somebody runs our test suite with a shell that - does not support "local" like bash/dash does. - - * An early part of piece-by-piece rewrite of "git bisect" in C. - - * GSoC to piece-by-piece rewrite "git submodule" in C. - - * Optimize the code to find shortest unique prefix of object names. - - * Pathspec-limited revision traversal was taught not to keep finding - unneeded differences once it knows two trees are different inside - given pathspec. - - * Conversion from uchar[20] to struct object_id continues. - - * Code cleanup. - - * A single-word "unsigned flags" in the diff options is being split - into a structure with many bitfields. - - * TravisCI build updates. - - * Parts of a test to drive the long-running content filter interface - has been split into its own module, hopefully to eventually become - reusable. - - * Drop (perhaps overly cautious) sanity check before using the index - read from the filesystem at runtime. - - * The build procedure has been taught to avoid some unnecessary - instability in the build products. - - * A new mechanism to upgrade the wire protocol in place is proposed - and demonstrated that it works with the older versions of Git - without harming them. - - * An infrastructure to define what hash function is used in Git is - introduced, and an effort to plumb that throughout various - codepaths has been started. - - * The code to iterate over loose object files got optimized. - - * An internal function that was left for backward compatibility has - been removed, as there is no remaining callers. - - * Historically, the diff machinery for rename detection had a - hardcoded limit of 32k paths; this is being lifted to allow users - trade cycles with a (possibly) easier to read result. - - * The tracing infrastructure has been optimized for cases where no - tracing is requested. - - * In preparation for implementing narrow/partial clone, the object - walking machinery has been taught a way to tell it to "filter" some - objects from enumeration. - - * A few structures and variables that are implementation details of - the decorate API have been renamed and then the API got documented - better. - - * Assorted updates for TravisCI integration. - (merge 4f26366679 sg/travis-fixes later to maint). - - * Introduce a helper to simplify code to parse a common pattern that - expects either "--key" or "--key=<something>". - - * "git version --build-options" learned to report the host CPU and - the exact commit object name the binary was built from. - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.15 ------------------ - - * "auto" as a value for the columnar output configuration ought to - judge "is the output consumed by humans?" with the same criteria as - "auto" for coloured output configuration, i.e. either the standard - output stream is going to tty, or a pager is in use. We forgot the - latter, which has been fixed. - - * The experimental "color moved lines differently in diff output" - feature was buggy around "ignore whitespace changes" edges, which - has been corrected. - - * Instead of using custom line comparison and hashing functions to - implement "moved lines" coloring in the diff output, use the pair - of these functions from lower-layer xdiff/ code. - - * Some codepaths did not check for errors when asking what branch the - HEAD points at, which have been fixed. - - * "git commit", after making a commit, did not check for errors when - asking on what branch it made the commit, which has been corrected. - - * "git status --ignored -u" did not stop at a working tree of a - separate project that is embedded in an ignored directory and - listed files in that other project, instead of just showing the - directory itself as ignored. - - * A broken access to object databases in recent update to "git grep - --recurse-submodules" has been fixed. - - * A recent regression in "git rebase -i" that broke execution of git - commands from subdirectories via "exec" instruction has been fixed. - - * A (possibly flakey) test fix. - - * "git check-ref-format --branch @{-1}" bit a "BUG()" when run - outside a repository for obvious reasons; clarify the documentation - and make sure we do not even try to expand the at-mark magic in - such a case, but still call the validation logic for branch names. - - * "git fetch --recurse-submodules" now knows that submodules can be - moved around in the superproject in addition to getting updated, - and finds the ones that need to be fetched accordingly. - - * Command line completion (in contrib/) update. - - * Description of blame.{showroot,blankboundary,showemail,date} - configuration variables have been added to "git config --help". - - * After an error from lstat(), diff_populate_filespec() function - sometimes still went ahead and used invalid data in struct stat, - which has been fixed. - - * UNC paths are also relevant in Cygwin builds and they are now - tested just like Mingw builds. - - * Correct start-up sequence so that a repository could be placed - immediately under the root directory again (which was broken at - around Git 2.13). - - * The credential helper for libsecret (in contrib/) has been improved - to allow possibly prompting the end user to unlock secrets that are - currently locked (otherwise the secrets may not be loaded). - - * MinGW updates. - - * Error checking in "git imap-send" for empty response has been - improved. - - * Recent update to the refs infrastructure implementation started - rewriting packed-refs file more often than before; this has been - optimized again for most trivial cases. - - * Some error messages did not quote filenames shown in it, which have - been fixed. - - * "git rebase -i" recently started misbehaving when a submodule that - is configured with 'submodule.<name>.ignore' is dirty; this has - been corrected. - - * Building with NO_LIBPCRE1_JIT did not disable it, which has been fixed. - - * We used to add an empty alternate object database to the system - that does not help anything; it has been corrected. - - * Doc update around use of "format-patch --subject-prefix" etc. - - * A fix for an ancient bug in "git apply --ignore-space-change" codepath. - - * Clarify and enhance documentation for "merge-base --fork-point", as - it was clear what it computed but not why/what for. - - * A few scripts (both in production and tests) incorrectly redirected - their error output. These have been corrected. - - * "git notes" sent its error message to its standard output stream, - which was corrected. - - * The three-way merge performed by "git cherry-pick" was confused - when a new submodule was added in the meantime, which has been - fixed (or "papered over"). - - * The sequencer machinery (used by "git cherry-pick A..B", and "git - rebase -i", among other things) would have lost a commit if stopped - due to an unlockable index file, which has been fixed. - - * "git apply --inaccurate-eof" when used with "--ignore-space-change" - triggered an internal sanity check, which has been fixed. - - * Command line completion (in contrib/) has been taught about the - "--copy" option of "git branch". - - * When "git rebase" prepared a mailbox of changes and fed it to "git - am" to replay them, it was confused when a stray "From " happened - to be in the log message of one of the replayed changes. This has - been corrected. - - * There was a recent semantic mismerge in the codepath to write out a - section of a configuration section, which has been corrected. - - * Mentions of "git-rebase" and "git-am" (dashed form) still remained - in end-user visible strings emitted by the "git rebase" command; - they have been corrected. - - * Contrary to the documentation, "git pull -4/-6 other-args" did not - ask the underlying "git fetch" to go over IPv4/IPv6, which has been - corrected. - - * "git checkout --recursive" may overwrite and rewind the history of - the branch that happens to be checked out in submodule - repositories, which might not be desirable. Detach the HEAD but - still allow the recursive checkout to succeed in such a case. - (merge 57f22bf997 sb/submodule-recursive-checkout-detach-head later to maint). - - * "git branch --set-upstream" has been deprecated and (sort of) - removed, as "--set-upstream-to" is the preferred one these days. - The documentation still had "--set-upstream" listed on its - synopsis section, which has been corrected. - (merge a060f3d3d8 tz/branch-doc-remove-set-upstream later to maint). - - * Internally we use 0{40} as a placeholder object name to signal the - codepath that there is no such object (e.g. the fast-forward check - while "git fetch" stores a new remote-tracking ref says "we know - there is no 'old' thing pointed at by the ref, as we are creating - it anew" by passing 0{40} for the 'old' side), and expect that a - codepath to locate an in-core object to return NULL as a sign that - the object does not exist. A look-up for an object that does not - exist however is quite costly with a repository with large number - of packfiles. This access pattern has been optimized. - (merge 87b5e236a1 jk/fewer-pack-rescan later to maint). - - * In addition to "git stash -m message", the command learned to - accept "git stash -mmessage" form. - (merge 5675473fcb ph/stash-save-m-option-fix later to maint). - - * @{-N} in "git checkout @{-N}" may refer to a detached HEAD state, - but the documentation was not clear about it, which has been fixed. - (merge 75ce149575 ks/doc-checkout-previous later to maint). - - * A regression in the progress eye-candy was fixed. - (merge 9c5951cacf jk/progress-delay-fix later to maint). - - * The code internal to the recursive merge strategy was not fully - prepared to see a path that is renamed to try overwriting another - path that is only different in case on case insensitive systems. - This does not matter in the current code, but will start to matter - once the rename detection logic starts taking hints from nearby - paths moving to some directory and moves a new path along with them. - (merge 4cba2b0108 en/merge-recursive-icase-removal later to maint). - - * An v2.12-era regression in pathspec match logic, which made it look - into submodule tree even when it is not desired, has been fixed. - (merge eef3df5a93 bw/pathspec-match-submodule-boundary later to maint). - - * Amending commits in git-gui broke the author name that is non-ascii - due to incorrect encoding conversion. - - * Recent update to the submodule configuration code broke "diff-tree" - by accidentally stopping to read from the index upfront. - (merge fd66bcc31f bw/submodule-config-cleanup later to maint). - - * Git shows a message to tell the user that it is waiting for the - user to finish editing when spawning an editor, in case the editor - opens to a hidden window or somewhere obscure and the user gets - lost. - (merge abfb04d0c7 ls/editor-waiting-message later to maint). - - * The "safe crlf" check incorrectly triggered for contents that does - not use CRLF as line endings, which has been corrected. - (merge 649f1f0948 tb/check-crlf-for-safe-crlf later to maint). - - * "git clone --shared" to borrow from a (secondary) worktree did not - work, even though "git clone --local" did. Both are now accepted. - (merge b3b05971c1 es/clone-shared-worktree later to maint). - - * The build procedure now allows not just the repositories but also - the refs to be used to take pre-formatted manpages and html - documents to install. - (merge 65289e9dcd rb/quick-install-doc later to maint). - - * Update the shell prompt script (in contrib/) to strip trailing CR - from strings read from various "state" files. - (merge 041fe8fc83 ra/prompt-eread-fix later to maint). - - * "git merge -s recursive" did not correctly abort when the index is - dirty, if the merged tree happened to be the same as the current - HEAD, which has been fixed. - - * Bytes with high-bit set were encoded incorrectly and made - credential helper fail. - (merge 4c267f2ae3 jd/fix-strbuf-add-urlencode-bytes later to maint). - - * "git rebase -p -X<option>" did not propagate the option properly - down to underlying merge strategy backend. - (merge dd6fb0053c js/fix-merge-arg-quoting-in-rebase-p later to maint). - - * "git merge -s recursive" did not correctly abort when the index is - dirty, if the merged tree happened to be the same as the current - HEAD, which has been fixed. - (merge f309e8e768 ew/empty-merge-with-dirty-index-maint later to maint). - - * Other minor doc, test and build updates and code cleanups. - (merge 1a1fc2d5b5 rd/man-prune-progress later to maint). - (merge 0ba014035a rd/man-reflog-add-n later to maint). - (merge e54b63359f rd/doc-notes-prune-fix later to maint). - (merge ff4c9b413a sp/doc-info-attributes later to maint). - (merge 7db2cbf4f1 jc/receive-pack-hook-doc later to maint). - (merge 5a0526264b tg/t-readme-updates later to maint). - (merge 5e83cca0b8 jk/no-optional-locks later to maint). - (merge 826c778f7c js/hashmap-update-sample later to maint). - (merge 176b2d328c sg/setup-doc-update later to maint). - (merge 1b09073514 rs/am-builtin-leakfix later to maint). - (merge addcf6cfde rs/fmt-merge-msg-string-leak-fix later to maint). - (merge c3ff8f6c14 rs/strbuf-read-once-reset-length later to maint). - (merge 6b0eb884f9 db/doc-workflows-neuter-the-maintainer later to maint). - (merge 8c87bdfb21 jk/cvsimport-quoting later to maint). - (merge 176cb979fe rs/fmt-merge-msg-leakfix later to maint). - (merge 5a03360e73 tb/delimit-pretty-trailers-args-with-comma later to maint). - (merge d0e6326026 ot/pretty later to maint). - (merge 44103f4197 sb/test-helper-excludes later to maint). - (merge 170078693f jt/transport-no-more-rsync later to maint). - (merge c07b3adff1 bw/path-doc later to maint). - (merge bf9d7df950 tz/lib-git-svn-svnserve-tests later to maint). - (merge dec366c9a8 sr/http-sslverify-config-doc later to maint). - (merge 3f824e91c8 jk/test-suite-tracing later to maint). - (merge 1feb061701 db/doc-config-section-names-with-bs later to maint). - (merge 74dea0e13c jh/memihash-opt later to maint). - (merge 2e9fdc795c ma/bisect-leakfix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.16.1.txt b/third_party/git/Documentation/RelNotes/2.16.1.txt deleted file mode 100644 index 66e64361fd30..000000000000 --- a/third_party/git/Documentation/RelNotes/2.16.1.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git v2.16.1 Release Notes -========================= - -Fixes since v2.16 ------------------ - - * "git clone" segfaulted when cloning a project that happens to - track two paths that differ only in case on a case insensitive - filesystem. - -Does not contain any other documentation updates or code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.16.2.txt b/third_party/git/Documentation/RelNotes/2.16.2.txt deleted file mode 100644 index a216466d3d71..000000000000 --- a/third_party/git/Documentation/RelNotes/2.16.2.txt +++ /dev/null @@ -1,30 +0,0 @@ -Git v2.16.2 Release Notes -========================= - -Fixes since v2.16.1 -------------------- - - * An old regression in "git describe --all $annotated_tag^0" has been - fixed. - - * "git svn dcommit" did not take into account the fact that a - svn+ssh:// URL with a username@ (typically used for pushing) refers - to the same SVN repository without the username@ and failed when - svn.pushmergeinfo option is set. - - * "git merge -Xours/-Xtheirs" learned to use our/their version when - resolving a conflicting updates to a symbolic link. - - * "git clone $there $here" is allowed even when here directory exists - as long as it is an empty directory, but the command incorrectly - removed it upon a failure of the operation. - - * "git stash -- <pathspec>" incorrectly blew away untracked files in - the directory that matched the pathspec, which has been corrected. - - * "git add -p" was taught to ignore local changes to submodules as - they do not interfere with the partial addition of regular changes - anyway. - - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.16.3.txt b/third_party/git/Documentation/RelNotes/2.16.3.txt deleted file mode 100644 index f0121a8f2d31..000000000000 --- a/third_party/git/Documentation/RelNotes/2.16.3.txt +++ /dev/null @@ -1,49 +0,0 @@ -Git v2.16.3 Release Notes -========================= - -Fixes since v2.16.2 -------------------- - - * "git status" after moving a path in the working tree (hence making - it appear "removed") and then adding with the -N option (hence - making that appear "added") detected it as a rename, but did not - report the old and new pathnames correctly. - - * "git commit --fixup" did not allow "-m<message>" option to be used - at the same time; allow it to annotate resulting commit with more - text. - - * When resetting the working tree files recursively, the working tree - of submodules are now also reset to match. - - * Fix for a commented-out code to adjust it to a rather old API change - around object ID. - - * When there are too many changed paths, "git diff" showed a warning - message but in the middle of a line. - - * The http tracing code, often used to debug connection issues, - learned to redact potentially sensitive information from its output - so that it can be more safely shareable. - - * Crash fix for a corner case where an error codepath tried to unlock - what it did not acquire lock on. - - * The split-index mode had a few corner case bugs fixed. - - * Assorted fixes to "git daemon". - - * Completion of "git merge -s<strategy>" (in contrib/) did not work - well in non-C locale. - - * Workaround for segfault with more recent versions of SVN. - - * Recently introduced leaks in fsck have been plugged. - - * Travis CI integration now builds the executable in 'script' phase - to follow the established practice, rather than during - 'before_script' phase. This allows the CI categorize the failures - better ('failed' is project's fault, 'errored' is build - environment's). - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.16.4.txt b/third_party/git/Documentation/RelNotes/2.16.4.txt deleted file mode 100644 index 6be538ba30c6..000000000000 --- a/third_party/git/Documentation/RelNotes/2.16.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.16.4 Release Notes -========================= - -This release is to forward-port the fixes made in the v2.13.7 version -of Git. See its release notes for details. diff --git a/third_party/git/Documentation/RelNotes/2.16.5.txt b/third_party/git/Documentation/RelNotes/2.16.5.txt deleted file mode 100644 index cb8ee02a9af8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.16.5.txt +++ /dev/null @@ -1,6 +0,0 @@ -Git v2.16.5 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.5 to address -the recently reported CVE-2018-17456; see the release notes for that -version for details. diff --git a/third_party/git/Documentation/RelNotes/2.16.6.txt b/third_party/git/Documentation/RelNotes/2.16.6.txt deleted file mode 100644 index 438306e60bf3..000000000000 --- a/third_party/git/Documentation/RelNotes/2.16.6.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v2.16.6 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6 and in -v2.15.4 addressing the security issues CVE-2019-1348, CVE-2019-1349, -CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, -CVE-2019-1354, and CVE-2019-1387; see the release notes for those -versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.17.0.txt b/third_party/git/Documentation/RelNotes/2.17.0.txt deleted file mode 100644 index 8b17c260336c..000000000000 --- a/third_party/git/Documentation/RelNotes/2.17.0.txt +++ /dev/null @@ -1,398 +0,0 @@ -Git 2.17 Release Notes -====================== - -Updates since v2.16 -------------------- - -UI, Workflows & Features - - * "diff" family of commands learned "--find-object=<object-id>" option - to limit the findings to changes that involve the named object. - - * "git format-patch" learned to give 72-cols to diffstat, which is - consistent with other line length limits the subcommand uses for - its output meant for e-mails. - - * The log from "git daemon" can be redirected with a new option; one - relevant use case is to send the log to standard error (instead of - syslog) when running it from inetd. - - * "git rebase" learned to take "--allow-empty-message" option. - - * "git am" has learned the "--quit" option, in addition to the - existing "--abort" option; having the pair mirrors a few other - commands like "rebase" and "cherry-pick". - - * "git worktree add" learned to run the post-checkout hook, just like - "git clone" runs it upon the initial checkout. - - * "git tag" learned an explicit "--edit" option that allows the - message given via "-m" and "-F" to be further edited. - - * "git fetch --prune-tags" may be used as a handy short-hand for - getting rid of stale tags that are locally held. - - * The new "--show-current-patch" option gives an end-user facing way - to get the diff being applied when "git rebase" (and "git am") - stops with a conflict. - - * "git add -p" used to offer "/" (look for a matching hunk) as a - choice, even there was only one hunk, which has been corrected. - Also the single-key help is now given only for keys that are - enabled (e.g. help for '/' won't be shown when there is only one - hunk). - - * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when - the side branch being merged is a descendant of the current commit, - create a merge commit instead of fast-forwarding) when merging a - tag object. This was appropriate default for integrators who pull - signed tags from their downstream contributors, but caused an - unnecessary merges when used by downstream contributors who - habitually "catch up" their topic branches with tagged releases - from the upstream. Update "git merge" to default to --no-ff only - when merging a tag object that does *not* sit at its usual place in - refs/tags/ hierarchy, and allow fast-forwarding otherwise, to - mitigate the problem. - - * "git status" can spend a lot of cycles to compute the relation - between the current branch and its upstream, which can now be - disabled with "--no-ahead-behind" option. - - * "git diff" and friends learned funcname patterns for Go language - source files. - - * "git send-email" learned "--reply-to=<address>" option. - - * Funcname pattern used for C# now recognizes "async" keyword. - - * In a way similar to how "git tag" learned to honor the pager - setting only in the list mode, "git config" learned to ignore the - pager setting when it is used for setting values (i.e. when the - purpose of the operation is not to "show"). - - -Performance, Internal Implementation, Development Support etc. - - * More perf tests for threaded grep - - * "perf" test output can be sent to codespeed server. - - * The build procedure for perl/ part has been greatly simplified by - weaning ourselves off of MakeMaker. - - * Perl 5.8 or greater has been required since Git 1.7.4 released in - 2010, but we continued to assume some core modules may not exist and - used a conditional "eval { require <<module>> }"; we no longer do - this. Some platforms (Fedora/RedHat/CentOS, for example) ship Perl - without all core modules by default (e.g. Digest::MD5, File::Temp, - File::Spec, Net::Domain, Net::SMTP). Users on such platforms may - need to install these additional modules. - - * As a convenience, we install copies of Perl modules we require which - are not part of the core Perl distribution (e.g. Error and - Mail::Address). Users and packagers whose operating system provides - these modules can set NO_PERL_CPAN_FALLBACKS to avoid installing the - bundled modules. - - * In preparation for implementing narrow/partial clone, the machinery - for checking object connectivity used by gc and fsck has been - taught that a missing object is OK when it is referenced by a - packfile specially marked as coming from trusted repository that - promises to make them available on-demand and lazily. - - * The machinery to clone & fetch, which in turn involves packing and - unpacking objects, has been told how to omit certain objects using - the filtering mechanism introduced by another topic. It now knows - to mark the resulting pack as a promisor pack to tolerate missing - objects, laying foundation for "narrow" clones. - - * The first step to getting rid of mru API and using the - doubly-linked list API directly instead. - - * Retire mru API as it does not give enough abstraction over - underlying list API to be worth it. - - * Rewrite two more "git submodule" subcommands in C. - - * The tracing machinery learned to report tweaking of environment - variables as well. - - * Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str) - - * Prevent "clang-format" from breaking line after function return type. - - * The sequencer infrastructure is shared across "git cherry-pick", - "git rebase -i", etc., and has always spawned "git commit" when it - needs to create a commit. It has been taught to do so internally, - when able, by reusing the codepath "git commit" itself uses, which - gives performance boost for a few tens of percents in some sample - scenarios. - - * Push the submodule version of collision-detecting SHA-1 hash - implementation a bit harder on builders. - - * Avoid mmapping small files while using packed refs (especially ones - with zero size, which would cause later munmap() to fail). - - * Conversion from uchar[20] to struct object_id continues. - - * More tests for wildmatch functions. - - * The code to binary search starting from a fan-out table (which is - how the packfile is indexed with object names) has been refactored - into a reusable helper. - - * We now avoid using identifiers that clash with C++ keywords. Even - though it is not a goal to compile Git with C++ compilers, changes - like this help use of code analysis tools that targets C++ on our - codebase. - - * The executable is now built in 'script' phase in Travis CI integration, - to follow the established practice, rather than during 'before_script' - phase. This allows the CI categorize the failures better ('failed' - is project's fault, 'errored' is build environment's). - (merge 3c93b82920 sg/travis-build-during-script-phase later to maint). - - * Writing out the index file when the only thing that changed in it - is the untracked cache information is often wasteful, and this has - been optimized out. - - * Various pieces of Perl code we have have been cleaned up. - - * Internal API clean-up to allow write_locked_index() optionally skip - writing the in-core index when it is not modified. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.16 ------------------ - - * An old regression in "git describe --all $annotated_tag^0" has been - fixed. - - * "git status" after moving a path in the working tree (hence making - it appear "removed") and then adding with the -N option (hence - making that appear "added") detected it as a rename, but did not - report the old and new pathnames correctly. - - * "git svn dcommit" did not take into account the fact that a - svn+ssh:// URL with a username@ (typically used for pushing) refers - to the same SVN repository without the username@ and failed when - svn.pushmergeinfo option is set. - - * API clean-up around revision traversal. - - * "git merge -Xours/-Xtheirs" learned to use our/their version when - resolving a conflicting updates to a symbolic link. - - * "git clone $there $here" is allowed even when here directory exists - as long as it is an empty directory, but the command incorrectly - removed it upon a failure of the operation. - - * "git commit --fixup" did not allow "-m<message>" option to be used - at the same time; allow it to annotate resulting commit with more - text. - - * When resetting the working tree files recursively, the working tree - of submodules are now also reset to match. - - * "git stash -- <pathspec>" incorrectly blew away untracked files in - the directory that matched the pathspec, which has been corrected. - - * Instead of maintaining home-grown email address parsing code, ship - a copy of reasonably recent Mail::Address to be used as a fallback - in 'git send-email' when the platform lacks it. - (merge d60be8acab mm/send-email-fallback-to-local-mail-address later to maint). - - * "git add -p" was taught to ignore local changes to submodules as - they do not interfere with the partial addition of regular changes - anyway. - - * Avoid showing a warning message in the middle of a line of "git - diff" output. - (merge 4e056c989f nd/diff-flush-before-warning later to maint). - - * The http tracing code, often used to debug connection issues, - learned to redact potentially sensitive information from its output - so that it can be more safely shareable. - (merge 8ba18e6fa4 jt/http-redact-cookies later to maint). - - * Crash fix for a corner case where an error codepath tried to unlock - what it did not acquire lock on. - (merge 81fcb698e0 mr/packed-ref-store-fix later to maint). - - * The split-index mode had a few corner case bugs fixed. - (merge ae59a4e44f tg/split-index-fixes later to maint). - - * Assorted fixes to "git daemon". - (merge ed15e58efe jk/daemon-fixes later to maint). - - * Completion of "git merge -s<strategy>" (in contrib/) did not work - well in non-C locale. - (merge 7cc763aaa3 nd/list-merge-strategy later to maint). - - * Workaround for segfault with more recent versions of SVN. - (merge 7f6f75e97a ew/svn-branch-segfault-fix later to maint). - - * Plug recently introduced leaks in fsck. - (merge ba3a08ca0e jt/fsck-code-cleanup later to maint). - - * "git pull --rebase" did not pass verbosity setting down when - recursing into a submodule. - (merge a56771a668 sb/pull-rebase-submodule later to maint). - - * The way "git reset --hard" reports the commit the updated HEAD - points at is made consistent with the way how the commit title is - generated by the other parts of the system. This matters when the - title is spread across physically multiple lines. - (merge 1cf823fb68 tg/reset-hard-show-head-with-pretty later to maint). - - * Test fixes. - (merge 63b1a175ee sg/test-i18ngrep later to maint). - - * Some bugs around "untracked cache" feature have been fixed. This - will notice corrupt data in the untracked cache left by old and - buggy code and issue a warning---the index can be fixed by clearing - the untracked cache from it. - (merge 0cacebf099 nd/fix-untracked-cache-invalidation later to maint). - (merge 7bf0be7501 ab/untracked-cache-invalidation-docs later to maint). - - * "git blame HEAD COPYING" in a bare repository failed to run, while - "git blame HEAD -- COPYING" run just fine. This has been corrected. - - * "git add" files in the same directory, but spelling the directory - path in different cases on case insensitive filesystem, corrupted - the name hash data structure and led to unexpected results. This - has been corrected. - (merge c95525e90d bp/name-hash-dirname-fix later to maint). - - * "git rebase -p" mangled log messages of a merge commit, which is - now fixed. - (merge ed5144d7eb js/fix-merge-arg-quoting-in-rebase-p later to maint). - - * Some low level protocol codepath could crash when they get an - unexpected flush packet, which is now fixed. - (merge bb1356dc64 js/packet-read-line-check-null later to maint). - - * "git check-ignore" with multiple paths got confused when one is a - file and the other is a directory, which has been fixed. - (merge d60771e930 rs/check-ignore-multi later to maint). - - * "git describe $garbage" stopped giving any errors when the garbage - happens to be a string with 40 hexadecimal letters. - (merge a8e7a2bf0f sb/describe-blob later to maint). - - * Code to unquote single-quoted string (used in the parser for - configuration files, etc.) did not diagnose bogus input correctly - and produced bogus results instead. - (merge ddbbf8eb25 jk/sq-dequote-on-bogus-input later to maint). - - * Many places in "git apply" knew that "/dev/null" that signals - "there is no such file on this side of the diff" can be followed by - whitespace and garbage when parsing a patch, except for one, which - made an otherwise valid patch (e.g. ones from subversion) rejected. - (merge e454ad4bec tk/apply-dev-null-verify-name-fix later to maint). - - * We no longer create any *.spec file, so "make clean" should not - remove it. - (merge 4321bdcabb tz/do-not-clean-spec-file later to maint). - - * "git push" over http transport did not unquote the push-options - correctly. - (merge 90dce21eb0 jk/push-options-via-transport-fix later to maint). - - * "git send-email" learned to complain when the batch-size option is - not defined when the relogin-delay option is, since these two are - mutually required. - (merge 9caa70697b xz/send-email-batch-size later to maint). - - * Y2k20 fix ;-) for our perl scripts. - (merge a40e06ee33 bw/perl-timegm-timelocal-fix later to maint). - - * Threaded "git grep" has been optimized to avoid allocation in code - section that is covered under a mutex. - (merge 38ef24dccf rv/grep-cleanup later to maint). - - * "git subtree" script (in contrib/) scripted around "git log", whose - output got affected by end-user configuration like log.showsignature - (merge 8841b5222c sg/subtree-signed-commits later to maint). - - * While finding unique object name abbreviation, the code may - accidentally have read beyond the end of the array of object names - in a pack. - (merge 21abed500c ds/find-unique-abbrev-optim later to maint). - - * Micro optimization in revision traversal code. - (merge ebbed3ba04 ds/mark-parents-uninteresting-optim later to maint). - - * "git commit" used to run "gc --auto" near the end, which was lost - when the command was reimplemented in C by mistake. - (merge 095c741edd ab/gc-auto-in-commit later to maint). - - * Allow running a couple of tests with "sh -x". - (merge c20bf94abc sg/cvs-tests-with-x later to maint). - - * The codepath to replace an existing entry in the index had a bug in - updating the name hash structure, which has been fixed. - (merge 0e267b7a24 bp/refresh-cache-ent-rehash-fix later to maint). - - * The transfer.fsckobjects configuration tells "git fetch" to - validate the data and connected-ness of objects in the received - pack; the code to perform this check has been taught about the - narrow clone's convention that missing objects that are reachable - from objects in a pack that came from a promisor remote is OK. - - * There was an unused file-scope static variable left in http.c when - building for versions of libCURL that is older than 7.19.4, which - has been fixed. - (merge b8fd6008ec rj/http-code-cleanup later to maint). - - * Shell script portability fix. - (merge 206a6ae013 ml/filter-branch-portability-fix later to maint). - - * Other minor doc, test and build updates and code cleanups. - (merge e2a5a028c7 bw/oidmap-autoinit later to maint). - (merge ec3b4b06f8 cl/t9001-cleanup later to maint). - (merge e1b3f3dd38 ks/submodule-doc-updates later to maint). - (merge fbac558a9b rs/describe-unique-abbrev later to maint). - (merge 8462ff43e4 tb/crlf-conv-flags later to maint). - (merge 7d68bb0766 rb/hashmap-h-compilation-fix later to maint). - (merge 3449847168 cc/sha1-file-name later to maint). - (merge ad622a256f ds/use-get-be64 later to maint). - (merge f919ffebed sg/cocci-move-array later to maint). - (merge 4e801463c7 jc/mailinfo-cleanup-fix later to maint). - (merge ef5b3a6c5e nd/shared-index-fix later to maint). - (merge 9f5258cbb8 tz/doc-show-defaults-to-head later to maint). - (merge b780e4407d jc/worktree-add-short-help later to maint). - (merge ae239fc8e5 rs/cocci-strbuf-addf-to-addstr later to maint). - (merge 2e22a85e5c nd/ignore-glob-doc-update later to maint). - (merge 3738031581 jk/gettext-poison later to maint). - (merge 54360a1956 rj/sparse-updates later to maint). - (merge 12e31a6b12 sg/doc-test-must-fail-args later to maint). - (merge 760f1ad101 bc/doc-interpret-trailers-grammofix later to maint). - (merge 4ccf461f56 bp/fsmonitor later to maint). - (merge a6119f82b1 jk/test-hashmap-updates later to maint). - (merge 5aea9fe6cc rd/typofix later to maint). - (merge e4e5da2796 sb/status-doc-fix later to maint). - (merge 7976e901c8 gs/test-unset-xdg-cache-home later to maint). - (merge d023df1ee6 tg/worktree-create-tracking later to maint). - (merge 4cbe92fd41 sm/mv-dry-run-update later to maint). - (merge 75e5e9c3f7 sb/color-h-cleanup later to maint). - (merge 2708ef4af6 sg/t6300-modernize later to maint). - (merge d88e92d4e0 bw/doc-submodule-recurse-config-with-clone later to maint). - (merge f74bbc8dd2 jk/cached-commit-buffer later to maint). - (merge 1316416903 ms/non-ascii-ticks later to maint). - (merge 878056005e rs/strbuf-read-file-or-whine later to maint). - (merge 79f0ba1547 jk/strbuf-read-file-close-error later to maint). - (merge edfb8ba068 ot/ref-filter-cleanup later to maint). - (merge 11395a3b4b jc/test-must-be-empty later to maint). - (merge 768b9d6db7 mk/doc-pretty-fill later to maint). - (merge 2caa7b8d27 ab/man-sec-list later to maint). - (merge 40c17eb184 ks/t3200-typofix later to maint). - (merge bd9958c358 dp/merge-strategy-doc-fix later to maint). - (merge 9ee0540a40 js/ming-strftime later to maint). - (merge 1775e990f7 tz/complete-tag-delete-tagname later to maint). - (merge 00a4b03501 rj/warning-uninitialized-fix later to maint). - (merge b635ed97a0 jk/attributes-path-doc later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.17.1.txt b/third_party/git/Documentation/RelNotes/2.17.1.txt deleted file mode 100644 index e01384fe8e84..000000000000 --- a/third_party/git/Documentation/RelNotes/2.17.1.txt +++ /dev/null @@ -1,16 +0,0 @@ -Git v2.17.1 Release Notes -========================= - -Fixes since v2.17 ------------------ - - * This release contains the same fixes made in the v2.13.7 version of - Git, covering CVE-2018-11233 and 11235, and forward-ported to - v2.14.4, v2.15.2 and v2.16.4 releases. See release notes to - v2.13.7 for details. - - * In addition to the above fixes, this release has support on the - server side to reject pushes to repositories that attempt to create - such problematic .gitmodules file etc. as tracked contents, to help - hosting sites protect their customers by preventing malicious - contents from spreading. diff --git a/third_party/git/Documentation/RelNotes/2.17.2.txt b/third_party/git/Documentation/RelNotes/2.17.2.txt deleted file mode 100644 index ef021be8704f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.17.2.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.17.2 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.5 to address -the recently reported CVE-2018-17456; see the release notes for that -version for details. - -In addition, this release also teaches "fsck" and the server side -logic to reject pushes to repositories that attempt to create such a -problematic ".gitmodules" file as tracked contents, to help hosting -sites protect their customers by preventing malicious contents from -spreading. diff --git a/third_party/git/Documentation/RelNotes/2.17.3.txt b/third_party/git/Documentation/RelNotes/2.17.3.txt deleted file mode 100644 index 5a46c94271c8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.17.3.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.17.3 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6 and in -v2.15.4 addressing the security issues CVE-2019-1348, CVE-2019-1349, -CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, CVE-2019-1353, -CVE-2019-1354, and CVE-2019-1387; see the release notes for those -versions for details. - -In addition, `git fsck` was taught to identify `.gitmodules` entries -of the form `submodule.<name>.update=!command`, which have been -disallowed in v2.15.4. diff --git a/third_party/git/Documentation/RelNotes/2.17.4.txt b/third_party/git/Documentation/RelNotes/2.17.4.txt deleted file mode 100644 index 7d794ca01af2..000000000000 --- a/third_party/git/Documentation/RelNotes/2.17.4.txt +++ /dev/null @@ -1,16 +0,0 @@ -Git v2.17.4 Release Notes -========================= - -This release is to address the security issue: CVE-2020-5260 - -Fixes since v2.17.3 -------------------- - - * With a crafted URL that contains a newline in it, the credential - helper machinery can be fooled to give credential information for - a wrong host. The attack has been made impossible by forbidding - a newline character in any value passed via the credential - protocol. - -Credit for finding the vulnerability goes to Felix Wilhelm of Google -Project Zero. diff --git a/third_party/git/Documentation/RelNotes/2.17.5.txt b/third_party/git/Documentation/RelNotes/2.17.5.txt deleted file mode 100644 index 2abb821a7397..000000000000 --- a/third_party/git/Documentation/RelNotes/2.17.5.txt +++ /dev/null @@ -1,22 +0,0 @@ -Git v2.17.5 Release Notes -========================= - -This release is to address a security issue: CVE-2020-11008 - -Fixes since v2.17.4 -------------------- - - * With a crafted URL that contains a newline or empty host, or lacks - a scheme, the credential helper machinery can be fooled into - providing credential information that is not appropriate for the - protocol in use and host being contacted. - - Unlike the vulnerability CVE-2020-5260 fixed in v2.17.4, the - credentials are not for a host of the attacker's choosing; instead, - they are for some unspecified host (based on how the configured - credential helper handles an absent "host" parameter). - - The attack has been made impossible by refusing to work with - under-specified credential patterns. - -Credit for finding the vulnerability goes to Carlo Arenas. diff --git a/third_party/git/Documentation/RelNotes/2.18.0.txt b/third_party/git/Documentation/RelNotes/2.18.0.txt deleted file mode 100644 index 6c8a0e97c1a7..000000000000 --- a/third_party/git/Documentation/RelNotes/2.18.0.txt +++ /dev/null @@ -1,583 +0,0 @@ -Git 2.18 Release Notes -====================== - -Updates since v2.17 -------------------- - -UI, Workflows & Features - - * Rename detection logic that is used in "merge" and "cherry-pick" has - learned to guess when all of x/a, x/b and x/c have moved to z/a, - z/b and z/c, it is likely that x/d added in the meantime would also - want to move to z/d by taking the hint that the entire directory - 'x' moved to 'z'. A bug causing dirty files involved in a rename - to be overwritten during merge has also been fixed as part of this - work. Incidentally, this also avoids updating a file in the - working tree after a (non-trivial) merge whose result matches what - our side originally had. - - * "git filter-branch" learned to use a different exit code to allow - the callers to tell the case where there was no new commits to - rewrite from other error cases. - - * When built with more recent cURL, GIT_SSL_VERSION can now specify - "tlsv1.3" as its value. - - * "git gui" learned that "~/.ssh/id_ecdsa.pub" and - "~/.ssh/id_ed25519.pub" are also possible SSH key files. - (merge 2e2f0288ef bb/git-gui-ssh-key-files later to maint). - - * "git gui" performs commit upon CTRL/CMD+ENTER but the - CTRL/CMD+KP_ENTER (i.e. enter key on the numpad) did not have the - same key binding. It now does. - (merge 28a1d94a06 bp/git-gui-bind-kp-enter later to maint). - - * "git gui" has been taught to work with old versions of tk (like - 8.5.7) that do not support "ttk::style theme use" as a way to query - the current theme. - (merge 4891961105 cb/git-gui-ttk-style later to maint). - - * "git rebase" has learned to honor "--signoff" option when using - backends other than "am" (but not "--preserve-merges"). - - * "git branch --list" during an interrupted "rebase -i" now lets - users distinguish the case where a detached HEAD is being rebased - and a normal branch is being rebased. - - * "git mergetools" learned talking to guiffy. - - * The scripts in contrib/emacs/ have outlived their usefulness and - have been replaced with a stub that errors out and tells the user - there are replacements. - - * The new "working-tree-encoding" attribute can ask Git to convert the - contents to the specified encoding when checking out to the working - tree (and the other way around when checking in). - - * The "git config" command uses separate options e.g. "--int", - "--bool", etc. to specify what type the caller wants the value to - be interpreted as. A new "--type=<typename>" option has been - introduced, which would make it cleaner to define new types. - - * "git config --get" learned the "--default" option, to help the - calling script. Building on top of the above changes, the - "git config" learns "--type=color" type. Taken together, you can - do things like "git config --get foo.color --default blue" and get - the ANSI color sequence for the color given to foo.color variable, - or "blue" if the variable does not exist. - - * "git ls-remote" learned an option to allow sorting its output based - on the refnames being shown. - - * The command line completion (in contrib/) has been taught that "git - stash save" has been deprecated ("git stash push" is the preferred - spelling in the new world) and does not offer it as a possible - completion candidate when "git stash push" can be. - - * "git gc --prune=nonsense" spent long time repacking and then - silently failed when underlying "git prune --expire=nonsense" - failed to parse its command line. This has been corrected. - - * Error messages from "git push" can be painted for more visibility. - - * "git http-fetch" (deprecated) had an optional and experimental - "feature" to fetch only commits and/or trees, which nobody used. - This has been removed. - - * The functionality of "$GIT_DIR/info/grafts" has been superseded by - the "refs/replace/" mechanism for some time now, but the internal - code had support for it in many places, which has been cleaned up - in order to drop support of the "grafts" mechanism. - - * "git worktree add" learned to check out an existing branch. - - * "git --no-pager cmd" did not have short-and-sweet single letter - option. Now it does as "-P". - (merge 7213c28818 js/no-pager-shorthand later to maint). - - * "git rebase" learned "--rebase-merges" to transplant the whole - topology of commit graph elsewhere. - - * "git status" learned to pay attention to UI related diff - configuration variables such as diff.renames. - - * The command line completion mechanism (in contrib/) learned to load - custom completion file for "git $command" where $command is a - custom "git-$command" that the end user has on the $PATH when using - newer version of bash-completion. - - * "git send-email" can sometimes offer confirmation dialog "Send this - email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action - 'Edit' has been added to this dialog's choice. - - * With merge.renames configuration set to false, the recursive merge - strategy can be told not to spend cycles trying to find renamed - paths and merge them accordingly. - - * "git status" learned to honor a new status.renames configuration to - skip rename detection, which could be useful for those who want to - do so without disabling the default rename detection done by the - "git diff" command. - - * Command line completion (in contrib/) learned to complete pathnames - for various commands better. - - * "git blame" learns to unhighlight uninteresting metadata from the - originating commit on lines that are the same as the previous one, - and also paint lines in different colors depending on the age of - the commit. - - * Transfer protocol v2 learned to support the partial clone. - - * When a short hexadecimal string is used to name an object but there - are multiple objects that share the string as the prefix of their - names, the code lists these ambiguous candidates in a help message. - These object names are now sorted according to their types for - easier eyeballing. - - * "git fetch $there $refspec" that talks over protocol v2 can take - advantage of server-side ref filtering; the code has been extended - so that this mechanism triggers also when fetching with configured - refspec. - - * Our HTTP client code used to advertise that we accept gzip encoding - from the other side; instead, just let cURL library to advertise - and negotiate the best one. - - * "git p4" learned to "unshelve" shelved commit from P4. - (merge 123f631761 ld/p4-unshelve later to maint). - - -Performance, Internal Implementation, Development Support etc. - - * A "git fetch" from a repository with insane number of refs into a - repository that is already up-to-date still wasted too many cycles - making many lstat(2) calls to see if these objects at the tips - exist as loose objects locally. These lstat(2) calls are optimized - away by enumerating all loose objects beforehand. - It is unknown if the new strategy negatively affects existing use - cases, fetching into a repository with many loose objects from a - repository with small number of refs. - - * Git can be built to use either v1 or v2 of the PCRE library, and so - far, the build-time configuration USE_LIBPCRE=YesPlease instructed - the build procedure to use v1, but now it means v2. USE_LIBPCRE1 - and USE_LIBPCRE2 can be used to explicitly choose which version to - use, as before. - - * The build procedure learned to optionally use symbolic links - (instead of hardlinks and copies) to install "git-foo" for built-in - commands, whose binaries are all identical. - - * Conversion from uchar[20] to struct object_id continues. - - * The way "git worktree prune" worked internally has been simplified, - by assuming how "git worktree move" moves an existing worktree to a - different place. - - * Code clean-up for the "repository" abstraction. - (merge 00a3da2a13 nd/remove-ignore-env-field later to maint). - - * Code to find the length to uniquely abbreviate object names based - on packfile content, which is a relatively recent addition, has been - optimized to use the same fan-out table. - - * The mechanism to use parse-options API to automate the command line - completion continues to get extended and polished. - - * Copies of old scripted Porcelain commands in contrib/examples/ have - been removed. - - * Some tests that rely on the exact hardcoded values of object names - have been updated in preparation for hash function migration. - - * Perf-test update. - - * Test helper update. - - * The effort continues to refactor the internal global data structure - to make it possible to open multiple repositories, work with and - then close them, - - * Small test-helper programs have been consolidated into a single - binary. - - * API clean-up around ref-filter code. - - * Shell completion (in contrib) that gives list of paths have been - optimized somewhat. - - * The index file is updated to record the fsmonitor section after a - full scan was made, to avoid wasting the effort that has already - spent. - - * Performance measuring framework in t/perf learned to help bisecting - performance regressions. - - * Some multi-word source filenames are being renamed to separate - words with dashes instead of underscores. - - * An reusable "memory pool" implementation has been extracted from - fast-import.c, which in turn has become the first user of the - mem-pool API. - - * A build-time option has been added to allow Git to be told to refer - to its associated files relative to the main binary, in the same - way that has been possible on Windows for quite some time, for - Linux, BSDs and Darwin. - - * Precompute and store information necessary for ancestry traversal - in a separate file to optimize graph walking. - - * The effort to pass the repository in-core structure throughout the - API continues. This round deals with the code that implements the - refs/replace/ mechanism. - - * The build procedure "make DEVELOPER=YesPlease" learned to enable a - bit more warning options depending on the compiler used to help - developers more. There also is "make DEVOPTS=tokens" knob - available now, for those who want to help fixing warnings we - usually ignore, for example. - - * A new version of the transport protocol is being worked on. - - * The code to interface to GPG has been restructured somewhat to make - it cleaner to integrate with other types of signature systems later. - - * The code has been taught to use the duplicated information stored - in the commit-graph file to learn the tree object name for a commit - to avoid opening and parsing the commit object when it makes sense - to do so. - - * "git gc" in a large repository takes a lot of time as it considers - to repack all objects into one pack by default. The command has - been taught to pretend as if the largest existing packfile is - marked with ".keep" so that it is left untouched while objects in - other packs and loose ones are repacked. - - * The transport protocol v2 is getting updated further. - - * The codepath around object-info API has been taught to take the - repository object (which in turn tells the API which object store - the objects are to be located). - - * "git pack-objects" needs to allocate tons of "struct object_entry" - while doing its work, and shrinking its size helps the performance - quite a bit. - - * The implementation of "git rebase -i --root" has been updated to use - the sequencer machinery more. - - * Developer support update, by using BUG() macro instead of die() to - mark codepaths that should not happen more clearly. - - * Developer support. Use newer GCC on one of the builds done at - TravisCI.org to get more warnings and errors diagnosed. - - * Conversion from uchar[20] to struct object_id continues. - - * By code restructuring of submodule merge in merge-recursive, - informational messages from the codepath are now given using the - same mechanism as other output, and honor the merge.verbosity - configuration. The code also learned to give a few new messages - when a submodule three-way merge resolves cleanly when one side - records a descendant of the commit chosen by the other side. - - * Avoid unchecked snprintf() to make future code auditing easier. - (merge ac4896f007 jk/snprintf-truncation later to maint). - - * Many tests hardcode the raw object names, which would change once - we migrate away from SHA-1. While some of them must test against - exact object names, most of them do not have to use hardcoded - constants in the test. The latter kind of tests have been updated - to test the moral equivalent of the original without hardcoding the - actual object names. - - * The list of commands with their various attributes were spread - across a few places in the build procedure, but it now is getting a - bit more consolidated to allow more automation. - - * Quite a many tests assumed that newly created refs are made as - loose refs using the files backend, which have been updated to use - proper plumbing like rev-parse and update-ref, to avoid breakage - once we start using different ref backends. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.17 ------------------ - - * "git shortlog cruft" aborted with a BUG message when run outside a - Git repository. The command has been taught to complain about - extra and unwanted arguments on its command line instead in such a - case. - (merge 4aa0161e83 ma/shortlog-revparse later to maint). - - * "git stash push -u -- <pathspec>" gave an unnecessary and confusing - error message when there was no tracked files that match the - <pathspec>, which has been fixed. - (merge 353278687e tg/stash-untracked-with-pathspec-fix later to maint). - - * "git tag --contains no-such-commit" gave a full list of options - after giving an error message. - (merge 3bb0923f06 ps/contains-id-error-message later to maint). - - * "diff-highlight" filter (in contrib/) learned to understand "git log - --graph" output better. - (merge 4551fbba14 jk/diff-highlight-graph-fix later to maint). - - * when refs that do not point at committish are given, "git - filter-branch" gave a misleading error messages. This has been - corrected. - (merge f78ab355e7 yk/filter-branch-non-committish-refs later to maint). - - * "git submodule status" misbehaved on a submodule that has been - removed from the working tree. - (merge 74b6bda32f rs/status-with-removed-submodule later to maint). - - * When credential helper exits very quickly without reading its - input, it used to cause Git to die with SIGPIPE, which has been - fixed. - (merge a0d51e8d0e eb/cred-helper-ignore-sigpipe later to maint). - - * "git rebase --keep-empty" still removed an empty commit if the - other side contained an empty commit (due to the "does an - equivalent patch exist already?" check), which has been corrected. - (merge 3d946165e1 pw/rebase-keep-empty-fixes later to maint). - - * Some codepaths, including the refs API, get and keep relative - paths, that go out of sync when the process does chdir(2). The - chdir-notify API is introduced to let these codepaths adjust these - cached paths to the new current directory. - (merge fb9c2d2703 jk/relative-directory-fix later to maint). - - * "cd sub/dir && git commit ../path" ought to record the changes to - the file "sub/path", but this regressed long time ago. - (merge 86238e07ef bw/commit-partial-from-subdirectory-fix later to maint). - - * Recent introduction of "--log-destination" option to "git daemon" - did not work well when the daemon was run under "--inetd" mode. - (merge e67d906d73 lw/daemon-log-destination later to maint). - - * Small fix to the autoconf build procedure. - (merge 249482daf0 es/fread-reads-dir-autoconf-fix later to maint). - - * Fix an unexploitable (because the oversized contents are not under - attacker's control) buffer overflow. - (merge d8579accfa bp/fsmonitor-bufsize-fix later to maint). - - * Recent simplification of build procedure forgot a bit of tweak to - the build procedure of contrib/mw-to-git/ - (merge d8698987f3 ab/simplify-perl-makefile later to maint). - - * Moving a submodule that itself has submodule in it with "git mv" - forgot to make necessary adjustment to the nested sub-submodules; - now the codepath learned to recurse into the submodules. - - * "git config --unset a.b", when "a.b" is the last variable in an - otherwise empty section "a", left an empty section "a" behind, and - worse yet, a subsequent "git config a.c value" did not reuse that - empty shell and instead created a new one. These have been - (partially) corrected. - (merge c71d8bb38a js/empty-config-section-fix later to maint). - - * "git worktree remove" learned that "-f" is a shorthand for - "--force" option, just like for "git worktree add". - (merge d228eea514 sb/worktree-remove-opt-force later to maint). - - * The completion script (in contrib/) learned to clear cached list of - command line options upon dot-sourcing it again in a more efficient - way. - (merge 94408dc71c sg/completion-clear-cached later to maint). - - * "git svn" had a minor thinko/typo which has been fixed. - (merge 51db271587 ab/git-svn-get-record-typofix later to maint). - - * During a "rebase -i" session, the code could give older timestamp - to commits created by later "pick" than an earlier "reword", which - has been corrected. - (merge 12f7babd6b js/ident-date-fix later to maint). - - * "git submodule status" did not check the symbolic revision name it - computed for the submodule HEAD is not the NULL, and threw it at - printf routines, which has been corrected. - (merge 0b5e2ea7cf nd/submodule-status-fix later to maint). - - * When fed input that already has In-Reply-To: and/or References: - headers and told to add the same information, "git send-email" - added these headers separately, instead of appending to an existing - one, which is a violation of the RFC. This has been corrected. - (merge 256be1d3f0 sa/send-email-dedup-some-headers later to maint). - - * "git fast-export" had a regression in v2.15.0 era where it skipped - some merge commits in certain cases, which has been corrected. - (merge be011bbe00 ma/fast-export-skip-merge-fix later to maint). - - * The code did not propagate the terminal width to subprocesses via - COLUMNS environment variable, which it now does. This caused - trouble to "git column" helper subprocess when "git tag --column=row" - tried to list the existing tags on a display with non-default width. - (merge b5d5a567fb nd/term-columns later to maint). - - * We learned that our source files with ".pl" and ".py" extensions - are Perl and Python files respectively and changes to them are - better viewed as such with appropriate diff drivers. - (merge 7818b619e2 ab/perl-python-attrs later to maint). - - * "git rebase -i" sometimes left intermediate "# This is a - combination of N commits" message meant for the human consumption - inside an editor in the final result in certain corner cases, which - has been fixed. - (merge 15ef69314d js/rebase-i-clean-msg-after-fixup-continue later to maint). - - * A test to see if the filesystem normalizes UTF-8 filename has been - updated to check what we need to know in a more direct way, i.e. a - path created in NFC form can be accessed with NFD form (or vice - versa) to cope with APFS as well as HFS. - (merge 742ae10e35 tb/test-apfs-utf8-normalization later to maint). - - * "git format-patch --cover --attach" created a broken MIME multipart - message for the cover letter, which has been fixed by keeping the - cover letter as plain text file. - (merge 50cd54ef4e bc/format-patch-cover-no-attach later to maint). - - * The split-index feature had a long-standing and dormant bug in - certain use of the in-core merge machinery, which has been fixed. - (merge 7db118303a en/unpack-trees-split-index-fix later to maint). - - * Asciidoctor gives a reasonable imitation for AsciiDoc, but does not - render illustration in a literal block correctly when indented with - HT by default. The problem is fixed by forcing 8-space tabs. - (merge 379805051d bc/asciidoctor-tab-width later to maint). - - * Code clean-up to adjust to a more recent lockfile API convention that - allows lockfile instances kept on the stack. - (merge 0fa5a2ed8d ma/lockfile-cleanup later to maint). - - * the_repository->index is not a allocated piece of memory but - repo_clear() indiscriminately attempted to free(3) it, which has - been corrected. - (merge 74373b5f10 nd/repo-clear-keep-the-index later to maint). - - * Code clean-up to avoid non-standard-conformant pointer arithmetic. - (merge c112084af9 rs/no-null-ptr-arith-in-fast-export later to maint). - - * Code clean-up to turn history traversal more robust in a - semi-corrupt repository. - (merge 8702b30fd7 jk/unavailable-can-be-missing later to maint). - - * "git update-ref A B" is supposed to ensure that ref A does not yet - exist when B is a NULL OID, but this check was not done correctly - for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD. - - * "git submodule update" and "git submodule add" supported the - "--reference" option to borrow objects from a neighbouring local - repository like "git clone" does, but lacked the more recent - invention "--dissociate". Also "git submodule add" has been taught - to take the "--progress" option. - (merge a0ef29341a cf/submodule-progress-dissociate later to maint). - - * Update credential-netrc helper (in contrib/) to allow customizing - the GPG used to decrypt the encrypted .netrc file. - (merge 786ef50a23 lm/credential-netrc later to maint). - - * "git submodule update" attempts two different kinds of "git fetch" - against the upstream repository to grab a commit bound at the - submodule's path, but it incorrectly gave up if the first kind - (i.e. a normal fetch) failed, making the second "last resort" one - (i.e. fetching an exact commit object by object name) ineffective. - This has been corrected. - (merge e30d833671 sb/submodule-update-try-harder later to maint). - - * Error behaviour of "git grep" when it cannot read the index was - inconsistent with other commands that uses the index, which has - been corrected to error out early. - (merge b2aa84c789 sb/grep-die-on-unreadable-index later to maint). - - * We used to call regfree() after regcomp() failed in some codepaths, - which have been corrected. - (merge 17154b1576 ma/regex-no-regfree-after-comp-fail later to maint). - - * The import-tars script (in contrib/) has been taught to handle - tarballs with overly long paths that use PAX extended headers. - (merge 12ecea46e3 pa/import-tars-long-names later to maint). - - * "git rev-parse Y..." etc. misbehaved when given endpoints were - not committishes. - (merge 0ed556d38f en/rev-parse-invalid-range later to maint). - - * "git pull --recurse-submodules --rebase", when the submodule - repository's history did not have anything common between ours and - the upstream's, failed to execute. We need to fetch from them to - continue even in such a case. - (merge 4d36f88be7 jt/submodule-pull-recurse-rebase later to maint). - - * "git remote update" can take both a single remote nickname and a - nickname for remote groups, but only one of them was documented. - (merge a97447a42a nd/remote-update-doc later to maint). - - * "index-pack --strict" has been taught to make sure that it runs the - final object integrity checks after making the freshly indexed - packfile available to itself. - (merge 3737746120 jk/index-pack-maint later to maint). - - * Make zlib inflate codepath more robust against versions of zlib - that clobber unused portion of outbuf. - (merge b611396e97 jl/zlib-restore-nul-termination later to maint). - - * Fix old merge glitch in Documentation during v2.13-rc0 era. - (merge 28cb06020b mw/doc-merge-enumfix later to maint). - - * The code to read compressed bitmap was not careful to avoid reading - past the end of the file, which has been corrected. - (merge 1140bf01ec jk/ewah-bounds-check later to maint). - - * "make NO_ICONV=NoThanks" did not override NEEDS_LIBICONV - (i.e. linkage of -lintl, -liconv, etc. that are platform-specific - tweaks), which has been corrected. - (merge fdb1fbbc7d es/make-no-iconv later to maint). - - * Other minor doc, test and build updates and code cleanups. - (merge 248f66ed8e nd/trace-with-env later to maint). - (merge 14ced5562c ys/bisect-object-id-missing-conversion-fix later to maint). - (merge 5988eb631a ab/doc-hash-brokenness later to maint). - (merge a4d4e32a70 pk/test-avoid-pipe-hiding-exit-status later to maint). - (merge 05e293c1ac jk/flockfile-stdio later to maint). - (merge e9184b0789 jk/t5561-missing-curl later to maint). - (merge b1801b85a3 nd/worktree-move later to maint). - (merge bbd374dd20 ak/bisect-doc-typofix later to maint). - (merge 4855f06fb3 mn/send-email-credential-doc later to maint). - (merge 8523b1e355 en/doc-typoes later to maint). - (merge 43b44ccfe7 js/t5404-path-fix later to maint). - (merge decf711fc1 ps/test-chmtime-get later to maint). - (merge 22d11a6e8e es/worktree-docs later to maint). - (merge 92a5dbbc22 tg/use-git-contacts later to maint). - (merge adc887221f tq/t1510 later to maint). - (merge bed21a8ad6 sg/doc-gc-quote-mismatch-fix later to maint). - (merge 73364e4f10 tz/doc-git-urls-reference later to maint). - (merge cd1e606bad bc/mailmap-self later to maint). - (merge f7997e3682 ao/config-api-doc later to maint). - (merge ee930754d8 jk/apply-p-doc later to maint). - (merge 011b648646 nd/pack-format-doc later to maint). - (merge 87a6bb701a sg/t5310-jgit-bitmap-test later to maint). - (merge f6b82970aa sg/t5516-fixes later to maint). - (merge 4362da078e sg/t7005-spaces-in-filenames-cleanup later to maint). - (merge 7d0ee47c11 js/test-unset-prereq later to maint). - (merge 5356a3c354 ah/misc-doc-updates later to maint). - (merge 92c4a7a129 nd/completion-aliasfiletype-typofix later to maint). - (merge 58bd77b66a nd/pack-unreachable-objects-doc later to maint). - (merge 4ed79d5203 sg/t6500-no-redirect-of-stdin later to maint). - (merge 17b8a2d6cd jk/config-blob-sans-repo later to maint). - (merge 590551ca2c rd/tag-doc-lightweight later to maint). - (merge 44f560fc16 rd/init-typo later to maint). - (merge f156a0934a rd/p4-doc-markup-env later to maint). - (merge 2a00502b14 tg/doc-sec-list later to maint). - (merge 47cc91310a jk/submodule-fsck-loose-fixup later to maint). - (merge efde7b725c rd/comment-typofix-in-sha1-file later to maint). - (merge 7eedad15df rd/diff-options-typofix later to maint). - (merge 58ebd936cc km/doc-workflows-typofix later to maint). - (merge 30aa96cdf8 rd/doc-remote-tracking-with-hyphen later to maint). - (merge cf317877e3 ks/branch-set-upstream later to maint). - (merge 8de19d6be8 sg/t7406-chain-fix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.18.1.txt b/third_party/git/Documentation/RelNotes/2.18.1.txt deleted file mode 100644 index 2098cdd776f5..000000000000 --- a/third_party/git/Documentation/RelNotes/2.18.1.txt +++ /dev/null @@ -1,6 +0,0 @@ -Git v2.18.1 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.5 and in -v2.17.2 to address the recently reported CVE-2018-17456; see the -release notes for those versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.18.2.txt b/third_party/git/Documentation/RelNotes/2.18.2.txt deleted file mode 100644 index 98b168aade52..000000000000 --- a/third_party/git/Documentation/RelNotes/2.18.2.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v2.18.2 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6, v2.15.4 -and in v2.17.3, addressing the security issues CVE-2019-1348, -CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, -CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387; see the release notes -for those versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.18.3.txt b/third_party/git/Documentation/RelNotes/2.18.3.txt deleted file mode 100644 index 25143f0cec58..000000000000 --- a/third_party/git/Documentation/RelNotes/2.18.3.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.18.3 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.18.4.txt b/third_party/git/Documentation/RelNotes/2.18.4.txt deleted file mode 100644 index e8ef858a00a7..000000000000 --- a/third_party/git/Documentation/RelNotes/2.18.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.18.4 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.19.0.txt b/third_party/git/Documentation/RelNotes/2.19.0.txt deleted file mode 100644 index 891c79b9cb2b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.19.0.txt +++ /dev/null @@ -1,615 +0,0 @@ -Git 2.19 Release Notes -====================== - -Updates since v2.18 -------------------- - -UI, Workflows & Features - - * "git diff" compares the index and the working tree. For paths - added with intent-to-add bit, the command shows the full contents - of them as added, but the paths themselves were not marked as new - files. They are now shown as new by default. - - "git apply" learned the "--intent-to-add" option so that an - otherwise working-tree-only application of a patch will add new - paths to the index marked with the "intent-to-add" bit. - - * "git grep" learned the "--column" option that gives not just the - line number but the column number of the hit. - - * The "-l" option in "git branch -l" is an unfortunate short-hand for - "--create-reflog", but many users, both old and new, somehow expect - it to be something else, perhaps "--list". This step warns when "-l" - is used as a short-hand for "--create-reflog" and warns about the - future repurposing of the it when it is used. - - * The userdiff pattern for .php has been updated. - - * The content-transfer-encoding of the message "git send-email" sends - out by default was 8bit, which can cause trouble when there is an - overlong line to bust RFC 5322/2822 limit. A new option 'auto' to - automatically switch to quoted-printable when there is such a line - in the payload has been introduced and is made the default. - - * "git checkout" and "git worktree add" learned to honor - checkout.defaultRemote when auto-vivifying a local branch out of a - remote tracking branch in a repository with multiple remotes that - have tracking branches that share the same names. - (merge 8d7b558bae ab/checkout-default-remote later to maint). - - * "git grep" learned the "--only-matching" option. - - * "git rebase --rebase-merges" mode now handles octopus merges as - well. - - * Add a server-side knob to skip commits in exponential/fibbonacci - stride in an attempt to cover wider swath of history with a smaller - number of iterations, potentially accepting a larger packfile - transfer, instead of going back one commit a time during common - ancestor discovery during the "git fetch" transaction. - (merge 42cc7485a2 jt/fetch-negotiator-skipping later to maint). - - * A new configuration variable core.usereplacerefs has been added, - primarily to help server installations that want to ignore the - replace mechanism altogether. - - * Teach "git tag -s" etc. a few configuration variables (gpg.format - that can be set to "openpgp" or "x509", and gpg.<format>.program - that is used to specify what program to use to deal with the format) - to allow x.509 certs with CMS via "gpgsm" to be used instead of - openpgp via "gnupg". - - * Many more strings are prepared for l10n. - - * "git p4 submit" learns to ask its own pre-submit hook if it should - continue with submitting. - - * The test performed at the receiving end of "git push" to prevent - bad objects from entering repository can be customized via - receive.fsck.* configuration variables; we now have gained a - counterpart to do the same on the "git fetch" side, with - fetch.fsck.* configuration variables. - - * "git pull --rebase=interactive" learned "i" as a short-hand for - "interactive". - - * "git instaweb" has been adjusted to run better with newer Apache on - RedHat based distros. - - * "git range-diff" is a reimplementation of "git tbdiff" that lets us - compare individual patches in two iterations of a topic. - - * The sideband code learned to optionally paint selected keywords at - the beginning of incoming lines on the receiving end. - - * "git branch --list" learned to take the default sort order from the - 'branch.sort' configuration variable, just like "git tag --list" - pays attention to 'tag.sort'. - - * "git worktree" command learned "--quiet" option to make it less - verbose. - - -Performance, Internal Implementation, Development Support etc. - - * The bulk of "git submodule foreach" has been rewritten in C. - - * The in-core "commit" object had an all-purpose "void *util" field, - which was tricky to use especially in library-ish part of the - code. All of the existing uses of the field has been migrated to a - more dedicated "commit-slab" mechanism and the field is eliminated. - - * A less often used command "git show-index" has been modernized. - (merge fb3010c31f jk/show-index later to maint). - - * The conversion to pass "the_repository" and then "a_repository" - throughout the object access API continues. - - * Continuing with the idea to programmatically enumerate various - pieces of data required for command line completion, teach the - codebase to report the list of configuration variables - subcommands care about to help complete them. - - * Separate "rebase -p" codepath out of "rebase -i" implementation to - slim down the latter and make it easier to manage. - - * Make refspec parsing codepath more robust. - - * Some flaky tests have been fixed. - - * Continuing with the idea to programmatically enumerate various - pieces of data required for command line completion, the codebase - has been taught to enumerate options prefixed with "--no-" to - negate them. - - * Build and test procedure for netrc credential helper (in contrib/) - has been updated. - - * Remove unused function definitions and declarations from ewah - bitmap subsystem. - - * Code preparation to make "git p4" closer to be usable with Python 3. - - * Tighten the API to make it harder to misuse in-tree .gitmodules - file, even though it shares the same syntax with configuration - files, to read random configuration items from it. - - * "git fast-import" has been updated to avoid attempting to create - delta against a zero-byte-long string, which is pointless. - - * The codebase has been updated to compile cleanly with -pedantic - option. - (merge 2b647a05d7 bb/pedantic later to maint). - - * The character display width table has been updated to match the - latest Unicode standard. - (merge 570951eea2 bb/unicode-11-width later to maint). - - * test-lint now looks for broken use of "VAR=VAL shell_func" in test - scripts. - - * Conversion from uchar[40] to struct object_id continues. - - * Recent "security fix" to pay attention to contents of ".gitmodules" - while accepting "git push" was a bit overly strict than necessary, - which has been adjusted. - - * "git fsck" learns to make sure the optional commit-graph file is in - a sane state. - - * "git diff --color-moved" feature has further been tweaked. - - * Code restructuring and a small fix to transport protocol v2 during - fetching. - - * Parsing of -L[<N>][,[<M>]] parameters "git blame" and "git log" - take has been tweaked. - - * lookup_commit_reference() and friends have been updated to find - in-core object for a specific in-core repository instance. - - * Various glitches in the heuristics of merge-recursive strategy have - been documented in new tests. - - * "git fetch" learned a new option "--negotiation-tip" to limit the - set of commits it tells the other end as "have", to reduce wasted - bandwidth and cycles, which would be helpful when the receiving - repository has a lot of refs that have little to do with the - history at the remote it is fetching from. - - * For a large tree, the index needs to hold many cache entries - allocated on heap. These cache entries are now allocated out of a - dedicated memory pool to amortize malloc(3) overhead. - - * Tests to cover various conflicting cases have been added for - merge-recursive. - - * Tests to cover conflict cases that involve submodules have been - added for merge-recursive. - - * Look for broken "&&" chains that are hidden in subshell, many of - which have been found and corrected. - - * The singleton commit-graph in-core instance is made per in-core - repository instance. - - * "make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile - with -pedantic option, which may catch more problematic program - constructs and potential bugs. - - * Preparatory code to later add json output for telemetry data has - been added. - - * Update the way we use Coccinelle to find out-of-style code that - need to be modernised. - - * It is too easy to misuse system API functions such as strcat(); - these selected functions are now forbidden in this codebase and - will cause a compilation failure. - - * Add a script (in contrib/) to help users of VSCode work better with - our codebase. - - * The Travis CI scripts were taught to ship back the test data from - failed tests. - (merge aea8879a6a sg/travis-retrieve-trash-upon-failure later to maint). - - * The parse-options machinery learned to refrain from enclosing - placeholder string inside a "<bra" and "ket>" pair automatically - without PARSE_OPT_LITERAL_ARGHELP. Existing help text for option - arguments that are not formatted correctly have been identified and - fixed. - (merge 5f0df44cd7 rs/parse-opt-lithelp later to maint). - - * Noiseword "extern" has been removed from function decls in the - header files. - - * A few atoms like %(objecttype) and %(objectsize) in the format - specifier of "for-each-ref --format=<format>" can be filled without - getting the full contents of the object, but just with the object - header. These cases have been optimized by calling - oid_object_info() API (instead of reading and inspecting the data). - - * The end result of documentation update has been made to be - inspected more easily to help developers. - - * The API to iterate over all objects learned to optionally list - objects in the order they appear in packfiles, which helps locality - of access if the caller accesses these objects while as objects are - enumerated. - - * Improve built-in facility to catch broken &&-chain in the tests. - - * The more library-ish parts of the codebase learned to work on the - in-core index-state instance that is passed in by their callers, - instead of always working on the singleton "the_index" instance. - - * A test prerequisite defined by various test scripts with slightly - different semantics has been consolidated into a single copy and - made into a lazily defined one. - (merge 6ec633059a wc/make-funnynames-shared-lazy-prereq later to maint). - - * After a partial clone, repeated fetches from promisor remote would - have accumulated many packfiles marked with .promisor bit without - getting them coalesced into fewer packfiles, hurting performance. - "git repack" now learned to repack them. - - * Partially revert the support for multiple hash functions to regain - hash comparison performance; we'd think of a way to do this better - in the next cycle. - - * "git help --config" (which is used in command line completion) - missed the configuration variables not described in the main - config.txt file but are described in another file that is included - by it, which has been corrected. - - * The test linter code has learned that the end of here-doc mark - "EOF" can be quoted in a double-quote pair, not just in a - single-quote pair. - - -Fixes since v2.18 ------------------ - - * "git remote update" can take both a single remote nickname and a - nickname for remote groups, and the completion script (in contrib/) - has been taught about it. - (merge 9cd4382ad5 ls/complete-remote-update-names later to maint). - - * "git fetch --shallow-since=<cutoff>" that specifies the cut-off - point that is newer than the existing history used to end up - grabbing the entire history. Such a request now errors out. - (merge e34de73c56 nd/reject-empty-shallow-request later to maint). - - * Fix for 2.17-era regression around `core.safecrlf`. - (merge 6cb09125be as/safecrlf-quiet-fix later to maint). - - * The recent addition of "partial clone" experimental feature kicked - in when it shouldn't, namely, when there is no partial-clone filter - defined even if extensions.partialclone is set. - (merge cac1137dc4 jh/partial-clone later to maint). - - * "git send-pack --signed" (hence "git push --signed" over the http - transport) did not read user ident from the config mechanism to - determine whom to sign the push certificate as, which has been - corrected. - (merge d067d98887 ms/send-pack-honor-config later to maint). - - * "git fetch-pack --all" used to unnecessarily fail upon seeing an - annotated tag that points at an object other than a commit. - (merge c12c9df527 jk/fetch-all-peeled-fix later to maint). - - * When user edits the patch in "git add -p" and the user's editor is - set to strip trailing whitespaces indiscriminately, an empty line - that is unchanged in the patch would become completely empty - (instead of a line with a sole SP on it). The code introduced in - Git 2.17 timeframe failed to parse such a patch, but now it learned - to notice the situation and cope with it. - (merge f4d35a6b49 pw/add-p-recount later to maint). - - * The code to try seeing if a fetch is necessary in a submodule - during a fetch with --recurse-submodules got confused when the path - to the submodule was changed in the range of commits in the - superproject, sometimes showing "(null)". This has been corrected. - - * Bugfix for "rebase -i" corner case regression. - (merge a9279c6785 pw/rebase-i-keep-reword-after-conflict later to maint). - - * Recently added "--base" option to "git format-patch" command did - not correctly generate prereq patch ids. - (merge 15b76c1fb3 xy/format-patch-prereq-patch-id-fix later to maint). - - * POSIX portability fix in Makefile to fix a glitch introduced a few - releases ago. - (merge 6600054e9b dj/runtime-prefix later to maint). - - * "git filter-branch" when used with the "--state-branch" option - still attempted to rewrite the commits whose filtered result is - known from the previous attempt (which is recorded on the state - branch); the command has been corrected not to waste cycles doing - so. - (merge 709cfe848a mb/filter-branch-optim later to maint). - - * Clarify that setting core.ignoreCase to deviate from reality would - not turn a case-incapable filesystem into a case-capable one. - (merge 48294b512a ms/core-icase-doc later to maint). - - * "fsck.skipList" did not prevent a blob object listed there from - being inspected for is contents (e.g. we recently started to - inspect the contents of ".gitmodules" for certain malicious - patterns), which has been corrected. - (merge fb16287719 rj/submodule-fsck-skip later to maint). - - * "git checkout --recurse-submodules another-branch" did not report - in which submodule it failed to update the working tree, which - resulted in an unhelpful error message. - (merge ba95d4e4bd sb/submodule-move-head-error-msg later to maint). - - * "git rebase" behaved slightly differently depending on which one of - the three backends gets used; this has been documented and an - effort to make them more uniform has begun. - (merge b00bf1c9a8 en/rebase-consistency later to maint). - - * The "--ignore-case" option of "git for-each-ref" (and its friends) - did not work correctly, which has been fixed. - (merge e674eb2528 jk/for-each-ref-icase later to maint). - - * "git fetch" failed to correctly validate the set of objects it - received when making a shallow history deeper, which has been - corrected. - (merge cf1e7c0770 jt/connectivity-check-after-unshallow later to maint). - - * Partial clone support of "git clone" has been updated to correctly - validate the objects it receives from the other side. The server - side has been corrected to send objects that are directly - requested, even if they may match the filtering criteria (e.g. when - doing a "lazy blob" partial clone). - (merge a7e67c11b8 jt/partial-clone-fsck-connectivity later to maint). - - * Handling of an empty range by "git cherry-pick" was inconsistent - depending on how the range ended up to be empty, which has been - corrected. - (merge c5e358d073 jk/empty-pick-fix later to maint). - - * "git reset --merge" (hence "git merge ---abort") and "git reset --hard" - had trouble working correctly in a sparsely checked out working - tree after a conflict, which has been corrected. - (merge b33fdfc34c mk/merge-in-sparse-checkout later to maint). - - * Correct a broken use of "VAR=VAL shell_func" in a test. - (merge 650161a277 jc/t3404-one-shot-export-fix later to maint). - - * "git rev-parse ':/substring'" did not consider the history leading - only to HEAD when looking for a commit with the given substring, - when the HEAD is detached. This has been fixed. - (merge 6b3351e799 wc/find-commit-with-pattern-on-detached-head later to maint). - - * Build doc update for Windows. - (merge ede8d89bb1 nd/command-list later to maint). - - * core.commentchar is now honored when preparing the list of commits - to replay in "rebase -i". - - * "git pull --rebase" on a corrupt HEAD caused a segfault. In - general we substitute an empty tree object when running the in-core - equivalent of the diff-index command, and the codepath has been - corrected to do so as well to fix this issue. - (merge 3506dc9445 jk/has-uncommitted-changes-fix later to maint). - - * httpd tests saw occasional breakage due to the way its access log - gets inspected by the tests, which has been updated to make them - less flaky. - (merge e8b3b2e275 sg/httpd-test-unflake later to maint). - - * Tests to cover more D/F conflict cases have been added for - merge-recursive. - - * "git gc --auto" opens file descriptors for the packfiles before - spawning "git repack/prune", which would upset Windows that does - not want a process to work on a file that is open by another - process. The issue has been worked around. - (merge 12e73a3ce4 kg/gc-auto-windows-workaround later to maint). - - * The recursive merge strategy did not properly ensure there was no - change between HEAD and the index before performing its operation, - which has been corrected. - (merge 55f39cf755 en/dirty-merge-fixes later to maint). - - * "git rebase" started exporting GIT_DIR environment variable and - exposing it to hook scripts when part of it got rewritten in C. - Instead of matching the old scripted Porcelains' behaviour, - compensate by also exporting GIT_WORK_TREE environment as well to - lessen the damage. This can harm existing hooks that want to - operate on different repository, but the current behaviour is - already broken for them anyway. - (merge ab5e67d751 bc/sequencer-export-work-tree-as-well later to maint). - - * "git send-email" when using in a batched mode that limits the - number of messages sent in a single SMTP session lost the contents - of the variable used to choose between tls/ssl, unable to send the - second and later batches, which has been fixed. - (merge 636f3d7ac5 jm/send-email-tls-auth-on-batch later to maint). - - * The lazy clone support had a few places where missing but promised - objects were not correctly tolerated, which have been fixed. - - * One of the "diff --color-moved" mode "dimmed_zebra" that was named - in an unusual way has been deprecated and replaced by - "dimmed-zebra". - (merge e3f2f5f9cd es/diff-color-moved-fix later to maint). - - * The wire-protocol v2 relies on the client to send "ref prefixes" to - limit the bandwidth spent on the initial ref advertisement. "git - clone" when learned to speak v2 forgot to do so, which has been - corrected. - (merge 402c47d939 bw/clone-ref-prefixes later to maint). - - * "git diff --histogram" had a bad memory usage pattern, which has - been rearranged to reduce the peak usage. - (merge 79cb2ebb92 sb/histogram-less-memory later to maint). - - * Code clean-up to use size_t/ssize_t when they are the right type. - (merge 7726d360b5 jk/size-t later to maint). - - * The wire-protocol v2 relies on the client to send "ref prefixes" to - limit the bandwidth spent on the initial ref advertisement. "git - fetch $remote branch:branch" that asks tags that point into the - history leading to the "branch" automatically followed sent to - narrow prefix and broke the tag following, which has been fixed. - (merge 2b554353a5 jt/tag-following-with-proto-v2-fix later to maint). - - * When the sparse checkout feature is in use, "git cherry-pick" and - other mergy operations lost the skip_worktree bit when a path that - is excluded from checkout requires content level merge, which is - resolved as the same as the HEAD version, without materializing the - merge result in the working tree, which made the path appear as - deleted. This has been corrected by preserving the skip_worktree - bit (and not materializing the file in the working tree). - (merge 2b75fb601c en/merge-recursive-skip-fix later to maint). - - * The "author-script" file "git rebase -i" creates got broken when - we started to move the command away from shell script, which is - getting fixed now. - (merge 5522bbac20 es/rebase-i-author-script-fix later to maint). - - * The automatic tree-matching in "git merge -s subtree" was broken 5 - years ago and nobody has noticed since then, which is now fixed. - (merge 2ec4150713 jk/merge-subtree-heuristics later to maint). - - * "git fetch $there refs/heads/s" ought to fetch the tip of the - branch 's', but when "refs/heads/refs/heads/s", i.e. a branch whose - name is "refs/heads/s" exists at the same time, fetched that one - instead by mistake. This has been corrected to honor the usual - disambiguation rules for abbreviated refnames. - (merge 60650a48c0 jt/refspec-dwim-precedence-fix later to maint). - - * Futureproofing a helper function that can easily be misused. - (merge 65bb21e77e es/want-color-fd-defensive later to maint). - - * The http-backend (used for smart-http transport) used to slurp the - whole input until EOF, without paying attention to CONTENT_LENGTH - that is supplied in the environment and instead expecting the Web - server to close the input stream. This has been fixed. - (merge eebfe40962 mk/http-backend-content-length later to maint). - - * "git merge --abort" etc. did not clean things up properly when - there were conflicted entries in the index in certain order that - are involved in D/F conflicts. This has been corrected. - (merge ad3762042a en/abort-df-conflict-fixes later to maint). - - * "git diff --indent-heuristic" had a bad corner case performance. - (merge 301ef85401 sb/indent-heuristic-optim later to maint). - - * The "--exec" option to "git rebase --rebase-merges" placed the exec - commands at wrong places, which has been corrected. - - * "git verify-tag" and "git verify-commit" have been taught to use - the exit status of underlying "gpg --verify" to signal bad or - untrusted signature they found. - (merge 4e5dc9ca17 jc/gpg-status later to maint). - - * "git mergetool" stopped and gave an extra prompt to continue after - the last path has been handled, which did not make much sense. - (merge d651a54b8a ng/mergetool-lose-final-prompt later to maint). - - * Among the three codepaths we use O_APPEND to open a file for - appending, one used for writing GIT_TRACE output requires O_APPEND - implementation that behaves sensibly when multiple processes are - writing to the same file. POSIX emulation used in the Windows port - has been updated to improve in this area. - (merge d641097589 js/mingw-o-append later to maint). - - * "git pull --rebase -v" in a repository with a submodule barfed as - an intermediate process did not understand what "-v(erbose)" flag - meant, which has been fixed. - (merge e84c3cf3dc sb/pull-rebase-submodule later to maint). - - * Recent update to "git config" broke updating variable in a - subsection, which has been corrected. - (merge bff7df7a87 sb/config-write-fix later to maint). - - * When "git rebase -i" is told to squash two or more commits into - one, it labeled the log message for each commit with its number. - It correctly called the first one "1st commit", but the next one - was "commit #1", which was off-by-one. This has been corrected. - (merge dd2e36ebac pw/rebase-i-squash-number-fix later to maint). - - * "git rebase -i", when a 'merge <branch>' insn in its todo list - fails, segfaulted, which has been (minimally) corrected. - (merge bc9238bb09 pw/rebase-i-merge-segv-fix later to maint). - - * "git cherry-pick --quit" failed to remove CHERRY_PICK_HEAD even - though we won't be in a cherry-pick session after it returns, which - has been corrected. - (merge 3e7dd99208 nd/cherry-pick-quit-fix later to maint). - - * In a recent update in 2.18 era, "git pack-objects" started - producing a larger than necessary packfiles by missing - opportunities to use large deltas. This has been corrected. - - * The meaning of the possible values the "core.checkStat" - configuration variable can take were not adequately documented, - which has been fixed. - (merge 9bf5d4c4e2 nd/config-core-checkstat-doc later to maint). - - * Recent "git rebase -i" update started to write bogusly formatted - author-script, with a matching broken reading code. These are - fixed. - - * Recent addition of "directory rename" heuristics to the - merge-recursive backend makes the command susceptible to false - positives and false negatives. In the context of "git am -3", - which does not know about surrounding unmodified paths and thus - cannot inform the merge machinery about the full trees involved, - this risk is particularly severe. As such, the heuristic is - disabled for "git am -3" to keep the machinery "more stupid but - predictable". - - * "git merge-base" in 2.19-rc1 has performance regression when the - (experimental) commit-graph feature is in use, which has been - mitigated. - - * Code cleanup, docfix, build fix, etc. - (merge aee9be2ebe sg/update-ref-stdin-cleanup later to maint). - (merge 037714252f jc/clean-after-sanity-tests later to maint). - (merge 5b26c3c941 en/merge-recursive-cleanup later to maint). - (merge 0dcbc0392e bw/config-refer-to-gitsubmodules-doc later to maint). - (merge bb4d000e87 bw/protocol-v2 later to maint). - (merge 928f0ab4ba vs/typofixes later to maint). - (merge d7f590be84 en/rebase-i-microfixes later to maint). - (merge 81d395cc85 js/rebase-recreate-merge later to maint). - (merge 51d1863168 tz/exclude-doc-smallfixes later to maint). - (merge a9aa3c0927 ds/commit-graph later to maint). - (merge 5cf8e06474 js/enhanced-version-info later to maint). - (merge 6aaded5509 tb/config-default later to maint). - (merge 022d2ac1f3 sb/blame-color later to maint). - (merge 5a06a20e0c bp/test-drop-caches-for-windows later to maint). - (merge dd61cc1c2e jk/ui-color-always-to-auto later to maint). - (merge 1e83b9bfdd sb/trailers-docfix later to maint). - (merge ab29f1b329 sg/fast-import-dump-refs-on-checkpoint-fix later to maint). - (merge 6a8ad880f0 jn/subtree-test-fixes later to maint). - (merge ffbd51cc60 nd/pack-objects-threading-doc later to maint). - (merge e9dac7be60 es/mw-to-git-chain-fix later to maint). - (merge fe583c6c7a rs/remote-mv-leakfix later to maint). - (merge 69885ab015 en/t3031-title-fix later to maint). - (merge 8578037bed nd/config-blame-sort later to maint). - (merge 8ad169c4ba hn/config-in-code-comment later to maint). - (merge b7446fcfdf ar/t4150-am-scissors-test-fix later to maint). - (merge a8132410ee js/typofixes later to maint). - (merge 388d0ff6e5 en/update-index-doc later to maint). - (merge e05aa688dd jc/update-index-doc later to maint). - (merge 10c600172c sg/t5310-empty-input-fix later to maint). - (merge 5641eb9465 jh/partial-clone-doc later to maint). - (merge 2711b1ad5e ab/submodule-relative-url-tests later to maint). - (merge ce528de023 ab/unconditional-free-and-null later to maint). - (merge bbc072f5d8 rs/opt-updates later to maint). - (merge 69d846f053 jk/use-compat-util-in-test-tool later to maint). - (merge 1820703045 js/larger-timestamps later to maint). - (merge c8b35b95e1 sg/t4051-fix later to maint). - (merge 30612cb670 sg/t0020-conversion-fix later to maint). - (merge 15da753709 sg/t7501-thinkofix later to maint). - (merge 79b04f9b60 sg/t3903-missing-fix later to maint). - (merge 2745817028 sg/t3420-autostash-fix later to maint). - (merge 7afb0d6777 sg/test-rebase-editor-fix later to maint). - (merge 6c6ce21baa es/freebsd-iconv-portability later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.19.1.txt b/third_party/git/Documentation/RelNotes/2.19.1.txt deleted file mode 100644 index da7672674eb8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.19.1.txt +++ /dev/null @@ -1,6 +0,0 @@ -Git v2.19.1 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.5 and in -v2.17.2 to address the recently reported CVE-2018-17456; see the -release notes for those versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.19.2.txt b/third_party/git/Documentation/RelNotes/2.19.2.txt deleted file mode 100644 index 759e6ca95738..000000000000 --- a/third_party/git/Documentation/RelNotes/2.19.2.txt +++ /dev/null @@ -1,108 +0,0 @@ -Git v2.19.2 Release Notes -========================= - -Fixes since v2.19.1 -------------------- - - * "git interpret-trailers" and its underlying machinery had a buggy - code that attempted to ignore patch text after commit log message, - which triggered in various codepaths that will always get the log - message alone and never get such an input. - - * "git rebase -i" did not clear the state files correctly when a run - of "squash/fixup" is aborted and then the user manually amended the - commit instead, which has been corrected. - - * When fsmonitor is in use, after operation on submodules updates - .gitmodules, we lost track of the fact that we did so and relied on - stale fsmonitor data. - - * Fix for a long-standing bug that leaves the index file corrupt when - it shrinks during a partial commit. - - * Further fix for O_APPEND emulation on Windows - - * A corner case bugfix in "git rerere" code. - - * "git add ':(attr:foo)'" is not supported and is supposed to be - rejected while the command line arguments are parsed, but we fail - to reject such a command line upfront. - - * "git rebase" etc. in Git 2.19 fails to abort when given an empty - commit log message as result of editing, which has been corrected. - - * The code to backfill objects in lazily cloned repository did not - work correctly, which has been corrected. - - * Update error messages given by "git remote" and make them consistent. - - * "git update-ref" learned to make both "--no-deref" and "--stdin" - work at the same time. - - * Recently added "range-diff" had a corner-case bug to cause it - segfault, which has been corrected. - - * The recently introduced commit-graph auxiliary data is incompatible - with mechanisms such as replace & grafts that "breaks" immutable - nature of the object reference relationship. Disable optimizations - based on its use (and updating existing commit-graph) when these - incompatible features are in use in the repository. - - * The mailmap file update. - - * The code in "git status" sometimes hit an assertion failure. This - was caused by a structure that was reused without cleaning the data - used for the first run, which has been corrected. - - * A corner-case bugfix. - - * A partial clone that is configured to lazily fetch missing objects - will on-demand issue a "git fetch" request to the originating - repository to fill not-yet-obtained objects. The request has been - optimized for requesting a tree object (and not the leaf blob - objects contained in it) by telling the originating repository that - no blobs are needed. - - * The codepath to support the experimental split-index mode had - remaining "racily clean" issues fixed. - - * "git log --graph" showing an octopus merge sometimes miscounted the - number of display columns it is consuming to show the merge and its - parent commits, which has been corrected. - - * The implementation of run_command() API on the UNIX platforms had a - bug that caused a command not on $PATH to be found in the current - directory. - - * A mutex used in "git pack-objects" were not correctly initialized - and this caused "git repack" to dump core on Windows. - - * Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on - Windows would strip initial parts from the paths because they - were not recognized as absolute, which has been corrected. - - * The receive.denyCurrentBranch=updateInstead codepath kicked in even - when the push should have been rejected due to other reasons, such - as it does not fast-forward or the update-hook rejects it, which - has been corrected. - - * "git repack" in a shallow clone did not correctly update the - shallow points in the repository, leading to a repository that - does not pass fsck. - - * Operations on promisor objects make sense in the context of only a - small subset of the commands that internally use the revisions - machinery, but the "--exclude-promisor-objects" option were taken - and led to nonsense results by commands like "log", to which it - didn't make much sense. This has been corrected. - - * The "container" mode of TravisCI is going away. Our .travis.yml - file is getting prepared for the transition. - - * Our test scripts can now take the '-V' option as a synonym for the - '--verbose-log' option. - - * A regression in Git 2.12 era made "git fsck" fall into an infinite - loop while processing truncated loose objects. - -Also contains various documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.19.3.txt b/third_party/git/Documentation/RelNotes/2.19.3.txt deleted file mode 100644 index 92d7f89de68b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.19.3.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v2.19.3 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6, v2.15.4 -and in v2.17.3, addressing the security issues CVE-2019-1348, -CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, -CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387; see the release notes -for those versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.19.4.txt b/third_party/git/Documentation/RelNotes/2.19.4.txt deleted file mode 100644 index 35d0ae561b6f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.19.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.19.4 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.19.5.txt b/third_party/git/Documentation/RelNotes/2.19.5.txt deleted file mode 100644 index 18a4dcbfd6a7..000000000000 --- a/third_party/git/Documentation/RelNotes/2.19.5.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.19.5 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.2.0.txt b/third_party/git/Documentation/RelNotes/2.2.0.txt deleted file mode 100644 index e98ecbcff60a..000000000000 --- a/third_party/git/Documentation/RelNotes/2.2.0.txt +++ /dev/null @@ -1,313 +0,0 @@ -Git v2.2 Release Notes -====================== - -Updates since v2.1 ------------------- - -Ports - - * Building on older MacOS X systems automatically sets - the necessary NO_APPLE_COMMON_CRYPTO build-time option. - - * Building with NO_PTHREADS has been resurrected. - - * Compilation options have been updated a bit to better support the - z/OS port. - - -UI, Workflows & Features - - * "git archive" learned to filter what gets archived with a pathspec. - - * "git config --edit --global" starts from a skeletal per-user - configuration file contents, instead of a total blank, when the - user does not already have any global config. This immediately - reduces the need to later ask "Have you forgotten to set - core.user?", and we can add more to the template as we gain - more experience. - - * "git stash list -p" used to be almost always a no-op because each - stash entry is represented as a merge commit. It learned to show - the difference between the base commit version and the working tree - version, which is in line with what "git stash show" gives. - - * Sometimes users want to report a bug they experience on their - repository, but they are not at liberty to share the contents of - the repository. "fast-export" was taught an "--anonymize" option - to replace blob contents, names of people, paths and log - messages with bland and simple strings to help them. - - * "git difftool" learned an option to stop feeding paths to the - diff backend when it exits with a non-zero status. - - * "git grep" learned to paint (or not paint) partial matches on - context lines when showing "grep -C<num>" output in color. - - * "log --date=iso" uses a slight variant of the ISO 8601 format that is - more human readable. A new "--date=iso-strict" option gives - datetime output that conforms more strictly. - - * The logic "git prune" uses is more resilient against various corner - cases. - - * A broken reimplementation of Git could write an invalid index that - records both stage #0 and higher-stage entries for the same path. - We now notice and reject such an index, as there is no sensible - fallback (we do not know if the broken tool wanted to resolve and - forgot to remove the higher-stage entries, or if it wanted to unresolve - and forgot to remove the stage #0 entry). - - * The temporary files "git mergetool" uses are renamed to avoid too - many dots in them (e.g. a temporary file for "hello.c" used to be - named e.g. "hello.BASE.4321.c" but now uses underscore instead, - e.g. "hello_BASE_4321.c", to allow us to have multiple variants). - - * The temporary files "git mergetool" uses can be placed in a newly - created temporary directory, instead of the current directory, by - setting the mergetool.writeToTemp configuration variable. - - * "git mergetool" understands "--tool bc" now, as version 4 of - BeyondCompare can be driven the same way as its version 3 and it - feels awkward to say "--tool bc3" to run version 4. - - * The "pre-receive" and "post-receive" hooks are no longer required - to consume their input fully (not following this requirement used - to result in intermittent errors in "git push"). - - * The pretty-format specifier "%d", which expands to " (tagname)" - for a tagged commit, gained a cousin "%D" that just gives the - "tagname" without frills. - - * "git push" learned "--signed" push, that allows a push (i.e. - request to update the refs on the other side to point at a new - history, together with the transmission of necessary objects) to be - signed, so that it can be verified and audited, using the GPG - signature of the person who pushed, that the tips of branches at a - public repository really point the commits the pusher wanted to, - without having to "trust" the server. - - * "git interpret-trailers" is a new filter to programmatically edit - the tail end of the commit log messages, e.g. "Signed-off-by:". - - * "git help everyday" shows the "Everyday Git in 20 commands or so" - document, whose contents have been updated to match more modern - Git practice. - - * On the "git svn" front, work progresses to reduce memory consumption and - to improve handling of mergeinfo. - - -Performance, Internal Implementation, Development Support etc. - - * The API to manipulate the "refs" has been restructured to make it - more transactional, with the eventual goal to allow all-or-none - atomic updates and migrating the storage to something other than - the traditional filesystem based one (e.g. databases). - - * The lockfile API and its users have been cleaned up. - - * We no longer attempt to keep track of individual dependencies to - the header files in the build procedure, relying instead on automated - dependency generation support from modern compilers. - - * In tests, we have been using NOT_{MINGW,CYGWIN} test prerequisites - long before negated prerequisites e.g. !MINGW were invented. - The former has been converted to the latter to avoid confusion. - - * Optimized looking up a remote's configuration in a repository with very many - remotes defined. - - * There are cases where you lock and open to write a file, close it - to show the updated contents to an external processes, and then have - to update the file again while still holding the lock; now the - lockfile API has support for such an access pattern. - - * The API to allocate the structure to keep track of commit - decoration has been updated to make it less cumbersome to use. - - * An in-core caching layer to let us avoid reading the same - configuration files several times has been added. A few commands - have been converted to use this subsystem. - - * Various code paths have been cleaned up and simplified by using - the "strbuf", "starts_with()", and "skip_prefix()" APIs more. - - * A few codepaths that died when large blobs that would not fit in - core are involved in their operation have been taught to punt - instead, by e.g. marking a too-large blob as not to be diffed. - - * A few more code paths in "commit" and "checkout" have been taught - to repopulate the cache-tree in the index, to help speed up later - "write-tree" (used in "commit") and "diff-index --cached" (used in - "status"). - - * A common programming mistake to assign the same short option name - to two separate options is detected by the parse_options() API to help - developers. - - * The code path to write out the packed-refs file has been optimized, - which especially matters in a repository with a large number of - refs. - - * The check to see if a ref $F can be created by making sure no - existing ref has $F/ as its prefix has been optimized, which - especially matters in a repository with a large number of existing - refs. - - * "git fsck" was taught to check the contents of tag objects a bit more. - - * "git hash-object" was taught a "--literally" option to help - debugging. - - * When running a required clean filter, we do not have to mmap the - original before feeding the filter. Instead, stream the file - contents directly to the filter and process its output. - - * The scripts in the test suite can be run with the "-x" option to show - a shell-trace of each command they run. - - * The "run-command" API learned to manage the argv and environment - arrays for child process, alleviating the need for the callers to - allocate and deallocate them. - - * Some people use AsciiDoctor, instead of AsciiDoc, to format our - documentation set; the documentation has been adjusted to be usable - by both, as AsciiDoctor is pickier than AsciiDoc about its input - mark-up. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.1 ----------------- - -Unless otherwise noted, all the fixes since v2.1 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git log --pretty/format=" with an empty format string did not - mean the more obvious "No output whatsoever" but "Use default - format", which was counterintuitive. - - * "git -c section.var command" and "git -c section.var= command" - should pass the configuration value differently (the former should be a - boolean true, the latter should be an empty string). - - * Applying a patch not generated by Git in a subdirectory used to - check for whitespace breakage using the attributes of incorrect - paths. Also whitespace checks were performed even for paths - excluded via the "git apply --exclude=<path>" mechanism. - - * "git bundle create" with a date-range specification was meant to - exclude tags outside the range, but it didn't. - - * "git add x" where x used to be a directory and is now a - symbolic link to a directory misbehaved. - - * The prompt script checked the $GIT_DIR/ref/stash file to see if there - is a stash, which was a no-no. - - * Pack-protocol documentation had a minor typo. - - * "git checkout -m" did not switch to another branch while carrying - the local changes forward when a path was deleted from the index. - - * "git daemon" (with NO_IPV6 build configuration) used to incorrectly - use the hostname even when gethostbyname() reported that the given - hostname is not found. - (merge 107efbe rs/daemon-fixes later to maint). - - * With sufficiently long refnames, "git fast-import" could have - overflowed an on-stack buffer. - - * After "pack-refs --prune" packed refs at the top-level, it failed - to prune them. - - * Progress output from "git gc --auto" was visible in "git fetch -q". - - * We used to pass -1000 to poll(2), expecting it to also mean "no - timeout", which should be spelled as -1. - - * "git rebase" documentation was unclear that it is required to - specify on what <upstream> the rebase is to be done when telling it - to first check out <branch>. - (merge 95c6826 so/rebase-doc later to maint). - - * "git push" over HTTP transport had an artificial limit on the number of - refs that can be pushed, imposed by the command line length. - (merge 26be19b jk/send-pack-many-refspecs later to maint). - - * When receiving an invalid pack stream that records the same object - twice, multiple threads got confused due to a race. - (merge ab791dd jk/index-pack-threading-races later to maint). - - * An attempt to remove the entire tree in the "git fast-import" input - stream caused it to misbehave. - (merge 2668d69 mb/fast-import-delete-root later to maint). - - * Reachability check (used in "git prune" and friends) did not add a - detached HEAD as a starting point to traverse objects still in use. - (merge c40fdd0 mk/reachable-protect-detached-head later to maint). - - * "git config --add section.var val" when section.var already has an - empty-string value used to lose the empty-string value. - (merge c1063be ta/config-add-to-empty-or-true-fix later to maint). - - * "git fsck" failed to report that it found corrupt objects via its - exit status in some cases. - (merge 30d1038 jk/fsck-exit-code-fix later to maint). - - * Use of the "--verbose" option used to break "git branch --merged". - (merge 12994dd jk/maint-branch-verbose-merged later to maint). - - * Some MUAs mangle a line in a message that begins with "From " to - ">From " when writing to a mailbox file, and feeding such an input - to "git am" used to lose such a line. - (merge 85de86a jk/mbox-from-line later to maint). - - * "rev-parse --verify --quiet $name" is meant to quietly exit with a - non-zero status when $name is not a valid object name, but still - gave error messages in some cases. - - * A handful of C source files have been updated to include - "git-compat-util.h" as the first thing, to conform better to our - coding guidelines. - (merge 1c4b660 da/include-compat-util-first-in-c later to maint). - - * The t7004 test, which tried to run Git with small stack space, has been - updated to use a bit larger stack to avoid false breakage on some - platforms. - (merge b9a1907 sk/tag-contains-wo-recursion later to maint). - - * A few documentation pages had example sections marked up not quite - correctly, which passed AsciiDoc but failed with AsciiDoctor. - (merge c30c43c bc/asciidoc-pretty-formats-fix later to maint). - (merge f8a48af bc/asciidoc later to maint). - - * "gitweb" used deprecated CGI::startfrom, which was removed from - CGI.pm as of 4.04; use CGI::start_from instead. - (merge 4750f4b rm/gitweb-start-form later to maint). - - * Newer versions of 'meld' break the auto-detection we use to see if - they are new enough to support the `--output` option. - (merge b12d045 da/mergetool-meld later to maint). - - * "git pack-objects" forgot to disable the codepath to generate the - object reachability bitmap when it needs to split the resulting - pack. - (merge 2113471 jk/pack-objects-no-bitmap-when-splitting later to maint). - - * The code to use cache-tree trusted the on-disk data too much and - fell into an infinite loop upon seeing an incorrectly recorded - index file. - (merge 729dbbd jk/cache-tree-protect-from-broken-libgit2 later to maint). - - * "git fetch" into a repository where branch B was deleted earlier, - back when it had reflog enabled, and then branch B/C is fetched - into it without reflog enabled, which is arguably an unlikely - corner case, unnecessarily failed. - (merge aae828b jk/fetch-reflog-df-conflict later to maint). - - * "git log --first-parent -L..." used to crash. - (merge a8787c5 tm/line-log-first-parent later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.2.1.txt b/third_party/git/Documentation/RelNotes/2.2.1.txt deleted file mode 100644 index d5a3cd9e7312..000000000000 --- a/third_party/git/Documentation/RelNotes/2.2.1.txt +++ /dev/null @@ -1,34 +0,0 @@ -Git v2.2.1 Release Notes -======================== - -Fixes since v2.2 ----------------- - - * We used to allow committing a path ".Git/config" with Git that is - running on a case sensitive filesystem, but an attempt to check out - such a path with Git that runs on a case insensitive filesystem - would have clobbered ".git/config", which is definitely not what - the user would have expected. Git now prevents you from tracking - a path with ".Git" (in any case combination) as a path component. - - * On Windows, certain path components that are different from ".git" - are mapped to ".git", e.g. "git~1/config" is treated as if it were - ".git/config". HFS+ has a similar issue, where certain unicode - codepoints are ignored, e.g. ".g\u200cit/config" is treated as if - it were ".git/config". Pathnames with these potential issues are - rejected on the affected systems. Git on systems that are not - affected by this issue (e.g. Linux) can also be configured to - reject them to ensure cross platform interoperability of the hosted - projects. - - * "git fsck" notices a tree object that records such a path that can - be confused with ".git", and with receive.fsckObjects configuration - set to true, an attempt to "git push" such a tree object will be - rejected. Such a path may not be a problem on a well behaving - filesystem but in order to protect those on HFS+ and on case - insensitive filesystems, this check is enabled on all platforms. - -A big "thanks!" for bringing this issue to us goes to our friends in -the Mercurial land, namely, Matt Mackall and Augie Fackler. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.2.2.txt b/third_party/git/Documentation/RelNotes/2.2.2.txt deleted file mode 100644 index b19a35d94f68..000000000000 --- a/third_party/git/Documentation/RelNotes/2.2.2.txt +++ /dev/null @@ -1,63 +0,0 @@ -Git v2.2.2 Release Notes -======================== - -Fixes since v2.2.1 ------------------- - - * "git checkout $treeish $path", when $path in the index and the - working tree already matched what is in $treeish at the $path, - still overwrote the $path unnecessarily. - - * "git config --get-color" did not parse its command line arguments - carefully. - - * open() emulated on Windows platforms did not give EISDIR upon - an attempt to open a directory for writing. - - * A few code paths used abs() when they should have used labs() on - long integers. - - * "gitweb" used to depend on a behaviour recent CGI.pm deprecated. - - * "git init" (hence "git clone") initialized the per-repository - configuration file .git/config with x-bit by mistake. - - * Git 2.0 was supposed to make the "simple" mode for the default of - "git push", but it didn't. - - * "Everyday" document had a broken link. - - * The build procedure did not bother fixing perl and python scripts - when NO_PERL and NO_PYTHON build-time configuration changed. - - * The code that reads the reflog from the newer to the older entries - did not handle an entry that crosses a boundary of block it uses to - read them correctly. - - * "git apply" was described in the documentation to take --ignore-date - option, which it does not. - - * Traditionally we tried to avoid interpreting date strings given by - the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when - used early November 2014 was taken as "October 12, 2014" because it - is likely that a date in the future, December 10, is a mistake. - This heuristics has been loosened to allow people to express future - dates (most notably, --until=<date> may want to be far in the - future) and we no longer tiebreak by future-ness of the date when - - (1) ISO-like format is used, and - (2) the string can make sense interpreted as both y-m-d and y-d-m. - - Git may still have to use the heuristics to tiebreak between dd/mm/yy - and mm/dd/yy, though. - - * The code to abbreviate an object name to its short unique prefix - has been optimized when no abbreviation was requested. - - * "git add --ignore-errors ..." did not ignore an error to - give a file that did not exist. - - * Git did not correctly read an overlong refname from a packed refs - file. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.2.3.txt b/third_party/git/Documentation/RelNotes/2.2.3.txt deleted file mode 100644 index 5bfffa41060f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.2.3.txt +++ /dev/null @@ -1,9 +0,0 @@ -Git v2.2.3 Release Notes -======================== - -Fixes since v2.2.2 ------------------- - - * A handful of codepaths that used to use fixed-sized arrays to hold - pathnames have been corrected to use strbuf and other mechanisms to - allow longer pathnames without fearing overflows. diff --git a/third_party/git/Documentation/RelNotes/2.20.0.txt b/third_party/git/Documentation/RelNotes/2.20.0.txt deleted file mode 100644 index 3dd7e6e1fcf9..000000000000 --- a/third_party/git/Documentation/RelNotes/2.20.0.txt +++ /dev/null @@ -1,700 +0,0 @@ -Git 2.20 Release Notes -====================== - -Backward Compatibility Notes ----------------------------- - - * "git branch -l <foo>" used to be a way to ask a reflog to be - created while creating a new branch, but that is no longer the - case. It is a short-hand for "git branch --list <foo>" now. - - * "git push" into refs/tags/* hierarchy is rejected without getting - forced, but "git fetch" (misguidedly) used the "fast forwarding" - rule used for the refs/heads/* hierarchy; this has been corrected, - which means some fetches of tags that did not fail with older - version of Git will fail without "--force" with this version. - - * "git help -a" now gives verbose output (same as "git help -av"). - Those who want the old output may say "git help --no-verbose -a".. - - * "git cpn --help", when "cpn" is an alias to, say, "cherry-pick -n", - reported only the alias expansion of "cpn" in earlier versions of - Git. It now runs "git cherry-pick --help" to show the manual page - of the command, while sending the alias expansion to the standard - error stream. - - * "git send-email" learned to grab address-looking string on any - trailer whose name ends with "-by". This is a backward-incompatible - change. Adding "--suppress-cc=misc-by" on the command line, or - setting sendemail.suppresscc configuration variable to "misc-by", - can be used to disable this behaviour. - - -Updates since v2.19 -------------------- - -UI, Workflows & Features - - * Running "git clone" against a project that contain two files with - pathnames that differ only in cases on a case insensitive - filesystem would result in one of the files lost because the - underlying filesystem is incapable of holding both at the same - time. An attempt is made to detect such a case and warn. - - * "git checkout -b newbranch [HEAD]" should not have to do as much as - checking out a commit different from HEAD. An attempt is made to - optimize this special case. - - * "git rev-list --stdin </dev/null" used to be an error; it now shows - no output without an error. "git rev-list --stdin --default HEAD" - still falls back to the given default when nothing is given on the - standard input. - - * Lift code from GitHub to restrict delta computation so that an - object that exists in one fork is not made into a delta against - another object that does not appear in the same forked repository. - - * "git format-patch" learned new "--interdiff" and "--range-diff" - options to explain the difference between this version and the - previous attempt in the cover letter (or after the three-dashes as - a comment). - - * "git mailinfo" used in "git am" learned to make a best-effort - recovery of a patch corrupted by MUA that sends text/plain with - format=flawed option. - (merge 3aa4d81f88 rs/mailinfo-format-flowed later to maint). - - * The rules used by "git push" and "git fetch" to determine if a ref - can or cannot be updated were inconsistent; specifically, fetching - to update existing tags were allowed even though tags are supposed - to be unmoving anchoring points. "git fetch" was taught to forbid - updates to existing tags without the "--force" option. - - * "git multi-pack-index" learned to detect corruption in the .midx - file it uses, and this feature has been integrated into "git fsck". - - * Generation of (experimental) commit-graph files have so far been - fairly silent, even though it takes noticeable amount of time in a - meaningfully large repository. The users will now see progress - output. - - * The minimum version of Windows supported by Windows port of Git is - now set to Vista. - - * The completion script (in contrib/) learned to complete a handful of - options "git stash list" command takes. - - * The completion script (in contrib/) learned that "git fetch - --multiple" only takes remote names as arguments and no refspecs. - - * "git status" learns to show progress bar when refreshing the index - takes a long time. - (merge ae9af12287 nd/status-refresh-progress later to maint). - - * "git help -a" and "git help -av" give different pieces of - information, and generally the "verbose" version is more friendly - to the new users. "git help -a" by default now uses the more - verbose output (with "--no-verbose", you can go back to the - original). Also "git help -av" now lists aliases and external - commands, which it did not used to. - - * Unlike "grep", "git grep" by default recurses to the whole tree. - The command learned "git grep --recursive" option, so that "git - grep --no-recursive" can serve as a synonym to setting the - max-depth to 0. - - * When pushing into a repository that borrows its objects from an - alternate object store, "git receive-pack" that responds to the - push request on the other side lists the tips of refs in the - alternate to reduce the amount of objects transferred. This - sometimes is detrimental when the number of refs in the alternate - is absurdly large, in which case the bandwidth saved in potentially - fewer objects transferred is wasted in excessively large ref - advertisement. The alternate refs that are advertised are now - configurable with a pair of configuration variables. - - * "git cmd --help" when "cmd" is aliased used to only say "cmd is - aliased to ...". Now it shows that to the standard error stream - and runs "git $cmd --help" where $cmd is the first word of the - alias expansion. - - * The documentation of "git gc" has been updated to mention that it - is no longer limited to "pruning away cruft" but also updates - ancillary files like commit-graph as a part of repository - optimization. - - * "git p4 unshelve" improvements. - - * The logic to select the default user name and e-mail on Windows has - been improved. - (merge 501afcb8b0 js/mingw-default-ident later to maint). - - * The "rev-list --filter" feature learned to exclude all trees via - "tree:0" filter. - - * "git send-email" learned to grab address-looking string on any - trailer whose name ends with "-by"; --suppress-cc=misc-by on the - command line, or setting sendemail.suppresscc configuration - variable to "misc-by", can be used to disable this behaviour. - - * "git mergetool" learned to take the "--[no-]gui" option, just like - "git difftool" does. - - * "git rebase -i" learned a new insn, 'break', that the user can - insert in the to-do list. Upon hitting it, the command returns - control back to the user. - - * New "--pretty=format:" placeholders %GF and %GP that show the GPG - key fingerprints have been invented. - - * On platforms with recent cURL library, http.sslBackend configuration - variable can be used to choose a different SSL backend at runtime. - The Windows port uses this mechanism to switch between OpenSSL and - Secure Channel while talking over the HTTPS protocol. - - * "git send-email" learned to disable SMTP authentication via the - "--smtp-auth=none" option, even when the smtp username is given - (which turns the authentication on by default). - - * A fourth class of configuration files (in addition to the - traditional "system wide", "per user in the $HOME directory" and - "per repository in the $GIT_DIR/config") has been introduced so - that different worktrees that share the same repository (hence the - same $GIT_DIR/config file) can use different customization. - - * A pattern with '**' that does not have a slash on either side used - to be an invalid one, but the code now treats such double-asterisks - the same way as two normal asterisks that happen to be adjacent to - each other. - (merge e5bbe09e88 nd/wildmatch-double-asterisk later to maint). - - * The "--no-patch" option, which can be used to get a high-level - overview without the actual line-by-line patch difference shown, of - the "range-diff" command was earlier broken, which has been - corrected. - - * The recently merged "rebase in C" has an escape hatch to use the - scripted version when necessary, but it hasn't been documented, - which has been corrected. - - -Performance, Internal Implementation, Development Support etc. - - * Developer builds now use -Wunused-function compilation option. - - * One of our CI tests to run with "unusual/experimental/random" - settings now also uses commit-graph and midx. - - * When there are too many packfiles in a repository (which is not - recommended), looking up an object in these would require - consulting many pack .idx files; a new mechanism to have a single - file that consolidates all of these .idx files is introduced. - - * "git submodule update" is getting rewritten piece-by-piece into C. - - * The code for computing history reachability has been shuffled, - obtained a bunch of new tests to cover them, and then being - improved. - - * The unpack_trees() API used in checking out a branch and merging - walks one or more trees along with the index. When the cache-tree - in the index tells us that we are walking a tree whose flattened - contents is known (i.e. matches a span in the index), as linearly - scanning a span in the index is much more efficient than having to - open tree objects recursively and listing their entries, the walk - can be optimized, which has been done. - - * When creating a thin pack, which allows objects to be made into a - delta against another object that is not in the resulting pack but - is known to be present on the receiving end, the code learned to - take advantage of the reachability bitmap; this allows the server - to send a delta against a base beyond the "boundary" commit. - - * spatch transformation to replace boolean uses of !hashcmp() to - newly introduced oideq() is added, and applied, to regain - performance lost due to support of multiple hash algorithms. - - * Fix a bug in which the same path could be registered under multiple - worktree entries if the path was missing (for instance, was removed - manually). Also, as a convenience, expand the number of cases in - which --force is applicable. - - * Split Documentation/config.txt for easier maintenance. - (merge 6014363f0b nd/config-split later to maint). - - * Test helper binaries clean-up. - (merge c9a1f4161f nd/test-tool later to maint). - - * Various tests have been updated to make it easier to swap the - hash function used for object identification. - (merge ae0c89d41b bc/hash-independent-tests later to maint). - - * Update fsck.skipList implementation and documentation. - (merge 371a655074 ab/fsck-skiplist later to maint). - - * An alias that expands to another alias has so far been forbidden, - but now it is allowed to create such an alias. - - * Various test scripts have been updated for style and also correct - handling of exit status of various commands. - - * "gc --auto" ended up calling exit(-1) upon error, which has been - corrected to use exit(1). Also the error reporting behaviour when - daemonized has been updated to exit with zero status when stopping - due to a previously discovered error (which implies there is no - point running gc to improve the situation); we used to exit with - failure in such a case. - - * Various codepaths in the core-ish part learned to work on an - arbitrary in-core index structure, not necessarily the default - instance "the_index". - (merge b3c7eef9b0 nd/the-index later to maint). - - * Code clean-up in the internal machinery used by "git status" and - "git commit --dry-run". - (merge 73ba5d78b4 ss/wt-status-committable later to maint). - - * Some environment variables that control the runtime options of Git - used during tests are getting renamed for consistency. - (merge 4231d1ba99 bp/rename-test-env-var later to maint). - - * A pair of new extensions to the index file have been introduced. - They allow the index file to be read in parallel for performance. - - * The oidset API was built on top of the oidmap API which in turn is - on the hashmap API. Replace the implementation to build on top of - the khash API and gain performance. - - * Over some transports, fetching objects with an exact commit object - name can be done without first seeing the ref advertisements. The - code has been optimized to exploit this. - - * In a partial clone that will lazily be hydrated from the - originating repository, we generally want to avoid "does this - object exist (locally)?" on objects that we deliberately omitted - when we created the clone. The cache-tree codepath (which is used - to write a tree object out of the index) however insisted that the - object exists, even for paths that are outside of the partial - checkout area. The code has been updated to avoid such a check. - - * To help developers, an EditorConfig file that attempts to follow - the project convention has been added. - (merge b548d698a0 bc/editorconfig later to maint). - - * The result of coverage test can be combined with "git blame" to - check the test coverage of code introduced recently with a new - 'coverage-diff' tool (in contrib/). - (merge 783faedd65 ds/coverage-diff later to maint). - - * An experiment to fuzz test a few areas, hopefully we can gain more - coverage to various areas. - - * More codepaths are moving away from hardcoded hash sizes. - - * The way the Windows port figures out the current directory has been - improved. - - * The way DLLs are loaded on the Windows port has been improved. - - * Some tests have been reorganized and renamed; "ls t/" now gives a - better overview of what is tested for these scripts than before. - - * "git rebase" and "git rebase -i" have been reimplemented in C. - - * Windows port learned to use nano-second resolution file timestamps. - - * The overly large Documentation/config.txt file have been split into - million little pieces. This potentially allows each individual piece - to be included into the manual page of the command it affects more easily. - - * Replace three string-list instances used as look-up tables in "git - fetch" with hashmaps. - - * Unify code to read the author-script used in "git am" and the - commands that use the sequencer machinery, e.g. "git rebase -i". - - * In preparation to the day when we can deprecate and remove the - "rebase -p", make sure we can skip and later remove tests for - it. - - * The history traversal used to implement the tag-following has been - optimized by introducing a new helper. - - * The helper function to refresh the cached stat information in the - in-core index has learned to perform the lstat() part of the - operation in parallel on multi-core platforms. - - * The code to traverse objects for reachability, used to decide what - objects are unreferenced and expendable, have been taught to also - consider per-worktree refs of other worktrees as starting points to - prevent data loss. - - * "git add" needs to internally run "diff-files" equivalent, and the - codepath learned the same optimization as "diff-files" has to run - lstat(2) in parallel to find which paths have been updated in the - working tree. - - * The procedure to install dependencies before testing at Travis CI - is getting revamped for both simplicity and flexibility, taking - advantage of the recent move to the vm-based environment. - - * The support for format-patch (and send-email) by the command-line - completion script (in contrib/) has been simplified a bit. - - * The revision walker machinery learned to take advantage of the - commit generation numbers stored in the commit-graph file. - - * The codebase has been cleaned up to reduce "#ifndef NO_PTHREADS". - - * The way -lcurl library gets linked has been simplified by taking - advantage of the fact that we can just ask curl-config command how. - - * Various functions have been audited for "-Wunused-parameter" warnings - and bugs in them got fixed. - - * A sanity check for start-up sequence has been added in the config - API codepath. - - * The build procedure to link for fuzzing test has been made - customizable with a new Makefile variable. - - * The way "git rebase" parses and forwards the command line options - meant for underlying "git am" has been revamped, which fixed for - options with parameters that were not passed correctly. - - * Our testing framework uses a special i18n "poisoned localization" - feature to find messages that ought to stay constant but are - incorrectly marked to be translated. This feature has been made - into a runtime option (it used to be a compile-time option). - - * "git push" used to check ambiguities between object-names and - refnames while processing the list of refs' old and new values, - which was unnecessary (as it knew that it is feeding raw object - names). This has been optimized out. - - * The xcurl_off_t() helper function is used to cast size_t to - curl_off_t, but some compilers gave warnings against the code to - ensure the casting is done without wraparound, when size_t is - narrower than curl_off_t. This warning has been squelched. - - * Code preparation to replace ulong vars with size_t vars where - appropriate continues. - - * The "test installed Git" mode of our test suite has been updated to - work better. - - * A coding convention around the Coccinelle semantic patches to have - two classes to ease code migration process has been proposed and - its support has been added to the Makefile. - - * The "container" mode of TravisCI is going away. Our .travis.yml - file is getting prepared for the transition. - (merge 32ee384be8 ss/travis-ci-force-vm-mode later to maint). - - * Our test scripts can now take the '-V' option as a synonym for the - '--verbose-log' option. - (merge a5f52c6dab sg/test-verbose-log later to maint). - - -Fixes since v2.19 ------------------ - - * "git interpret-trailers" and its underlying machinery had a buggy - code that attempted to ignore patch text after commit log message, - which triggered in various codepaths that will always get the log - message alone and never get such an input. - (merge 66e83d9b41 jk/trailer-fixes later to maint). - - * Malformed or crafted data in packstream can make our code attempt - to read or write past the allocated buffer and abort, instead of - reporting an error, which has been fixed. - - * "git rebase -i" did not clear the state files correctly when a run - of "squash/fixup" is aborted and then the user manually amended the - commit instead, which has been corrected. - (merge 10d2f35436 js/rebase-i-autosquash-fix later to maint). - - * When fsmonitor is in use, after operation on submodules updates - .gitmodules, we lost track of the fact that we did so and relied on - stale fsmonitor data. - (merge 43f1180814 bp/mv-submodules-with-fsmonitor later to maint). - - * Fix for a long-standing bug that leaves the index file corrupt when - it shrinks during a partial commit. - (merge 6c003d6ffb jk/reopen-tempfile-truncate later to maint). - - * Further fix for O_APPEND emulation on Windows - (merge eeaf7ddac7 js/mingw-o-append later to maint). - - * A corner case bugfix in "git rerere" code. - (merge ad2bf0d9b4 en/rerere-multi-stage-1-fix later to maint). - - * "git add ':(attr:foo)'" is not supported and is supposed to be - rejected while the command line arguments are parsed, but we fail - to reject such a command line upfront. - (merge 84d938b732 nd/attr-pathspec-fix later to maint). - - * Recent update broke the reachability algorithm when refs (e.g. - tags) that point at objects that are not commit were involved, - which has been fixed. - - * "git rebase" etc. in Git 2.19 fails to abort when given an empty - commit log message as result of editing, which has been corrected. - (merge a3ec9eaf38 en/sequencer-empty-edit-result-aborts later to maint). - - * The code to backfill objects in lazily cloned repository did not - work correctly, which has been corrected. - (merge e68302011c jt/lazy-object-fetch-fix later to maint). - - * Update error messages given by "git remote" and make them consistent. - (merge 5025425dff ms/remote-error-message-update later to maint). - - * "git update-ref" learned to make both "--no-deref" and "--stdin" - work at the same time. - (merge d345e9fbe7 en/update-ref-no-deref-stdin later to maint). - - * Recently added "range-diff" had a corner-case bug to cause it - segfault, which has been corrected. - (merge e467a90c7a tg/range-diff-corner-case-fix later to maint). - - * The recently introduced commit-graph auxiliary data is incompatible - with mechanisms such as replace & grafts that "breaks" immutable - nature of the object reference relationship. Disable optimizations - based on its use (and updating existing commit-graph) when these - incompatible features are in use in the repository. - (merge 829a321569 ds/commit-graph-with-grafts later to maint). - - * The mailmap file update. - (merge 255eb03edf jn/mailmap-update later to maint). - - * The code in "git status" sometimes hit an assertion failure. This - was caused by a structure that was reused without cleaning the data - used for the first run, which has been corrected. - (merge 3e73cc62c0 en/status-multiple-renames-to-the-same-target-fix later to maint). - - * "git fetch $repo $object" in a partial clone did not correctly - fetch the asked-for object that is referenced by an object in - promisor packfile, which has been fixed. - - * A corner-case bugfix. - (merge c5cbb27cb5 sm/show-superproject-while-conflicted later to maint). - - * Various fixes to "diff --color-moved-ws". - - * A partial clone that is configured to lazily fetch missing objects - will on-demand issue a "git fetch" request to the originating - repository to fill not-yet-obtained objects. The request has been - optimized for requesting a tree object (and not the leaf blob - objects contained in it) by telling the originating repository that - no blobs are needed. - (merge 4c7f9567ea jt/non-blob-lazy-fetch later to maint). - - * The codepath to support the experimental split-index mode had - remaining "racily clean" issues fixed. - (merge 4c490f3d32 sg/split-index-racefix later to maint). - - * "git log --graph" showing an octopus merge sometimes miscounted the - number of display columns it is consuming to show the merge and its - parent commits, which has been corrected. - (merge 04005834ed np/log-graph-octopus-fix later to maint). - - * "git range-diff" did not work well when the compared ranges had - changes in submodules and the "--submodule=log" was used. - - * The implementation of run_command() API on the UNIX platforms had a - bug that caused a command not on $PATH to be found in the current - directory. - (merge f67b980771 jk/run-command-notdot later to maint). - - * A mutex used in "git pack-objects" were not correctly initialized - and this caused "git repack" to dump core on Windows. - (merge 34204c8166 js/pack-objects-mutex-init-fix later to maint). - - * Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on - Windows would strip initial parts from the paths because they - were not recognized as absolute, which has been corrected. - (merge ffd04e92e2 js/diff-notice-has-drive-prefix later to maint). - - * The receive.denyCurrentBranch=updateInstead codepath kicked in even - when the push should have been rejected due to other reasons, such - as it does not fast-forward or the update-hook rejects it, which - has been corrected. - (merge b072a25fad jc/receive-deny-current-branch-fix later to maint). - - * The logic to determine the archive type "git archive" uses did not - correctly kick in for "git archive --remote", which has been - corrected. - - * "git repack" in a shallow clone did not correctly update the - shallow points in the repository, leading to a repository that - does not pass fsck. - (merge 5dcfbf564c js/shallow-and-fetch-prune later to maint). - - * Some codepaths failed to form a proper URL when .gitmodules record - the URL to a submodule repository as relative to the repository of - superproject, which has been corrected. - (merge e0a862fdaf sb/submodule-url-to-absolute later to maint). - - * "git fetch" over protocol v2 into a shallow repository failed to - fetch full history behind a new tip of history that was diverged - before the cut-off point of the history that was previously fetched - shallowly. - - * The command line completion machinery (in contrib/) has been - updated to allow the completion script to tweak the list of options - that are reported by the parse-options machinery correctly. - (merge 276b49ff34 nd/completion-negation later to maint). - - * Operations on promisor objects make sense in the context of only a - small subset of the commands that internally use the revisions - machinery, but the "--exclude-promisor-objects" option were taken - and led to nonsense results by commands like "log", to which it - didn't make much sense. This has been corrected. - (merge 669b1d2aae md/exclude-promisor-objects-fix later to maint). - - * A regression in Git 2.12 era made "git fsck" fall into an infinite - loop while processing truncated loose objects. - (merge 18ad13e5b2 jk/detect-truncated-zlib-input later to maint). - - * "git ls-remote $there foo" was broken by recent update for the - protocol v2 and stopped showing refs that match 'foo' that are not - refs/{heads,tags}/foo, which has been fixed. - (merge 6a139cdd74 jk/proto-v2-ref-prefix-fix later to maint). - - * Additional comment on a tricky piece of code to help developers. - (merge 0afbe3e806 jk/stream-pack-non-delta-clarification later to maint). - - * A couple of tests used to leave the repository in a state that is - deliberately corrupt, which have been corrected. - (merge aa984dbe5e ab/pack-tests-cleanup later to maint). - - * The submodule support has been updated to read from the blob at - HEAD:.gitmodules when the .gitmodules file is missing from the - working tree. - (merge 2b1257e463 ao/submodule-wo-gitmodules-checked-out later to maint). - - * "git fetch" was a bit loose in parsing responses from the other side - when talking over the protocol v2. - - * "git rev-parse --exclude=* --branches --branches" (i.e. first - saying "add only things that do not match '*' out of all branches" - and then adding all branches, without any exclusion this time) - worked as expected, but "--exclude=* --all --all" did not work the - same way, which has been fixed. - (merge 5221048092 ag/rev-parse-all-exclude-fix later to maint). - - * "git send-email --transfer-encoding=..." in recent versions of Git - sometimes produced an empty "Content-Transfer-Encoding:" header, - which has been corrected. - (merge 3c88e46f1a al/send-email-auto-cte-fixup later to maint). - - * The interface into "xdiff" library used to discover the offset and - size of a generated patch hunk by first formatting it into the - textual hunk header "@@ -n,m +k,l @@" and then parsing the numbers - out. A new interface has been introduced to allow callers a more - direct access to them. - (merge 5eade0746e jk/xdiff-interface later to maint). - - * Pathspec matching against a tree object were buggy when negative - pathspec elements were involved, which has been fixed. - (merge b7845cebc0 nd/tree-walk-path-exclusion later to maint). - - * "git merge" and "git pull" that merges into an unborn branch used - to completely ignore "--verify-signatures", which has been - corrected. - (merge 01a31f3bca jk/verify-sig-merge-into-void later to maint). - - * "git rebase --autostash" did not correctly re-attach the HEAD at times. - - * "rev-parse --exclude=<pattern> --branches=<pattern>" etc. did not - quite work, which has been corrected. - (merge 9ab9b5df0e ra/rev-parse-exclude-glob later to maint). - - * When editing a patch in a "git add -i" session, a hunk could be - made to no-op. The "git apply" program used to reject a patch with - such a no-op hunk to catch user mistakes, but it is now updated to - explicitly allow a no-op hunk in an edited patch. - (merge 22cb3835b9 js/apply-recount-allow-noop later to maint). - - * The URL to an MSDN page in a comment has been updated. - (merge 2ef2ae2917 js/mingw-msdn-url later to maint). - - * "git ls-remote --sort=<thing>" can feed an object that is not yet - available into the comparison machinery and segfault, which has - been corrected to check such a request upfront and reject it. - - * When "git bundle" aborts due to an empty commit ranges - (i.e. resulting in an empty pack), it left a file descriptor to an - lockfile open, which resulted in leftover lockfile on Windows where - you cannot remove a file with an open file descriptor. This has - been corrected. - (merge 2c8ee1f53c jk/close-duped-fd-before-unlock-for-bundle later to maint). - - * "git format-patch --stat=<width>" can be used to specify the width - used by the diffstat (shown in the cover letter). - (merge 284aeb7e60 nd/format-patch-cover-letter-stat-width later to maint). - - * The way .git/index and .git/sharedindex* files were initially - created gave these files different perm bits until they were - adjusted for shared repository settings. This was made consistent. - (merge c9d6c78870 cc/shared-index-permbits later to maint). - - * "git rebase --stat" to transplant a piece of history onto a totally - unrelated history were not working before and silently showed wrong - result. With the recent reimplementation in C, it started to instead - die with an error message, as the original logic was not prepared - to cope with this case. This has now been fixed. - - * The advice message to tell the user to migrate an existing graft - file to the replace system when a graft file was read was shown - even when "git replace --convert-graft-file" command, which is the - way the message suggests to use, was running, which made little - sense. - (merge 8821e90a09 ab/replace-graft-with-replace-advice later to maint). - - * "git diff --raw" lost ellipses to adjust the output columns for - some time now, but the documentation still showed them. - - * Code cleanup, docfix, build fix, etc. - (merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint). - (merge b9b07efdb2 tg/conflict-marker-size later to maint). - (merge fa0aeea770 sg/doc-trace-appends later to maint). - (merge d64324cb60 tb/void-check-attr later to maint). - (merge c3b9bc94b9 en/double-semicolon-fix later to maint). - (merge 79336116f5 sg/t3701-tighten-trace later to maint). - (merge 801fa63a90 jk/dev-build-format-security later to maint). - (merge 0597dd62ba sb/string-list-remove-unused later to maint). - (merge db2d36fad8 bw/protocol-v2 later to maint). - (merge 456d7cd3a9 sg/split-index-test later to maint). - (merge 7b6057c852 tq/refs-internal-comment-fix later to maint). - (merge 29e8dc50ad tg/t5551-with-curl-7.61.1 later to maint). - (merge 55f6bce2c9 fe/doc-updates later to maint). - (merge 7987d2232d jk/check-everything-connected-is-long-gone later to maint). - (merge 4ba3c9be47 dz/credential-doc-url-matching-rules later to maint). - (merge 4c399442f7 ma/commit-graph-docs later to maint). - (merge fc0503b04e ma/t1400-undebug-test later to maint). - (merge e56b53553a nd/packobjectshook-doc-fix later to maint). - (merge c56170a0c4 ma/mailing-list-address-in-git-help later to maint). - (merge 6e8fc70fce rs/sequencer-oidset-insert-avoids-dups later to maint). - (merge ad0b8f9575 mw/doc-typofixes later to maint). - (merge d9f079ad1a jc/how-to-document-api later to maint). - (merge b1492bf315 ma/t7005-bash-workaround later to maint). - (merge ac1f98a0df du/rev-parse-is-plumbing later to maint). - (merge ca8ed443a5 mm/doc-no-dashed-git later to maint). - (merge ce366a8144 du/get-tar-commit-id-is-plumbing later to maint). - (merge 61018fe9e0 du/cherry-is-plumbing later to maint). - (merge c7e5fe79b9 sb/strbuf-h-update later to maint). - (merge 8d2008196b tq/branch-create-wo-branch-get later to maint). - (merge 2e3c894f4b tq/branch-style-fix later to maint). - (merge c5d844af9c sg/doc-show-branch-typofix later to maint). - (merge 081d91618b ah/doc-updates later to maint). - (merge b84c783882 jc/cocci-preincr later to maint). - (merge 5e495f8122 uk/merge-subtree-doc-update later to maint). - (merge aaaa881822 jk/uploadpack-packobjectshook-fix later to maint). - (merge 3063477445 tb/char-may-be-unsigned later to maint). - (merge 8c64bc9420 sg/test-rebase-editor-fix later to maint). - (merge 71571cd7d6 ma/sequencer-do-reset-saner-loop-termination later to maint). - (merge 9a4cb8781e cb/notes-freeing-always-null-fix later to maint). - (merge 3006f5ee16 ma/reset-doc-rendering-fix later to maint). - (merge 4c2eb06419 sg/daemon-test-signal-fix later to maint). - (merge d27525e519 ss/msvc-strcasecmp later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.20.1.txt b/third_party/git/Documentation/RelNotes/2.20.1.txt deleted file mode 100644 index dcba888dba4d..000000000000 --- a/third_party/git/Documentation/RelNotes/2.20.1.txt +++ /dev/null @@ -1,20 +0,0 @@ -Git v2.20.1 Release Notes -========================= - -This release is primarily to fix brown-paper-bag breakages in the -2.20.0 release. - -Fixes since v2.20 ------------------ - - * A few newly added tests were not portable and caused minority - platforms to report false breakages, which have been fixed. - - * Portability fix for a recent update to parse-options API. - - * "git help -a" did not work well when an overly long alias is - defined, which has been corrected. - - * A recent update accidentally squelched an error message when the - run_command API failed to run a missing command, which has been - corrected. diff --git a/third_party/git/Documentation/RelNotes/2.20.2.txt b/third_party/git/Documentation/RelNotes/2.20.2.txt deleted file mode 100644 index 8e680cb9fbf4..000000000000 --- a/third_party/git/Documentation/RelNotes/2.20.2.txt +++ /dev/null @@ -1,18 +0,0 @@ -Git v2.20.2 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6, v2.15.4 -and in v2.17.3, addressing the security issues CVE-2019-1348, -CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, -CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387; see the release notes -for those versions for details. - -The change to disallow `submodule.<name>.update=!command` entries in -`.gitmodules` which was introduced v2.15.4 (and for which v2.17.3 -added explicit fsck checks) fixes the vulnerability in v2.20.x where a -recursive clone followed by a submodule update could execute code -contained within the repository without the user explicitly having -asked for that (CVE-2019-19604). - -Credit for finding this vulnerability goes to Joern Schneeweisz, -credit for the fixes goes to Jonathan Nieder. diff --git a/third_party/git/Documentation/RelNotes/2.20.3.txt b/third_party/git/Documentation/RelNotes/2.20.3.txt deleted file mode 100644 index f6eccd103b69..000000000000 --- a/third_party/git/Documentation/RelNotes/2.20.3.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.20.3 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.20.4.txt b/third_party/git/Documentation/RelNotes/2.20.4.txt deleted file mode 100644 index 5a9e24e4709c..000000000000 --- a/third_party/git/Documentation/RelNotes/2.20.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.20.4 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.21.0.txt b/third_party/git/Documentation/RelNotes/2.21.0.txt deleted file mode 100644 index 7a49deddf32a..000000000000 --- a/third_party/git/Documentation/RelNotes/2.21.0.txt +++ /dev/null @@ -1,451 +0,0 @@ -Git 2.21 Release Notes -====================== - -Backward Compatibility Notes ----------------------------- - - * Historically, the "-m" (mainline) option can only be used for "git - cherry-pick" and "git revert" when working with a merge commit. - This version of Git no longer warns or errors out when working with - a single-parent commit, as long as the argument to the "-m" option - is 1 (i.e. it has only one parent, and the request is to pick or - revert relative to that first parent). Scripts that relied on the - behaviour may get broken with this change. - - -Updates since v2.20 -------------------- - -UI, Workflows & Features - - * The "http.version" configuration variable can be used with recent - enough versions of cURL library to force the version of HTTP used - to talk when fetching and pushing. - - * Small fixes and features for fast-export and fast-import, mostly on - the fast-export side has been made. - - * "git push $there $src:$dst" rejects when $dst is not a fully - qualified refname and it is not clear what the end user meant. The - codepath has been taught to give a clearer error message, and also - guess where the push should go by taking the type of the pushed - object into account (e.g. a tag object would want to go under - refs/tags/). - - * "git checkout [<tree-ish>] path..." learned to report the number of - paths that have been checked out of the index or the tree-ish, - which gives it the same degree of noisy-ness as the case in which - the command checks out a branch. "git checkout -m <pathspec>" to - undo conflict resolution gives a similar message. - - * "git quiltimport" learned "--keep-non-patch" option. - - * "git worktree remove" and "git worktree move" refused to work when - there is a submodule involved. This has been loosened to ignore - uninitialized submodules. - - * "git cherry-pick -m1" was forbidden when picking a non-merge - commit, even though there _is_ parent number 1 for such a commit. - This was done to avoid mistakes back when "cherry-pick" was about - picking a single commit, but is no longer useful with "cherry-pick" - that can pick a range of commits. Now the "-m$num" option is - allowed when picking any commit, as long as $num names an existing - parent of the commit. - - * Update "git multimail" from the upstream. - - * "git p4" update. - - * The "--format=<placeholder>" option of for-each-ref, branch and tag - learned to show a few more traits of objects that can be learned by - the object_info API. - - * "git rebase -i" learned to re-execute a command given with 'exec' - to run after it failed the last time. - - * "git diff --color-moved-ws" updates. - - * Custom userformat "log --format" learned %S atom that stands for - the tip the traversal reached the commit from, i.e. --source. - - * "git instaweb" learned to drive http.server that comes with - "batteries included" Python installation (both Python2 & 3). - - * A new encoding UTF-16LE-BOM has been invented to force encoding to - UTF-16 with BOM in little endian byte order, which cannot be directly - generated by using iconv. - - * A new date format "--date=human" that morphs its output depending - on how far the time is from the current time has been introduced. - "--date=auto:human" can be used to use this new format (or any - existing format) when the output is going to the pager or to the - terminal, and otherwise the default format. - - -Performance, Internal Implementation, Development Support etc. - - * Code clean-up with optimization for the codepath that checks - (non-)existence of loose objects. - - * More codepaths have become aware of working with in-core repository - instances other than the default "the_repository". - - * The "strncat()" function is now among the banned functions. - - * Portability updates for the HPE NonStop platform. - - * Earlier we added "-Wformat-security" to developer builds, assuming - that "-Wall" (which includes "-Wformat" which in turn is required - to use "-Wformat-security") is always in effect. This is not true - when config.mak.autogen is in use, unfortunately. This has been - fixed by unconditionally adding "-Wall" to developer builds. - - * The loose object cache used to optimize existence look-up has been - updated. - - * Flaky tests can now be repeatedly run under load with the - "--stress" option. - - * Documentation/Makefile is getting prepared for manpage - localization. - - * "git fetch-pack" now can talk the version 2 protocol. - - * sha-256 hash has been added and plumbed through the code to allow - building Git with the "NewHash". - - * Debugging help for http transport. - - * "git fetch --deepen=<more>" has been corrected to work over v2 - protocol. - - * The code to walk tree objects has been taught that we may be - working with object names that are not computed with SHA-1. - - * The in-core repository instances are passed through more codepaths. - - * Update the protocol message specification to allow only the limited - use of scaled quantities. This is to ensure potential compatibility - issues will not get out of hand. - - * Micro-optimize the code that prepares commit objects to be walked - by "git rev-list" when the commit-graph is available. - - * "git fetch" and "git upload-pack" learned to send all exchanges over - the sideband channel while talking the v2 protocol. - - * The codepath to write out commit-graph has been optimized by - following the usual pattern of visiting objects in in-pack order. - - * The codepath to show progress meter while writing out commit-graph - file has been improved. - - * Cocci rules have been updated to encourage use of strbuf_addbuf(). - - * "git rebase --merge" has been reimplemented by reusing the internal - machinery used for "git rebase -i". - - * More code in "git bisect" has been rewritten in C. - - * Instead of going through "git-rebase--am" scriptlet to use the "am" - backend, the built-in version of "git rebase" learned to drive the - "am" backend directly. - - * The assumption to work on the single "in-core index" instance has - been reduced from the library-ish part of the codebase. - - * The test lint learned to catch non-portable "sed" options. - - * "git pack-objects" learned another algorithm to compute the set of - objects to send, that trades the resulting packfile off to save - traversal cost to favor small pushes. - - * The travis CI scripts have been corrected to build Git with the - compiler(s) of our choice. - - * "git submodule update" learned to abort early when core.worktree - for the submodule is not set correctly to prevent spreading damage. - - * Test suite has been adjusted to run on Azure Pipeline. - - * Running "Documentation/doc-diff x" from anywhere other than the - top-level of the working tree did not show the usage string - correctly, which has been fixed. - - * Use of the sparse tool got easier to customize from the command - line to help developers. - - * A new target "coverage-prove" to run the coverage test under - "prove" has been added. - - * A flakey "p4" test has been removed. - - * The code and tests assume that the system supplied iconv() would - always use BOM in its output when asked to encode to UTF-16 (or - UTF-32), but apparently some implementations output big-endian - without BOM. A compile-time knob has been added to help such - systems (e.g. NonStop) to add BOM to the output to increase - portability. - - -Fixes since v2.20 ------------------ - - * Updates for corner cases in merge-recursive. - (merge cc4cb0902c en/merge-path-collision later to maint). - - * "git checkout frotz" (without any double-dash) avoids ambiguity by - making sure 'frotz' cannot be interpreted as a revision and as a - path at the same time. This safety has been updated to check also - a unique remote-tracking branch 'frotz' in a remote, when dwimming - to create a local branch 'frotz' out of a remote-tracking branch - 'frotz' from a remote. - (merge be4908f103 nd/checkout-dwim-fix later to maint). - - * Refspecs configured with "git -c var=val clone" did not propagate - to the resulting repository, which has been corrected. - (merge 7eae4a3ac4 sg/clone-initial-fetch-configuration later to maint). - - * A properly configured username/email is required under - user.useConfigOnly in order to create commits; now "git stash" - (even though it creates commit objects to represent stash entries) - command is exempt from the requirement. - (merge 3bc2111fc2 sd/stash-wo-user-name later to maint). - - * The http-backend CGI process did not correctly clean up the child - processes it spawns to run upload-pack etc. when it dies itself, - which has been corrected. - (merge 02818a98d7 mk/http-backend-kill-children-before-exit later to maint). - - * "git rev-list --exclude-promisor-objects" had to take an object - that does not exist locally (and is lazily available) from the - command line without barfing, but the code dereferenced NULL. - (merge 4cf67869b2 md/list-lazy-objects-fix later to maint). - - * The traversal over tree objects has learned to honor - ":(attr:label)" pathspec match, which has been implemented only for - enumerating paths on the filesystem. - (merge 5a0b97b34c nd/attr-pathspec-in-tree-walk later to maint). - - * BSD port updates. - (merge 4e3ecbd439 cb/openbsd-allows-reading-directory later to maint). - (merge b6bdc2a0f5 cb/t5004-empty-tar-archive-fix later to maint). - (merge 82cbc8cde2 cb/test-lint-cp-a later to maint). - - * Lines that begin with a certain keyword that come over the wire, as - well as lines that consist only of one of these keywords, ought to - be painted in color for easier eyeballing, but the latter was - broken ever since the feature was introduced in 2.19, which has - been corrected. - (merge 1f67290450 hn/highlight-sideband-keywords later to maint). - - * "git log -G<regex>" looked for a hunk in the "git log -p" patch - output that contained a string that matches the given pattern. - Optimize this code to ignore binary files, which by default will - not show any hunk that would match any pattern (unless textconv or - the --text option is in effect, that is). - (merge e0e7cb8080 tb/log-G-binary later to maint). - - * "git submodule update" ought to use a single job unless asked, but - by mistake used multiple jobs, which has been fixed. - (merge e3a9d1aca9 sb/submodule-fetchjobs-default-to-one later to maint). - - * "git stripspace" should be usable outside a git repository, but - under the "-s" or "-c" mode, it didn't. - (merge 957da75802 jn/stripspace-wo-repository later to maint). - - * Some of the documentation pages formatted incorrectly with - Asciidoctor, which have been fixed. - (merge b62eb1d2f4 ma/asciidoctor later to maint). - - * The core.worktree setting in a submodule repository should not be - pointing at a directory when the submodule loses its working tree - (e.g. getting deinit'ed), but the code did not properly maintain - this invariant. - - * With zsh, "git cmd path<TAB>" was completed to "git cmd path name" - when the completed path has a special character like SP in it, - without any attempt to keep "path name" a single filename. This - has been fixed to complete it to "git cmd path\ name" just like - Bash completion does. - - * The test suite tried to see if it is run under bash, but the check - itself failed under some other implementations of shell (notably - under NetBSD). This has been corrected. - (merge 54ea72f09c sg/test-bash-version-fix later to maint). - - * "git gc" and "git repack" did not close the open packfiles that - they found unneeded before removing them, which didn't work on a - platform incapable of removing an open file. This has been - corrected. - (merge 5bdece0d70 js/gc-repack-close-before-remove later to maint). - - * The code to drive GIT_EXTERNAL_DIFF command relied on the string - returned from getenv() to be non-volatile, which is not true, that - has been corrected. - (merge 6776a84dae kg/external-diff-save-env later to maint). - - * There were many places the code relied on the string returned from - getenv() to be non-volatile, which is not true, that have been - corrected. - (merge 0da0e9268b jk/save-getenv-result later to maint). - - * The v2 upload-pack protocol implementation failed to honor - hidden-ref configuration, which has been corrected. - (merge e20b4192a3 jk/proto-v2-hidden-refs-fix later to maint). - - * "git fetch --recurse-submodules" may not fetch the necessary commit - that is bound to the superproject, which is getting corrected. - (merge be76c21282 sb/submodule-recursive-fetch-gets-the-tip later to maint). - - * "git rebase" internally runs "checkout" to switch between branches, - and the command used to call the post-checkout hook, but the - reimplementation stopped doing so, which is getting fixed. - - * "git add -e" got confused when the change it wants to let the user - edit is smaller than the previous change that was left over in a - temporary file. - (merge fa6f225e01 js/add-e-clear-patch-before-stating later to maint). - - * "git p4" failed to update a shelved change when there were moved - files, which has been corrected. - (merge 7a10946ab9 ld/git-p4-shelve-update-fix later to maint). - - * The codepath to read from the commit-graph file attempted to read - past the end of it when the file's table-of-contents was corrupt. - - * The compat/obstack code had casts that -Wcast-function-type - compilation option found questionable. - (merge 764473d257 sg/obstack-cast-function-type-fix later to maint). - - * An obvious typo in an assertion error message has been fixed. - (merge 3c27e2e059 cc/test-ref-store-typofix later to maint). - - * In Git for Windows, "git clone \\server\share\path" etc. that uses - UNC paths from command line had bad interaction with its shell - emulation. - - * "git add --ignore-errors" did not work as advertised and instead - worked as an unintended synonym for "git add --renormalize", which - has been fixed. - (merge e2c2a37545 jk/add-ignore-errors-bit-assignment-fix later to maint). - - * On a case-insensitive filesystem, we failed to compare the part of - the path that is above the worktree directory in an absolute - pathname, which has been corrected. - - * Asking "git check-attr" about a macro (e.g. "binary") on a specific - path did not work correctly, even though "git check-attr -a" listed - such a macro correctly. This has been corrected. - (merge 7b95849be4 jk/attr-macro-fix later to maint). - - * "git pack-objects" incorrectly used uninitialized mutex, which has - been corrected. - (merge edb673cf10 ph/pack-objects-mutex-fix later to maint). - - * "git checkout -b <new> [HEAD]" to create a new branch from the - current commit and check it out ought to be a no-op in the index - and the working tree in normal cases, but there are corner cases - that do require updates to the index and the working tree. Running - it immediately after "git clone --no-checkout" is one of these - cases that an earlier optimization kicked in incorrectly, which has - been fixed. - (merge 8424bfd45b bp/checkout-new-branch-optim later to maint). - - * "git diff --color-moved --cc --stat -p" did not work well due to - funny interaction between a bug in color-moved and the rest, which - has been fixed. - (merge dac03b5518 jk/diff-cc-stat-fixes later to maint). - - * When GIT_SEQUENCE_EDITOR is set, the command was incorrectly - started when modes of "git rebase" that implicitly uses the - machinery for the interactive rebase are run, which has been - corrected. - (merge 891d4a0313 pw/no-editor-in-rebase-i-implicit later to maint). - - * The commit-graph facility did not work when in-core objects that - are promoted from unknown type to commit (e.g. a commit that is - accessed via a tag that refers to it) were involved, which has been - corrected. - (merge 4468d4435c sg/object-as-type-commit-graph-fix later to maint). - - * "git fetch" output cleanup. - (merge dc40b24df4 nd/fetch-compact-update later to maint). - - * "git cat-file --batch" reported a dangling symbolic link by - mistake, when it wanted to report that a given name is ambiguous. - - * Documentation around core.crlf has been updated. - (merge c9446f0504 jk/autocrlf-overrides-eol-doc later to maint). - - * The documentation of "git commit-tree" said that the command - understands "--gpg-sign" in addition to "-S", but the command line - parser did not know about the longhand, which has been corrected. - - * "git rebase -x $cmd" did not reject multi-line command, even though - the command is incapable of handling such a command. It now is - rejected upfront. - (merge c762aada1a pw/rebase-x-sanity-check later to maint). - - * Output from "git help" was not correctly aligned, which has been - fixed. - (merge 6195a76da4 nd/help-align-command-desc later to maint). - - * The "git submodule summary" subcommand showed shortened commit - object names by mechanically truncating them at 7-hexdigit, which - has been improved to let "rev-parse --short" scale the length of - the abbreviation with the size of the repository. - (merge 0586a438f6 sh/submodule-summary-abbrev-fix later to maint). - - * The way the OSX build jobs updates its build environment used the - "--quiet" option to "brew update" command, but it wasn't all that - quiet to be useful. The use of the option has been replaced with - an explicit redirection to the /dev/null (which incidentally would - have worked around a breakage by recent updates to homebrew, which - has fixed itself already). - (merge a1ccaedd62 sg/travis-osx-brew-breakage-workaround later to maint). - - * "git --work-tree=$there --git-dir=$here describe --dirty" did not - work correctly as it did not pay attention to the location of the - worktree specified by the user by mistake, which has been - corrected. - (merge c801170b0c ss/describe-dirty-in-the-right-directory later to maint). - - * "git fetch" over protocol v2 that needs to make a second connection - to backfill tags did not clear a variable that holds shallow - repository information correctly, leading to an access of freed - piece of memory. - - * Some errors from the other side coming over smart HTTP transport - were not noticed, which has been corrected. - - * Code cleanup, docfix, build fix, etc. - (merge 89ba9a79ae hb/t0061-dot-in-path-fix later to maint). - (merge d173e799ea sb/diff-color-moved-config-option-fixup later to maint). - (merge a8f5a59067 en/directory-renames-nothanks-doc-update later to maint). - (merge ec36c42a63 nd/indentation-fix later to maint). - (merge f116ee21cd do/gitweb-strict-export-conf-doc later to maint). - (merge 112ea42663 fd/gitweb-snapshot-conf-doc-fix later to maint). - (merge 1cadad6f65 tb/use-common-win32-pathfuncs-on-cygwin later to maint). - (merge 57e9dcaa65 km/rebase-doc-typofix later to maint). - (merge b8b4cb27e6 ds/gc-doc-typofix later to maint). - (merge 3b3357626e nd/style-opening-brace later to maint). - (merge b4583d5595 es/doc-worktree-guessremote-config later to maint). - (merge cce99cd8c6 ds/commit-graph-assert-missing-parents later to maint). - (merge 0650614982 cy/completion-typofix later to maint). - (merge 6881925ef5 rs/sha1-file-close-mapped-file-on-error later to maint). - (merge bd8d6f0def en/show-ref-doc-fix later to maint). - (merge 1747125e2c cc/partial-clone-doc-typofix later to maint). - (merge e01378753d cc/fetch-error-message-fix later to maint). - (merge 54e8c11215 jk/remote-insteadof-cleanup later to maint). - (merge d609615f48 js/test-git-installed later to maint). - (merge ba170517be ja/doc-style-fix later to maint). - (merge 86fb1c4e77 km/init-doc-typofix later to maint). - (merge 5cfd4a9d10 nd/commit-doc later to maint). - (merge 9fce19a431 ab/diff-tree-doc-fix later to maint). - (merge 2e285e7803 tz/gpg-test-fix later to maint). - (merge 5427de960b kl/pretty-doc-markup-fix later to maint). - (merge 3815f64b0d js/mingw-host-cpu later to maint). - (merge 5fe81438b5 rj/sequencer-sign-off-header-static later to maint). - (merge 18a4f6be6b nd/fileno-may-be-macro later to maint). - (merge 99e9ab54ab kd/t0028-octal-del-is-377-not-777 later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.21.1.txt b/third_party/git/Documentation/RelNotes/2.21.1.txt deleted file mode 100644 index b7594151e4c8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.21.1.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.21.1 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6, v2.15.4, -v2.17.3 and in v2.20.2, addressing the security issues CVE-2019-1348, -CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, CVE-2019-1352, -CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and CVE-2019-19604; -see the release notes for those versions for details. - -Additionally, this version also includes a couple of fixes for the -Windows-specific quoting of command-line arguments when Git executes -a Unix shell on Windows. diff --git a/third_party/git/Documentation/RelNotes/2.21.2.txt b/third_party/git/Documentation/RelNotes/2.21.2.txt deleted file mode 100644 index a0fb83bb5341..000000000000 --- a/third_party/git/Documentation/RelNotes/2.21.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.21.2 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.21.3.txt b/third_party/git/Documentation/RelNotes/2.21.3.txt deleted file mode 100644 index 2ca0aa5c62af..000000000000 --- a/third_party/git/Documentation/RelNotes/2.21.3.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.21.3 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.22.0.txt b/third_party/git/Documentation/RelNotes/2.22.0.txt deleted file mode 100644 index 91e6ae9887f5..000000000000 --- a/third_party/git/Documentation/RelNotes/2.22.0.txt +++ /dev/null @@ -1,597 +0,0 @@ -Git 2.22 Release Notes -====================== - -Updates since v2.21 -------------------- - -Backward compatibility note - - * The filter specification "--filter=sparse:path=<path>" used to - create a lazy/partial clone has been removed. Using a blob that is - part of the project as sparse specification is still supported with - the "--filter=sparse:oid=<blob>" option. - -UI, Workflows & Features - - * "git checkout --no-overlay" can be used to trigger a new mode of - checking out paths out of the tree-ish, that allows paths that - match the pathspec that are in the current index and working tree - and are not in the tree-ish. - - * The %(trailers) formatter in "git log --format=..." now allows to - optionally pick trailers selectively by keyword, show only values, - etc. - - * Four new configuration variables {author,committer}.{name,email} - have been introduced to override user.{name,email} in more specific - cases. - - * Command-line completion (in contrib/) learned to tab-complete the - "git submodule absorbgitdirs" subcommand. - - * "git branch" learned a new subcommand "--show-current". - - * Output from "diff --cc" did not show the original paths when the - merge involved renames. A new option adds the paths in the - original trees to the output. - - * The command line completion (in contrib/) has been taught to - complete more subcommand parameters. - - * The final report from "git bisect" used to show the suspected - culprit using a raw "diff-tree", with which there is no output for - a merge commit. This has been updated to use a more modern and - human readable output that still is concise enough. - - * "git rebase --rebase-merges" replaces its old "--preserve-merges" - option; the latter is now marked as deprecated. - - * Error message given while cloning with --recurse-submodules has - been updated. - - * The completion helper code now pays attention to repository-local - configuration (when available), which allows --list-cmds to honour - a repository specific setting of completion.commands, for example. - - * "git mergetool" learned to offer Sublime Merge (smerge) as one of - its backends. - - * A new hook "post-index-change" is called when the on-disk index - file changes, which can help e.g. a virtualized working tree - implementation. - - * "git difftool" can now run outside a repository. - - * "git checkout -m <other>" was about carrying the differences - between HEAD and the working-tree files forward while checking out - another branch, and ignored the differences between HEAD and the - index. The command has been taught to abort when the index and the - HEAD are different. - - * A progress indicator has been added to the "index-pack" step, which - often makes users wait for completion during "git clone". - - * "git submodule" learns "set-branch" subcommand that allows the - submodule.*.branch settings to be modified. - - * "git merge-recursive" backend recently learned a new heuristics to - infer file movement based on how other files in the same directory - moved. As this is inherently less robust heuristics than the one - based on the content similarity of the file itself (rather than - based on what its neighbours are doing), it sometimes gives an - outcome unexpected by the end users. This has been toned down to - leave the renamed paths in higher/conflicted stages in the index so - that the user can examine and confirm the result. - - * "git tag" learned to give an advice suggesting it might be a - mistake when creating an annotated or signed tag that points at - another tag. - - * The "git pack-objects" command learned to report the number of - objects it packed via the trace2 mechanism. - - * The list of conflicted paths shown in the editor while concluding a - conflicted merge was shown above the scissors line when the - clean-up mode is set to "scissors", even though it was commented - out just like the list of updated paths and other information to - help the user explain the merge better. - - * The trace2 tracing facility learned to auto-generate a filename - when told to log to a directory. - - * "git clone" learned a new --server-option option when talking over - the protocol version 2. - - * The connectivity bitmaps are created by default in bare - repositories now; also the pathname hash-cache is created by - default to avoid making crappy deltas when repacking. - - * "git branch new A...B" and "git checkout -b new A...B" have been - taught that in their contexts, the notation A...B means "the merge - base between these two commits", just like "git checkout A...B" - detaches HEAD at that commit. - - * Update "git difftool" and "git mergetool" so that the combinations - of {diff,merge}.{tool,guitool} configuration variables serve as - fallback settings of each other in a sensible order. - - * The "--dir-diff" mode of "git difftool" is not useful in "--no-index" - mode; they are now explicitly marked as mutually incompatible. - - -Performance, Internal Implementation, Development Support etc. - - * The diff machinery, one of the oldest parts of the system, which - long predates the parse-options API, uses fairly long and complex - handcrafted option parser. This is being rewritten to use the - parse-options API. - - * The implementation of pack-redundant has been updated for - performance in a repository with many packfiles. - - * A more structured way to obtain execution trace has been added. - - * "git prune" has been taught to take advantage of reachability - bitmap when able. - - * The command line parser of "git commit-tree" has been rewritten to - use the parse-options API. - - * Suggest GitGitGadget instead of submitGit as a way to submit - patches based on GitHub PR to us. - - * The test framework has been updated to help developers by making it - easier to run most of the tests under different versions of - over-the-wire protocols. - - * Dev support update to make it easier to compare two formatted - results from our documentation. - - * The scripted "git rebase" implementation has been retired. - - * "git multi-pack-index verify" did not scale well with the number of - packfiles, which is being improved. - - * "git stash" has been rewritten in C. - - * The "check-docs" Makefile target to support developers has been - updated. - - * The tests have been updated not to rely on the abbreviated option - names the parse-options API offers, to protect us from an - abbreviated form of an option that used to be unique within the - command getting non-unique when a new option that share the same - prefix is added. - - * The scripted version of "git rebase -i" wrote and rewrote the todo - list many times during a single step of its operation, and the - recent C-rewrite made a faithful conversion of the logic to C. The - implementation has been updated to carry necessary information - around in-core to avoid rewriting the same file over and over - unnecessarily. - - * Test framework update to more robustly clean up leftover files and - processes after tests are done. - - * Conversion from unsigned char[20] to struct object_id continues. - - * While running "git diff" in a lazy clone, we can upfront know which - missing blobs we will need, instead of waiting for the on-demand - machinery to discover them one by one. The code learned to aim to - achieve better performance by batching the request for these - promised blobs. - - * During an initial "git clone --depth=..." partial clone, it is - pointless to spend cycles for a large portion of the connectivity - check that enumerates and skips promisor objects (which by - definition is all objects fetched from the other side). This has - been optimized out. - - * Mechanically and systematically drop "extern" from function - declaration. - - * The script to aggregate perf result unconditionally depended on - libjson-perl even though it did not have to, which has been - corrected. - - * The internal implementation of "git rebase -i" has been updated to - avoid forking a separate "rebase--interactive" process. - - * Allow DEP and ASLR for Windows build to for security hardening. - - * Performance test framework has been broken and measured the version - of Git that happens to be on $PATH, not the specified one to - measure, for a while, which has been corrected. - - * Optionally "make coccicheck" can feed multiple source files to - spatch, gaining performance while spending more memory. - - * Attempt to use an abbreviated option in "git clone --recurs" is - responded by a request to disambiguate between --recursive and - --recurse-submodules, which is bad because these two are synonyms. - The parse-options API has been extended to define such synonyms - more easily and not produce an unnecessary failure. - - * A pair of private functions in http.c that had names similar to - fread/fwrite did not return the number of elements, which was found - to be confusing. - - * Update collision-detecting SHA-1 code to build properly on HP-UX. - - -Fixes since v2.21 ------------------ - - * "git prune-packed" did not notice and complain against excess - arguments given from the command line, which now it does. - (merge 9b0bd87ed2 rj/prune-packed-excess-args later to maint). - - * Split-index fix. - (merge 6e37c8ed3c nd/split-index-null-base-fix later to maint). - - * "git diff --no-index" may still want to access Git goodies like - --ext-diff and --textconv, but so far these have been ignored, - which has been corrected. - (merge 287ab28bfa jk/diff-no-index-initialize later to maint). - - * Unify RPC code for smart http in protocol v0/v1 and v2, which fixes - a bug in the latter (lack of authentication retry) and generally - improves the code base. - (merge a97d00799a jt/http-auth-proto-v2-fix later to maint). - - * The include file compat/bswap.h has been updated so that it is safe - to (accidentally) include it more than once. - (merge 33aa579a55 jk/guard-bswap-header later to maint). - - * The set of header files used by "make hdr-check" unconditionally - included sha256/gcrypt.h, even when it is not used, causing the - make target to fail. We now skip it when GCRYPT_SHA256 is not in - use. - (merge f23aa18e7f rj/hdr-check-gcrypt-fix later to maint). - - * The Makefile uses 'find' utility to enumerate all the *.h header - files, which is expensive on platforms with slow filesystems; it - now optionally uses "ls-files" if working within a repository, - which is a trick similar to how all sources are enumerated to run - ETAGS on. - (merge 92b88eba9f js/find-lib-h-with-ls-files-when-possible later to maint). - - * "git rebase" that was reimplemented in C did not set ORIG_HEAD - correctly, which has been corrected. - (merge cbd29ead92 js/rebase-orig-head-fix later to maint). - - * Dev support. - (merge f545737144 js/stress-test-ui-tweak later to maint). - - * CFLAGS now can be tweaked when invoking Make while using - DEVELOPER=YesPlease; this did not work well before. - (merge 6d5d4b4e93 ab/makefile-help-devs-more later to maint). - - * "git fsck --connectivity-only" omits computation necessary to sift - the objects that are not reachable from any of the refs into - unreachable and dangling. This is now enabled when dangling - objects are requested (which is done by default, but can be - overridden with the "--no-dangling" option). - (merge 8d8c2a5aef jk/fsck-doc later to maint). - - * On platforms where "git fetch" is killed with SIGPIPE (e.g. OSX), - the upload-pack that runs on the other end that hangs up after - detecting an error could cause "git fetch" to die with a signal, - which led to a flaky test. "git fetch" now ignores SIGPIPE during - the network portion of its operation (this is not a problem as we - check the return status from our write(2)s). - (merge 143588949c jk/no-sigpipe-during-network-transport later to maint). - - * A recent update broke "is this object available to us?" check for - well-known objects like an empty tree (which should yield "yes", - even when there is no on-disk object for an empty tree), which has - been corrected. - (merge f06ab027ef jk/virtual-objects-do-exist later to maint). - - * The setup code has been cleaned up to avoid leaks around the - repository_format structure. - (merge e8805af1c3 ma/clear-repository-format later to maint). - - * "git config --type=color ..." is meant to replace "git config --get-color" - but there is a slight difference that wasn't documented, which is - now fixed. - (merge cd8e7593b9 jk/config-type-color-ends-with-lf later to maint). - - * When the "clean" filter can reduce the size of a huge file in the - working tree down to a small "token" (a la Git LFS), there is no - point in allocating a huge scratch area upfront, but the buffer is - sized based on the original file size. The convert mechanism now - allocates very minimum and reallocates as it receives the output - from the clean filter process. - (merge 02156ab031 jh/resize-convert-scratch-buffer later to maint). - - * "git rebase" uses the refs/rewritten/ hierarchy to store its - intermediate states, which inherently makes the hierarchy per - worktree, but it didn't quite work well. - (merge b9317d55a3 nd/rewritten-ref-is-per-worktree later to maint). - - * "git log -L<from>,<to>:<path>" with "-s" did not suppress the patch - output as it should. This has been corrected. - (merge 05314efaea jk/line-log-with-patch later to maint). - - * "git worktree add" used to do a "find an available name with stat - and then mkdir", which is race-prone. This has been fixed by using - mkdir and reacting to EEXIST in a loop. - (merge 7af01f2367 ms/worktree-add-atomic-mkdir later to maint). - - * Build update for SHA-1 with collision detection. - (merge 07a20f569b jk/sha1dc later to maint). - - * Build procedure has been fixed around use of asciidoctor instead of - asciidoc. - (merge 185f9a0ea0 ma/asciidoctor-fixes later to maint). - - * remote-http transport did not anonymize URLs reported in its error - messages at places. - (merge c1284b21f2 js/anonymize-remote-curl-diag later to maint). - - * Error messages given from the http transport have been updated so - that they can be localized. - (merge ed8b4132c8 js/remote-curl-i18n later to maint). - - * "git init" forgot to read platform-specific repository - configuration, which made Windows port to ignore settings of - core.hidedotfiles, for example. - - * A corner-case object name ambiguity while the sequencer machinery - is working (e.g. "rebase -i -x") has been fixed. - - * "git format-patch" did not diagnose an error while opening the - output file for the cover-letter, which has been corrected. - (merge 2fe95f494c jc/format-patch-error-check later to maint). - - * "git checkout -f <branch>" while the index has an unmerged path - incorrectly left some paths in an unmerged state, which has been - corrected. - - * A corner case bug in the refs API has been corrected. - (merge d3322eb28b jk/refs-double-abort later to maint). - - * Unicode update. - (merge 584b62c37b bb/unicode-12 later to maint). - - * dumb-http walker has been updated to share more error recovery - strategy with the normal codepath. - - * A buglet in configuration parser has been fixed. - (merge 19e7fdaa58 nd/include-if-wildmatch later to maint). - - * The documentation for "git read-tree --reset -u" has been updated. - (merge b5a0bd694c nd/read-tree-reset-doc later to maint). - - * Code clean-up around a much-less-important-than-it-used-to-be - update_server_info() function. - (merge b3223761c8 jk/server-info-rabbit-hole later to maint). - - * The message given when "git commit -a <paths>" errors out has been - updated. - (merge 5a1dbd48bc nd/commit-a-with-paths-msg-update later to maint). - - * "git cherry-pick --options A..B", after giving control back to the - user to ask help resolving a conflicted step, did not honor the - options it originally received, which has been corrected. - - * Various glitches in "git gc" around reflog handling have been fixed. - - * The code to read from commit-graph file has been cleanup with more - careful error checking before using data read from it. - - * Performance fix around "git fetch" that grabs many refs. - (merge b764300912 jt/fetch-pack-wanted-refs-optim later to maint). - - * Protocol v2 support in "git fetch-pack" of shallow clones has been - corrected. - - * Performance fix around "git blame", especially in a linear history - (which is the norm we should optimize for). - (merge f892014943 dk/blame-keep-origin-blob later to maint). - - * Performance fix for "rev-list --parents -- pathspec". - (merge 8320b1dbe7 jk/revision-rewritten-parents-in-prio-queue later to maint). - - * Updating the display with progress message has been cleaned up to - deal better with overlong messages. - (merge 545dc345eb sg/overlong-progress-fix later to maint). - - * "git blame -- path" in a non-bare repository starts blaming from - the working tree, and the same command in a bare repository errors - out because there is no working tree by definition. The command - has been taught to instead start blaming from the commit at HEAD, - which is more useful. - (merge a544fb08f8 sg/blame-in-bare-start-at-head later to maint). - - * An underallocation in the code to read the untracked cache - extension has been corrected. - (merge 3a7b45a623 js/untracked-cache-allocfix later to maint). - - * The code is updated to check the result of memory allocation before - it is used in more places, by using xmalloc and/or xcalloc calls. - (merge 999b951b28 jk/xmalloc later to maint). - - * The GETTEXT_POISON test option has been quite broken ever since it - was made runtime-tunable, which has been fixed. - (merge f88b9cb603 jc/gettext-test-fix later to maint). - - * Test fix on APFS that is incapable of store paths in Latin-1. - (merge 3889149619 js/iso8895-test-on-apfs later to maint). - - * "git submodule foreach <command> --quiet" did not pass the option - down correctly, which has been corrected. - (merge a282f5a906 nd/submodule-foreach-quiet later to maint). - - * "git send-email" has been taught to use quoted-printable when the - payload contains carriage-return. The use of the mechanism is in - line with the design originally added the codepath that chooses QP - when the payload has overly long lines. - (merge 74d76a1701 bc/send-email-qp-cr later to maint). - - * The recently added feature to add addresses that are on - anything-by: trailers in 'git send-email' was found to be way too - eager and considered nonsense strings as if they can be legitimate - beginning of *-by: trailer. This has been tightened. - - * Builds with gettext broke on recent macOS w/ Homebrew, which - seems to have stopped including from /usr/local/include; this - has been corrected. - (merge 92a1377a2a js/macos-gettext-build later to maint). - - * Running "git add" on a repository created inside the current - repository is an explicit indication that the user wants to add it - as a submodule, but when the HEAD of the inner repository is on an - unborn branch, it cannot be added as a submodule. Worse, the files - in its working tree can be added as if they are a part of the outer - repository, which is not what the user wants. These problems are - being addressed. - (merge f937bc2f86 km/empty-repo-is-still-a-repo later to maint). - - * "git cherry-pick" run with the "-x" or the "--signoff" option used - to (and more importantly, ought to) clean up the commit log message - with the --cleanup=space option by default, but this has been - broken since late 2017. This has been fixed. - - * When given a tag that points at a commit-ish, "git replace --graft" - failed to peel the tag before writing a replace ref, which did not - make sense because the old graft mechanism the feature wants to - mimic only allowed to replace one commit object with another. - This has been fixed. - (merge ee521ec4cb cc/replace-graft-peel-tags later to maint). - - * Code tightening against a "wrong" object appearing where an object - of a different type is expected, instead of blindly assuming that - the connection between objects are correctly made. - (merge 97dd512af7 tb/unexpected later to maint). - - * An earlier update for MinGW and Cygwin accidentally broke MSVC build, - which has been fixed. - (merge 22c3634c0f ss/msvc-path-utils-fix later to maint). - - * %(push:track) token used in the --format option to "git - for-each-ref" and friends was not showing the right branch, which - has been fixed. - (merge c646d0934e dr/ref-filter-push-track-fix later to maint). - - * "make check-docs", "git help -a", etc. did not account for cases - where a particular build may deliberately omit some subcommands, - which has been corrected. - - * The logic to tell if a Git repository has a working tree protects - "git branch -D" from removing the branch that is currently checked - out by mistake. The implementation of this logic was broken for - repositories with unusual name, which unfortunately is the norm for - submodules these days. This has been fixed. - (merge f3534c98e4 jt/submodule-repo-is-with-worktree later to maint). - - * AIX shared the same build issues with other BSDs around fileno(fp), - which has been corrected. - (merge ee662bf5c6 cc/aix-has-fileno-as-a-macro later to maint). - - * The autoconf generated configure script failed to use the right - gettext() implementations from -libintl by ignoring useless stub - implementations shipped in some C library, which has been - corrected. - (merge b71e56a683 vk/autoconf-gettext later to maint). - - * Fix index-pack perf test so that the repeated invocations always - run in an empty repository, which emulates the initial clone - situation better. - (merge 775c71e16d jk/p5302-avoid-collision-check-cost later to maint). - - * A "ls-files" that emulates "find" to enumerate files in the working - tree resulted in duplicated Makefile rules that caused the build to - issue an unnecessary warning during a trial build after merge - conflicts are resolved in working tree *.h files but before the - resolved results are added to the index. This has been corrected. - - * "git cherry-pick" (and "revert" that shares the same runtime engine) - that deals with multiple commits got confused when the final step - gets stopped with a conflict and the user concluded the sequence - with "git commit". Attempt to fix it by cleaning up the state - files used by these commands in such a situation. - (merge 4a72486de9 pw/clean-sequencer-state-upon-final-commit later to maint). - - * On a filesystem like HFS+, the names of the refs stored as filesystem - entities may become different from what the end-user expects, just - like files in the working tree get "renamed". Work around the - mismatch by paying attention to the core.precomposeUnicode - configuration. - (merge 8e712ef6fc en/unicode-in-refnames later to maint). - - * The code to generate the multi-pack idx file was not prepared to - see too many packfiles and ran out of open file descriptor, which - has been corrected. - - * To run tests for Git SVN, our scripts for CI used to install the - git-svn package (in the hope that it would bring in the right - dependencies). This has been updated to install the more direct - dependency, namely, libsvn-perl. - (merge db864306cf sg/ci-libsvn-perl later to maint). - - * "git cvsexportcommit" running on msys did not expect cvsnt showed - "cvs status" output with CRLF line endings. - - * The fsmonitor interface got out of sync after the in-core index - file gets discarded, which has been corrected. - (merge 398a3b0899 js/fsmonitor-refresh-after-discarding-index later to maint). - - * "git status" did not know that the "label" instruction in the - todo-list "rebase -i -r" uses should not be shown as a hex object - name. - - * A prerequisite check in the test suite to see if a working jgit is - available was made more robust. - (merge abd0f28983 tz/test-lib-check-working-jgit later to maint). - - * The codepath to parse :<path> that obtains the object name for an - indexed object has been made more robust. - - * Code cleanup, docfix, build fix, etc. - (merge 11f470aee7 jc/test-yes-doc later to maint). - (merge 90503a240b js/doc-symref-in-proto-v1 later to maint). - (merge 5c326d1252 jk/unused-params later to maint). - (merge 68cabbfda3 dl/doc-submodule-wo-subcommand later to maint). - (merge 9903623761 ab/receive-pack-use-after-free-fix later to maint). - (merge 1ede45e44b en/merge-options-doc later to maint). - (merge 3e14dd2c8e rd/doc-hook-used-in-sample later to maint). - (merge c271dc28fd nd/no-more-check-racy later to maint). - (merge e6e15194a8 yb/utf-16le-bom-spellfix later to maint). - (merge bb101aaf0c rd/attr.c-comment-typofix later to maint). - (merge 716a5af812 rd/gc-prune-doc-fix later to maint). - (merge 50b206371d js/untravis-windows later to maint). - (merge dbf47215e3 js/rebase-recreate-merge later to maint). - (merge 56cb2d30f8 dl/reset-doc-no-wrt-abbrev later to maint). - (merge 64eca306a2 ja/dir-rename-doc-markup-fix later to maint). - (merge af91b0230c dl/ignore-docs later to maint). - (merge 59a06e947b ra/t3600-test-path-funcs later to maint). - (merge e041d0781b ar/t4150-remove-cruft later to maint). - (merge 8d75a1d183 ma/asciidoctor-fixes-more later to maint). - (merge 74cc547b0f mh/pack-protocol-doc-fix later to maint). - (merge ed31851fa6 ab/doc-misc-typofixes later to maint). - (merge a7256debd4 nd/checkout-m-doc-update later to maint). - (merge 3a9e1ad78d jt/t5551-protocol-v2-does-not-have-half-auth later to maint). - (merge 0b918b75af sg/t5318-cleanup later to maint). - (merge 68ed71b53c cb/doco-mono later to maint). - (merge a34dca2451 nd/interpret-trailers-docfix later to maint). - (merge cf7b857a77 en/fast-import-parsing-fix later to maint). - (merge fe61ccbc35 po/rerere-doc-fmt later to maint). - (merge ffea0248bf po/describe-not-necessarily-7 later to maint). - (merge 7cb7283adb tg/ls-files-debug-format-fix later to maint). - (merge f64a21bd82 tz/doc-apostrophe-no-longer-needed later to maint). - (merge dbe7b41019 js/t3301-unbreak-notes-test later to maint). - (merge d8083e4180 km/t3000-retitle later to maint). - (merge 9e4cbccbd7 tz/git-svn-doc-markup-fix later to maint). - (merge da9ca955a7 jk/ls-files-doc-markup-fix later to maint). - (merge 6804ba3a58 cw/diff-highlight later to maint). - (merge 1a8787144d nd/submodule-helper-incomplete-line-fix later to maint). - (merge d9ef573837 jk/apache-lsan later to maint). - (merge c871fbee2b js/t6500-use-windows-pid-on-mingw later to maint). - (merge ce4c7bfc90 bl/t4253-exit-code-from-format-patch later to maint). - (merge 397a46db78 js/t5580-unc-alternate-test later to maint). - (merge d4907720a2 cm/notes-comment-fix later to maint). - (merge 9dde06de13 cb/http-push-null-in-message-fix later to maint). - (merge 4c785c0edc js/rebase-config-bitfix later to maint). - (merge 8e9fe16c87 es/doc-gitsubmodules-markup later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.22.1.txt b/third_party/git/Documentation/RelNotes/2.22.1.txt deleted file mode 100644 index 432762f270fa..000000000000 --- a/third_party/git/Documentation/RelNotes/2.22.1.txt +++ /dev/null @@ -1,150 +0,0 @@ -Git 2.22.1 Release Notes -======================== - -Fixes since v2.22 ------------------ - - * A relative pathname given to "git init --template=<path> <repo>" - ought to be relative to the directory "git init" gets invoked in, - but it instead was made relative to the repository, which has been - corrected. - - * "git worktree add" used to fail when another worktree connected to - the same repository was corrupt, which has been corrected. - - * The ownership rule for the file descriptor to fast-import remote - backend was mixed up, leading to unrelated file descriptor getting - closed, which has been fixed. - - * "git update-server-info" used to leave stale packfiles in its - output, which has been corrected. - - * The server side support for "git fetch" used to show incorrect - value for the HEAD symbolic ref when the namespace feature is in - use, which has been corrected. - - * "git am -i --resolved" segfaulted after trying to see a commit as - if it were a tree, which has been corrected. - - * "git bundle verify" needs to see if prerequisite objects exist in - the receiving repository, but the command did not check if we are - in a repository upfront, which has been corrected. - - * "git merge --squash" is designed to update the working tree and the - index without creating the commit, and this cannot be countermanded - by adding the "--commit" option; the command now refuses to work - when both options are given. - - * The data collected by fsmonitor was not properly written back to - the on-disk index file, breaking t7519 tests occasionally, which - has been corrected. - - * Update to Unicode 12.1 width table. - - * The command line to invoke a "git cat-file" command from inside - "git p4" was not properly quoted to protect a caret and running a - broken command on Windows, which has been corrected. - - * "git request-pull" learned to warn when the ref we ask them to pull - from in the local repository and in the published repository are - different. - - * When creating a partial clone, the object filtering criteria is - recorded for the origin of the clone, but this incorrectly used a - hardcoded name "origin" to name that remote; it has been corrected - to honor the "--origin <name>" option. - - * "git fetch" into a lazy clone forgot to fetch base objects that are - necessary to complete delta in a thin packfile, which has been - corrected. - - * The filter_data used in the list-objects-filter (which manages a - lazily sparse clone repository) did not use the dynamic array API - correctly---'nr' is supposed to point at one past the last element - of the array in use. This has been corrected. - - * The description about slashes in gitignore patterns (used to - indicate things like "anchored to this level only" and "only - matches directories") has been revamped. - - * The URL decoding code has been updated to avoid going past the end - of the string while parsing %-<hex>-<hex> sequence. - - * The list of for-each like macros used by clang-format has been - updated. - - * "git push --atomic" that goes over the transport-helper (namely, - the smart http transport) failed to prevent refs to be pushed when - it can locally tell that one of the ref update will fail without - having to consult the other end, which has been corrected. - - * "git clean" silently skipped a path when it cannot lstat() it; now - it gives a warning. - - * A codepath that reads from GPG for signed object verification read - past the end of allocated buffer, which has been fixed. - - * "git rm" to resolve a conflicted path leaked an internal message - "needs merge" before actually removing the path, which was - confusing. This has been corrected. - - * The "git clone" documentation refers to command line options in its - description in the short form; they have been replaced with long - forms to make them more recognisable. - - * The configuration variable rebase.rescheduleFailedExec should be - effective only while running an interactive rebase and should not - affect anything when running a non-interactive one, which was not - the case. This has been corrected. - - * "git submodule foreach" did not protect command line options passed - to the command to be run in each submodule correctly, when the - "--recursive" option was in use. - - * Use "Erase in Line" CSI sequence that is already used in the editor - support to clear cruft in the progress output. - - * The codepath to compute delta islands used to spew progress output - without giving the callers any way to squelch it, which has been - fixed. - - * The code to parse scaled numbers out of configuration files has - been made more robust and also easier to follow. - - * An incorrect list of options was cached after command line - completion failed (e.g. trying to complete a command that requires - a repository outside one), which has been corrected. - - * "git rebase --abort" used to leave refs/rewritten/ when concluding - "git rebase -r", which has been corrected. - - * "git stash show 23" used to work, but no more after getting - rewritten in C; this regression has been corrected. - - * "git interpret-trailers" always treated '#' as the comment - character, regardless of core.commentChar setting, which has been - corrected. - - * Code clean-up to avoid signed integer overlaps during binary search. - - * "git checkout -p" needs to selectively apply a patch in reverse, - which did not work well. - - * The commit-graph file is now part of the "files that the runtime - may keep open file descriptors on, all of which would need to be - closed when done with the object store", and the file descriptor to - an existing commit-graph file now is closed before "gc" finalizes a - new instance to replace it. - - * Code restructuring during 2.20 period broke fetching tags via - "import" based transports. - - * We have been trying out a few language features outside c89; the - coding guidelines document did not talk about them and instead had - a blanket ban against them. - - * The internal diff machinery can be made to read out of bounds while - looking for --funcion-context line in a corner case, which has been - corrected. - -Also contains various documentation updates, code clean-ups and minor fixups. diff --git a/third_party/git/Documentation/RelNotes/2.22.2.txt b/third_party/git/Documentation/RelNotes/2.22.2.txt deleted file mode 100644 index 940a23f0d961..000000000000 --- a/third_party/git/Documentation/RelNotes/2.22.2.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v2.22.2 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6, v2.15.4, -v2.17.3, v2.20.2 and in v2.21.1, addressing the security issues -CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, -CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and -CVE-2019-19604; see the release notes for those versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.22.3.txt b/third_party/git/Documentation/RelNotes/2.22.3.txt deleted file mode 100644 index 57296f6d173f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.22.3.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.22.3 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.22.4.txt b/third_party/git/Documentation/RelNotes/2.22.4.txt deleted file mode 100644 index 8b5f3e3f3740..000000000000 --- a/third_party/git/Documentation/RelNotes/2.22.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.22.4 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.23.0.txt b/third_party/git/Documentation/RelNotes/2.23.0.txt deleted file mode 100644 index e3c4e7826510..000000000000 --- a/third_party/git/Documentation/RelNotes/2.23.0.txt +++ /dev/null @@ -1,348 +0,0 @@ -Git 2.23 Release Notes -====================== - -Updates since v2.22 -------------------- - -Backward compatibility note - - * The "--base" option of "format-patch" computed the patch-ids for - prerequisite patches in an unstable way, which has been updated to - compute in a way that is compatible with "git patch-id --stable". - - * The "git log" command by default behaves as if the --mailmap option - was given. - - -UI, Workflows & Features - - * The "git fast-export/import" pair has been taught to handle commits - with log messages in encoding other than UTF-8 better. - - * In recent versions of Git, per-worktree refs are exposed in - refs/worktrees/<wtname>/ hierarchy, which means that worktree names - must be a valid refname component. The code now sanitizes the names - given to worktrees, to make sure these refs are well-formed. - - * "git merge" learned "--quit" option that cleans up the in-progress - merge while leaving the working tree and the index still in a mess. - - * "git format-patch" learns a configuration to set the default for - its --notes=<ref> option. - - * The code to show args with potential typo that cannot be - interpreted as a commit-ish has been improved. - - * "git clone --recurse-submodules" learned to set up the submodules - to ignore commit object names recorded in the superproject gitlink - and instead use the commits that happen to be at the tip of the - remote-tracking branches from the get-go, by passing the new - "--remote-submodules" option. - - * The pattern "git diff/grep" use to extract funcname and words - boundary for Matlab has been extend to cover Octave, which is more - or less equivalent. - - * "git help git" was hard to discover (well, at least for some - people). - - * The pattern "git diff/grep" use to extract funcname and words - boundary for Rust has been added. - - * "git status" can be told a non-standard default value for the - "--[no-]ahead-behind" option with a new configuration variable - status.aheadBehind. - - * "git fetch" and "git pull" reports when a fetch results in - non-fast-forward updates to let the user notice unusual situation. - The commands learned "--no-show-forced-updates" option to disable - this safety feature. - - * Two new commands "git switch" and "git restore" are introduced to - split "checking out a branch to work on advancing its history" and - "checking out paths out of the index and/or a tree-ish to work on - advancing the current history" out of the single "git checkout" - command. - - * "git branch --list" learned to always output the detached HEAD as - the first item (when the HEAD is detached, of course), regardless - of the locale. - - * The conditional inclusion mechanism learned to base the choice on - the branch the HEAD currently is on. - - * "git rev-list --objects" learned the "--no-object-names" option to - squelch the path to the object that is used as a grouping hint for - pack-objects. - - * A new tag.gpgSign configuration variable turns "git tag -a" into - "git tag -s". - - * "git multi-pack-index" learned expire and repack subcommands. - - * "git blame" learned to "ignore" commits in the history, whose - effects (as well as their presence) get ignored. - - * "git cherry-pick/revert" learned a new "--skip" action. - - * The tips of refs from the alternate object store can be used as - starting point for reachability computation now. - - * Extra blank lines in "git status" output have been reduced. - - * The commits in a repository can be described by multiple - commit-graph files now, which allows the commit-graph files to be - updated incrementally. - - * "git range-diff" output has been tweaked for easier identification - of which part of what file the patch shown is about. - - -Performance, Internal Implementation, Development Support etc. - - * Update supporting parts of "git rebase" to remove code that should - no longer be used. - - * Developer support to emulate unsatisfied prerequisites in tests to - ensure that the remainder of the tests still succeeds when tests - with prerequisites are skipped. - - * "git update-server-info" learned not to rewrite the file with the - same contents. - - * The way of specifying the path to find dynamic libraries at runtime - has been simplified. The old default to pass -R/path/to/dir has been - replaced with the new default to pass -Wl,-rpath,/path/to/dir, - which is the more recent GCC uses. Those who need to build with an - old GCC can still use "CC_LD_DYNPATH=-R" - - * Prepare use of reachability index in topological walker that works - on a range (A..B). - - * A new tutorial targeting specifically aspiring git-core - developers has been added. - - * Auto-detect how to tell HP-UX aCC where to use dynamically linked - libraries from at runtime. - - * "git mergetool" and its tests now spawn fewer subprocesses. - - * Dev support update to help tracing out tests. - - * Support to build with MSVC has been updated. - - * "git fetch" that grabs from a group of remotes learned to run the - auto-gc only once at the very end. - - * A handful of Windows build patches have been upstreamed. - - * The code to read state files used by the sequencer machinery for - "git status" has been made more robust against a corrupt or stale - state files. - - * "git for-each-ref" with multiple patterns have been optimized. - - * The tree-walk API learned to pass an in-core repository - instance throughout more codepaths. - - * When one step in multi step cherry-pick or revert is reset or - committed, the command line prompt script failed to notice the - current status, which has been improved. - - * Many GIT_TEST_* environment variables control various aspects of - how our tests are run, but a few followed "non-empty is true, empty - or unset is false" while others followed the usual "there are a few - ways to spell true, like yes, on, etc., and also ways to spell - false, like no, off, etc." convention. - - * Adjust the dir-iterator API and apply it to the local clone - optimization codepath. - - * We have been trying out a few language features outside c89; the - coding guidelines document did not talk about them and instead had - a blanket ban against them. - - * A test helper has been introduced to optimize preparation of test - repositories with many simple commits, and a handful of test - scripts have been updated to use it. - - -Fixes since v2.22 ------------------ - - * A relative pathname given to "git init --template=<path> <repo>" - ought to be relative to the directory "git init" gets invoked in, - but it instead was made relative to the repository, which has been - corrected. - - * "git worktree add" used to fail when another worktree connected to - the same repository was corrupt, which has been corrected. - - * The ownership rule for the file descriptor to fast-import remote - backend was mixed up, leading to an unrelated file descriptor getting - closed, which has been fixed. - - * A "merge -c" instruction during "git rebase --rebase-merges" should - give the user a chance to edit the log message, even when there is - otherwise no need to create a new merge and replace the existing - one (i.e. fast-forward instead), but did not. Which has been - corrected. - - * Code cleanup and futureproof. - - * More parameter validation. - - * "git update-server-info" used to leave stale packfiles in its - output, which has been corrected. - - * The server side support for "git fetch" used to show incorrect - value for the HEAD symbolic ref when the namespace feature is in - use, which has been corrected. - - * "git am -i --resolved" segfaulted after trying to see a commit as - if it were a tree, which has been corrected. - - * "git bundle verify" needs to see if prerequisite objects exist in - the receiving repository, but the command did not check if we are - in a repository upfront, which has been corrected. - - * "git merge --squash" is designed to update the working tree and the - index without creating the commit, and this cannot be countermanded - by adding the "--commit" option; the command now refuses to work - when both options are given. - - * The data collected by fsmonitor was not properly written back to - the on-disk index file, breaking t7519 tests occasionally, which - has been corrected. - - * Update to Unicode 12.1 width table. - - * The command line to invoke a "git cat-file" command from inside - "git p4" was not properly quoted to protect a caret and running a - broken command on Windows, which has been corrected. - - * "git request-pull" learned to warn when the ref we ask them to pull - from in the local repository and in the published repository are - different. - - * When creating a partial clone, the object filtering criteria is - recorded for the origin of the clone, but this incorrectly used a - hardcoded name "origin" to name that remote; it has been corrected - to honor the "--origin <name>" option. - - * "git fetch" into a lazy clone forgot to fetch base objects that are - necessary to complete delta in a thin packfile, which has been - corrected. - - * The filter_data used in the list-objects-filter (which manages a - lazily sparse clone repository) did not use the dynamic array API - correctly---'nr' is supposed to point at one past the last element - of the array in use. This has been corrected. - - * The description about slashes in gitignore patterns (used to - indicate things like "anchored to this level only" and "only - matches directories") has been revamped. - - * The URL decoding code has been updated to avoid going past the end - of the string while parsing %-<hex>-<hex> sequence. - - * The list of for-each like macros used by clang-format has been - updated. - - * "git branch --list" learned to show branches that are checked out - in other worktrees connected to the same repository prefixed with - '+', similar to the way the currently checked out branch is shown - with '*' in front. - (merge 6e9381469e nb/branch-show-other-worktrees-head later to maint). - - * Code restructuring during 2.20 period broke fetching tags via - "import" based transports. - - * The commit-graph file is now part of the "files that the runtime - may keep open file descriptors on, all of which would need to be - closed when done with the object store", and the file descriptor to - an existing commit-graph file now is closed before "gc" finalizes a - new instance to replace it. - - * "git checkout -p" needs to selectively apply a patch in reverse, - which did not work well. - - * Code clean-up to avoid signed integer wraparounds during binary search. - - * "git interpret-trailers" always treated '#' as the comment - character, regardless of core.commentChar setting, which has been - corrected. - - * "git stash show 23" used to work, but no more after getting - rewritten in C; this regression has been corrected. - - * "git rebase --abort" used to leave refs/rewritten/ when concluding - "git rebase -r", which has been corrected. - - * An incorrect list of options was cached after command line - completion failed (e.g. trying to complete a command that requires - a repository outside one), which has been corrected. - - * The code to parse scaled numbers out of configuration files has - been made more robust and also easier to follow. - - * The codepath to compute delta islands used to spew progress output - without giving the callers any way to squelch it, which has been - fixed. - - * Protocol capabilities that go over wire should never be translated, - but it was incorrectly marked for translation, which has been - corrected. The output of protocol capabilities for debugging has - been tweaked a bit. - - * Use "Erase in Line" CSI sequence that is already used in the editor - support to clear cruft in the progress output. - - * "git submodule foreach" did not protect command line options passed - to the command to be run in each submodule correctly, when the - "--recursive" option was in use. - - * The configuration variable rebase.rescheduleFailedExec should be - effective only while running an interactive rebase and should not - affect anything when running a non-interactive one, which was not - the case. This has been corrected. - - * The "git clone" documentation refers to command line options in its - description in the short form; they have been replaced with long - forms to make them more recognisable. - - * Generation of pack bitmaps are now disabled when .keep files exist, - as these are mutually exclusive features. - (merge 7328482253 ew/repack-with-bitmaps-by-default later to maint). - - * "git rm" to resolve a conflicted path leaked an internal message - "needs merge" before actually removing the path, which was - confusing. This has been corrected. - - * "git stash --keep-index" did not work correctly on paths that have - been removed, which has been fixed. - (merge b932f6a5e8 tg/stash-keep-index-with-removed-paths later to maint). - - * Window 7 update ;-) - - * A codepath that reads from GPG for signed object verification read - past the end of allocated buffer, which has been fixed. - - * "git clean" silently skipped a path when it cannot lstat() it; now - it gives a warning. - - * "git push --atomic" that goes over the transport-helper (namely, - the smart http transport) failed to prevent refs to be pushed when - it can locally tell that one of the ref update will fail without - having to consult the other end, which has been corrected. - - * The internal diff machinery can be made to read out of bounds while - looking for --function-context line in a corner case, which has been - corrected. - (merge b777f3fd61 jk/xdiff-clamp-funcname-context-index later to maint). - - * Other code cleanup, docfix, build fix, etc. - (merge fbec05c210 cc/test-oidmap later to maint). - (merge 7a06fb038c jk/no-system-includes-in-dot-c later to maint). - (merge 81ed2b405c cb/xdiff-no-system-includes-in-dot-c later to maint). - (merge d61e6ce1dd sg/fsck-config-in-doc later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.23.1.txt b/third_party/git/Documentation/RelNotes/2.23.1.txt deleted file mode 100644 index 2083b492ce50..000000000000 --- a/third_party/git/Documentation/RelNotes/2.23.1.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v2.23.1 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6, v2.15.4, -v2.17.3, v2.20.2 and in v2.21.1, addressing the security issues -CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, -CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and -CVE-2019-19604; see the release notes for those versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.23.2.txt b/third_party/git/Documentation/RelNotes/2.23.2.txt deleted file mode 100644 index b697cbe0e31a..000000000000 --- a/third_party/git/Documentation/RelNotes/2.23.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.23.2 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.23.3.txt b/third_party/git/Documentation/RelNotes/2.23.3.txt deleted file mode 100644 index 2e35490137b7..000000000000 --- a/third_party/git/Documentation/RelNotes/2.23.3.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.23.3 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.24.0.txt b/third_party/git/Documentation/RelNotes/2.24.0.txt deleted file mode 100644 index bde154124cb8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.24.0.txt +++ /dev/null @@ -1,398 +0,0 @@ -Git 2.24 Release Notes -====================== - -Updates since v2.23 -------------------- - -Backward compatibility note - - * "filter-branch" is showing its age and alternatives are available. - From this release, we started to discourage its use and hint - people about filter-repo. - -UI, Workflows & Features - - * We now have an active interim maintainer for the Git-Gui part of - the system. Praise and thank Pratyush Yadav for volunteering. - - * The command line parser learned "--end-of-options" notation; the - standard convention for scripters to have hardcoded set of options - first on the command line, and force the command to treat end-user - input as non-options, has been to use "--" as the delimiter, but - that would not work for commands that use "--" as a delimiter - between revs and pathspec. - - * A mechanism to affect the default setting for a (related) group of - configuration variables is introduced. - - * "git fetch" learned "--set-upstream" option to help those who first - clone from their private fork they intend to push to, add the true - upstream via "git remote add" and then "git fetch" from it. - - * Device-tree files learned their own userdiff patterns. - (merge 3c81760bc6 sb/userdiff-dts later to maint). - - * "git rebase --rebase-merges" learned to drive different merge - strategies and pass strategy specific options to them. - - * A new "pre-merge-commit" hook has been introduced. - - * Command line completion updates for "git -c var.name=val" have been - added. - - * The lazy clone machinery has been taught that there can be more - than one promisor remote and consult them in order when downloading - missing objects on demand. - - * The list-objects-filter API (used to create a sparse/lazy clone) - learned to take a combined filter specification. - - * The documentation and tests for "git format-patch" have been - cleaned up. - - * On Windows, the root level of UNC share is now allowed to be used - just like any other directory. - - * The command line completion support (in contrib/) learned about the - "--skip" option of "git revert" and "git cherry-pick". - - * "git rebase --keep-base <upstream>" tries to find the original base - of the topic being rebased and rebase on top of that same base, - which is useful when running the "git rebase -i" (and its limited - variant "git rebase -x"). - - The command also has learned to fast-forward in more cases where it - can instead of replaying to recreate identical commits. - - * A configuration variable tells "git fetch" to write the commit - graph after finishing. - - * "git add -i" has been taught to show the total number of hunks and - the hunks that has been processed so far when showing prompts. - - * "git fetch --jobs=<n>" allowed <n> parallel jobs when fetching - submodules, but this did not apply to "git fetch --multiple" that - fetches from multiple remote repositories. It now does. - - * The installation instruction for zsh completion script (in - contrib/) has been a bit improved. - - -Performance, Internal Implementation, Development Support etc. - - * The code to write commit-graph over given commit object names has - been made a bit more robust. - - * The first line of verbose output from each test piece now carries - the test name and number to help scanning with eyeballs. - - * Further clean-up of the initialization code. - - * xmalloc() used to have a mechanism to ditch memory and address - space resources as the last resort upon seeing an allocation - failure from the underlying malloc(), which made the code complex - and thread-unsafe with dubious benefit, as major memory resource - users already do limit their uses with various other mechanisms. - It has been simplified away. - - * Unnecessary full-tree diff in "git log -L" machinery has been - optimized away. - - * The http transport lacked some optimization the native transports - learned to avoid unnecessary ref advertisement, which has been - corrected. - - * Preparation for SHA-256 upgrade continues in the test department. - (merge 0c37c41d13 bc/hash-independent-tests-part-5 later to maint). - - * The memory ownership model of the "git fast-import" got - straightened out. - - * Output from trace2 subsystem is formatted more prettily now. - - * The internal code originally invented for ".gitignore" processing - got reshuffled and renamed to make it less tied to "excluding" and - stress more that it is about "matching", as it has been reused for - things like sparse checkout specification that want to check if a - path is "included". - - * "git stash" learned to write refreshed index back to disk. - - * Coccinelle checks are done on more source files than before now. - - * The cache-tree code has been taught to be less aggressive in - attempting to see if a tree object it computed already exists in - the repository. - - * The code to parse and use the commit-graph file has been made more - robust against corrupted input. - - * The hg-to-git script (in contrib/) has been updated to work with - Python 3. - - * Update the way build artifacts in t/helper/ directory are ignored. - - * Preparation for SHA-256 upgrade continues. - - * "git log --graph" for an octopus merge is sometimes colored - incorrectly, which is demonstrated and documented but not yet - fixed. - - * The trace2 output, when sending them to files in a designated - directory, can populate the directory with too many files; a - mechanism is introduced to set the maximum number of files and - discard further logs when the maximum is reached. - - * We have adopted a Code-of-conduct document. - (merge 3f9ef874a7 jk/coc later to maint). - - -Fixes since v2.23 ------------------ - - * "git grep --recurse-submodules" that looks at the working tree - files looked at the contents in the index in submodules, instead of - files in the working tree. - (merge 6a289d45c0 mt/grep-submodules-working-tree later to maint). - - * Codepaths to walk tree objects have been audited for integer - overflows and hardened. - (merge 5aa02f9868 jk/tree-walk-overflow later to maint). - - * "git pack-refs" can lose refs that are created while running, which - is getting corrected. - (merge a613d4f817 sc/pack-refs-deletion-racefix later to maint). - - * "git checkout" and "git restore" to re-populate the index from a - tree-ish (typically HEAD) did not work correctly for a path that - was removed and then added again with the intent-to-add bit, when - the corresponding working tree file was empty. This has been - corrected. - - * Compilation fix. - (merge 70597e8386 rs/nedalloc-fixlets later to maint). - - * "git gui" learned to call the clean-up procedure before exiting. - (merge 0d88f3d2c5 py/git-gui-do-quit later to maint). - - * We promoted the "indent heuristics" that decides where to split - diff hunks from experimental to the default a few years ago, but - some stale documentation still marked it as experimental, which has - been corrected. - (merge 64e5e1fba1 sg/diff-indent-heuristic-non-experimental later to maint). - - * Fix a mismerge that happened in 2.22 timeframe. - (merge acb7da05ac en/checkout-mismerge-fix later to maint). - - * "git archive" recorded incorrect length in extended pax header in - some corner cases, which has been corrected. - (merge 71d41ff651 rs/pax-extended-header-length-fix later to maint). - - * On-demand object fetching in lazy clone incorrectly tried to fetch - commits from submodule projects, while still working in the - superproject, which has been corrected. - (merge a63694f523 jt/diff-lazy-fetch-submodule-fix later to maint). - - * Prepare get_short_oid() codepath to be thread-safe. - (merge 7cfcb16b0e rs/sort-oid-array-thread-safe later to maint). - - * "for-each-ref" and friends that show refs did not protect themselves - against ancient tags that did not record tagger names when asked to - show "%(taggername)", which have been corrected. - (merge 8b3f33ef11 mp/for-each-ref-missing-name-or-email later to maint). - - * The "git am" based backend of "git rebase" ignored the result of - updating ".gitattributes" done in one step when replaying - subsequent steps. - (merge 2c65d90f75 bc/reread-attributes-during-rebase later to maint). - - * Tell cURL library to use the same malloc() implementation, with the - xmalloc() wrapper, as the rest of the system, for consistency. - (merge 93b980e58f cb/curl-use-xmalloc later to maint). - - * Build fix to adjust .gitignore to unignore a path that we started to track. - (merge aac6ff7b5b js/visual-studio later to maint). - - * A few implementation fixes in the notes API. - (merge 60fe477a0b mh/notes-duplicate-entries later to maint). - - * Fix an earlier regression to "git push --all" which should have - been forbidden when the target remote repository is set to be a - mirror. - (merge 8e4c8af058 tg/push-all-in-mirror-forbidden later to maint). - - * Fix an earlier regression in the test suite, which mistakenly - stopped running HTTPD tests. - (merge 3960290675 sg/git-test-boolean later to maint). - - * "git rebase --autostash <upstream> <branch>", when <branch> is - different from the current branch, incorrectly moved the tip of the - current branch, which has been corrected. - (merge bf1e28e0ad bw/rebase-autostash-keep-current-branch later to maint). - - * Update support for Asciidoctor documentation toolchain. - (merge 83b0b8953e ma/asciidoctor-refmiscinfo later to maint). - - * Start using DocBook 5 (instead of DocBook 4.5) as Asciidoctor 2.0 - no longer works with the older one. - (merge f6461b82b9 bc/doc-use-docbook-5 later to maint). - - * The markup used in user-manual has been updated to work better with - asciidoctor. - (merge c4d2f6143a ma/user-manual-markup-update later to maint). - - * Make sure the grep machinery does not abort when seeing a payload - that is not UTF-8 even when JIT is not in use with PCRE1. - (merge ad7c543e3b cb/skip-utf8-check-with-pcre1 later to maint). - - * The name of the blob object that stores the filter specification - for sparse cloning/fetching was interpreted in a wrong place in the - code, causing Git to abort. - - * "git log --decorate-refs-exclude=<pattern>" was incorrectly - overruled when the "--simplify-by-decoration" option is used, which - has been corrected. - (merge 0cc7380d88 rs/simplify-by-deco-with-deco-refs-exclude later to maint). - - * The "upload-pack" (the counterpart of "git fetch") needs to disable - commit-graph when responding to a shallow clone/fetch request, but - the way this was done made Git panic, which has been corrected. - - * The object traversal machinery has been optimized not to load tree - objects when we are only interested in commit history. - (merge 72ed80c784 jk/list-objects-optim-wo-trees later to maint). - - * The object name parser for "Nth parent" syntax has been made more - robust against integer overflows. - (merge 59fa5f5a25 rs/nth-parent-parse later to maint). - - * The code used in following tags in "git fetch" has been optimized. - (merge b7e2d8bca5 ms/fetch-follow-tag-optim later to maint). - - * Regression fix for progress output. - (merge 2bb74b53a4 sg/progress-fix later to maint). - - * A bug in merge-recursive code that triggers when a branch with a - symbolic link is merged with a branch that replaces it with a - directory has been fixed. - (merge 83e3ad3b12 jt/merge-recursive-symlink-is-not-a-dir-in-way later to maint). - - * The rename detection logic sorts a list of rename source candidates - by similarity to pick the best candidate, which means that a tie - between sources with the same similarity is broken by the original - location in the original candidate list (which is sorted by path). - Force the sorting by similarity done with a stable sort, which is - not promised by system supplied qsort(3), to ensure consistent - results across platforms. - (merge 2049b8dc65 js/diff-rename-force-stable-sort later to maint). - - * The code to skip "UTF" and "UTF-" prefix, when computing an advice - message, did not work correctly when the prefix was "UTF", which - has been fixed. - (merge b181676ce9 rs/convert-fix-utf-without-dash later to maint). - - * The author names taken from SVN repositories may have extra leading - or trailing whitespaces, which are now munged away. - (merge 4ddd4bddb1 tk/git-svn-trim-author-name later to maint). - - * "git rebase -i" showed a wrong HEAD while "reword" open the editor. - (merge b0a3186140 pw/rebase-i-show-HEAD-to-reword later to maint). - - * A few simplification and bugfixes to PCRE interface. - (merge c581e4a749 ab/pcre-jit-fixes later to maint). - - * PCRE fixes. - (merge ff61681b46 cb/pcre1-cleanup later to maint). - - * "git range-diff" segfaulted when diff.noprefix configuration was - used, as it blindly expected the patch it internally generates to - have the standard a/ and b/ prefixes. The command now forces the - internal patch to be built without any prefix, not to be affected - by any end-user configuration. - (merge 937b76ed49 js/range-diff-noprefix later to maint). - - * "git stash apply" in a subdirectory of a secondary worktree failed - to access the worktree correctly, which has been corrected. - (merge dfd557c978 js/stash-apply-in-secondary-worktree later to maint). - - * The merge-recursive machinery is one of the most complex parts of - the system that accumulated cruft over time. This large series - cleans up the implementation quite a bit. - (merge b657047719 en/merge-recursive-cleanup later to maint). - - * Pretty-printed command line formatter (used in e.g. reporting the - command being run by the tracing API) had a bug that lost an - argument that is an empty string, which has been corrected. - (merge ce2d7ed2fd gs/sq-quote-buf-pretty later to maint). - - * "git range-diff" failed to handle mode-only change, which has been - corrected. - (merge 2b6a9b13ca tg/range-diff-output-update later to maint). - - * Dev support update. - (merge 4f3c1dc5d6 dl/allow-running-cocci-verbosely later to maint). - - * "git format-patch -o <outdir>" did an equivalent of "mkdir <outdir>" - not "mkdir -p <outdir>", which was corrected. - - * "git stash save" lost local changes to submodules, which has been - corrected. - (merge 556895d0c8 jj/stash-reset-only-toplevel later to maint). - - * The atomic push over smart HTTP transport did not work, which has - been corrected. - (merge 6f1194246a bc/smart-http-atomic-push later to maint). - - * Other code cleanup, docfix, build fix, etc. - (merge d1387d3895 en/fast-import-merge-doc later to maint). - (merge 1c24a54ea4 bm/repository-layout-typofix later to maint). - (merge 415b770b88 ds/midx-expire-repack later to maint). - (merge 19800bdc3f nd/diff-parseopt later to maint). - (merge 58166c2e9d tg/t0021-racefix later to maint). - (merge 7027f508c7 dl/compat-cleanup later to maint). - (merge e770fbfeff jc/test-cleanup later to maint). - (merge 1fd881d404 rs/trace2-dst-warning later to maint). - (merge 7e92756751 mh/http-urlmatch-cleanup later to maint). - (merge 9784f97321 mh/release-commit-memory-fix later to maint). - (merge 60d198d022 tb/banned-vsprintf-namefix later to maint). - (merge 80e3658647 rs/help-unknown-ref-does-not-return later to maint). - (merge 0a8bc7068f dt/remote-helper-doc-re-lock-option later to maint). - (merge 27fd1e4ea7 en/merge-options-ff-and-friends later to maint). - (merge 502c386ff9 sg/clean-nested-repo-with-ignored later to maint). - (merge 26e3d1cbea am/mailmap-andrey-mazo later to maint). - (merge 47b27c96fa ss/get-time-cleanup later to maint). - (merge dd2e50a84e jk/commit-graph-cleanup later to maint). - (merge 4fd39c76e6 cs/pretty-formats-doc-typofix later to maint). - (merge 40e747e89d dl/submodule-set-branch later to maint). - (merge 689a146c91 rs/commit-graph-use-list-count later to maint). - (merge 0eb7c37a8a js/doc-patch-text later to maint). - (merge 4b3aa170d1 rs/nth-switch-code-simplification later to maint). - (merge 0d4304c124 ah/doc-submodule-ignore-submodules later to maint). - (merge af78249463 cc/svn-fe-py-shebang later to maint). - (merge 7bd97d6dff rs/alias-use-copy-array later to maint). - (merge c46ebc2496 sg/travis-help-debug later to maint). - (merge 24c681794f ps/my-first-contribution-alphasort later to maint). - (merge 75b2c15435 cb/do-not-use-test-cmp-with-a later to maint). - (merge cda0d497e3 bw/submodule-helper-usage-fix later to maint). - (merge fe0ed5d5e9 am/visual-studio-config-fix later to maint). - (merge 2e09c01232 sg/name-rev-cutoff-underflow-fix later to maint). - (merge ddb3c856f3 as/shallow-slab-use-fix later to maint). - (merge 71f4960b91 js/mingw-spawn-with-spaces-in-path later to maint). - (merge 53d687bf5f ah/cleanups later to maint). - (merge f537485fa5 rs/test-remove-useless-debugging-cat later to maint). - (merge 11a3d3aadd dl/rev-list-doc-cleanup later to maint). - (merge d928a8388a am/t0028-utf16-tests later to maint). - (merge b05b40930e dl/t0000-skip-test-test later to maint). - (merge 03d3b1297c js/xdiffi-comment-updates later to maint). - (merge 57d8f4b4c7 js/doc-stash-save later to maint). - (merge 8c1cfd58e3 ta/t1308-typofix later to maint). - (merge fa364ad790 bb/utf8-wcwidth-cleanup later to maint). - (merge 68b69211b2 bb/compat-util-comment-fix later to maint). - (merge 5cc6a4be11 rs/http-push-simplify later to maint). - (merge a81e42d235 rs/column-use-utf8-strnwidth later to maint). - (merge 062a309d36 rs/remote-curl-use-argv-array later to maint). - (merge 3b3c79f6c9 nr/diff-highlight-indent-fix later to maint). - (merge 3444ec2eb2 wb/fsmonitor-bitmap-fix later to maint). - (merge 10da030ab7 cb/pcre2-chartables-leakfix later to maint). - (merge 60e6569a12 js/mingw-needs-hiding-fix later to maint). - (merge 52bd3e4657 rl/gitweb-blame-prev-fix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.24.1.txt b/third_party/git/Documentation/RelNotes/2.24.1.txt deleted file mode 100644 index 18104850fe4e..000000000000 --- a/third_party/git/Documentation/RelNotes/2.24.1.txt +++ /dev/null @@ -1,8 +0,0 @@ -Git v2.24.1 Release Notes -========================= - -This release merges up the fixes that appear in v2.14.6, v2.15.4, -v2.17.3, v2.20.2 and in v2.21.1, addressing the security issues -CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, -CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, CVE-2019-1387, and -CVE-2019-19604; see the release notes for those versions for details. diff --git a/third_party/git/Documentation/RelNotes/2.24.2.txt b/third_party/git/Documentation/RelNotes/2.24.2.txt deleted file mode 100644 index 0049f65503eb..000000000000 --- a/third_party/git/Documentation/RelNotes/2.24.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.24.2 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.24.3.txt b/third_party/git/Documentation/RelNotes/2.24.3.txt deleted file mode 100644 index 5302e0f73b50..000000000000 --- a/third_party/git/Documentation/RelNotes/2.24.3.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.24.3 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.25.0.txt b/third_party/git/Documentation/RelNotes/2.25.0.txt deleted file mode 100644 index 91ceb3492707..000000000000 --- a/third_party/git/Documentation/RelNotes/2.25.0.txt +++ /dev/null @@ -1,370 +0,0 @@ -Git 2.25 Release Notes -====================== - -Updates since v2.24 -------------------- - -Backward compatibility notes - - -UI, Workflows & Features - - * A tutorial on object enumeration has been added. - - * The branch description ("git branch --edit-description") has been - used to fill the body of the cover letters by the format-patch - command; this has been enhanced so that the subject can also be - filled. - - * "git rebase --preserve-merges" has been marked as deprecated; this - release stops advertising it in the "git rebase -h" output. - - * The code to generate multi-pack index learned to show (or not to - show) progress indicators. - - * "git apply --3way" learned to honor merge.conflictStyle - configuration variable, like merges would. - - * The custom format for "git log --format=<format>" learned the l/L - placeholder that is similar to e/E that fills in the e-mail - address, but only the local part on the left side of '@'. - - * Documentation pages for "git shortlog" now list commit limiting - options explicitly. - - * The patterns to detect function boundary for Elixir language has - been added. - - * The completion script (in contrib/) learned that the "--onto" - option of "git rebase" can take its argument as the value of the - option. - - * The userdiff machinery has been taught that "async def" is another - way to begin a "function" in Python. - - * "git range-diff" learned to take the "--notes=<ref>" and the - "--no-notes" options to control the commit notes included in the - log message that gets compared. - - * "git rev-parse --show-toplevel" run outside of any working tree did - not error out, which has been corrected. - - * A few commands learned to take the pathspec from the standard input - or a named file, instead of taking it as the command line - arguments, with the "--pathspec-from-file" option. - - * "git submodule" learned a subcommand "set-url". - - * "git log" family learned "--pretty=reference" that gives the name - of a commit in the format that is often used to refer to it in log - messages. - - * The interaction between "git clone --recurse-submodules" and - alternate object store was ill-designed. The documentation and - code have been taught to make more clear recommendations when the - users see failures. - - * Management of sparsely checked-out working tree has gained a - dedicated "sparse-checkout" command. - - * Miscellaneous small UX improvements on "git-p4". - - * "git sparse-checkout list" subcommand learned to give its output in - a more concise form when the "cone" mode is in effect. - - -Performance, Internal Implementation, Development Support etc. - - * Debugging support for lazy cloning has been a bit improved. - - * Move the definition of a set of bitmask constants from 0ctal - literal to (1U<<count) notation. - - * Test updates to prepare for SHA-2 transition continues. - - * Crufty code and logic accumulated over time around the object - parsing and low-level object access used in "git fsck" have been - cleaned up. - - * The implementation of "git log --graph" got refactored and then its - output got simplified. - - * Follow recent push to move API docs from Documentation/ to header - files and update config.h - - * "git bundle" has been taught to use the parse options API. "git - bundle verify" learned "--quiet" and "git bundle create" learned - options to control the progress output. - - * Handling of commit objects that use non UTF-8 encoding during - "rebase -i" has been improved. - - * The beginning of rewriting "git add -i" in C. - - * A label used in the todo list that are generated by "git rebase - --rebase-merges" is used as a part of a refname; the logic to come - up with the label has been tightened to avoid names that cannot be - used as such. - - * The logic to avoid duplicate label names generated by "git rebase - --rebase-merges" forgot that the machinery itself uses "onto" as a - label name, which must be avoided by auto-generated labels, which - has been corrected. - - * We have had compatibility fallback macro definitions for "PRIuMAX", - "PRIu32", etc. but did not for "PRIdMAX", while the code used the - last one apparently without any hiccup reported recently. The - fallback macro definitions for these <inttypes.h> macros that must - appear in C99 systems have been removed. - - * Recently we have declared that GIT_TEST_* variables take the - usual boolean values (it used to be that some used "non-empty - means true" and taking GIT_TEST_VAR=YesPlease as true); make - sure we notice and fail when non-bool strings are given to - these variables. - - * Users of oneway_merge() (like "reset --hard") learned to take - advantage of fsmonitor to avoid unnecessary lstat(2) calls. - - * Performance tweak on "git push" into a repository with many refs - that point at objects we have never heard of. - - * PerfTest fix to avoid stale result mixed up with the latest round - of test results. - - * Hide lower-level verify_signed-buffer() API as a pure helper to - implement the public check_signature() function, in order to - encourage new callers to use the correct and more strict - validation. - - * Unnecessary reading of state variables back from the disk during - sequencer operation has been reduced. - - * The code has been made to avoid gmtime() and localtime() and prefer - their reentrant counterparts. - - * In a repository with many packfiles, the cost of the procedure that - avoids registering the same packfile twice was unnecessarily high - by using an inefficient search algorithm, which has been corrected. - - * Redo "git name-rev" to avoid recursive calls. - - * FreeBSD CI support via Cirrus-CI has been added. - - -Fixes since v2.24 ------------------ - - * "rebase -i" ceased to run post-commit hook by mistake in an earlier - update, which has been corrected. - - * "git notes copy $original" ought to copy the notes attached to the - original object to HEAD, but a mistaken tightening to command line - parameter validation made earlier disabled that feature by mistake. - - * When all files from some subdirectory were renamed to the root - directory, the directory rename heuristics would fail to detect that - as a rename/merge of the subdirectory to the root directory, which has - been corrected. - - * Code clean-up and a bugfix in the logic used to tell worktree local - and repository global refs apart. - (merge f45f88b2e4 sg/dir-trie-fixes later to maint). - - * "git stash save" in a working tree that is sparsely checked out - mistakenly removed paths that are outside the area of interest. - (merge 4a58c3d7f7 js/update-index-ignore-removal-for-skip-worktree later to maint). - - * "git rev-parse --git-path HEAD.lock" did not give the right path - when run in a secondary worktree. - (merge 76a53d640f js/git-path-head-dot-lock-fix later to maint). - - * "git merge --no-commit" needs "--no-ff" if you do not want to move - HEAD, which has been corrected in the manual page for "git bisect". - (merge 8dd327b246 ma/bisect-doc-sample-update later to maint). - - * "git worktree add" internally calls "reset --hard" that should not - descend into submodules, even when submodule.recurse configuration - is set, but it was affected. This has been corrected. - (merge 4782cf2ab6 pb/no-recursive-reset-hard-in-worktree-add later to maint). - - * Messages from die() etc. can be mixed up from multiple processes - without even line buffering on Windows, which has been worked - around. - (merge 116d1fa6c6 js/vreportf-wo-buffering later to maint). - - * HTTP transport had possible allocator/deallocator mismatch, which - has been corrected. - - * The watchman integration for fsmonitor was racy, which has been - corrected to be more conservative. - (merge dd0b61f577 kw/fsmonitor-watchman-fix later to maint). - - * Fetching from multiple remotes into the same repository in parallel - had a bad interaction with the recent change to (optionally) update - the commit-graph after a fetch job finishes, as these parallel - fetches compete with each other. Which has been corrected. - - * Recent update to "git stash pop" made the command empty the index - when run with the "--quiet" option, which has been corrected. - - * "git fetch" codepath had a big "do not lazily fetch missing objects - when I ask if something exists" switch. This has been corrected by - marking the "does this thing exist?" calls with "if not please do not - lazily fetch it" flag. - - * Test update to avoid wasted cycles. - (merge e0316695ec sg/skip-skipped-prereq later to maint). - - * Error handling after "git push" finishes sending the packdata and - waits for the response to the remote side has been improved. - (merge ad7a403268 jk/send-pack-remote-failure later to maint). - - * Some codepaths in "gitweb" that forgot to escape URLs generated - based on end-user input have been corrected. - (merge a376e37b2c jk/gitweb-anti-xss later to maint). - - * CI jobs for macOS has been made less chatty when updating perforce - package used during testing. - (merge 0dbc4a0edf jc/azure-ci-osx-fix-fix later to maint). - - * "git unpack-objects" used to show progress based only on the number - of received and unpacked objects, which stalled when it has to - handle an unusually large object. It now shows the throughput as - well. - (merge bae60ba7e9 sg/unpack-progress-throughput later to maint). - - * The sequencer machinery compared the HEAD and the state it is - attempting to commit to decide if the result would be a no-op - commit, even when amending a commit, which was incorrect, and - has been corrected. - - * The code to parse GPG output used to assume incorrectly that the - finterprint for the primary key would always be present for a valid - signature, which has been corrected. - (merge 67a6ea6300 hi/gpg-optional-pkfp-fix later to maint). - - * "git submodule status" and "git submodule status --cached" show - different things, but the documentation did not cover them - correctly, which has been corrected. - (merge 8d483c8408 mg/doc-submodule-status-cached later to maint). - - * "git reset --patch $object" without any pathspec should allow a - tree object to be given, but incorrectly required a committish, - which has been corrected. - - * "git submodule status" that is run from a subdirectory of the - superproject did not work well, which has been corrected. - (merge 1f3aea22c7 mg/submodule-status-from-a-subdirectory later to maint). - - * The revision walking machinery uses resources like per-object flag - bits that need to be reset before a new iteration of walking - begins, but the resources related to topological walk were not - cleared correctly, which has been corrected. - (merge 0aa0c2b2ec mh/clear-topo-walk-upon-reset later to maint). - - * TravisCI update. - (merge 176441bfb5 sg/osx-force-gcc-9 later to maint). - - * While running "revert" or "cherry-pick --edit" for multiple - commits, a recent regression incorrectly detected "nothing to - commit, working tree clean", instead of replaying the commits, - which has been corrected. - (merge befd4f6a81 sg/assume-no-todo-update-in-cherry-pick later to maint). - - * Work around a issue where a FD that is left open when spawning a - child process and is kept open in the child can interfere with the - operation in the parent process on Windows. - - * One kind of progress messages were always given during commit-graph - generation, instead of following the "if it takes more than two - seconds, show progress" pattern, which has been corrected. - - * "git rebase" did not work well when format.useAutoBase - configuration variable is set, which has been corrected. - - * The "diff" machinery learned not to lose added/removed blank lines - in the context when --ignore-blank-lines and --function-context are - used at the same time. - (merge 0bb313a552 rs/xdiff-ignore-ws-w-func-context later to maint). - - * The test on "fast-import" used to get stuck when "fast-import" died - in the middle. - (merge 0d9b0d7885 sg/t9300-robustify later to maint). - - * "git format-patch" can take a set of configured format.notes values - to specify which notes refs to use in the log message part of the - output. The behaviour of this was not consistent with multiple - --notes command line options, which has been corrected. - (merge e0f9095aaa dl/format-patch-notes-config-fixup later to maint). - - * "git p4" used to ignore lfs.storage configuration variable, which - has been corrected. - (merge ea94b16fb8 rb/p4-lfs later to maint). - - * Assorted fixes to the directory traversal API. - (merge 6836d2fe06 en/fill-directory-fixes later to maint). - - * Forbid pathnames that the platform's filesystem cannot represent on - MinGW. - (merge 4dc42c6c18 js/mingw-reserved-filenames later to maint). - - * "git rebase --signoff" stopped working when the command was written - in C, which has been corrected. - (merge 4fe7e43c53 en/rebase-signoff-fix later to maint). - - * An earlier update to Git for Windows declared that a tree object is - invalid if it has a path component with backslash in it, which was - overly strict, which has been corrected. The only protection the - Windows users need is to prevent such path (or any path that their - filesystem cannot check out) from entering the index. - (merge 224c7d70fa js/mingw-loosen-overstrict-tree-entry-checks later to maint). - - * The code to write split commit-graph file(s) upon fetching computed - bogus value for the parameter used in splitting the resulting - files, which has been corrected. - (merge 63020f175f ds/commit-graph-set-size-mult later to maint). - - * Other code cleanup, docfix, build fix, etc. - (merge 80736d7c5e jc/am-show-current-patch-docfix later to maint). - (merge 8b656572ca sg/commit-graph-usage-fix later to maint). - (merge 6c02042139 mr/clone-dir-exists-to-path-exists later to maint). - (merge 44ae131e38 sg/blame-indent-heuristics-is-now-the-default later to maint). - (merge 0115e5d929 dl/doc-diff-no-index-implies-exit-code later to maint). - (merge 270de6acbe en/t6024-style later to maint). - (merge 14c4776d75 ns/test-desc-typofix later to maint). - (merge 68d40f30c4 dj/typofix-merge-strat later to maint). - (merge f66e0401ab jk/optim-in-pack-idx-conversion later to maint). - (merge 169bed7421 rs/parse-options-dup-null-fix later to maint). - (merge 51bd6be32d rs/use-copy-array-in-mingw-shell-command-preparation later to maint). - (merge b018719927 ma/t7004 later to maint). - (merge 932757b0cc ar/install-doc-update-cmds-needing-the-shell later to maint). - (merge 46efd28be1 ep/guard-kset-tar-headers later to maint). - (merge 9e5afdf997 ec/fetch-mark-common-refs-trace2 later to maint). - (merge f0e58b3fe8 pb/submodule-update-fetches later to maint). - (merge 2a02262078 dl/t5520-cleanup later to maint). - (merge a4fb016ba1 js/pkt-line-h-typofix later to maint). - (merge 54a7a64613 rs/simplify-prepare-cmd later to maint). - (merge 3eae30e464 jk/lore-is-the-archive later to maint). - (merge 14b7664df8 dl/lore-is-the-archive later to maint). - (merge 0e40a73a4c po/bundle-doc-clonable later to maint). - (merge e714b898c6 as/t7812-missing-redirects-fix later to maint). - (merge 528d9e6d01 jk/perf-wo-git-dot-pm later to maint). - (merge fc42f20e24 sg/test-squelch-noise-in-commit-bulk later to maint). - (merge c64368e3a2 bc/t9001-zsh-in-posix-emulation-mode later to maint). - (merge 11de8dd7ef dr/branch-usage-casefix later to maint). - (merge e05e8cf074 rs/archive-zip-code-cleanup later to maint). - (merge 147ee35558 rs/commit-export-env-simplify later to maint). - (merge 4507ecc771 rs/patch-id-use-oid-to-hex later to maint). - (merge 51a0a4ed95 mr/bisect-use-after-free later to maint). - (merge cc2bd5c45d pb/submodule-doc-xref later to maint). - (merge df5be01669 ja/doc-markup-cleanup later to maint). - (merge 7c5cea7242 mr/bisect-save-pointer-to-const-string later to maint). - (merge 20a67e8ce9 js/use-test-tool-on-path later to maint). - (merge 4e61b2214d ew/packfile-syscall-optim later to maint). - (merge ace0f86c7f pb/clarify-line-log-doc later to maint). - (merge 763a59e71c en/merge-recursive-oid-eq-simplify later to maint). - (merge 4e2c4c0d4f do/gitweb-typofix-in-comments later to maint). - (merge 421c0ffb02 jb/doc-multi-pack-idx-fix later to maint). - (merge f8740c586b pm/am-in-body-header-doc-update later to maint). - (merge 5814d44d9b tm/doc-submodule-absorb-fix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.25.1.txt b/third_party/git/Documentation/RelNotes/2.25.1.txt deleted file mode 100644 index cd869b02bbbc..000000000000 --- a/third_party/git/Documentation/RelNotes/2.25.1.txt +++ /dev/null @@ -1,55 +0,0 @@ -Git 2.25.1 Release Notes -======================== - -Fixes since v2.25 ------------------ - - * "git commit" gives output similar to "git status" when there is - nothing to commit, but without honoring the advise.statusHints - configuration variable, which has been corrected. - - * has_object_file() said "no" given an object registered to the - system via pretend_object_file(), making it inconsistent with - read_object_file(), causing lazy fetch to attempt fetching an - empty tree from promisor remotes. - - * The code that tries to skip over the entries for the paths in a - single directory using the cache-tree was not careful enough - against corrupt index file. - - * Complete an update to tutorial that encourages "git switch" over - "git checkout" that was done only half-way. - - * Reduce unnecessary round-trip when running "ls-remote" over the - stateless RPC mechanism. - - * "git restore --staged" did not correctly update the cache-tree - structure, resulting in bogus trees to be written afterwards, which - has been corrected. - - * The code recently added to move to the entry beyond the ones in the - same directory in the index in the sparse-cone mode did not count - the number of entries to skip over incorrectly, which has been - corrected. - - * Work around test breakages caused by custom regex engine used in - libasan, when address sanitizer is used with more recent versions - of gcc and clang. - - * "git fetch --refmap=" option has got a better documentation. - - * Corner case bugs in "git clean" that stems from a (necessarily for - performance reasons) awkward calling convention in the directory - enumeration API has been corrected. - - * "git grep --no-index" should not get affected by the contents of - the .gitmodules file but when "--recurse-submodules" is given or - the "submodule.recurse" variable is set, it did. Now these - settings are ignored in the "--no-index" mode. - - * Technical details of the bundle format has been documented. - - * Unhelpful warning messages during documentation build have been - squelched. - -Also contains various documentation updates, code clean-ups and minor fixups. diff --git a/third_party/git/Documentation/RelNotes/2.25.2.txt b/third_party/git/Documentation/RelNotes/2.25.2.txt deleted file mode 100644 index 303c53a17fdc..000000000000 --- a/third_party/git/Documentation/RelNotes/2.25.2.txt +++ /dev/null @@ -1,60 +0,0 @@ -Git 2.25.2 Release Notes -======================== - -Fixes since v2.25.1 -------------------- - - * Minor bugfixes to "git add -i" that has recently been rewritten in C. - - * An earlier update to show the location of working tree in the error - message did not consider the possibility that a git command may be - run in a bare repository, which has been corrected. - - * The "--recurse-submodules" option of various subcommands did not - work well when run in an alternate worktree, which has been - corrected. - - * Running "git rm" on a submodule failed unnecessarily when - .gitmodules is only cache-dirty, which has been corrected. - - * "git rebase -i" identifies existing commits in its todo file with - their abbreviated object name, which could become ambigous as it - goes to create new commits, and has a mechanism to avoid ambiguity - in the main part of its execution. A few other cases however were - not covered by the protection against ambiguity, which has been - corrected. - - * The index-pack code now diagnoses a bad input packstream that - records the same object twice when it is used as delta base; the - code used to declare a software bug when encountering such an - input, but it is an input error. - - * The code to automatically shrink the fan-out in the notes tree had - an off-by-one bug, which has been killed. - - * "git check-ignore" did not work when the given path is explicitly - marked as not ignored with a negative entry in the .gitignore file. - - * The merge-recursive machinery failed to refresh the cache entry for - a merge result in a couple of places, resulting in an unnecessary - merge failure, which has been fixed. - - * Fix for a bug revealed by a recent change to make the protocol v2 - the default. - - * "git merge signed-tag" while lacking the public key started to say - "No signature", which was utterly wrong. This regression has been - reverted. - - * MinGW's poll() emulation has been improved. - - * "git show" and others gave an object name in raw format in its - error output, which has been corrected to give it in hex. - - * Both "git ls-remote -h" and "git grep -h" give short usage help, - like any other Git subcommand, but it is not unreasonable to expect - that the former would behave the same as "git ls-remote --head" - (there is no other sensible behaviour for the latter). The - documentation has been updated in an attempt to clarify this. - -Also contains various documentation updates, code clean-ups and minor fixups. diff --git a/third_party/git/Documentation/RelNotes/2.25.3.txt b/third_party/git/Documentation/RelNotes/2.25.3.txt deleted file mode 100644 index 15f7f21f1002..000000000000 --- a/third_party/git/Documentation/RelNotes/2.25.3.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.25.3 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.25.4.txt b/third_party/git/Documentation/RelNotes/2.25.4.txt deleted file mode 100644 index 0dbb5daeec3e..000000000000 --- a/third_party/git/Documentation/RelNotes/2.25.4.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.25.4 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.26.0.txt b/third_party/git/Documentation/RelNotes/2.26.0.txt deleted file mode 100644 index 3a7a734c2694..000000000000 --- a/third_party/git/Documentation/RelNotes/2.26.0.txt +++ /dev/null @@ -1,341 +0,0 @@ -Git 2.26 Release Notes -====================== - -Updates since v2.25 -------------------- - -Backward compatibility notes - - * "git rebase" uses a different backend that is based on the 'merge' - machinery by default. There are a few known differences in the - behaviour from the traditional machinery based on patch+apply. - - If your workflow is negatively affected by this change, please - report it to git@vger.kernel.org so that we can take a look into - it. After doing so, you can set the 'rebase.backend' configuration - variable to 'apply', in order to use the old default behaviour in - the meantime. - - -UI, Workflows & Features - - * Sample credential helper for using .netrc has been updated to work - out of the box. - - * gpg.minTrustLevel configuration variable has been introduced to - tell various signature verification codepaths the required minimum - trust level. - - * The command line completion (in contrib/) learned to complete - subcommands and arguments to "git worktree". - - * Disambiguation logic to tell revisions and pathspec apart has been - tweaked so that backslash-escaped glob special characters do not - count in the "wildcards are pathspec" rule. - - * One effect of specifying where the GIT_DIR is (either with the - environment variable, or with the "git --git-dir=<where> cmd" - option) is to disable the repository discovery. This has been - placed a bit more stress in the documentation, as new users often - get confused. - - * Two help messages given when "git add" notices the user gave it - nothing to add have been updated to use advise() API. - - * A new version of fsmonitor-watchman hook has been introduced, to - avoid races. - - * "git config" learned to show in which "scope", in addition to in - which file, each config setting comes from. - - * The basic 7 colors learned the brighter counterparts - (e.g. "brightred"). - - * "git sparse-checkout" learned a new "add" subcommand. - - * A configuration element used for credential subsystem can now use - wildcard pattern to specify for which set of URLs the entry - applies. - - * "git clone --recurse-submodules --single-branch" now uses the same - single-branch option when cloning the submodules. - - * "git rm" and "git stash" learns the new "--pathspec-from-file" - option. - - * "git am --show-current-patch" is a way to show the piece of e-mail - for the stopped step, which is not suitable to directly feed "git - apply" (it is designed to be a good "git am" input). It learned a - new option to show only the patch part. - - * Handling of conflicting renames in merge-recursive have further - been made consistent with how existing codepaths try to mimic what - is done to add/add conflicts. - - -Performance, Internal Implementation, Development Support etc. - - * Tell .editorconfig that in this project, *.txt files are indented - with tabs. - - * The test-lint machinery knew to check "VAR=VAL shell_function" - construct, but did not check "VAR= shell_function", which has been - corrected. - - * Replace "git config --bool" calls with "git config --type=bool" in - sample templates. - - * The effort to move "git-add--interactive" to C continues. - - * Improve error message generation for "git submodule add". - - * Preparation of test scripts for the day when the object names will - use SHA-256 continues. - - * Warn programmers about pretend_object_file() that allows the code - to tentatively use in-core objects. - - * The way "git pack-objects" reuses objects stored in existing pack - to generate its result has been improved. - - * The transport protocol version 2 becomes the default one. - - * Traditionally, we avoided threaded grep while searching in objects - (as opposed to files in the working tree) as accesses to the object - layer is not thread-safe. This limitation is getting lifted. - - * "git rebase -i" (and friends) used to unnecessarily check out the - tip of the branch to be rebased, which has been corrected. - - * A low-level API function get_oid(), that accepts various ways to - name an object, used to issue end-user facing error messages - without l10n, which has been updated to be translatable. - - * Unneeded connectivity check is now disabled in a partial clone when - fetching into it. - - * Some rough edges in the sparse-checkout feature, especially around - the cone mode, have been cleaned up. - - * The diff-* plumbing family of subcommands now pay attention to the - diff.wsErrorHighlight configuration, which has been ignored before; - this allows "git add -p" to also show the whitespace problems to - the end user. - - * Some codepaths were given a repository instance as a parameter to - work in the repository, but passed the_repository instance to its - callees, which has been cleaned up (somewhat). - - * Memory footprint and performance of "git name-rev" has been - improved. - - * The object reachability bitmap machinery and the partial cloning - machinery were not prepared to work well together, because some - object-filtering criteria that partial clones use inherently rely - on object traversal, but the bitmap machinery is an optimization - to bypass that object traversal. There however are some cases - where they can work together, and they were taught about them. - - * "git rebase" has learned to use the merge backend (i.e. the - machinery that drives "rebase -i") by default, while allowing - "--apply" option to use the "apply" backend (e.g. the moral - equivalent of "format-patch piped to am"). The rebase.backend - configuration variable can be set to customize. - - * Underlying machinery of "git bisect--helper" is being refactored - into pieces that are more easily reused. - - -Fixes since v2.25 ------------------ - - * "git commit" gives output similar to "git status" when there is - nothing to commit, but without honoring the advise.statusHints - configuration variable, which has been corrected. - - * has_object_file() said "no" given an object registered to the - system via pretend_object_file(), making it inconsistent with - read_object_file(), causing lazy fetch to attempt fetching an - empty tree from promisor remotes. - - * Complete an update to tutorial that encourages "git switch" over - "git checkout" that was done only half-way. - - * C pedantry ;-) fix. - - * The code that tries to skip over the entries for the paths in a - single directory using the cache-tree was not careful enough - against corrupt index file. - - * Reduce unnecessary round-trip when running "ls-remote" over the - stateless RPC mechanism. - - * "git restore --staged" did not correctly update the cache-tree - structure, resulting in bogus trees to be written afterwards, which - has been corrected. - - * The code recently added to move to the entry beyond the ones in the - same directory in the index in the sparse-cone mode did not count - the number of entries to skip over incorrectly, which has been - corrected. - - * Rendering by "git log --graph" of ancestry lines leading to a merge - commit were made suboptimal to waste vertical space a bit with a - recent update, which has been corrected. - - * Work around test breakages caused by custom regex engine used in - libasan, when address sanitizer is used with more recent versions - of gcc and clang. - - * Minor bugfixes to "git add -i" that has recently been rewritten in C. - - * "git fetch --refmap=" option has got a better documentation. - - * "git checkout X" did not correctly fail when X is not a local - branch but could name more than one remote-tracking branches - (i.e. to be dwimmed as the starting point to create a corresponding - local branch), which has been corrected. - (merge fa74180d08 am/checkout-file-and-ref-ref-ambiguity later to maint). - - * Corner case bugs in "git clean" that stems from a (necessarily for - performance reasons) awkward calling convention in the directory - enumeration API has been corrected. - - * A fetch that is told to recursively fetch updates in submodules - inevitably produces reams of output, and it becomes hard to spot - error messages. The command has been taught to enumerate - submodules that had errors at the end of the operation. - (merge 0222540827 es/fetch-show-failed-submodules-atend later to maint). - - * The "--recurse-submodules" option of various subcommands did not - work well when run in an alternate worktree, which has been - corrected. - - * Futureproofing a test not to depend on the current implementation - detail. - - * Running "git rm" on a submodule failed unnecessarily when - .gitmodules is only cache-dirty, which has been corrected. - - * C pedantry ;-) fix. - - * "git grep --no-index" should not get affected by the contents of - the .gitmodules file but when "--recurse-submodules" is given or - the "submodule.recurse" variable is set, it did. Now these - settings are ignored in the "--no-index" mode. - - * Technical details of the bundle format has been documented. - - * Unhelpful warning messages during documentation build have been squelched. - - * "git rebase -i" identifies existing commits in its todo file with - their abbreviated object name, which could become ambiguous as it - goes to create new commits, and has a mechanism to avoid ambiguity - in the main part of its execution. A few other cases however were - not covered by the protection against ambiguity, which has been - corrected. - - * Allow the rebase.missingCommitsCheck configuration to kick in when - "rebase --edit-todo" and "rebase --continue" restarts the procedure. - (merge 5a5445d878 ag/edit-todo-drop-check later to maint). - - * The way "git submodule status" reports an initialized but not yet - populated submodule has not been reimplemented correctly when a - part of the "git submodule" command was rewritten in C, which has - been corrected. - (merge f38c92452d pk/status-of-uncloned-submodule later to maint). - - * The code to automatically shrink the fan-out in the notes tree had - an off-by-one bug, which has been killed. - - * The index-pack code now diagnoses a bad input packstream that - records the same object twice when it is used as delta base; the - code used to declare a software bug when encountering such an - input, but it is an input error. - - - * The code to compute the commit-graph has been taught to use a more - robust way to tell if two object directories refer to the same - thing. - (merge a7df60cac8 tb/commit-graph-object-dir later to maint). - - * "git remote rename X Y" needs to adjust configuration variables - (e.g. branch.<name>.remote) whose value used to be X to Y. - branch.<name>.pushRemote is now also updated. - - * Update to doc-diff. - - * Doc markup fix. - - * "git check-ignore" did not work when the given path is explicitly - marked as not ignored with a negative entry in the .gitignore file. - - * The merge-recursive machinery failed to refresh the cache entry for - a merge result in a couple of places, resulting in an unnecessary - merge failure, which has been fixed. - - * Fix for a bug revealed by a recent change to make the protocol v2 - the default. - - * In rare cases "git worktree add <path>" could think that <path> - was already a registered worktree even when it wasn't and refuse - to add the new worktree. This has been corrected. - (merge bb69b3b009 es/worktree-avoid-duplication-fix later to maint). - - * "git push" should stop from updating a branch that is checked out - when receive.denyCurrentBranch configuration is set, but it failed - to pay attention to checkouts in secondary worktrees. This has - been corrected. - (merge 4d864895a2 hv/receive-denycurrent-everywhere later to maint). - - * "git rebase BASE BRANCH" rebased/updated the tip of BRANCH and - checked it out, even when the BRANCH is checked out in a different - worktree. This has been corrected. - (merge b5cabb4a96 es/do-not-let-rebase-switch-to-protected-branch later to maint). - - * "git describe" in a repository with multiple root commits sometimes - gave up looking for the best tag to describe a given commit with - too early, which has been adjusted. - - * "git merge signed-tag" while lacking the public key started to say - "No signature", which was utterly wrong. This regression has been - reverted. - - * MinGW's poll() emulation has been improved. - - * "git show" and others gave an object name in raw format in its - error output, which has been corrected to give it in hex. - - * "git fetch" over HTTP walker protocol did not show any progress - output. We inherently do not know how much work remains, but still - we can show something not to bore users. - (merge 7655b4119d rs/show-progress-in-dumb-http-fetch later to maint). - - * Both "git ls-remote -h" and "git grep -h" give short usage help, - like any other Git subcommand, but it is not unreasonable to expect - that the former would behave the same as "git ls-remote --head" - (there is no other sensible behaviour for the latter). The - documentation has been updated in an attempt to clarify this. - - * Other code cleanup, docfix, build fix, etc. - (merge d0d0a357a1 am/update-pathspec-f-f-tests later to maint). - (merge f94f7bd00d am/test-pathspec-f-f-error-cases later to maint). - (merge c513a958b6 ss/t6025-modernize later to maint). - (merge b441717256 dl/test-must-fail-fixes later to maint). - (merge d031049da3 mt/sparse-checkout-doc-update later to maint). - (merge 145136a95a jc/skip-prefix later to maint). - (merge 5290d45134 jk/alloc-cleanups later to maint). - (merge 7a9f8ca805 rs/parse-options-concat-dup later to maint). - (merge 517b60564e rs/strbuf-insertstr later to maint). - (merge f696a2b1c8 jk/mailinfo-cleanup later to maint). - (merge de26f02db1 js/test-avoid-pipe later to maint). - (merge a2dc43414c es/doc-mentoring later to maint). - (merge 02bbbe9df9 es/worktree-cleanup later to maint). - (merge 2ce6d075fa rs/micro-cleanups later to maint). - (merge 27f182b3fc rs/blame-typefix-for-fingerprint later to maint). - (merge 3c29e21eb0 ma/test-cleanup later to maint). - (merge 240fc04f81 ag/rebase-remove-redundant-code later to maint). - (merge d68ce906c7 rs/commit-graph-code-simplification later to maint). - (merge a51d9e8f07 rj/t1050-use-test-path-is-file later to maint). - (merge fd0bc17557 kk/complete-diff-color-moved later to maint). - (merge 65bf820d0e en/test-cleanup later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.26.1.txt b/third_party/git/Documentation/RelNotes/2.26.1.txt deleted file mode 100644 index 1b4ecb3fdc54..000000000000 --- a/third_party/git/Documentation/RelNotes/2.26.1.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.26.1 Release Notes -========================= - -This release merges the security fix that appears in v2.17.4; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.26.2.txt b/third_party/git/Documentation/RelNotes/2.26.2.txt deleted file mode 100644 index d434d0c695e4..000000000000 --- a/third_party/git/Documentation/RelNotes/2.26.2.txt +++ /dev/null @@ -1,5 +0,0 @@ -Git v2.26.2 Release Notes -========================= - -This release merges the security fix that appears in v2.17.5; see -the release notes for that version for details. diff --git a/third_party/git/Documentation/RelNotes/2.27.0.txt b/third_party/git/Documentation/RelNotes/2.27.0.txt deleted file mode 100644 index 15518d06c111..000000000000 --- a/third_party/git/Documentation/RelNotes/2.27.0.txt +++ /dev/null @@ -1,525 +0,0 @@ -Git 2.27 Release Notes -====================== - -Updates since v2.26 -------------------- - -Backward compatibility notes - - * When "git describe C" finds that commit C is pointed by a signed or - annotated tag, which records T as its tagname in the object, the - command gives T as its answer. Even if the user renames or moves - such a tag from its natural location in the "refs/tags/" hierarchy, - "git describe C" would still give T as the answer, but in such a - case "git show T^0" would no longer work as expected. There may be - nothing at "refs/tags/T" or even worse there may be a different tag - instead. - - Starting from this version, "git describe" will always use the - "long" version, as if the "--long" option were given, when giving - its output based on such a misplaced tag to work around the problem. - - * "git pull" issues a warning message until the pull.rebase - configuration variable is explicitly given, which some existing - users may find annoying---those who prefer not to rebase need to - set the variable to false to squelch the warning. - - * The transport protocol version 2, which was promoted to the default - in Git 2.26 release, turned out to have some remaining rough edges, - so it has been demoted from the default. - - -UI, Workflows & Features - - * A handful of options to configure SSL when talking to proxies have - been added. - - * Smudge/clean conversion filters are now given more information - (e.g. the object of the tree-ish in which the blob being converted - appears, in addition to its path, which has already been given). - - * When "git describe C" finds an annotated tag with tagname A to be - the best name to explain commit C, and the tag is stored in a - "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the - command gave a warning message but used A (not B) to describe C. - If C is exactly at the tag, the describe output would be "A", but - "git rev-parse A^0" would not be equal as "git rev-parse C^0". The - behavior of the command has been changed to use the "long" form - i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. - - * "git pull" learned to warn when no pull.rebase configuration - exists, and neither --[no-]rebase nor --ff-only is given (which - would result a merge). - - * "git p4" learned four new hooks and also "--no-verify" option to - bypass them (and the existing "p4-pre-submit" hook). - - * "git pull" shares many options with underlying "git fetch", but - some of them were not documented and some of those that would make - sense to pass down were not passed down. - - * "git rebase" learned the "--no-gpg-sign" option to countermand - commit.gpgSign the user may have. - - * The output from "git format-patch" uses RFC 2047 encoding for - non-ASCII letters on From: and Subject: headers, so that it can - directly be fed to e-mail programs. A new option has been added - to produce these headers in raw. - - * "git log" learned "--show-pulls" that helps pathspec limited - history views; a merge commit that takes the whole change from a - side branch, which is normally omitted from the output, is shown - in addition to the commits that introduce real changes. - - * The interactive input from various codepaths are consolidated and - any prompt possibly issued earlier are fflush()ed before we read. - - * Allow "git rebase" to reapply all local commits, even if the may be - already in the upstream, without checking first. - - * The 'pack.useSparse' configuration variable now defaults to 'true', - enabling an optimization that has been experimental since Git 2.21. - - * "git rebase" happens to call some hooks meant for "checkout" and - "commit" by this was not a designed behaviour than historical - accident. This has been documented. - - * "git merge" learns the "--autostash" option. - - * "sparse-checkout" UI improvements. - - * "git update-ref --stdin" learned a handful of new verbs to let the - user control ref update transactions more explicitly, which helps - as an ingredient to implement two-phase commit-style atomic - ref-updates across multiple repositories. - - * "git commit-graph write" learned different ways to write out split - files. - - * Introduce an extension to the commit-graph to make it efficient to - check for the paths that were modified at each commit using Bloom - filters. - - * The approxidate parser learns to parse seconds with fraction and - ignore fractional part. - - * The userdiff patterns for Markdown documents have been added. - - * The sparse-checkout patterns have been forbidden from excluding all - paths, leaving an empty working tree, for a long time. This - limitation has been lifted. - - * "git restore --staged --worktree" now defaults to take the contents - out of "HEAD", instead of erring out. - - * "git p4" learned to recover from a (broken) state where a directory - and a file are recorded at the same path in the Perforce repository - the same way as their clients do. - - * "git multi-pack-index repack" has been taught to honor some - repack.* configuration variables. - - -Performance, Internal Implementation, Development Support etc. - - * The advise API has been revamped to allow more systematic enumeration of - advice knobs in the future. - - * SHA-256 transition continues. - - * The code to interface with GnuPG has been refactored. - - * "git stash" has kept an escape hatch to use the scripted version - for a few releases, which got stale. It has been removed. - - * Enable tests that require GnuPG on Windows. - - * Minor test usability improvement. - - * Trace2 enhancement to allow logging of the environment variables. - - * Test clean-up continues. - - * Perf-test update. - - * A Windows-specific test element has been made more robust against - misuse from both user's environment and programmer's errors. - - * Various tests have been updated to work around issues found with - shell utilities that come with busybox etc. - - * The config API made mixed uses of int and size_t types to represent - length of various pieces of text it parsed, which has been updated - to use the correct type (i.e. size_t) throughout. - - * The "--decorate-refs" and "--decorate-refs-exclude" options "git - log" takes have learned a companion configuration variable - log.excludeDecoration that sits at the lowest priority in the - family. - - * A new CI job to build and run test suite on linux with musl libc - has been added. - - * Update the CI configuration to use GitHub Actions, retiring the one - based on Azure Pipelines. - - * The directory traversal code had redundant recursive calls which - made its performance characteristics exponential with respect to - the depth of the tree, which was corrected. - - * "git blame" learns to take advantage of the "changed-paths" Bloom - filter stored in the commit-graph file. - - * The "bugreport" tool has been added. - - * The object walk with object filter "--filter=tree:0" can now take - advantage of the pack bitmap when available. - - * Instead of always building all branches at GitHub via Actions, - users can specify which branches to build. - - * Codepaths that show progress meter have been taught to also use the - start_progress() and the stop_progress() calls as a "region" to be - traced. - - * Instead of downloading Windows SDK for CI jobs for windows builds - from an external site (wingit.blob.core.windows.net), use the one - created in the windows-build job, to work around quota issues at - the external site. - - -Fixes since v2.26 ------------------ - - * The real_path() convenience function can easily be misused; with a - bit of code refactoring in the callers' side, its use has been - eliminated. - (merge 49d3c4b481 am/real-path-fix later to maint). - - * Update "git p4" to work with Python 3. - (merge 6bb40ed20a yz/p4-py3 later to maint). - - * The mechanism to prevent "git commit" from making an empty commit - or amending during an interrupted cherry-pick was broken during the - rewrite of "git rebase" in C, which has been corrected. - (merge 430b75f720 pw/advise-rebase-skip later to maint). - - * Fix "git checkout --recurse-submodules" of a nested submodule - hierarchy. - (merge 846f34d351 pb/recurse-submodules-fix later to maint). - - * The "--fork-point" mode of "git rebase" regressed when the command - was rewritten in C back in 2.20 era, which has been corrected. - (merge f08132f889 at/rebase-fork-point-regression-fix later to maint). - - * The import-tars importer (in contrib/fast-import/) used to create - phony files at the top-level of the repository when the archive - contains global PAX headers, which made its own logic to detect and - omit the common leading directory ineffective, which has been - corrected. - (merge c839fcff65 js/import-tars-do-not-make-phony-files-from-pax-headers later to maint). - - * Simplify the commit ancestry connectedness check in a partial clone - repository in which "promised" objects are assumed to be obtainable - lazily on-demand from promisor remote repositories. - (merge 2b98478c6f jt/connectivity-check-optim-in-partial-clone later to maint). - - * The server-end of the v2 protocol to serve "git clone" and "git - fetch" was not prepared to see a delim packets at unexpected - places, which led to a crash. - (merge cacae4329f jk/harden-protocol-v2-delim-handling later to maint). - - * When fed a midx that records no objects, some codepaths tried to - loop from 0 through (num_objects-1), which, due to integer - arithmetic wrapping around, made it nonsense operation with out of - bounds array accesses. The code has been corrected to reject such - an midx file. - (merge 796d61cdc0 dr/midx-avoid-int-underflow later to maint). - - * Utitiles run via the run_command() API were not spawned correctly - on Cygwin, when the paths to them are given as a full path with - backslashes. - (merge 05ac8582bc ak/run-command-on-cygwin-fix later to maint). - - * "git pull --rebase" tried to run a rebase even after noticing that - the pull results in a fast-forward and no rebase is needed nor - sensible, for the past few years due to a mistake nobody noticed. - (merge fbae70ddc6 en/pull-do-not-rebase-after-fast-forwarding later to maint). - - * "git rebase" with the merge backend did not work well when the - rebase.abbreviateCommands configuration was set. - (merge de9f1d3ef4 ag/rebase-merge-allow-ff-under-abbrev-command later to maint). - - * The logic to auto-follow tags by "git clone --single-branch" was - not careful to avoid lazy-fetching unnecessary tags, which has been - corrected. - (merge 167a575e2d jk/use-quick-lookup-in-clone-for-tag-following later to maint). - - * "git rebase -i" did not leave the reflog entries correctly. - (merge 1f6965f994 en/sequencer-reflog-action later to maint). - - * The more aggressive updates to remote-tracking branches we had for - the past 7 years or so were not reflected in the documentation, - which has been corrected. - (merge a44088435c pb/pull-fetch-doc later to maint). - - * We've left the command line parsing of "git log :/a/b/" broken for - about a full year without anybody noticing, which has been - corrected. - (merge 0220461071 jc/missing-ref-store-fix later to maint). - - * Misc fixes for Windows. - (merge 3efc128cd5 js/mingw-fixes later to maint). - - * "git rebase" (again) learns to honor "--no-keep-empty", which lets - the user to discard commits that are empty from the beginning (as - opposed to the ones that become empty because of rebasing). The - interactive rebase also marks commits that are empty in the todo. - (merge 50ed76148a en/rebase-no-keep-empty later to maint). - - * Parsing the host part out of URL for the credential helper has been corrected. - (merge 4c5971e18a jk/credential-parsing-end-of-host-in-URL later to maint). - - * Document the recommended way to abort a failing test early (e.g. by - exiting a loop), which is to say "return 1". - (merge 7cc112dc95 jc/doc-test-leaving-early later to maint). - - * The code that refreshes the last access and modified time of - on-disk packfiles and loose object files have been updated. - (merge 312cd76130 lr/freshen-file-fix later to maint). - - * Validation of push certificate has been made more robust against - timing attacks. - (merge 719483e547 bc/constant-memequal later to maint). - - * The custom hash function used by "git fast-import" has been - replaced with the one from hashmap.c, which gave us a nice - performance boost. - (merge d8410a816b jk/fast-import-use-hashmap later to maint). - - * The "git submodule" command did not initialize a few variables it - internally uses and was affected by variable settings leaked from - the environment. - (merge 65d100c4dd lx/submodule-clear-variables later to maint). - - * Raise the minimum required version of docbook-xsl package to 1.74, - as 1.74.0 was from late 2008, which is more than 10 years old, and - drop compatibility cruft from our documentation suite. - (merge 3c255ad660 ma/doc-discard-docbook-xsl-1.73 later to maint). - - * "git log" learns "--[no-]mailmap" as a synonym to "--[no-]use-mailmap" - (merge 88acccda38 jc/log-no-mailmap later to maint). - - * "git commit-graph write --expire-time=<timestamp>" did not use the - given timestamp correctly, which has been corrected. - (merge b09b785c78 ds/commit-graph-expiry-fix later to maint). - - * Tests update to use "test-chmtime" instead of "touch -t". - (merge e892a56845 ds/t5319-touch-fix later to maint). - - * "git diff" in a partial clone learned to avoid lazy loading blob - objects in more casese when they are not needed. - (merge 95acf11a3d jt/avoid-prefetch-when-able-in-diff later to maint). - - * "git push --atomic" used to show failures for refs that weren't - even pushed, which has been corrected. - (merge dfe1b7f19c jx/atomic-push later to maint). - - * Code in builtin/*, i.e. those can only be called from within - built-in subcommands, that implements bulk of a couple of - subcommands have been moved to libgit.a so that they could be used - by others. - (merge 9460fd48b5 dl/libify-a-few later to maint). - - * Allowing the user to split a patch hunk while "git stash -p" does - not work well; a band-aid has been added to make this (partially) - work better. - - * "git diff-tree --pretty --notes" used to hit an assertion failure, - as it forgot to initialize the notes subsystem. - (merge 5778b22b3d tb/diff-tree-with-notes later to maint). - - * "git range-diff" fixes. - (merge 8d1675eb7f vd/range-diff-with-custom-pretty-format-fix later to maint). - - * "git grep" did not quote a path with unusual character like other - commands (like "git diff", "git status") do, but did quote when run - from a subdirectory, both of which has been corrected. - (merge 45115d8490 mt/grep-cquote-path later to maint). - - * GNU/Hurd is also among the ones that need the fopen() wrapper. - (merge 274a1328fb jc/gnu-hurd-lets-fread-read-dirs later to maint). - - * Those fetching over protocol v2 from linux-next and other kernel - repositories are reporting that v2 often fetches way too much than - needed. - (merge 11c7f2a30b jn/demote-proto2-from-default later to maint). - - * The upload-pack protocol v2 gave up too early before finding a - common ancestor, resulting in a wasteful fetch from a fork of a - project. This has been corrected to match the behaviour of v0 - protocol. - (merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint). - - * The build procedure did not use the libcurl library and its include - files correctly for a custom-built installation. - (merge 0573831950 jk/build-with-right-curl later to maint). - - * Tighten "git mailinfo" to notice and error out when decoded result - contains NUL in it. - (merge 3919997447 dd/mailinfo-with-nul later to maint). - - * Fix in-core inconsistency after fetching into a shallow repository - that broke the code to write out commit-graph. - (merge 37b9dcabfc tb/reset-shallow later to maint). - - * The commit-graph code exhausted file descriptors easily when it - does not have to. - (merge c8828530b7 tb/commit-graph-fd-exhaustion-fix later to maint). - - * The multi-pack-index left mmapped file descriptors open when it - does not have to. - (merge 6c7ff7cf7f ds/multi-pack-index later to maint). - - * Recent update to Homebrew used by macOS folks breaks build by - moving gettext library and necessary headers. - (merge a0b3108618 ds/build-homebrew-gettext-fix later to maint). - - * Incompatible options "--root" and "--fork-point" of "git rebase" - have been marked and documented as being incompatible. - (merge a35413c378 en/rebase-root-and-fork-point-are-incompatible later to maint). - - * Error and verbose trace messages from "git push" did not redact - credential material embedded in URLs. - (merge d192fa5006 js/anonymise-push-url-in-errors later to maint). - - * Update the parser used for credential.<URL>.<variable> - configuration, to handle <URL>s with '/' in them correctly. - (merge b44d0118ac bc/wildcard-credential later to maint). - - * Recent updates broke parsing of "credential.<url>.<key>" where - <url> is not a full URL (e.g. [credential "https://"] helper = ...) - stopped working, which has been corrected. - (merge 9a121b0d22 js/partial-urlmatch-2.17 later to maint). - (merge cd93e6c029 js/partial-urlmatch later to maint). - - * Some of the files commit-graph subsystem keeps on disk did not - correctly honor the core.sharedRepository settings and some were - left read-write. - - * In error messages that "git switch" mentions its option to create a - new branch, "-b/-B" options were shown, where "-c/-C" options - should be, which has been corrected. - (merge 7c16ef7577 dl/switch-c-option-in-error-message later to maint). - - * With the recent tightening of the code that is used to parse - various parts of a URL for use in the credential subsystem, a - hand-edited credential-store file causes the credential helper to - die, which is a bit too harsh to the users. Demote the error - behaviour to just ignore and keep using well-formed lines instead. - (merge c03859a665 cb/credential-store-ignore-bogus-lines later to maint). - - * The samples in the credential documentation has been updated to - make it clear that we depict what would appear in the .git/config - file, by adding appropriate quotes as needed.. - (merge 177681a07e jk/credential-sample-update later to maint). - - * "git branch" and other "for-each-ref" variants accepted multiple - --sort=<key> options in the increasing order of precedence, but it - had a few breakages around "--ignore-case" handling, and tie-breaking - with the refname, which have been fixed. - (merge 7c5045fc18 jk/for-each-ref-multi-key-sort-fix later to maint). - - * The coding guideline for shell scripts instructed to refer to a - variable with dollar-sign inside arithmetic expansion to work - around a bug in old versions of dash, which is a thing of the past. - Now we are not forbidden from writing $((var+1)). - (merge 32b5fe7f0e jk/arith-expansion-coding-guidelines later to maint). - - * The <stdlib.h> header on NetBSD brings in its own definition of - hmac() function (eek), which conflicts with our own and unrelated - function with the same name. Our function has been renamed to work - around the issue. - (merge 3013118eb8 cb/avoid-colliding-with-netbsd-hmac later to maint). - - * The basic test did not honor $TEST_SHELL_PATH setting, which has - been corrected. - (merge 0555e4af58 cb/t0000-use-the-configured-shell later to maint). - - * Minor in-code comments and documentation updates around credential - API. - (merge 1aed817f99 cb/credential-doc-fixes later to maint). - - * Teach "am", "commit", "merge" and "rebase", when they are run with - the "--quiet" option, to pass "--quiet" down to "gc --auto". - (merge 7c3e9e8cfb jc/auto-gc-quiet later to maint). - - * The code to skip unmerged paths in the index when sparse checkout - is in use would have made out-of-bound access of the in-core index - when the last path was unmerged, which has been corrected. - - * Serving a "git fetch" client over "git://" and "ssh://" protocols - using the on-wire protocol version 2 was buggy on the server end - when the client needs to make a follow-up request to - e.g. auto-follow tags. - (merge 08450ef791 cc/upload-pack-v2-fetch-fix later to maint). - - * "git bisect replay" had trouble with input files when they used - CRLF line ending, which has been corrected. - (merge 6c722cbe5a cw/bisect-replay-with-dos later to maint). - - * "rebase -i" segfaulted when rearranging a sequence that has a - fix-up that applies another fix-up (which may or may not be a - fix-up of yet another step). - (merge 02471e7e20 js/rebase-autosquash-double-fixup-fix later to maint). - - * "git fsck" ensures that the paths recorded in tree objects are - sorted and without duplicates, but it failed to notice a case where - a blob is followed by entries that sort before a tree with the same - name. This has been corrected. - (merge 9068cfb20f rs/fsck-duplicate-names-in-trees later to maint). - - * Code clean-up by removing a compatibility implementation of a - function we no longer use. - (merge 84b0115f0d cb/no-more-gmtime later to maint). - - * When a binary file gets modified and renamed on both sides of history - to different locations, both files would be written to the working - tree but both would have the contents from "ours". This has been - corrected so that the path from each side gets their original content. - - * Fix for a copy-and-paste error introduced during 2.20 era. - (merge e68a5272b1 ds/multi-pack-verify later to maint). - - * Update an unconditional use of "grep -a" with a perl script in a test. - (merge 1eb7371236 dd/t5703-grep-a-fix later to maint). - - * Other code cleanup, docfix, build fix, etc. - (merge 564956f358 jc/maintain-doc later to maint). - (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint). - (merge 9c688735f6 rs/doc-passthru-fetch-options later to maint). - (merge 757c2ba3e2 en/oidset-uninclude-hashmap later to maint). - (merge 8312aa7d74 jc/config-tar later to maint). - (merge d00a5bdd50 ss/submodule-foreach-cb later to maint). - (merge 64d1022e14 ar/test-style-fixes later to maint). - (merge 4a465443a6 ds/doc-clone-filter later to maint). - (merge bb2dbe301b jk/t3419-drop-expensive-tests later to maint). - (merge d3507cc712 js/test-junit-finalization-fix later to maint). - (merge 2149b6748f bc/faq later to maint). - (merge 12dc0879f1 jk/test-cleanup later to maint). - (merge 344420bf0f pb/rebase-doc-typofix later to maint). - (merge 7cd54d37dc dl/wrapper-fix-indentation later to maint). - (merge 78725ebda9 jc/allow-strlen-substitution-in-shell-scripts later to maint). - (merge 2ecfcdecc6 jm/gitweb-fastcgi-utf8 later to maint). - (merge 0740d0a5d3 jk/oid-array-cleanups later to maint). - (merge a1aba0c95c js/t0007-typofix later to maint). - (merge 76ba7fa225 ma/config-doc-fix later to maint). - (merge 826f0c0df2 js/subtree-doc-update-to-asciidoctor-2 later to maint). - (merge 88eaf361e0 eb/mboxrd-doc later to maint). - (merge 051cc54941 tm/zsh-complete-switch-restore later to maint). - (merge 39102cf4fe ms/doc-revision-illustration-fix later to maint). - (merge 4d9378bfad eb/gitweb-more-trailers later to maint). - (merge bdccbf7047 mt/doc-worktree-ref later to maint). - (merge ce9baf234f dl/push-recurse-submodules-fix later to maint). - (merge 4153274052 bc/doc-credential-helper-value later to maint). - (merge 5c7bb0146e jc/codingstyle-compare-with-null later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.28.0.txt b/third_party/git/Documentation/RelNotes/2.28.0.txt deleted file mode 100644 index 6baf781380b5..000000000000 --- a/third_party/git/Documentation/RelNotes/2.28.0.txt +++ /dev/null @@ -1,236 +0,0 @@ -Git 2.28 Release Notes -====================== - -Updates since v2.27 -------------------- - -Backward compatibility notes - - * "fetch.writeCommitGraph" is deemed to be still a bit too risky and - is no longer part of the "feature.experimental" set. - - -UI, Workflows & Features - - * The commands in the "diff" family learned to honor "diff.relative" - configuration variable. - - * The check in "git fsck" to ensure that the tree objects are sorted - still had corner cases it missed unsorted entries. - - * The interface to redact sensitive information in the trace output - has been simplified. - - * The command line completion (in contrib/) learned to complete - options that the "git switch" command takes. - - * "git diff" used to take arguments in random and nonsense range - notation, e.g. "git diff A..B C", "git diff A..B C...D", etc., - which has been cleaned up. - - * "git diff-files" has been taught to say paths that are marked as - intent-to-add are new files, not modified from an empty blob. - - * "git status" learned to report the status of sparse checkout. - - * "git difftool" has trouble dealing with paths added to the index - with the intent-to-add bit. - - * "git fast-export --anonymize" learned to take customized mapping to - allow its users to tweak its output more usable for debugging. - - * The command line completion support (in contrib/) used to be - prepared to work with "set -u" but recent changes got a bit more - sloppy. This has been corrected. - - * "git gui" now allows opening work trees from the start-up dialog. - - -Performance, Internal Implementation, Development Support etc. - - * Code optimization for a common case. - (merge 8777616e4d an/merge-single-strategy-optim later to maint). - - * We've adopted a convention that any on-stack structure can be - initialized to have zero values in all fields with "= { 0 }", - even when the first field happens to be a pointer, but sparse - complained that a null pointer should be spelled NULL for a long - time. Start using -Wno-universal-initializer option to squelch - it (the latest sparse has it on by default). - - * "git log -L..." now takes advantage of the "which paths are touched - by this commit?" info stored in the commit-graph system. - - * As FreeBSD is not the only platform whose regexp library reports - a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that - automatically and skip the affected tests. - - * "git bugreport" learns to report what shell is in use. - - * Support for GIT_CURL_VERBOSE has been rewritten in terms of - GIT_TRACE_CURL. - - * Preliminary clean-ups around refs API, plus file format - specification documentation for the reftable backend. - - * Workaround breakage in MSVC build, where "curl-config --cflags" - gives settings appropriate for GCC build. - - * Code clean-up of "git clean" resulted in a fix of recent - performance regression. - - * Code clean-up in the codepath that serves "git fetch" continues. - - * "git merge-base --is-ancestor" is taught to take advantage of the - commit graph. - - * Rewrite of parts of the scripted "git submodule" Porcelain command - continues; this time it is "git submodule set-branch" subcommand's - turn. - - * The "fetch/clone" protocol has been updated to allow the server to - instruct the clients to grab pre-packaged packfile(s) in addition - to the packed object data coming over the wire. - - * A misdesigned strbuf_write_fd() function has been retired. - - * SHA-256 migration work continues, including CVS/SVN interface. - - * A few fields in "struct commit" that do not have to always be - present have been moved to commit slabs. - - * API cleanup for get_worktrees() - - * By renumbering object flag bits, "struct object" managed to lose - bloated inter-field padding. - - * The name of the primary branch in existing repositories, and the - default name used for the first branch in newly created - repositories, is made configurable, so that we can eventually wean - ourselves off of the hardcoded 'master'. - - * The effort to avoid using test_must_fail on non-git command continues. - - * In 2.28-rc0, we corrected a bug that some repository extensions are - honored by mistake even in a version 0 repositories (these - configuration variables in extensions.* namespace were supposed to - have special meaning in repositories whose version numbers are 1 or - higher), but this was a bit too big a change. The behaviour in - recent versions of Git where certain extensions.* were honored by - mistake even in version 0 repositories has been restored. - - -Fixes since v2.27 ------------------ - - * The "--prepare-p4-only" option of "git p4" is supposed to stop - after replaying one changeset, but kept going (by mistake?) - - * The error message from "git checkout -b foo -t bar baz" was - confusing. - - * Some repositories in the wild have commits that record nonsense - committer timezone (e.g. rails.git); "git fast-import" learned an - option to pass these nonsense timestamps intact to allow recreating - existing repositories as-is. - (merge d42a2fb72f en/fast-import-looser-date later to maint). - - * The command line completion script (in contrib/) tried to complete - "git stash -p" as if it were "git stash push -p", but it was too - aggressive and also affected "git stash show -p", which has been - corrected. - (merge fffd0cf520 vs/complete-stash-show-p-fix later to maint). - - * On-the-wire protocol v2 easily falls into a deadlock between the - remote-curl helper and the fetch-pack process when the server side - prematurely throws an error and disconnects. The communication has - been updated to make it more robust. - - * "git checkout -p" did not handle a newly added path at all. - (merge 2c8bd8471a js/checkout-p-new-file later to maint). - - * The code to parse "git bisect start" command line was lax in - validating the arguments. - (merge 4d9005ff5d cb/bisect-helper-parser-fix later to maint). - - * Reduce memory usage during "diff --quiet" in a worktree with too - many stat-unmatched paths. - (merge d2d7fbe129 jk/diff-memuse-optim-with-stat-unmatch later to maint). - - * The reflog entries for "git clone" and "git fetch" did not - anonymize the URL they operated on. - (merge 46da295a77 js/reflog-anonymize-for-clone-and-fetch later to maint). - - * The behaviour of "sparse-checkout" in the state "git clone - --no-checkout" left was changed accidentally in 2.27, which has - been corrected. - - * Use of negative pathspec, while collecting paths including - untracked ones in the working tree, was broken. - - * The same worktree directory must be registered only once, but - "git worktree move" allowed this invariant to be violated, which - has been corrected. - (merge 810382ed37 es/worktree-duplicate-paths later to maint). - - * The effect of sparse checkout settings on submodules is documented. - (merge e7d7c73249 en/sparse-with-submodule-doc later to maint). - - * Code clean-up around "git branch" with a minor bugfix. - (merge dc44639904 dl/branch-cleanup later to maint). - - * A branch name used in a test has been clarified to match what is - going on. - (merge 08dc26061f pb/t4014-unslave later to maint). - - * An in-code comment in "git diff" has been updated. - (merge c592fd4c83 dl/diff-usage-comment-update later to maint). - - * The documentation and some tests have been adjusted for the recent - renaming of "pu" branch to "seen". - (merge 6dca5dbf93 js/pu-to-seen later to maint). - - * The code to push changes over "dumb" HTTP had a bad interaction - with the commit reachability code due to incorrect allocation of - object flag bits, which has been corrected. - (merge 64472d15e9 bc/http-push-flagsfix later to maint). - - * "git send-email --in-reply-to=<msg>" did not use the In-Reply-To: - header with the value given from the command line, and let it be - overridden by the value on In-Reply-To: header in the messages - being sent out (if exists). - (merge f9f60d7066 ra/send-email-in-reply-to-from-command-line-wins later to maint). - - * "git log -Lx,y:path --before=date" lost track of where the range - should be because it didn't take the changes made by the youngest - commits that are omitted from the output into account. - - * When "fetch.writeCommitGraph" configuration is set in a shallow - repository and a fetch moves the shallow boundary, we wrote out - broken commit-graph files that do not match the reality, which has - been corrected. - - * "git checkout" failed to catch an error from fstat() after updating - a path in the working tree. - (merge 35e6e212fd mt/entry-fstat-fallback-fix later to maint). - - * When an aliased command, whose output is piped to a pager by git, - gets killed by a signal, the pager got into a funny state, which - has been corrected (again). - (merge c0d73a59c9 ta/wait-on-aliased-commands-upon-signal later to maint). - - * The code to produce progress output from "git commit-graph --write" - had a few breakages, which have been fixed. - - * Other code cleanup, docfix, build fix, etc. - (merge 2c31a7aa44 jx/pkt-line-doc-count-fix later to maint). - (merge d63ae31962 cb/t5608-cleanup later to maint). - (merge 788db145c7 dl/t-readme-spell-git-correctly later to maint). - (merge 45a87a83bb dl/python-2.7-is-the-floor-version later to maint). - (merge b75a219904 es/advertise-contribution-doc later to maint). - (merge 0c9a4f638a rs/pull-leakfix later to maint). - (merge d546fe2874 rs/commit-reach-leakfix later to maint). - (merge 087bf5409c mk/pb-pretty-email-without-domain-part-fix later to maint). - (merge 5f4ee57ad9 es/worktree-code-cleanup later to maint). - (merge 0172f7834a cc/cat-file-usage-update later to maint). - (merge 81de0c01cf ma/rebase-doc-typofix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.29.0.txt b/third_party/git/Documentation/RelNotes/2.29.0.txt deleted file mode 100644 index 06ba2f803f66..000000000000 --- a/third_party/git/Documentation/RelNotes/2.29.0.txt +++ /dev/null @@ -1,514 +0,0 @@ -Git 2.29 Release Notes -====================== - -Updates since v2.28 -------------------- - -UI, Workflows & Features - - * "git help log" has been enhanced by sharing more material from the - documentation for the underlying "git rev-list" command. - - * "git for-each-ref --format=<>" learned %(contents:size). - - * "git merge" learned to selectively omit " into <branch>" at the end - of the title of default merge message with merge.suppressDest - configuration. - - * The component to respond to "git fetch" request is made more - configurable to selectively allow or reject object filtering - specification used for partial cloning. - - * Stop when "sendmail.*" configuration variables are defined, which - could be a mistaken attempt to define "sendemail.*" variables. - - * The existing backends for "git mergetool" based on variants of vim - have been refactored and then support for "nvim" has been added. - - * "git bisect" learns the "--first-parent" option to find the first - breakage along the first-parent chain. - - * "git log --first-parent -p" showed patches only for single-parent - commits on the first-parent chain; the "--first-parent" option has - been made to imply "-m". Use "--no-diff-merges" to restore the - previous behaviour to omit patches for merge commits. - - * The commit labels used to explain each side of conflicted hunks - placed by the sequencer machinery have been made more readable by - humans. - - * The "--batch-size" option of "git multi-pack-index repack" command - is now used to specify that very small packfiles are collected into - one until the total size roughly exceeds it. - - * The recent addition of SHA-256 support is marked as experimental in - the documentation. - - * "git fetch" learned --no-write-fetch-head option to avoid writing - the FETCH_HEAD file. - - * Command line completion (in contrib/) usually omits redundant, - deprecated and/or dangerous options from its output; it learned to - optionally include all of them. - - * The output from the "diff" family of the commands had abbreviated - object names of blobs involved in the patch, but its length was not - affected by the --abbrev option. Now it is. - - * "git worktree" gained a "repair" subcommand to help users recover - after moving the worktrees or repository manually without telling - Git. Also, "git init --separate-git-dir" no longer corrupts - administrative data related to linked worktrees. - - * The "--format=" option to the "for-each-ref" command and friends - learned a few more tricks, e.g. the ":short" suffix that applies to - "objectname" now also can be used for "parent", "tree", etc. - - * "git worktree add" learns that the "-d" is a synonym to "--detach" - option to create a new worktree without being on a branch. - - * "format-patch --range-diff=<prev> <origin>..HEAD" has been taught - not to ignore <origin> when <prev> is a single version. - - * "add -p" now allows editing paths that were only added in intent. - - * The 'meld' backend of the "git mergetool" learned to give the - underlying 'meld' the '--auto-merge' option, which would help - reduce the amount of text that requires manual merging. - - * "git for-each-ref" and friends that list refs used to allow only - one --merged or --no-merged to filter them; they learned to take - combination of both kind of filtering. - - * "git maintenance", a "git gc"'s big brother, has been introduced to - take care of more repository maintenance tasks, not limited to the - object database cleaning. - - * "git receive-pack" that accepts requests by "git push" learned to - outsource most of the ref updates to the new "proc-receive" hook. - - * "git push" that wants to be atomic and wants to send push - certificate learned not to prepare and sign the push certificate - when it fails the local check (hence due to atomicity it is known - that no certificate is needed). - - * "git commit-graph write" learned to limit the number of bloom - filters that are computed from scratch with the --max-new-filters - option. - - * The transport protocol v2 has become the default again. - - * The installation procedure learned to optionally omit "git-foo" - executable files for each 'foo' built-in subcommand, which are only - required by old timers that still rely on the age old promise that - prepending "git --exec-path" output to PATH early in their script - will keep the "git-foo" calls they wrote working. - - * The command line completion (in contrib/) learned that "git restore - -s <TAB>" is often followed by a refname. - - * "git shortlog" has been taught to group commits by the contents of - the trailer lines, like "Reviewed-by:", "Coauthored-by:", etc. - - * "git archive" learns the "--add-file" option to include untracked - files into a snapshot from a tree-ish. - - * "git fetch" and "git push" support negative refspecs. - - * "git format-patch" learns to take "whenAble" as a possible value - for the format.useAutoBase configuration variable to become no-op - when the automatically computed base does not make sense. - - * Credential helpers are now allowed to terminate lines with CRLF - line ending, as well as LF line ending. - - -Performance, Internal Implementation, Development Support etc. - - * The changed-path Bloom filter is improved using ideas from an - independent implementation. - - * Updates to the changed-paths bloom filter. - - * The test framework has been updated so that most tests will run - with predictable (artificial) timestamps. - - * Preliminary clean-up of the refs API in preparation for adding a - new refs backend "reftable". - - * Dev support to limit the use of test_must_fail to only git commands. - - * While packing many objects in a repository with a promissor remote, - lazily fetching missing objects from the promissor remote one by - one may be inefficient---the code now attempts to fetch all the - missing objects in batch (obviously this won't work for a lazy - clone that lazily fetches tree objects as you cannot even enumerate - what blobs are missing until you learn which trees are missing). - - * The pretend-object mechanism checks if the given object already - exists in the object store before deciding to keep the data - in-core, but the check would have triggered lazy fetching of such - an object from a promissor remote. - - * The argv_array API is useful for not just managing argv but any - "vector" (NULL-terminated array) of strings, and has seen adoption - to a certain degree. It has been renamed to "strvec" to reduce the - barrier to adoption. - - * The final leg of SHA-256 transition plus doc updates. Note that - there is no interoperability between SHA-1 and SHA-256 - repositories yet. - - * CMake support to build with MSVC for Windows bypassing the Makefile. - - * A new helper function has_object() has been introduced to make it - easier to mark object existence checks that do and don't want to - trigger lazy fetches, and a few such checks are converted using it. - - * A no-op replacement function implemented as a C preprocessor macro - does not perform as good a job as one implemented as a "static - inline" function in catching errors in parameters; replace the - former with the latter in <git-compat-util.h> header. - - * Test framework update. - (merge d572f52a64 es/test-cmp-typocatcher later to maint). - - * Updates to "git merge" tests, in preparation for a new merge - strategy backend. - - * midx and commit-graph files now use the byte defined in their file - format specification for identifying the hash function used for - object names. - - * The FETCH_HEAD is now always read from the filesystem regardless of - the ref backend in use, as its format is much richer than the - normal refs, and written directly by "git fetch" as a plain file.. - - * An unused binary has been discarded, and and a bunch of commands - have been turned into into built-in. - - * A handful of places in in-tree code still relied on being able to - execute the git subcommands, especially built-ins, in "git-foo" - form, which have been corrected. - - * When a packfile is removed by "git repack", multi-pack-index gets - cleared; the code was taught to do so less aggressively by first - checking if the midx actually refers to a pack that no longer - exists. - - * Internal API clean-up to handle two options "diff-index" and "log" - have, which happen to share the same short form, more sensibly. - - * The "add -i/-p" machinery has been written in C but it is not used - by default yet. It is made default to those who are participating - in feature.experimental experiment. - - * Allow maintainers to tweak $(TAR) invocations done while making - distribution tarballs. - - * "git index-pack" learned to resolve deltified objects with greater - parallelism. - - * "diff-highlight" (in contrib/) had a logic to flush its output upon - seeing a blank line but the way it detected a blank line was broken. - - * The logic to skip testing on the tagged commit and the tag itself - was not quite consistent which led to failure of Windows test - tasks. It has been revamped to consistently skip revisions that - have already been tested, based on the tree object of the revision. - - -Fixes since v2.28 ------------------ - - * The "mediawiki" remote backend which lives in contrib/mw-to-git/ - and is not built with git by default, had an RCE bug allowing a - malicious MediaWiki server operator to inject arbitrary commands - for execution by a cloning client. This has been fixed. - - The bug was discovered and reported by Joern Schneeweisz of GitLab - to the git-security mailing list. Its practical impact due to the - obscurity of git-remote-mediawiki was deemed small enough to forgo - a dedicated security release. - - * "git clone --separate-git-dir=$elsewhere" used to stomp on the - contents of the existing directory $elsewhere, which has been - taught to fail when $elsewhere is not an empty directory. - (merge dfaa209a79 bw/fail-cloning-into-non-empty later to maint). - - * With the base fix to 2.27 regresion, any new extensions in a v0 - repository would still be silently honored, which is not quite - right. Instead, complain and die loudly. - (merge ec91ffca04 jk/reject-newer-extensions-in-v0 later to maint). - - * Fetching from a lazily cloned repository resulted at the server - side in attempts to lazy fetch objects that the client side has, - many of which will not be available from the third-party anyway. - (merge 77aa0941ce jt/avoid-lazy-fetching-upon-have-check later to maint). - - * Fix to an ancient bug caused by an over-eager attempt for - optimization. - (merge a98f7fb366 rs/add-index-entry-optim-fix later to maint). - - * Pushing a ref whose name contains non-ASCII character with the - "--force-with-lease" option did not work over smart HTTP protocol, - which has been corrected. - (merge cd85b447bf bc/push-cas-cquoted-refname later to maint). - - * "git mv src dst", when src is an unmerged path, errored out - correctly but with an incorrect error message to claim that src is - not tracked, which has been clarified. - (merge 9b906af657 ct/mv-unmerged-path-error later to maint). - - * Fix to a regression introduced during 2.27 cycle. - (merge cada7308ad en/fill-directory-exponential later to maint). - - * Command line completion (in contrib/) update. - (merge 688b87c81b mp/complete-show-color-moved later to maint). - - * All "mergy" operations that internally use the merge-recursive - machinery should honor the merge.renormalize configuration, but - many of them didn't. - - * Doc cleanup around "worktree". - (merge dc9c144be5 es/worktree-doc-cleanups later to maint). - - * The "git blame --first-parent" option was not documented, but now - it is. - (merge 11bc12ae1e rp/blame-first-parent-doc later to maint). - - * The logic to find the ref transaction hook script attempted to - cache the path to the found hook without realizing that it needed - to keep a copied value, as the API it used returned a transitory - buffer space. This has been corrected. - (merge 09b2aa30c9 ps/ref-transaction-hook later to maint). - - * Recent versions of "git diff-files" shows a diff between the index - and the working tree for "intent-to-add" paths as a "new file" - patch; "git apply --cached" should be able to take "git diff-files" - and should act as an equivalent to "git add" for the path, but the - command failed to do so for such a path. - (merge 4c025c667e rp/apply-cached-with-i-t-a later to maint). - - * "git diff [<tree-ish>] $path" for a $path that is marked with i-t-a - bit was not showing the mode bits from the working tree. - (merge cb0dd22b82 rp/ita-diff-modefix later to maint). - - * Ring buffer with size 4 used for bin-hex translation resulted in a - wrong object name in the sequencer's todo output, which has been - corrected. - (merge 5da69c0dac ak/sequencer-fix-find-uniq-abbrev later to maint). - - * When given more than one target line ranges, "git blame -La,b - -Lc,d" was over-eager to coalesce groups of original lines and - showed incorrect results, which has been corrected. - (merge c2ebaa27d6 jk/blame-coalesce-fix later to maint). - - * The regexp to identify the function boundary for FORTRAN programs - has been updated. - (merge 75c3b6b2e8 pb/userdiff-fortran-update later to maint). - - * A few end-user facing messages have been updated to be - hash-algorithm agnostic. - (merge 4279000d3e jc/object-names-are-not-sha-1 later to maint). - - * "unlink" emulation on MinGW has been optimized. - (merge 680e0b4524 jh/mingw-unlink later to maint). - - * The purpose of "git init --separate-git-dir" is to initialize a - new project with the repository separate from the working tree, - or, in the case of an existing project, to move the repository - (the .git/ directory) out of the working tree. It does not make - sense to use --separate-git-dir with a bare repository for which - there is no working tree, so disallow its use with bare - repositories. - (merge ccf236a23a es/init-no-separate-git-dir-in-bare later to maint). - - * "ls-files -o" mishandled the top-level directory of another git - working tree that hangs in the current git working tree. - (merge ab282aa548 en/dir-nonbare-embedded later to maint). - - * Fix some incorrect UNLEAK() annotations. - (merge 3e19816dc0 jk/unleak-fixes later to maint). - - * Use more buffered I/O where we used to call many small write(2)s. - (merge a698d67b08 rs/more-buffered-io later to maint). - - * The patch-id computation did not ignore the "incomplete last line" - marker like whitespaces. - (merge 82a62015a7 rs/patch-id-with-incomplete-line later to maint). - - * Updates into a lazy/partial clone with a submodule did not work - well with transfer.fsckobjects set. - - * The parser for "git for-each-ref --format=..." was too loose when - parsing the "%(trailers...)" atom, and forgot that "trailers" and - "trailers:<modifiers>" are the only two allowed forms, which has - been corrected. - (merge 2c22e102f8 hv/ref-filter-trailers-atom-parsing-fix later to maint). - - * Long ago, we decided to use 3 threads by default when running the - index-pack task in parallel, which has been adjusted a bit upwards. - (merge fbff95b67f jk/index-pack-w-more-threads later to maint). - - * "git restore/checkout --no-overlay" with wildcarded pathspec - mistakenly removed matching paths in subdirectories, which has been - corrected. - (merge bfda204ade rs/checkout-no-overlay-pathspec-fix later to maint). - - * The description of --cached/--index options in "git apply --help" - has been updated. - (merge d064702be3 rp/apply-cached-doc later to maint). - - * Feeding "$ZERO_OID" to "git log --ignore-missing --stdin", and - running "git log --ignore-missing $ZERO_OID" fell back to start - digging from HEAD; it has been corrected to become a no-op, like - "git log --tags=no-tag-matches-this-pattern" does. - (merge 04a0e98515 jk/rev-input-given-fix later to maint). - - * Various callers of run_command API have been modernized. - (merge afbdba391e jc/run-command-use-embedded-args later to maint). - - * List of options offered and accepted by "git add -i/-p" were - inconsistent, which have been corrected. - (merge ce910287e7 pw/add-p-allowed-options-fix later to maint). - - * "git diff --stat -w" showed 0-line changes for paths whose changes - were only whitespaces, which was not intuitive. We now omit such - paths from the stat output. - (merge 1cf3d5db9b mr/diff-hide-stat-wo-textual-change later to maint). - - * It was possible for xrealloc() to send a non-NULL pointer that has - been freed, which has been fixed. - (merge 6479ea4a8a jk/xrealloc-avoid-use-after-free later to maint). - - * "git status" has trouble showing where it came from by interpreting - reflog entries that record certain events, e.g. "checkout @{u}", and - gives a hard/fatal error. Even though it inherently is impossible - to give a correct answer because the reflog entries lose some - information (e.g. "@{u}" does not record what branch the user was - on hence which branch 'the upstream' needs to be computed, and even - if the record were available, the relationship between branches may - have changed), at least hide the error and allow "status" to show its - output. - - * "git status --short" quoted a path with SP in it when tracked, but - not those that are untracked, ignored or unmerged. They are all - shown quoted consistently. - - * "git diff/show" on a change that involves a submodule used to read - the information on commits in the submodule from a wrong repository - and gave a wrong information when the commit-graph is involved. - (merge 85a1ec2c32 mf/submodule-summary-with-correct-repository later to maint). - - * Unlike "git config --local", "git config --worktree" did not fail - early and cleanly when started outside a git repository. - (merge 378fe5fc3d mt/config-fail-nongit-early later to maint). - - * There is a logic to estimate how many objects are in the - repository, which is meant to run once per process invocation, but - it ran every time the estimated value was requested. - (merge 67bb65de5d jk/dont-count-existing-objects-twice later to maint). - - * "git remote set-head" that failed still said something that hints - the operation went through, which was misleading. - (merge 5a07c6c3c2 cs/don-t-pretend-a-failed-remote-set-head-succeeded later to maint). - - * "git fetch --all --ipv4/--ipv6" forgot to pass the protocol options - to instances of the "git fetch" that talk to individual remotes, - which has been corrected. - (merge 4e735c1326 ar/fetch-ipversion-in-all later to maint). - - * The "unshelve" subcommand of "git p4" incorrectly used commit^N - where it meant to say commit~N to name the Nth generation - ancestor, which has been corrected. - (merge 0acbf5997f ld/p4-unshelve-fix later to maint). - - * "git clone" that clones from SHA-1 repository, while - GIT_DEFAULT_HASH set to use SHA-256 already, resulted in an - unusable repository that half-claims to be SHA-256 repository - with SHA-1 objects and refs. This has been corrected. - - * Adjust sample hooks for hash algorithm other than SHA-1. - (merge d8d3d632f4 dl/zero-oid-in-hooks later to maint). - - * "git range-diff" showed incorrect diffstat, which has been - corrected. - - * Earlier we taught "git pull" to warn when the user does not say the - histories need to be merged, rebased or accepts only fast- - forwarding, but the warning triggered for those who have set the - pull.ff configuration variable. - (merge 54200cef86 ah/pull later to maint). - - * Compilation fix around type punning. - (merge 176380fd11 jk/drop-unaligned-loads later to maint). - - * "git blame --ignore-rev/--ignore-revs-file" failed to validate - their input are valid revision, and failed to take into account - that the user may want to give an annotated tag instead of a - commit, which has been corrected. - (merge 610e2b9240 jc/blame-ignore-fix later to maint). - - * "git bisect start X Y", when X and Y are not valid committish - object names, should take X and Y as pathspec, but didn't. - (merge 73c6de06af cc/bisect-start-fix later to maint). - - * The explanation of the "scissors line" has been clarified. - (merge 287416dba6 eg/mailinfo-doc-scissors later to maint). - - * A race that leads to an access to a free'd data was corrected in - the codepath that reads pack files. - (merge bda959c476 mt/delta-base-cache-races later to maint). - - * in_merge_bases_many(), a way to see if a commit is reachable from - any commit in a set of commits, was totally broken when the - commit-graph feature was in use, which has been corrected. - (merge 8791bf1841 ds/in-merge-bases-many-optim-bug later to maint). - - * "git submodule update --quiet" did not squelch underlying "rebase" - and "pull" commands. - (merge 3ad0401e9e td/submodule-update-quiet later to maint). - - * The lazy fetching done internally to make missing objects available - in a partial clone incorrectly made permanent damage to the partial - clone filter in the repository, which has been corrected. - - * "log -c --find-object=X" did not work well to find a merge that - involves a change to an object X from only one parent. - (merge 957876f17d jk/diff-cc-oidfind-fix later to maint). - - * Other code cleanup, docfix, build fix, etc. - (merge 84544f2ea3 sk/typofixes later to maint). - (merge b17f411ab5 ar/help-guides-doc later to maint). - (merge 98c6871fad rs/grep-simpler-parse-object-or-die-call later to maint). - (merge 861c4ce141 en/typofixes later to maint). - (merge 60e47f6773 sg/ci-git-path-fix-with-pyenv later to maint). - (merge e2bfa50ac3 jb/doc-packfile-name later to maint). - (merge 918d8ff780 es/worktree-cleanup later to maint). - (merge dc156bc31f ma/t1450-quotefix later to maint). - (merge 56e743426b en/merge-recursive-comment-fixes later to maint). - (merge 7d23ff818f rs/bisect-oid-to-hex-fix later to maint). - (merge de20baf2c9 ny/notes-doc-sample-update later to maint). - (merge f649aaaf82 so/rev-parser-errormessage-fix later to maint). - (merge 6103d58b7f bc/sha-256-cvs-svn-updates later to maint). - (merge ac900fddb7 ma/stop-progress-null-fix later to maint). - (merge e767963ab6 rs/upload-pack-sigchain-fix later to maint). - (merge a831908599 rs/preserve-merges-unused-code-removal later to maint). - (merge 6dfefe70a9 jb/commit-graph-doc-fix later to maint). - (merge 847b37271e pb/set-url-docfix later to maint). - (merge 748f733d54 mt/checkout-entry-dead-code-removal later to maint). - (merge ce820cbd58 dl/subtree-docs later to maint). - (merge 55fe225dde jk/leakfix later to maint). - (merge ee22a29215 so/pretty-abbrev-doc later to maint). - (merge 3100fd5588 jc/post-checkout-doc later to maint). - (merge 17bae89476 pb/doc-external-diff-env later to maint). - (merge 27ed6ccc12 jk/worktree-check-clean-leakfix later to maint). - (merge 1302badd16 ea/blame-use-oideq later to maint). - (merge e6d5a11fed al/t3200-back-on-a-branch later to maint). - (merge 324efcf6b6 pw/add-p-leakfix later to maint). - (merge 1c6ffb546b jk/add-i-fixes later to maint). - (merge e40e936551 cd/commit-graph-doc later to maint). - (merge 0512eabd91 jc/sequencer-stopped-sha-simplify later to maint). - (merge d01141de5a so/combine-diff-simplify later to maint). - (merge 3be01e5ab1 sn/fast-import-doc later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.29.1.txt b/third_party/git/Documentation/RelNotes/2.29.1.txt deleted file mode 100644 index 295ee2135f48..000000000000 --- a/third_party/git/Documentation/RelNotes/2.29.1.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git v2.29.1 Release Notes -========================= - -This is to fix the build procedure change in 2.28 where we failed to -install a few programs that should be installed in /usr/bin (namely, -receive-pack, upload-archive and upload-pack) when the non-default -SKIP_DASHED_BUILT_INS installation option is in effect. - -A minor glitch in a non-default installation may usually not deserve -a hotfix, but I know Git for Windows ship binaries built with this -option, so let's make an exception. diff --git a/third_party/git/Documentation/RelNotes/2.29.2.txt b/third_party/git/Documentation/RelNotes/2.29.2.txt deleted file mode 100644 index 632b5b580ac3..000000000000 --- a/third_party/git/Documentation/RelNotes/2.29.2.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.29.2 Release Notes -========================= - -This release is primarily to fix brown-paper-bag breakages in the -2.29.0 release. - -Fixes since v2.29.1 -------------------- - - * In 2.29, "--committer-date-is-author-date" option of "rebase" and - "am" subcommands lost the e-mail address by mistake, which has been - corrected. diff --git a/third_party/git/Documentation/RelNotes/2.3.0.txt b/third_party/git/Documentation/RelNotes/2.3.0.txt deleted file mode 100644 index e3c639c8407f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.0.txt +++ /dev/null @@ -1,300 +0,0 @@ -Git v2.3 Release Notes -====================== - -This one ended up to be a release with lots of small corrections and -improvements without big uncomfortably exciting features. The recent -security fix that went to 2.2.1 and older maintenance tracks is also -contained in this update. - - -Updates since v2.2 ------------------- - -Ports - - * Recent gcc toolchain on Cygwin started throwing compilation warning, - which has been squelched. - - * A few updates to build on platforms that lack tv_nsec, - clock_gettime, CLOCK_MONOTONIC and HMAC_CTX_cleanup (e.g. older - RHEL) have been added. - - -UI, Workflows & Features - - * It was cumbersome to use "GIT_SSH" mechanism when the user wanted - to pass an extra set of arguments to the underlying ssh. A new - environment variable GIT_SSH_COMMAND can be used for this. - - * A request to store an empty note via "git notes" meant to remove - note from the object but with --allow-empty we will store a - (surprise!) note that is empty. - - * "git interpret-trailers" learned to properly handle the - "Conflicts:" block at the end. - - * "git am" learned "--message-id" option to copy the message ID of - the incoming e-mail to the log message of resulting commit. - - * "git clone --reference=<over there>" learned the "--dissociate" - option to go with it; it borrows objects from the reference object - store while cloning only to reduce network traffic and then - dissociates the resulting clone from the reference by performing - local copies of borrowed objects. - - * "git send-email" learned "--transfer-encoding" option to force a - non-fault Content-Transfer-Encoding header (e.g. base64). - - * "git send-email" normally identifies itself via X-Mailer: header in - the message it sends out. A new command line flag --no-xmailer - allows the user to squelch the header. - - * "git push" into a repository with a working tree normally refuses - to modify the branch that is checked out. The command learned to - optionally do an equivalent of "git reset --hard" only when there - is no change to the working tree and the index instead, which would - be useful to "deploy" by pushing into a repository. - - * "git new-workdir" (in contrib/) can be used to populate an empty - and existing directory now. - - * Credential helpers are asked in turn until one of them give - positive response, which is cumbersome to turn off when you need to - run Git in an automated setting. The credential helper interface - learned to allow a helper to say "stop, don't ask other helpers." - Also GIT_TERMINAL_PROMPT environment can be set to false to disable - our built-in prompt mechanism for passwords. - - * "git branch -d" (delete) and "git branch -m" (move) learned to - honor "-f" (force) flag; unlike many other subcommands, the way to - force these have been with separate "-D/-M" options, which was - inconsistent. - - * "diff-highlight" filter (in contrib/) allows its color output to be - customized via configuration variables. - - * "git imap-send" learned to take "-v" (verbose) and "-q" (quiet) - command line options. - - * "git remote add $name $URL" is now allowed when "url.$URL.insteadOf" - is already defined. - - * "git imap-send" now can be built to use cURL library to talk to - IMAP servers (if the library is recent enough, of course). - This allows you to use authenticate method other than CRAM-MD5, - among other things. - - * "git imap-send" now allows GIT_CURL_VERBOSE environment variable to - control the verbosity when talking via the cURL library. - - * The prompt script (in contrib/) learned to optionally hide prompt - when in an ignored directory by setting GIT_PS1_HIDE_IF_PWD_IGNORED - shell variable. - - -Performance, Internal Implementation, Development Support etc. - - * Earlier we made "rev-list --object-edge" more aggressively list the - objects at the edge commits, in order to reduce number of objectsใ - fetched into a shallow repository, but the change affected cases - other than "fetching into a shallow repository" and made it - unusably slow (e.g. fetching into a normal repository should not - have to suffer the overhead from extra processing). Limit it to a - more specific case by introducing --objects-edge-aggressive, a new - option to rev-list. - - * Squelched useless compiler warnings on Mac OS X regarding the - crypto API. - - * The procedure to generate unicode table has been simplified. - - * Some filesystems assign filemodes in a strange way, fooling then - automatic "filemode trustability" check done during a new - repository creation. The initialization codepath has been hardened - against this issue. - - * The codepath in "git remote update --prune" to drop many refs has - been optimized. - - * The API into get_merge_bases*() family of functions was easy to - misuse, which has been corrected to make it harder to do so. - - * Long overdue departure from the assumption that S_IFMT is shared by - everybody made in 2005, which was necessary to port to z/OS. - - * "git push" and "git fetch" did not communicate an overlong refname - correctly. Now it uses 64kB sideband to accommodate longer ones. - - * Recent GPG changes the keyring format and drops support for RFC1991 - formatted signatures, breaking our existing tests. - - * "git-prompt" (in contrib/) used a variable from the global scope, - possibly contaminating end-user's namespace. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.2 ----------------- - -Unless otherwise noted, all the fixes since v2.2 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git http-push" over WebDAV (aka dumb http-push) was broken in - v2.2.2 when parsing a symbolic ref, resulting in a bogus request - that gets rejected by recent versions of cURL library. - (merge f6786c8 jk/http-push-symref-fix later to maint). - - * The logic in "git bisect bad HEAD" etc. to avoid forcing the test - of the common ancestor of bad and good commits was broken. - (merge 07913d5 cc/bisect-rev-parsing later to maint). - - * "git checkout-index --temp=$target $path" did not work correctly - for paths outside the current subdirectory in the project. - (merge 74c4de5 es/checkout-index-temp later to maint). - - * The report from "git checkout" on a branch that builds on another - local branch by setting its branch.*.merge to branch name (not a - full refname) incorrectly said that the upstream is gone. - (merge 05e7368 jc/checkout-local-track-report later to maint). - - * With The git-prompt support (in contrib/), using the exit status of - the last command in the prompt, e.g. PS1='$(__git_ps1) $? ', did - not work well, because the helper function stomped on the exit - status. - (merge 6babe76 tf/prompt-preserve-exit-status later to maint). - - * Recent update to "git commit" broke amending an existing commit - with bogus author/committer lines without a valid e-mail address. - (merge c83a509 jk/commit-date-approxidate later to maint). - - * The lockfile API used to get confused which file to clean up when - the process moved the $cwd after creating a lockfile. - (merge fa137f6 nd/lockfile-absolute later to maint). - - * Traditionally we tried to avoid interpreting date strings given by - the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when - used early November 2014 was taken as "October 12, 2014" because it - is likely that a date in the future, December 10, is a mistake. - This heuristics has been loosened to allow people to express future - dates (most notably, --until=<date> may want to be far in the - future) and we no longer tiebreak by future-ness of the date when - - (1) ISO-like format is used, and - (2) the string can make sense interpreted as both y-m-d and y-d-m. - - Git may still have to use the heuristics to tiebreak between dd/mm/yy - and mm/dd/yy, though. - (merge d372395 jk/approxidate-avoid-y-d-m-over-future-dates later to maint). - - * Git did not correctly read an overlong refname from a packed refs - file. - (merge ea41783 jk/read-packed-refs-without-path-max later to maint). - - * "git apply" was described in the documentation to take --ignore-date - option, which it does not. - (merge 0cef4e7 rw/apply-does-not-take-ignore-date later to maint). - - * "git add -i" did not notice when the interactive command input - stream went away and kept asking the same question. - (merge a8bec7a jk/add-i-read-error later to maint). - - * "git send-email" did not handle RFC 2047 encoded headers quite - right. - (merge ab47e2a rd/send-email-2047-fix later to maint). - - * New tag object format validation added in 2.2 showed garbage after - a tagname it reported in its error message. - (merge a1e920a js/fsck-tag-validation later to maint). - - * The code that reads the reflog from the newer to the older entries - did not handle an entry that crosses a boundary of block it uses to - read them correctly. - (merge 69216bf jk/for-each-reflog-ent-reverse later to maint). - - * "git diff -B -M" after making a new copy B out of an existing file - A and then editing A extensively ought to report that B was created - by copying A and A was modified, which is what "git diff -C" - reports, but it instead said A was renamed to B and A was edited - heavily in place. This was not just incoherent but also failed to - apply with "git apply". The report has been corrected to match what - "git diff -C" produces for this case. - (merge 6936b58 jc/diff-b-m later to maint). - - * In files we pre-populate for the user to edit with commented hints, - a line of hint that is indented with a tab used to show as '#' (or - any comment char), ' ' (space), and then the hint text that began - with the tab, which some editors flag as an indentation error (tab - following space). We now omit the space after the comment char in - such a case. - (merge d55aeb7 jc/strbuf-add-lines-avoid-sp-ht-sequence later to maint). - - * "git ls-tree" does not support path selection based on negative - pathspecs, but did not error out when negative pathspecs are given. - (merge f1f6224 nd/ls-tree-pathspec later to maint). - - * The function sometimes returned a non-freeable memory and some - other times returned a piece of memory that must be freed, leading - to inevitable leaks. - (merge 59362e5 jc/exec-cmd-system-path-leak-fix later to maint). - - * The code to abbreviate an object name to its short unique prefix - has been optimized when no abbreviation was requested. - (merge 61e704e mh/find-uniq-abbrev later to maint). - - * "git add --ignore-errors ..." did not ignore an error to - give a file that did not exist. - (merge 1d31e5a mg/add-ignore-errors later to maint). - - * "git checkout $treeish $path", when $path in the index and the - working tree already matched what is in $treeish at the $path, - still overwrote the $path unnecessarily. - (merge c5326bd jk/checkout-from-tree later to maint). - - * "git config --get-color" did not parse its command line arguments - carefully. - (merge cb35722 jk/colors-fix later to maint). - - * open() emulated on Windows platforms did not give EISDIR upon - an attempt to open a directory for writing. - (merge ba6fad0 js/windows-open-eisdir-error later to maint). - - * A few code paths used abs() when they should have used labs() on - long integers. - (merge 83915ba rs/maint-config-use-labs later to maint). - (merge 31a8aa1 rs/receive-pack-use-labs later to maint). - - * "gitweb" used to depend on a behaviour recent CGI.pm deprecated. - (merge 13dbf46 jk/gitweb-with-newer-cgi-multi-param later to maint). - - * "git init" (hence "git clone") initialized the per-repository - configuration file .git/config with x-bit by mistake. - (merge 1f32ecf mh/config-flip-xbit-back-after-checking later to maint). - - * Recent update in Git 2.2 started creating objects/info/packs and - info/refs files with permission bits tighter than user's umask. - (merge d91175b jk/prune-packed-server-info later to maint). - - * Git 2.0 was supposed to make the "simple" mode for the default of - "git push", but it didn't. - (merge 00a6fa0 jk/push-simple later to maint). - - * "Everyday" document had a broken link. - (merge 366c8d4 po/everyday-doc later to maint). - - * A few test fixes. - (merge 880ef58 jk/no-perl-tests later to maint). - - * The build procedure did not bother fixing perl and python scripts - when NO_PERL and NO_PYTHON build-time configuration changed. - (merge ca2051d jk/rebuild-perl-scripts-with-no-perl-seting-change later to maint). - - * The usage string of "git log" command was marked incorrectly for - l10n. - (merge e66dc0c km/log-usage-string-i18n later to maint). - - * "git for-each-ref" mishandled --format="%(upstream:track)" when a - branch is marked to have forked from a non-existing branch. - (merge b6160d9 rc/for-each-ref-tracking later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.3.1.txt b/third_party/git/Documentation/RelNotes/2.3.1.txt deleted file mode 100644 index cf9618628874..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.1.txt +++ /dev/null @@ -1,52 +0,0 @@ -Git v2.3.1 Release Notes -======================== - -Fixes since v2.3 ----------------- - - * The interactive "show a list and let the user choose from it" - interface "add -i" used showed and prompted to the user even when - the candidate list was empty, against which the only "choice" the - user could have made was to choose nothing. - - * "git apply --whitespace=fix" used to under-allocate the memory - when the fix resulted in a longer text than the original patch. - - * "git log --help" used to show rev-list options that are irrelevant - to the "log" command. - - * The error message from "git commit", when a non-existing author - name was given as value to the "--author=" parameter, has been - reworded to avoid misunderstanding. - - * A broken pack .idx file in the receiving repository prevented the - dumb http transport from fetching a good copy of it from the other - side. - - * The documentation incorrectly said that C(opy) and R(ename) are the - only ones that can be followed by the score number in the output in - the --raw format. - - * Fix a misspelled conditional that is always true. - - * Code to read branch name from various files in .git/ directory - would have misbehaved if the code to write them left an empty file. - - * The "git push" documentation made the "--repo=<there>" option - easily misunderstood. - - * After attempting and failing a password-less authentication - (e.g. kerberos), libcURL refuses to fall back to password based - Basic authentication without a bit of help/encouragement. - - * Setting diff.submodule to 'log' made "git format-patch" produce - broken patches. - - * "git rerere" (invoked internally from many mergy operations) did - not correctly signal errors when told to update the working tree - files and failed to do so for whatever reason. - - * "git blame HEAD -- missing" failed to correctly say "HEAD" when it - tried to say "No such path 'missing' in HEAD". - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.10.txt b/third_party/git/Documentation/RelNotes/2.3.10.txt deleted file mode 100644 index 20c2d2caccfb..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.10.txt +++ /dev/null @@ -1,18 +0,0 @@ -Git v2.3.10 Release Notes -========================= - -Fixes since v2.3.9 ------------------- - - * xdiff code we use to generate diffs is not prepared to handle - extremely large files. It uses "int" in many places, which can - overflow if we have a very large number of lines or even bytes in - our input files, for example. Cap the input size to somewhere - around 1GB for now. - - * Some protocols (like git-remote-ext) can execute arbitrary code - found in the URL. The URLs that submodules use may come from - arbitrary sources (e.g., .gitmodules files in a remote - repository), and can hurt those who blindly enable recursive - fetch. Restrict the allowed protocols to well known and safe - ones. diff --git a/third_party/git/Documentation/RelNotes/2.3.2.txt b/third_party/git/Documentation/RelNotes/2.3.2.txt deleted file mode 100644 index 93462e45c2e9..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.2.txt +++ /dev/null @@ -1,79 +0,0 @@ -Git v2.3.2 Release Notes -======================== - -Fixes since v2.3.1 ------------------- - - * "update-index --refresh" used to leak when an entry cannot be - refreshed for whatever reason. - - * "git fast-import" used to crash when it could not close and - conclude the resulting packfile cleanly. - - * "git blame" died, trying to free an uninitialized piece of memory. - - * "git merge-file" did not work correctly in a subdirectory. - - * "git submodule add" failed to squash "path/to/././submodule" to - "path/to/submodule". - - * In v2.2.0, we broke "git prune" that runs in a repository that - borrows from an alternate object store. - - * Certain older vintages of cURL give irregular output from - "curl-config --vernum", which confused our build system. - - * An earlier workaround to squelch unhelpful deprecation warnings - from the compiler on Mac OSX unnecessarily set minimum required - version of the OS, which the user might want to raise (or lower) - for other reasons. - - * Longstanding configuration variable naming rules has been added to - the documentation. - - * The credential helper for Windows (in contrib/) used to mishandle - a user name with an at-sign in it. - - * Older GnuPG implementations may not correctly import the keyring - material we prepare for the tests to use. - - * Clarify in the documentation that "remote.<nick>.pushURL" and - "remote.<nick>.URL" are there to name the same repository accessed - via different transports, not two separate repositories. - - * The pack bitmap support did not build with older versions of GCC. - - * Reading configuration from a blob object, when it ends with a lone - CR, use to confuse the configuration parser. - - * We didn't format an integer that wouldn't fit in "int" but in - "uintmax_t" correctly. - - * "git push --signed" gave an incorrectly worded error message when - the other side did not support the capability. - - * "git fetch" over a remote-helper that cannot respond to "list" - command could not fetch from a symbolic reference e.g. HEAD. - - * The insn sheet "git rebase -i" creates did not fully honor - core.abbrev settings. - - * The tests that wanted to see that file becomes unreadable after - running "chmod a-r file", and the tests that wanted to make sure it - is not run as root, we used "can we write into the / directory?" as - a cheap substitute, but on some platforms that is not a good - heuristics. The tests and their prerequisites have been updated to - check what they really require. - - * The configuration variable 'mailinfo.scissors' was hard to - discover in the documentation. - - * Correct a breakage to git-svn around v2.2 era that triggers - premature closing of FileHandle. - - * Even though we officially haven't dropped Perl 5.8 support, the - Getopt::Long package that came with it does not support "--no-" - prefix to negate a boolean option; manually add support to help - people with older Getopt::Long package. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.3.txt b/third_party/git/Documentation/RelNotes/2.3.3.txt deleted file mode 100644 index 850dc68edef0..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.3.txt +++ /dev/null @@ -1,39 +0,0 @@ -Git v2.3.3 Release Notes -======================== - -Fixes since v2.3.2 ------------------- - - * A corrupt input to "git diff -M" used cause us to segfault. - - * The borrowed code in kwset API did not follow our usual convention - to use "unsigned char" to store values that range from 0-255. - - * Description given by "grep -h" for its --exclude-standard option - was phrased poorly. - - * Documentation for "git remote add" mentioned "--tags" and - "--no-tags" and it was not clear that fetch from the remote in - the future will use the default behaviour when neither is given - to override it. - - * "git diff --shortstat --dirstat=changes" showed a dirstat based on - lines that was never asked by the end user in addition to the - dirstat that the user asked for. - - * The interaction between "git submodule update" and the - submodule.*.update configuration was not clearly documented. - - * "git apply" was not very careful about reading from, removing, - updating and creating paths outside the working tree (under - --index/--cached) or the current directory (when used as a - replacement for GNU patch). - - * "git daemon" looked up the hostname even when "%CH" and "%IP" - interpolations are not requested, which was unnecessary. - - * The "interpolated-path" option of "git daemon" inserted any string - client declared on the "host=" capability request without checking. - Sanitize and limit %H and %CH to a saner and a valid DNS name. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.4.txt b/third_party/git/Documentation/RelNotes/2.3.4.txt deleted file mode 100644 index 094c7b853bfc..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.4.txt +++ /dev/null @@ -1,32 +0,0 @@ -Git v2.3.4 Release Notes -======================== - -Fixes since v2.3.3 ------------------- - - * The 'color.status.unmerged' configuration was not described. - - * "git log --decorate" did not reset colors correctly around the - branch names. - - * "git -C '' subcmd" refused to work in the current directory, unlike - "cd ''" which silently behaves as a no-op. - - * "git imap-send" learned to optionally talk with an IMAP server via - libcURL; because there is no other option when Git is built with - NO_OPENSSL option, use that codepath by default under such - configuration. - - * A workaround for certain build of GPG that triggered false breakage - in a test has been added. - - * "git rebase -i" recently started to include the number of - commits in the insn sheet to be processed, but on a platform - that prepends leading whitespaces to "wc -l" output, the numbers - are shown with extra whitespaces that aren't necessary. - - * We did not parse username followed by literal IPv6 address in SSH - transport URLs, e.g. ssh://user@[2001:db8::1]:22/repo.git - correctly. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.5.txt b/third_party/git/Documentation/RelNotes/2.3.5.txt deleted file mode 100644 index 5b309db68924..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.5.txt +++ /dev/null @@ -1,44 +0,0 @@ -Git v2.3.5 Release Notes -======================== - -Fixes since v2.3.4 ------------------- - - * The prompt script (in contrib/) did not show the untracked sign - when working in a subdirectory without any untracked files. - - * Even though "git grep --quiet" is run merely to ask for the exit - status, we spawned the pager regardless. Stop doing that. - - * Recommend format-patch and send-email for those who want to submit - patches to this project. - - * An failure early in the "git clone" that started creating the - working tree and repository could have resulted in some directories - and files left without getting cleaned up. - - * "git fetch" that fetches a commit using the allow-tip-sha1-in-want - extension could have failed to fetch all the requested refs. - - * The split-index mode introduced at v2.3.0-rc0~41 was broken in the - codepath to protect us against a broken reimplementation of Git - that writes an invalid index with duplicated index entries, etc. - - * "git prune" used to largely ignore broken refs when deciding which - objects are still being used, which could spread an existing small - damage and make it a larger one. - - * "git tag -h" used to show the "--column" and "--sort" options - that are about listing in a wrong section. - - * The transfer.hiderefs support did not quite work for smart-http - transport. - - * The code that reads from the ctags file in the completion script - (in contrib/) did not spell ${param/pattern/string} substitution - correctly, which happened to work with bash but not with zsh. - - * The explanation on "rebase --preserve-merges", "pull --rebase=preserve", - and "push --force-with-lease" in the documentation was unclear. - -Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.6.txt b/third_party/git/Documentation/RelNotes/2.3.6.txt deleted file mode 100644 index 432f770ef3d2..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.6.txt +++ /dev/null @@ -1,13 +0,0 @@ -Git v2.3.6 Release Notes -======================== - -Fixes since v2.3.5 ------------------- - - * "diff-highlight" (in contrib/) used to show byte-by-byte - differences, which meant that multi-byte characters can be chopped - in the middle. It learned to pay attention to character boundaries - (assuming the UTF-8 payload). - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.7.txt b/third_party/git/Documentation/RelNotes/2.3.7.txt deleted file mode 100644 index 576918408161..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.7.txt +++ /dev/null @@ -1,21 +0,0 @@ -Git v2.3.7 Release Notes -======================== - -Fixes since v2.3.6 ------------------- - - * An earlier update to the parser that dissects a URL broke an - address, followed by a colon, followed by an empty string (instead - of the port number), e.g. ssh://example.com:/path/to/repo. - - * The completion script (in contrib/) contaminated global namespace - and clobbered on a shell variable $x. - - * The "git push --signed" protocol extension did not limit what the - "nonce" that is a server-chosen string can contain or how long it - can be, which was unnecessarily lax. Limit both the length and the - alphabet to a reasonably small space that can still have enough - entropy. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.8.txt b/third_party/git/Documentation/RelNotes/2.3.8.txt deleted file mode 100644 index 0b67268a9660..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.8.txt +++ /dev/null @@ -1,22 +0,0 @@ -Git v2.3.8 Release Notes -======================== - -Fixes since v2.3.7 ------------------- - - * The usual "git diff" when seeing a file turning into a directory - showed a patchset to remove the file and create all files in the - directory, but "git diff --no-index" simply refused to work. Also, - when asked to compare a file and a directory, imitate POSIX "diff" - and compare the file with the file with the same name in the - directory, instead of refusing to run. - - * The default $HOME/.gitconfig file created upon "git config --global" - that edits it had incorrectly spelled user.name and user.email - entries in it. - - * "git commit --date=now" or anything that relies on approxidate lost - the daylight-saving-time offset. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.3.9.txt b/third_party/git/Documentation/RelNotes/2.3.9.txt deleted file mode 100644 index 1a2ad3235a52..000000000000 --- a/third_party/git/Documentation/RelNotes/2.3.9.txt +++ /dev/null @@ -1,9 +0,0 @@ -Git v2.3.9 Release Notes -======================== - -Fixes since v2.3.8 ------------------- - - * A handful of codepaths that used to use fixed-sized arrays to hold - pathnames have been corrected to use strbuf and other mechanisms to - allow longer pathnames without fearing overflows. diff --git a/third_party/git/Documentation/RelNotes/2.4.0.txt b/third_party/git/Documentation/RelNotes/2.4.0.txt deleted file mode 100644 index cde64be5359b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.0.txt +++ /dev/null @@ -1,514 +0,0 @@ -Git 2.4 Release Notes -===================== - -Backward compatibility warning(s) ---------------------------------- - -This release has a few changes in the user-visible output from -Porcelain commands. These are not meant to be parsed by scripts, but -users still may want to be aware of the changes: - - * The output from "git log --decorate" (and, more generally, the "%d" - format specifier used in the "--format=<string>" parameter to the - "git log" family of commands) has changed. It used to list "HEAD" - just like other branches; e.g., - - $ git log --decorate -1 master - commit bdb0f6788fa5e3cacc4315e9ff318a27b2676ff4 (HEAD, master) - ... - - This release changes the output slightly when HEAD refers to a - branch whose name is also shown in the output. The above is now - shown as: - - $ git log --decorate -1 master - commit bdb0f6788fa5e3cacc4315e9ff318a27b2676ff4 (HEAD -> master) - ... - - * The phrasing "git branch" uses to describe a detached HEAD has been - updated to agree with the phrasing used by "git status": - - - When HEAD is at the same commit as when it was originally - detached, they now both show "detached at <commit object name>". - - - When HEAD has moved since it was originally detached, they now - both show "detached from <commit object name>". - - Previously, "git branch" always used "from". - - -Updates since v2.3 ------------------- - -Ports - - * Our default I/O size (8 MiB) for large files was too large for some - platforms with smaller SSIZE_MAX, leading to read(2)/write(2) - failures. - - * We did not check the curl library version before using the - CURLOPT_PROXYAUTH feature, which did not exist in older versions of - the library. - - * We now detect number of CPUs on older BSD-derived systems. - - * Portability fixes and workarounds for shell scripts have been added - to help BSD-derived systems. - - -UI, Workflows & Features - - * The command usage info strings given by "git cmd -h" and in - documentation have been tweaked for consistency. - - * The "sync" subcommand of "git p4" now allows users to exclude - subdirectories like its "clone" subcommand does. - - * "git log --invert-grep --grep=WIP" will show only commits that do - not have the string "WIP" in their messages. - - * "git push" has been taught an "--atomic" option that makes a push - that updates more than one ref an "all-or-none" affair. - - * Extending the "push to deploy" feature that was added in 2.3, the - behaviour of "git push" when updating the branch that is checked - out can now be tweaked by a "push-to-checkout" hook. - - * HTTP-based transports now send Accept-Language when making - requests. The languages to accept are inferred from environment - variables on the client side (LANGUAGE, etc). - - * "git send-email" used to accept a mistaken "y" (or "yes") as an - answer to "What encoding do you want to use [UTF-8]?" without - questioning. Now it asks for confirmation when the answer looks too - short to be a valid encoding name. - - * When "git apply --whitespace=fix" fixed whitespace errors in the - common context lines, the command reports that it did so. - - * "git status" now allows the "-v" option to be given twice, in which - case it also shows the differences in the working tree that are not - staged to be committed. - - * "git cherry-pick" used to clean up the log message even when it is - merely replaying an existing commit. It now replays the message - verbatim unless you are editing the message of the resulting - commit. - - * "git archive" can now be told to set the 'text' attribute in the - resulting zip archive. - - * Output from "git log --decorate" now distinguishes between a - detached HEAD vs. a HEAD that points at a branch. - - This is a potentially backward-incompatible change; see above for - more information. - - * When HEAD was detached when at commit xyz and hasn't been moved - since it was detached, "git status" would report "detached at xyz" - whereas "git branch" would report "detached from xyz". Now the - output of "git branch" agrees with that of "git status". - - This is a potentially backward-incompatible change; see above for - more information. - - * "git -C '' subcmd" now works in the current directory (analogously - to "cd ''") rather than dying with an error message. - (merge 6a536e2 kn/git-cd-to-empty later to maint). - - * The versionsort.prereleaseSuffix configuration variable can be used - to specify that, for example, v1.0-pre1 comes before v1.0. - - * A new "push.followTags" configuration turns the "--follow-tags" - option on by default for the "git push" command. - - * "git log --graph --no-walk A B..." is a nonsensical combination of - options: "--no-walk" requests discrete points in the history, while - "--graph" asks to draw connections between these discrete points. - Forbid the use of these options together. - - * "git rev-list --bisect --first-parent" does not work (yet) and can - even cause SEGV; forbid it. "git log --bisect --first-parent" would - not be useful until "git bisect --first-parent" materializes, so - also forbid it for now. - - -Performance, Internal Implementation, Development Support etc. - - * Slightly change the implementation of the N_() macro to help us - detect mistakes. - - * Restructure the implementation of "reflog expire" to fit better - with the recently updated reference API. - - * The transport-helper did not pass transport options such as - verbosity, progress, cloning, etc. to import and export based - helpers, like it did for fetch and push based helpers, robbing them - of the chance to honor the wish of the end-users better. - - * The tests that wanted to see that a file becomes unreadable after - running "chmod a-r file", and the tests that wanted to make sure - that they are not run as root, used "can we write into the / - directory?" as a cheap substitute. But on some platforms that is - not a good heuristic. The tests and their prerequisites have been - updated to check what they really require. - (merge f400e51 jk/sanity later to maint). - - * Various issues around "reflog expire", e.g. using --updateref when - expiring a reflog for a symbolic reference, have been corrected - and/or made saner. - - * The documentation for the strbuf API had been split between the API - documentation and the header file. Consolidate the documentation in - strbuf.h. - - * The error handling functions and conventions are now documented in - the API manual (in api-error-handling.txt). - - * Optimize gitattribute look-up, mostly useful in "git grep" on a - project that does not use many attributes, by avoiding it when we - (should) know that the attributes are not defined in the first - place. - - * Typofix in comments. - (merge ef2956a ak/git-pm-typofix later to maint). - - * Code clean-up. - (merge 0b868f0 sb/hex-object-name-is-at-most-41-bytes-long later to maint). - (merge 5d30851 dp/remove-duplicated-header-inclusion later to maint). - - * Simplify the ref transaction API for verifying that "the ref should - be pointing at this object". - - * Simplify the code in "git daemon" that parses out and holds - hostnames used in request interpolation. - - * Restructure the "git push" codepath to make it easier to add new - configuration bits. - - * The run-command interface made it easy to make a pipe for us to - read from a process, wait for the process to finish, and then - attempt to read its output. But this pattern can lead to deadlock. - So introduce a helper to do this correctly (i.e., first read, and - then wait the process to finish) and also add code to prevent such - abuse in the run-command helper. - - * People often forget to chain the commands in their test together - with &&, letting a failure from an earlier command in the test go - unnoticed. The new GIT_TEST_CHAIN_LINT mechanism allows you to - catch such a mistake more easily. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.3 ----------------- - -Unless otherwise noted, all the fixes since v2.3 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git blame HEAD -- missing" failed to correctly say "HEAD" when it - tried to say "No such path 'missing' in HEAD". - (merge a46442f jk/blame-commit-label later to maint). - - * "git rerere" (invoked internally from many mergy operations) did - not correctly signal errors when it attempted to update the working - tree files but failed for whatever reason. - (merge 89ea903 jn/rerere-fail-on-auto-update-failure later to maint). - - * Setting diff.submodule to 'log' made "git format-patch" produce - broken patches. - (merge 339de50 dk/format-patch-ignore-diff-submodule later to maint). - - * After attempting and failing a password-less authentication (e.g., - Kerberos), libcURL refuses to fall back to password-based Basic - authentication without a bit of help/encouragement. - (merge 4dbe664 bc/http-fallback-to-password-after-krb-fails later to maint). - - * The "git push" documentation for the "--repo=<there>" option was - easily misunderstood. - (merge 57b92a7 mg/push-repo-option-doc later to maint). - - * Code to read a branch name from various files in the .git/ - directory would have overrun array limits if asked to read an empty - file. - (merge 66ec904 jk/status-read-branch-name-fix later to maint). - - * Remove a superfluous conditional that is always true. - (merge 94ee8e2 jk/remote-curl-an-array-in-struct-cannot-be-null later to maint). - - * The "git diff --raw" documentation incorrectly implied that C(opy) - and R(ename) are the only statuses that can be followed by a score - number. - (merge ac1c2d9 jc/diff-format-doc later to maint). - - * A broken pack .idx file in the receiving repository prevented the - dumb http transport from fetching a good copy of it from the other - side. - (merge 8b9c2dd jk/dumb-http-idx-fetch-fix later to maint). - - * The error message from "git commit", when a non-existing author - name was given as value to the "--author=" parameter, has been - reworded to avoid misunderstanding. - (merge 1044b1f mg/commit-author-no-match-malformed-message later to maint). - - * "git log --help" used to show rev-list options that are irrelevant - to the "log" command. - (merge 3cab02d jc/doc-log-rev-list-options later to maint). - - * "git apply --whitespace=fix" used to under-allocate memory when the - fix resulted in a longer text than the original patch. - (merge 407a792 jc/apply-ws-fix-expands later to maint). - - * The interactive "show a list and let the user choose from it" - interface used by "git add -i" unnecessarily prompted the user even - when the candidate list was empty, against which the only "choice" - the user could have made was to choose nothing. - (merge a9c4641 ak/add-i-empty-candidates later to maint). - - * The todo list created by "git rebase -i" did not fully honor - core.abbrev settings. - (merge edb72d5 ks/rebase-i-abbrev later to maint). - - * "git fetch" over a remote-helper that cannot respond to the "list" - command could not fetch from a symbolic reference (e.g., HEAD). - (merge 33cae54 mh/deref-symref-over-helper-transport later to maint). - - * "git push --signed" gave an incorrectly worded error message when - the other side did not support the capability. - - * The "git push --signed" protocol extension did not limit what the - "nonce" (a server-chosen string) could contain nor how long it - could be, which was unnecessarily lax. Limit both the length and - the alphabet to a reasonably small space that can still have enough - entropy. - (merge afcb6ee jc/push-cert later to maint). - - * The completion script (in contrib/) clobbered the shell variable $x - in the global shell namespace. - (merge 852ff1c ma/bash-completion-leaking-x later to maint). - - * We incorrectly formatted a "uintmax_t" integer that doesn't fit in - "int". - (merge d306f3d jk/decimal-width-for-uintmax later to maint). - - * The configuration parser used to be confused when reading - configuration from a blob object that ends with a lone CR. - (merge 1d0655c jk/config-no-ungetc-eof later to maint). - - * The pack bitmap support did not build with older versions of GCC. - (merge bd4e882 jk/pack-bitmap later to maint). - - * The documentation wasn't clear that "remote.<nick>.pushURL" and - "remote.<nick>.URL" are there to name the same repository accessed - via different transports, not two separate repositories. - (merge 697f652 jc/remote-set-url-doc later to maint). - - * Older GnuPG implementations may not correctly import the keyring - material we prepare for the tests to use. - (merge 1f985d6 ch/new-gpg-drops-rfc-1991 later to maint). - - * The credential helper for Windows (in contrib/) used to mishandle - user names that contain an at-sign. - (merge 13d261e av/wincred-with-at-in-username-fix later to maint). - - * "diff-highlight" (in contrib/) used to show byte-by-byte - differences, which could cause multi-byte characters to be chopped - in the middle. It learned to pay attention to character boundaries - (assuming UTF-8). - (merge 8d00662 jk/colors later to maint). - - * Document longstanding configuration variable naming rules in - CodingGuidelines. - (merge 35840a3 jc/conf-var-doc later to maint). - - * An earlier workaround to squelch unhelpful deprecation warnings - from the compiler on OS X unnecessarily set a minimum required - version of the OS, which the user might want to raise (or lower) - for other reasons. - (merge 88c03eb es/squelch-openssl-warnings-on-macosx later to maint). - - * Certain older vintages of cURL give irregular output from - "curl-config --vernum", which confused our build system. - (merge 3af6792 tc/curl-vernum-output-broken-in-7.11 later to maint). - - * In v2.2.0, we broke "git prune" that runs in a repository that - borrows from an alternate object store. - (merge b0a4264 jk/prune-mtime later to maint). - - * "git submodule add" failed to squash "path/to/././submodule" to - "path/to/submodule". - (merge 8196e72 ps/submodule-sanitize-path-upon-add later to maint). - - * "git merge-file" did not work correctly when invoked in a - subdirectory. - (merge 204a8ff ab/merge-file-prefix later to maint). - - * "git blame" could die trying to free an uninitialized piece of - memory. - (merge e600592 es/blame-commit-info-fix later to maint). - - * "git fast-import" used to crash when it could not close and - finalize the resulting packfile cleanly. - (merge 5e915f3 jk/fast-import-die-nicely-fix later to maint). - - * "update-index --refresh" used to leak memory when an entry could - not be refreshed for whatever reason. - (merge bc1c2ca sb/plug-leak-in-make-cache-entry later to maint). - - * The "interpolated-path" option of "git daemon" inserted any string - the client declared on the "host=" capability request without - checking. Sanitize and limit %H and %CH to a saner and a valid DNS - name. - (merge b485373 jk/daemon-interpolate later to maint). - - * "git daemon" unnecessarily looked up the hostname even when "%CH" - and "%IP" interpolations were not requested. - (merge dc8edc8 rs/daemon-interpolate later to maint). - - * We relied on "--no-" prefix handling in Perl's Getopt::Long - package, even though that support didn't exist in Perl 5.8 (which - we still support). Manually add support to help people with older - Getopt::Long packages. - (merge f471494 km/send-email-getopt-long-workarounds later to maint). - - * "git apply" was not very careful about reading from, removing, - updating and creating paths outside the working tree (under - --index/--cached) or the current directory (when used as a - replacement for GNU patch). - (merge e0d201b jc/apply-beyond-symlink later to maint). - - * Correct a breakage in git-svn, introduced around the v2.2 era, that - can cause FileHandles to be closed prematurely. - (merge e426311 ew/svn-maint-fixes later to maint). - - * We did not parse usernames followed by literal IPv6 addresses - correctly in SSH transport URLs; e.g., - ssh://user@[2001:db8::1]:22/repo.git. - (merge 6b6c5f7 tb/connect-ipv6-parse-fix later to maint). - - * The configuration variable 'mailinfo.scissors' was hard to - discover in the documentation. - (merge afb5de7 mm/am-c-doc later to maint). - - * The interaction between "git submodule update" and the - submodule.*.update configuration was not clearly documented. - (merge 5c31acf ms/submodule-update-config-doc later to maint). - - * "git diff --shortstat" used together with "--dirstat=changes" or - "--dirstat=files" incorrectly output dirstat information twice. - (merge ab27389 mk/diff-shortstat-dirstat-fix later to maint). - - * The manpage for "git remote add" mentioned "--tags" and "--no-tags" - but did not explain what happens if neither option is provided. - (merge aaba0ab mg/doc-remote-tags-or-not later to maint). - - * The description of "--exclude-standard option" in the output of - "git grep -h" was phrased poorly. - (merge 77fdb8a nd/grep-exclude-standard-help-fix later to maint). - - * "git rebase -i" recently started to include the number of commits - in the todo list, but that output included extraneous whitespace on - a platform that prepends leading whitespaces to its "wc -l" output. - (merge 2185d3b es/rebase-i-count-todo later to maint). - - * The borrowed code in the kwset API did not follow our usual - convention to use "unsigned char" to store values that range from - 0-255. - (merge 189c860 bw/kwset-use-unsigned later to maint). - - * A corrupt input to "git diff -M" used to cause it to segfault. - (merge 4d6be03 jk/diffcore-rename-duplicate later to maint). - - * Certain builds of GPG triggered false breakages in a test. - (merge 3f88c1b mg/verify-commit later to maint). - - * "git imap-send" learned to optionally talk with an IMAP server via - libcURL. Because there is no other option when Git is built with - the NO_OPENSSL option, use libcURL by default in that case. - (merge dcd01ea km/imap-send-libcurl-options later to maint). - - * "git log --decorate" did not reset colors correctly around the - branch names. - (merge 5ee8758 jc/decorate-leaky-separator-color later to maint). - - * The code that reads from the ctags file in the completion script - (in contrib/) did not spell ${param/pattern/string} substitution - correctly, which happened to work with bash but not with zsh. - (merge db8d750 js/completion-ctags-pattern-substitution-fix later to maint). - - * The transfer.hiderefs support did not quite work for smart-http - transport. - (merge 8ddf3ca jk/smart-http-hide-refs later to maint). - - * In the "git tag -h" output, move the documentation for the - "--column" and "--sort" options to the "Tag listing options" - section. - (merge dd059c6 jk/tag-h-column-is-a-listing-option later to maint). - - * "git prune" used to largely ignore broken refs when deciding which - objects are still being used, which could cause reference - corruption to lead to object loss. - (merge ea56c4e jk/prune-with-corrupt-refs later to maint). - - * The split-index mode introduced in v2.3.0-rc0~41 was broken in the - codepath to protect us against a broken reimplementation of Git - that writes an invalid index with duplicated index entries, etc. - (merge 03f15a7 tg/fix-check-order-with-split-index later to maint). - - * "git fetch", when fetching a commit using the - allow-tip-sha1-in-want extension, could have failed to fetch all of - the requested refs. - (merge 32d0462 jk/fetch-pack later to maint). - - * An failure early in the "git clone" that started creating the - working tree and repository could have resulted in the failure to - clean up some directories and files. - (merge 16eff6c jk/cleanup-failed-clone later to maint). - - * Recommend format-patch and send-email for those who want to submit - patches to this project. - (merge b25c469 jc/submitting-patches-mention-send-email later to maint). - - * Do not spawn the pager when "git grep" is run with "--quiet". - (merge c2048f0 ws/grep-quiet-no-pager later to maint). - - * The prompt script (in contrib/) did not show the untracked sign - when working in a subdirectory without any untracked files. - (merge 9bdc517 ct/prompt-untracked-fix later to maint). - - * An earlier update to the URL parser broke an address that contains - a colon but an empty string for the port number, like - ssh://example.com:/path/to/repo. - (merge 6b6c5f7 tb/connect-ipv6-parse-fix later to maint). - - * Code cleanups and documentation updates. - (merge 2ce63e9 rs/simple-cleanups later to maint). - (merge 33baa69 rj/no-xopen-source-for-cygwin later to maint). - (merge 817d03e jc/diff-test-updates later to maint). - (merge eb32c66 ak/t5516-typofix later to maint). - (merge bcd57cb mr/doc-clean-f-f later to maint). - (merge 0d6accc mg/doc-status-color-slot later to maint). - (merge 53e53c7 sg/completion-remote later to maint). - (merge 8fa7975 ak/git-done-help-cleanup later to maint). - (merge 9a6f128 rs/deflate-init-cleanup later to maint). - (merge 6f75d45 rs/use-isxdigit later to maint). - (merge 376e4b3 jk/test-annoyances later to maint). - (merge 7032054 nd/doc-git-index-version later to maint). - (merge e869c5e tg/test-index-v4 later to maint). - (merge 599d223 jk/simplify-csum-file-sha1fd-check later to maint). - (merge 260d585 sg/completion-gitcomp-nl-for-refs later to maint). - (merge 777c55a jc/report-path-error-to-dir later to maint). - (merge fddfaf8 ph/push-doc-cas later to maint). - (merge d50d31e ss/pull-rebase-preserve later to maint). - (merge c8c3f1d pt/enter-repo-comment-fix later to maint). - (merge d7bfb9e jz/gitweb-conf-doc-fix later to maint). - (merge f907282 jk/cherry-pick-docfix later to maint). - (merge d3c0811 iu/fix-parse-options-h-comment later to maint). - (merge 6c3b2af jg/cguide-we-cannot-count later to maint). - (merge 2b8bd44 jk/pack-corruption-post-mortem later to maint). - (merge 9585cb8 jn/doc-fast-import-no-16-octopus-limit later to maint). - (merge 5dcd1b1 ps/grep-help-all-callback-arg later to maint). - (merge f1f4c84 va/fix-git-p4-tests later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.4.1.txt b/third_party/git/Documentation/RelNotes/2.4.1.txt deleted file mode 100644 index a65a6c582929..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.1.txt +++ /dev/null @@ -1,40 +0,0 @@ -Git v2.4.1 Release Notes -======================== - -Fixes since v2.4 ----------------- - - * The usual "git diff" when seeing a file turning into a directory - showed a patchset to remove the file and create all files in the - directory, but "git diff --no-index" simply refused to work. Also, - when asked to compare a file and a directory, imitate POSIX "diff" - and compare the file with the file with the same name in the - directory, instead of refusing to run. - - * The default $HOME/.gitconfig file created upon "git config --global" - that edits it had incorrectly spelled user.name and user.email - entries in it. - - * "git commit --date=now" or anything that relies on approxidate lost - the daylight-saving-time offset. - - * "git cat-file bl $blob" failed to barf even though there is no - object type that is "bl". - - * Teach the codepaths that read .gitignore and .gitattributes files - that these files encoded in UTF-8 may have UTF-8 BOM marker at the - beginning; this makes it in line with what we do for configuration - files already. - - * Access to objects in repositories that borrow from another one on a - slow NFS server unnecessarily got more expensive due to recent code - becoming more cautious in a naive way not to lose objects to pruning. - - * We avoid setting core.worktree when the repository location is the - ".git" directory directly at the top level of the working tree, but - the code misdetected the case in which the working tree is at the - root level of the filesystem (which arguably is a silly thing to - do, but still valid). - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.10.txt b/third_party/git/Documentation/RelNotes/2.4.10.txt deleted file mode 100644 index 702d8d4e224e..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.10.txt +++ /dev/null @@ -1,18 +0,0 @@ -Git v2.4.10 Release Notes -========================= - -Fixes since v2.4.9 ------------------- - - * xdiff code we use to generate diffs is not prepared to handle - extremely large files. It uses "int" in many places, which can - overflow if we have a very large number of lines or even bytes in - our input files, for example. Cap the input size to somewhere - around 1GB for now. - - * Some protocols (like git-remote-ext) can execute arbitrary code - found in the URL. The URLs that submodules use may come from - arbitrary sources (e.g., .gitmodules files in a remote - repository), and can hurt those who blindly enable recursive - fetch. Restrict the allowed protocols to well known and safe - ones. diff --git a/third_party/git/Documentation/RelNotes/2.4.11.txt b/third_party/git/Documentation/RelNotes/2.4.11.txt deleted file mode 100644 index 723360295c12..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.11.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git v2.4.11 Release Notes -========================= - -Fixes since v2.4.10 -------------------- - - * Bugfix patches were backported from the 'master' front to plug heap - corruption holes, to catch integer overflow in the computation of - pathname lengths, and to get rid of the name_path API. Both of - these would have resulted in writing over an under-allocated buffer - when formulating pathnames while tree traversal. diff --git a/third_party/git/Documentation/RelNotes/2.4.12.txt b/third_party/git/Documentation/RelNotes/2.4.12.txt deleted file mode 100644 index 7d15f94725f1..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.12.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.4.12 Release Notes -========================= - -Fixes since v2.4.11 -------------------- - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). diff --git a/third_party/git/Documentation/RelNotes/2.4.2.txt b/third_party/git/Documentation/RelNotes/2.4.2.txt deleted file mode 100644 index 250cdc423c9f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.2.txt +++ /dev/null @@ -1,45 +0,0 @@ -Git v2.4.2 Release Notes -======================== - -Fixes since v2.4.1 ------------------- - - * "git rev-list --objects $old --not --all" to see if everything that - is reachable from $old is already connected to the existing refs - was very inefficient. - - * "hash-object --literally" introduced in v2.2 was not prepared to - take a really long object type name. - - * "git rebase --quiet" was not quite quiet when there is nothing to - do. - - * The completion for "log --decorate=" parameter value was incorrect. - - * "filter-branch" corrupted commit log message that ends with an - incomplete line on platforms with some "sed" implementations that - munge such a line. Work it around by avoiding to use "sed". - - * "git daemon" fails to build from the source under NO_IPV6 - configuration (regression in 2.4). - - * "git stash pop/apply" forgot to make sure that not just the working - tree is clean but also the index is clean. The latter is important - as a stash application can conflict and the index will be used for - conflict resolution. - - * We have prepended $GIT_EXEC_PATH and the path "git" is installed in - (typically "/usr/bin") to $PATH when invoking subprograms and hooks - for almost eternity, but the original use case the latter tried to - support was semi-bogus (i.e. install git to /opt/foo/git and run it - without having /opt/foo on $PATH), and more importantly it has - become less and less relevant as Git grew more mainstream (i.e. the - users would _want_ to have it on their $PATH). Stop prepending the - path in which "git" is installed to users' $PATH, as that would - interfere the command search order people depend on (e.g. they may - not like versions of programs that are unrelated to Git in /usr/bin - and want to override them by having different ones in /usr/local/bin - and have the latter directory earlier in their $PATH). - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.3.txt b/third_party/git/Documentation/RelNotes/2.4.3.txt deleted file mode 100644 index 422e930aa2b2..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.3.txt +++ /dev/null @@ -1,76 +0,0 @@ -Git v2.4.3 Release Notes -======================== - -Fixes since v2.4.3 ------------------- - - * Error messages from "git branch" called remote-tracking branches as - "remote branches". - - * "git rerere forget" in a repository without rerere enabled gave a - cryptic error message; it should be a silent no-op instead. - - * "git pull --log" and "git pull --no-log" worked as expected, but - "git pull --log=20" did not. - - * The pull.ff configuration was supposed to override the merge.ff - configuration, but it didn't. - - * The code to read pack-bitmap wanted to allocate a few hundred - pointers to a structure, but by mistake allocated and leaked memory - enough to hold that many actual structures. Correct the allocation - size and also have it on stack, as it is small enough. - - * Various documentation mark-up fixes to make the output more - consistent in general and also make AsciiDoctor (an alternative - formatter) happier. - - * "git bundle verify" did not diagnose extra parameters on the - command line. - - * Multi-ref transaction support we merged a few releases ago - unnecessarily kept many file descriptors open, risking to fail with - resource exhaustion. - - * The ref API did not handle cases where 'refs/heads/xyzzy/frotz' is - removed at the same time as 'refs/heads/xyzzy' is added (or vice - versa) very well. - - * The "log --decorate" enhancement in Git 2.4 that shows the commit - at the tip of the current branch e.g. "HEAD -> master", did not - work with --decorate=full. - - * There was a commented-out (instead of being marked to expect - failure) test that documented a breakage that was fixed since the - test was written; turn it into a proper test. - - * core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed - to be overridden by repository-specific .git/info/exclude file, but - the order was swapped from the beginning. This belatedly fixes it. - - * The connection initiation code for "ssh" transport tried to absorb - differences between the stock "ssh" and Putty-supplied "plink" and - its derivatives, but the logic to tell that we are using "plink" - variants were too loose and falsely triggered when "plink" appeared - anywhere in the path (e.g. "/home/me/bin/uplink/ssh"). - - * "git rebase -i" moved the "current" command from "todo" to "done" a - bit too prematurely, losing a step when a "pick" did not even start. - - * "git add -e" did not allow the user to abort the operation by - killing the editor. - - * Git 2.4 broke setting verbosity and progress levels on "git clone" - with native transports. - - * Some time ago, "git blame" (incorrectly) lost the convert_to_git() - call when synthesizing a fake "tip" commit that represents the - state in the working tree, which broke folks who record the history - with LF line ending to make their project portable across - platforms while terminating lines in their working tree files with - CRLF for their platform. - - * Code clean-up for xdg configuration path support. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.4.txt b/third_party/git/Documentation/RelNotes/2.4.4.txt deleted file mode 100644 index f1ccd001bec3..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.4.txt +++ /dev/null @@ -1,35 +0,0 @@ -Git v2.4.4 Release Notes -======================== - -Fixes since v2.4.3 ------------------- - - * l10n updates for German. - - * An earlier leakfix to bitmap testing code was incomplete. - - * "git clean pathspec..." tried to lstat(2) and complain even for - paths outside the given pathspec. - - * Communication between the HTTP server and http_backend process can - lead to a dead-lock when relaying a large ref negotiation request. - Diagnose the situation better, and mitigate it by reading such a - request first into core (to a reasonable limit). - - * The clean/smudge interface did not work well when filtering an - empty contents (failed and then passed the empty input through). - It can be argued that a filter that produces anything but empty for - an empty input is nonsense, but if the user wants to do strange - things, then why not? - - * Make "git stash something --help" error out, so that users can - safely say "git stash drop --help". - - * Clarify that "log --raw" and "log --format=raw" are unrelated - concepts. - - * Catch a programmer mistake to feed a pointer not an array to - ARRAY_SIZE() macro, by using a couple of GCC extensions. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.5.txt b/third_party/git/Documentation/RelNotes/2.4.5.txt deleted file mode 100644 index 568297ccb7f1..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.5.txt +++ /dev/null @@ -1,28 +0,0 @@ -Git v2.4.5 Release Notes -======================== - -Fixes since v2.4.4 ------------------- - - * The setup code used to die when core.bare and core.worktree are set - inconsistently, even for commands that do not need working tree. - - * There was a dead code that used to handle "git pull --tags" and - show special-cased error message, which was made irrelevant when - the semantics of the option changed back in Git 1.9 days. - - * "color.diff.plain" was a misnomer; give it 'color.diff.context' as - a more logical synonym. - - * The configuration reader/writer uses mmap(2) interface to access - the files; when we find a directory, it barfed with "Out of memory?". - - * Recent "git prune" traverses young unreachable objects to safekeep - old objects in the reachability chain from them, which sometimes - showed unnecessary error messages that are alarming. - - * "git rebase -i" fired post-rewrite hook when it shouldn't (namely, - when it was told to stop sequencing with 'exec' insn). - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.6.txt b/third_party/git/Documentation/RelNotes/2.4.6.txt deleted file mode 100644 index b53f3539399a..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.6.txt +++ /dev/null @@ -1,23 +0,0 @@ -Git v2.4.6 Release Notes -======================== - -Fixes since v2.4.5 ------------------- - - * "git fetch --depth=<depth>" and "git clone --depth=<depth>" issued - a shallow transfer request even to an upload-pack that does not - support the capability. - - * "git fsck" used to ignore missing or invalid objects recorded in reflog. - - * The tcsh completion writes a bash scriptlet but that would have - failed for users with noclobber set. - - * Recent Mac OS X updates breaks the logic to detect that the machine - is on the AC power in the sample pre-auto-gc script. - - * "git format-patch --ignore-if-upstream A..B" did not like to be fed - tags as boundary commits. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.7.txt b/third_party/git/Documentation/RelNotes/2.4.7.txt deleted file mode 100644 index b3ac412b829c..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.7.txt +++ /dev/null @@ -1,53 +0,0 @@ -Git v2.4.7 Release Notes -======================== - -Fixes since v2.4.6 ------------------- - - * A minor regression to "git fsck" in v2.2 era was fixed; it - complained about a body-less tag object when it lacked a - separator empty line after its header to separate it with a - non-existent body. - - * We used to ask libCURL to use the most secure authentication method - available when talking to an HTTP proxy only when we were told to - talk to one via configuration variables. We now ask libCURL to - always use the most secure authentication method, because the user - can tell libCURL to use an HTTP proxy via an environment variable - without using configuration variables. - - * When you say "!<ENTER>" while running say "git log", you'd confuse - yourself in the resulting shell, that may look as if you took - control back to the original shell you spawned "git log" from but - that isn't what is happening. To that new shell, we leaked - GIT_PAGER_IN_USE environment variable that was meant as a local - communication between the original "Git" and subprocesses that was - spawned by it after we launched the pager, which caused many - "interesting" things to happen, e.g. "git diff | cat" still paints - its output in color by default. - - Stop leaking that environment variable to the pager's half of the - fork; we only need it on "Git" side when we spawn the pager. - - * Avoid possible ssize_t to int truncation. - - * "git config" failed to update the configuration file when the - underlying filesystem is incapable of renaming a file that is still - open. - - * A minor bugfix when pack bitmap is used with "rev-list --count". - - * An ancient test framework enhancement to allow color was not - entirely correct; this makes it work even when tput needs to read - from the ~/.terminfo under the user's real HOME directory. - - * Fix a small bug in our use of umask() return value. - - * "git rebase" did not exit with failure when format-patch it invoked - failed for whatever reason. - - * Disable "have we lost a race with competing repack?" check while - receiving a huge object transfer that runs index-pack. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.8.txt b/third_party/git/Documentation/RelNotes/2.4.8.txt deleted file mode 100644 index ad946b267378..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.8.txt +++ /dev/null @@ -1,21 +0,0 @@ -Git v2.4.8 Release Notes -======================== - -Fixes since v2.4.7 ------------------- - - * Abandoning an already applied change in "git rebase -i" with - "--continue" left CHERRY_PICK_HEAD and confused later steps. - - * Various fixes around "git am" that applies a patch to a history - that is not there yet. - - * "git for-each-ref" reported "missing object" for 0{40} when it - encounters a broken ref. The lack of object whose name is 0{40} is - not the problem; the ref being broken is. - - * "git commit --cleanup=scissors" was not careful enough to protect - against getting fooled by a line that looked like scissors. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.4.9.txt b/third_party/git/Documentation/RelNotes/2.4.9.txt deleted file mode 100644 index 09af9ddbc77b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.4.9.txt +++ /dev/null @@ -1,9 +0,0 @@ -Git v2.4.9 Release Notes -======================== - -Fixes since v2.4.9 ------------------- - - * A handful of codepaths that used to use fixed-sized arrays to hold - pathnames have been corrected to use strbuf and other mechanisms to - allow longer pathnames without fearing overflows. diff --git a/third_party/git/Documentation/RelNotes/2.5.0.txt b/third_party/git/Documentation/RelNotes/2.5.0.txt deleted file mode 100644 index 84723f912a9c..000000000000 --- a/third_party/git/Documentation/RelNotes/2.5.0.txt +++ /dev/null @@ -1,564 +0,0 @@ -Git 2.5 Release Notes -===================== - -Updates since v2.4 ------------------- - -UI, Workflows & Features - - * The bash completion script (in contrib/) learned a few options that - "git revert" takes. - - * Whitespace breakages in deleted and context lines can also be - painted in the output of "git diff" and friends with the new - --ws-error-highlight option. - - * List of commands shown by "git help" are grouped along the workflow - elements to help early learners. - - * "git p4" now detects the filetype (e.g. binary) correctly even when - the files are opened exclusively. - - * git p4 attempts to better handle branches in Perforce. - - * "git p4" learned "--changes-block-size <n>" to read the changes in - chunks from Perforce, instead of making one call to "p4 changes" - that may trigger "too many rows scanned" error from Perforce. - - * More workaround for Perforce's row number limit in "git p4". - - * Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the - command and initial options (e.g. "/path/to/emacs -nw"), 'git p4' - did not let the shell interpolate the contents of the environment - variable that name the editor "$P4EDITOR" (and "$EDITOR", too). - This release makes it in line with the rest of Git, as well as with - Perforce. - - * A new short-hand <branch>@{push} denotes the remote-tracking branch - that tracks the branch at the remote the <branch> would be pushed - to. - - * "git show-branch --topics HEAD" (with no other arguments) did not - do anything interesting. Instead, contrast the given revision - against all the local branches by default. - - * A replacement for contrib/workdir/git-new-workdir that does not - rely on symbolic links and make sharing of objects and refs safer - by making the borrowee and borrowers aware of each other. - - Consider this as still an experimental feature; its UI is still - likely to change. - - * Tweak the sample "store" backend of the credential helper to honor - XDG configuration file locations when specified. - - * A heuristic we use to catch mistyped paths on the command line - "git <cmd> <revs> <pathspec>" is to make sure that all the non-rev - parameters in the later part of the command line are names of the - files in the working tree, but that means "git grep $str -- \*.c" - must always be disambiguated with "--", because nobody sane will - create a file whose name literally is asterisk-dot-see. Loosen the - heuristic to declare that with a wildcard string the user likely - meant to give us a pathspec. - - * "git merge FETCH_HEAD" learned that the previous "git fetch" could - be to create an Octopus merge, i.e. recording multiple branches - that are not marked as "not-for-merge"; this allows us to lose an - old style invocation "git merge <msg> HEAD $commits..." in the - implementation of "git pull" script; the old style syntax can now - be deprecated (but not removed yet). - - * Filter scripts were run with SIGPIPE disabled on the Git side, - expecting that they may not read what Git feeds them to filter. - We however treated a filter that does not read its input fully - before exiting as an error. We no longer do and ignore EPIPE - when writing to feed the filter scripts. - - This changes semantics, but arguably in a good way. If a filter - can produce its output without fully consuming its input using - whatever magic, we now let it do so, instead of diagnosing it - as a programming error. - - * Instead of dying immediately upon failing to obtain a lock, the - locking (of refs etc) retries after a short while with backoff. - - * Introduce http.<url>.SSLCipherList configuration variable to tweak - the list of cipher suite to be used with libcURL when talking with - https:// sites. - - * "git subtree" script (in contrib/) used "echo -n" to produce - progress messages in a non-portable way. - - * "git subtree" script (in contrib/) does not have --squash option - when pushing, but the documentation and help text pretended as if - it did. - - * The Git subcommand completion (in contrib/) no longer lists credential - helpers among candidates; they are not something the end user would - invoke interactively. - - * The index file can be taught with "update-index --untracked-cache" - to optionally remember already seen untracked files, in order to - speed up "git status" in a working tree with tons of cruft. - - * "git mergetool" learned to drive WinMerge as a backend. - - * "git upload-pack" that serves "git fetch" can be told to serve - commits that are not at the tip of any ref, as long as they are - reachable from a ref, with uploadpack.allowReachableSHA1InWant - configuration variable. - - * "git cat-file --batch(-check)" learned the "--follow-symlinks" - option that follows an in-tree symbolic link when asked about an - object via extended SHA-1 syntax, e.g. HEAD:RelNotes that points at - Documentation/RelNotes/2.5.0.txt. With the new option, the command - behaves as if HEAD:Documentation/RelNotes/2.5.0.txt was given as - input instead. - - Consider this as still an experimental and incomplete feature: - - - We may want to do the same for in-index objects, e.g. - asking for :RelNotes with this option should give - :Documentation/RelNotes/2.5.0.txt, too - - - "git cat-file --follow-symlinks blob HEAD:RelNotes" - may also be something we want to allow in the future. - - * "git send-email" learned the alias file format used by the sendmail - program (in a simplified form; we obviously do not feed pipes). - - * Traditionally, external low-level 3-way merge drivers are expected - to produce their results based solely on the contents of the three - variants given in temporary files named by %O, %A and %B on their - command line. Additionally allow them to look at the final path - (given by %P). - - * "git blame" learned blame.showEmail configuration variable. - - * "git apply" cannot diagnose a patch corruption when the breakage is - to mark the length of the hunk shorter than it really is on the - hunk header line "@@ -l,k +m,n @@"; one special case it could is - when the hunk becomes no-op (e.g. k == n == 2 for two-line context - patch output), and it learned to do so in this special case. - - * Add the "--allow-unknown-type" option to "cat-file" to allow - inspecting loose objects of an experimental or a broken type. - - * Many long-running operations show progress eye-candy, even when - they are later backgrounded. Hide the eye-candy when the process - is sent to the background instead. - (merge a4fb76c lm/squelch-bg-progress later to maint). - - -Performance, Internal Implementation, Development Support etc. - - * "unsigned char [20]" used throughout the code to represent object - names are being converted into a semi-opaque "struct object_id". - This effort is expected to interfere with other topics in flight, - but hopefully will give us one extra level of abstraction in the - end, when completed. - - * for_each_ref() callback functions were taught to name the objects - not with "unsigned char sha1[20]" but with "struct object_id". - - * Catch a programmer mistake to feed a pointer not an array to - ARRAY_SIZE() macro, by using a couple of GCC extensions. - - * Some error messages in "git config" were emitted without calling - the usual error() facility. - - * When "add--interactive" splits a hunk into two overlapping hunks - and then let the user choose only one, it sometimes feeds an - incorrect patch text to "git apply". Add tests to demonstrate - this. - - I have a slight suspicion that this may be - cf. <7vtzf77wjp.fsf@gitster.siamese.dyndns.org> coming back - and biting us (I seem to have said "let's run with this and see - what happens" back then). - - * More line-ending tests. - - * An earlier rewrite to use strbuf_getwholeline() instead of fgets(3) - to read packed-refs file revealed that the former is unacceptably - inefficient. It has been optimized by using getdelim(3) when - available. - - * The refs API uses ref_lock struct which had its own "int fd", even - though the same file descriptor was in the lock struct it contains. - Clean-up the code to lose this redundant field. - - * There was a dead code that used to handle "git pull --tags" and - show special-cased error message, which was made irrelevant when - the semantics of the option changed back in Git 1.9 days. - (merge 19d122b pt/pull-tags-error-diag later to maint). - - * Help us to find broken test script that splits the body part of the - test by mistaken use of wrong kind of quotes. - (merge d93d5d5 jc/test-prereq-validate later to maint). - - * Developer support to automatically detect broken &&-chain in the - test scripts is now turned on by default. - (merge 92b269f jk/test-chain-lint later to maint). - - * Error reporting mechanism used in "refs" API has been made more - consistent. - - * "git pull" has more test coverage now. - - * "git pull" has become more aware of the options meant for - underlying "git fetch" and then learned to use parse-options - parser. - - * Clarify in the Makefile a guideline to decide use of USE_NSEC. - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.4 ----------------- - -Unless otherwise noted, all the fixes since v2.4 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * Git 2.4 broke setting verbosity and progress levels on "git clone" - with native transports. - (merge 822f0c4 mh/clone-verbosity-fix later to maint). - - * "git add -e" did not allow the user to abort the operation by - killing the editor. - (merge cb64800 jk/add-e-kill-editor later to maint). - - * Memory usage of "git index-pack" has been trimmed by tens of - per-cent. - (merge f0e7f11 nd/slim-index-pack-memory-usage later to maint). - - * "git rev-list --objects $old --not --all" to see if everything that - is reachable from $old is already connected to the existing refs - was very inefficient. - (merge b6e8a3b jk/still-interesting later to maint). - - * "hash-object --literally" introduced in v2.2 was not prepared to - take a really long object type name. - (merge 1427a7f jc/hash-object later to maint). - - * "git rebase --quiet" was not quite quiet when there is nothing to - do. - (merge 22946a9 jk/rebase-quiet-noop later to maint). - - * The completion for "log --decorate=" parameter value was incorrect. - (merge af16bda sg/complete-decorate-full-not-long later to maint). - - * "filter-branch" corrupted commit log message that ends with an - incomplete line on platforms with some "sed" implementations that - munge such a line. Work it around by avoiding to use "sed". - (merge df06201 jk/filter-branch-use-of-sed-on-incomplete-line later to maint). - - * "git daemon" fails to build from the source under NO_IPV6 - configuration (regression in 2.4). - (merge d358f77 jc/daemon-no-ipv6-for-2.4.1 later to maint). - - * Some time ago, "git blame" (incorrectly) lost the convert_to_git() - call when synthesizing a fake "tip" commit that represents the - state in the working tree, which broke folks who record the history - with LF line ending to make their project portable across platforms - while terminating lines in their working tree files with CRLF for - their platform. - (merge 4bf256d tb/blame-resurrect-convert-to-git later to maint). - - * We avoid setting core.worktree when the repository location is the - ".git" directory directly at the top level of the working tree, but - the code misdetected the case in which the working tree is at the - root level of the filesystem (which arguably is a silly thing to - do, but still valid). - (merge 84ccad8 jk/init-core-worktree-at-root later to maint). - - * "git commit --date=now" or anything that relies on approxidate lost - the daylight-saving-time offset. - (merge f6e6362 jc/epochtime-wo-tz later to maint). - - * Access to objects in repositories that borrow from another one on a - slow NFS server unnecessarily got more expensive due to recent code - becoming more cautious in a naive way not to lose objects to pruning. - (merge ee1c6c3 jk/prune-mtime later to maint). - - * The codepaths that read .gitignore and .gitattributes files have been - taught that these files encoded in UTF-8 may have UTF-8 BOM marker at - the beginning; this makes it in line with what we do for configuration - files already. - (merge 27547e5 cn/bom-in-gitignore later to maint). - - * a few helper scripts in the test suite did not report errors - correctly. - (merge de248e9 ep/fix-test-lib-functions-report later to maint). - - * The default $HOME/.gitconfig file created upon "git config --global" - that edits it had incorrectly spelled user.name and user.email - entries in it. - (merge 7e11052 oh/fix-config-default-user-name-section later to maint). - - * "git cat-file bl $blob" failed to barf even though there is no - object type that is "bl". - (merge b7994af jk/type-from-string-gently later to maint). - - * The usual "git diff" when seeing a file turning into a directory - showed a patchset to remove the file and create all files in the - directory, but "git diff --no-index" simply refused to work. Also, - when asked to compare a file and a directory, imitate POSIX "diff" - and compare the file with the file with the same name in the - directory, instead of refusing to run. - (merge 0615173 jc/diff-no-index-d-f later to maint). - - * "git rebase -i" moved the "current" command from "todo" to "done" a - bit too prematurely, losing a step when a "pick" did not even start. - (merge 8cbc57c ph/rebase-i-redo later to maint). - - * The connection initiation code for "ssh" transport tried to absorb - differences between the stock "ssh" and Putty-supplied "plink" and - its derivatives, but the logic to tell that we are using "plink" - variants were too loose and falsely triggered when "plink" appeared - anywhere in the path (e.g. "/home/me/bin/uplink/ssh"). - (merge baaf233 bc/connect-plink later to maint). - - * We have prepended $GIT_EXEC_PATH and the path "git" is installed in - (typically "/usr/bin") to $PATH when invoking subprograms and hooks - for almost eternity, but the original use case the latter tried to - support was semi-bogus (i.e. install git to /opt/foo/git and run it - without having /opt/foo on $PATH), and more importantly it has - become less and less relevant as Git grew more mainstream (i.e. the - users would _want_ to have it on their $PATH). Stop prepending the - path in which "git" is installed to users' $PATH, as that would - interfere the command search order people depend on (e.g. they may - not like versions of programs that are unrelated to Git in /usr/bin - and want to override them by having different ones in /usr/local/bin - and have the latter directory earlier in their $PATH). - (merge a0b4507 jk/git-no-more-argv0-path-munging later to maint). - - * core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed - to be overridden by repository-specific .git/info/exclude file, but - the order was swapped from the beginning. This belatedly fixes it. - (merge 099d2d8 jc/gitignore-precedence later to maint). - - * There was a commented-out (instead of being marked to expect - failure) test that documented a breakage that was fixed since the - test was written; turn it into a proper test. - (merge 66d2e04 sb/t1020-cleanup later to maint). - - * The "log --decorate" enhancement in Git 2.4 that shows the commit - at the tip of the current branch e.g. "HEAD -> master", did not - work with --decorate=full. - (merge 429ad20 mg/log-decorate-HEAD later to maint). - - * The ref API did not handle cases where 'refs/heads/xyzzy/frotz' is - removed at the same time as 'refs/heads/xyzzy' is added (or vice - versa) very well. - (merge c628edf mh/ref-directory-file later to maint). - - * Multi-ref transaction support we merged a few releases ago - unnecessarily kept many file descriptors open, risking to fail with - resource exhaustion. This is for 2.4.x track. - (merge 185ce3a mh/write-refs-sooner-2.4 later to maint). - - * "git bundle verify" did not diagnose extra parameters on the - command line. - (merge 7886cfa ps/bundle-verify-arg later to maint). - - * Various documentation mark-up fixes to make the output more - consistent in general and also make AsciiDoctor (an alternative - formatter) happier. - (merge d0258b9 jk/asciidoc-markup-fix later to maint). - (merge ad3967a jk/stripspace-asciidoctor-fix later to maint). - (merge 975e382 ja/tutorial-asciidoctor-fix later to maint). - - * The code to read pack-bitmap wanted to allocate a few hundred - pointers to a structure, but by mistake allocated and leaked memory - enough to hold that many actual structures. Correct the allocation - size and also have it on stack, as it is small enough. - (merge 599dc76 rs/plug-leak-in-pack-bitmaps later to maint). - - * The pull.ff configuration was supposed to override the merge.ff - configuration, but it didn't. - (merge db9bb28 pt/pull-ff-vs-merge-ff later to maint). - - * "git pull --log" and "git pull --no-log" worked as expected, but - "git pull --log=20" did not. - (merge 5061a44 pt/pull-log-n later to maint). - - * "git rerere forget" in a repository without rerere enabled gave a - cryptic error message; it should be a silent no-op instead. - (merge 0544574 jk/rerere-forget-check-enabled later to maint). - - * "git rebase -i" fired post-rewrite hook when it shouldn't (namely, - when it was told to stop sequencing with 'exec' insn). - (merge 141ff8f mm/rebase-i-post-rewrite-exec later to maint). - - * Clarify that "log --raw" and "log --format=raw" are unrelated - concepts. - (merge 92de921 mm/log-format-raw-doc later to maint). - - * Make "git stash something --help" error out, so that users can - safely say "git stash drop --help". - (merge 5ba2831 jk/stash-options later to maint). - - * The clean/smudge interface did not work well when filtering an - empty contents (failed and then passed the empty input through). - It can be argued that a filter that produces anything but empty for - an empty input is nonsense, but if the user wants to do strange - things, then why not? - (merge f6a1e1e jh/filter-empty-contents later to maint). - - * Communication between the HTTP server and http_backend process can - lead to a dead-lock when relaying a large ref negotiation request. - Diagnose the situation better, and mitigate it by reading such a - request first into core (to a reasonable limit). - (merge 636614f jk/http-backend-deadlock later to maint). - - * "git clean pathspec..." tried to lstat(2) and complain even for - paths outside the given pathspec. - (merge 838d6a9 dt/clean-pathspec-filter-then-lstat later to maint). - - * Recent "git prune" traverses young unreachable objects to safekeep - old objects in the reachability chain from them, which sometimes - caused error messages that are unnecessarily alarming. - (merge ce4e7b2 jk/squelch-missing-link-warning-for-unreachable later to maint). - - * The configuration reader/writer uses mmap(2) interface to access - the files; when we find a directory, it barfed with "Out of memory?". - (merge 9ca0aaf jk/diagnose-config-mmap-failure later to maint). - - * "color.diff.plain" was a misnomer; give it 'color.diff.context' as - a more logical synonym. - (merge 8dbf3eb jk/color-diff-plain-is-context later to maint). - - * The setup code used to die when core.bare and core.worktree are set - inconsistently, even for commands that do not need working tree. - (merge fada767 jk/die-on-bogus-worktree-late later to maint). - - * Recent Mac OS X updates breaks the logic to detect that the machine - is on the AC power in the sample pre-auto-gc script. - (merge c54c7b3 pa/auto-gc-mac-osx later to maint). - - * "git commit --cleanup=scissors" was not careful enough to protect - against getting fooled by a line that looked like scissors. - (merge fbfa097 sg/commit-cleanup-scissors later to maint). - - * "Have we lost a race with competing repack?" check was too - expensive, especially while receiving a huge object transfer - that runs index-pack (e.g. "clone" or "fetch"). - (merge 0eeb077 jk/index-pack-reduce-recheck later to maint). - - * The tcsh completion writes a bash scriptlet but that would have - failed for users with noclobber set. - (merge 0b1f688 af/tcsh-completion-noclobber later to maint). - - * "git for-each-ref" reported "missing object" for 0{40} when it - encounters a broken ref. The lack of object whose name is 0{40} is - not the problem; the ref being broken is. - (merge 501cf47 mh/reporting-broken-refs-from-for-each-ref later to maint). - - * Various fixes around "git am" that applies a patch to a history - that is not there yet. - (merge 6ea3b67 pt/am-abort-fix later to maint). - - * "git fsck" used to ignore missing or invalid objects recorded in reflog. - (merge 19bf6c9 mh/fsck-reflog-entries later to maint). - - * "git format-patch --ignore-if-upstream A..B" did not like to be fed - tags as boundary commits. - (merge 9b7a61d jc/do-not-feed-tags-to-clear-commit-marks later to maint). - - * "git fetch --depth=<depth>" and "git clone --depth=<depth>" issued - a shallow transfer request even to an upload-pack that does not - support the capability. - (merge eb86a50 me/fetch-into-shallow-safety later to maint). - - * "git rebase" did not exit with failure when format-patch it invoked - failed for whatever reason. - (merge 60d708b cb/rebase-am-exit-code later to maint). - - * Fix a small bug in our use of umask() return value. - (merge 3096b2e jk/fix-refresh-utime later to maint). - - * An ancient test framework enhancement to allow color was not - entirely correct; this makes it work even when tput needs to read - from the ~/.terminfo under the user's real HOME directory. - (merge d5c1b7c rh/test-color-avoid-terminfo-in-original-home later to maint). - - * A minor bugfix when pack bitmap is used with "rev-list --count". - (merge c8a70d3 jk/rev-list-no-bitmap-while-pruning later to maint). - - * "git config" failed to update the configuration file when the - underlying filesystem is incapable of renaming a file that is still - open. - (merge 7a64592 kb/config-unmap-before-renaming later to maint). - - * Avoid possible ssize_t to int truncation. - (merge 6c8afe4 mh/strbuf-read-file-returns-ssize-t later to maint). - - * When you say "!<ENTER>" while running say "git log", you'd confuse - yourself in the resulting shell, that may look as if you took - control back to the original shell you spawned "git log" from but - that isn't what is happening. To that new shell, we leaked - GIT_PAGER_IN_USE environment variable that was meant as a local - communication between the original "Git" and subprocesses that was - spawned by it after we launched the pager, which caused many - "interesting" things to happen, e.g. "git diff | cat" still paints - its output in color by default. - - Stop leaking that environment variable to the pager's half of the - fork; we only need it on "Git" side when we spawn the pager. - (merge 124b519 jc/unexport-git-pager-in-use-in-pager later to maint). - - * Abandoning an already applied change in "git rebase -i" with - "--continue" left CHERRY_PICK_HEAD and confused later steps. - (merge 0e0aff4 js/rebase-i-clean-up-upon-continue-to-skip later to maint). - - * We used to ask libCURL to use the most secure authentication method - available when talking to an HTTP proxy only when we were told to - talk to one via configuration variables. We now ask libCURL to - always use the most secure authentication method, because the user - can tell libCURL to use an HTTP proxy via an environment variable - without using configuration variables. - (merge 5841520 et/http-proxyauth later to maint). - - * A fix to a minor regression to "git fsck" in v2.2 era that started - complaining about a body-less tag object when it lacks a separator - empty line after its header to separate it with a non-existent body. - (merge 84d18c0 jc/fsck-retire-require-eoh later to maint). - - * Code cleanups and documentation updates. - (merge 0269f96 mm/usage-log-l-can-take-regex later to maint). - (merge 64f2589 nd/t1509-chroot-test later to maint). - (merge d201a1e sb/test-bitmap-free-at-end later to maint). - (merge 05bfc7d sb/line-log-plug-pairdiff-leak later to maint). - (merge 846e5df pt/xdg-config-path later to maint). - (merge 1154aa4 jc/plug-fmt-merge-msg-leak later to maint). - (merge 319b678 jk/sha1-file-reduce-useless-warnings later to maint). - (merge 9a35c14 fg/document-commit-message-stripping later to maint). - (merge bbf431c ps/doc-packfile-vs-pack-file later to maint). - (merge 309a9e3 jk/skip-http-tests-under-no-curl later to maint). - (merge ccd593c dl/branch-error-message later to maint). - (merge 22570b6 rs/janitorial later to maint). - (merge 5c2a581 mc/commit-doc-grammofix later to maint). - (merge ce41720 ah/usage-strings later to maint). - (merge e6a268c sb/glossary-submodule later to maint). - (merge ec48a76 sb/submodule-doc-intro later to maint). - (merge 14f8b9b jk/clone-dissociate later to maint). - (merge 055c7e9 sb/pack-protocol-mention-smart-http later to maint). - (merge 7c37a5d jk/make-fix-dependencies later to maint). - (merge fc0aa39 sg/merge-summary-config later to maint). - (merge 329af6c pt/t0302-needs-sanity later to maint). - (merge d614f07 fk/doc-format-patch-vn later to maint). - (merge 72dbb36 sg/completion-commit-cleanup later to maint). - (merge e654eb2 es/utf8-stupid-compiler-workaround later to maint). - (merge 34b935c es/osx-header-pollutes-mask-macro later to maint). - (merge ab7fade jc/prompt-document-ps1-state-separator later to maint). - (merge 25f600e mm/describe-doc later to maint). - (merge 83fe167 mm/branch-doc-updates later to maint). - (merge 75d2e5a ls/hint-rev-list-count later to maint). - (merge edc8f71 cb/subtree-tests-update later to maint). - (merge 5330e6e sb/p5310-and-chain later to maint). - (merge c4ac525 tb/checkout-doc later to maint). - (merge e479c5f jk/pretty-encoding-doc later to maint). - (merge 7e837c6 ss/clone-guess-dir-name-simplify later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.5.1.txt b/third_party/git/Documentation/RelNotes/2.5.1.txt deleted file mode 100644 index b70553308af8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.5.1.txt +++ /dev/null @@ -1,65 +0,0 @@ -Git v2.5.1 Release Notes -======================== - -Fixes since v2.5 ----------------- - - * Running an aliased command from a subdirectory when the .git thing - in the working tree is a gitfile pointing elsewhere did not work. - - * Often a fast-import stream builds a new commit on top of the - previous commit it built, and it often unconditionally emits a - "from" command to specify the first parent, which can be omitted in - such a case. This caused fast-import to forget the tree of the - previous commit and then re-read it from scratch, which was - inefficient. Optimize for this common case. - - * The "rev-parse --parseopt" mode parsed the option specification - and the argument hint in a strange way to allow '=' and other - special characters in the option name while forbidding them from - the argument hint. This made it impossible to define an option - like "--pair <key>=<value>" with "pair=key=value" specification, - which instead would have defined a "--pair=key <value>" option. - - * A "rebase" replays changes of the local branch on top of something - else, as such they are placed in stage #3 and referred to as - "theirs", while the changes in the new base, typically a foreign - work, are placed in stage #2 and referred to as "ours". Clarify - the "checkout --ours/--theirs". - - * An experimental "untracked cache" feature used uname(2) in a - slightly unportable way. - - * "sparse checkout" misbehaved for a path that is excluded from the - checkout when switching between branches that differ at the path. - - * The low-level "git send-pack" did not honor 'user.signingkey' - configuration variable when sending a signed-push. - - * An attempt to delete a ref by pushing into a repository whose HEAD - symbolic reference points at an unborn branch that cannot be - created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD - points at refs/heads/a) failed. - - * "git subtree" (in contrib/) depended on "git log" output to be - stable, which was a no-no. Apply a workaround to force a - particular date format. - - * "git clone $URL" in recent releases of Git contains a regression in - the code that invents a new repository name incorrectly based on - the $URL. This has been corrected. - (merge db2e220 jk/guess-repo-name-regression-fix later to maint). - - * Running tests with the "-x" option to make them verbose had some - unpleasant interactions with other features of the test suite. - (merge 9b5fe78 jk/test-with-x later to maint). - - * "git pull" in recent releases of Git has a regression in the code - that allows custom path to the --upload-pack=<program>. This has - been corrected. - - * pipe() emulation used in Git for Windows looked at a wrong variable - when checking for an error from an _open_osfhandle() call. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.5.2.txt b/third_party/git/Documentation/RelNotes/2.5.2.txt deleted file mode 100644 index 3f749398bbc8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.5.2.txt +++ /dev/null @@ -1,63 +0,0 @@ -Git v2.5.2 Release Notes -======================== - -Fixes since v2.5.1 ------------------- - - * "git init empty && git -C empty log" said "bad default revision 'HEAD'", - which was found to be a bit confusing to new users. - - * The "interpret-trailers" helper mistook a multi-paragraph title of - a commit log message with a colon in it as the end of the trailer - block. - - * When re-priming the cache-tree opportunistically while committing - the in-core index as-is, we mistakenly invalidated the in-core - index too aggressively, causing the experimental split-index code - to unnecessarily rewrite the on-disk index file(s). - - * "git archive" did not use zip64 extension when creating an archive - with more than 64k entries, which nobody should need, right ;-)? - - * The code in "multiple-worktree" support that attempted to recover - from an inconsistent state updated an incorrect file. - - * "git rev-list" does not take "--notes" option, but did not complain - when one is given. - - * Because the configuration system does not allow "alias.0foo" and - "pager.0foo" as the configuration key, the user cannot use '0foo' - as a custom command name anyway, but "git 0foo" tried to look these - keys up and emitted useless warnings before saying '0foo is not a - git command'. These warning messages have been squelched. - - * We recently rewrote one of the build scripts in Perl, which made it - necessary to have Perl to build Git. Reduced Perl dependency by - rewriting it again using sed. - - * t1509 test that requires a dedicated VM environment had some - bitrot, which has been corrected. - - * strbuf_read() used to have one extra iteration (and an unnecessary - strbuf_grow() of 8kB), which was eliminated. - - * The codepath to produce error messages had a hard-coded limit to - the size of the message, primarily to avoid memory allocation while - calling die(). - - * When trying to see that an object does not exist, a state errno - leaked from our "first try to open a packfile with O_NOATIME and - then if it fails retry without it" logic on a system that refuses - O_NOATIME. This confused us and caused us to die, saying that the - packfile is unreadable, when we should have just reported that the - object does not exist in that packfile to the caller. - - * An off-by-one error made "git remote" to mishandle a remote with a - single letter nickname. - - * A handful of codepaths that used to use fixed-sized arrays to hold - pathnames have been corrected to use strbuf and other mechanisms to - allow longer pathnames without fearing overflows. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.5.3.txt b/third_party/git/Documentation/RelNotes/2.5.3.txt deleted file mode 100644 index d1436857cb54..000000000000 --- a/third_party/git/Documentation/RelNotes/2.5.3.txt +++ /dev/null @@ -1,17 +0,0 @@ -Git v2.5.3 Release Notes -======================== - -Fixes since v2.5.2 ------------------- - - * The experimental untracked-cache feature were buggy when paths with - a few levels of subdirectories are involved. - - * Recent versions of scripted "git am" has a performance regression - in "git am --skip" codepath, which no longer exists in the - built-in version on the 'master' front. Fix the regression in - the last scripted version that appear in 2.5.x maintenance track - and older. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.5.4.txt b/third_party/git/Documentation/RelNotes/2.5.4.txt deleted file mode 100644 index b8a2f93ee707..000000000000 --- a/third_party/git/Documentation/RelNotes/2.5.4.txt +++ /dev/null @@ -1,18 +0,0 @@ -Git v2.5.4 Release Notes -======================== - -Fixes since v2.5.4 ------------------- - - * xdiff code we use to generate diffs is not prepared to handle - extremely large files. It uses "int" in many places, which can - overflow if we have a very large number of lines or even bytes in - our input files, for example. Cap the input size to somewhere - around 1GB for now. - - * Some protocols (like git-remote-ext) can execute arbitrary code - found in the URL. The URLs that submodules use may come from - arbitrary sources (e.g., .gitmodules files in a remote - repository), and can hurt those who blindly enable recursive - fetch. Restrict the allowed protocols to well known and safe - ones. diff --git a/third_party/git/Documentation/RelNotes/2.5.5.txt b/third_party/git/Documentation/RelNotes/2.5.5.txt deleted file mode 100644 index 37eae9a2d98b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.5.5.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git v2.5.5 Release Notes -======================== - -Fixes since v2.5.4 ------------------- - - * Bugfix patches were backported from the 'master' front to plug heap - corruption holes, to catch integer overflow in the computation of - pathname lengths, and to get rid of the name_path API. Both of - these would have resulted in writing over an under-allocated buffer - when formulating pathnames while tree traversal. diff --git a/third_party/git/Documentation/RelNotes/2.5.6.txt b/third_party/git/Documentation/RelNotes/2.5.6.txt deleted file mode 100644 index 9cd025bb1c2e..000000000000 --- a/third_party/git/Documentation/RelNotes/2.5.6.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.5.6 Release Notes -======================== - -Fixes since v2.5.5 ------------------- - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). diff --git a/third_party/git/Documentation/RelNotes/2.6.0.txt b/third_party/git/Documentation/RelNotes/2.6.0.txt deleted file mode 100644 index 7288aaf71679..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.0.txt +++ /dev/null @@ -1,370 +0,0 @@ -Git 2.6 Release Notes -===================== - -Updates since v2.5 ------------------- - -UI, Workflows & Features - - * An asterisk as a substring (as opposed to the entirety) of a path - component for both side of a refspec, e.g. - "refs/heads/o*:refs/remotes/heads/i*", is now allowed. - - * New userdiff pattern definition for fountain screenwriting markup - format has been added. - - * "git log" and friends learned a new "--date=format:..." option to - format timestamps using system's strftime(3). - - * "git fast-import" learned to respond to the get-mark command via - its cat-blob-fd interface. - - * "git rebase -i" learned "drop commit-object-name subject" command - as another way to skip replaying of a commit. - - * A new configuration variable can enable "--follow" automatically - when "git log" is run with one pathspec argument. - - * "git status" learned to show a more detailed information regarding - the "rebase -i" session in progress. - - * "git cat-file" learned "--batch-all-objects" option to enumerate all - available objects in the repository more quickly than "rev-list - --all --objects" (the output includes unreachable objects, though). - - * "git fsck" learned to ignore errors on a set of known-to-be-bad - objects, and also allows the warning levels of various kinds of - non-critical breakages to be tweaked. - - * "git rebase -i"'s list of todo is made configurable. - - * "git send-email" now performs alias-expansion on names that are - given via --cccmd, etc. - - * An environment variable GIT_REPLACE_REF_BASE tells Git to look into - refs hierarchy other than refs/replace/ for the object replacement - data. - - * Allow untracked cache (experimental) to be used when sparse - checkout (experimental) is also in use. - - * "git pull --rebase" has been taught to pay attention to - rebase.autostash configuration. - - * The command-line completion script (in contrib/) has been updated. - - * A negative !ref entry in multi-value transfer.hideRefs - configuration can be used to say "don't hide this one". - - * After "git am" without "-3" stops, running "git am -3" pays attention - to "-3" only for the patch that caused the original invocation - to stop. - - * When linked worktree is used, simultaneous "notes merge" instances - for the same ref in refs/notes/* are prevented from stomping on - each other. - - * "git send-email" learned a new option --smtp-auth to limit the SMTP - AUTH mechanisms to be used to a subset of what the system library - supports. - - * A new configuration variable http.sslVersion can be used to specify - what specific version of SSL/TLS to use to make a connection. - - * "git notes merge" can be told with "--strategy=<how>" option how to - automatically handle conflicts; this can now be configured by - setting notes.mergeStrategy configuration variable. - - * "git log --cc" did not show any patch, even though most of the time - the user meant "git log --cc -p -m" to see patch output for commits - with a single parent, and combined diff for merge commits. The - command is taught to DWIM "--cc" (without "--raw" and other forms - of output specification) to "--cc -p -m". - - * "git config --list" output was hard to parse when values consist of - multiple lines. "--name-only" option is added to help this. - - * A handful of usability & cosmetic fixes to gitk and l10n updates. - - * A completely empty e-mail address <> is now allowed in the authors - file used by git-svn, to match the way it accepts the output from - authors-prog. - - -Performance, Internal Implementation, Development Support etc. - - * In preparation for allowing different "backends" to store the refs - in a way different from the traditional "one ref per file in - $GIT_DIR or in a $GIT_DIR/packed-refs file" filesystem storage, - direct filesystem access to ref-like things like CHERRY_PICK_HEAD - from scripts and programs has been reduced. - - * Computation of untracked status indicator by bash prompt - script (in contrib/) has been optimized. - - * Memory use reduction when commit-slab facility is used to annotate - sparsely (which is not recommended in the first place). - - * Clean up refs API and make "git clone" less intimate with the - implementation detail. - - * "git pull" was reimplemented in C. - - * The packet tracing machinery allows to capture an incoming pack - data to a file for debugging. - - * Move machinery to parse human-readable scaled numbers like 1k, 4M, - and 2G as an option parameter's value from pack-objects to - parse-options API, to make it available to other codepaths. - - * "git verify-tag" and "git verify-commit" have been taught to share - more code, and then learned to optionally show the verification - message from the underlying GPG implementation. - - * Various enhancements around "git am" reading patches generated by - foreign SCM have been made. - - * Ref listing by "git branch -l" and "git tag -l" commands has - started to be rebuilt, based on the for-each-ref machinery. - - * The code to perform multi-tree merges has been taught to repopulate - the cache-tree upon a successful merge into the index, so that - subsequent "diff-index --cached" (hence "status") and "write-tree" - (hence "commit") will go faster. - - The same logic in "git checkout" may now be removed, but that is a - separate issue. - - * Tests that assume how reflogs are represented on the filesystem too - much have been corrected. - - * "git am" has been rewritten in "C". - - * git_path() and mkpath() are handy helper functions but it is easy - to misuse, as the callers need to be careful to keep the number of - active results below 4. Their uses have been reduced. - - * The "lockfile" API has been rebuilt on top of a new "tempfile" API. - - * To prepare for allowing a different "ref" backend to be plugged in - to the system, update_ref()/delete_ref() have been taught about - ref-like things like MERGE_HEAD that are per-worktree (they will - always be written to the filesystem inside $GIT_DIR). - - * The gitmodules API that is accessed from the C code learned to - cache stuff lazily. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.5 ----------------- - -Unless otherwise noted, all the fixes since v2.5 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git subtree" (in contrib/) depended on "git log" output to be - stable, which was a no-no. Apply a workaround to force a - particular date format. - (merge e7aac44 da/subtree-date-confusion later to maint). - - * An attempt to delete a ref by pushing into a repository whose HEAD - symbolic reference points at an unborn branch that cannot be - created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD - points at refs/heads/a) failed. - (merge b112b14 jx/do-not-crash-receive-pack-wo-head later to maint). - - * The low-level "git send-pack" did not honor 'user.signingkey' - configuration variable when sending a signed-push. - (merge d830d39 db/send-pack-user-signingkey later to maint). - - * "sparse checkout" misbehaved for a path that is excluded from the - checkout when switching between branches that differ at the path. - (merge 7d78241 as/sparse-checkout-removal later to maint). - - * An experimental "untracked cache" feature used uname(2) in a - slightly unportable way. - (merge 100e433 cb/uname-in-untracked later to maint). - - * A "rebase" replays changes of the local branch on top of something - else, as such they are placed in stage #3 and referred to as - "theirs", while the changes in the new base, typically a foreign - work, are placed in stage #2 and referred to as "ours". Clarify - the "checkout --ours/--theirs". - (merge f303016 se/doc-checkout-ours-theirs later to maint). - - * The "rev-parse --parseopt" mode parsed the option specification - and the argument hint in a strange way to allow '=' and other - special characters in the option name while forbidding them from - the argument hint. This made it impossible to define an option - like "--pair <key>=<value>" with "pair=key=value" specification, - which instead would have defined a "--pair=key <value>" option. - (merge 2d893df ib/scripted-parse-opt-better-hint-string later to maint). - - * Often a fast-import stream builds a new commit on top of the - previous commit it built, and it often unconditionally emits a - "from" command to specify the first parent, which can be omitted in - such a case. This caused fast-import to forget the tree of the - previous commit and then re-read it from scratch, which was - inefficient. Optimize for this common case. - (merge 0df3245 mh/fast-import-optimize-current-from later to maint). - - * Running an aliased command from a subdirectory when the .git thing - in the working tree is a gitfile pointing elsewhere did not work. - (merge d95138e nd/export-worktree later to maint). - - * "Is this subdirectory a separate repository that should not be - touched?" check "git clean" was inefficient. This was replaced - with a more optimized check. - (merge fbf2fec ee/clean-remove-dirs later to maint). - - * The "new-worktree-mode" hack in "checkout" that was added in - nd/multiple-work-trees topic has been removed by updating the - implementation of new "worktree add". - (merge 65f9b75 es/worktree-add-cleanup later to maint). - - * Remove remaining cruft from "git checkout --to", which - transitioned to "git worktree add". - (merge 114ff88 es/worktree-add later to maint). - - * An off-by-one error made "git remote" to mishandle a remote with a - single letter nickname. - (merge bc598c3 mh/get-remote-group-fix later to maint). - - * "git clone $URL", when cloning from a site whose sole purpose is to - host a single repository (hence, no path after <scheme>://<site>/), - tried to use the site name as the new repository name, but did not - remove username or password when <site> part was of the form - <user>@<pass>:<host>. The code is taught to redact these. - (merge adef956 ps/guess-repo-name-at-root later to maint). - - * Running tests with the "-x" option to make them verbose had some - unpleasant interactions with other features of the test suite. - (merge 9b5fe78 jk/test-with-x later to maint). - - * t1509 test that requires a dedicated VM environment had some - bitrot, which has been corrected. - (merge faacc5a ps/t1509-chroot-test-fixup later to maint). - - * "git pull" in recent releases of Git has a regression in the code - that allows custom path to the --upload-pack=<program>. This has - been corrected. - - Note that this is irrelevant for 'master' with "git pull" rewritten - in C. - (merge 13e0e28 mm/pull-upload-pack later to maint). - - * When trying to see that an object does not exist, a state errno - leaked from our "first try to open a packfile with O_NOATIME and - then if it fails retry without it" logic on a system that refuses - O_NOATIME. This confused us and caused us to die, saying that the - packfile is unreadable, when we should have just reported that the - object does not exist in that packfile to the caller. - (merge dff6f28 cb/open-noatime-clear-errno later to maint). - - * The codepath to produce error messages had a hard-coded limit to - the size of the message, primarily to avoid memory allocation while - calling die(). - (merge f4c3edc jk/long-error-messages later to maint). - - * strbuf_read() used to have one extra iteration (and an unnecessary - strbuf_grow() of 8kB), which was eliminated. - (merge 3ebbd00 jh/strbuf-read-use-read-in-full later to maint). - - * We rewrote one of the build scripts in Perl but this reimplements - in Bourne shell. - (merge 57cee8a sg/help-group later to maint). - - * The experimental untracked-cache feature were buggy when paths with - a few levels of subdirectories are involved. - (merge 73f9145 dt/untracked-subdir later to maint). - - * "interpret-trailers" helper mistook a single-liner log message that - has a colon as the end of existing trailer. - - * The "interpret-trailers" helper mistook a multi-paragraph title of - a commit log message with a colon in it as the end of the trailer - block. - (merge 5c99995 cc/trailers-corner-case-fix later to maint). - - * "git describe" without argument defaulted to describe the HEAD - commit, but "git describe --contains" didn't. Arguably, in a - repository used for active development, such defaulting would not - be very useful as the tip of branch is typically not tagged, but it - is better to be consistent. - (merge 2bd0706 sg/describe-contains later to maint). - - * The client side codepaths in "git push" have been cleaned up - and the user can request to perform an optional "signed push", - i.e. sign only when the other end accepts signed push. - (merge 68c757f db/push-sign-if-asked later to maint). - - * Because the configuration system does not allow "alias.0foo" and - "pager.0foo" as the configuration key, the user cannot use '0foo' - as a custom command name anyway, but "git 0foo" tried to look these - keys up and emitted useless warnings before saying '0foo is not a - git command'. These warning messages have been squelched. - (merge 9e9de18 jk/fix-alias-pager-config-key-warnings later to maint). - - * "git rev-list" does not take "--notes" option, but did not complain - when one is given. - (merge 2aea7a5 jk/rev-list-has-no-notes later to maint). - - * When re-priming the cache-tree opportunistically while committing - the in-core index as-is, we mistakenly invalidated the in-core - index too aggressively, causing the experimental split-index code - to unnecessarily rewrite the on-disk index file(s). - (merge 475a344 dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update later to maint). - - * "git archive" did not use zip64 extension when creating an archive - with more than 64k entries, which nobody should need, right ;-)? - (merge 88329ca rs/archive-zip-many later to maint). - - * The code in "multiple-worktree" support that attempted to recover - from an inconsistent state updated an incorrect file. - (merge 82fde87 nd/fixup-linked-gitdir later to maint). - - * On case insensitive systems, "git p4" did not work well with client - specs. - - * "git init empty && git -C empty log" said "bad default revision 'HEAD'", - which was found to be a bit confusing to new users. - (merge ce11360 jk/log-missing-default-HEAD later to maint). - - * Recent versions of scripted "git am" has a performance regression in - "git am --skip" codepath, which no longer exists in the built-in - version on the 'master' front. Fix the regression in the last - scripted version that appear in 2.5.x maintenance track and older. - (merge b9d6689 js/maint-am-skip-performance-regression later to maint). - - * The branch descriptions that are set with "git branch --edit-description" - option were used in many places but they weren't clearly documented. - (merge 561d2b7 po/doc-branch-desc later to maint). - - * Code cleanups and documentation updates. - (merge 1c601af es/doc-clean-outdated-tools later to maint). - (merge 3581304 kn/tag-doc-fix later to maint). - (merge 3a59e59 kb/i18n-doc later to maint). - (merge 45abdee sb/remove-unused-var-from-builtin-add later to maint). - (merge 14691e3 sb/parse-options-codeformat later to maint). - (merge 4a6ada3 ad/bisect-cleanup later to maint). - (merge da4c5ad ta/docfix-index-format-tech later to maint). - (merge ae25fd3 sb/check-return-from-read-ref later to maint). - (merge b3325df nd/dwim-wildcards-as-pathspecs later to maint). - (merge 7aa9b9b sg/wt-status-header-inclusion later to maint). - (merge f04c690 as/docfix-reflog-expire-unreachable later to maint). - (merge 1269847 sg/t3020-typofix later to maint). - (merge 8b54c23 jc/calloc-pathspec later to maint). - (merge a6926b8 po/po-readme later to maint). - (merge 54d160e ss/fix-config-fd-leak later to maint). - (merge b80fa84 ah/submodule-typofix-in-error later to maint). - (merge 99885bc ah/reflog-typofix-in-error later to maint). - (merge 9476c2c ah/read-tree-usage-string later to maint). - (merge b8c1d27 ah/pack-objects-usage-strings later to maint). - (merge 486e1e1 br/svn-doc-include-paths-config later to maint). - (merge 1733ed3 ee/clean-test-fixes later to maint). - (merge 5fcadc3 gb/apply-comment-typofix later to maint). - (merge b894d3e mp/t7060-diff-index-test later to maint). - (merge d238710 as/config-doc-markup-fix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.6.1.txt b/third_party/git/Documentation/RelNotes/2.6.1.txt deleted file mode 100644 index f37ea89cda2f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.1.txt +++ /dev/null @@ -1,18 +0,0 @@ -Git v2.6.1 Release Notes -======================== - -Fixes since v2.6 ----------------- - - * xdiff code we use to generate diffs is not prepared to handle - extremely large files. It uses "int" in many places, which can - overflow if we have a very large number of lines or even bytes in - our input files, for example. Cap the input size to somewhere - around 1GB for now. - - * Some protocols (like git-remote-ext) can execute arbitrary code - found in the URL. The URLs that submodules use may come from - arbitrary sources (e.g., .gitmodules files in a remote - repository), and can hurt those who blindly enable recursive - fetch. Restrict the allowed protocols to well known and safe - ones. diff --git a/third_party/git/Documentation/RelNotes/2.6.2.txt b/third_party/git/Documentation/RelNotes/2.6.2.txt deleted file mode 100644 index 5b65e3524577..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.2.txt +++ /dev/null @@ -1,65 +0,0 @@ -Git v2.6.2 Release Notes -======================== - -Fixes since v2.6.1 ------------------- - - * There were some classes of errors that "git fsck" diagnosed to its - standard error that did not cause it to exit with non-zero status. - - * A test script for the HTTP service had a timing dependent bug, - which was fixed. - - * Performance-measurement tests did not work without an installed Git. - - * On a case insensitive filesystems, setting GIT_WORK_TREE variable - using a random cases that does not agree with what the filesystem - thinks confused Git that it wasn't inside the working tree. - - * When "git am" was rewritten as a built-in, it stopped paying - attention to user.signingkey, which was fixed. - - * After "git checkout --detach", "git status" reported a fairly - useless "HEAD detached at HEAD", instead of saying at which exact - commit. - - * "git rebase -i" had a minor regression recently, which stopped - considering a line that begins with an indented '#' in its insn - sheet not a comment, which is now fixed. - - * Description of the "log.follow" configuration variable in "git log" - documentation is now also copied to "git config" documentation. - - * Allocation related functions and stdio are unsafe things to call - inside a signal handler, and indeed killing the pager can cause - glibc to deadlock waiting on allocation mutex as our signal handler - tries to free() some data structures in wait_for_pager(). Reduce - these unsafe calls. - - * The way how --ref/--notes to specify the notes tree reference are - DWIMmed was not clearly documented. - - * Customization to change the behaviour with "make -w" and "make -s" - in our Makefile was broken when they were used together. - - * The Makefile always runs the library archiver with hardcoded "crs" - options, which was inconvenient for exotic platforms on which - people want to use programs with totally different set of command - line options. - - * The ssh transport, just like any other transport over the network, - did not clear GIT_* environment variables, but it is possible to - use SendEnv and AcceptEnv to leak them to the remote invocation of - Git, which is not a good idea at all. Explicitly clear them just - like we do for the local transport. - - * "git blame --first-parent v1.0..v2.0" was not rejected but did not - limit the blame to commits on the first parent chain. - - * Very small number of options take a parameter that is optional - (which is not a great UI element as they can only appear at the end - of the command line). Add notice to documentation of each and - every one of them. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.6.3.txt b/third_party/git/Documentation/RelNotes/2.6.3.txt deleted file mode 100644 index fc6fe1711f81..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.3.txt +++ /dev/null @@ -1,111 +0,0 @@ -Git v2.6.3 Release Notes -======================== - -Fixes since v2.6.2 ------------------- - - * The error message from "git blame --contents --reverse" incorrectly - talked about "--contents --children". - - * "git merge-file" tried to signal how many conflicts it found, which - obviously would not work well when there are too many of them. - - * The name-hash subsystem that is used to cope with case insensitive - filesystems keeps track of directories and their on-filesystem - cases for all the paths in the index by holding a pointer to a - randomly chosen cache entry that is inside the directory (for its - ce->ce_name component). This pointer was not updated even when the - cache entry was removed from the index, leading to use after free. - This was fixed by recording the path for each directory instead of - borrowing cache entries and restructuring the API somewhat. - - * When the "git am" command was reimplemented in C, "git am -3" had a - small regression where it is aborted in its error handling codepath - when underlying merge-recursive failed in some ways. - - * The synopsis text and the usage string of subcommands that read - list of things from the standard input are often shown as if they - only take input from a file on a filesystem, which was misleading. - - * A couple of commands still showed "[options]" in their usage string - to note where options should come on their command line, but we - spell that "[<options>]" in most places these days. - - * The submodule code has been taught to work better with separate - work trees created via "git worktree add". - - * When "git gc --auto" is backgrounded, its diagnosis message is - lost. It now is saved to a file in $GIT_DIR and is shown next time - the "gc --auto" is run. - - * Work around "git p4" failing when the P4 depot records the contents - in UTF-16 without UTF-16 BOM. - - * Recent update to "rebase -i" that tries to sanity check the edited - insn sheet before it uses it has become too picky on Windows where - CRLF left by the editor is turned into a trailing CR on the line - read via the "read" built-in command. - - * "git clone --dissociate" runs a big "git repack" process at the - end, and it helps to close file descriptors that are open on the - packs and their idx files before doing so on filesystems that - cannot remove a file that is still open. - - * Correct "git p4 --detect-labels" so that it does not fail to create - a tag that points at a commit that is also being imported. - - * The internal stripspace() function has been moved to where it - logically belongs to, i.e. strbuf API, and the command line parser - of "git stripspace" has been updated to use the parse_options API. - - * Prepare for Git on-disk repository representation to undergo - backward incompatible changes by introducing a new repository - format version "1", with an extension mechanism. - - * "git gc" used to barf when a symbolic ref has gone dangling - (e.g. the branch that used to be your upstream's default when you - cloned from it is now gone, and you did "fetch --prune"). - - * The normalize_ceiling_entry() function does not muck with the end - of the path it accepts, and the real world callers do rely on that, - but a test insisted that the function drops a trailing slash. - - * "git gc" is safe to run anytime only because it has the built-in - grace period to protect young objects. In order to run with no - grace period, the user must make sure that the repository is - quiescent. - - * A recent "filter-branch --msg-filter" broke skipping of the commit - object header, which is fixed. - - * "git --literal-pathspecs add -u/-A" without any command line - argument misbehaved ever since Git 2.0. - - * Merging a branch that removes a path and another that changes the - mode bits on the same path should have conflicted at the path, but - it didn't and silently favoured the removal. - - * "git imap-send" did not compile well with older version of cURL library. - - * The linkage order of libraries was wrong in places around libcurl. - - * It was not possible to use a repository-lookalike created by "git - worktree add" as a local source of "git clone". - - * When "git send-email" wanted to talk over Net::SMTP::SSL, - Net::Cmd::datasend() did not like to be fed too many bytes at the - same time and failed to send messages. Send the payload one line - at a time to work around the problem. - - * We peek objects from submodule's object store by linking it to the - list of alternate object databases, but the code to do so forgot to - correctly initialize the list. - - * "git status --branch --short" accessed beyond the constant string - "HEAD", which has been corrected. - - * "git daemon" uses "run_command()" without "finish_command()", so it - needs to release resources itself, which it forgot to do. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.6.4.txt b/third_party/git/Documentation/RelNotes/2.6.4.txt deleted file mode 100644 index b0256a2dc9a8..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.4.txt +++ /dev/null @@ -1,63 +0,0 @@ -Git v2.6.4 Release Notes -======================== - -Fixes since v2.6.3 ------------------- - - * The "configure" script did not test for -lpthread correctly, which - upset some linkers. - - * Add support for talking http/https over socks proxy. - - * Portability fix for Windows, which may rewrite $SHELL variable using - non-POSIX paths. - - * We now consistently allow all hooks to ignore their standard input, - rather than having git complain of SIGPIPE. - - * Fix shell quoting in contrib script. - - * Test portability fix for a topic in v2.6.1. - - * Allow tilde-expansion in some http config variables. - - * Give a useful special case "diff/show --word-diff-regex=." as an - example in the documentation. - - * Fix for a corner case in filter-branch. - - * Make git-p4 work on a detached head. - - * Documentation clarification for "check-ignore" without "--verbose". - - * Just like the working tree is cleaned up when the user cancelled - submission in P4Submit.applyCommit(), clean up the mess if "p4 - submit" fails. - - * Having a leftover .idx file without corresponding .pack file in - the repository hurts performance; "git gc" learned to prune them. - - * The code to prepare the working tree side of temporary directory - for the "dir-diff" feature forgot that symbolic links need not be - copied (or symlinked) to the temporary area, as the code already - special cases and overwrites them. Besides, it was wrong to try - computing the object name of the target of symbolic link, which may - not even exist or may be a directory. - - * There was no way to defeat a configured rebase.autostash variable - from the command line, as "git rebase --no-autostash" was missing. - - * Allow "git interpret-trailers" to run outside of a Git repository. - - * Produce correct "dirty" marker for shell prompts, even when we - are on an orphan or an unborn branch. - - * Some corner cases have been fixed in string-matching done in "git - status". - - * Apple's common crypto implementation of SHA1_Update() does not take - more than 4GB at a time, and we now have a compile-time workaround - for it. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.6.5.txt b/third_party/git/Documentation/RelNotes/2.6.5.txt deleted file mode 100644 index f0924b62e03b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.5.txt +++ /dev/null @@ -1,58 +0,0 @@ -Git v2.6.5 Release Notes -======================== - -Fixes since v2.6.4 ------------------- - - * Because "test_when_finished" in our test framework queues the - clean-up tasks to be done in a shell variable, it should not be - used inside a subshell. Add a mechanism to allow 'bash' to catch - such uses, and fix the ones that were found. - - * Update "git subtree" (in contrib/) so that it can take whitespaces - in the pathnames, not only in the in-tree pathname but the name of - the directory that the repository is in. - - * Cosmetic improvement to lock-file error messages. - - * mark_tree_uninteresting() has code to handle the case where it gets - passed a NULL pointer in its 'tree' parameter, but the function had - 'object = &tree->object' assignment before checking if tree is - NULL. This gives a compiler an excuse to declare that tree will - never be NULL and apply a wrong optimization. Avoid it. - - * The helper used to iterate over loose object directories to prune - stale objects did not closedir() immediately when it is done with a - directory--a callback such as the one used for "git prune" may want - to do rmdir(), but it would fail on open directory on platforms - such as WinXP. - - * "git p4" used to import Perforce CLs that touch only paths outside - the client spec as empty commits. It has been corrected to ignore - them instead, with a new configuration git-p4.keepEmptyCommits as a - backward compatibility knob. - - * The exit code of git-fsck did not reflect some types of errors - found in packed objects, which has been corrected. - - * The completion script (in contrib/) used to list "git column" - (which is not an end-user facing command) as one of the choices - - * Improve error reporting when SMTP TLS fails. - - * When getpwuid() on the system returned NULL (e.g. the user is not - in the /etc/passwd file or other uid-to-name mappings), the - codepath to find who the user is to record it in the reflog barfed - and died. Loosen the check in this codepath, which already accepts - questionable ident string (e.g. host part of the e-mail address is - obviously bogus), and in general when we operate fmt_ident() function - in non-strict mode. - - * "git symbolic-ref" forgot to report a failure with its exit status. - - * History traversal with "git log --source" that starts with an - annotated tag failed to report the tag as "source", due to an - old regression in the command line parser back in v2.2 days. - -Also contains typofixes, documentation updates and trivial code -clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.6.6.txt b/third_party/git/Documentation/RelNotes/2.6.6.txt deleted file mode 100644 index 023ad85ec644..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.6.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git v2.6.6 Release Notes -======================== - -Fixes since v2.6.5 ------------------- - - * Bugfix patches were backported from the 'master' front to plug heap - corruption holes, to catch integer overflow in the computation of - pathname lengths, and to get rid of the name_path API. Both of - these would have resulted in writing over an under-allocated buffer - when formulating pathnames while tree traversal. diff --git a/third_party/git/Documentation/RelNotes/2.6.7.txt b/third_party/git/Documentation/RelNotes/2.6.7.txt deleted file mode 100644 index 1335de49a614..000000000000 --- a/third_party/git/Documentation/RelNotes/2.6.7.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.6.7 Release Notes -======================== - -Fixes since v2.6.6 ------------------- - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). diff --git a/third_party/git/Documentation/RelNotes/2.7.0.txt b/third_party/git/Documentation/RelNotes/2.7.0.txt deleted file mode 100644 index e3cbf3a73c46..000000000000 --- a/third_party/git/Documentation/RelNotes/2.7.0.txt +++ /dev/null @@ -1,414 +0,0 @@ -Git 2.7 Release Notes -===================== - -Updates since v2.6 ------------------- - -UI, Workflows & Features - - * The appearance of "gitk", particularly on high DPI monitors, have - been improved. "gitk" also comes with an undated translation for - Swedish and Japanese. - - * "git remote" learned "get-url" subcommand to show the URL for a - given remote name used for fetching and pushing. - - * There was no way to defeat a configured rebase.autostash variable - from the command line, as "git rebase --no-autostash" was missing. - - * "git log --date=local" used to only show the normal (default) - format in the local timezone. The command learned to take 'local' - as an instruction to use the local timezone with other formats, - - * The refs used during a "git bisect" session is now per-worktree so - that independent bisect sessions can be done in different worktrees - created with "git worktree add". - - * Users who are too busy to type three extra keystrokes to ask for - "git stash show -p" can now set stash.showPatch configuration - variable to true to always see the actual patch, not just the list - of paths affected with feel for the extent of damage via diffstat. - - * "quiltimport" allows to specify the series file by honoring the - $QUILT_SERIES environment and also --series command line option. - - * The use of 'good/bad' in "git bisect" made it confusing to use when - hunting for a state change that is not a regression (e.g. bugfix). - The command learned 'old/new' and then allows the end user to - say e.g. "bisect start --term-old=fast --term-new=slow" to find a - performance regression. - - * "git interpret-trailers" can now run outside of a Git repository. - - * "git p4" learned to re-encode the pathname it uses to communicate - with the p4 depot with a new option. - - * Give progress meter to "git filter-branch". - - * Allow a later "!/abc/def" to override an earlier "/abc" that - appears in the same .gitignore file to make it easier to express - "everything in /abc directory is ignored, except for ...". - - * Teach "git p4" to send large blobs outside the repository by - talking to Git LFS. - - * Prepare for Git on-disk repository representation to undergo - backward incompatible changes by introducing a new repository - format version "1", with an extension mechanism. - - * "git worktree" learned a "list" subcommand. - - * "git clone --dissociate" learned that it can be used even when - "--reference" was not used at the same time. - - * "git blame" learnt to take "--first-parent" and "--reverse" at the - same time when it makes sense. - - * "git checkout" did not follow the usual "--[no-]progress" - convention and implemented only "--quiet" that is essentially - a superset of "--no-progress". Extend the command to support the - usual "--[no-]progress". - - * The semantics of transfer.hideRefs configuration variable have been - extended to work better with the ref "namespace" feature that lets - you throw unrelated bunches of repositories in a single physical - repository and virtually serve them as separate ones. - - * send-email config variables whose values are pathnames now go - through the ~username/ expansion. - - * bash completion learnt to TAB-complete recipient addresses given - to send-email. - - * The credential-cache daemon can be told to ignore SIGHUP to work - around issue when running Git from inside emacs. - - * "git push" learned new configuration for doing "--recurse-submodules" - on each push. - - * "format-patch" has learned a new option to zero-out the commit - object name on the mbox "From " line. - - -Performance, Internal Implementation, Development Support etc. - - * The infrastructure to rewrite "git submodule" in C is being built - incrementally. Let's polish these early parts well enough and make - them graduate to 'next' and 'master', so that the more involved - follow-up can start cooking on a solid ground. - - * Some features from "git tag -l" and "git branch -l" have been made - available to "git for-each-ref" so that eventually the unified - implementation can be shared across all three. The version merged - to the 'master' branch earlier had a performance regression in "tag - --contains", which has since been corrected. - - * Because "test_when_finished" in our test framework queues the - clean-up tasks to be done in a shell variable, it should not be - used inside a subshell. Add a mechanism to allow 'bash' to catch - such uses, and fix the ones that were found. - - * The debugging infrastructure for pkt-line based communication has - been improved to mark the side-band communication specifically. - - * Update "git branch" that list existing branches, using the - ref-filter API that is shared with "git tag" and "git - for-each-ref". - - * The test for various line-ending conversions has been enhanced. - - * A few test scripts around "git p4" have been improved for - portability. - - * Many allocations that is manually counted (correctly) that are - followed by strcpy/sprintf have been replaced with a less error - prone constructs such as xstrfmt. - - * The internal stripspace() function has been moved to where it - logically belongs to, i.e. strbuf API, and the command line parser - of "git stripspace" has been updated to use the parse_options API. - - * "git am" used to spawn "git mailinfo" via run_command() API once - per each patch, but learned to make a direct call to mailinfo() - instead. - - * The implementation of "git mailinfo" was refactored so that a - mailinfo() function can be directly called from inside a process. - - * With a "debug" helper, debugging of a single "git" invocation in - our test scripts has become a lot easier. - - * The "configure" script did not test for -lpthread correctly, which - upset some linkers. - - * Cross completed task off of subtree project's todo list. - - * Test cleanups for the subtree project. - - * Clean up style in an ancient test t9300. - - * Work around some test flakiness with p4d. - - * Fsck did not correctly detect a NUL-truncated header in a tag. - - * Use a safer behavior when we hit errors verifying remote certificates. - - * Speed up filter-branch for cases where we only care about rewriting - commits, not tree data. - - * The parse-options API has been updated to make "-h" command line - option work more consistently in all commands. - - * "git svn rebase/mkdirs" got optimized by keeping track of empty - directories better. - - * Fix some racy client/server tests by treating SIGPIPE the same as a - normal non-zero exit. - - * The necessary infrastructure to build topics using the free Travis - CI has been added. Developers forking from this topic (and enabling - Travis) can do their own builds, and we can turn on auto-builds for - git/git (including build-status for pull requests that people - open). - - * The write(2) emulation for Windows learned to set errno to EPIPE - when necessary. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.6 ----------------- - -Unless otherwise noted, all the fixes since v2.6 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * Very small number of options take a parameter that is optional - (which is not a great UI element as they can only appear at the end - of the command line). Add notice to documentation of each and - every one of them. - - * "git blame --first-parent v1.0..v2.0" was not rejected but did not - limit the blame to commits on the first parent chain. - - * "git subtree" (in contrib/) now can take whitespaces in the - pathnames, not only in the in-tree pathname but the name of the - directory that the repository is in. - - * The ssh transport, just like any other transport over the network, - did not clear GIT_* environment variables, but it is possible to - use SendEnv and AcceptEnv to leak them to the remote invocation of - Git, which is not a good idea at all. Explicitly clear them just - like we do for the local transport. - - * Correct "git p4 --detect-labels" so that it does not fail to create - a tag that points at a commit that is also being imported. - - * The Makefile always runs the library archiver with hardcoded "crs" - options, which was inconvenient for exotic platforms on which - people want to use programs with totally different set of command - line options. - - * Customization to change the behaviour with "make -w" and "make -s" - in our Makefile was broken when they were used together. - - * Allocation related functions and stdio are unsafe things to call - inside a signal handler, and indeed killing the pager can cause - glibc to deadlock waiting on allocation mutex as our signal handler - tries to free() some data structures in wait_for_pager(). Reduce - these unsafe calls. - - * The way how --ref/--notes to specify the notes tree reference are - DWIMmed was not clearly documented. - - * "git gc" used to barf when a symbolic ref has gone dangling - (e.g. the branch that used to be your upstream's default when you - cloned from it is now gone, and you did "fetch --prune"). - - * "git clone --dissociate" runs a big "git repack" process at the - end, and it helps to close file descriptors that are open on the - packs and their idx files before doing so on filesystems that - cannot remove a file that is still open. - - * Description of the "log.follow" configuration variable in "git log" - documentation is now also copied to "git config" documentation. - - * "git rebase -i" had a minor regression recently, which stopped - considering a line that begins with an indented '#' in its insn - sheet not a comment. Further, the code was still too picky on - Windows where CRLF left by the editor is turned into a trailing CR - on the line read via the "read" built-in command of bash. Both of - these issues are now fixed. - - * After "git checkout --detach", "git status" reported a fairly - useless "HEAD detached at HEAD", instead of saying at which exact - commit. - - * When "git send-email" wanted to talk over Net::SMTP::SSL, - Net::Cmd::datasend() did not like to be fed too many bytes at the - same time and failed to send messages. Send the payload one line - at a time to work around the problem. - - * When "git am" was rewritten as a built-in, it stopped paying - attention to user.signingkey, which was fixed. - - * It was not possible to use a repository-lookalike created by "git - worktree add" as a local source of "git clone". - - * On a case insensitive filesystems, setting GIT_WORK_TREE variable - using a random cases that does not agree with what the filesystem - thinks confused Git that it wasn't inside the working tree. - - * Performance-measurement tests did not work without an installed Git. - - * A test script for the HTTP service had a timing dependent bug, - which was fixed. - - * There were some classes of errors that "git fsck" diagnosed to its - standard error that did not cause it to exit with non-zero status. - - * Work around "git p4" failing when the P4 depot records the contents - in UTF-16 without UTF-16 BOM. - - * When "git gc --auto" is backgrounded, its diagnosis message is - lost. Save it to a file in $GIT_DIR and show it next time the "gc - --auto" is run. - - * The submodule code has been taught to work better with separate - work trees created via "git worktree add". - - * "git gc" is safe to run anytime only because it has the built-in - grace period to protect young objects. In order to run with no - grace period, the user must make sure that the repository is - quiescent. - - * A recent "filter-branch --msg-filter" broke skipping of the commit - object header, which is fixed. - - * The normalize_ceiling_entry() function does not muck with the end - of the path it accepts, and the real world callers do rely on that, - but a test insisted that the function drops a trailing slash. - - * A test for interaction between untracked cache and sparse checkout - added in Git 2.5 days were flaky. - - * A couple of commands still showed "[options]" in their usage string - to note where options should come on their command line, but we - spell that "[<options>]" in most places these days. - - * The synopsis text and the usage string of subcommands that read - list of things from the standard input are often shown as if they - only take input from a file on a filesystem, which was misleading. - - * "git am -3" had a small regression where it is aborted in its error - handling codepath when underlying merge-recursive failed in certain - ways, as it assumed that the internal call to merge-recursive will - never die, which is not the case (yet). - - * The linkage order of libraries was wrong in places around libcurl. - - * The name-hash subsystem that is used to cope with case insensitive - filesystems keeps track of directories and their on-filesystem - cases for all the paths in the index by holding a pointer to a - randomly chosen cache entry that is inside the directory (for its - ce->ce_name component). This pointer was not updated even when the - cache entry was removed from the index, leading to use after free. - This was fixed by recording the path for each directory instead of - borrowing cache entries and restructuring the API somewhat. - - * "git merge-file" tried to signal how many conflicts it found, which - obviously would not work well when there are too many of them. - - * The error message from "git blame --contents --reverse" incorrectly - talked about "--contents --children". - - * "git imap-send" did not compile well with older version of cURL library. - - * Merging a branch that removes a path and another that changes the - mode bits on the same path should have conflicted at the path, but - it didn't and silently favoured the removal. - - * "git --literal-pathspecs add -u/-A" without any command line - argument misbehaved ever since Git 2.0. - - * "git daemon" uses "run_command()" without "finish_command()", so it - needs to release resources itself, which it forgot to do. - - * "git status --branch --short" accessed beyond the constant string - "HEAD", which has been corrected. - - * We peek objects from submodule's object store by linking it to the - list of alternate object databases, but the code to do so forgot to - correctly initialize the list. - - * The code to prepare the working tree side of temporary directory - for the "dir-diff" feature forgot that symbolic links need not be - copied (or symlinked) to the temporary area, as the code already - special cases and overwrites them. Besides, it was wrong to try - computing the object name of the target of symbolic link, which may - not even exist or may be a directory. - - * A Range: request can be responded with a full response and when - asked properly libcurl knows how to strip the result down to the - requested range. However, we were hand-crafting a range request - and it did not kick in. - - * Having a leftover .idx file without corresponding .pack file in - the repository hurts performance; "git gc" learned to prune them. - - * Apple's common crypto implementation of SHA1_Update() does not take - more than 4GB at a time, and we now have a compile-time workaround - for it. - - * Produce correct "dirty" marker for shell prompts, even when we - are on an orphan or an unborn branch. - - * A build without NO_IPv6 used to use gethostbyname() when guessing - user's hostname, instead of getaddrinfo() that is used in other - codepaths in such a build. - - * The exit code of git-fsck did not reflect some types of errors - found in packed objects, which has been corrected. - - * The helper used to iterate over loose object directories to prune - stale objects did not closedir() immediately when it is done with a - directory--a callback such as the one used for "git prune" may want - to do rmdir(), but it would fail on open directory on platforms - such as WinXP. - - * "git p4" used to import Perforce CLs that touch only paths outside - the client spec as empty commits. It has been corrected to ignore - them instead, with a new configuration git-p4.keepEmptyCommits as a - backward compatibility knob. - - * The completion script (in contrib/) used to list "git column" - (which is not an end-user facing command) as one of the choices - (merge 160fcdb sg/completion-no-column later to maint). - - * The error reporting from "git send-email", when SMTP TLS fails, has - been improved. - (merge 9d60524 jk/send-email-ssl-errors later to maint). - - * When getpwuid() on the system returned NULL (e.g. the user is not - in the /etc/passwd file or other uid-to-name mappings), the - codepath to find who the user is to record it in the reflog barfed - and died. Loosen the check in this codepath, which already accepts - questionable ident string (e.g. host part of the e-mail address is - obviously bogus), and in general when we operate fmt_ident() function - in non-strict mode. - (merge 92bcbb9 jk/ident-loosen-getpwuid later to maint). - - * "git symbolic-ref" forgot to report a failure with its exit status. - (merge f91b273 jk/symbolic-ref-maint later to maint). - - * History traversal with "git log --source" that starts with an - annotated tag failed to report the tag as "source", due to an - old regression in the command line parser back in v2.2 days. - (merge 728350b jk/pending-keep-tag-name later to maint). - - * "git p4" when interacting with multiple depots at the same time - used to incorrectly drop changes. - - * Code clean-up, minor fixes etc. diff --git a/third_party/git/Documentation/RelNotes/2.7.1.txt b/third_party/git/Documentation/RelNotes/2.7.1.txt deleted file mode 100644 index 6323feaf6497..000000000000 --- a/third_party/git/Documentation/RelNotes/2.7.1.txt +++ /dev/null @@ -1,87 +0,0 @@ -Git v2.7.1 Release Notes -======================== - -Fixes since v2.7 ----------------- - - * An earlier change in 2.5.x-era broke users' hooks and aliases by - exporting GIT_WORK_TREE to point at the root of the working tree, - interfering when they tried to use a different working tree without - setting GIT_WORK_TREE environment themselves. - - * The "exclude_list" structure has the usual "alloc, nr" pair of - fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot - to reset 'alloc' to 0 when it cleared 'nr' to discard the managed - array. - - * "git send-email" was confused by escaped quotes stored in the alias - files saved by "mutt", which has been corrected. - - * A few unportable C construct have been spotted by clang compiler - and have been fixed. - - * The documentation has been updated to hint the connection between - the '--signoff' option and DCO. - - * "git reflog" incorrectly assumed that all objects that used to be - at the tip of a ref must be commits, which caused it to segfault. - - * The ignore mechanism saw a few regressions around untracked file - listing and sparse checkout selection areas in 2.7.0; the change - that is responsible for the regression has been reverted. - - * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR - (e.g. COMMIT_EDITMSG) that is meant to be left after the command is - done. This however did not work well if the repository is set to - be shared with core.sharedRepository and the umask of the previous - user is tighter. They have been made to work better by calling - unlink(2) and retrying after fopen(3) fails with EPERM. - - * Asking gitweb for a nonexistent commit left a warning in the server - log. - - * "git rebase", unlike all other callers of "gc --auto", did not - ignore the exit code from "gc --auto". - - * Many codepaths that run "gc --auto" before exiting kept packfiles - mapped and left the file descriptors to them open, which was not - friendly to systems that cannot remove files that are open. They - now close the packs before doing so. - - * A recent optimization to filter-branch in v2.7.0 introduced a - regression when --prune-empty filter is used, which has been - corrected. - - * The description for SANITY prerequisite the test suite uses has - been clarified both in the comment and in the implementation. - - * "git tag" started listing a tag "foo" as "tags/foo" when a branch - named "foo" exists in the same repository; remove this unnecessary - disambiguation, which is a regression introduced in v2.7.0. - - * The way "git svn" uses auth parameter was broken by Subversion - 1.9.0 and later. - - * The "split" subcommand of "git subtree" (in contrib/) incorrectly - skipped merges when it shouldn't, which was corrected. - - * A few options of "git diff" did not work well when the command was - run from a subdirectory. - - * dirname() emulation has been added, as Msys2 lacks it. - - * The underlying machinery used by "ls-files -o" and other commands - have been taught not to create empty submodule ref cache for a - directory that is not a submodule. This removes a ton of wasted - CPU cycles. - - * Drop a few old "todo" items by deciding that the change one of them - suggests is not such a good idea, and doing the change the other - one suggested to do. - - * Documentation for "git fetch --depth" has been updated for clarity. - - * The command line completion learned a handful of additional options - and command specific syntax. - -Also includes a handful of documentation and test updates. diff --git a/third_party/git/Documentation/RelNotes/2.7.2.txt b/third_party/git/Documentation/RelNotes/2.7.2.txt deleted file mode 100644 index 4feef7670483..000000000000 --- a/third_party/git/Documentation/RelNotes/2.7.2.txt +++ /dev/null @@ -1,41 +0,0 @@ -Git v2.7.2 Release Notes -======================== - -Fixes since v2.7.1 ------------------- - - * The low-level merge machinery has been taught to use CRLF line - termination when inserting conflict markers to merged contents that - are themselves CRLF line-terminated. - - * "git worktree" had a broken code that attempted to auto-fix - possible inconsistency that results from end-users moving a - worktree to different places without telling Git (the original - repository needs to maintain backpointers to its worktrees, but - "mv" run by end-users who are not familiar with that fact will - obviously not adjust them), which actually made things worse - when triggered. - - * "git push --force-with-lease" has been taught to report if the push - needed to force (or fast-forwarded). - - * The emulated "yes" command used in our test scripts has been - tweaked not to spend too much time generating unnecessary output - that is not used, to help those who test on Windows where it would - not stop until it fills the pipe buffer due to lack of SIGPIPE. - - * The vimdiff backend for "git mergetool" has been tweaked to arrange - and number buffers in the order that would match the expectation of - majority of people who read left to right, then top down and assign - buffers 1 2 3 4 "mentally" to local base remote merge windows based - on that order. - - * The documentation for "git clean" has been corrected; it mentioned - that .git/modules/* are removed by giving two "-f", which has never - been the case. - - * Paths that have been told the index about with "add -N" are not - quite yet in the index, but a few commands behaved as if they - already are in a harmful way. - -Also includes tiny documentation and test updates. diff --git a/third_party/git/Documentation/RelNotes/2.7.3.txt b/third_party/git/Documentation/RelNotes/2.7.3.txt deleted file mode 100644 index f618d71efd3e..000000000000 --- a/third_party/git/Documentation/RelNotes/2.7.3.txt +++ /dev/null @@ -1,62 +0,0 @@ -Git v2.7.3 Release Notes -======================== - -Fixes since v2.7.2 ------------------- - - * Traditionally, the tests that try commands that work on the - contents in the working tree were named with "worktree" in their - filenames, but with the recent addition of "git worktree" - subcommand, whose tests are also named similarly, it has become - harder to tell them apart. The traditional tests have been renamed - to use "work-tree" instead in an attempt to differentiate them. - - * Many codepaths forget to check return value from git_config_set(); - the function is made to die() to make sure we do not proceed when - setting a configuration variable failed. - - * Handling of errors while writing into our internal asynchronous - process has been made more robust, which reduces flakiness in our - tests. - - * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a - rev, i.e. the object named by the pathname with wildcard - characters in a tree object. - - * "git rev-parse --git-common-dir" used in the worktree feature - misbehaved when run from a subdirectory. - - * The "v(iew)" subcommand of the interactive "git am -i" command was - broken in 2.6.0 timeframe when the command was rewritten in C. - - * "git merge-tree" used to mishandle "both sides added" conflict with - its own "create a fake ancestor file that has the common parts of - what both sides have added and do a 3-way merge" logic; this has - been updated to use the usual "3-way merge with an empty blob as - the fake common ancestor file" approach used in the rest of the - system. - - * The memory ownership rule of fill_textconv() API, which was a bit - tricky, has been documented a bit better. - - * The documentation did not clearly state that the 'simple' mode is - now the default for "git push" when push.default configuration is - not set. - - * Recent versions of GNU grep are pickier when their input contains - arbitrary binary data, which some of our tests uses. Rewrite the - tests to sidestep the problem. - - * A helper function "git submodule" uses since v2.7.0 to list the - modules that match the pathspec argument given to its subcommands - (e.g. "submodule add <repo> <path>") has been fixed. - - * "git config section.var value" to set a value in per-repository - configuration file failed when it was run outside any repository, - but didn't say the reason correctly. - - * The code to read the pack data using the offsets stored in the pack - idx file has been made more carefully check the validity of the - data in the idx. - -Also includes documentation and test updates. diff --git a/third_party/git/Documentation/RelNotes/2.7.4.txt b/third_party/git/Documentation/RelNotes/2.7.4.txt deleted file mode 100644 index 883ae896feef..000000000000 --- a/third_party/git/Documentation/RelNotes/2.7.4.txt +++ /dev/null @@ -1,11 +0,0 @@ -Git v2.7.4 Release Notes -======================== - -Fixes since v2.7.3 ------------------- - - * Bugfix patches were backported from the 'master' front to plug heap - corruption holes, to catch integer overflow in the computation of - pathname lengths, and to get rid of the name_path API. Both of - these would have resulted in writing over an under-allocated buffer - when formulating pathnames while tree traversal. diff --git a/third_party/git/Documentation/RelNotes/2.7.5.txt b/third_party/git/Documentation/RelNotes/2.7.5.txt deleted file mode 100644 index 83559ce3b2f0..000000000000 --- a/third_party/git/Documentation/RelNotes/2.7.5.txt +++ /dev/null @@ -1,14 +0,0 @@ -Git v2.7.5 Release Notes -======================== - -Fixes since v2.7.4 ------------------- - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). - -Also contains a few fixes backported from later development tracks. diff --git a/third_party/git/Documentation/RelNotes/2.7.6.txt b/third_party/git/Documentation/RelNotes/2.7.6.txt deleted file mode 100644 index 4c6d1dcd4a6a..000000000000 --- a/third_party/git/Documentation/RelNotes/2.7.6.txt +++ /dev/null @@ -1,25 +0,0 @@ -Git v2.7.6 Release Notes -======================== - -Fixes since v2.7.5 ------------------- - - * A "ssh://..." URL can result in a "ssh" command line with a - hostname that begins with a dash "-", which would cause the "ssh" - command to instead (mis)treat it as an option. This is now - prevented by forbidding such a hostname (which will not be - necessary in the real world). - - * Similarly, when GIT_PROXY_COMMAND is configured, the command is - run with host and port that are parsed out from "ssh://..." URL; - a poorly written GIT_PROXY_COMMAND could be tricked into treating - a string that begins with a dash "-". This is now prevented by - forbidding such a hostname and port number (again, which will not - be necessary in the real world). - - * In the same spirit, a repository name that begins with a dash "-" - is also forbidden now. - -Credits go to Brian Neel at GitLab, Joern Schneeweisz of Recurity -Labs and Jeff King at GitHub. - diff --git a/third_party/git/Documentation/RelNotes/2.8.0.txt b/third_party/git/Documentation/RelNotes/2.8.0.txt deleted file mode 100644 index 27320b6a9f37..000000000000 --- a/third_party/git/Documentation/RelNotes/2.8.0.txt +++ /dev/null @@ -1,439 +0,0 @@ -Git 2.8 Release Notes -===================== - -Backward compatibility note ---------------------------- - -The rsync:// transport has been removed. - - -Updates since v2.7 ------------------- - -UI, Workflows & Features - - * It turns out "git clone" over rsync transport has been broken when - the source repository has packed references for a long time, and - nobody noticed nor complained about it. - - * "push" learned that its "--delete" option can be shortened to - "-d", just like "branch --delete" and "branch -d" are the same - thing. - - * "git blame" learned to produce the progress eye-candy when it takes - too much time before emitting the first line of the result. - - * "git grep" can now be configured (or told from the command line) - how many threads to use when searching in the working tree files. - - * Some "git notes" operations, e.g. "git log --notes=<note>", should - be able to read notes from any tree-ish that is shaped like a notes - tree, but the notes infrastructure required that the argument must - be a ref under refs/notes/. Loosen it to require a valid ref only - when the operation would update the notes (in which case we must - have a place to store the updated notes tree, iow, a ref). - - * "git grep" by default does not fall back to its "--no-index" - behavior outside a directory under Git's control (otherwise the - user may by mistake end up running a huge recursive search); with a - new configuration (set in $HOME/.gitconfig--by definition this - cannot be set in the config file per project), this safety can be - disabled. - - * "git pull --rebase" has been extended to allow invoking - "rebase -i". - - * "git p4" learned to cope with the type of a file getting changed. - - * "git format-patch" learned to notice format.outputDirectory - configuration variable. This allows "-o <dir>" option to be - omitted on the command line if you always use the same directory in - your workflow. - - * "interpret-trailers" has been taught to optionally update a file in - place, instead of always writing the result to the standard output. - - * Many commands that read files that are expected to contain text - that is generated (or can be edited) by the end user to control - their behavior (e.g. "git grep -f <filename>") have been updated - to be more tolerant to lines that are terminated with CRLF (they - used to treat such a line to contain payload that ends with CR, - which is usually not what the users expect). - - * "git notes merge" used to limit the source of the merged notes tree - to somewhere under refs/notes/ hierarchy, which was too limiting - when inventing a workflow to exchange notes with remote - repositories using remote-tracking notes trees (located in e.g. - refs/remote-notes/ or somesuch). - - * "git ls-files" learned a new "--eol" option to help diagnose - end-of-line problems. - - * "ls-remote" learned an option to show which branch the remote - repository advertises as its primary by pointing its HEAD at. - - * New http.proxyAuthMethod configuration variable can be used to - specify what authentication method to use, as a way to work around - proxies that do not give error response expected by libcurl when - CURLAUTH_ANY is used. Also, the codepath for proxy authentication - has been taught to use credential API to store the authentication - material in user's keyrings. - - * Update the untracked cache subsystem and change its primary UI from - "git update-index" to "git config". - - * There were a few "now I am doing this thing" progress messages in - the TCP connection code that can be triggered by setting a verbose - option internally in the code, but "git fetch -v" and friends never - passed the verbose option down to that codepath. - - * Clean/smudge filters defined in a configuration file of lower - precedence can now be overridden to be a pass-through no-op by - setting the variable to an empty string. - - * A new "<branch>^{/!-<pattern>}" notation can be used to name a - commit that is reachable from <branch> that does not match the - given <pattern>. - - * The "user.useConfigOnly" configuration variable can be used to - force the user to always set user.email & user.name configuration - variables, serving as a reminder for those who work on multiple - projects and do not want to put these in their $HOME/.gitconfig. - - * "git fetch" and friends that make network connections can now be - told to only use ipv4 (or ipv6). - - * Some authentication methods do not need username or password, but - libcurl needs some hint that it needs to perform authentication. - Supplying an empty username and password string is a valid way to - do so, but you can set the http.[<url>.]emptyAuth configuration - variable to achieve the same, if you find it cleaner. - - * You can now set http.[<url>.]pinnedpubkey to specify the pinned - public key when building with recent enough versions of libcURL. - - * The configuration system has been taught to phrase where it found a - bad configuration variable in a better way in its error messages. - "git config" learnt a new "--show-origin" option to indicate where - the values come from. - - * The "credential-cache" daemon process used to run in whatever - directory it happened to start in, but this made umount(2)ing the - filesystem that houses the repository harder; now the process - chdir()s to the directory that house its own socket on startup. - - * When "git submodule update" did not result in fetching the commit - object in the submodule that is referenced by the superproject, the - command learned to retry another fetch, specifically asking for - that commit that may not be connected to the refs it usually - fetches. - - * "git merge-recursive" learned "--no-renames" option to disable its - rename detection logic. - - * Across the transition at around Git version 2.0, the user used to - get a pretty loud warning when running "git push" without setting - push.default configuration variable. We no longer warn because the - transition was completed a long time ago. - - * README has been renamed to README.md and its contents got tweaked - slightly to make it easier on the eyes. - - -Performance, Internal Implementation, Development Support etc. - - * Add a framework to spawn a group of processes in parallel, and use - it to run "git fetch --recurse-submodules" in parallel. - - * A slight update to the Makefile to mark ".PHONY" targets as such - correctly. - - * In-core storage of the reverse index for .pack files (which lets - you go from a pack offset to an object name) has been streamlined. - - * d95138e6 (setup: set env $GIT_WORK_TREE when work tree is set, like - $GIT_DIR, 2015-06-26) attempted to work around a glitch in alias - handling by overwriting GIT_WORK_TREE environment variable to - affect subprocesses when set_git_work_tree() gets called, which - resulted in a rather unpleasant regression to "clone" and "init". - Try to address the same issue by always restoring the environment - and respawning the real underlying command when handling alias. - - * The low-level code that is used to create symbolic references has - been updated to share more code with the code that deals with - normal references. - - * strbuf_getline() and friends have been redefined to make it easier - to identify which callsite of (new) strbuf_getline_lf() should - allow and silently ignore carriage-return at the end of the line to - help users on DOSsy systems. - - * "git shortlog" used to accumulate various pieces of information - regardless of what was asked to be shown in the final output. It - has been optimized by noticing what need not to be collected - (e.g. there is no need to collect the log messages when showing - only the number of changes). - - * "git checkout $branch" (and other operations that share the same - underlying machinery) has been optimized. - - * Automated tests in Travis CI environment has been optimized by - persisting runtime statistics of previous "prove" run, executing - tests that take longer before other ones; this reduces the total - wallclock time. - - * Test scripts have been updated to remove assumptions that are not - portable between Git for POSIX and Git for Windows, or to skip ones - with expectations that are not satisfiable on Git for Windows. - - * Some calls to strcpy(3) triggers a false warning from static - analyzers that are less intelligent than humans, and reducing the - number of these false hits helps us notice real issues. A few - calls to strcpy(3) in a couple of programs that are already safe - has been rewritten to avoid false warnings. - - * The "name_path" API was an attempt to reduce the need to construct - the full path out of a series of path components while walking a - tree hierarchy, but over time made less efficient because the path - needs to be flattened, e.g. to be compared with another path that - is already flat. The API has been removed and its users have been - rewritten to simplify the overall code complexity. - - * Help those who debug http(s) part of the system. - (merge 0054045 sp/remote-curl-ssl-strerror later to maint). - - * The internal API to interact with "remote.*" configuration - variables has been streamlined. - - * The ref-filter's format-parsing code has been refactored, in - preparation for "branch --format" and friends. - - * Traditionally, the tests that try commands that work on the - contents in the working tree were named with "worktree" in their - filenames, but with the recent addition of "git worktree" - subcommand, whose tests are also named similarly, it has become - harder to tell them apart. The traditional tests have been renamed - to use "work-tree" instead in an attempt to differentiate them. - (merge 5549029 mg/work-tree-tests later to maint). - - * Many codepaths forget to check return value from git_config_set(); - the function is made to die() to make sure we do not proceed when - setting a configuration variable failed. - (merge 3d18064 ps/config-error later to maint). - - * Handling of errors while writing into our internal asynchronous - process has been made more robust, which reduces flakiness in our - tests. - (merge 43f3afc jk/epipe-in-async later to maint). - - * There is a new DEVELOPER knob that enables many compiler warning - options in the Makefile. - - * The way the test scripts configure the Apache web server has been - updated to work also for Apache 2.4 running on RedHat derived - distros. - - * Out of maintenance gcc on OSX 10.6 fails to compile the code in - 'master'; work it around by using clang by default on the platform. - - * The "name_path" API was an attempt to reduce the need to construct - the full path out of a series of path components while walking a - tree hierarchy, but over time made less efficient because the path - needs to be flattened, e.g. to be compared with another path that - is already flat, in many cases. The API has been removed and its - users have been rewritten to simplify the overall code complexity. - This incidentally also closes some heap-corruption holes. - - * Recent versions of GNU grep is pickier than before to decide if a - file is "binary" and refuse to give line-oriented hits when we - expect it to, unless explicitly told with "-a" option. As our - scripted Porcelains use sane_grep wrapper for line-oriented data, - even when the line may contain non-ASCII payload we took from - end-user data, use "grep -a" to implement sane_grep wrapper when - using an implementation of "grep" that takes the "-a" option. - - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.7 ----------------- - -Unless otherwise noted, all the fixes since v2.7 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * An earlier change in 2.5.x-era broke users' hooks and aliases by - exporting GIT_WORK_TREE to point at the root of the working tree, - interfering when they tried to use a different working tree without - setting GIT_WORK_TREE environment themselves. - - * The "exclude_list" structure has the usual "alloc, nr" pair of - fields to be used by ALLOC_GROW(), but clear_pattern_list() forgot - to reset 'alloc' to 0 when it cleared 'nr' to discard the managed - array. - - * Paths that have been told the index about with "add -N" are not - quite yet in the index, but a few commands behaved as if they - already are in a harmful way. - - * "git send-email" was confused by escaped quotes stored in the alias - files saved by "mutt", which has been corrected. - - * A few non-portable C construct have been spotted by clang compiler - and have been fixed. - - * The documentation has been updated to hint the connection between - the '--signoff' option and DCO. - - * "git reflog" incorrectly assumed that all objects that used to be - at the tip of a ref must be commits, which caused it to segfault. - - * The ignore mechanism saw a few regressions around untracked file - listing and sparse checkout selection areas in 2.7.0; the change - that is responsible for the regression has been reverted. - - * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR - (e.g. COMMIT_EDITMSG) that is meant to be left after the command is - done. This however did not work well if the repository is set to - be shared with core.sharedRepository and the umask of the previous - user is tighter. They have been made to work better by calling - unlink(2) and retrying after fopen(3) fails with EPERM. - - * Asking gitweb for a nonexistent commit left a warning in the server - log. - - Somebody may want to follow this up with an additional test, perhaps? - IIRC, we do test that no Perl warnings are given to the server log, - so this should have been caught if our test coverage were good. - - * "git rebase", unlike all other callers of "gc --auto", did not - ignore the exit code from "gc --auto". - - * Many codepaths that run "gc --auto" before exiting kept packfiles - mapped and left the file descriptors to them open, which was not - friendly to systems that cannot remove files that are open. They - now close the packs before doing so. - - * A recent optimization to filter-branch in v2.7.0 introduced a - regression when --prune-empty filter is used, which has been - corrected. - - * The description for SANITY prerequisite the test suite uses has - been clarified both in the comment and in the implementation. - - * "git tag" started listing a tag "foo" as "tags/foo" when a branch - named "foo" exists in the same repository; remove this unnecessary - disambiguation, which is a regression introduced in v2.7.0. - - * The way "git svn" uses auth parameter was broken by Subversion - 1.9.0 and later. - - * The "split" subcommand of "git subtree" (in contrib/) incorrectly - skipped merges when it shouldn't, which was corrected. - - * A few options of "git diff" did not work well when the command was - run from a subdirectory. - - * The command line completion learned a handful of additional options - and command specific syntax. - - * dirname() emulation has been added, as Msys2 lacks it. - - * The underlying machinery used by "ls-files -o" and other commands - has been taught not to create empty submodule ref cache for a - directory that is not a submodule. This removes a ton of wasted - CPU cycles. - - * "git worktree" had a broken code that attempted to auto-fix - possible inconsistency that results from end-users moving a - worktree to different places without telling Git (the original - repository needs to maintain back-pointers to its worktrees, - but "mv" run by end-users who are not familiar with that fact - will obviously not adjust them), which actually made things - worse when triggered. - - * The low-level merge machinery has been taught to use CRLF line - termination when inserting conflict markers to merged contents that - are themselves CRLF line-terminated. - - * "git push --force-with-lease" has been taught to report if the push - needed to force (or fast-forwarded). - - * The emulated "yes" command used in our test scripts has been - tweaked not to spend too much time generating unnecessary output - that is not used, to help those who test on Windows where it would - not stop until it fills the pipe buffer due to lack of SIGPIPE. - - * The documentation for "git clean" has been corrected; it mentioned - that .git/modules/* are removed by giving two "-f", which has never - been the case. - - * The vimdiff backend for "git mergetool" has been tweaked to arrange - and number buffers in the order that would match the expectation of - majority of people who read left to right, then top down and assign - buffers 1 2 3 4 "mentally" to local base remote merge windows based - on that order. - - * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a - rev, i.e. the object named by the the pathname with wildcard - characters in a tree object. - (merge aac4fac nd/dwim-wildcards-as-pathspecs later to maint). - - * "git rev-parse --git-common-dir" used in the worktree feature - misbehaved when run from a subdirectory. - (merge 17f1365 nd/git-common-dir-fix later to maint). - - * "git worktree add -B <branchname>" did not work. - - * The "v(iew)" subcommand of the interactive "git am -i" command was - broken in 2.6.0 timeframe when the command was rewritten in C. - (merge 708b8cc jc/am-i-v-fix later to maint). - - * "git merge-tree" used to mishandle "both sides added" conflict with - its own "create a fake ancestor file that has the common parts of - what both sides have added and do a 3-way merge" logic; this has - been updated to use the usual "3-way merge with an empty blob as - the fake common ancestor file" approach used in the rest of the - system. - (merge 907681e jk/no-diff-emit-common later to maint). - - * The memory ownership rule of fill_textconv() API, which was a bit - tricky, has been documented a bit better. - (merge a64e6a4 jk/more-comments-on-textconv later to maint). - - * Update various codepaths to avoid manually-counted malloc(). - (merge 08c95df jk/tighten-alloc later to maint). - - * The documentation did not clearly state that the 'simple' mode is - now the default for "git push" when push.default configuration is - not set. - (merge f6b1fb3 mm/push-simple-doc later to maint). - - * Recent versions of GNU grep are pickier when their input contains - arbitrary binary data, which some of our tests uses. Rewrite the - tests to sidestep the problem. - (merge 3b1442d jk/grep-binary-workaround-in-test later to maint). - - * A helper function "git submodule" uses since v2.7.0 to list the - modules that match the pathspec argument given to its subcommands - (e.g. "submodule add <repo> <path>") has been fixed. - (merge 2b56bb7 sb/submodule-module-list-fix later to maint). - - * "git config section.var value" to set a value in per-repository - configuration file failed when it was run outside any repository, - but didn't say the reason correctly. - (merge 638fa62 js/config-set-in-non-repository later to maint). - - * The code to read the pack data using the offsets stored in the pack - idx file has been made more carefully check the validity of the - data in the idx. - (merge 7465feb jk/pack-idx-corruption-safety later to maint). - - * Other minor clean-ups and documentation updates - (merge f459823 ak/extract-argv0-last-dir-sep later to maint). - (merge 63ca1c0 ak/git-strip-extension-from-dashed-command later to maint). - (merge 4867f11 ps/plug-xdl-merge-leak later to maint). - (merge 4938686 dt/initial-ref-xn-commit-doc later to maint). - (merge 9537f21 ma/update-hooks-sample-typofix later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.8.1.txt b/third_party/git/Documentation/RelNotes/2.8.1.txt deleted file mode 100644 index ef6d80b008a0..000000000000 --- a/third_party/git/Documentation/RelNotes/2.8.1.txt +++ /dev/null @@ -1,9 +0,0 @@ -Git v2.8.1 Release Notes -======================== - -Fixes since v2.8 ----------------- - - * "make rpmbuild" target was broken as its input, git.spec.in, was - not updated to match a file it describes that has been renamed - recently. This has been fixed. diff --git a/third_party/git/Documentation/RelNotes/2.8.2.txt b/third_party/git/Documentation/RelNotes/2.8.2.txt deleted file mode 100644 index 447b1933a8f3..000000000000 --- a/third_party/git/Documentation/RelNotes/2.8.2.txt +++ /dev/null @@ -1,70 +0,0 @@ -Git v2.8.2 Release Notes -======================== - -Fixes since v2.8.1 ------------------- - - * The embedded args argv-array in the child process is used to build - the command line to run pack-objects instead of using a separate - array of strings. - - * Bunch of tests on "git clone" has been renumbered for better - organization. - - * The tests that involve running httpd leaked the system-wide - configuration in /etc/gitconfig to the tested environment. - - * "index-pack --keep=<msg>" was broken since v2.1.0 timeframe. - - * "git config --get-urlmatch", unlike other variants of the "git - config --get" family, did not signal error with its exit status - when there was no matching configuration. - - * The "--local-env-vars" and "--resolve-git-dir" options of "git - rev-parse" failed to work outside a repository when the command's - option parsing was rewritten in 1.8.5 era. - - * Fetching of history by naming a commit object name directly didn't - work across remote-curl transport. - - * A small memory leak in an error codepath has been plugged in xdiff - code. - - * strbuf_getwholeline() did not NUL-terminate the buffer on certain - corner cases in its error codepath. - - * The startup_info data, which records if we are working inside a - repository (among other things), are now uniformly available to Git - subcommand implementations, and Git avoids attempting to touch - references when we are not in a repository. - - * "git mergetool" did not work well with conflicts that both sides - deleted. - - * "git send-email" had trouble parsing alias file in mailrc format - when lines in it had trailing whitespaces on them. - - * When "git merge --squash" stopped due to conflict, the concluding - "git commit" failed to read in the SQUASH_MSG that shows the log - messages from all the squashed commits. - - * "git merge FETCH_HEAD" dereferenced NULL pointer when merging - nothing into an unborn history (which is arguably unusual usage, - which perhaps was the reason why nobody noticed it). - - * Build updates for MSVC. - - * "git diff -M" used to work better when two originally identical - files A and B got renamed to X/A and X/B by pairing A to X/A and B - to X/B, but this was broken in the 2.0 timeframe. - - * "git send-pack --all <there>" was broken when its command line - option parsing was written in the 2.6 timeframe. - - * When running "git blame $path" with unnormalized data in the index - for the path, the data in the working tree was blamed, even though - "git add" would not have changed what is already in the index, due - to "safe crlf" that disables the line-end conversion. It has been - corrected. - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.8.3.txt b/third_party/git/Documentation/RelNotes/2.8.3.txt deleted file mode 100644 index a63825ed87e6..000000000000 --- a/third_party/git/Documentation/RelNotes/2.8.3.txt +++ /dev/null @@ -1,101 +0,0 @@ -Git v2.8.3 Release Notes -======================== - -Fixes since v2.8.2 ------------------- - - * "git send-email" now uses a more readable timestamps when - formulating a message ID. - - * The repository set-up sequence has been streamlined (the biggest - change is that there is no longer git_config_early()), so that we - do not attempt to look into refs/* when we know we do not have a - Git repository. - - * When "git worktree" feature is in use, "git branch -d" allowed - deletion of a branch that is checked out in another worktree - - * When "git worktree" feature is in use, "git branch -m" renamed a - branch that is checked out in another worktree without adjusting - the HEAD symbolic ref for the worktree. - - * "git format-patch --help" showed `-s` and `--no-patch` as if these - are valid options to the command. We already hide `--patch` option - from the documentation, because format-patch is about showing the - diff, and the documentation now hides these options as well. - - * A change back in version 2.7 to "git branch" broke display of a - symbolic ref in a non-standard place in the refs/ hierarchy (we - expect symbolic refs to appear in refs/remotes/*/HEAD to point at - the primary branch the remote has, and as .git/HEAD to point at the - branch we locally checked out). - - * A partial rewrite of "git submodule" in the 2.7 timeframe changed - the way the gitdir: pointer in the submodules point at the real - repository location to use absolute paths by accident. This has - been corrected. - - * "git commit" misbehaved in a few minor ways when an empty message - is given via -m '', all of which has been corrected. - - * Support for CRAM-MD5 authentication method in "git imap-send" did - not work well. - - * The socks5:// proxy support added back in 2.6.4 days was not aware - that socks5h:// proxies behave differently. - - * "git config" had a codepath that tried to pass a NULL to - printf("%s"), which nobody seems to have noticed. - - * On Cygwin, object creation uses the "create a temporary and then - rename it to the final name" pattern, not "create a temporary, - hardlink it to the final name and then unlink the temporary" - pattern. - - This is necessary to use Git on Windows shared directories, and is - already enabled for the MinGW and plain Windows builds. It also - has been used in Cygwin packaged versions of Git for quite a while. - See https://lore.kernel.org/git/20160419091055.GF2345@dinwoodie.org/ - and https://lore.kernel.org/git/20150811100527.GW14466@dinwoodie.org/. - - * "git replace -e" did not honour "core.editor" configuration. - - * Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs - we use in imap-send, which has been adjusted for the change. - - * "git submodule" reports the paths of submodules the command - recurses into, but this was incorrect when the command was not run - from the root level of the superproject. - - * The test scripts for "git p4" (but not "git p4" implementation - itself) has been updated so that they would work even on a system - where the installed version of Python is python 3. - - * The "user.useConfigOnly" configuration variable makes it an error - if users do not explicitly set user.name and user.email. However, - its check was not done early enough and allowed another error to - trigger, reporting that the default value we guessed from the - system setting was unusable. This was a suboptimal end-user - experience as we want the users to set user.name/user.email without - relying on the auto-detection at all. - - * "git mv old new" did not adjust the path for a submodule that lives - as a subdirectory inside old/ directory correctly. - - * "git push" from a corrupt repository that attempts to push a large - number of refs deadlocked; the thread to relay rejection notices - for these ref updates blocked on writing them to the main thread, - after the main thread at the receiving end notices that the push - failed and decides not to read these notices and return a failure. - - * A question by "git send-email" to ask the identity of the sender - has been updated. - - * Recent update to Git LFS broke "git p4" by changing the output from - its "lfs pointer" subcommand. - - * Some multi-byte encoding can have a backslash byte as a later part - of one letter, which would confuse "highlight" filter used in - gitweb. - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.8.4.txt b/third_party/git/Documentation/RelNotes/2.8.4.txt deleted file mode 100644 index f4e255283667..000000000000 --- a/third_party/git/Documentation/RelNotes/2.8.4.txt +++ /dev/null @@ -1,69 +0,0 @@ -Git v2.8.4 Release Notes -======================== - -Fixes since v2.8.3 ------------------- - - * Documentation for "git merge --verify-signatures" has been updated - to clarify that the signature of only the commit at the tip is - verified. Also the phrasing used for signature and key validity is - adjusted to align with that used by OpenPGP. - - * On Windows, .git and optionally any files whose name starts with a - dot are now marked as hidden, with a core.hideDotFiles knob to - customize this behaviour. - - * Portability enhancement for "rebase -i" to help platforms whose - shell does not like "for i in <empty>" (which is not POSIX-kosher). - - * "git fsck" learned to catch NUL byte in a commit object as - potential error and warn. - - * CI test was taught to build documentation pages. - - * Many 'linkgit:<git documentation page>' references were broken, - which are all fixed with this. - - * "git describe --contains" often made a hard-to-justify choice of - tag to give name to a given commit, because it tried to come up - with a name with smallest number of hops from a tag, causing an old - commit whose close descendant that is recently tagged were not - described with respect to an old tag but with a newer tag. It did - not help that its computation of "hop" count was further tweaked to - penalize being on a side branch of a merge. The logic has been - updated to favor using the tag with the oldest tagger date, which - is a lot easier to explain to the end users: "We describe a commit - in terms of the (chronologically) oldest tag that contains the - commit." - - * Running tests with '-x' option to trace the individual command - executions is a useful way to debug test scripts, but some tests - that capture the standard error stream and check what the command - said can be broken with the trace output mixed in. When running - our tests under "bash", however, we can redirect the trace output - to another file descriptor to keep the standard error of programs - being tested intact. - - * "http.cookieFile" configuration variable clearly wants a pathname, - but we forgot to treat it as such by e.g. applying tilde expansion. - - * When de-initialising all submodules, "git submodule deinit" gave a - faulty recommendation to use "git submodule deinit .", which would - result in a strange error message in a pathological corner case. - This has been corrected to suggest "submodule deinit --all" instead. - - * Many commands normalize command line arguments from NFD to NFC - variant of UTF-8 on OSX, but commands in the "diff" family did - not, causing "git diff $path" to complain that no such path is - known to Git. They have been taught to do the normalization. - - * A couple of bugs around core.autocrlf have been fixed. - - * "git difftool" learned to handle unmerged paths correctly in - dir-diff mode. - - * The "are we talking with TTY, doing an interactive session?" - detection has been updated to work better for "Git for Windows". - - -Also contains other minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.8.5.txt b/third_party/git/Documentation/RelNotes/2.8.5.txt deleted file mode 100644 index 7bd179fa127f..000000000000 --- a/third_party/git/Documentation/RelNotes/2.8.5.txt +++ /dev/null @@ -1,12 +0,0 @@ -Git v2.8.5 Release Notes -======================== - -Fixes since v2.8.4 ------------------- - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). diff --git a/third_party/git/Documentation/RelNotes/2.8.6.txt b/third_party/git/Documentation/RelNotes/2.8.6.txt deleted file mode 100644 index d8db55d920d5..000000000000 --- a/third_party/git/Documentation/RelNotes/2.8.6.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v2.8.6 Release Notes -======================== - -This release forward-ports the fix for "ssh://..." URL from Git v2.7.6 diff --git a/third_party/git/Documentation/RelNotes/2.9.0.txt b/third_party/git/Documentation/RelNotes/2.9.0.txt deleted file mode 100644 index 991640119ae6..000000000000 --- a/third_party/git/Documentation/RelNotes/2.9.0.txt +++ /dev/null @@ -1,512 +0,0 @@ -Git 2.9 Release Notes -===================== - -Backward compatibility notes ----------------------------- - -The end-user facing Porcelain level commands in the "git diff" and -"git log" family by default enable the rename detection; you can still -use "diff.renames" configuration variable to disable this. - -Merging two branches that have no common ancestor with "git merge" is -by default forbidden now to prevent creating such an unusual merge by -mistake. - -The output formats of "git log" that indents the commit log message by -4 spaces now expands HT in the log message by default. You can use -the "--no-expand-tabs" option to disable this. - -"git commit-tree" plumbing command required the user to always sign -its result when the user sets the commit.gpgsign configuration -variable, which was an ancient mistake, which this release corrects. -A script that drives commit-tree, if it relies on this mistake, now -needs to read commit.gpgsign and pass the -S option as necessary. - - -Updates since v2.8 ------------------- - -UI, Workflows & Features - - * Comes with git-multimail 1.3.1 (in contrib/). - - * The end-user facing commands like "git diff" and "git log" - now enable the rename detection by default. - - * The credential.helper configuration variable is cumulative and - there is no good way to override it from the command line. As - a special case, giving an empty string as its value now serves - as the signal to clear the values specified in various files. - - * A new "interactive.diffFilter" configuration can be used to - customize the diff shown in "git add -i" sessions. - - * "git p4" now allows P4 author names to be mapped to Git author - names. - - * "git rebase -x" can be used without passing "-i" option. - - * "git -c credential.<var>=<value> submodule" can now be used to - propagate configuration variables related to credential helper - down to the submodules. - - * "git tag" can create an annotated tag without explicitly given an - "-a" (or "-s") option (i.e. when a tag message is given). A new - configuration variable, tag.forceSignAnnotated, can be used to tell - the command to create signed tag in such a situation. - - * "git merge" used to allow merging two branches that have no common - base by default, which led to a brand new history of an existing - project created and then get pulled by an unsuspecting maintainer, - which allowed an unnecessary parallel history merged into the - existing project. The command has been taught not to allow this by - default, with an escape hatch "--allow-unrelated-histories" option - to be used in a rare event that merges histories of two projects - that started their lives independently. - - * "git pull" has been taught to pass the "--allow-unrelated-histories" - option to underlying "git merge". - - * "git apply -v" learned to report paths in the patch that were - skipped via --include/--exclude mechanism or being outside the - current working directory. - - * Shell completion (in contrib/) updates. - - * The commit object name reported when "rebase -i" stops has been - shortened. - - * "git worktree add" can be given "--no-checkout" option to only - create an empty worktree without checking out the files. - - * "git mergetools" learned to drive ExamDiff. - - * "git pull --rebase" learned "--[no-]autostash" option, so that - the rebase.autostash configuration variable set to true can be - overridden from the command line. - - * When "git log" shows the log message indented by 4-spaces, the - remainder of a line after a HT does not align in the way the author - originally intended. The command now expands tabs by default to help - such a case, and allows the users to override it with a new option, - "--no-expand-tabs". - - * "git send-email" now uses a more readable timestamps when - formulating a message ID. - - * "git rerere" can encounter two or more files with the same conflict - signature that have to be resolved in different ways, but there was - no way to record these separate resolutions. - - * "git p4" learned to record P4 jobs in Git commit that imports from - the history in Perforce. - - * "git describe --contains" often made a hard-to-justify choice of - tag to name a given commit, because it tried to come up - with a name with smallest number of hops from a tag, causing an old - commit whose close descendant that is recently tagged were not - described with respect to an old tag but with a newer tag. It did - not help that its computation of "hop" count was further tweaked to - penalize being on a side branch of a merge. The logic has been - updated to favor using the tag with the oldest tagger date, which - is a lot easier to explain to the end users: "We describe a commit - in terms of the (chronologically) oldest tag that contains the - commit." - - * "git clone" learned the "--shallow-submodules" option. - - * HTTP transport clients learned to throw extra HTTP headers at the - server, specified via http.extraHeader configuration variable. - - * The "--compaction-heuristic" option to "git diff" family of - commands enables a heuristic to make the patch output more readable - by using a blank line as a strong hint that the contents before and - after it belong to logically separate units. It is still - experimental. - - * A new configuration variable core.hooksPath allows customizing - where the hook directory is. - - * An earlier addition of "sanitize_submodule_env" with 14111fc4 (git: - submodule honor -c credential.* from command line, 2016-02-29) - turned out to be a convoluted no-op; implement what it wanted to do - correctly, and stop filtering settings given via "git -c var=val". - - * "git commit --dry-run" reported "No, no, you cannot commit." in one - case where "git commit" would have allowed you to commit, and this - improves it a little bit ("git commit --dry-run --short" still does - not give you the correct answer, for example). This is a stop-gap - measure in that "commit --short --dry-run" still gives an incorrect - result. - - * The experimental "multiple worktree" feature gains more safety to - forbid operations on a branch that is checked out or being actively - worked on elsewhere, by noticing that e.g. it is being rebased. - - * "git format-patch" learned a new "--base" option to record what - (public, well-known) commit the original series was built on in - its output. - - * "git commit" learned to pay attention to the "commit.verbose" - configuration variable and act as if the "--verbose" option - was given from the command line. - - * Updated documentation gives hints to GMail users with two-factor - auth enabled that they need app-specific-password when using - "git send-email". - - * The manpage output of our documentation did not render well in - terminal; typeset literals in bold by default to make them stand - out more. - - * The mark-up in the top-level README.md file has been updated to - typeset CLI command names differently from the body text. - - -Performance, Internal Implementation, Development Support etc. - - * The embedded args argv-array in the child process is used to build - the command line to run pack-objects instead of using a separate - array of strings. - - * A test for tags has been restructured so that more parts of it can - easily be run on a platform without a working GnuPG. - - * The startup_info data, which records if we are working inside a - repository (among other things), are now uniformly available to Git - subcommand implementations, and Git avoids attempting to touch - references when we are not in a repository. - - * The command line argument parser for "receive-pack" has been - rewritten to use parse-options. - - * A major part of "git submodule update" has been ported to C to take - advantage of the recently added framework to run download tasks in - parallel. Other updates to "git submodule" that move pieces of - logic to C continues. - - * Rename bunch of tests on "git clone" for better organization. - - * The tests that involve running httpd leaked the system-wide - configuration in /etc/gitconfig to the tested environment. - - * Build updates for MSVC. - - * The repository set-up sequence has been streamlined (the biggest - change is that there is no longer git_config_early()), so that we - do not attempt to look into refs/* when we know we do not have a - Git repository. - - * Code restructuring around the "refs" API to prepare for pluggable - refs backends. - - * Sources to many test helper binaries and the generated helpers - have been moved to t/helper/ subdirectory to reduce clutter at the - top level of the tree. - - * Unify internal logic between "git tag -v" and "git verify-tag" - commands by making one directly call into the other. - - * "merge-recursive" strategy incorrectly checked if a path that is - involved in its internal merge exists in the working tree. - - * The test scripts for "git p4" (but not "git p4" implementation - itself) has been updated so that they would work even on a system - where the installed version of Python is python 3. - - * As nobody maintains our in-tree git.spec.in and distros use their - own spec file, we stopped pretending that we support "make rpm". - - * Move from "unsigned char[20]" to "struct object_id" continues. - - * The code for warning_errno/die_errno has been refactored and a new - error_errno() reporting helper is introduced. - (merge 1da045f nd/error-errno later to maint). - - * Running tests with '-x' option to trace the individual command - executions is a useful way to debug test scripts, but some tests - that capture the standard error stream and check what the command - said can be broken with the trace output mixed in. When running - our tests under "bash", however, we can redirect the trace output - to another file descriptor to keep the standard error of programs - being tested intact. - - * t0040 had too many unnecessary repetitions in its test data. Teach - test-parse-options program so that a caller can tell what it - expects in its output, so that these repetitions can be cleaned up. - - * Add perf test for "rebase -i". - - * Common mistakes when writing gitlink: in our documentation are - found by "make check-docs". - - * t9xxx series has been updated primarily for readability, while - fixing small bugs in it. A few scripted Porcelain commands have - also been updated to fix possible bugs around their use of - "test -z" and "test -n". - - * CI test was taught to run git-svn tests. - - * "git cat-file --batch-all" has been sped up, by taking advantage - of the fact that it does not have to read a list of objects, in two - ways. - - * test updates to make it more readable and maintainable. - (merge e6273f4 es/t1500-modernize later to maint). - - * "make DEVELOPER=1" worked as expected; setting DEVELOPER=1 in - config.mak didn't. - (merge 51dd3e8 mm/makefile-developer-can-be-in-config-mak later to maint). - - * The way how "submodule--helper list" signals unmatch error to its - callers has been updated. - - * A bash-ism "local" has been removed from "git submodule" scripted - Porcelain. - - -Also contains various documentation updates and code clean-ups. - - -Fixes since v2.8 ----------------- - -Unless otherwise noted, all the fixes since v2.8 in the maintenance -track are contained in this release (see the maintenance releases' -notes for details). - - * "git config --get-urlmatch", unlike other variants of the "git - config --get" family, did not signal error with its exit status - when there was no matching configuration. - - * The "--local-env-vars" and "--resolve-git-dir" options of "git - rev-parse" failed to work outside a repository when the command's - option parsing was rewritten in 1.8.5 era. - - * "git index-pack --keep[=<msg>] pack-$name.pack" simply did not work. - - * Fetching of history by naming a commit object name directly didn't - work across remote-curl transport. - - * A small memory leak in an error codepath has been plugged in xdiff - code. - - * strbuf_getwholeline() did not NUL-terminate the buffer on certain - corner cases in its error codepath. - - * "git mergetool" did not work well with conflicts that both sides - deleted. - - * "git send-email" had trouble parsing alias file in mailrc format - when lines in it had trailing whitespaces on them. - - * When "git merge --squash" stopped due to conflict, the concluding - "git commit" failed to read in the SQUASH_MSG that shows the log - messages from all the squashed commits. - - * "git merge FETCH_HEAD" dereferenced NULL pointer when merging - nothing into an unborn history (which is arguably unusual usage, - which perhaps was the reason why nobody noticed it). - - * When "git worktree" feature is in use, "git branch -d" allowed - deletion of a branch that is checked out in another worktree, - which was wrong. - - * When "git worktree" feature is in use, "git branch -m" renamed a - branch that is checked out in another worktree without adjusting - the HEAD symbolic ref for the worktree. - - * "git diff -M" used to work better when two originally identical - files A and B got renamed to X/A and X/B by pairing A to X/A and B - to X/B, but this was broken in the 2.0 timeframe. - - * "git send-pack --all <there>" was broken when its command line - option parsing was written in the 2.6 timeframe. - - * "git format-patch --help" showed `-s` and `--no-patch` as if these - are valid options to the command. We already hide `--patch` option - from the documentation, because format-patch is about showing the - diff, and the documentation now hides these options as well. - - * When running "git blame $path" with unnormalized data in the index - for the path, the data in the working tree was blamed, even though - "git add" would not have changed what is already in the index, due - to "safe crlf" that disables the line-end conversion. It has been - corrected. - - * A change back in version 2.7 to "git branch" broke display of a - symbolic ref in a non-standard place in the refs/ hierarchy (we - expect symbolic refs to appear in refs/remotes/*/HEAD to point at - the primary branch the remote has, and as .git/HEAD to point at the - branch we locally checked out). - - * A partial rewrite of "git submodule" in the 2.7 timeframe changed - the way the gitdir: pointer in the submodules point at the real - repository location to use absolute paths by accident. This has - been corrected. - - * "git commit" misbehaved in a few minor ways when an empty message - is given via -m '', all of which has been corrected. - - * Support for CRAM-MD5 authentication method in "git imap-send" did - not work well. - - * Upcoming OpenSSL 1.1.0 will break compilation by updating a few API - elements we use in imap-send, which has been adjusted for the change. - - * The socks5:// proxy support added back in 2.6.4 days was not aware - that socks5h:// proxies behave differently from socks5:// proxies. - - * "git config" had a codepath that tried to pass a NULL to - printf("%s"), which nobody seems to have noticed. - - * On Cygwin, object creation uses the "create a temporary and then - rename it to the final name" pattern, not "create a temporary, - hardlink it to the final name and then unlink the temporary" - pattern. - - This is necessary to use Git on Windows shared directories, and is - already enabled for the MinGW and plain Windows builds. It also - has been used in Cygwin packaged versions of Git for quite a while. - See https://lore.kernel.org/git/20160419091055.GF2345@dinwoodie.org/ - - * "merge-octopus" strategy did not ensure that the index is clean - when merge begins. - - * When "git merge" notices that the merge can be resolved purely at - the tree level (without having to merge blobs) and the resulting - tree happens to already exist in the object store, it forgot to - update the index, which left an inconsistent state that would - break later operations. - - * "git submodule" reports the paths of submodules the command - recurses into, but these paths were incorrectly reported when - the command was not run from the root level of the superproject. - - * The "user.useConfigOnly" configuration variable makes it an error - if users do not explicitly set user.name and user.email. However, - its check was not done early enough and allowed another error to - trigger, reporting that the default value we guessed from the - system setting was unusable. This was a suboptimal end-user - experience as we want the users to set user.name/user.email without - relying on the auto-detection at all. - - * "git mv old new" did not adjust the path for a submodule that lives - as a subdirectory inside old/ directory correctly. - - * "git replace -e" did not honour "core.editor" configuration. - - * "git push" from a corrupt repository that attempts to push a large - number of refs deadlocked; the thread to relay rejection notices - for these ref updates blocked on writing them to the main thread, - after the main thread at the receiving end notices that the push - failed and decides not to read these notices and return a failure. - - * mmap emulation on Windows has been optimized and work better without - consuming paging store when not needed. - - * A question by "git send-email" to ask the identity of the sender - has been updated. - - * UI consistency improvements for "git mergetool". - - * "git rebase -m" could be asked to rebase an entire branch starting - from the root, but failed by assuming that there always is a parent - commit to the first commit on the branch. - - * Fix a broken "p4 lfs" test. - - * Recent update to Git LFS broke "git p4" by changing the output from - its "lfs pointer" subcommand. - - * "git fetch" test t5510 was flaky while running a (forced) automagic - garbage collection. - - * Documentation updates to help contributors setting up Travis CI - test for their patches. - - * Some multi-byte encoding can have a backslash byte as a later part - of one letter, which would confuse "highlight" filter used in - gitweb. - - * "git commit-tree" plumbing command required the user to always sign - its result when the user sets the commit.gpgsign configuration - variable, which was an ancient mistake. Rework "git rebase" that - relied on this mistake so that it reads commit.gpgsign and pass (or - not pass) the -S option to "git commit-tree" to keep the end-user - expectation the same, while teaching "git commit-tree" to ignore - the configuration variable. This will stop requiring the users to - sign commit objects used internally as an implementation detail of - "git stash". - - * "http.cookieFile" configuration variable clearly wants a pathname, - but we forgot to treat it as such by e.g. applying tilde expansion. - - * Consolidate description of tilde-expansion that is done to - configuration variables that take pathname to a single place. - - * Correct faulty recommendation to use "git submodule deinit ." when - de-initialising all submodules, which would result in a strange - error message in a pathological corner case. - - * Many 'linkgit:<git documentation page>' references were broken, - which are all fixed with this. - - * "git rerere" can get confused by conflict markers deliberately left - by the inner merge step, because they are indistinguishable from - the real conflict markers left by the outermost merge which are - what the end user and "rerere" need to look at. This was fixed by - making the conflict markers left by the inner merges a bit longer. - (merge 0f9fd5c jc/ll-merge-internal later to maint). - - * CI test was taught to build documentation pages. - - * "git fsck" learned to catch NUL byte in a commit object as - potential error and warn. - - * Portability enhancement for "rebase -i" to help platforms whose - shell does not like "for i in <empty>" (which is not POSIX-kosher). - - * On Windows, .git and optionally any files whose name starts with a - dot are now marked as hidden, with a core.hideDotFiles knob to - customize this behaviour. - - * Documentation for "git merge --verify-signatures" has been updated - to clarify that the signature of only the commit at the tip is - verified. Also the phrasing used for signature and key validity is - adjusted to align with that used by OpenPGP. - - * A couple of bugs around core.autocrlf have been fixed. - - * Many commands normalize command line arguments from NFD to NFC - variant of UTF-8 on OSX, but commands in the "diff" family did - not, causing "git diff $path" to complain that no such path is - known to Git. They have been taught to do the normalization. - - * "git difftool" learned to handle unmerged paths correctly in - dir-diff mode. - - * The "are we talking with TTY, doing an interactive session?" - detection has been updated to work better for "Git for Windows". - - * We forgot to add "git log --decorate=auto" to documentation when we - added the feature back in v2.1.0 timeframe. - (merge 462cbb4 rj/log-decorate-auto later to maint). - - * "git fast-import --export-marks" would overwrite the existing marks - file even when it makes a dump from its custom die routine. - Prevent it from doing so when we have an import-marks file but - haven't finished reading it. - (merge f4beed6 fc/fast-import-broken-marks-file later to maint). - - * "git rebase -i", after it fails to auto-resolve the conflict, had - an unnecessary call to "git rerere" from its very early days, which - was spotted recently; the call has been removed. - (merge 7063693 js/rebase-i-dedup-call-to-rerere later to maint). - - * Other minor clean-ups and documentation updates - (merge cd82b7a pa/cherry-pick-doc-typo later to maint). - (merge 2bb73ae rs/patch-id-use-skip-prefix later to maint). - (merge aa20cbc rs/apply-name-terminate later to maint). - (merge fe17fc0 jc/t2300-setup later to maint). - (merge e256eec jk/shell-portability later to maint). diff --git a/third_party/git/Documentation/RelNotes/2.9.1.txt b/third_party/git/Documentation/RelNotes/2.9.1.txt deleted file mode 100644 index 338394097ebf..000000000000 --- a/third_party/git/Documentation/RelNotes/2.9.1.txt +++ /dev/null @@ -1,117 +0,0 @@ -Git v2.9.1 Release Notes -======================== - -Fixes since v2.9 ----------------- - - * When "git daemon" is run without --[init-]timeout specified, a - connection from a client that silently goes offline can hang around - for a long time, wasting resources. The socket-level KEEPALIVE has - been enabled to allow the OS to notice such failed connections. - - * The commands in `git log` family take %C(auto) in a custom format - string. This unconditionally turned the color on, ignoring - --no-color or with --color=auto when the output is not connected to - a tty; this was corrected to make the format truly behave as - "auto". - - * "git rev-list --count" whose walk-length is limited with "-n" - option did not work well with the counting optimized to look at the - bitmap index. - - * "git show -W" (extend hunks to cover the entire function, delimited - by lines that match the "funcname" pattern) used to show the entire - file when a change added an entire function at the end of the file, - which has been fixed. - - * The documentation set has been updated so that literal commands, - configuration variables and environment variables are consistently - typeset in fixed-width font and bold in manpages. - - * "git svn propset" subcommand that was added in 2.3 days is - documented now. - - * The documentation tries to consistently spell "GPG"; when - referring to the specific program name, "gpg" is used. - - * "git reflog" stopped upon seeing an entry that denotes a branch - creation event (aka "unborn"), which made it appear as if the - reflog was truncated. - - * The git-prompt scriptlet (in contrib/) was not friendly with those - who uses "set -u", which has been fixed. - - * A codepath that used alloca(3) to place an unbounded amount of data - on the stack has been updated to avoid doing so. - - * "git update-index --add --chmod=+x file" may be usable as an escape - hatch, but not a friendly thing to force for people who do need to - use it regularly. "git add --chmod=+x file" can be used instead. - - * Build improvements for gnome-keyring (in contrib/) - - * "git status" used to say "working directory" when it meant "working - tree". - - * Comments about misbehaving FreeBSD shells have been clarified with - the version number (9.x and before are broken, newer ones are OK). - - * "git cherry-pick A" worked on an unborn branch, but "git - cherry-pick A..B" didn't. - - * "git add -i/-p" learned to honor diff.compactionHeuristic - experimental knob, so that the user can work on the same hunk split - as "git diff" output. - - * "log --graph --format=" learned that "%>|(N)" specifies the width - relative to the terminal's left edge, not relative to the area to - draw text that is to the right of the ancestry-graph section. It - also now accepts negative N that means the column limit is relative - to the right border. - - * The ownership rule for the piece of memory that hold references to - be fetched in "git fetch" was screwy, which has been cleaned up. - - * "git bisect" makes an internal call to "git diff-tree" when - bisection finds the culprit, but this call did not initialize the - data structure to pass to the diff-tree API correctly. - - * Formats of the various data (and how to validate them) where we use - GPG signature have been documented. - - * Fix an unintended regression in v2.9 that breaks "clone --depth" - that recurses down to submodules by forcing the submodules to also - be cloned shallowly, which many server instances that host upstream - of the submodules are not prepared for. - - * Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}' - to set the default value, without enclosing it in double quotes. - - * Some platform-specific code had non-ANSI strict declarations of C - functions that do not take any parameters, which has been - corrected. - - * The internal code used to show local timezone offset is not - prepared to handle timestamps beyond year 2100, and gave a - bogus offset value to the caller. Use a more benign looking - +0000 instead and let "git log" going in such a case, instead - of aborting. - - * One among four invocations of readlink(1) in our test suite has - been rewritten so that the test can run on systems without the - command (others are in valgrind test framework and t9802). - - * t/perf needs /usr/bin/time with GNU extension; the invocation of it - is updated to "gtime" on Darwin. - - * A bug, which caused "git p4" while running under verbose mode to - report paths that are omitted due to branch prefix incorrectly, has - been fixed; the command said "Ignoring file outside of prefix" for - paths that are _inside_. - - * The top level documentation "git help git" still pointed at the - documentation set hosted at now-defunct google-code repository. - Update it to point to https://git.github.io/htmldocs/git.html - instead. - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.9.2.txt b/third_party/git/Documentation/RelNotes/2.9.2.txt deleted file mode 100644 index 2620003dcf32..000000000000 --- a/third_party/git/Documentation/RelNotes/2.9.2.txt +++ /dev/null @@ -1,13 +0,0 @@ -Git v2.9.2 Release Notes -======================== - -Fixes since v2.9.1 ------------------- - - * A fix merged to v2.9.1 had a few tests that are not meant to be - run on platforms without 64-bit long, which caused unnecessary - test failures on them because we didn't detect the platform and - skip them. These tests are now skipped on platforms that they - are not applicable to. - -No other change is included in this update. diff --git a/third_party/git/Documentation/RelNotes/2.9.3.txt b/third_party/git/Documentation/RelNotes/2.9.3.txt deleted file mode 100644 index 305e08062b1b..000000000000 --- a/third_party/git/Documentation/RelNotes/2.9.3.txt +++ /dev/null @@ -1,170 +0,0 @@ -Git v2.9.3 Release Notes -======================== - -Fixes since v2.9.2 ------------------- - - * A helper function that takes the contents of a commit object and - finds its subject line did not ignore leading blank lines, as is - commonly done by other codepaths. Make it ignore leading blank - lines to match. - - * Git does not know what the contents in the index should be for a - path added with "git add -N" yet, so "git grep --cached" should not - show hits (or show lack of hits, with -L) in such a path, but that - logic does not apply to "git grep", i.e. searching in the working - tree files. But we did so by mistake, which has been corrected. - - * "git rebase -i --autostash" did not restore the auto-stashed change - when the operation was aborted. - - * "git commit --amend --allow-empty-message -S" for a commit without - any message body could have misidentified where the header of the - commit object ends. - - * More mark-up updates to typeset strings that are expected to - literally typed by the end user in fixed-width font. - - * For a long time, we carried an in-code comment that said our - colored output would work only when we use fprintf/fputs on - Windows, which no longer is the case for the past few years. - - * "gc.autoPackLimit" when set to 1 should not trigger a repacking - when there is only one pack, but the code counted poorly and did - so. - - * One part of "git am" had an oddball helper function that called - stuff from outside "his" as opposed to calling what we have "ours", - which was not gender-neutral and also inconsistent with the rest of - the system where outside stuff is usually called "theirs" in - contrast to "ours". - - * The test framework learned a new helper test_match_signal to - check an exit code from getting killed by an expected signal. - - * "git blame -M" missed a single line that was moved within the file. - - * Fix recently introduced codepaths that are involved in parallel - submodule operations, which gave up on reading too early, and - could have wasted CPU while attempting to write under a corner - case condition. - - * "git grep -i" has been taught to fold case in non-ascii locales - correctly. - - * A test that unconditionally used "mktemp" learned that the command - is not necessarily available everywhere. - - * "git blame file" allowed the lineage of lines in the uncommitted, - unadded contents of "file" to be inspected, but it refused when - "file" did not appear in the current commit. When "file" was - created by renaming an existing file (but the change has not been - committed), this restriction was unnecessarily tight. - - * "git add -N dir/file && git write-tree" produced an incorrect tree - when there are other paths in the same directory that sorts after - "file". - - * "git fetch http://user:pass@host/repo..." scrubbed the userinfo - part, but "git push" didn't. - - * An age old bug that caused "git diff --ignore-space-at-eol" - misbehave has been fixed. - - * "git notes merge" had a code to see if a path exists (and fails if - it does) and then open the path for writing (when it doesn't). - Replace it with open with O_EXCL. - - * "git pack-objects" and "git index-pack" mostly operate with off_t - when talking about the offset of objects in a packfile, but there - were a handful of places that used "unsigned long" to hold that - value, leading to an unintended truncation. - - * Recent update to "git daemon" tries to enable the socket-level - KEEPALIVE, but when it is spawned via inetd, the standard input - file descriptor may not necessarily be connected to a socket. - Suppress an ENOTSOCK error from setsockopt(). - - * Recent FreeBSD stopped making perl available at /usr/bin/perl; - switch the default the built-in path to /usr/local/bin/perl on not - too ancient FreeBSD releases. - - * "git status" learned to suggest "merge --abort" during a conflicted - merge, just like it already suggests "rebase --abort" during a - conflicted rebase. - - * The .c/.h sources are marked as such in our .gitattributes file so - that "git diff -W" and friends would work better. - - * Existing autoconf generated test for the need to link with pthread - library did not check all the functions from pthread libraries; - recent FreeBSD has some functions in libc but not others, and we - mistakenly thought linking with libc is enough when it is not. - - * Allow http daemon tests in Travis CI tests. - - * Users of the parse_options_concat() API function need to allocate - extra slots in advance and fill them with OPT_END() when they want - to decide the set of supported options dynamically, which makes the - code error-prone and hard to read. This has been corrected by tweaking - the API to allocate and return a new copy of "struct option" array. - - * The use of strbuf in "git rm" to build filename to remove was a bit - suboptimal, which has been fixed. - - * "git commit --help" said "--no-verify" is only about skipping the - pre-commit hook, and failed to say that it also skipped the - commit-msg hook. - - * "git merge" in Git v2.9 was taught to forbid merging an unrelated - lines of history by default, but that is exactly the kind of thing - the "--rejoin" mode of "git subtree" (in contrib/) wants to do. - "git subtree" has been taught to use the "--allow-unrelated-histories" - option to override the default. - - * The build procedure for "git persistent-https" helper (in contrib/) - has been updated so that it can be built with more recent versions - of Go. - - * There is an optimization used in "git diff $treeA $treeB" to borrow - an already checked-out copy in the working tree when it is known to - be the same as the blob being compared, expecting that open/mmap of - such a file is faster than reading it from the object store, which - involves inflating and applying delta. This however kicked in even - when the checked-out copy needs to go through the convert-to-git - conversion (including the clean filter), which defeats the whole - point of the optimization. The optimization has been disabled when - the conversion is necessary. - - * "git -c grep.patternType=extended log --basic-regexp" misbehaved - because the internal API to access the grep machinery was not - designed well. - - * Windows port was failing some tests in t4130, due to the lack of - inum in the returned values by its lstat(2) emulation. - - * The characters in the label shown for tags/refs for commits in - "gitweb" output are now properly escaped for proper HTML output. - - * FreeBSD can lie when asked mtime of a directory, which made the - untracked cache code to fall back to a slow-path, which in turn - caused tests in t7063 to fail because it wanted to verify the - behaviour of the fast-path. - - * Squelch compiler warnings for netmalloc (in compat/) library. - - * The API documentation for hashmap was unclear if hashmap_entry - can be safely discarded without any other consideration. State - that it is safe to do so. - - * Not-so-recent rewrite of "git am" that started making internal - calls into the commit machinery had an unintended regression, in - that no matter how many seconds it took to apply many patches, the - resulting committer timestamp for the resulting commits were all - the same. - - * "git difftool <paths>..." started in a subdirectory failed to - interpret the paths relative to that directory, which has been - fixed. - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.9.4.txt b/third_party/git/Documentation/RelNotes/2.9.4.txt deleted file mode 100644 index 9768293831a5..000000000000 --- a/third_party/git/Documentation/RelNotes/2.9.4.txt +++ /dev/null @@ -1,90 +0,0 @@ -Git v2.9.4 Release Notes -======================== - -Fixes since v2.9.3 ------------------- - - * There are certain house-keeping tasks that need to be performed at - the very beginning of any Git program, and programs that are not - built-in commands had to do them exactly the same way as "git" - potty does. It was easy to make mistakes in one-off standalone - programs (like test helpers). A common "main()" function that - calls cmd_main() of individual program has been introduced to - make it harder to make mistakes. - - * "git merge" with renormalization did not work well with - merge-recursive, due to "safer crlf" conversion kicking in when it - shouldn't. - - * The reflog output format is documented better, and a new format - --date=unix to report the seconds-since-epoch (without timezone) - has been added. - - * "git push --force-with-lease" already had enough logic to allow - ensuring that such a push results in creation of a ref (i.e. the - receiving end did not have another push from sideways that would be - discarded by our force-pushing), but didn't expose this possibility - to the users. It does so now. - - * "import-tars" fast-import script (in contrib/) used to ignore a - hardlink target and replaced it with an empty file, which has been - corrected to record the same blob as the other file the hardlink is - shared with. - - * "git mv dir non-existing-dir/" did not work in some environments - the same way as existing mainstream platforms. The code now moves - "dir" to "non-existing-dir", without relying on rename("A", "B/") - that strips the trailing slash of '/'. - - * The "t/" hierarchy is prone to get an unusual pathname; "make test" - has been taught to make sure they do not contain paths that cannot - be checked out on Windows (and the mechanism can be reusable to - catch pathnames that are not portable to other platforms as need - arises). - - * When "git merge-recursive" works on history with many criss-cross - merges in "verbose" mode, the names the command assigns to the - virtual merge bases could have overwritten each other by unintended - reuse of the same piece of memory. - - * "git checkout --detach <branch>" used to give the same advice - message as that is issued when "git checkout <tag>" (or anything - that is not a branch name) is given, but asking with "--detach" is - an explicit enough sign that the user knows what is going on. The - advice message has been squelched in this case. - - * "git difftool" by default ignores the error exit from the backend - commands it spawns, because often they signal that they found - differences by exiting with a non-zero status code just like "diff" - does; the exit status codes 126 and above however are special in - that they are used to signal that the command is not executable, - does not exist, or killed by a signal. "git difftool" has been - taught to notice these exit status codes. - - * On Windows, help.browser configuration variable used to be ignored, - which has been corrected. - - * The "git -c var[=val] cmd" facility to append a configuration - variable definition at the end of the search order was described in - git(1) manual page, but not in git-config(1), which was more likely - place for people to look for when they ask "can I make a one-shot - override, and if so how?" - - * The tempfile (hence its user lockfile) API lets the caller to open - a file descriptor to a temporary file, write into it and then - finalize it by first closing the filehandle and then either - removing or renaming the temporary file. When the process spawns a - subprocess after obtaining the file descriptor, and if the - subprocess has not exited when the attempt to remove or rename is - made, the last step fails on Windows, because the subprocess has - the file descriptor still open. Open tempfile with O_CLOEXEC flag - to avoid this (on Windows, this is mapped to O_NOINHERIT). - - * "git-shell" rejects a request to serve a repository whose name - begins with a dash, which makes it no longer possible to get it - confused into spawning service programs like "git-upload-pack" with - an option like "--help", which in turn would spawn an interactive - pager, instead of working with the repository user asked to access - (i.e. the one whose name is "--help"). - -Also contains minor documentation updates and code clean-ups. diff --git a/third_party/git/Documentation/RelNotes/2.9.5.txt b/third_party/git/Documentation/RelNotes/2.9.5.txt deleted file mode 100644 index 668313ae5567..000000000000 --- a/third_party/git/Documentation/RelNotes/2.9.5.txt +++ /dev/null @@ -1,4 +0,0 @@ -Git v2.9.5 Release Notes -======================== - -This release forward-ports the fix for "ssh://..." URL from Git v2.7.6 |