gitweb.git
Merge tag 'post183-for-junio' of github.com/msysgit/gitJunio C Hamano Fri, 7 Jun 2013 14:38:37 +0000 (07:38 -0700)

Merge tag 'post183-for-junio' of github.com/msysgit/git

Collected msysgit build patches for upstream

This set of patches collects a number of build fixes that have been
used on the msysgit port for a while and merging upstream should
simplify future maintenance.

* tag 'post183-for-junio' of http://github.com/msysgit/git:
Set the default help format to html for msys builds.
Ensure the resource file is rebuilt when the version changes.
Windows resource: handle dashes in the Git version gracefully
Provide a Windows version resource for the git executables.
msysgit: Add the --large-address-aware linker directive to the makefile.
Define NO_GETTEXT for Git for Windows
Makefile: Do not use OLD_ICONV on MINGW anymore

Update draft release notes to 1.8.4Junio C Hamano Thu, 6 Jun 2013 21:42:56 +0000 (14:42 -0700)

Update draft release notes to 1.8.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'rj/mingw-compat-st-mode-bits'Junio C Hamano Thu, 6 Jun 2013 19:19:06 +0000 (12:19 -0700)

Merge branch 'rj/mingw-compat-st-mode-bits'

* rj/mingw-compat-st-mode-bits:
path: Fix a sparse warning

Merge branch 'sb/archive-zip-double-assignment-fix'Junio C Hamano Thu, 6 Jun 2013 19:19:04 +0000 (12:19 -0700)

Merge branch 'sb/archive-zip-double-assignment-fix'

* sb/archive-zip-double-assignment-fix:
archive-zip:write_zip_entry: Remove second reset of size variable to zero.

Merge branch 'rr/push-head'Junio C Hamano Thu, 6 Jun 2013 19:19:00 +0000 (12:19 -0700)

Merge branch 'rr/push-head'

"git push $there HEAD:branch" did not resolve HEAD early enough, so
it was easy to flip it around while push is still going on and push
out a branch that the user did not originally intended when the
command was started.

* rr/push-head:
push: make push.default = current use resolved HEAD
push: fail early with detached HEAD and current
push: factor out the detached HEAD error message

Merge branch 'ks/difftool-dir-diff-copy-fix'Junio C Hamano Thu, 6 Jun 2013 19:18:47 +0000 (12:18 -0700)

Merge branch 'ks/difftool-dir-diff-copy-fix'

"difftool --dir-diff" did not copy back changes made by the
end-user in the diff tool backend to the working tree in some
cases.

* ks/difftool-dir-diff-copy-fix:
difftool --dir-diff: allow changing any clean working tree file

Merge branch 'fc/show-branch-in-rebase-am'Junio C Hamano Thu, 6 Jun 2013 19:18:41 +0000 (12:18 -0700)

Merge branch 'fc/show-branch-in-rebase-am'

The bash prompt code (in contrib/) displayed the name of the branch
being rebased when "rebase -i/-m/-p" modes are in use, but not the
plain vanilla "rebase".

* fc/show-branch-in-rebase-am:
prompt: fix for simple rebase

Merge branch 'nd/clone-connectivity-shortcut'Junio C Hamano Thu, 6 Jun 2013 19:17:55 +0000 (12:17 -0700)

Merge branch 'nd/clone-connectivity-shortcut'

Special case "git clone" and use lighter-weight implementation to
check the completeness of the history behind refs.

* nd/clone-connectivity-shortcut:
clone: open a shortcut for connectivity check
index-pack: remove dead code (it should never happen)
fetch-pack: prepare updated shallow file before fetching the pack
clone: let the user know when check_everything_connected is run

Merge branch 'nd/prune-packed-dryrun-verbose'Junio C Hamano Thu, 6 Jun 2013 19:17:52 +0000 (12:17 -0700)

Merge branch 'nd/prune-packed-dryrun-verbose'

* nd/prune-packed-dryrun-verbose:
prune-packed: avoid implying "1" is DRY_RUN in prune_packed_objects()

Merge branch 'fc/transport-helper-no-refspec'Junio C Hamano Thu, 6 Jun 2013 19:17:22 +0000 (12:17 -0700)

Merge branch 'fc/transport-helper-no-refspec'

With "export" remote-helper protocol,

(1) a push that tries to update a remote ref whose name is
different from the pushing side does not work yet, and

(2) the helper may not know how to do --dry-run

Detect such problematic cases and disable them for now.

* fc/transport-helper-no-refspec:
transport-helper: check if the dry-run is supported
transport-helper: barf when user tries old:new

Update draft release notes to 1.8.4Junio C Hamano Wed, 5 Jun 2013 22:14:02 +0000 (15:14 -0700)

Update draft release notes to 1.8.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'rs/commit-m-no-edit'Junio C Hamano Wed, 5 Jun 2013 21:59:53 +0000 (14:59 -0700)

Merge branch 'rs/commit-m-no-edit'

"git commit --allow-empty-message -m ''" should not start an
editor.

* rs/commit-m-no-edit:
commit: don't start editor if empty message is given with -m

Merge branch 'fc/send-email-chainreplyto-warning'Junio C Hamano Wed, 5 Jun 2013 21:59:34 +0000 (14:59 -0700)

Merge branch 'fc/send-email-chainreplyto-warning'

An overdue removal of "behaviour changed at 1.7.0; if you were
living in a cave, here is what you can adjust to it" message.

* fc/send-email-chainreplyto-warning:
send-email: remove warning about unset chainreplyto

