Skip to content

Commit d90b16e

Browse files
committed
Merge v1.7.10-rc0 for git l10n update
2 parents 6672dc8 + 0e2d57f commit d90b16e

21 files changed

+265
-105
lines changed

Documentation/RelNotes/1.7.10.txt

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ Compatibility Notes
2525
"git merge" command if you know everybody who uses your script has
2626
Git v1.7.8 or newer.
2727

28+
* The "--binary/-b" options to "git am" have been a no-op for quite a
29+
while and were deprecated in mid 2008 (v1.6.0). When you give these
30+
options to "git am", it will now warn and ask you not to use them.
31+
2832

2933
Updates since v1.7.9
3034
--------------------
@@ -43,20 +47,23 @@ UI, Workflows & Features
4347

4448
* A content filter (clean/smudge) used to be just a way to make the
4549
recorded contents "more useful", and allowed to fail; a filter can
46-
new optionally be marked as "required".
50+
now optionally be marked as "required".
4751

4852
* Options whose names begin with "--no-" (e.g. the "--no-verify"
4953
option of the "git commit" command) can be negated by omitting
5054
"no-" from its name, e.g. "git commit --verify".
5155

5256
* "git am" learned to pass "-b" option to underlying "git mailinfo", so
53-
that bracketed string other than "PATCH" at the beginning can be kept.
57+
that a bracketed string other than "PATCH" at the beginning can be kept.
5458

5559
* "git clone" learned "--single-branch" option to limit cloning to a
56-
single branch (surprise!).
60+
single branch (surprise!); tags that do not point into the history
61+
of the branch are not fetched.
5762

5863
* "git clone" learned to detach the HEAD in the resulting repository
59-
when the source repository's HEAD does not point to a branch.
64+
when the user specifies a tag with "--branch" (e.g., "--branch=v1.0").
65+
Clone also learned to print the usual "detached HEAD" advice in such
66+
a case, similar to "git checkout v1.0".
6067

6168
* When showing a patch while ignoring whitespace changes, the context
6269
lines are taken from the postimage, in order to make it easier to
@@ -71,9 +78,12 @@ UI, Workflows & Features
7178
* "fsck" learned "--no-dangling" option to omit dangling object
7279
information.
7380

74-
* "git log -G" learned to pay attention to the "-i" option and can
75-
find patch hunks that introduce or remove a string that matches the
76-
given pattern ignoring the case.
81+
* "git log -G" and "git log -S" learned to pay attention to the "-i"
82+
option. With "-i", "log -G" ignores the case when finding patch
83+
hunks that introduce or remove a string that matches the given
84+
pattern. Similarly with "-i", "log -S" ignores the case when
85+
finding the commit the given block of text appears or disappears
86+
from the file.
7787

7888
* "git merge" in an interactive session learned to spawn the editor
7989
by default to let the user edit the auto-generated merge message,
@@ -82,20 +92,23 @@ UI, Workflows & Features
8292
Both "git merge" and "git pull" can be given --no-edit from the
8393
command line to accept the auto-generated merge message.
8494

85-
* The advise message given when the user didn't give enough clue on
95+
* The advice message given when the user didn't give enough clue on
8696
what to merge to "git pull" and "git merge" has been updated to
8797
be more concise and easier to understand.
8898

8999
* "git push" learned the "--prune" option, similar to "git fetch".
90100

101+
* The whole directory that houses a top-level superproject managed by
102+
"git submodule" can be moved to another place.
103+
91104
* "git symbolic-ref" learned the "--short" option to abbreviate the
92105
refname it shows unambiguously.
93106

94107
* "git tag --list" can be given "--points-at <object>" to limit its
95108
output to those that point at the given object.
96109

97110
* "gitweb" allows intermediate entries in the directory hierarchy
98-
that leads to a projects to be clicked, which in turn shows the
111+
that leads to a project to be clicked, which in turn shows the
99112
list of projects inside that directory.
100113

101114
* "gitweb" learned to read various pieces of information for the
@@ -106,6 +119,10 @@ UI, Workflows & Features
106119
* Project search in "gitweb" shows the substring that matched in the
107120
project name and description highlighted.
108121

