Merge branch 'maint'
* maint: Further 1.5.3.5 fixes described in release notes Avoid invoking diff drivers during git-stash attr: fix segfault in gitattributes parsing code Define NI_MAXSERV if not defined by operating system Ensure we add directories in the correct order Avoid scary errors about tagged trees/blobs during git-fetch
This commit is contained in:
commit
f5bf6feb05
@ -20,9 +20,9 @@ Fixes since v1.5.3.4
|
|||||||
|
|
||||||
* "git-add -i" did not handle single line hunks correctly.
|
* "git-add -i" did not handle single line hunks correctly.
|
||||||
|
|
||||||
* "git-rebase -i" failed if external diff drivers were used for one
|
* "git-rebase -i" and "git-stash apply" failed if external diff
|
||||||
or more files in a commit. It now avoids calling the external
|
drivers were used for one or more files in a commit. They now
|
||||||
diff drivers.
|
avoid calling the external diff drivers.
|
||||||
|
|
||||||
* "git-log --follow" did not work unless diff generation (e.g. -p)
|
* "git-log --follow" did not work unless diff generation (e.g. -p)
|
||||||
was also requested.
|
was also requested.
|
||||||
@ -38,6 +38,16 @@ Fixes since v1.5.3.4
|
|||||||
|
|
||||||
* "git-instaweb" no longer fails on Mac OS X.
|
* "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 segfaulted when reading an invalid .gitattributes file. Fixed.
|
||||||
|
|
||||||
* post-receive-email example hook fixed was fixed for
|
* post-receive-email example hook fixed was fixed for
|
||||||
non-fast-forward updates.
|
non-fast-forward updates.
|
||||||
|
|
||||||
|
5
attr.c
5
attr.c
@ -209,8 +209,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
|
|||||||
num_attr = 0;
|
num_attr = 0;
|
||||||
cp = name + namelen;
|
cp = name + namelen;
|
||||||
cp = cp + strspn(cp, blank);
|
cp = cp + strspn(cp, blank);
|
||||||
while (*cp)
|
while (*cp) {
|
||||||
cp = parse_attr(src, lineno, cp, &num_attr, res);
|
cp = parse_attr(src, lineno, cp, &num_attr, res);
|
||||||
|
if (!cp)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
if (pass)
|
if (pass)
|
||||||
break;
|
break;
|
||||||
res = xcalloc(1,
|
res = xcalloc(1,
|
||||||
|
@ -131,7 +131,7 @@ static int append_fetch_head(FILE *fp,
|
|||||||
|
|
||||||
if (get_sha1(head, sha1))
|
if (get_sha1(head, sha1))
|
||||||
return error("Not a valid object name: %s", head);
|
return error("Not a valid object name: %s", head);
|
||||||
commit = lookup_commit_reference(sha1);
|
commit = lookup_commit_reference_gently(sha1, 1);
|
||||||
if (!commit)
|
if (!commit)
|
||||||
not_for_merge = 1;
|
not_for_merge = 1;
|
||||||
|
|
||||||
|
4
daemon.c
4
daemon.c
@ -9,6 +9,10 @@
|
|||||||
#define HOST_NAME_MAX 256
|
#define HOST_NAME_MAX 256
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef NI_MAXSERV
|
||||||
|
#define NI_MAXSERV 32
|
||||||
|
#endif
|
||||||
|
|
||||||
static int log_syslog;
|
static int log_syslog;
|
||||||
static int verbose;
|
static int verbose;
|
||||||
static int reuseaddr;
|
static int reuseaddr;
|
||||||
|
@ -219,6 +219,17 @@ print "Applying\n";
|
|||||||
|
|
||||||
print "Patch applied successfully. Adding new files and directories to CVS\n";
|
print "Patch applied successfully. Adding new files and directories to CVS\n";
|
||||||
my $dirtypatch = 0;
|
my $dirtypatch = 0;
|
||||||
|
|
||||||
|
#
|
||||||
|
# We have to add the directories in order otherwise we will have
|
||||||
|
# problems when we try and add the sub-directory of a directory we
|
||||||
|
# have not added yet.
|
||||||
|
#
|
||||||
|
# Luckily this is easy to deal with by sorting the directories and
|
||||||
|
# dealing with the shortest ones first.
|
||||||
|
#
|
||||||
|
@dirs = sort { length $a <=> length $b} @dirs;
|
||||||
|
|
||||||
foreach my $d (@dirs) {
|
foreach my $d (@dirs) {
|
||||||
if (system(@cvs,'add',$d)) {
|
if (system(@cvs,'add',$d)) {
|
||||||
$dirtypatch = 1;
|
$dirtypatch = 1;
|
||||||
|
@ -110,7 +110,7 @@ show_stash () {
|
|||||||
|
|
||||||
w_commit=$(git rev-parse --verify "$s") &&
|
w_commit=$(git rev-parse --verify "$s") &&
|
||||||
b_commit=$(git rev-parse --verify "$s^") &&
|
b_commit=$(git rev-parse --verify "$s^") &&
|
||||||
git diff $flags $b_commit $w_commit
|
git diff-tree $flags $b_commit $w_commit
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_stash () {
|
apply_stash () {
|
||||||
@ -139,7 +139,7 @@ apply_stash () {
|
|||||||
unstashed_index_tree=
|
unstashed_index_tree=
|
||||||
if test -n "$unstash_index" && test "$b_tree" != "$i_tree"
|
if test -n "$unstash_index" && test "$b_tree" != "$i_tree"
|
||||||
then
|
then
|
||||||
git diff --binary $s^2^..$s^2 | git apply --cached
|
git diff-tree --binary $s^2^..$s^2 | git apply --cached
|
||||||
test $? -ne 0 &&
|
test $? -ne 0 &&
|
||||||
die 'Conflicts in index. Try without --index.'
|
die 'Conflicts in index. Try without --index.'
|
||||||
unstashed_index_tree=$(git-write-tree) ||
|
unstashed_index_tree=$(git-write-tree) ||
|
||||||
@ -162,7 +162,7 @@ apply_stash () {
|
|||||||
git read-tree "$unstashed_index_tree"
|
git read-tree "$unstashed_index_tree"
|
||||||
else
|
else
|
||||||
a="$TMP-added" &&
|
a="$TMP-added" &&
|
||||||
git diff --cached --name-only --diff-filter=A $c_tree >"$a" &&
|
git diff-index --cached --name-only --diff-filter=A $c_tree >"$a" &&
|
||||||
git read-tree --reset $c_tree &&
|
git read-tree --reset $c_tree &&
|
||||||
git update-index --add --stdin <"$a" ||
|
git update-index --add --stdin <"$a" ||
|
||||||
die "Cannot unstage modified files"
|
die "Cannot unstage modified files"
|
||||||
|
@ -371,4 +371,11 @@ test_expect_success 'in-tree .gitattributes (4)' '
|
|||||||
}
|
}
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'invalid .gitattributes (must not crash)' '
|
||||||
|
|
||||||
|
echo "three +crlf" >>.gitattributes &&
|
||||||
|
git diff
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user