Merge branch 'fc/cleanups'Junio C Hamano Wed, 5 Jun 2013 21:59:31 +0000 (14:59 -0700)

Merge branch 'fc/cleanups'

* fc/cleanups:
test: rebase: fix --interactive test
test: trivial cleanups
remote: trivial style cleanup

Merge branch 'fc/makefile'Junio C Hamano Wed, 5 Jun 2013 21:56:56 +0000 (14:56 -0700)

Merge branch 'fc/makefile'

Update Makefile to use handy automatic variables where appropriate,
and stop installing a script that is only used for testing.

* fc/makefile:
build: do not install git-remote-testpy
build: add NO_INSTALL variable
build: cleanup using $<
build: cleanup using $^
build: trivial simplification

Merge branch 'nd/urls-doc-no-file-hyperlink-fix'Junio C Hamano Wed, 5 Jun 2013 21:56:51 +0000 (14:56 -0700)

Merge branch 'nd/urls-doc-no-file-hyperlink-fix'

* nd/urls-doc-no-file-hyperlink-fix:
urls.txt: avoid auto converting to hyperlink

Merge branch 'tr/push-no-verify-doc'Junio C Hamano Wed, 5 Jun 2013 21:56:48 +0000 (14:56 -0700)

Merge branch 'tr/push-no-verify-doc'

"git push --[no-]verify" was not documented.

* tr/push-no-verify-doc:
Document push --no-verify

Merge branch 'tg/maint-zsh-svn-remote-prompt'Junio C Hamano Wed, 5 Jun 2013 21:56:41 +0000 (14:56 -0700)

Merge branch 'tg/maint-zsh-svn-remote-prompt'

zsh prompt script that borrowed from bash prompt script did not
work due to slight differences in array variable notation between
these two shells.

* tg/maint-zsh-svn-remote-prompt:
prompt: fix show upstream with svn and zsh

Merge branch 'th/bisect-skip-report-range-fix'Junio C Hamano Wed, 5 Jun 2013 21:56:38 +0000 (14:56 -0700)

Merge branch 'th/bisect-skip-report-range-fix'

Fix for an additional bisect log comments.

* th/bisect-skip-report-range-fix:
bisect: Fix log output for multi-parent skip ranges

Merge branch 'dm/unbash-subtree'Junio C Hamano Wed, 5 Jun 2013 21:56:24 +0000 (14:56 -0700)

Merge branch 'dm/unbash-subtree'

It turns out that git-subtree script does not have to be run with
bash.

* dm/unbash-subtree:
contrib/git-subtree: Use /bin/sh interpreter instead of /bin/bash

Merge branch 'rr/zsh-color-prompt'Junio C Hamano Wed, 5 Jun 2013 21:55:10 +0000 (14:55 -0700)

Merge branch 'rr/zsh-color-prompt'

Prompt support (in contrib/) for zsh is updated to use colors.

* rr/zsh-color-prompt:
prompt: colorize ZSH prompt
prompt: factor out gitstring coloring logic
prompt: introduce GIT_PS1_STATESEPARATOR

Merge branch 'jc/core-checkstat'Junio C Hamano Wed, 5 Jun 2013 21:53:07 +0000 (14:53 -0700)

Merge branch 'jc/core-checkstat'

The configuration variable core.checkstat was advertised in the
documentation but the code expected core.statinfo instead.

For now, we accept both core.checkstat and core.statinfo, but the
latter will be removed in the longer term.

* jc/core-checkstat:
deprecate core.statinfo at Git 2.0 boundary

Merge branch 'maint'Junio C Hamano Tue, 4 Jun 2013 22:25:34 +0000 (15:25 -0700)

Merge branch 'maint'

* maint:
t/README: test_must_fail is for testing Git

t/README: test_must_fail is for testing GitJunio C Hamano Tue, 4 Jun 2013 16:50:12 +0000 (09:50 -0700)

t/README: test_must_fail is for testing Git

When a test wants to make sure there is no <string> in an output
file, we should just say "! grep string output".

"test_must_fail" is there only to test Git command and catch unusual
deaths we know about (e.g. segv) as an error, not as an expected
failure. "test_must_fail grep string output" is unnecessary, as
we are not making sure the system binaries do not dump core or
anything like that.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Set the default help format to html for msys builds.Pat Thoyts Thu, 21 Jun 2012 11:24:14 +0000 (12:24 +0100)

Set the default help format to html for msys builds.

This resolves issue #19 by setting the compiled default to html in msys
builds following the changes introduced by commit
1cc8af0 "help: use HTML as the default help format on Windows"

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

Ensure the resource file is rebuilt when the version... Pat Thoyts Fri, 1 Jun 2012 22:29:33 +0000 (23:29 +0100)

Ensure the resource file is rebuilt when the version changes.

Acked-by: Erik Faye-Lund <kusmabite@gmail.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

Windows resource: handle dashes in the Git version... Johannes Schindelin Thu, 31 May 2012 17:53:45 +0000 (12:53 -0500)

Windows resource: handle dashes in the Git version gracefully

Reported by postiffm as issue #14.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Provide a Windows version resource for the git executables.Pat Thoyts Wed, 23 May 2012 23:56:24 +0000 (00:56 +0100)

Provide a Windows version resource for the git executables.

Embeds the git version and description into the git executable thus
implementing the request in issue #5.

Acked-by: Heiko Voigt <hvoigt@hvoigt.net>
Acked-by: Sebastian Schuberth <sschuberth@gmail.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

msysgit: Add the --large-address-aware linker directive... Pierre le Riche Mon, 28 May 2012 07:46:54 +0000 (09:46 +0200)