122+
* A new script "diffall" is added to contrib/; it drives an
123+
external tool to perform a directory diff of two Git revisions
124+
in one go, unlike "difftool" that compares one file at a time.
125+
109126
Foreign Interface
110127

111128
* Improved handling of views, labels and branches in "git-p4" (in contrib).
@@ -149,6 +166,10 @@ Internal Implementation (please report possible regressions)
149166
* The code to check if a path points at a file beyond a symbolic link
150167
has been restructured to be thread-safe.
151168

169+
* When pruning directories that has become empty during "git prune"
170+
and "git prune-packed", call closedir() that iterates over a
171+
directory before rmdir() it.
172+
152173
Also contains minor documentation updates and code clean-ups.
153174

154175

@@ -159,29 +180,25 @@ Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
159180
releases are contained in this release (see release notes to them for
160181
details).
161182

162-
* "git bundle" did not record boundary commits correctly when there
163-
are many of them.
164-
(merge efe4be1 tr/maint-bundle-boundary later to maint).
183+
* The "remaining" subcommand to "git rerere" was not documented.
184+
(merge 3e7a1df ph/rerere-doc later to maint).
165185

166-
* "git diff-index" and its friends at the plumbing level showed the
167-
"diff --git" header and nothing else for a path whose cached stat
168-
info is dirty without actual difference when asked to produce a
169-
patch. This was a longstanding bug that we could have fixed long
170-
time ago.
171-
(merge b3f01ff jc/maint-diff-patch-header later to maint).
186+
* "git tag -s" honored "gpg.program" configuration variable since
187+
1.7.9, but "git tag -v" and "git verify-tag" didn't.
188+
(merge a2c2506 az/verify-tag-use-gpg-config later to maint).
172189

173-
* The code to synthesize the fake ancestor tree used by 3-way merge
174-
fallback in "git am" was not prepared to read a patch created with
175-
a non-standard -p<num> value.
176-
(merge a61ba26 jc/am-3-nonstandard-popt later to maint).
190+
* When "git config" diagnoses an error in a configuration file and
191+
shows the line number for the offending line, it miscounted if the
192+
error was at the end of line.
193+
(merge 4b34059 ms/maint-config-error-at-eol-linecount later to maint).
177194

178195
* "gitweb" used to drop warnings in the log file when "heads" view is
179196
accessed in a repository whose HEAD does not point at a valid
180197
branch.
181198

182199
---
183200
exec >/var/tmp/1
184-
O=v1.7.9.3-366-g1e4d087
201+
O=v1.7.10-rc0-50-gd973dc0
185202
echo O=$(git describe)
186203
git log --first-parent --oneline ^maint $O..
187204
echo

Documentation/RelNotes/1.7.9.4.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Git v1.7.9.4 Release Notes
2+
==========================
3+
4+
Fixes since v1.7.9.3
5+
--------------------
6+
7+
* The code to synthesize the fake ancestor tree used by 3-way merge
8+
fallback in "git am" was not prepared to read a patch created with
9+
a non-standard -p<num> value.
10+
11+
* "git bundle" did not record boundary commits correctly when there
12+
are many of them.
13+
14+
* "git diff-index" and its friends at the plumbing level showed the
15+
"diff --git" header and nothing else for a path whose cached stat
16+
info is dirty without actual difference when asked to produce a
17+
patch. This was a longstanding bug that we could have fixed long
18+
time ago.
19+
20+
* "gitweb" did use quotemeta() to prepare search string when asked to
21+
do a fixed-string project search, but did not use it by mistake and
22+
used the user-supplied string instead.
23+
24+
Also contains minor fixes and documentation updates.

Documentation/git-branch.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ be highlighted with an asterisk. Option `-r` causes the remote-tracking
2424
branches to be listed, and option `-a` shows both. This list mode is also
2525
activated by the `--list` option (see below).
2626
<pattern> restricts the output to matching branches, the pattern is a shell
27-
wildcard (i.e., matched using fnmatch(3))
28-
Multiple patterns may be given; if any of them matches, the tag is shown.
27+
wildcard (i.e., matched using fnmatch(3)).
28+
Multiple patterns may be given; if any of them matches, the branch is shown.
2929

