Browse Source

Merge branch 'maint'

* maint:
  git-fetch: fix status output when not storing tracking ref
  core-tutorial.txt: Fix showing the current behaviour.
  git-archive: ignore prefix when checking file attribute
  Fix documentation syntax of optional arguments in short options.
maint
Junio C Hamano 17 years ago
parent
commit
71349732c5
  1. 12
      Documentation/core-tutorial.txt
  2. 4
      Documentation/git-tag.txt
  3. 6
      archive-tar.c
  4. 6
      archive-zip.c
  5. 28
      builtin-fetch.c
  6. 2
      builtin-tag.c
  7. 2
      parse-options.c
  8. 15
      t/t5000-tar-tree.sh

12
Documentation/core-tutorial.txt

@ -535,18 +535,18 @@ with the associated patches use the more complex (and much more @@ -535,18 +535,18 @@ with the associated patches use the more complex (and much more
powerful)

----------------
$ git-whatchanged -p --root
$ git-whatchanged -p
----------------

and you will see exactly what has changed in the repository over its
short history.

[NOTE]
The `\--root` flag is a flag to `git-diff-tree` to tell it to
show the initial aka 'root' commit too. Normally you'd probably not
want to see the initial import diff, but since the tutorial project
was started from scratch and is so small, we use it to make the result
a bit more interesting.
When using the above two commands, the initial commit will be shown.
If this is a problem because it is huge, you can hide it by setting
the log.showroot configuration variable to false. Having this, you
can still show it for each command just adding the `\--root` option,
which is a flag for `git-diff-tree` accepted by both commands.

With that, you should now be having some inkling of what git does, and
can explore on your own.

4
Documentation/git-tag.txt

@ -11,7 +11,7 @@ SYNOPSIS @@ -11,7 +11,7 @@ SYNOPSIS
[verse]
'git-tag' [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] <name> [<head>]
'git-tag' -d <name>...
'git-tag' [-n [<num>]] -l [<pattern>]
'git-tag' [-n[<num>]] -l [<pattern>]
'git-tag' -v <name>...

DESCRIPTION
@ -57,7 +57,7 @@ OPTIONS @@ -57,7 +57,7 @@ OPTIONS
-v::
Verify the gpg signature of the given tag names.

-n <num>::
-n<num>::
<num> specifies how many lines from the annotation, if any,
are printed when using -l.
The default is not to print any annotation lines.

6
archive-tar.c

@ -17,6 +17,7 @@ static time_t archive_time; @@ -17,6 +17,7 @@ static time_t archive_time;
static int tar_umask = 002;
static int verbose;
static const struct commit *commit;
static size_t base_len;

/* writes out the whole block, but only if it is full */
static void write_if_needed(void)
@ -251,8 +252,8 @@ static int write_tar_entry(const unsigned char *sha1, @@ -251,8 +252,8 @@ static int write_tar_entry(const unsigned char *sha1,
buffer = NULL;
size = 0;
} else {
buffer = sha1_file_to_archive(path.buf, sha1, mode, &type,
&size, commit);
buffer = sha1_file_to_archive(path.buf + base_len, sha1, mode,
&type, &size, commit);
if (!buffer)
die("cannot read %s", sha1_to_hex(sha1));
}
@ -272,6 +273,7 @@ int write_tar_archive(struct archiver_args *args) @@ -272,6 +273,7 @@ int write_tar_archive(struct archiver_args *args)
archive_time = args->time;
verbose = args->verbose;
commit = args->commit;
base_len = args->base ? strlen(args->base) : 0;

if (args->commit_sha1)
write_global_extended_header(args->commit_sha1);

6
archive-zip.c

@ -13,6 +13,7 @@ static int verbose; @@ -13,6 +13,7 @@ static int verbose;
static int zip_date;
static int zip_time;
static const struct commit *commit;
static size_t base_len;

static unsigned char *zip_dir;
static unsigned int zip_dir_size;
@ -197,8 +198,8 @@ static int write_zip_entry(const unsigned char *sha1, @@ -197,8 +198,8 @@ static int write_zip_entry(const unsigned char *sha1,
if (S_ISREG(mode) && zlib_compression_level != 0)
method = 8;
result = 0;
buffer = sha1_file_to_archive(path, sha1, mode, &type, &size,
commit);
buffer = sha1_file_to_archive(path + base_len, sha1, mode,
&type, &size, commit);
if (!buffer)
die("cannot read %s", sha1_to_hex(sha1));
crc = crc32(crc, buffer, size);
@ -321,6 +322,7 @@ int write_zip_archive(struct archiver_args *args) @@ -321,6 +322,7 @@ int write_zip_archive(struct archiver_args *args)
zip_dir_size = ZIP_DIRECTORY_MIN_SIZE;
verbose = args->verbose;
commit = args->commit;
base_len = args->base ? strlen(args->base) : 0;

if (args->base && plen > 0 && args->base[plen - 1] == '/') {
char *base = xstrdup(args->base);

28
builtin-fetch.c

@ -215,13 +215,6 @@ static int update_local_ref(struct ref *ref, @@ -215,13 +215,6 @@ static int update_local_ref(struct ref *ref,
if (type < 0)
die("object %s not found", sha1_to_hex(ref->new_sha1));

if (!*ref->name) {
/* Not storing */
if (verbose)
sprintf(display, "* branch %s -> FETCH_HEAD", remote);
return 0;
}

if (!hashcmp(ref->old_sha1, ref->new_sha1)) {
if (verbose)
sprintf(display, "= %-*s %-*s -> %s", SUMMARY_WIDTH,
@ -365,16 +358,21 @@ static int store_updated_refs(const char *url, struct ref *ref_map) @@ -365,16 +358,21 @@ static int store_updated_refs(const char *url, struct ref *ref_map)
rm->merge ? "" : "not-for-merge",
note);

if (ref) {
if (ref)
update_local_ref(ref, what, verbose, note);
if (*note) {
if (!shown_url) {
fprintf(stderr, "From %.*s\n",
url_len, url);
shown_url = 1;
}
fprintf(stderr, " %s\n", note);
else if (verbose)
sprintf(note, "* %-*s %-*s -> FETCH_HEAD",
SUMMARY_WIDTH, *kind ? kind : "branch",
REFCOL_WIDTH, *what ? what : "HEAD");
else
*note = '\0';
if (*note) {
if (!shown_url) {
fprintf(stderr, "From %.*s\n",
url_len, url);
shown_url = 1;
}
fprintf(stderr, " %s\n", note);
}
}
fclose(fp);

2
builtin-tag.c

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
static const char * const git_tag_usage[] = {
"git-tag [-a|-s|-u <key-id>] [-f] [-m <msg>|-F <file>] <tagname> [<head>]",
"git-tag -d <tagname>...",
"git-tag -l [-n [<num>]] [<pattern>]",
"git-tag -l [-n[<num>]] [<pattern>]",
"git-tag -v <tagname>...",
NULL
};

2
parse-options.c

@ -344,7 +344,7 @@ void usage_with_options_internal(const char * const *usagestr, @@ -344,7 +344,7 @@ void usage_with_options_internal(const char * const *usagestr,
break;
case OPTION_INTEGER:
if (opts->flags & PARSE_OPT_OPTARG)
pos += fprintf(stderr, " [<n>]");
pos += fprintf(stderr, "[<n>]");
else
pos += fprintf(stderr, " <n>");
break;

15
t/t5000-tar-tree.sh

@ -109,9 +109,10 @@ test_expect_success \ @@ -109,9 +109,10 @@ test_expect_success \
'diff -r a c/prefix/a'

test_expect_success \
'create an archive with a substfiles' \
'create archives with substfiles' \
'echo "substfile?" export-subst >a/.gitattributes &&
git archive HEAD >f.tar &&
git archive --prefix=prefix/ HEAD >g.tar &&
rm a/.gitattributes'

test_expect_success \
@ -126,6 +127,18 @@ test_expect_success \ @@ -126,6 +127,18 @@ test_expect_success \
diff a/substfile2 f/a/substfile2
'

test_expect_success \
'extract substfiles from archive with prefix' \
'(mkdir g && cd g && $TAR xf -) <g.tar'

test_expect_success \
'validate substfile contents from archive with prefix' \
'git log --max-count=1 "--pretty=format:A${SUBSTFORMAT}O" HEAD \
>g/prefix/a/substfile1.expected &&
diff g/prefix/a/substfile1.expected g/prefix/a/substfile1 &&
diff a/substfile2 g/prefix/a/substfile2
'

test_expect_success \
'git archive --format=zip' \
'git archive --format=zip HEAD >d.zip'

Loading…
Cancel
Save