Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2012-02-13 11:47:01 -08:00
commit 6f5e880c68
12 changed files with 32 additions and 169 deletions

View file

@ -99,28 +99,7 @@ details).
(merge f026358 jc/maint-mailmap-output later to maint).
* "checkout -b" did not allow switching out of an unborn branch.
(merge abe1998 jc/checkout-out-of-unborn later to maint).
* "add -e" learned not to show a diff for an otherwise unmodified
submodule that only has uncommitted local changes in the patch
prepared by for the user to edit.
(merge 701825d js/add-e-submodule-fix later to maint).
* "rebase" and "commit --amend" failed to work on commits with ancient
timestamps near year 1970.
(merge 2c733fb jc/parse-date-raw later to maint).
* "git merge --ff-only $tag" failed because it cannot record the
required mergetag without creating a merge, but this is so common
operation for branch that is used _only_ to follow the upstream, so
it is allowed to fast-forward without recording the mergetag.
(merge b5c9f1c jc/merge-ff-only-stronger-than-signed-merge later to maint).
* Typo in "git branch --edit-description my-tpoic" was not diagnosed.
(merge c2d17ba jc/branch-desc-typoavoidance later to maint).
* rpmbuild noticed an unpackaged but installed *.mo file and failed.
(merge 3a9f58c jn/rpm-spec later to maint).
(merge abe1998 jc/checkout-out-of-unborn later to maint).
---
exec >/var/tmp/1

View file

@ -4,9 +4,17 @@ Git v1.7.9.1 Release Notes
Fixes since v1.7.9
------------------
* rpmbuild noticed an unpackaged but installed *.mo file and failed.
* Subprocesses spawned from various git programs were often left running
to completion even when the top-level process was killed.
* "git add -e" learned not to show a diff for an otherwise unmodified
submodule that only has uncommitted local changes in the patch
prepared by for the user to edit.
* Typo in "git branch --edit-description my-tpoic" was not diagnosed.
* Using "git grep -l/-L" together with options -W or --break may not
make much sense as the output is to only count the number of hits
and there is no place for file breaks, but the latter options made
@ -16,14 +24,22 @@ Fixes since v1.7.9
chain and veered into side branch from which the whole change to the
specified paths came.
* "git merge --ff-only $tag" failed because it cannot record the
required mergetag without creating a merge, but this is so common
operation for branch that is used _only_ to follow the upstream, so
it was changed to allow fast-forwarding without recording the mergetag.
* "git mergetool" now gives an empty file as the common base version
to the backend when dealing with the "both sides added, differently"
case.
* "git push -q" was not sufficiently quiet.
* When "git push" fails to update any refs, the client side did not
report an error correctly to the end user.
* "git mergetool" now gives an empty file as the common base version
to the backend when dealing with the "both sides added, differently"
case.
* "rebase" and "commit --amend" failed to work on commits with ancient
timestamps near year 1970.
* When asking for a tag to be pulled, "request-pull" did not show the
name of the tag prefixed with "tags/", which would have helped older

View file

@ -342,7 +342,7 @@ pathsep = :
export prefix bindir sharedir sysconfdir gitwebdir localedir
CC = gcc
CC = cc
AR = ar
RM = rm -f
DIFF = diff

View file

@ -73,42 +73,4 @@ gitweb-test:
valgrind:
$(MAKE) GIT_TEST_OPTS="$(GIT_TEST_OPTS) --valgrind"
# Smoke testing targets
-include ../GIT-VERSION-FILE
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo unknown')
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo unknown')
test-results:
mkdir -p test-results
test-results/git-smoke.tar.gz: test-results
$(PERL_PATH) ./harness \
--archive="test-results/git-smoke.tar.gz" \
$(T)
smoke: test-results/git-smoke.tar.gz
SMOKE_UPLOAD_FLAGS =
ifdef SMOKE_USERNAME
SMOKE_UPLOAD_FLAGS += -F username="$(SMOKE_USERNAME)" -F password="$(SMOKE_PASSWORD)"
endif
ifdef SMOKE_COMMENT
SMOKE_UPLOAD_FLAGS += -F comments="$(SMOKE_COMMENT)"
endif
ifdef SMOKE_TAGS
SMOKE_UPLOAD_FLAGS += -F tags="$(SMOKE_TAGS)"
endif
smoke_report: smoke
curl \
-H "Expect: " \
-F project=Git \
-F architecture="$(uname_M)" \
-F platform="$(uname_S)" \
-F revision="$(GIT_VERSION)" \
-F report_file=@test-results/git-smoke.tar.gz \
$(SMOKE_UPLOAD_FLAGS) \
http://smoke.git.nix.is/app/projects/process_add_report/1 \
| grep -v ^Redirecting
.PHONY: pre-clean $(T) aggregate-results clean valgrind smoke smoke_report
.PHONY: pre-clean $(T) aggregate-results clean valgrind

View file