msysgit: Add the --large-address-aware linker directive to the makefile.

This has the effect of increasing the address space from 2GB to 4GB under
64-bit Windows, reducing the likelihood of an "out of memory" error when
e.g. repacking a large repository. The test suite passes with this
patch, with and without the MEM_TOP_DOWN flag added to all VirtualAlloc
calls. While this is no guarantee that there are no issues with large
memory support (it could break Git on other setups than mine, for
example), it at least increases the chance that nothing obvious goes wrong
(such as errors introduced by faulty sign extension, say, with ssize_t).

[PT: Resolves github issue #12]

Signed-off-by: Pierre le Riche <github@pleasedontspam.me>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

Define NO_GETTEXT for Git for WindowsJohannes Schindelin Thu, 5 Jan 2012 22:41:41 +0000 (16:41 -0600)

Define NO_GETTEXT for Git for Windows

The dreaded "your vnsprintf is broken (returned -1)" error is back. At
least with the libintl version we have. So for the moment, just work
around the issue by _not_ using gettext.

Ah, I wish that my attempt at implementing a custom strbuf_vaddf() would
not have been brushed aside so rashly. Oh well. Time saved on maintaining
that thing, I guess (although more time went into working around coping
with existing implementations).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Makefile: Do not use OLD_ICONV on MINGW anymoreSebastian Schuberth Wed, 23 Nov 2011 09:41:01 +0000 (10:41 +0100)

Makefile: Do not use OLD_ICONV on MINGW anymore

We are building libiconv now the same way as upstream MinGW does, so we do
not need OLD_ICONV anymore when compiling Git either in msysGit or
mingwGitDevEnv.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>

Sync with maintJunio C Hamano Mon, 3 Jun 2013 20:00:03 +0000 (13:00 -0700)

Sync with maint

Merge branch 'kb/status-ignored-optim-2'Junio C Hamano Mon, 3 Jun 2013 19:58:56 +0000 (12:58 -0700)

Merge branch 'kb/status-ignored-optim-2'

Fix 1.8.3 regressions in the .gitignore path exclusion logic.

* kb/status-ignored-optim-2:
dir.c: fix ignore processing within not-ignored directories

sha1_file: trivial style cleanupFelipe Contreras Thu, 30 May 2013 13:56:21 +0000 (08:56 -0500)

sha1_file: trivial style cleanup

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test: fix post rewrite hook reportFelipe Contreras Thu, 30 May 2013 13:46:35 +0000 (08:46 -0500)

test: fix post rewrite hook report

First expected, then actual.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.8.4Junio C Hamano Sun, 2 Jun 2013 23:02:21 +0000 (16:02 -0700)

Update draft release notes to 1.8.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'tr/line-log'Junio C Hamano Sun, 2 Jun 2013 23:00:44 +0000 (16:00 -0700)

Merge branch 'tr/line-log'

* tr/line-log:
git-log(1): remove --full-line-diff description
line-log: fix documentation formatting
log -L: improve comments in process_all_files()
log -L: store the path instead of a diff_filespec
log -L: test merge of parallel modify/rename
t4211: pass -M to 'git log -M -L...' test
log -L: fix overlapping input ranges
log -L: check range set invariants when we look it up
Speed up log -L... -M
log -L: :pattern:file syntax to find by funcname
Implement line-history search (git log -L)
Export rewrite_parents() for 'log -L'
Refactor parse_loc

Merge branch 'mc/describe-first-parent'Junio C Hamano Sun, 2 Jun 2013 22:59:49 +0000 (15:59 -0700)

Merge branch 'mc/describe-first-parent'

* mc/describe-first-parent:
describe: Add --first-parent option

Merge branch 'rs/tar-tests'Junio C Hamano Sun, 2 Jun 2013 22:59:46 +0000 (15:59 -0700)

Merge branch 'rs/tar-tests'

* rs/tar-tests:
t5000: test long filenames
t5000: simplify tar-tree tests
t5000: use check_tar for prefix test
t5000: factor out check_tar
t5000, t5003: create directories for extracted files lazily
t5000: integrate export-subst tests into regular tests

Merge branch 'jc/strbuf-branchname-fix'Junio C Hamano Sun, 2 Jun 2013 22:58:53 +0000 (15:58 -0700)

Merge branch 'jc/strbuf-branchname-fix'

"git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22"
incorrectly when your previous branch was "frotz" (it should be
rewritten to "git merge frotz~22" instead).

* jc/strbuf-branchname-fix:
strbuf_branchname(): do not double-expand @{-1}~22

Merge branch 'jk/fetch-always-update-tracking'Junio C Hamano Sun, 2 Jun 2013 22:57:26 +0000 (15:57 -0700)

Merge branch 'jk/fetch-always-update-tracking'

"git fetch origin master" unlike "git fetch origin" or "git fetch"
did not update "refs/remotes/origin/master"; this was an early
design decision to keep the update of remote tracking branches
predictable, but in practice it turns out that people find it more
convenient to opportunisticly update them whenever we have a chance,
and we have been updating them when we run "git push" which already
breaks the original "predictability" anyway.

Now such a fetch does update refs/remotes/origin/master.

* jk/fetch-always-update-tracking:
fetch: don't try to update unfetched tracking refs
fetch: opportunistically update tracking refs
refactor "ref->merge" flag
fetch/pull doc: untangle meaning of bare <ref>
t5510: start tracking-ref tests from a known state

Merge branch 'tr/coverage'Junio C Hamano Sun, 2 Jun 2013 22:57:18 +0000 (15:57 -0700)

Merge branch 'tr/coverage'

Update the test coverage support that was left to bitrot for some
time.

* tr/coverage:
coverage: build coverage-untested-functions by default
coverage: set DEFAULT_TEST_TARGET to avoid using prove
coverage: do not delete .gcno files before building
coverage: split build target into compile and test

Merge branch 'mk/combine-diff-context-horizon-fix'Junio C Hamano Sun, 2 Jun 2013 22:56:46 +0000 (15:56 -0700)

Merge branch 'mk/combine-diff-context-horizon-fix'

"git diff -c -p" was not showing a deleted line from a hunk when
another hunk immediately begins where the earlier one ends.

* mk/combine-diff-context-horizon-fix:
combine-diff.c: Fix output when changes are exactly 3 lines apart

Merge branch 'kb/ancestry-path-threedots'Junio C Hamano Sun, 2 Jun 2013 22:56:11 +0000 (15:56 -0700)

Merge branch 'kb/ancestry-path-threedots'

"git log --ancestry-path A...B" did not work as expected, as it did
not pay attention to the fact that the merge base between A and B
was the bottom of the range being specified.

* kb/ancestry-path-threedots:
revision.c: treat A...B merge bases as if manually specified
t6019: demonstrate --ancestry-path A...B breakage

Merge branch 'jc/t5551-posix-sed-bre'Junio C Hamano Sun, 2 Jun 2013 22:56:08 +0000 (15:56 -0700)

Merge branch 'jc/t5551-posix-sed-bre'

POSIX fix for a test script.

* jc/t5551-posix-sed-bre:
t5551: do not use unportable sed '\+'

Merge branch 'da/darwin'Junio C Hamano Sun, 2 Jun 2013 22:55:48 +0000 (15:55 -0700)

Merge branch 'da/darwin'

Newer MacOS X encourages the programs to compile and link with
their CommonCrypto, not with OpenSSL.

* da/darwin:
imap-send: eliminate HMAC deprecation warnings on Mac OS X
cache.h: eliminate SHA-1 deprecation warnings on Mac OS X
Makefile: add support for Apple CommonCrypto facility
Makefile: fix default regex settings on Darwin

Merge branch 'fc/macos-x-clipped-write'Junio C Hamano Sun, 2 Jun 2013 22:54:54 +0000 (15:54 -0700)

Merge branch 'fc/macos-x-clipped-write'

Mac OS X does not like to write(2) more than INT_MAX number of
bytes.

* fc/macos-x-clipped-write:
compate/clipped-write.c: large write(2) fails on Mac OS X/XNU

Merge branch 'vv/help-unknown-ref'Junio C Hamano Sun, 2 Jun 2013 22:54:06 +0000 (15:54 -0700)

Merge branch 'vv/help-unknown-ref'

Detect "git merge foo" that might have meant "git merge origin/foo"
and give an error message that is more specific than "foo is not
something we can merge".

* vv/help-unknown-ref:
merge: use help_unknown_ref()
help: add help_unknown_ref()

Merge branch 'nd/clone-local-with-colon'Junio C Hamano Sun, 2 Jun 2013 22:52:22 +0000 (15:52 -0700)

Merge branch 'nd/clone-local-with-colon'

"git clone foo/bar:baz" cannot be a request to clone from a remote
over git-over-ssh specified in the scp style. Detect this case and
clone from a local repository at "foo/bar:baz".

* nd/clone-local-with-colon:
clone: allow cloning local paths with colons in them

Merge branch 'fc/fast-export-persistent-marks'Junio C Hamano Sun, 2 Jun 2013 22:48:28 +0000 (15:48 -0700)

Merge branch 'fc/fast-export-persistent-marks'

Optimization for fast-export by avoiding unnecessarily resolving
arbitrary object name and parsing object when only presence and
type information is necessary, etc.

* fc/fast-export-persistent-marks:
fast-{import,export}: use get_sha1_hex() to read from marks file
fast-export: don't parse commits while reading marks file
fast-export: do not parse non-commit objects while reading marks file

Merge branch 'rs/empty-archive'Junio C Hamano Sun, 2 Jun 2013 22:48:24 +0000 (15:48 -0700)

Merge branch 'rs/empty-archive'

Fixes tests added in 1.8.2 era that are broken on BSDs.

* rs/empty-archive:
t5004: resurrect original empty tar archive test
t5004: avoid using tar for checking emptiness of archive

Merge branch 'rh/merge-options-doc-fix'Junio C Hamano Sun, 2 Jun 2013 22:48:22 +0000 (15:48 -0700)

Merge branch 'rh/merge-options-doc-fix'

* rh/merge-options-doc-fix:
Documentation/merge-options.txt: restore `-e` option

Merge branch 'an/diff-index-doc'Junio C Hamano Sun, 2 Jun 2013 22:48:17 +0000 (15:48 -0700)

Merge branch 'an/diff-index-doc'

* an/diff-index-doc:
Documentation/diff-index: mention two modes of operation

Merge branch 'fc/completion'Junio C Hamano Sun, 2 Jun 2013 22:48:12 +0000 (15:48 -0700)

Merge branch 'fc/completion'

* fc/completion:
completion: remove __git_index_file_list_filter()
completion: add space after completed filename
completion: add hack to enable file mode in bash < 4
completion: refactor __git_complete_index_file()
completion: refactor diff_index wrappers
completion: use __gitcompadd for __gitcomp_file
completion; remove unuseful comments
completion: document tilde expansion failure in tests
completion: add file completion tests

Merge branch 'fc/zsh-leftover-bits'Junio C Hamano Sun, 2 Jun 2013 22:47:33 +0000 (15:47 -0700)

Merge branch 'fc/zsh-leftover-bits'

* fc/zsh-leftover-bits:
completion: zsh: improve bash script loading
completion: synchronize zsh wrapper
completion: cleanup zsh wrapper

dir.c: fix ignore processing within not-ignored directoriesKarsten Blees Wed, 29 May 2013 20:32:36 +0000 (22:32 +0200)

dir.c: fix ignore processing within not-ignored directories

As of 95c6f271 "dir.c: unify is_excluded and is_path_excluded APIs", the
is_excluded API no longer recurses into directories that match an ignore
pattern, and returns the directory's ignored state for all contained paths.

This is OK for normal ignore patterns, i.e. ignoring a directory affects
the entire contents recursively.

Unfortunately, this also "works" for negated ignore patterns ('!dir'), i.e.
the entire contents is "not-ignored" recursively, regardless of ignore
patterns that match the contents directly.

In prep_exclude, skip recursing into a directory only if it is really
ignored (i.e. the ignore pattern is not negated).

Signed-off-by: Karsten Blees <blees@dcon.de>
Tested-by: Øystein Walle <oystwa@gmail.com>
Reviewed-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

path: Fix a sparse warningRamsay Jones Wed, 29 May 2013 23:53:28 +0000 (00:53 +0100)

path: Fix a sparse warning

On MinGW, sparse issues an "'get_st_mode_bits' not declared. Should
it be static?" warning. The MinGW and MSVC builds do not see the
declaration of this function, within git-compat-util.h, due to its
placement within an preprocessor conditional.

In order to suppress the warning, we simply move the declaration to
the top level of the header.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: make push.default = current use resolved HEADRamkumar Ramachandra Wed, 29 May 2013 19:21:51 +0000 (00:51 +0530)

push: make push.default = current use resolved HEAD

With this change, the output of the push (with push.default set to
current) changes subtly from:

$ git push
...
* [new branch] HEAD -> push-current-head

to:

$ git push
...
* [new branch] push-current-head -> push-current-head

This patch was written with a different motivation. There is a problem
unique to push.default = current:

# on branch push-current-head
$ git push
# on another terminal
$ git checkout master
# return to the first terminal
# the push tried to push master!

This happens because the 'git checkout' on the second terminal races
with the 'git push' on the first terminal. Although this patch does not
solve the core problem (there is still no guarantee that 'git push' on
the first terminal will resolve HEAD before 'git checkout' changes HEAD
on the second), it works in practice.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: fail early with detached HEAD and currentRamkumar Ramachandra Wed, 29 May 2013 19:21:50 +0000 (00:51 +0530)

push: fail early with detached HEAD and current

Setting push.default to current adds the refspec "HEAD" for the
transport layer to handle. If "HEAD" doesn't resolve to a branch (and
since no refspec rhs is specified), the push fails after some time with
a cryptic error message:

