Sync with maint
authorJunio C Hamano <gitster@pobox.com>
Mon, 13 Feb 2012 19:47:01 +0000 (11:47 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Feb 2012 19:48:00 +0000 (11:48 -0800)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1  2 
Documentation/RelNotes/1.7.10.txt
Makefile
t/Makefile
t/README
t/t4150-am.sh

index 0be3d3a,0000000..4bafa7c
mode 100644,000000..100644
--- /dev/null
@@@ -1,131 -1,0 +1,110 @@@
-     (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).
 +Git v1.7.10 Release Notes
 +=========================
 +
 +Updates since v1.7.9
 +--------------------
 +
 +UI, Workflows & Features
 +
 + * Improved handling of views, labels and branches in git-p4 (in contrib).
 +
 + * Updated command line arguments completion script for zsh (in contrib).
 +
 + * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and
 +   support incremental imports.
 +
 + * "git am" learned to pass "-b" option to underlying "git mailinfo", so
 +   that bracketed string other than "PATCH" at the beginning can be kept.
 +
 + * "git clone" learned "--single-branch" option to limit cloning to a
 +   single branch (surprise!).
 +
 + * "git clone" learned to detach the HEAD in the resulting repository
 +   when the source repository's HEAD does not point to a branch.
 +
 + * The commands in the "git diff" family and "git apply --stat" that
 +   count the number of files changed and the number of lines
 +   inserted/deleted have been updated to match the output from
 +   "diffstat".  This also opens the door to i18n this line.
 +
 + * When showing a patch while ignoring whitespace changes, the context
 +   lines are taken from the postimage, in order to make it easier to
 +   view the output.
 +
 + * "git merge" in an interactive session learned to spawn the editor
 +   by default to let the user edit the auto-generated merge message,
 +   to encourage people to explain their merges better. Legacy scripts
 +   can export MERGE_AUTOEDIT=no to retain the historical behaviour.
 +
 + * "gitweb" allows intermediate entries in the directory hierarchy
 +   that leads to a projects to be clicked, which in turn shows the
 +   list of projects inside that directory.
 +
 +Performance
 +
 + * During "git upload-pack" in respose to "git fetch", unnecessary calls
 +   to parse_object() have been eliminated, to help performance in
 +   repositories with excessive number of refs.
 +
 +Internal Implementation
 +
 + * Recursive call chains in "git index-pack" to deal with long delta
 +   chains have been flattened, to reduce the stack footprint.
 +
 + * Use of add_extra_ref() API is slowly getting removed, to make it
 +   possible to cleanly restructure the overall refs API.
 +
 + * The test suite supports the new "test_pause" helper function.
 +
 + * t/Makefile is adjusted to prevent newer versions of GNU make from
 +   running tests in seemingly random order.
 +
 +Also contains minor documentation updates and code clean-ups.
 +
 +
 +Fixes since v1.7.9
 +------------------
 +
 +Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
 +releases are contained in this release (see release notes to them for
 +details).
 +
 + * "git merge --no-edit $tag" failed to honor the --no-edit option.
 +   (merge 3adab6f jn/merge-no-edit-fix later to maint).
 +
 + * The error message emitted when we see an empty loose object was
 +   not phrased correctly.
 +   (merge 33e42de mm/empty-loose-error-message later to maint).
 +
 + * Many small corner case bugs on "git tag -n" was corrected.
 +   (merge 31fd8d7 jk/maint-tag-show-fixes later to maint).
 +
 + * "git commit" refused to create a commit when entries added with
 +   "add -N" remained in the index, without telling Git what their content
 +   in the next commit should be. We should have created the commit without
 +   these paths.
 +   (merge 3f6d56d jc/maint-commit-ignore-i-t-a later to maint).
 +
 + * Search box in "gitweb" did not accept non-ASCII characters correctly.
 +   (merge 84d9e2d jn/gitweb-search-utf-8 later to maint).
 +
 + * The code to ask for password did not fall back to the terminal
 +   input when GIT_ASKPASS is set but does not work (e.g. lack of X
 +   with GUI askpass helper).
 +   (merge 84d7273 jk/prompt-fallback-to-tty later to maint).
 +
 + * map_user() was not rewriting its output correctly, which resulted
 +   in the user visible symptom that "git blame -e" sometimes showed
 +   excess '>' at the end of email addresses.
 +   (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).
 +
 +---
 +exec >/var/tmp/1
 +O=v1.7.9-249-gaa47ec9
 +echo O=$(git describe)
 +git log --first-parent --oneline ^maint $O..
 +echo
 +git shortlog --no-merges ^maint $O..
diff --combined Makefile
+++ b/Makefile
@@@ -47,9 -47,6 +47,9 @@@ all:
  # A translated Git requires GNU libintl or another gettext implementation,
  # plus libintl-perl at runtime.
  #
 +# Define USE_GETTEXT_SCHEME and set it to 'fallthrough', if you don't trust
 +# the installed gettext translation of the shell scripts output.
 +#
  # Define HAVE_LIBCHARSET_H if you haven't set NO_GETTEXT and you can't
  # trust the langinfo.h's nl_langinfo(CODESET) function to return the
  # current character set. GNU and Solaris have a nl_langinfo(CODESET),
@@@ -342,7 -339,7 +342,7 @@@ pathsep = 
  
  export prefix bindir sharedir sysconfdir gitwebdir localedir
  
- CC = gcc
+ CC = cc
  AR = ar
  RM = rm -f
  DIFF = diff
@@@ -377,11 -374,6 +377,11 @@@ BUILTIN_OBJS 
  BUILT_INS =
  COMPAT_CFLAGS =
  COMPAT_OBJS =
 +XDIFF_H =
 +XDIFF_OBJS =
 +VCSSVN_H =
 +VCSSVN_OBJS =
 +VCSSVN_TEST_OBJS =
  EXTRA_CPPFLAGS =
  LIB_H =
  LIB_OBJS =
@@@ -460,9 -452,6 +460,9 @@@ PROGRAM_OBJS += http-backend.
  PROGRAM_OBJS += sh-i18n--envsubst.o
  PROGRAM_OBJS += credential-store.o
  
 +# Binary suffix, set to .exe for Windows builds
 +X =
 +
  PROGRAMS += $(patsubst %.o,git-%$X,$(PROGRAM_OBJS))
  
  TEST_PROGRAMS_NEED_X += test-chmtime
@@@ -477,13 -466,16 +477,13 @@@ TEST_PROGRAMS_NEED_X += test-index-vers
  TEST_PROGRAMS_NEED_X += test-line-buffer
  TEST_PROGRAMS_NEED_X += test-match-trees
  TEST_PROGRAMS_NEED_X += test-mktemp
 -TEST_PROGRAMS_NEED_X += test-obj-pool
  TEST_PROGRAMS_NEED_X += test-parse-options
  TEST_PROGRAMS_NEED_X += test-path-utils
  TEST_PROGRAMS_NEED_X += test-run-command
  TEST_PROGRAMS_NEED_X += test-sha1
  TEST_PROGRAMS_NEED_X += test-sigchain
 -TEST_PROGRAMS_NEED_X += test-string-pool
  TEST_PROGRAMS_NEED_X += test-subprocess
  TEST_PROGRAMS_NEED_X += test-svn-fe
 -TEST_PROGRAMS_NEED_X += test-treap
  
  TEST_PROGRAMS = $(patsubst %,%$X,$(TEST_PROGRAMS_NEED_X))
  
@@@ -1529,7 -1521,6 +1529,7 @@@ ifdef GETTEXT_POISO
  endif
  ifdef NO_GETTEXT
        BASIC_CFLAGS += -DNO_GETTEXT
 +      USE_GETTEXT_SCHEME ?= fallthrough
  endif
  ifdef NO_STRCASESTR
        COMPAT_CFLAGS += -DNO_STRCASESTR
@@@ -1777,26 -1768,6 +1777,26 @@@ ifdef ASCIIDOC
        export ASCIIDOC7
  endif
  
 +### profile feedback build
 +#
 +
 +# Can adjust this to be a global directory if you want to do extended
 +# data gathering
 +PROFILE_DIR := $(CURDIR)
 +
 +ifeq ("$(PROFILE)","GEN")
 +      CFLAGS += -fprofile-generate=$(PROFILE_DIR) -DNO_NORETURN=1
 +      EXTLIBS += -lgcov
 +      export CCACHE_DISABLE=t
 +      V=1
 +else
 +ifneq ("$(PROFILE)","")
 +      CFLAGS += -fprofile-use=$(PROFILE_DIR) -fprofile-correction -DNO_NORETURN=1
 +      export CCACHE_DISABLE=t
 +      V=1
 +endif
 +endif
 +
  # Shell quote (do not use $(call) to accommodate ancient setups);
  
  SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER))
