diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-11-16 21:30:06 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-11-16 21:30:06 -0800 |
commit | f1a82fe9a3de780fb2f1fe054d692294544f01e7 (patch) | |
tree | b4114c8ec6552111b23f59df773bf37357a23861 | |
parent | 41a7aa588f449d3b139480b102f510abc5ef7f85 (diff) | |
parent | 78e694787cb89cd008e237b17cdc7f0fa5a15d22 (diff) | |
download | git-f1a82fe9a3de780fb2f1fe054d692294544f01e7.tar.gz git-f1a82fe9a3de780fb2f1fe054d692294544f01e7.tar.xz |
Merge branch 'maint'
* maint:
Update draft release notes for 1.5.3.6
Fix per-directory exclude handing for "git add"
core.excludesfile clean-up
Fix t9101 test failure caused by Subversion "auto-props"
git-send-email: add charset header if we add encoded 'From'
-rw-r--r-- | Documentation/RelNotes-1.5.3.6.txt | 33 | ||||
-rwxr-xr-x | git-send-email.perl | 34 | ||||
-rwxr-xr-x | t/t9101-git-svn-props.sh | 2 |
3 files changed, 64 insertions, 5 deletions
diff --git a/Documentation/RelNotes-1.5.3.6.txt b/Documentation/RelNotes-1.5.3.6.txt index 06e44f773..c9f948ec0 100644 --- a/Documentation/RelNotes-1.5.3.6.txt +++ b/Documentation/RelNotes-1.5.3.6.txt @@ -9,13 +9,44 @@ Fixes since v1.5.3.5 * git-svn dcommit used to clobber when sending a series of patches; + * git-svn dcommit failed after attempting to rebase when + started with a dirty index; now it stops upfront. + * git-grep sometimes refused to work when your index was unmerged; + * git-hash-object did not honor configuration variables, such as + core.compression. + + * git-index-pack choked on a huge pack on 32-bit machines, even when + large file offsets are supported. + + * atom feeds from git-web said "10" for the month of November. + + * a memory leak in commit walker was plugged. + + * When git-send-email inserted the original author's From: + address in body, it did not mark the message with + Content-type: as needed. + + * git-revert and git-cherry-pick incorrectly refused to start + when the work tree was dirty. + + * git-clean did not honor core.excludesfile configuration. + + * git-add mishandled ".gitignore" files when applying them to + subdirectories. + + * While importing a too branchy history, git-fastimport did not + honor delta depth limit properly. + + * Support for zlib implementations that lack ZLIB_VERNUM and definition + of deflateBound() has been added. + * Quite a lot of documentation clarifications. -- exec >/var/tmp/1 -O=v1.5.3.5-32-gcb6c162 +O=v1.5.3.5-57-gb574c8d echo O=`git describe refs/heads/maint` git shortlog --no-merges $O..refs/heads/maint diff --git a/git-send-email.perl b/git-send-email.perl index f9bd2e5a9..fd0a4ad0c 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -514,11 +514,13 @@ $time = time - scalar $#files; sub unquote_rfc2047 { local ($_) = @_; - if (s/=\?utf-8\?q\?(.*)\?=/$1/g) { + my $encoding; + if (s/=\?([^?]+)\?q\?(.*)\?=/$2/g) { + $encoding = $1; s/_/ /g; s/=([0-9A-F]{2})/chr(hex($1))/eg; } - return "$_"; + return wantarray ? ($_, $encoding) : $_; } # use the simplest quoting being able to handle the recipient @@ -667,6 +669,9 @@ foreach my $t (@files) { open(F,"<",$t) or die "can't open file $t"; my $author = undef; + my $author_encoding; + my $has_content_type; + my $body_encoding; @cc = @initial_cc; @xh = (); my $input_format = undef; @@ -692,12 +697,20 @@ foreach my $t (@files) { next if ($suppress_from); } elsif ($1 eq 'From') { - $author = unquote_rfc2047($2); + ($author, $author_encoding) + = unquote_rfc2047($2); } printf("(mbox) Adding cc: %s from line '%s'\n", $2, $_) unless $quiet; push @cc, $2; } + elsif (/^Content-type:/i) { + $has_content_type = 1; + if (/charset="?[^ "]+/) { + $body_encoding = $1; + } + push @xh, $_; + } elsif (!/^Date:\s/ && /^[-A-Za-z]+:\s+\S/) { push @xh, $_; } @@ -756,6 +769,21 @@ foreach my $t (@files) { if (defined $author) { $message = "From: $author\n\n$message"; + if (defined $author_encoding) { + if ($has_content_type) { + if ($body_encoding eq $author_encoding) { + # ok, we already have the right encoding + } + else { + # uh oh, we should re-encode + } + } + else { + push @xh, + 'MIME-Version: 1.0', + "Content-Type: text/plain; charset=$author_encoding"; + } + } } send_message(); diff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh index 3c83127a0..d7a704754 100755 --- a/t/t9101-git-svn-props.sh +++ b/t/t9101-git-svn-props.sh @@ -48,7 +48,7 @@ EOF printf "\r\n" > empty_crlf a_empty_crlf=`git-hash-object -w empty_crlf` - svn import -m 'import for git-svn' . "$svnrepo" >/dev/null + svn import --no-auto-props -m 'import for git-svn' . "$svnrepo" >/dev/null cd .. rm -rf import |