$ git push
error: unable to push to unqualified destination: HEAD
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@github.com:artagnon/git'

Fail early with a nicer error message:

$ git push
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

git push ram HEAD:<name-of-remote-branch>

Just like in the upstream and simple cases.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Wed, 29 May 2013 22:21:47 +0000 (15:21 -0700)

Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start 1.8.3.1 maintenance trackJunio C Hamano Wed, 29 May 2013 22:21:15 +0000 (15:21 -0700)

Start 1.8.3.1 maintenance track

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.8.2' into maintJunio C Hamano Wed, 29 May 2013 22:20:36 +0000 (15:20 -0700)

Merge branch 'maint-1.8.2' into maint

* maint-1.8.2:
trivial: Add missing period in documentation

Start 1.8.4 cycleJunio C Hamano Wed, 29 May 2013 22:19:12 +0000 (15:19 -0700)

Start 1.8.4 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jn/config-ignore-inaccessible'Junio C Hamano Wed, 29 May 2013 21:30:10 +0000 (14:30 -0700)

Merge branch 'jn/config-ignore-inaccessible'

When $HOME is misconfigured to point at an unreadable directory, we
used to complain and die. This loosens the check.

* jn/config-ignore-inaccessible:
config: allow inaccessible configuration under $HOME

Merge branch 'jk/lookup-object-prefer-latest'Junio C Hamano Wed, 29 May 2013 21:29:58 +0000 (14:29 -0700)

