summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/RelNotes-1.6.6.1.txt17
-rw-r--r--builtin-grep.c1
-rw-r--r--fast-import.c10
3 files changed, 22 insertions, 6 deletions
diff --git a/Documentation/RelNotes-1.6.6.1.txt b/Documentation/RelNotes-1.6.6.1.txt
index 4c88bebb90..406fbc4e0f 100644
--- a/Documentation/RelNotes-1.6.6.1.txt
+++ b/Documentation/RelNotes-1.6.6.1.txt
@@ -4,12 +4,27 @@ Git v1.6.6.1 Release Notes
Fixes since v1.6.6
------------------
+ * "git branch -a name" wasn't diagnosed as an error.
+
+ * "git fast-import" choked when fed a tag that do not point at a
+ commit.
+
+ * "git grep" finding from work tree files could have fed garbage to
+ the underlying regexec(3).
+
+ * "git grep -L" didn't show empty files (they should never match, and
+ they should always appear in -L output as unmatching).
+
* http-backend was not listed in the command list in the documentation.
+ * Building on FreeBSD (both 7 and 8) needs OLD_ICONV set in the Makefile
+
+ * "git checkout -m some-branch" while on an unborn branch crashed.
+
Other minor documentation updates are included.
--
exec >/var/tmp/1
-O=v1.6.6-4-gd828fdb
+O=v1.6.6-39-g6304c40
echo O=$(git describe maint)
git shortlog --no-merges $O..maint
diff --git a/builtin-grep.c b/builtin-grep.c
index 529461fb8f..cea973ba6b 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -205,6 +205,7 @@ static int grep_file(struct grep_opt *opt, const char *filename)
return 0;
}
close(i);
+ data[sz] = 0;
if (opt->relative && opt->prefix_length)
filename = quote_path_relative(filename, -1, &buf, opt->prefix);
i = grep_buffer(opt, filename, data, sz);
diff --git a/fast-import.c b/fast-import.c
index 52d33bcba8..25c3588385 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -2356,6 +2356,7 @@ static void parse_new_tag(void)
struct tag *t;
uintmax_t from_mark = 0;
unsigned char sha1[20];
+ enum object_type type;
/* Obtain the new tag name from the rest of our command */
sp = strchr(command_buf.buf, ' ') + 1;
@@ -2376,19 +2377,18 @@ static void parse_new_tag(void)
s = lookup_branch(from);
if (s) {
hashcpy(sha1, s->sha1);
+ type = OBJ_COMMIT;
} else if (*from == ':') {
struct object_entry *oe;
from_mark = strtoumax(from + 1, NULL, 10);
oe = find_mark(from_mark);
- if (oe->type != OBJ_COMMIT)
- die("Mark :%" PRIuMAX " not a commit", from_mark);
+ type = oe->type;
hashcpy(sha1, oe->sha1);
} else if (!get_sha1(from, sha1)) {
unsigned long size;
char *buf;
- buf = read_object_with_reference(sha1,
- commit_type, &size, sha1);
+ buf = read_sha1_file(sha1, &type, &size);
if (!buf || size < 46)
die("Not a valid commit: %s", from);
free(buf);
@@ -2413,7 +2413,7 @@ static void parse_new_tag(void)
"object %s\n"
"type %s\n"
"tag %s\n",
- sha1_to_hex(sha1), commit_type, t->name);
+ sha1_to_hex(sha1), typename(type), t->name);
if (tagger)
strbuf_addf(&new_data,
"tagger %s\n", tagger);