@@@ -1853,17 -1824,7 +1853,17 @@@ export DIFF TAR INSTALL DESTDIR SHELL_P
  
  SHELL = $(SHELL_PATH)
  
 -all:: shell_compatibility_test $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) $(OTHER_PROGRAMS) GIT-BUILD-OPTIONS
 +all:: shell_compatibility_test
 +
 +ifeq "$(PROFILE)" "BUILD"
 +ifeq ($(filter all,$(MAKECMDGOALS)),all)
 +all:: profile-clean
 +      $(MAKE) PROFILE=GEN all
 +      $(MAKE) PROFILE=GEN -j1 test
 +endif
 +endif
 +
 +all:: $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) $(OTHER_PROGRAMS) GIT-BUILD-OPTIONS
  ifneq (,$X)
        $(QUIET_BUILT_IN)$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test -d '$p' -o '$p' -ef '$p$X' || $(RM) '$p';)
  endif
@@@ -1926,7 -1887,6 +1926,7 @@@ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|
      -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
      -e 's|@@LOCALEDIR@@|$(localedir_SQ)|g' \
      -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
 +    -e 's/@@USE_GETTEXT_SCHEME@@/$(USE_GETTEXT_SCHEME)/g' \
      -e $(BROKEN_PATH_FIX) \
      $@.sh >$@+
  endef
