зеркало из https://github.com/microsoft/git.git
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'
This commit is contained in:
Коммит
f1a82fe9a3
|
@ -9,13 +9,44 @@ Fixes since v1.5.3.5
|
||||||
* git-svn dcommit used to clobber when sending a series of
|
* git-svn dcommit used to clobber when sending a series of
|
||||||
patches;
|
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
|
* git-grep sometimes refused to work when your index was
|
||||||
unmerged;
|
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.
|
* Quite a lot of documentation clarifications.
|
||||||
|
|
||||||
--
|
--
|
||||||
exec >/var/tmp/1
|
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`
|
echo O=`git describe refs/heads/maint`
|
||||||
git shortlog --no-merges $O..refs/heads/maint
|
git shortlog --no-merges $O..refs/heads/maint
|
||||||
|
|
|
@ -514,11 +514,13 @@ $time = time - scalar $#files;
|
||||||
|
|
||||||
sub unquote_rfc2047 {
|
sub unquote_rfc2047 {
|
||||||
local ($_) = @_;
|
local ($_) = @_;
|
||||||
if (s/=\?utf-8\?q\?(.*)\?=/$1/g) {
|
my $encoding;
|
||||||
|
if (s/=\?([^?]+)\?q\?(.*)\?=/$2/g) {
|
||||||
|
$encoding = $1;
|
||||||
s/_/ /g;
|
s/_/ /g;
|
||||||
s/=([0-9A-F]{2})/chr(hex($1))/eg;
|
s/=([0-9A-F]{2})/chr(hex($1))/eg;
|
||||||
}
|
}
|
||||||
return "$_";
|
return wantarray ? ($_, $encoding) : $_;
|
||||||
}
|
}
|
||||||
|
|
||||||
# use the simplest quoting being able to handle the recipient
|
# 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";
|
open(F,"<",$t) or die "can't open file $t";
|
||||||
|
|
||||||
my $author = undef;
|
my $author = undef;
|
||||||
|
my $author_encoding;
|
||||||
|
my $has_content_type;
|
||||||
|
my $body_encoding;
|
||||||
@cc = @initial_cc;
|
@cc = @initial_cc;
|
||||||
@xh = ();
|
@xh = ();
|
||||||
my $input_format = undef;
|
my $input_format = undef;
|
||||||
|
@ -692,12 +697,20 @@ foreach my $t (@files) {
|
||||||
next if ($suppress_from);
|
next if ($suppress_from);
|
||||||
}
|
}
|
||||||
elsif ($1 eq 'From') {
|
elsif ($1 eq 'From') {
|
||||||
$author = unquote_rfc2047($2);
|
($author, $author_encoding)
|
||||||
|
= unquote_rfc2047($2);
|
||||||
}
|
}
|
||||||
printf("(mbox) Adding cc: %s from line '%s'\n",
|
printf("(mbox) Adding cc: %s from line '%s'\n",
|
||||||
$2, $_) unless $quiet;
|
$2, $_) unless $quiet;
|
||||||
push @cc, $2;
|
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/) {
|
elsif (!/^Date:\s/ && /^[-A-Za-z]+:\s+\S/) {
|
||||||
push @xh, $_;
|
push @xh, $_;
|
||||||
}
|
}
|
||||||
|
@ -756,6 +769,21 @@ foreach my $t (@files) {
|
||||||
|
|
||||||
if (defined $author) {
|
if (defined $author) {
|
||||||
$message = "From: $author\n\n$message";
|
$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();
|
send_message();
|
||||||
|
|
|
@ -48,7 +48,7 @@ EOF
|
||||||
printf "\r\n" > empty_crlf
|
printf "\r\n" > empty_crlf
|
||||||
a_empty_crlf=`git-hash-object -w 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 ..
|
cd ..
|
||||||
|
|
||||||
rm -rf import
|
rm -rf import
|
||||||
|
|
Загрузка…
Ссылка в новой задаче