Merge branch 'jk/lookup-object-prefer-latest'

Optimizes object lookup when the object hashtable starts to become
crowded.

* jk/lookup-object-prefer-latest:
lookup_object: prioritize recently found objects

Merge branch 'jk/subtree-do-not-push-if-split-fails'Junio C Hamano Wed, 29 May 2013 21:29:53 +0000 (14:29 -0700)

Merge branch 'jk/subtree-do-not-push-if-split-fails'

"git subtree" (in contrib/) had one codepath with loose error
checks to lose data at the remote side.

* jk/subtree-do-not-push-if-split-fails:
contrib/subtree: don't delete remote branches if split fails

Merge branch 'jk/test-output'Junio C Hamano Wed, 29 May 2013 21:29:11 +0000 (14:29 -0700)

Merge branch 'jk/test-output'

When TEST_OUTPUT_DIRECTORY setting is used, it was handled somewhat
inconsistently between the test framework and t/Makefile, and logic
to summarize the results looked at a wrong place.

* jk/test-output:
t/Makefile: don't define TEST_RESULTS_DIRECTORY recursively
test output: respect $TEST_OUTPUT_DIRECTORY
t/Makefile: fix result handling with TEST_OUTPUT_DIRECTORY

Merge branch 'rj/sparse'Junio C Hamano Wed, 29 May 2013 21:24:02 +0000 (14:24 -0700)

