зеркало из https://github.com/microsoft/git.git
Merge branch 'maint' to sync with GIT 1.6.0.6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Коммит
efe05b019c
|
@ -0,0 +1,10 @@
|
|||
GIT v1.5.4.7 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.5.4.7
|
||||
-------------------
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
|
@ -0,0 +1,10 @@
|
|||
GIT v1.5.5.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.5.5.5
|
||||
-------------------
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
|
@ -0,0 +1,10 @@
|
|||
GIT v1.5.6.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.5.6.5
|
||||
-------------------
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
|
@ -0,0 +1,33 @@
|
|||
GIT v1.6.0.6 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since 1.6.0.5
|
||||
-------------------
|
||||
|
||||
* "git fsck" had a deep recursion that wasted stack space.
|
||||
|
||||
* "git fast-export" and "git fast-import" choked on an old style
|
||||
annotated tag that lack the tagger information.
|
||||
|
||||
* "git mergetool -- file" did not correctly skip "--" marker that
|
||||
signals the end of options list.
|
||||
|
||||
* "git show $tag" segfaulted when an annotated $tag pointed at a
|
||||
nonexistent object.
|
||||
|
||||
* "git show 2>error" when the standard output is automatically redirected
|
||||
to the pager redirected the standard error to the pager as well; there
|
||||
was no need to.
|
||||
|
||||
* "git send-email" did not correctly handle list of addresses when
|
||||
they had quoted comma (e.g. "Lastname, Givenname" <mail@addre.ss>).
|
||||
|
||||
* Logic to discover branch ancestry in "git svn" was unreliable when
|
||||
the process to fetch history was interrupted.
|
||||
|
||||
* Removed support for an obsolete gitweb request URI, whose
|
||||
implementation ran "git diff" Porcelain, instead of using plumbing,
|
||||
which would have run an external diff command specified in the
|
||||
repository configuration as the gitweb user.
|
||||
|
||||
Also contains numerous documentation typofixes.
|
|
@ -222,6 +222,9 @@ D-C-O. Indeed you are encouraged to do so. Do not forget to
|
|||
place an in-body "From: " line at the beginning to properly attribute
|
||||
the change to its true author (see (2) above).
|
||||
|
||||
Also notice that a real name is used in the Signed-off-by: line. Please
|
||||
don't hide your real name.
|
||||
|
||||
Some people also put extra tags at the end.
|
||||
|
||||
"Acked-by:" says that the patch was reviewed by the person who
|
||||
|
|
|
@ -58,7 +58,7 @@ Possible status letters are:
|
|||
be committed)
|
||||
- X: "unknown" change type (most probably a bug, please report it)
|
||||
|
||||
Status letters C and M are always followed by a score (denoting the
|
||||
Status letters C and R are always followed by a score (denoting the
|
||||
percentage of similarity between the source and target of the move or
|
||||
copy), and are the only ones to be so.
|
||||
|
||||
|
|
|
@ -143,15 +143,15 @@ different from it.
|
|||
|
||||
A `-` character in the column N means that the line appears in
|
||||
fileN but it does not appear in the result. A `+` character
|
||||
in the column N means that the line appears in the last file,
|
||||
in the column N means that the line appears in the result,
|
||||
and fileN does not have that line (in other words, the line was
|
||||
added, from the point of view of that parent).
|
||||
|
||||
In the above example output, the function signature was changed
|
||||
from both files (hence two `-` removals from both file1 and
|
||||
file2, plus `++` to mean one line that was added does not appear
|
||||
in either file1 nor file2). Also two other lines are the same
|
||||
from file1 but do not appear in file2 (hence prefixed with ` +`).
|
||||
in either file1 nor file2). Also eight other lines are the same
|
||||
from file1 but do not appear in file2 (hence prefixed with `{plus}`).
|
||||
|
||||
When shown by `git diff-tree -c`, it compares the parents of a
|
||||
merge commit with the merge result (i.e. file1..fileN are the
|
||||
|
|
|
@ -166,7 +166,7 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
|
|||
'git-commit' if any paths are given on the command line,
|
||||
in which case this option can be omitted.
|
||||
If this option is specified together with '--amend', then
|
||||
no paths need be specified, which can be used to amend
|
||||
no paths need to be specified, which can be used to amend
|
||||
the last commit without committing changes that have
|
||||
already been staged.
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ include::diff-options.txt[]
|
|||
show tree entry itself as well as subtrees. Implies -r.
|
||||
|
||||
--root::
|
||||
When '--root' is specified the initial commit will be showed as a big
|
||||
When '--root' is specified the initial commit will be shown as a big
|
||||
creation event. This is equivalent to a diff against the NULL tree.
|
||||
|
||||
--stdin::
|
||||
|
|
|
@ -65,6 +65,12 @@ If the backend uses a similar \--import-marks file, this allows for
|
|||
incremental bidirectional exporting of the repository by keeping the
|
||||
marks the same across runs.
|
||||
|
||||
--fake-missing-tagger::
|
||||
Some old repositories have tags without a tagger. The
|
||||
fast-import protocol was pretty strict about that, and did not
|
||||
allow that. So fake a tagger to be able to fast-import the
|
||||
output.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
|
|
@ -13,7 +13,7 @@ SYNOPSIS
|
|||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Reading a single e-mail message from the standard input, and
|
||||
Reads a single e-mail message from the standard input, and
|
||||
writes the commit log message in <msg> file, and the patches in
|
||||
<patch> file. The author name, e-mail and e-mail subject are
|
||||
written out to the standard output to be used by 'git-am'
|
||||
|
|
|
@ -86,7 +86,7 @@ post-receive Hook
|
|||
-----------------
|
||||
After all refs were updated (or attempted to be updated), if any
|
||||
ref update was successful, and if $GIT_DIR/hooks/post-receive
|
||||
file exists and is executable, it will be invoke once with no
|
||||
file exists and is executable, it will be invoked once with no
|
||||
parameters. The standard input of the hook will be one line
|
||||
for each successfully updated ref:
|
||||
|
||||
|
@ -133,7 +133,7 @@ post-update Hook
|
|||
----------------
|
||||
After all other processing, if at least one ref was updated, and
|
||||
if $GIT_DIR/hooks/post-update file exists and is executable, then
|
||||
post-update will called with the list of refs that have been updated.
|
||||
post-update will be called with the list of refs that have been updated.
|
||||
This can be used to implement any repository wide cleanup tasks.
|
||||
|
||||
The exit code from this hook invocation is ignored; the only thing
|
||||
|
|
|
@ -28,7 +28,7 @@ updated. This command is to manage the information recorded in it.
|
|||
|
||||
The subcommand "expire" is used to prune older reflog entries.
|
||||
Entries older than `expire` time, or entries older than
|
||||
`expire-unreachable` time and are not reachable from the current
|
||||
`expire-unreachable` time and not reachable from the current
|
||||
tip, are removed from the reflog. This is typically not used
|
||||
directly by the end users -- instead, see linkgit:git-gc[1].
|
||||
|
||||
|
@ -71,7 +71,7 @@ them.
|
|||
which in turn defaults to 90 days.
|
||||
|
||||
--expire-unreachable=<time>::
|
||||
Entries older than this time and are not reachable from
|
||||
Entries older than this time and not reachable from
|
||||
the current tip of the branch are pruned. Without the
|
||||
option it is taken from configuration
|
||||
`gc.reflogExpireUnreachable`, which in turn defaults to
|
||||
|
|
|
@ -30,7 +30,7 @@ OPTIONS
|
|||
-------
|
||||
<rev>::
|
||||
Arbitrary extended SHA1 expression (see linkgit:git-rev-parse[1])
|
||||
that typically names a branch HEAD or a tag.
|
||||
that typically names a branch head or a tag.
|
||||
|
||||
<glob>::
|
||||
A glob pattern that matches branch or tag names under
|
||||
|
|
|
@ -87,7 +87,7 @@ use by subsequent users cloning the superproject. If the URL is
|
|||
given relative to the superproject's repository, the presumption
|
||||
is the superproject and submodule repositories will be kept
|
||||
together in the same relative location, and only the
|
||||
superproject's URL need be provided: git-submodule will correctly
|
||||
superproject's URL needs to be provided: git-submodule will correctly
|
||||
locate the submodule using the relative URL in .gitmodules.
|
||||
|
||||
status::
|
||||
|
|
|
@ -55,7 +55,7 @@ OPTIONS
|
|||
default behavior is to error out. This option makes
|
||||
'git-update-index' continue anyway.
|
||||
|
||||
--ignore-submodules:
|
||||
--ignore-submodules::
|
||||
Do not try to update submodules. This option is only respected
|
||||
when passed before --refresh.
|
||||
|
||||
|
@ -78,9 +78,9 @@ OPTIONS
|
|||
|
||||
--assume-unchanged::
|
||||
--no-assume-unchanged::
|
||||
When these flags are specified, the object name recorded
|
||||
When these flags are specified, the object names recorded
|
||||
for the paths are not updated. Instead, these options
|
||||
sets and unsets the "assume unchanged" bit for the
|
||||
set and unset the "assume unchanged" bit for the
|
||||
paths. When the "assume unchanged" bit is on, git stops
|
||||
checking the working tree files for possible
|
||||
modifications, so you need to manually unset the bit to
|
||||
|
@ -122,7 +122,7 @@ you will need to handle the situation manually.
|
|||
'git-update-index' refuses an attempt to add `path/file`.
|
||||
Similarly if a file `path/file` exists, a file `path`
|
||||
cannot be added. With --replace flag, existing entries
|
||||
that conflicts with the entry being added are
|
||||
that conflict with the entry being added are
|
||||
automatically removed with warning messages.
|
||||
|
||||
--stdin::
|
||||
|
|
|
@ -43,9 +43,10 @@ unreleased) version of git, that is available from 'master'
|
|||
branch of the `git.git` repository.
|
||||
Documentation for older releases are available here:
|
||||
|
||||
* link:v1.6.0.5/git.html[documentation for release 1.6.0.5]
|
||||
* link:v1.6.0.6/git.html[documentation for release 1.6.0.6]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.6.0.6.txt[1.6.0.6],
|
||||
link:RelNotes-1.6.0.5.txt[1.6.0.5],
|
||||
link:RelNotes-1.6.0.4.txt[1.6.0.4],
|
||||
link:RelNotes-1.6.0.3.txt[1.6.0.3],
|
||||
|
@ -53,9 +54,10 @@ Documentation for older releases are available here:
|
|||
link:RelNotes-1.6.0.1.txt[1.6.0.1],
|
||||
link:RelNotes-1.6.0.txt[1.6.0].
|
||||
|
||||
* link:v1.5.6.5/git.html[documentation for release 1.5.6.5]
|
||||
* link:v1.5.6.6/git.html[documentation for release 1.5.6.6]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.5.6.6.txt[1.5.6.6],
|
||||
link:RelNotes-1.5.6.5.txt[1.5.6.5],
|
||||
link:RelNotes-1.5.6.4.txt[1.5.6.4],
|
||||
link:RelNotes-1.5.6.3.txt[1.5.6.3],
|
||||
|
@ -63,18 +65,22 @@ Documentation for older releases are available here:
|
|||
link:RelNotes-1.5.6.1.txt[1.5.6.1],
|
||||
link:RelNotes-1.5.6.txt[1.5.6].
|
||||
|
||||
* link:v1.5.5.4/git.html[documentation for release 1.5.5.4]
|
||||
* link:v1.5.5.6/git.html[documentation for release 1.5.5.6]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.5.5.6.txt[1.5.5.6],
|
||||
link:RelNotes-1.5.5.5.txt[1.5.5.5],
|
||||
link:RelNotes-1.5.5.4.txt[1.5.5.4],
|
||||
link:RelNotes-1.5.5.3.txt[1.5.5.3],
|
||||
link:RelNotes-1.5.5.2.txt[1.5.5.2],
|
||||
link:RelNotes-1.5.5.1.txt[1.5.5.1],
|
||||
link:RelNotes-1.5.5.txt[1.5.5].
|
||||
|
||||
* link:v1.5.4.5/git.html[documentation for release 1.5.4.5]
|
||||
* link:v1.5.4.7/git.html[documentation for release 1.5.4.7]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.5.4.7.txt[1.5.4.7],
|
||||
link:RelNotes-1.5.4.6.txt[1.5.4.6],
|
||||
link:RelNotes-1.5.4.5.txt[1.5.4.5],
|
||||
link:RelNotes-1.5.4.4.txt[1.5.4.4],
|
||||
link:RelNotes-1.5.4.3.txt[1.5.4.3],
|
||||
|
|
|
@ -999,8 +999,8 @@ Fast forward (no commit created; -m option ignored)
|
|||
2 files changed, 2 insertions(+), 0 deletions(-)
|
||||
----------------
|
||||
|
||||
Because your branch did not contain anything more than what are
|
||||
already merged into the `master` branch, the merge operation did
|
||||
Because your branch did not contain anything more than what had
|
||||
already been merged into the `master` branch, the merge operation did
|
||||
not actually do a merge. Instead, it just updated the top of
|
||||
the tree of your branch to that of the `master` branch. This is
|
||||
often called 'fast forward' merge.
|
||||
|
@ -1352,7 +1352,7 @@ $ GIT_DIR=my-git.git git init
|
|||
------------
|
||||
|
||||
Make sure this directory is available for others you want your
|
||||
changes to be pulled by via the transport of your choice. Also
|
||||
changes to be pulled via the transport of your choice. Also
|
||||
you need to make sure that you have the 'git-receive-pack'
|
||||
program on the `$PATH`.
|
||||
|
||||
|
@ -1511,7 +1511,7 @@ You can repack this private repository whenever you feel like.
|
|||
6. Push your changes to the public repository, and announce it
|
||||
to the public.
|
||||
|
||||
7. Every once in a while, "git-repack" the public repository.
|
||||
7. Every once in a while, 'git-repack' the public repository.
|
||||
Go back to step 5. and continue working.
|
||||
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ git repository.
|
|||
|
||||
OPTIONS
|
||||
-------
|
||||
To control which revisions to shown, the command takes options applicable to
|
||||
To control which revisions to show, the command takes options applicable to
|
||||
the 'git-rev-list' command (see linkgit:git-rev-list[1]).
|
||||
This manual page describes only the most
|
||||
frequently used options.
|
||||
|
@ -80,7 +80,7 @@ Examples
|
|||
--------
|
||||
gitk v2.6.12.. include/scsi drivers/scsi::
|
||||
|
||||
Show as the changes since version 'v2.6.12' that changed any
|
||||
Show the changes since version 'v2.6.12' that changed any
|
||||
file in the include/scsi or drivers/scsi subdirectories
|
||||
|
||||
gitk --since="2 weeks ago" \-- gitk::
|
||||
|
|
|
@ -7,11 +7,11 @@ At the core level, git is character encoding agnostic.
|
|||
to be what lstat(2) and creat(2) accepts. There is no such
|
||||
thing as pathname encoding translation.
|
||||
|
||||
- The contents of the blob objects are uninterpreted sequence
|
||||
- The contents of the blob objects are uninterpreted sequences
|
||||
of bytes. There is no encoding translation at the core
|
||||
level.
|
||||
|
||||
- The commit log messages are uninterpreted sequence of non-NUL
|
||||
- The commit log messages are uninterpreted sequences of non-NUL
|
||||
bytes.
|
||||
|
||||
Although we encourage that the commit log messages are encoded
|
||||
|
|
|
@ -24,6 +24,7 @@ static const char *fast_export_usage[] = {
|
|||
|
||||
static int progress;
|
||||
static enum { VERBATIM, WARN, STRIP, ABORT } signed_tag_mode = ABORT;
|
||||
static int fake_missing_tagger;
|
||||
|
||||
static int parse_opt_signed_tag_mode(const struct option *opt,
|
||||
const char *arg, int unset)
|
||||
|
@ -297,10 +298,17 @@ static void handle_tag(const char *name, struct tag *tag)
|
|||
message_size = strlen(message);
|
||||
}
|
||||
tagger = memmem(buf, message ? message - buf : size, "\ntagger ", 8);
|
||||
if (!tagger)
|
||||
die ("No tagger for tag %s", sha1_to_hex(tag->object.sha1));
|
||||
tagger++;
|
||||
tagger_end = strchrnul(tagger, '\n');
|
||||
if (!tagger) {
|
||||
if (fake_missing_tagger)
|
||||
tagger = "tagger Unspecified Tagger "
|
||||
"<unspecified-tagger> 0 +0000";
|
||||
else
|
||||
tagger = "";
|
||||
tagger_end = tagger + strlen(tagger);
|
||||
} else {
|
||||
tagger++;
|
||||
tagger_end = strchrnul(tagger, '\n');
|
||||
}
|
||||
|
||||
/* handle signed tags */
|
||||
if (message) {
|
||||
|
@ -326,9 +334,10 @@ static void handle_tag(const char *name, struct tag *tag)
|
|||
|
||||
if (!prefixcmp(name, "refs/tags/"))
|
||||
name += 10;
|
||||
printf("tag %s\nfrom :%d\n%.*s\ndata %d\n%.*s\n",
|
||||
printf("tag %s\nfrom :%d\n%.*s%sdata %d\n%.*s\n",
|
||||
name, get_object_mark(tag->tagged),
|
||||
(int)(tagger_end - tagger), tagger,
|
||||
tagger == tagger_end ? "" : "\n",
|
||||
(int)message_size, (int)message_size, message ? message : "");
|
||||
}
|
||||
|
||||
|
@ -483,6 +492,8 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix)
|
|||
"Dump marks to this file"),
|
||||
OPT_STRING(0, "import-marks", &import_filename, "FILE",
|
||||
"Import marks from this file"),
|
||||
OPT_BOOLEAN(0, "fake-missing-tagger", &fake_missing_tagger,
|
||||
"Fake a tagger when tags lack one"),
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ Format of STDIN stream:
|
|||
|
||||
new_tag ::= 'tag' sp tag_str lf
|
||||
'from' sp (ref_str | hexsha1 | sha1exp_str | idnum) lf
|
||||
'tagger' sp name '<' email '>' when lf
|
||||
('tagger' sp name '<' email '>' when lf)?
|
||||
tag_msg;
|
||||
tag_msg ::= data;
|
||||
|
||||
|
@ -2265,23 +2265,27 @@ static void parse_new_tag(void)
|
|||
read_next_command();
|
||||
|
||||
/* tagger ... */
|
||||
if (prefixcmp(command_buf.buf, "tagger "))
|
||||
die("Expected tagger command, got %s", command_buf.buf);
|
||||
tagger = parse_ident(command_buf.buf + 7);
|
||||
if (!prefixcmp(command_buf.buf, "tagger ")) {
|
||||
tagger = parse_ident(command_buf.buf + 7);
|
||||
read_next_command();
|
||||
} else
|
||||
tagger = NULL;
|
||||
|
||||
/* tag payload/message */
|
||||
read_next_command();
|
||||
parse_data(&msg);
|
||||
|
||||
/* build the tag object */
|
||||
strbuf_reset(&new_data);
|
||||
|
||||
strbuf_addf(&new_data,
|
||||
"object %s\n"
|
||||
"type %s\n"
|
||||
"tag %s\n"
|
||||
"tagger %s\n"
|
||||
"\n",
|
||||
sha1_to_hex(sha1), commit_type, t->name, tagger);
|
||||
"object %s\n"
|
||||
"type %s\n"
|
||||
"tag %s\n",
|
||||
sha1_to_hex(sha1), commit_type, t->name);
|
||||
if (tagger)
|
||||
strbuf_addf(&new_data,
|
||||
"tagger %s\n", tagger);
|
||||
strbuf_addch(&new_data, '\n');
|
||||
strbuf_addbuf(&new_data, &msg);
|
||||
free(tagger);
|
||||
|
||||
|
|
|
@ -296,6 +296,7 @@ do
|
|||
esac
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*)
|
||||
|
|
|
@ -20,6 +20,7 @@ use strict;
|
|||
use warnings;
|
||||
use Term::ReadLine;
|
||||
use Getopt::Long;
|
||||
use Text::ParseWords;
|
||||
use Data::Dumper;
|
||||
use Term::ANSIColor;
|
||||
use File::Temp qw/ tempdir /;
|
||||
|
@ -359,6 +360,10 @@ foreach my $entry (@bcclist) {
|
|||
die "Comma in --bcclist entry: $entry'\n" unless $entry !~ m/,/;
|
||||
}
|
||||
|
||||
sub split_addrs {
|
||||
return parse_line('\s*,\s*', 1, @_);
|
||||
}
|
||||
|
||||
my %aliases;
|
||||
my %parse_alias = (
|
||||
# multiline formats can be supported in the future
|
||||
|
@ -367,7 +372,7 @@ my %parse_alias = (
|
|||
my ($alias, $addr) = ($1, $2);
|
||||
$addr =~ s/#.*$//; # mutt allows # comments
|
||||
# commas delimit multiple addresses
|
||||
$aliases{$alias} = [ split(/\s*,\s*/, $addr) ];
|
||||
$aliases{$alias} = [ split_addrs($addr) ];
|
||||
}}},
|
||||
mailrc => sub { my $fh = shift; while (<$fh>) {
|
||||
if (/^alias\s+(\S+)\s+(.*)$/) {
|
||||
|
@ -379,7 +384,7 @@ my %parse_alias = (
|
|||
chomp $x;
|
||||
$x .= $1 while(defined($_ = <$fh>) && /^ +(.*)$/);
|
||||
$x =~ /^(\S+)$f\t\(?([^\t]+?)\)?(:?$f){0,2}$/ or next;
|
||||
$aliases{$1} = [ split(/\s*,\s*/, $2) ];
|
||||
$aliases{$1} = [ split_addrs($2) ];
|
||||
}},
|
||||
gnus => sub { my $fh = shift; while (<$fh>) {
|
||||
if (/\(define-mail-alias\s+"(\S+?)"\s+"(\S+?)"\)/) {
|
||||
|
@ -588,7 +593,7 @@ if (!@to) {
|
|||
}
|
||||
|
||||
my $to = $_;
|
||||
push @to, split /,\s*/, $to;
|
||||
push @to, split_addrs($to);
|
||||
$prompting++;
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,12 @@ M 644 :2 file2
|
|||
M 644 :3 file3
|
||||
M 755 :4 file4
|
||||
|
||||
tag series-A
|
||||
from :5
|
||||
data <<EOF
|
||||
An annotated tag without a tagger
|
||||
EOF
|
||||
|
||||
INPUT_END
|
||||
test_expect_success \
|
||||
'A: create pack from stdin' \
|
||||
|
@ -101,6 +107,18 @@ test_expect_success \
|
|||
'A: verify file4' \
|
||||
'git cat-file blob master:file4 >actual && test_cmp expect actual'
|
||||
|
||||
cat >expect <<EOF
|
||||
object $(git rev-parse refs/heads/master)
|
||||
type commit
|
||||
tag series-A
|
||||
|
||||
An annotated tag without a tagger
|
||||
EOF
|
||||
test_expect_success 'A: verify tag/series-A' '
|
||||
git cat-file tag tags/series-A >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
cat >expect <<EOF
|
||||
:2 `git rev-parse --verify master:file2`
|
||||
:3 `git rev-parse --verify master:file3`
|
||||
|
|
|
@ -239,4 +239,24 @@ test_expect_success 'fast-export | fast-import when master is tagged' '
|
|||
|
||||
'
|
||||
|
||||
cat > tag-content << EOF
|
||||
object $(git rev-parse HEAD)
|
||||
type commit
|
||||
tag rosten
|
||||
EOF
|
||||
|
||||
test_expect_success 'cope with tagger-less tags' '
|
||||
|
||||
TAG=$(git hash-object -t tag -w tag-content) &&
|
||||
git update-ref refs/tags/sonnenschein $TAG &&
|
||||
git fast-export -C -C --signed-tags=strip --all > output &&
|
||||
test $(grep -c "^tag " output) = 4 &&
|
||||
! grep "Unspecified Tagger" output &&
|
||||
git fast-export -C -C --signed-tags=strip --all \
|
||||
--fake-missing-tagger > output &&
|
||||
test $(grep -c "^tag " output) = 4 &&
|
||||
grep "Unspecified Tagger" output
|
||||
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче