Sync with 2.5.2
This commit is contained in:
commit
f0bc854623
9
Documentation/RelNotes/2.2.3.txt
Normal file
9
Documentation/RelNotes/2.2.3.txt
Normal file
@ -0,0 +1,9 @@
|
||||
Git v2.2.3 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.2.2
|
||||
------------------
|
||||
|
||||
* A handful of codepaths that used to use fixed-sized arrays to hold
|
||||
pathnames have been corrected to use strbuf and other mechanisms to
|
||||
allow longer pathnames without fearing overflows.
|
9
Documentation/RelNotes/2.3.9.txt
Normal file
9
Documentation/RelNotes/2.3.9.txt
Normal file
@ -0,0 +1,9 @@
|
||||
Git v2.3.9 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.3.8
|
||||
------------------
|
||||
|
||||
* A handful of codepaths that used to use fixed-sized arrays to hold
|
||||
pathnames have been corrected to use strbuf and other mechanisms to
|
||||
allow longer pathnames without fearing overflows.
|
9
Documentation/RelNotes/2.4.9.txt
Normal file
9
Documentation/RelNotes/2.4.9.txt
Normal file
@ -0,0 +1,9 @@
|
||||
Git v2.4.9 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.4.9
|
||||
------------------
|
||||
|
||||
* A handful of codepaths that used to use fixed-sized arrays to hold
|
||||
pathnames have been corrected to use strbuf and other mechanisms to
|
||||
allow longer pathnames without fearing overflows.
|
63
Documentation/RelNotes/2.5.2.txt
Normal file
63
Documentation/RelNotes/2.5.2.txt
Normal file
@ -0,0 +1,63 @@
|
||||
Git v2.5.2 Release Notes
|
||||
========================
|
||||
|
||||
Fixes since v2.5.1
|
||||
------------------
|
||||
|
||||
* "git init empty && git -C empty log" said "bad default revision 'HEAD'",
|
||||
which was found to be a bit confusing to new users.
|
||||
|
||||
* The "interpret-trailers" helper mistook a multi-paragraph title of
|
||||
a commit log message with a colon in it as the end of the trailer
|
||||
block.
|
||||
|
||||
* When re-priming the cache-tree opportunistically while committing
|
||||
the in-core index as-is, we mistakenly invalidated the in-core
|
||||
index too aggressively, causing the experimental split-index code
|
||||
to unnecessarily rewrite the on-disk index file(s).
|
||||
|
||||
* "git archive" did not use zip64 extension when creating an archive
|
||||
with more than 64k entries, which nobody should need, right ;-)?
|
||||
|
||||
* The code in "multiple-worktree" support that attempted to recover
|
||||
from an inconsistent state updated an incorrect file.
|
||||
|
||||
* "git rev-list" does not take "--notes" option, but did not complain
|
||||
when one is given.
|
||||
|
||||
* Because the configuration system does not allow "alias.0foo" and
|
||||
"pager.0foo" as the configuration key, the user cannot use '0foo'
|
||||
as a custom command name anyway, but "git 0foo" tried to look these
|
||||
keys up and emitted useless warnings before saying '0foo is not a
|
||||
git command'. These warning messages have been squelched.
|
||||
|
||||
* We recently rewrote one of the build scripts in Perl, which made it
|
||||
necessary to have Perl to build Git. Reduced Perl dependency by
|
||||
rewriting it again using sed.
|
||||
|
||||
* t1509 test that requires a dedicated VM environment had some
|
||||
bitrot, which has been corrected.
|
||||
|
||||
* strbuf_read() used to have one extra iteration (and an unnecessary
|
||||
strbuf_grow() of 8kB), which was eliminated.
|
||||
|
||||
* The codepath to produce error messages had a hard-coded limit to
|
||||
the size of the message, primarily to avoid memory allocation while
|
||||
calling die().
|
||||
|
||||
* When trying to see that an object does not exist, a state errno
|
||||
leaked from our "first try to open a packfile with O_NOATIME and
|
||||
then if it fails retry without it" logic on a system that refuses
|
||||
O_NOATIME. This confused us and caused us to die, saying that the
|
||||
packfile is unreadable, when we should have just reported that the
|
||||
object does not exist in that packfile to the caller.
|
||||
|
||||
* An off-by-one error made "git remote" to mishandle a remote with a
|
||||
single letter nickname.
|
||||
|
||||
* A handful of codepaths that used to use fixed-sized arrays to hold
|
||||
pathnames have been corrected to use strbuf and other mechanisms to
|
||||
allow longer pathnames without fearing overflows.
|
||||
|
||||
Also contains typofixes, documentation updates and trivial code
|
||||
clean-ups.
|
@ -43,15 +43,17 @@ unreleased) version of Git, that is available from the 'master'
|
||||
branch of the `git.git` repository.
|
||||
Documentation for older releases are available here:
|
||||
|
||||
* link:v2.5.1/git.html[documentation for release 2.5.1]
|
||||
* link:v2.5.2/git.html[documentation for release 2.5.2]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.5.2.txt[2.5.2],
|
||||
link:RelNotes/2.5.1.txt[2.5.1],
|
||||
link:RelNotes/2.5.0.txt[2.5].
|
||||
|
||||
* link:v2.4.8/git.html[documentation for release 2.4.8]
|
||||
* link:v2.4.9/git.html[documentation for release 2.4.9]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.4.9.txt[2.4.9],
|
||||
link:RelNotes/2.4.8.txt[2.4.8],
|
||||
link:RelNotes/2.4.7.txt[2.4.7],
|
||||
link:RelNotes/2.4.6.txt[2.4.6],
|
||||
@ -62,9 +64,10 @@ Documentation for older releases are available here:
|
||||
link:RelNotes/2.4.1.txt[2.4.1],
|
||||
link:RelNotes/2.4.0.txt[2.4].
|
||||
|
||||
* link:v2.3.8/git.html[documentation for release 2.3.8]
|
||||
* link:v2.3.9/git.html[documentation for release 2.3.9]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.3.9.txt[2.3.9],
|
||||
link:RelNotes/2.3.8.txt[2.3.8],
|
||||
link:RelNotes/2.3.7.txt[2.3.7],
|
||||
link:RelNotes/2.3.6.txt[2.3.6],
|
||||
@ -75,9 +78,10 @@ Documentation for older releases are available here:
|
||||
link:RelNotes/2.3.1.txt[2.3.1],
|
||||
link:RelNotes/2.3.0.txt[2.3].
|
||||
|
||||
* link:v2.2.2/git.html[documentation for release 2.2.2]
|
||||
* link:v2.2.3/git.html[documentation for release 2.2.3]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes/2.2.3.txt[2.2.3],
|
||||
link:RelNotes/2.2.2.txt[2.2.2],
|
||||
link:RelNotes/2.2.1.txt[2.2.1],
|
||||
link:RelNotes/2.2.0.txt[2.2].
|
||||
|
@ -730,7 +730,6 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
|
||||
|
||||
if (reflog) {
|
||||
struct object_id oid;
|
||||
char nth_desc[256];
|
||||
char *ref;
|
||||
int base = 0;
|
||||
unsigned int flags = 0;
|
||||
@ -769,6 +768,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
|
||||
|
||||
for (i = 0; i < reflog; i++) {
|
||||
char *logmsg;
|
||||
char *nth_desc;
|
||||
const char *msg;
|
||||
unsigned long timestamp;
|
||||
int tz;
|
||||
@ -788,8 +788,10 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
|
||||
DATE_MODE(RELATIVE)),
|
||||
msg);
|
||||
free(logmsg);
|
||||
sprintf(nth_desc, "%s@{%d}", *av, base+i);
|
||||
|
||||
nth_desc = xstrfmt("%s@{%d}", *av, base+i);
|
||||
append_ref(nth_desc, &oid, 1);
|
||||
free(nth_desc);
|
||||
}
|
||||
free(ref);
|
||||
}
|
||||
|
19
notes.c
19
notes.c
@ -362,13 +362,14 @@ static int non_note_cmp(const struct non_note *a, const struct non_note *b)
|
||||
return strcmp(a->path, b->path);
|
||||
}
|
||||
|
||||
static void add_non_note(struct notes_tree *t, const char *path,
|
||||
/* note: takes ownership of path string */
|
||||
static void add_non_note(struct notes_tree *t, char *path,
|
||||
unsigned int mode, const unsigned char *sha1)
|
||||
{
|
||||
struct non_note *p = t->prev_non_note, *n;
|
||||
n = (struct non_note *) xmalloc(sizeof(struct non_note));
|
||||
n->next = NULL;
|
||||
n->path = xstrdup(path);
|
||||
n->path = path;
|
||||
n->mode = mode;
|
||||
hashcpy(n->sha1, sha1);
|
||||
t->prev_non_note = n;
|
||||
@ -482,17 +483,17 @@ handle_non_note:
|
||||
* component.
|
||||
*/
|
||||
{
|
||||
char non_note_path[PATH_MAX];
|
||||
char *p = non_note_path;
|
||||
struct strbuf non_note_path = STRBUF_INIT;
|
||||
const char *q = sha1_to_hex(subtree->key_sha1);
|
||||
int i;
|
||||
for (i = 0; i < prefix_len; i++) {
|
||||
*p++ = *q++;
|
||||
*p++ = *q++;
|
||||
*p++ = '/';
|
||||
strbuf_addch(&non_note_path, *q++);
|
||||
strbuf_addch(&non_note_path, *q++);
|
||||
strbuf_addch(&non_note_path, '/');
|
||||
}
|
||||
strcpy(p, entry.path);
|
||||
add_non_note(t, non_note_path, entry.mode, entry.sha1);
|
||||
strbuf_addstr(&non_note_path, entry.path);
|
||||
add_non_note(t, strbuf_detach(&non_note_path, NULL),
|
||||
entry.mode, entry.sha1);
|
||||
}
|
||||
}
|
||||
free(buf);
|
||||
|
@ -377,15 +377,12 @@ void read_info_alternates(const char * relative_base, int depth)
|
||||
char *map;
|
||||
size_t mapsz;
|
||||
struct stat st;
|
||||
const char alt_file_name[] = "info/alternates";
|
||||
/* Given that relative_base is no longer than PATH_MAX,
|
||||
ensure that "path" has enough space to append "/", the
|
||||
file name, "info/alternates", and a trailing NUL. */
|
||||
char path[PATH_MAX + 1 + sizeof alt_file_name];
|
||||
char *path;
|
||||
int fd;
|
||||
|
||||
sprintf(path, "%s/%s", relative_base, alt_file_name);
|
||||
path = xstrfmt("%s/info/alternates", relative_base);
|
||||
fd = git_open_noatime(path);
|
||||
free(path);
|
||||
if (fd < 0)
|
||||
return;
|
||||
if (fstat(fd, &st) || (st.st_size == 0)) {
|
||||
|
@ -1451,15 +1451,18 @@ static int verify_absent_1(const struct cache_entry *ce,
|
||||
if (!len)
|
||||
return 0;
|
||||
else if (len > 0) {
|
||||
char path[PATH_MAX + 1];
|
||||
memcpy(path, ce->name, len);
|
||||
path[len] = 0;
|
||||
if (lstat(path, &st))
|
||||
return error("cannot stat '%s': %s", path,
|
||||
strerror(errno));
|
||||
char *path;
|
||||
int ret;
|
||||
|
||||
return check_ok_to_remove(path, len, DT_UNKNOWN, NULL, &st,
|
||||
error_type, o);
|
||||
path = xmemdupz(ce->name, len);
|
||||
if (lstat(path, &st))
|
||||
ret = error("cannot stat '%s': %s", path,
|
||||
strerror(errno));
|
||||
else
|
||||
ret = check_ok_to_remove(path, len, DT_UNKNOWN, NULL,
|
||||
&st, error_type, o);
|
||||
free(path);
|
||||
return ret;
|
||||
} else if (lstat(ce->name, &st)) {
|
||||
if (errno != ENOENT)
|
||||
return error("cannot stat '%s': %s", ce->name,
|
||||
|
Loading…
Reference in New Issue
Block a user