Merge branch 'rj/sparse'

* rj/sparse:
sparse: Fix mingw_main() argument number/type errors
compat/mingw.c: Fix some sparse warnings
compat/win32mmap.c: Fix some sparse warnings
compat/poll/poll.c: Fix a sparse warning
compat/win32/pthread.c: Fix a sparse warning
compat/unsetenv.c: Fix a sparse warning
compat/nedmalloc: Fix compiler warnings on linux
compat/nedmalloc: Fix some sparse warnings
compat/fnmatch/fnmatch.c: Fix a sparse error
compat/regex/regexec.c: Fix some sparse warnings

Merge branch 'mh/packed-refs-various'Junio C Hamano Wed, 29 May 2013 21:23:49 +0000 (14:23 -0700)

Merge branch 'mh/packed-refs-various'

Update reading and updating packed-refs file, correcting corner case
bugs.

* mh/packed-refs-various: (33 commits)
refs: handle the main ref_cache specially
refs: change do_for_each_*() functions to take ref_cache arguments
pack_one_ref(): do some cheap tests before a more expensive one
pack_one_ref(): use write_packed_entry() to do the writing
pack_one_ref(): use function peel_entry()
refs: inline function do_not_prune()
pack_refs(): change to use do_for_each_entry()
refs: use same lock_file object for both ref-packing functions
pack_one_ref(): rename "path" parameter to "refname"
pack-refs: merge code from pack-refs.{c,h} into refs.{c,h}
pack-refs: rename handle_one_ref() to pack_one_ref()
refs: extract a function write_packed_entry()
repack_without_ref(): write peeled refs in the rewritten file
t3211: demonstrate loss of peeled refs if a packed ref is deleted
refs: change how packed refs are deleted
search_ref_dir(): return an index rather than a pointer
repack_without_ref(): silence errors for dangling packed refs
t3210: test for spurious error messages for dangling packed refs
refs: change the internal reference-iteration API
refs: extract a function peel_entry()
...

Merge branch 'as/check-ignore'Junio C Hamano Wed, 29 May 2013 21:23:39 +0000 (14:23 -0700)

Merge branch 'as/check-ignore'

Enhance "check-ignore" (1.8.2 update) to work more like "check-attr"
over bidi-pipes.

* as/check-ignore:
t0008: use named pipe (FIFO) to test check-ignore streaming
Documentation: add caveats about I/O buffering for check-{attr,ignore}
check-ignore: allow incremental streaming of queries via --stdin
check-ignore: move setup into cmd_check_ignore()
check-ignore: add -n / --non-matching option
t0008: remove duplicated test fixture data

Merge branch 'jh/checkout-auto-tracking'Junio C Hamano Wed, 29 May 2013 21:23:10 +0000 (14:23 -0700)

Merge branch 'jh/checkout-auto-tracking'

Update "git checkout foo" that DWIMs the intended "upstream" and
turns it into "git checkout -t -b foo remotes/origin/foo" to
correctly take existing remote definitions into account.

The remote "origin" may be what uniquely map its own branch to
remotes/some/where/foo but that some/where may not be "origin".

* jh/checkout-auto-tracking:
glossary: Update and rephrase the definition of a remote-tracking branch
branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
t9114.2: Don't use --track option against "svn-remote"-tracking branches
t7201.24: Add refspec to keep --track working
t3200.39: tracking setup should fail if there is no matching refspec.
checkout: Use remote refspecs when DWIMming tracking branches
t2024: Show failure to use refspec when DWIMming remote branch names
t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'

Merge branch 'jc/prune-all'Junio C Hamano Wed, 29 May 2013 21:23:03 +0000 (14:23 -0700)

Merge branch 'jc/prune-all'

We used the approxidate() parser for "--expire=<timestamp>" options
of various commands, but it is better to treat --expire=all and
--expire=now a bit more specially than using the current timestamp.
Update "git gc" and "git reflog" with a new parsing function for
expiry dates.

* jc/prune-all:
prune: introduce OPT_EXPIRY_DATE() and use it
api-parse-options.txt: document "no-" for non-boolean options
git-gc.txt, git-reflog.txt: document new expiry options
date.c: add parse_expiry_date()

Merge branch 'mh/fetch-into-shallow'Junio C Hamano Wed, 29 May 2013 21:20:30 +0000 (14:20 -0700)

Merge branch 'mh/fetch-into-shallow'

"git fetch" into a shallow repository from a repository that does
not know about the shallow boundary commits (e.g. a different fork
from the repository the current shallow repository was cloned from)
did not work correctly.

* mh/fetch-into-shallow:
t5500: add test for fetching with an unknown 'shallow'
upload-pack: ignore 'shallow' lines with unknown obj-ids

Merge branch 'js/transport-helper-error-reporting-fix'Junio C Hamano Wed, 29 May 2013 21:20:25 +0000 (14:20 -0700)

Merge branch 'js/transport-helper-error-reporting-fix'

Finishing touches to fc/transport-helper-error-reporting topic.

* js/transport-helper-error-reporting-fix:
git-remote-testgit: build it to run under $SHELL_PATH
git-remote-testgit: further remove some bashisms
git-remote-testgit: avoid process substitution

Merge branch 'fc/transport-helper-error-reporting'Junio C Hamano Wed, 29 May 2013 21:20:16 +0000 (14:20 -0700)

