summaryrefslogtreecommitdiff
path: root/Documentation/RelNotes/1.7.5.txt
blob: 2c96f4d831513eb50ac50f8c7f174462919c64f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Git v1.7.5 Release Notes (draft)
========================

Updates since v1.7.4
--------------------

 * Various MinGW portability fixes.

 * Various git-p4 enhancements (in contrib).

 * Various vcs-svn enhancements.

 * Update to more modern HP-UX port.

 * "git apply -v" reports offset lines when the patch does not apply at
   the exact location recorded in the diff output.

 * "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 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 an
   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 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 grep --no-index" did not honor pathspecs correctly, returning
   paths outside the specified area.

 * "git log" family of commands now understand globbing pathspecs.  You
   can say "git log -- '*.txt'" for example.

 * "git rev-list --objects $revs -- $pathspec" would limit 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.

 * "git rerere" learned a new subcommand "remaining", that is similar to
   "status" that lists the paths that had conflicts that 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.

 * A possible value to the "push.default" configuration variable,
   'tracking', gained a synonym that more naturally describes what it
   does, 'upstream'.

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.

 * 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 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 clone /no/such/path" did not fail correctly (jk/fail-null/clone).

 * "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 (js/checkout-untracked-symlink).

 * "git diff --stat -B" ran on binary files counted the changes in lines,
   which was nonsensical (jk/diffstat-binary).

 * "git diff -M" opportunisticly detected copies, which was not
   necessarily a good thing, especially when it is internally run by
   recursive merge.

 * "git merge" triggers prepare-commit-msg hook.  Earlier, only "git
   commit" to conclude an interrupted merge triggered the hook, leading to
   an inconsistent overall user experience (js/maint-merge-use-prepare-commit-msg-hook).

 * "git submodule update" used to honor --merge/--rebase option (or
   corresponding configuration variables) even for a newly cloned
   subprojects, which made no sense (so/submodule-no-update-first-time).

---
exec >/var/tmp/1
O=v1.7.4.1-265-gd0ef5a7
echo O=$(git describe 'master')
git shortlog --no-merges ^maint ^$O master