summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/RelNotes/2.5.0.txt166
-rw-r--r--Documentation/config.txt9
-rw-r--r--Documentation/git-checkout.txt78
-rw-r--r--Documentation/git-credential-store.txt35
-rw-r--r--Documentation/git-hash-object.txt10
-rw-r--r--Documentation/git-p4.txt17
-rw-r--r--Documentation/git-prune.txt3
-rw-r--r--Documentation/git-rev-parse.txt10
-rw-r--r--Documentation/git.txt9
-rw-r--r--Documentation/gitrepository-layout.txt74
-rwxr-xr-xGIT-VERSION-GEN2
-rw-r--r--Makefile6
l---------RelNotes2
-rw-r--r--archive-zip.c4
-rw-r--r--archive.c22
-rw-r--r--attr.c7
-rw-r--r--bisect.c40
-rw-r--r--builtin/apply.c14
-rw-r--r--builtin/blame.c1
-rw-r--r--builtin/branch.c4
-rw-r--r--builtin/checkout-index.c10
-rw-r--r--builtin/checkout.c280
-rw-r--r--builtin/clone.c9
-rw-r--r--builtin/commit.c10
-rw-r--r--builtin/config.c10
-rw-r--r--builtin/count-objects.c4
-rw-r--r--builtin/fetch.c5
-rw-r--r--builtin/fmt-merge-msg.c16
-rw-r--r--builtin/fsck.c4
-rw-r--r--builtin/gc.c34
-rw-r--r--builtin/hash-object.c4
-rw-r--r--builtin/index-pack.c290
-rw-r--r--builtin/init-db.c7
-rw-r--r--builtin/pack-objects.c4
-rw-r--r--builtin/patch-id.c34
-rw-r--r--builtin/prune.c99
-rw-r--r--builtin/receive-pack.c2
-rw-r--r--builtin/remote.c2
-rw-r--r--builtin/repack.c8
-rw-r--r--builtin/rev-parse.c11
-rw-r--r--builtin/show-branch.c6
-rw-r--r--builtin/update-index.c13
-rw-r--r--bulk-checkin.c12
-rw-r--r--cache.h66
-rw-r--r--combine-diff.c56
-rw-r--r--commit.c56
-rw-r--r--commit.h4
-rw-r--r--compat/mingw.h8
-rw-r--r--config.c10
-rw-r--r--config.mak.uname1
-rw-r--r--contrib/completion/git-completion.bash3
-rw-r--r--credential-store.c90
-rw-r--r--daemon.c13
-rw-r--r--diff-lib.c10
-rw-r--r--diff.h5
-rw-r--r--dir.c7
-rw-r--r--environment.c34
-rw-r--r--fast-import.c7
-rwxr-xr-xgit-am.sh22
-rw-r--r--git-compat-util.h60
-rwxr-xr-xgit-filter-branch.sh10
-rwxr-xr-xgit-p4.py67
-rwxr-xr-xgit-pull.sh2
-rw-r--r--git-rebase--interactive.sh6
-rw-r--r--git-rebase--merge.sh6
-rwxr-xr-xgit-rebase.sh6
-rw-r--r--git-sh-setup.sh2
-rwxr-xr-xgit-stash.sh6
-rw-r--r--git.c2
-rw-r--r--hex.c16
-rw-r--r--log-tree.c2
-rw-r--r--notes-merge.c6
-rw-r--r--path.c277
-rw-r--r--progress.c22
-rw-r--r--refs.c65
-rw-r--r--refs.h2
-rw-r--r--revision.c23
-rw-r--r--run-command.c4
-rw-r--r--run-command.h2
-rw-r--r--send-pack.c2
-rw-r--r--setup.c124
-rw-r--r--sha1_file.c32
-rw-r--r--shallow.c8
-rw-r--r--strbuf.c49
-rw-r--r--strbuf.h3
-rw-r--r--submodule.c9
-rw-r--r--t/lib-git-p4.sh2
-rwxr-xr-xt/t0027-auto-crlf.sh243
-rwxr-xr-xt/t0060-path-utils.sh36
-rwxr-xr-xt/t0302-credential-store.sh114
-rwxr-xr-xt/t1007-hash-object.sh11
-rwxr-xr-xt/t1430-bad-ref-name.sh8
-rwxr-xr-xt/t1501-worktree.sh77
-rwxr-xr-xt/t1510-repo-setup.sh1
-rwxr-xr-xt/t2025-checkout-to.sh129
-rwxr-xr-xt/t2026-prune-linked-checkouts.sh96
-rwxr-xr-xt/t3701-add-interactive.sh27
-rwxr-xr-xt/t3904-stash-patch.sh43
-rwxr-xr-xt/t7003-filter-branch.sh10
-rwxr-xr-xt/t7410-submodule-checkout-to.sh50
-rwxr-xr-xt/t8003-blame-corner-cases.sh18
-rwxr-xr-xt/t9801-git-p4-branch.sh106
-rwxr-xr-xt/t9814-git-p4-rename.sh11
-rwxr-xr-xt/t9816-git-p4-locked.sh10
-rwxr-xr-xt/t9818-git-p4-block.sh64
-rwxr-xr-xt/t9819-git-p4-case-folding.sh54
-rwxr-xr-xtemplates/hooks--applypatch-msg.sample4
-rwxr-xr-xtemplates/hooks--pre-applypatch.sample4
-rw-r--r--trace.c1
-rw-r--r--transport.c8
-rw-r--r--tree-diff.c10
-rw-r--r--upload-pack.c2
-rw-r--r--wrapper.c31
113 files changed, 2953 insertions, 809 deletions
diff --git a/Documentation/RelNotes/2.5.0.txt b/Documentation/RelNotes/2.5.0.txt
new file mode 100644
index 0000000000..a11e53cf0f
--- /dev/null
+++ b/Documentation/RelNotes/2.5.0.txt
@@ -0,0 +1,166 @@
+Git 2.5 Release Notes
+=====================
+
+Updates since v2.4
+------------------
+
+Ports
+
+
+UI, Workflows & Features
+
+ * "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.
+
+ * "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.
+
+ * Tweak the sample "store" backend of the credential helper to honor
+ XDG configuration file locations when specified.
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * "unsigned char [20]" used thoughout 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.
+
+ * Catch a programmer mistake to feed a pointer not an array to
+ ARRAY_SIZE() macro, by using a couple of GCC extensions.
+ (merge 89c855e ep/do-not-feed-a-pointer-to-array-size later to maint).
+
+ * 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 $gmane/87202 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.
+
+ * 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 9a9a41d lm/squelch-bg-progress later to maint).
+
+
+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).
+
+ * Memory usage of "git index-pack" has been trimmed by tens of
+ per-cent.
+ (merge c6458e6 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 portabile 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
+ correcty.
+ (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.em