@@@ -2028,24 -1988,12 +2028,24 @@@ GIT_OBJS := $(LIB_OBJS) $(BUILTIN_OBJS
  ifndef NO_CURL
        GIT_OBJS += http.o http-walker.o remote-curl.o
  endif
 -XDIFF_OBJS = xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o \
 -      xdiff/xmerge.o xdiff/xpatience.o xdiff/xhistogram.o
 -VCSSVN_OBJS = vcs-svn/string_pool.o vcs-svn/line_buffer.o \
 -      vcs-svn/repo_tree.o vcs-svn/fast_export.o vcs-svn/svndump.o
 -VCSSVN_TEST_OBJS = test-obj-pool.o test-string-pool.o \
 -      test-line-buffer.o test-treap.o
 +
 +XDIFF_OBJS += xdiff/xdiffi.o
 +XDIFF_OBJS += xdiff/xprepare.o
 +XDIFF_OBJS += xdiff/xutils.o
 +XDIFF_OBJS += xdiff/xemit.o
 +XDIFF_OBJS += xdiff/xmerge.o
 +XDIFF_OBJS += xdiff/xpatience.o
 +XDIFF_OBJS += xdiff/xhistogram.o
 +
 +VCSSVN_OBJS += vcs-svn/line_buffer.o
 +VCSSVN_OBJS += vcs-svn/sliding_window.o
 +VCSSVN_OBJS += vcs-svn/repo_tree.o
 +VCSSVN_OBJS += vcs-svn/fast_export.o
 +VCSSVN_OBJS += vcs-svn/svndiff.o
 +VCSSVN_OBJS += vcs-svn/svndump.o
 +
 +VCSSVN_TEST_OBJS += test-line-buffer.o
 +
  OBJECTS := $(GIT_OBJS) $(XDIFF_OBJS) $(VCSSVN_OBJS)
  
  dep_files := $(foreach f,$(OBJECTS),$(dir $f).depend/$(notdir $f).d)
@@@ -2164,25 -2112,16 +2164,25 @@@ connect.o transport.o url.o http-backen
  http-fetch.o http-walker.o remote-curl.o transport.o walker.o: walker.h
  http.o http-walker.o http-push.o http-fetch.o remote-curl.o: http.h url.h
  
 -xdiff-interface.o $(XDIFF_OBJS): \
 -      xdiff/xinclude.h xdiff/xmacros.h xdiff/xdiff.h xdiff/xtypes.h \
 -      xdiff/xutils.h xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
 +XDIFF_H += xdiff/xinclude.h
 +XDIFF_H += xdiff/xmacros.h
 +XDIFF_H += xdiff/xdiff.h
 +XDIFF_H += xdiff/xtypes.h
 +XDIFF_H += xdiff/xutils.h
 +XDIFF_H += xdiff/xprepare.h
 +XDIFF_H += xdiff/xdiffi.h
 +XDIFF_H += xdiff/xemit.h
 +
 +xdiff-interface.o $(XDIFF_OBJS): $(XDIFF_H)
  
 -$(VCSSVN_OBJS) $(VCSSVN_TEST_OBJS): $(LIB_H) \
 -      vcs-svn/obj_pool.h vcs-svn/trp.h vcs-svn/string_pool.h \
 -      vcs-svn/line_buffer.h vcs-svn/repo_tree.h vcs-svn/fast_export.h \
 -      vcs-svn/svndump.h
 +VCSSVN_H += vcs-svn/line_buffer.h
 +VCSSVN_H += vcs-svn/sliding_window.h
 +VCSSVN_H += vcs-svn/repo_tree.h
 +VCSSVN_H += vcs-svn/fast_export.h
 +VCSSVN_H += vcs-svn/svndiff.h
 +VCSSVN_H += vcs-svn/svndump.h
  
 -test-svn-fe.o: vcs-svn/svndump.h
 +$(VCSSVN_OBJS) $(VCSSVN_TEST_OBJS): $(LIB_H) $(VCSSVN_H)
  endif
  
  exec_cmd.sp exec_cmd.s exec_cmd.o: EXTRA_CPPFLAGS = \
@@@ -2325,7 -2264,7 +2325,7 @@@ cscope
  ### Detect prefix changes
  TRACK_CFLAGS = $(CC):$(subst ','\'',$(ALL_CFLAGS)):\
               $(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ):\
 -             $(localedir_SQ)
 +             $(localedir_SQ):$(USE_GETTEXT_SCHEME)
  
  GIT-CFLAGS: FORCE
        @FLAGS='$(TRACK_CFLAGS)'; \
@@@ -2410,6 -2349,8 +2410,6 @@@ test-line-buffer$X: vcs-svn/lib.
  
  test-parse-options$X: parse-options.o parse-options-cb.o
  
 -test-string-pool$X: vcs-svn/lib.a
 -
  test-svn-fe$X: vcs-svn/lib.a
  
  .PRECIOUS: $(TEST_OBJS)
@@@ -2611,11 -2552,7 +2611,11 @@@ distclean: clea
        $(RM) configure
        $(RM) po/git.pot
  
 -clean:
 +profile-clean:
 +      $(RM) $(addsuffix *.gcda,$(addprefix $(PROFILE_DIR)/, $(object_dirs)))
 +      $(RM) $(addsuffix *.gcno,$(addprefix $(PROFILE_DIR)/, $(object_dirs)))
 +
 +clean: profile-clean
        $(RM) *.o block-sha1/*.o ppc/*.o compat/*.o compat/*/*.o xdiff/*.o vcs-svn/*.o \
                builtin/*.o $(LIB_FILE) $(XDIFF_LIB) $(VCSSVN_LIB)
        $(RM) $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) git$X
@@@ -2645,7 -2582,7 +2645,7 @@@ ifndef NO_TCLT
  endif
        $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
  
 -.PHONY: all install clean strip
 +.PHONY: all install profile-clean clean strip
  .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
  .PHONY: FORCE cscope
  
@@@ -2755,3 -2692,18 +2755,3 @@@ cover_db: coverage-repor
  cover_db_html: cover_db
        cover -report html -outputdir cover_db_html cover_db
  
 -### profile feedback build
 -#
 -.PHONY: profile-all profile-clean
 -
 -PROFILE_GEN_CFLAGS := $(CFLAGS) -fprofile-generate -DNO_NORETURN=1
 -PROFILE_USE_CFLAGS := $(CFLAGS) -fprofile-use -fprofile-correction -DNO_NORETURN=1
 -
 -profile-clean:
 -      $(RM) $(addsuffix *.gcda,$(object_dirs))
 -      $(RM) $(addsuffix *.gcno,$(object_dirs))
 -
 -profile-all: profile-clean
 -      $(MAKE) CFLAGS="$(PROFILE_GEN_CFLAGS)" all
 -      $(MAKE) CFLAGS="$(PROFILE_GEN_CFLAGS)" -j1 test
 -      $(MAKE) CFLAGS="$(PROFILE_USE_CFLAGS)" all
diff --combined t/Makefile
@@@ -17,9 -17,9 +17,9 @@@ DEFAULT_TEST_TARGET ?= tes
  # Shell quote;
  SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
  
 -T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
 -TSVN = $(wildcard t91[0-9][0-9]-*.sh)
 -TGITWEB = $(wildcard t95[0-9][0-9]-*.sh)
 +T = $(sort $(wildcard t[0-9][0-9][0-9][0-9]-*.sh))
 +TSVN = $(sort $(wildcard t91[0-9][0-9]-*.sh))
 +TGITWEB = $(sort $(wildcard t95[0-9][0-9]-*.sh))
  
  all: $(DEFAULT_TEST_TARGET)
  
@@@ -73,42 -73,4 +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
diff --combined t/README
+++ b/t/README
@@@ -548,19 -548,6 +548,19 @@@ library for your script to use
                ...
        '
  
 + - test_pause
 +
 +      This command is useful for writing and debugging tests and must be
 +      removed before submitting. It halts the execution of the test and
 +      spawns a shell in the trash directory. Exit the shell to continue
 +      the test. Example:
 +
 +      test_expect_success 'test' '
 +              git do-something >actual &&
 +              test_pause &&
 +              test_cmp expected actual
 +      '
 +
  Prerequisites
  -------------
  
@@@ -671,76 -658,3 +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.
diff --combined t/t4150-am.sh
@@@ -136,7 -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
  '
  
@@@ -237,7 -237,7 +237,7 @@@ test_expect_success 'am stays in branch
  
  test_expect_success 'am --signoff does not add Signed-off-by: line if already there' '
        git format-patch --stdout HEAD^ >patch3 &&
 -      sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2," patch3 >patch4 &&
 +      sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2] [foo," patch3 >patch4 &&
        rm -fr .git/rebase-apply &&
        git reset --hard &&
        git checkout HEAD^ &&
@@@ -259,17 -259,7 +259,17 @@@ test_expect_success 'am --keep really k
        git am --keep patch4 &&
        ! test -d .git/rebase-apply &&
        git cat-file commit HEAD >actual &&
 -      grep "Re: Re: Re: \[PATCH 1/5 v2\] third" actual
 +      grep "Re: Re: Re: \[PATCH 1/5 v2\] \[foo\] third" actual
 +'
 +
 +test_expect_success 'am --keep-non-patch really keeps the non-patch part' '
 +      rm -fr .git/rebase-apply &&
 +      git reset --hard &&
 +      git checkout HEAD^ &&
 +      git am --keep-non-patch patch4 &&
 +      ! test -d .git/rebase-apply &&
 +      git cat-file commit HEAD >actual &&
 +      grep "^\[foo\] third" actual
  '
  
  test_expect_success 'am -3 falls back to 3-way merge' '