Merge branch 'maint'
* maint: Start 1.6.0.4 cycle add instructions on how to send patches to the mailing list with Gmail Documentation/gitattributes: Add subsection header for each attribute git send-email: avoid leaking directory file descriptors. send-pack: do not send out single-level refs such as refs/stash fix overlapping memcpy in normalize_absolute_path pack-objects: avoid reading uninitalized data correct cache_entry allocation Conflicts: RelNotes
This commit is contained in:
commit
aebd173ffa
29
Documentation/RelNotes-1.6.0.4.txt
Normal file
29
Documentation/RelNotes-1.6.0.4.txt
Normal file
@ -0,0 +1,29 @@
|
||||
GIT v1.6.0.4 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.0.3
|
||||
--------------------
|
||||
|
||||
* 'git-add -p' said "No changes" when only binary files were changed.
|
||||
|
||||
* git-archive did not work correctly in bare repositories.
|
||||
|
||||
* when we refuse to detect renames because there are too many new or
|
||||
deleted files, we did not say how many there are.
|
||||
|
||||
* 'git-push --mirror' tried and failed to push the stash; there is no
|
||||
point in sending it to begin with.
|
||||
|
||||
* 'git-send-email' had a small fd leak while scanning directory.
|
||||
|
||||
* git-svn used deprecated 'git-foo' form of subcommand invocaition.
|
||||
|
||||
* Plugged small memleaks here and there.
|
||||
|
||||
* Also contains many documentation updates.
|
||||
|
||||
--
|
||||
exec >/var/tmp/1
|
||||
O=v1.6.0.3-22-gc2163c6
|
||||
echo O=$(git describe maint)
|
||||
git shortlog --no-merges $O..maint
|
@ -456,3 +456,30 @@ This should help you to submit patches inline using KMail.
|
||||
|
||||
5) Back in the compose window: add whatever other text you wish to the
|
||||
message, complete the addressing and subject fields, and press send.
|
||||
|
||||
|
||||
Gmail
|
||||
-----
|
||||
|
||||
Submitting properly formatted patches via Gmail is simple now that
|
||||
IMAP support is available. First, edit your ~/.gitconfig to specify your
|
||||
account settings:
|
||||
|
||||
[imap]
|
||||
folder = "[Gmail]/Drafts"
|
||||
host = imaps://imap.gmail.com
|
||||
user = user@gmail.com
|
||||
pass = p4ssw0rd
|
||||
port = 993
|
||||
sslverify = false
|
||||
|
||||
Next, ensure that your Gmail settings are correct. In "Settings" the
|
||||
"Use Unicode (UTF-8) encoding for outgoing messages" should be checked.
|
||||
|
||||
Once your commits are ready to send to the mailing list, run the following
|
||||
command to send the patch emails to your Gmail Drafts folder.
|
||||
|
||||
$ git format-patch -M --stdout origin/master | git imap-send
|
||||
|
||||
Go to your Gmail account, open the Drafts folder, find the patch email, fill
|
||||
in the To: and CC: fields and send away!
|
||||
|
@ -213,6 +213,9 @@ with `crlf`, and then `ident` and fed to `filter`.
|
||||
Generating diff text
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
`diff`
|
||||
^^^^^^
|
||||
|
||||
The attribute `diff` affects if 'git-diff' generates textual
|
||||
patch for the path or just says `Binary files differ`. It also
|
||||
can affect what line is shown on the hunk header `@@ -k,l +n,m @@`
|
||||
@ -331,6 +334,9 @@ patterns are available:
|
||||
Performing a three-way merge
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
`merge`
|
||||
^^^^^^^
|
||||
|
||||
The attribute `merge` affects how three versions of a file is
|
||||
merged when a file-level merge is necessary during `git merge`,
|
||||
and other programs such as `git revert` and `git cherry-pick`.
|
||||
|
@ -1375,7 +1375,7 @@ static void find_deltas(struct object_entry **list, unsigned *list_size,
|
||||
array = xcalloc(window, sizeof(struct unpacked));
|
||||
|
||||
for (;;) {
|
||||
struct object_entry *entry = *list++;
|
||||
struct object_entry *entry;
|
||||
struct unpacked *n = array + idx;
|
||||
int j, max_depth, best_base = -1;
|
||||
|
||||
@ -1384,6 +1384,7 @@ static void find_deltas(struct object_entry **list, unsigned *list_size,
|
||||
progress_unlock();
|
||||
break;
|
||||
}
|
||||
entry = *list++;
|
||||
(*list_size)--;
|
||||
if (!entry->preferred_base) {
|
||||
(*processed)++;
|
||||
|
@ -140,7 +140,13 @@ static struct ref *remote_refs, **remote_tail;
|
||||
static int one_local_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
|
||||
{
|
||||
struct ref *ref;
|
||||
int len = strlen(refname) + 1;
|
||||
int len;
|
||||
|
||||
/* we already know it starts with refs/ to get here */
|
||||
if (check_ref_format(refname + 5))
|
||||
return 0;
|
||||
|
||||
len = strlen(refname) + 1;
|
||||
ref = xcalloc(1, sizeof(*ref) + len);
|
||||
hashcpy(ref->new_sha1, sha1);
|
||||
memcpy(ref->name, refname, len);
|
||||
|
@ -374,10 +374,9 @@ for my $f (@ARGV) {
|
||||
|
||||
push @files, grep { -f $_ } map { +$f . "/" . $_ }
|
||||
sort readdir(DH);
|
||||
|
||||
closedir(DH);
|
||||
} elsif (-f $f or -p $f) {
|
||||
push @files, $f;
|
||||
|
||||
} else {
|
||||
print STDERR "Skipping $f - not found.\n";
|
||||
}
|
||||
|
2
path.c
2
path.c
@ -348,7 +348,7 @@ int normalize_absolute_path(char *buf, const char *path)
|
||||
goto next;
|
||||
}
|
||||
|
||||
memcpy(dst, comp_start, comp_len);
|
||||
memmove(dst, comp_start, comp_len);
|
||||
dst += comp_len;
|
||||
next:
|
||||
comp_start = comp_end;
|
||||
|
@ -382,7 +382,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
|
||||
o->merge_size = len;
|
||||
|
||||
if (!dfc)
|
||||
dfc = xcalloc(1, sizeof(struct cache_entry) + 1);
|
||||
dfc = xcalloc(1, cache_entry_size(0));
|
||||
o->df_conflict_entry = dfc;
|
||||
|
||||
if (len) {
|
||||
|
Loading…
Reference in New Issue
Block a user