mirror of
https://github.com/git/git.git
synced 2026-04-01 12:30:09 +02:00
Merge branch 'master' of git://repo.or.cz/alt-git
This commit is contained in:
46
Documentation/RelNotes-1.6.6.2.txt
Normal file
46
Documentation/RelNotes-1.6.6.2.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
Git v1.6.6.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.6.6.1
|
||||
--------------------
|
||||
|
||||
* recursive merge didn't correctly diagnose its own programming errors,
|
||||
and instead caused the caller to segfault.
|
||||
|
||||
* The new "smart http" aware clients probed the web servers to see if
|
||||
they support smart http, but did not fall back to dumb http transport
|
||||
correctly with some servers.
|
||||
|
||||
* Time based reflog syntax e.g. "@{yesterday}" didn't diagnose a misspelled
|
||||
time specification and instead assumed "@{now}".
|
||||
|
||||
* "git archive HEAD -- no-such-directory" produced an empty archive
|
||||
without complaining.
|
||||
|
||||
* "git blame -L start,end -- file" misbehaved when given a start that is
|
||||
larger than the number of lines in the file.
|
||||
|
||||
* "git checkout -m" didn't correctly call custom merge backend supplied
|
||||
by the end user.
|
||||
|
||||
* "git config -f <file>" misbehaved when run from a subdirectory.
|
||||
|
||||
* "git cvsserver" didn't like having regex metacharacters (e.g. '+') in
|
||||
CVSROOT environment.
|
||||
|
||||
* "git fast-import" did not correctly handle large blobs that may
|
||||
bust the pack size limit.
|
||||
|
||||
* "git gui" is supposed to work even when launched from inside a .git
|
||||
directory.
|
||||
|
||||
* "git gui" misbehaved when applying a hunk that ends with deletion.
|
||||
|
||||
* "git imap-send" did not honor imap.preformattedHTML as documented.
|
||||
|
||||
* "git log" family incorrectly showed the commit notes unconditionally by
|
||||
mistake, which was especially irritating when running "git log --oneline".
|
||||
|
||||
* "git status" shouldn't require an write access to the repository.
|
||||
|
||||
Other minor documentation updates are included.
|
||||
@@ -4,7 +4,7 @@ Git v1.7.0 Release Notes
|
||||
Notes on behaviour change
|
||||
-------------------------
|
||||
|
||||
* "git push" into a branch that is currently checked out (i.e. pointed by
|
||||
* "git push" into a branch that is currently checked out (i.e. pointed at by
|
||||
HEAD in a repository that is not bare) is refused by default.
|
||||
|
||||
Similarly, "git push $there :$killed" to delete the branch $killed
|
||||
@@ -19,7 +19,7 @@ Notes on behaviour change
|
||||
patch series with more than two messages. All messages will be sent
|
||||
as a reply to the first message, i.e. cover letter.
|
||||
|
||||
It has been possible to configure send-email to send "shallow thread"
|
||||
It has been possible already to configure send-email to send "shallow thread"
|
||||
by setting sendemail.chainreplyto configuration variable to false. The
|
||||
only thing this release does is to change the default when you haven't
|
||||
configured that variable.
|
||||
@@ -30,7 +30,7 @@ Notes on behaviour change
|
||||
* "git diff" traditionally treated various "ignore whitespace" options
|
||||
only as a way to filter the patch output. "git diff --exit-code -b"
|
||||
exited with non-zero status even if all changes were about changing the
|
||||
ammount of whitespace and nothing else. and "git diff -b" showed the
|
||||
amount of whitespace and nothing else; and "git diff -b" showed the
|
||||
"diff --git" header line for such a change without patch text.
|
||||
|
||||
In this release, the "ignore whitespaces" options affect the semantics
|
||||
@@ -63,7 +63,7 @@ Updates since v1.6.6
|
||||
|
||||
* "git svn" support of subversion "merge tickets" and miscellaneous fixes.
|
||||
|
||||
* "gitk" updates.
|
||||
* "gitk" and "git gui" translation updates.
|
||||
|
||||
* "gitweb" updates (code clean-up, load checking etc.)
|
||||
|
||||
@@ -106,7 +106,9 @@ Updates since v1.6.6
|
||||
defaults to the current branch, so "git fetch && git merge @{upstream}"
|
||||
will be equivalent to "git pull".
|
||||
|
||||
* "git branch --set-upstream" can be used to update the (surprise!) upstream
|
||||
* "git am --resolved" has a synonym "git am --continue".
|
||||
|
||||
* "git branch --set-upstream" can be used to update the (surprise!) upstream,
|
||||
i.e. where the branch is supposed to pull and merge from (or rebase onto).
|
||||
|
||||
* "git checkout A...B" is a way to detach HEAD at the merge base between
|
||||
@@ -133,7 +135,7 @@ Updates since v1.6.6
|
||||
* "git fetch --all" can now be used in place of "git remote update".
|
||||
|
||||
* "git grep" does not rely on external grep anymore. It can use more than
|
||||
one threads to accelerate the operation.
|
||||
one thread to accelerate the operation.
|
||||
|
||||
* "git grep" learned "--quiet" option.
|
||||
|
||||
@@ -159,13 +161,13 @@ Updates since v1.6.6
|
||||
* "git rebase --onto A...B" means the history is replayed on top of the
|
||||
merge base between A and B.
|
||||
|
||||
* "git rebase -i" learned new action "fixup", that squashes the change
|
||||
* "git rebase -i" learned new action "fixup" that squashes the change
|
||||
but does not affect existing log message.
|
||||
|
||||
* "git rebase -i" also learned --autosquash option, that is useful
|
||||
* "git rebase -i" also learned --autosquash option that is useful
|
||||
together with the new "fixup" action.
|
||||
|
||||
* "git remote" learned set-url subcommand, to update (surprise!) url
|
||||
* "git remote" learned set-url subcommand that updates (surprise!) url
|
||||
for an existing remote nickname.
|
||||
|
||||
* "git rerere" learned "forget path" subcommand. Together with "git
|
||||
@@ -200,13 +202,8 @@ release, unless otherwise noted.
|
||||
the branch is fully merged to its upstream branch if it is not merged
|
||||
to the current branch. It now deletes it in such a case.
|
||||
|
||||
* "git config -f <relative path>" run from a subdirectory misbehaved.
|
||||
65807ee (builtin-config: Fix crash when using "-f <relative path>"
|
||||
from non-root dir, 2010-01-26) may be merged to older maintenance
|
||||
branches.
|
||||
|
||||
* "git fast-import" did not correctly handle large blobs that may
|
||||
bust the pack size limit.
|
||||
* "fiter-branch" command incorrectly said --prune-empty and --filter-commit
|
||||
were incompatible; the latter should be read as --commit-filter.
|
||||
|
||||
* When using "git status" or asking "git diff" to compare the work tree
|
||||
with something, they used to consider that a checked-out submodule with
|
||||
@@ -215,9 +212,3 @@ release, unless otherwise noted.
|
||||
superproject. They now consider such a change as a modification and
|
||||
"git diff" will append a "-dirty" to the work tree side when generating
|
||||
patch output or when used with the --submodule option.
|
||||
|
||||
--
|
||||
exec >/var/tmp/1
|
||||
O=v1.7.0-rc1-42-g3bd8de5
|
||||
echo O=$(git describe master)
|
||||
git shortlog --no-merges $O..master ^maint
|
||||
|
||||
@@ -153,7 +153,7 @@ EXAMPLES
|
||||
and its subdirectories:
|
||||
+
|
||||
------------
|
||||
$ git add Documentation/\\*.txt
|
||||
$ git add Documentation/\*.txt
|
||||
------------
|
||||
+
|
||||
Note that the asterisk `\*` is quoted from the shell in this
|
||||
|
||||
@@ -15,7 +15,7 @@ SYNOPSIS
|
||||
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
|
||||
[--reject] [-q | --quiet] [--scissors | --no-scissors]
|
||||
[<mbox> | <Maildir>...]
|
||||
'git am' (--skip | --resolved | --abort)
|
||||
'git am' (--continue | --skip | --abort)
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@@ -107,6 +107,7 @@ default. You can use `--no-utf8` to override this.
|
||||
Skip the current patch. This is only meaningful when
|
||||
restarting an aborted patch.
|
||||
|
||||
--continue::
|
||||
-r::
|
||||
--resolved::
|
||||
After a patch failure (e.g. attempting to apply
|
||||
|
||||
@@ -112,6 +112,14 @@ export-subst::
|
||||
expand several placeholders when adding this file to an archive.
|
||||
See linkgit:gitattributes[5] for details.
|
||||
|
||||
Note that attributes are by default taken from the `.gitattributes` files
|
||||
in the tree that is being archived. If you want to tweak the way the
|
||||
output is generated after the fact (e.g. you committed without adding an
|
||||
appropriate export-ignore in its `.gitattributes`), adjust the checked out
|
||||
`.gitattributes` file as necessary and use `--work-tree-attributes`
|
||||
option. Alternatively you can keep necessary attributes that should apply
|
||||
while archiving any tree in your `$GIT_DIR/info/attributes` file.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)::
|
||||
|
||||
@@ -43,7 +43,7 @@ imposes the following rules on how references are named:
|
||||
|
||||
. They cannot contain a sequence `@{`.
|
||||
|
||||
- They cannot contain a `\\`.
|
||||
. They cannot contain a `\`.
|
||||
|
||||
These rules make it easy for shell script based tools to parse
|
||||
reference names, pathname expansion by the shell when a reference name is used
|
||||
|
||||
@@ -176,12 +176,17 @@ If --porcelain is used, then each line of the output is of the form:
|
||||
<flag> \t <from>:<to> \t <summary> (<reason>)
|
||||
-------------------------------
|
||||
|
||||
The status of up-to-date refs is shown only if --porcelain or --verbose
|
||||
option is used.
|
||||
|
||||
flag::
|
||||
A single character indicating the status of the ref. This is
|
||||
blank for a successfully pushed ref, `!` for a ref that was
|
||||
rejected or failed to push, and '=' for a ref that was up to
|
||||
date and did not need pushing (note that the status of up to
|
||||
date refs is shown only when `git push` is running verbosely).
|
||||
A single character indicating the status of the ref:
|
||||
(space);; for a successfully pushed fast-forward;
|
||||
`{plus}`;; for a successful forced update;
|
||||
`-`;; for a successfully deleted ref;
|
||||
`*`;; for a successfully pushed new ref;
|
||||
`!`;; for a ref that was rejected or failed to push; and
|
||||
`=`;; for a ref that was up to date and did not need pushing.
|
||||
|
||||
summary::
|
||||
For a successfully pushed ref, the summary shows the old and new
|
||||
|
||||
@@ -244,7 +244,7 @@ when you run 'git merge'.
|
||||
* The special construct '@\{-<n>\}' means the <n>th branch checked out
|
||||
before the current one.
|
||||
|
||||
* The suffix '@{upstream}' to a ref (short form 'ref@{u}') refers to
|
||||
* The suffix '@\{upstream\}' to a ref (short form 'ref@\{u\}') refers to
|
||||
the branch the ref is set to build on top of. Missing ref defaults
|
||||
to the current branch.
|
||||
|
||||
|
||||
@@ -43,9 +43,15 @@ 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.6.1/git.html[documentation for release 1.6.6.1]
|
||||
* link:v1.7.0/git.html[documentation for release 1.7.0]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.7.0.txt[1.7.0].
|
||||
|
||||
* link:v1.6.6.2/git.html[documentation for release 1.6.6.2]
|
||||
|
||||
* release notes for
|
||||
link:RelNotes-1.6.6.2.txt[1.6.6.2],
|
||||
link:RelNotes-1.6.6.1.txt[1.6.6.1],
|
||||
link:RelNotes-1.6.6.txt[1.6.6].
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
GVF=GIT-VERSION-FILE
|
||||
DEF_VER=v1.6.6.GIT
|
||||
DEF_VER=v1.7.0
|
||||
|
||||
LF='
|
||||
'
|
||||
|
||||
@@ -2433,7 +2433,7 @@ parse_done:
|
||||
if (top < 1)
|
||||
top = lno;
|
||||
bottom--;
|
||||
if (lno < top)
|
||||
if (lno < top || lno < bottom)
|
||||
die("file %s has only %lu lines", path, lno);
|
||||
|
||||
ent = xcalloc(1, sizeof(*ent));
|
||||
|
||||
@@ -445,13 +445,9 @@ static int write_one(struct sha1file *f,
|
||||
if (e->idx.offset || e->preferred_base)
|
||||
return -1;
|
||||
|
||||
/*
|
||||
* If we are deltified, attempt to write out base object first.
|
||||
* If that fails due to the pack size limit then the current
|
||||
* object might still possibly fit undeltified within that limit.
|
||||
*/
|
||||
if (e->delta)
|
||||
write_one(f, e->delta, offset);
|
||||
/* if we are deltified, write out base object first. */
|
||||
if (e->delta && !write_one(f, e->delta, offset))
|
||||
return 0;
|
||||
|
||||
e->idx.offset = *offset;
|
||||
size = write_object(f, e, *offset);
|
||||
@@ -505,9 +501,11 @@ static void write_pack_file(void)
|
||||
sha1write(f, &hdr, sizeof(hdr));
|
||||
offset = sizeof(hdr);
|
||||
nr_written = 0;
|
||||
for (i = 0; i < nr_objects; i++)
|
||||
if (write_one(f, objects + i, &offset) == 1)
|
||||
display_progress(progress_state, written);
|
||||
for (; i < nr_objects; i++) {
|
||||
if (!write_one(f, objects + i, &offset))
|
||||
break;
|
||||
display_progress(progress_state, written);
|
||||
}
|
||||
|
||||
/*
|
||||
* Did we write the wrong # entries in the header?
|
||||
@@ -582,7 +580,7 @@ static void write_pack_file(void)
|
||||
written_list[j]->offset = (off_t)-1;
|
||||
}
|
||||
nr_remaining -= nr_written;
|
||||
} while (nr_remaining);
|
||||
} while (nr_remaining && i < nr_objects);
|
||||
|
||||
free(written_list);
|
||||
stop_progress(&progress_state);
|
||||
|
||||
@@ -667,7 +667,7 @@ _git_am ()
|
||||
{
|
||||
local cur="${COMP_WORDS[COMP_CWORD]}" dir="$(__gitdir)"
|
||||
if [ -d "$dir"/rebase-apply ]; then
|
||||
__gitcomp "--skip --resolved --abort"
|
||||
__gitcomp "--skip --continue --resolved --abort"
|
||||
return
|
||||
fi
|
||||
case "$cur" in
|
||||
|
||||
@@ -25,7 +25,8 @@ p= pass it through git-apply
|
||||
patch-format= format the patch(es) are in
|
||||
reject pass it through git-apply
|
||||
resolvemsg= override error message when patch failure occurs
|
||||
r,resolved to be used after a patch failure
|
||||
continue continue applying patches after resolving a conflict
|
||||
r,resolved synonyms for --continue
|
||||
skip skip the current patch
|
||||
abort restore the original branch and abort the patching operation.
|
||||
committer-date-is-author-date lie about committer date
|
||||
@@ -318,7 +319,7 @@ do
|
||||
scissors=t ;;
|
||||
--no-scissors)
|
||||
scissors=f ;;
|
||||
-r|--resolved)
|
||||
-r|--resolved|--continue)
|
||||
resolved=t ;;
|
||||
--skip)
|
||||
skip=t ;;
|
||||
|
||||
@@ -207,7 +207,7 @@ t,)
|
||||
,*)
|
||||
;;
|
||||
*)
|
||||
die "Cannot set --prune-empty and --filter-commit at the same time"
|
||||
die "Cannot set --prune-empty and --commit-filter at the same time"
|
||||
esac
|
||||
|
||||
case "$force" in
|
||||
|
||||
15
imap-send.c
15
imap-send.c
@@ -1331,11 +1331,16 @@ static int git_imap_config(const char *key, const char *val, void *cb)
|
||||
if (strncmp(key, imap_key, sizeof imap_key - 1))
|
||||
return 0;
|
||||
|
||||
if (!val)
|
||||
return config_error_nonbool(key);
|
||||
|
||||
key += sizeof imap_key - 1;
|
||||
|
||||
/* check booleans first, and barf on others */
|
||||
if (!strcmp("sslverify", key))
|
||||
server.ssl_verify = git_config_bool(key, val);
|
||||
else if (!strcmp("preformattedhtml", key))
|
||||
server.use_html = git_config_bool(key, val);
|
||||
else if (!val)
|
||||
return config_error_nonbool(key);
|
||||
|
||||
if (!strcmp("folder", key)) {
|
||||
imap_folder = xstrdup(val);
|
||||
} else if (!strcmp("host", key)) {
|
||||
@@ -1356,10 +1361,6 @@ static int git_imap_config(const char *key, const char *val, void *cb)
|
||||
server.port = git_config_int(key, val);
|
||||
else if (!strcmp("tunnel", key))
|
||||
server.tunnel = xstrdup(val);
|
||||
else if (!strcmp("sslverify", key))
|
||||
server.ssl_verify = git_config_bool(key, val);
|
||||
else if (!strcmp("preformattedHTML", key))
|
||||
server.use_html = git_config_bool(key, val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ for_each_name () {
|
||||
for name in \
|
||||
Name "Name and a${LF}LF" "Name and an${HT}HT" "Name${DQ}" \
|
||||
"$FN$HT$GN" "$FN$LF$GN" "$FN $GN" "$FN$GN" "$FN$DQ$GN" \
|
||||
"With SP in it" "caractère spécial/file"
|
||||
"With SP in it" "$FN/file"
|
||||
do
|
||||
eval "$1"
|
||||
done
|
||||
@@ -33,7 +33,7 @@ for_each_name () {
|
||||
|
||||
test_expect_success setup '
|
||||
|
||||
mkdir "caractère spécial" &&
|
||||
mkdir "$FN" &&
|
||||
for_each_name "echo initial >\"\$name\""
|
||||
git add . &&
|
||||
git commit -q -m Initial &&
|
||||
@@ -51,11 +51,11 @@ Name
|
||||
"Name and an\tHT"
|
||||
"Name\""
|
||||
With SP in it
|
||||
"caract\303\250re sp\303\251cial/file"
|
||||
"\346\277\261\351\207\216\t\347\264\224"
|
||||
"\346\277\261\351\207\216\n\347\264\224"
|
||||
"\346\277\261\351\207\216 \347\264\224"
|
||||
"\346\277\261\351\207\216\"\347\264\224"
|
||||
"\346\277\261\351\207\216/file"
|
||||
"\346\277\261\351\207\216\347\264\224"
|
||||
EOF
|
||||
|
||||
@@ -65,11 +65,11 @@ Name
|
||||
"Name and an\tHT"
|
||||
"Name\""
|
||||
With SP in it
|
||||
caractère spécial/file
|
||||
"濱野\t純"
|
||||
"濱野\n純"
|
||||
濱野 純
|
||||
"濱野\"純"
|
||||
濱野/file
|
||||
濱野純
|
||||
EOF
|
||||
|
||||
|
||||
@@ -389,7 +389,7 @@ test_expect_success 'verify resulting packs' '
|
||||
test_expect_success 'tolerate packsizelimit smaller than biggest object' '
|
||||
git config pack.packSizeLimit 1 &&
|
||||
packname_11=$(git pack-objects test-11 <obj-list) &&
|
||||
test 3 = $(ls test-11-*.pack | wc -l)
|
||||
test 5 = $(ls test-11-*.pack | wc -l)
|
||||
'
|
||||
|
||||
test_expect_success 'verify resulting packs' '
|
||||
|
||||
@@ -157,4 +157,14 @@ EOF
|
||||
git --no-pager blame $COMMIT -- uno >/dev/null
|
||||
'
|
||||
|
||||
test_expect_success 'blame -L with invalid start' '
|
||||
test_must_fail git blame -L5 tres 2>errors &&
|
||||
grep "has only 2 lines" errors
|
||||
'
|
||||
|
||||
test_expect_success 'blame -L with invalid end' '
|
||||
test_must_fail git blame -L1,5 tres 2>errors &&
|
||||
grep "has only 2 lines" errors
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user