Merge branch 'fc/transport-helper-error-reporting'

Update transport helper to report errors and maintain ref hierarchy
used to keep track of remote helper state better.

* fc/transport-helper-error-reporting:
transport-helper: fix remote helper namespace regression
test: remote-helper: add missing and
t5801: "VAR=VAL shell_func args" is forbidden
transport-helper: update remote helper namespace
transport-helper: trivial code shuffle
transport-helper: warn when refspec is not used
transport-helper: clarify pushing without refspecs
transport-helper: update refspec documentation
transport-helper: clarify *:* refspec
transport-helper: improve push messages
transport-helper: mention helper name when it dies
transport-helper: report errors properly

completion: zsh: improve bash script loadingFelipe Contreras Sat, 25 May 2013 03:31:44 +0000 (22:31 -0500)

completion: zsh: improve bash script loading

It's better to check in multiple locations, so the user doesn't have to.

And update the documentation.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

archive-zip:write_zip_entry: Remove second reset of... Stefan Beller Sun, 26 May 2013 19:11:35 +0000 (21:11 +0200)

archive-zip:write_zip_entry: Remove second reset of size variable to zero.

It is set to zero just 3 lines before.
Reported by cppcheck.

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

difftool --dir-diff: allow changing any clean working... Kenichi Saita Wed, 29 May 2013 16:01:23 +0000 (01:01 +0900)

difftool --dir-diff: allow changing any clean working tree file

The temporary directory prepared by "difftool --dir-diff" to
show the result of a change can be modified by the user via
the tree diff program, and we try hard not to lose changes
to them after tree diff program returns to us.

However, the set of files to be copied back is computed
differently between --symlinks and --no-symlinks modes. The
former checks all paths that start out as identical to the
working tree file, while the latter checks paths that
already had a local modification in the working tree,
allowing changes made in the tree diff program to paths that
did not have any local change to be lost.

Signed-off-by: Kenichi Saita <nitoyon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: factor out the detached HEAD error messageRamkumar Ramachandra Wed, 29 May 2013 19:21:49 +0000 (00:51 +0530)

push: factor out the detached HEAD error message

With push.default set to upstream or simple, and a detached HEAD, git
push prints the following error:

$ git push
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

git push ram HEAD:<name-of-remote-branch>

This error is not unique to upstream or simple: current cannot push with
a detached HEAD either. So, factor out the error string in preparation
for using it in current.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

prompt: fix for simple rebaseFelipe Contreras Wed, 29 May 2013 06:21:28 +0000 (01:21 -0500)

prompt: fix for simple rebase

When we are rebasing without options ('am' mode), the head rebased lives
in '$g/rebase-apply/head-name', so lets use that information so it's
reported the same way as if we were doing other rebases (-i or -m).

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

trivial: Add missing period in documentationPhil Hord Tue, 28 May 2013 19:36:44 +0000 (19:36 +0000)

trivial: Add missing period in documentation

Signed-off-by: Phil Hord <hordp@cisco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

commit: don't start editor if empty message is given... René Scharfe Sat, 25 May 2013 21:43:34 +0000 (23:43 +0200)

commit: don't start editor if empty message is given with -m

If an empty message is specified with the option -m of git commit then
the editor is started. That's unexpected and unnecessary. Instead of
using the length of the message string for checking if the user
specified one, directly remember if the option -m was given.

Reported-by: Mislav Marohnić <mislav.marohnic@gmail.com>
Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-email: remove warning about unset chainreplytoFelipe Contreras Sat, 25 May 2013 03:44:52 +0000 (22:44 -0500)

send-email: remove warning about unset chainreplyto

Three years and a half is probably more than enough time to give users
the opportunity to configure Git to do what they want. If they haven't
changed the configuration by now, this warning message is not going to
do anything for them anyway.

This effectively reverts commit 528fb08 (prepare send-email for smoother
change of --chain-reply-to default).

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

prune-packed: avoid implying "1" is DRY_RUN in prune_pa... Nguyễn Thái Ngọc Duy Mon, 27 May 2013 11:18:47 +0000 (18:18 +0700)

prune-packed: avoid implying "1" is DRY_RUN in prune_packed_objects()

Commit b60daf0 (Make git-prune-packed a bit more chatty. - 2007-01-12)
changes the meaning of prune_packed_objects()'s argument, from "dry
run or not dry run" to a bitmap.

It however forgot to update prune_packed_objects() caller in
builtin/prune.c to use new DRY_RUN macro. It's fine (for a long time!)
but there is a risk that someday someone may change the value of
DRY_RUN to something else and builtin/prune.c suddenly breaks. Avoid
that possibility.

While at there, change "opts == VERBOSE" to "opts & VERBOSE" as there
is no obvious reason why we only be chatty when DRY_RUN is not set.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test: rebase: fix --interactive testFelipe Contreras Tue, 28 May 2013 12:54:31 +0000 (07:54 -0500)

test: rebase: fix --interactive test

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test: trivial cleanupsFelipe Contreras Tue, 28 May 2013 12:54:29 +0000 (07:54 -0500)

test: trivial cleanups

No functional changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote: trivial style cleanupFelipe Contreras Tue, 28 May 2013 12:54:27 +0000 (07:54 -0500)

remote: trivial style cleanup

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: don't try to update unfetched tracking refsJohn Keeping Mon, 27 May 2013 16:33:09 +0000 (17:33 +0100)

fetch: don't try to update unfetched tracking refs