@ -671,76 +671,3 @@ Then, at the top-level:
That'll generate a detailed cover report in the "cover_db_html"
directory, which you can then copy to a webserver, or inspect locally
in a browser.
Smoke testing
-------------
The Git test suite has support for smoke testing. Smoke testing is
when you submit the results of a test run to a central server for
analysis and aggregation.
Running a smoke tester is an easy and valuable way of contributing to
Git development, particularly if you have access to an uncommon OS on
obscure hardware.
After building Git you can generate a smoke report like this in the
"t" directory:
make clean smoke
You can also pass arguments via the environment. This should make it
faster:
GIT_TEST_OPTS='--root=/dev/shm' TEST_JOBS=10 make clean smoke
The "smoke" target will run the Git test suite with Perl's
"TAP::Harness" module, and package up the results in a .tar.gz archive
with "TAP::Harness::Archive". The former is included with Perl v5.10.1
or later, but you'll need to install the latter from the CPAN. See the
"Test coverage" section above for how you might do that.
Once the "smoke" target finishes you'll see a message like this:
TAP Archive created at <path to git>/t/test-results/git-smoke.tar.gz
To upload the smoke report you need to have curl(1) installed, then
do:
make smoke_report
To upload the report anonymously. Hopefully that'll return something
like "Reported #7 added.".
If you're going to be uploading reports frequently please request a
user account by E-Mailing gitsmoke@v.nix.is. Once you have a username
and password you'll be able to do:
SMOKE_USERNAME=<username> SMOKE_PASSWORD=<password> make smoke_report
You can also add an additional comment to attach to the report, and/or
a comma separated list of tags:
SMOKE_USERNAME=<username> SMOKE_PASSWORD=<password> \
SMOKE_COMMENT=<comment> SMOKE_TAGS=<tags> \
make smoke_report
Once the report is uploaded it'll be made available at
http://smoke.git.nix.is, here's an overview of Recent Smoke Reports
for Git:
http://smoke.git.nix.is/app/projects/smoke_reports/1
The reports will also be mirrored to GitHub every few hours:
http://github.com/gitsmoke/smoke-reports
The Smolder SQLite database is also mirrored and made available for
download:
http://github.com/gitsmoke/smoke-database
Note that the database includes hashed (with crypt()) user passwords
and E-Mail addresses. Don't use a valuable password for the smoke
service if you have an account, or an E-Mail address you don't want to
be publicly known. The user accounts are just meant to be convenient
labels, they're not meant to be secure.

View file

@ -1,21 +0,0 @@
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long ();
use TAP::Harness::Archive;
Getopt::Long::Parser->new(
config => [ qw/ pass_through / ],
)->getoptions(
'jobs:1' => \(my $jobs = $ENV{TEST_JOBS}),
'archive=s' => \my $archive,
) or die "$0: Couldn't getoptions()";
TAP::Harness::Archive->new({
jobs => $jobs,
archive => $archive,
($ENV{GIT_TEST_OPTS}
? (test_args => [ split /\s+/, $ENV{GIT_TEST_OPTS} ])
: ()),
extra_properties => {},
})->runtests(@ARGV);

View file

@ -136,7 +136,7 @@ test_expect_success setup '
git format-patch -M --stdout lorem^ >rename-add.patch &&
# reset time
unset test_tick &&
sane_unset test_tick &&
test_tick
'

View file

@ -17,7 +17,7 @@ run_backend() {
GET() {
REQUEST_METHOD="GET" && export REQUEST_METHOD &&
run_backend "/repo.git/$1" &&
unset REQUEST_METHOD &&
sane_unset REQUEST_METHOD &&
if ! grep "Status" act.out >act
then
printf "Status: 200 OK\r\n" >act
@ -30,8 +30,8 @@ POST() {
REQUEST_METHOD="POST" && export REQUEST_METHOD &&
CONTENT_TYPE="application/x-$1-request" && export CONTENT_TYPE &&
run_backend "/repo.git/$1" "$2" &&
unset REQUEST_METHOD &&
unset CONTENT_TYPE &&
sane_unset REQUEST_METHOD &&
sane_unset CONTENT_TYPE &&
if ! grep "Status" act.out >act
then
printf "Status: 200 OK\r\n" >act

View file

@ -95,7 +95,7 @@ test_expect_success 'setup large simple rename' '
'
test_expect_success 'massive simple rename does not spam added files' '
unset GIT_MERGE_VERBOSITY &&
sane_unset GIT_MERGE_VERBOSITY &&
git merge --no-stat simple-rename | grep -v Removing >output &&
test 5 -gt "$(wc -l < output)"
'

View file

@ -96,8 +96,8 @@ test_expect_success 'fresh clone with svn.authors-file in config' '
rm -r "$GIT_DIR" &&
test x = x"$(git config svn.authorsfile)" &&
test_config="$HOME"/.gitconfig &&
unset GIT_DIR &&
unset GIT_CONFIG &&
sane_unset GIT_DIR &&
sane_unset GIT_CONFIG &&
git config --global \
svn.authorsfile "$HOME"/svn-authors &&
test x"$HOME"/svn-authors = x"$(git config svn.authorsfile)" &&

View file

@ -321,7 +321,7 @@ test_expect_success 'use the same checkout for Git and CVS' '
(mkdir shared &&
cd shared &&
unset GIT_DIR &&
sane_unset GIT_DIR &&
cvs co . &&
git init &&
git add " space" &&

View file

@ -25,7 +25,7 @@ test_expect_success 'P4CONFIG and absolute dir clone' '
test_when_finished cleanup_git &&
(
P4CONFIG=p4config && export P4CONFIG &&
unset P4PORT P4CLIENT &&
sane_unset P4PORT P4CLIENT &&
"$GITP4" clone --verbose --dest="$git" //depot
)
'
@ -37,7 +37,7 @@ test_expect_success 'P4CONFIG and relative dir clone' '
test_when_finished cleanup_git &&
(
P4CONFIG=p4config && export P4CONFIG &&
unset P4PORT P4CLIENT &&
sane_unset P4PORT P4CLIENT &&
"$GITP4" clone --verbose --dest="git" //depot
)
'