3030
With `--contains`, shows only the branches that contain the named commit
3131
(in other words, the branches whose tip commits are descendants of the
@@ -49,7 +49,7 @@ the remote-tracking branch. This behavior may be changed via the global
4949
overridden by using the `--track` and `--no-track` options, and
5050
changed later using `git branch --set-upstream`.
5151

52-
With a '-m' or '-M' option, <oldbranch> will be renamed to <newbranch>.
52+
With a `-m` or `-M` option, <oldbranch> will be renamed to <newbranch>.
5353
If <oldbranch> had a corresponding reflog, it is renamed to match
5454
<newbranch>, and a reflog entry is created to remember the branch
5555
renaming. If <newbranch> exists, -M must be used to force the rename
@@ -59,7 +59,7 @@ With a `-d` or `-D` option, `<branchname>` will be deleted. You may
5959
specify more than one branch for deletion. If the branch currently
6060
has a reflog then the reflog will also be deleted.
6161

62-
Use -r together with -d to delete remote-tracking branches. Note, that it
62+
Use `-r` together with `-d` to delete remote-tracking branches. Note, that it
6363
only makes sense to delete remote-tracking branches if they no longer exist
6464
in the remote repository or if 'git fetch' was configured not to fetch
6565
them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a
@@ -154,17 +154,18 @@ start-point is either a local or remote-tracking branch.
154154
branch.autosetupmerge configuration variable is true.
155155

156156
--set-upstream::
157-
If specified branch does not exist yet or if '--force' has been
158-
given, acts exactly like '--track'. Otherwise sets up configuration
159-
like '--track' would when creating the branch, except that where
157+
If specified branch does not exist yet or if `--force` has been
158+
given, acts exactly like `--track`. Otherwise sets up configuration
159+
like `--track` would when creating the branch, except that where
160160
branch points to is not changed.
161161

162162
--edit-description::
163163
Open an editor and edit the text to explain what the branch is
164164
for, to be used by various other commands (e.g. `request-pull`).
165165

166-
--contains <commit>::
167-
Only list branches which contain the specified commit.
166+
--contains [<commit>]::
167+
Only list branches which contain the specified commit (HEAD
168+
if not specified).
168169

169170
--merged [<commit>]::
170171
Only list branches whose tips are reachable from the

Documentation/git-rerere.txt

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ git-rerere - Reuse recorded resolution of conflicted merges
88
SYNOPSIS
99
--------
1010
[verse]
11-
'git rerere' ['clear'|'forget' <pathspec>|'diff'|'status'|'gc']
11+
'git rerere' ['clear'|'forget' <pathspec>|'diff'|'remaining'|'status'|'gc']
1212

1313
DESCRIPTION
1414
-----------
@@ -37,30 +37,35 @@ its working state.
3737

3838
'clear'::
3939

40-
This resets the metadata used by rerere if a merge resolution is to be
40+
Reset the metadata used by rerere if a merge resolution is to be
4141
aborted. Calling 'git am [--skip|--abort]' or 'git rebase [--skip|--abort]'
4242
will automatically invoke this command.
4343

4444
'forget' <pathspec>::
4545

46-
This resets the conflict resolutions which rerere has recorded for the current
46+
Reset the conflict resolutions which rerere has recorded for the current
4747
conflict in <pathspec>.
4848

4949
'diff'::
5050

51-
This displays diffs for the current state of the resolution. It is
51+
Display diffs for the current state of the resolution. It is
5252
useful for tracking what has changed while the user is resolving
5353
conflicts. Additional arguments are passed directly to the system
5454
'diff' command installed in PATH.
5555

5656
'status'::
5757

58-
Like 'diff', but this only prints the filenames that will be tracked
59-
for resolutions.
58+
Print paths with conflicts whose merge resolution rerere will record.
59+
60+
'remaining'::
61+
62+
Print paths with conflicts that have not been autoresolved by rerere.
63+
This includes paths whose resolutions cannot be tracked by rerere,
64+
such as conflicting submodules.
6065

6166
'gc'::
6267

63-
This prunes records of conflicted merges that
68+
Prune records of conflicted merges that
6469
occurred a long time ago. By default, unresolved conflicts older
6570
than 15 days and resolved conflicts older than 60
6671
days are pruned. These defaults are controlled via the

Documentation/git.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ unreleased) version of git, that is available from 'master'
4444
branch of the `git.git` repository.
4545
Documentation for older releases are available here:
4646