Since commit f269048 (fetch: opportunistically update tracking refs,
2013-05-11) we update tracking refs opportunistically when fetching
remote branches. However, if there is a configured non-pattern refspec
that does not match any of the refspecs given on the command line then a
fatal error occurs.

Fix this by setting the "missing_ok" flag when calling get_fetch_map.

Test-added-by: Jeff King <peff@peff.net>
Signed-off-by: John Keeping <john@keeping.me.uk>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

clone: open a shortcut for connectivity checkNguyễn Thái Ngọc Duy Sun, 26 May 2013 01:16:17 +0000 (08:16 +0700)

clone: open a shortcut for connectivity check

In order to make sure the cloned repository is good, we run "rev-list
--objects --not --all $new_refs" on the repository. This is expensive
on large repositories. This patch attempts to mitigate the impact in
this special case.

In the "good" clone case, we only have one pack. If all of the
following are met, we can be sure that all objects reachable from the
new refs exist, which is the intention of running "rev-list ...":

- all refs point to an object in the pack
- there are no dangling pointers in any object in the pack
- no objects in the pack point to objects outside the pack

The second and third checks can be done with the help of index-pack as
a slight variation of --strict check (which introduces a new condition
for the shortcut: pack transfer must be used and the number of objects
large enough to call index-pack). The first is checked in
check_everything_connected after we get an "ok" from index-pack.

"index-pack + new checks" is still faster than the current "index-pack
+ rev-list", which is the whole point of this patch. If any of the
conditions fail, we fall back to the good old but expensive "rev-list
..". In that case it's even more expensive because we have to pay for
the new checks in index-pack. But that should only happen when the
other side is either buggy or malicious.

Cloning linux-2.6 over file://

before after
real 3m25.693s 2m53.050s
user 5m2.037s 4m42.396s
sys 0m13.750s 0m16.574s

A more realistic test with ssh:// over wireless

before after
real 11m26.629s 10m4.213s
user 5m43.196s 5m19.444s
sys 0m35.812s 0m37.630s

This shortcut is not applied to shallow clones, partly because shallow
clones should have no more objects than a usual fetch and the cost of
rev-list is acceptable, partly to avoid dealing with corner cases when
grafting is involved.

This shortcut does not apply to unpack-objects code path either
because the number of objects must be small in order to trigger that
code path.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

index-pack: remove dead code (it should never happen)Nguyễn Thái Ngọc Duy Sun, 26 May 2013 01:16:16 +0000 (08:16 +0700)

index-pack: remove dead code (it should never happen)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch-pack: prepare updated shallow file before fetchin... Nguyễn Thái Ngọc Duy Sun, 26 May 2013 01:16:15 +0000 (08:16 +0700)

fetch-pack: prepare updated shallow file before fetching the pack

index-pack --strict looks up and follows parent commits. If shallow
information is not ready by the time index-pack is run, index-pack may
be led to non-existent objects. Make fetch-pack save shallow file to
disk before invoking index-pack.

git learns new global option --shallow-file to pass on the alternate
shallow file path. Undocumented (and not even support --shallow-file=
syntax) because it's unlikely to be used again elsewhere.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

build: do not install git-remote-testpyFelipe Contreras Sat, 25 May 2013 02:41:06 +0000 (21:41 -0500)

build: do not install git-remote-testpy

It's only meant for testing.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

build: add NO_INSTALL variableFelipe Contreras Sat, 25 May 2013 02:41:05 +0000 (21:41 -0500)

build: add NO_INSTALL variable

So that we can specify which scripts we do not want to install (they are
for testing).

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

build: cleanup using $<Felipe Contreras Sat, 25 May 2013 02:41:03 +0000 (21:41 -0500)

build: cleanup using $<

No need to list the first prerequisite. No functional changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

build: cleanup using $^Felipe Contreras Sat, 25 May 2013 02:41:02 +0000 (21:41 -0500)

build: cleanup using $^

There's no need to list again the prerequisites. No functional changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

build: trivial simplificationFelipe Contreras Sat, 25 May 2013 02:41:01 +0000 (21:41 -0500)

build: trivial simplification

SCRIPT_PYTHON_GEN is '$(patsubst %.py,%,$(SCRIPT_PYTHON))', so replace
'$(patsubst %.py,%,$(SCRIPT_PYTHON))' with it

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.3 v1.8.3Junio C Hamano Fri, 24 May 2013 18:34:46 +0000 (11:34 -0700)

Git 1.8.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

urls.txt: avoid auto converting to hyperlinkNguyễn Thái Ngọc Duy Fri, 24 May 2013 15:44:03 +0000 (22:44 +0700)

urls.txt: avoid auto converting to hyperlink

file:///path/to/repo.git/ is converted to a hyperlink while others are
not. Put a backslash to avoid the conversion. Tested with asciidoc
8.6.5.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Document push --no-verifyThomas Rast Thu, 23 May 2013 13:34:11 +0000 (15:34 +0200)

Document push --no-verify

ec55559 (push: Add support for pre-push hooks, 2013-01-13) forgot to
add a note to git-push(1) about the new --no-verify option.

Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bisect: Fix log output for multi-parent skip rangesTorstein Hegge Wed, 22 May 2013 22:27:53 +0000 (00:27 +0200)

bisect: Fix log output for multi-parent skip ranges

The bisect log output of skipped commits introduced in f989cac "bisect:
Log possibly bad, skipped commits at bisection end" should obtain the range of
skipped commits from

git rev-list bad --not good-1 good-2

not

git rev-list bad --not good-1 --not good-2

when the skipped range contains a merge with good points in each parent.

Signed-off-by: Torstein Hegge <hegge@resisty.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>