Merge branch 'master' of git://repo.or.cz/alt-git

This commit is contained in:
Johannes Sixt
2010-02-13 12:51:14 +01:00
19 changed files with 128 additions and 61 deletions

View 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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 -)::

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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].

View File

@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
DEF_VER=v1.6.6.GIT
DEF_VER=v1.7.0
LF='
'

View File

@@ -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));

View File

@@ -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);

View File

@@ -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

View File

@@ -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 ;;

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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' '

View File

@@ -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