47-
* link:v1.7.9.3/git.html[documentation for release 1.7.9.3]
47+
* link:v1.7.9.4/git.html[documentation for release 1.7.9.4]
4848

4949
* release notes for
50+
link:RelNotes/1.7.9.4.txt[1.7.9.4],
5051
link:RelNotes/1.7.9.3.txt[1.7.9.3],
5152
link:RelNotes/1.7.9.2.txt[1.7.9.2],
5253
link:RelNotes/1.7.9.1.txt[1.7.9.1],

GIT-VERSION-GEN

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
GVF=GIT-VERSION-FILE
4-
DEF_VER=v1.7.10-rc0
4+
DEF_VER=v1.7.10-rc1
55

66
LF='
77
'

builtin/prune-packed.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ static void prune_dir(int i, DIR *dir, char *pathname, int len, int opts)
3535
unlink_or_warn(pathname);
3636
display_progress(progress, i + 1);
3737
}
38-
pathname[len] = 0;
39-
rmdir(pathname);
4038
}
4139

4240
void prune_packed_objects(int opts)
@@ -65,6 +63,8 @@ void prune_packed_objects(int opts)
6563
continue;
6664
prune_dir(i, d, pathname, len + 3, opts);
6765
closedir(d);
66+
pathname[len + 2] = '\0';
67+
rmdir(pathname);
6868
}
6969
stop_progress(&progress);
7070
}

builtin/prune.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ static int prune_dir(int i, char *path)
8585
}
8686
fprintf(stderr, "bad sha1 file: %s/%s\n", path, de->d_name);
8787
}
88+
closedir(dir);
8889
if (!show_only)
8990
rmdir(path);
90-
closedir(dir);
9191
return 0;
9292
}
9393

builtin/verify-tag.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ static int verify_tag(const char *name, int verbose)
5858
return ret;
5959
}
6060

61+
static int git_verify_tag_config(const char *var, const char *value, void *cb)
62+
{
63+
int status = git_gpg_config(var, value, cb);
64+
if (status)
65+
return status;
66+
return git_default_config(var, value, cb);
67+
}
68+
6169
int cmd_verify_tag(int argc, const char **argv, const char *prefix)
6270
{
6371
int i = 1, verbose = 0, had_error = 0;
@@ -66,7 +74,7 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
6674
OPT_END()
6775
};
6876

69-
git_config(git_default_config, NULL);
77+
git_config(git_verify_tag_config, NULL);
7078

7179
argc = parse_options(argc, argv, prefix, verify_tag_options,
7280
verify_tag_usage, PARSE_OPT_KEEP_ARGV0);

config.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,10 @@ static char *parse_value(void)
196196
for (;;) {
197197
int c = get_next_char();
198198
if (c == '\n') {
199-
if (quote)
199+
if (quote) {
200+
cf->linenr--;
200201
return NULL;
202+
}
201203
return cf->value.buf;
202204
}
203205
if (comment)
@@ -287,7 +289,7 @@ static int get_extended_base_var(char *name, int baselen, int c)
287289
{
288290
do {
289291
if (c == '\n')
290-
return -1;
292+
goto error_incomplete_line;
291293
c = get_next_char();
292294
} while (isspace(c));
293295

@@ -299,13 +301,13 @@ static int get_extended_base_var(char *name, int baselen, int c)
299301
for (;;) {
300302
int c = get_next_char();
301303
if (c == '\n')
302-
return -1;
304+
goto error_incomplete_line;
303305
if (c == '"')
304306
break;
305307
if (c == '\\') {
306308
c = get_next_char();
307309
if (c == '\n')
308-
return -1;
310+
goto error_incomplete_line;
309311
}
310312
name[baselen++] = c;
311313
if (baselen > MAXNAME / 2)
@@ -316,6 +318,9 @@ static int get_extended_base_var(char *name, int baselen, int c)
316318
if (get_next_char() != ']')
317319
return -1;
318320
return baselen;
321+
error_incomplete_line:
322+
cf->linenr--;
323+
return -1;
319324
}
320325

321326
static int get_base_var(char *name)

0 commit comments

Comments
 (0)