Skip to content

Commit

Permalink
Merge branch 'maint'
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
Shawn O. Pearce committed Oct 19, 2007
2 parents d7e56db + bbaf63f commit f5bf6fe
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 8 deletions.
16 changes: 13 additions & 3 deletions Documentation/RelNotes-1.5.3.5.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ Fixes since v1.5.3.4

* "git-add -i" did not handle single line hunks correctly.

* "git-rebase -i" failed if external diff drivers were used for one
or more files in a commit. It now avoids calling the external
diff drivers.
* "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.
Expand All @@ -38,6 +38,16 @@ Fixes since v1.5.3.4

* "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
non-fast-forward updates.

Expand Down
5 changes: 4 additions & 1 deletion attr.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,11 @@ static struct match_attr *parse_attr_line(const char *line, const char *src,
num_attr = 0;
cp = name + namelen;
cp = cp + strspn(cp, blank);
while (*cp)
while (*cp) {
cp = parse_attr(src, lineno, cp, &num_attr, res);
if (!cp)
return NULL;
}
if (pass)
break;
res = xcalloc(1,
Expand Down
2 changes: 1 addition & 1 deletion builtin-fetch--tool.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ static int append_fetch_head(FILE *fp,

if (get_sha1(head, sha1))
return error("Not a valid object name: %s", head);
commit = lookup_commit_reference(sha1);
commit = lookup_commit_reference_gently(sha1, 1);
if (!commit)
not_for_merge = 1;

Expand Down
4 changes: 4 additions & 0 deletions daemon.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
#define HOST_NAME_MAX 256
#endif

#ifndef NI_MAXSERV
#define NI_MAXSERV 32
#endif

static int log_syslog;
static int verbose;
static int reuseaddr;
Expand Down
11 changes: 11 additions & 0 deletions git-cvsexportcommit.perl
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,17 @@

print "Patch applied successfully. Adding new files and directories to CVS\n";
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) {
if (system(@cvs,'add',$d)) {
$dirtypatch = 1;
Expand Down
6 changes: 3 additions & 3 deletions git-stash.sh
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ show_stash () {

w_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 () {
Expand Down Expand Up @@ -139,7 +139,7 @@ apply_stash () {
unstashed_index_tree=
if test -n "$unstash_index" && test "$b_tree" != "$i_tree"
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 &&
die 'Conflicts in index. Try without --index.'
unstashed_index_tree=$(git-write-tree) ||
Expand All @@ -162,7 +162,7 @@ apply_stash () {
git read-tree "$unstashed_index_tree"
else
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 update-index --add --stdin <"$a" ||
die "Cannot unstage modified files"
Expand Down
7 changes: 7 additions & 0 deletions t/t0020-crlf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit f5bf6fe

Please sign in to comment.