gitweb.git
t3509, t4023, t4114: use test_ln_s_add to remove SYMLIN... Johannes Sixt Fri, 7 Jun 2013 20:53:32 +0000 (22:53 +0200)

t3509, t4023, t4114: use test_ln_s_add to remove SYMLINKS prerequisite

In t4023 and t4114, we have to remove the entries using 'git rm' because
otherwise the entries that must turn from symbolic links to regular files
would stay symbolic links in the index. For the same reason, we have to
use 'git mv' instead of plain 'mv' in t3509.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3100: use test_ln_s_add to remove SYMLINKS prerequisiteJohannes Sixt Fri, 7 Jun 2013 20:53:31 +0000 (22:53 +0200)

t3100: use test_ln_s_add to remove SYMLINKS prerequisite

This undoes the special casing introduced in this test by 704a3143
(Use prerequisite tags to skip tests that depend on symbolic links,
2009-03-04).

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3030: use test_ln_s_add to remove SYMLINKS prerequisiteJohannes Sixt Fri, 7 Jun 2013 20:53:30 +0000 (22:53 +0200)

t3030: use test_ln_s_add to remove SYMLINKS prerequisite

The test cases include many corner-cases of merge-recursive's behavior,
some of them involve type changes and symbolic links. All cases, including
those that are protected by SYMLINKS check only whether the result of
merge-recursive is correctly stored in the database and the index; the
file system is not investigated. Use test_ln_s_add to enter a symbolic
link in the index in the test setup and run the tests without the
SYMLINKS prerequisite.

Notice that one test that has the SYMLINKS protection removed is an
expect_failure. There is a possibility that the test fails differently
depending on whether SYMLINKS is present or not; but this is not the case
presently.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0000: use test_ln_s_add to remove SYMLINKS prerequisiteJohannes Sixt Fri, 7 Jun 2013 20:53:29 +0000 (22:53 +0200)

t0000: use test_ln_s_add to remove SYMLINKS prerequisite

t0000-basic hard-codes many object IDs. To cater to file systems that do
not support symbolic links, different IDs are used depending on the
SYMLINKS prerequisite. But we can observe the symbolic links are only
needed to generate index entries. Use test_ln_s_add to generate the
index entries and get rid of explicit SYMLINKS checks.

This undoes the special casing introduced in this test by 704a3143
(Use prerequisite tags to skip tests that depend on symbolic links,
2009-03-04).

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: use test_ln_s_add to remove SYMLINKS prerequisit... Johannes Sixt Fri, 7 Jun 2013 20:53:28 +0000 (22:53 +0200)

tests: use test_ln_s_add to remove SYMLINKS prerequisite (trivial cases)

There are many instances where the treatment of symbolic links in the
object model and the algorithms are tested, but where it is not
necessary to actually have a symbolic link in the worktree. Make
adjustments to the tests and remove the SYMLINKS prerequisite when
appropriate in trivial cases, where "trivial" means:

- merely a replacement of 'ln -s a b && git add b' by test_ln_s_add
is needed;

- a test for symbolic link on the file system can be split off (and
remains protected by SYMLINKS);

- existing code is equivalent to test_ln_s_add.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: introduce test_ln_s_addJohannes Sixt Fri, 7 Jun 2013 20:53:27 +0000 (22:53 +0200)

tests: introduce test_ln_s_add

Add a new function that creates a symbolic link and adds it to the index
to be used in cases where a symbolic link is not required on the file
system. We will use it to remove many SYMLINKS prerequisites from test
cases.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3010: modernize styleJohannes Sixt Fri, 7 Jun 2013 20:53:26 +0000 (22:53 +0200)

t3010: modernize style

In particular:

- move test preparations inside test_expect_success

- place test description on the test_expect_success line

- indent with a tab

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

commit-slab: introduce a macro to define a slab for... Junio C Hamano Sat, 13 Apr 2013 18:56:41 +0000 (11:56 -0700)

commit-slab: introduce a macro to define a slab for new type

Introduce a header file to define a macro that can define the struct
type, initializer, accessor and cleanup functions to manage a commit
slab. Update the "indegree" topological sort facility using it.

To associate 32 flag bits with each commit, you can write:

define_commit_slab(flag32, uint32);

to declare "struct flag32" type, define an instance of it with

struct flag32 flags;

and initialize it by calling

init_flag32(&flags);

After that, a call to flag32_at() function

uint32 *fp = flag32_at(&flags, commit);

will return a pointer pointing at a uint32 for that commit. Once
you are done with these flags, clean them up with

clear_flag32(&flags);

Callers that cannot hard-code how wide the data to be associated
with the commit be at compile time can use the "_with_stride"
variant to initialize the slab.

Suppose you want to give one bit per existing ref, and paint commits
down to find which refs are descendants of each commit. Saying

typedef uint32 bits320[5];
define_commit_slab(flagbits, bits320);

at compile time will still limit your code with hard-coded limit,
because you may find that you have more than 320 refs at runtime.

The code can declare a commit slab "struct flagbits" like this
instead:

define_commit_slab(flagbits, unsigned char);
struct flagbits flags;

and initialize it by:

nrefs = ... count number of refs ...
init_flagbits_with_stride(&flags, (nrefs + 7) / 8);

so that

unsigned char *fp = flagbits_at(&flags, commit);

will return a pointer pointing at an array of 40 "unsigned char"s
associated with the commit, once you figure out nrefs is 320 at
runtime.

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

tests: move test for rebase messages from t3400 to... Martin von Zweigbergk Fri, 7 Jun 2013 06:11:43 +0000 (23:11 -0700)

tests: move test for rebase messages from t3400 to t3406

t3406 is supposed to test "messages from rebase operation", so let's
move tests in t3400 that fit that description into 3406. Most of the
functionality they tested, except for the messages, has now been
subsumed by t3420.

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3406: modernize styleMartin von Zweigbergk Fri, 7 Jun 2013 06:11:42 +0000 (23:11 -0700)

t3406: modernize style

Update the following:

- Quote 'setup'
- Remove blank lines within test case body
- Use test_commit instead of custom quick_one
- Create branch "topic" from tag created by test_commit

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add tests for rebasing merged historyMartin von Zweigbergk Fri, 7 Jun 2013 06:11:41 +0000 (23:11 -0700)

add tests for rebasing merged history

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add tests for rebasing rootMartin von Zweigbergk Fri, 7 Jun 2013 06:11:40 +0000 (23:11 -0700)

add tests for rebasing root

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add tests for rebasing of empty commitsMartin von Zweigbergk Fri, 7 Jun 2013 06:11:39 +0000 (23:11 -0700)

add tests for rebasing of empty commits

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add tests for rebasing with patch-equivalence presentMartin von Zweigbergk Fri, 7 Jun 2013 06:11:38 +0000 (23:11 -0700)

add tests for rebasing with patch-equivalence present

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add simple tests of consistency across rebase typesMartin von Zweigbergk Fri, 7 Jun 2013 06:11:37 +0000 (23:11 -0700)

add simple tests of consistency across rebase types

Helped-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: fix problem causing erroneous project listCharles McGarvey Wed, 5 Jun 2013 04:44:28 +0000 (22:44 -0600)

gitweb: fix problem causing erroneous project list

The bug is manifest when running gitweb in a persistent process (e.g.
FastCGI, PSGI), and it's easy to reproduce. If a gitweb request
includes the searchtext parameter (i.e. s), subsequent requests using
the project_list action--which is the default action--and without
a searchtext parameter will be filtered by the searchtext value of the
first request. This is because the value of the $search_regexp global
(the value of which is based on the searchtext parameter) is currently
being persisted between requests.

Instead, clear $search_regexp before dispatching each request.

Signed-off-by: Charles McGarvey <chazmcgarvey@brokenzipper.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch-options.txt: prevent a wildcard refspec from... Junio C Hamano Fri, 7 Jun 2013 15:09:51 +0000 (08:09 -0700)

fetch-options.txt: prevent a wildcard refspec from getting misformatted

When explaining the "--tags" option as an equivalent to giving an
explicit "refs/tags/*:refs/tags/*" refspec, the two asterisks were
misinterpreted by AsciiDoc as a request to typeset the string
segment between them in bold.

We could fix it in two ways. We can replace them with {asterisk}s
while keeping the string as body text, or we can mark it as a
literal string with backquotes around it.

Let's do the latter, as it is teaching the user an "exactly as
typed" alternative.

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

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

git-gui: bring wish process to front on MacStefan Haller Thu, 6 Jun 2013 08:17:47 +0000 (10:17 +0200)

git-gui: bring wish process to front on Mac

On Mac OS X, any application that is started from the Terminal will open
behind all running applications; as a work-around, manually bring ourselves
to the front. (Stolen from gitk, commit 76bf6ff93e.)

We do this as the very first thing, so that any message boxes that might pop
up during the rest of the startup sequence are actually seen by the user.

[PT: added catch and moved down to ensure Tk has been loaded]

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

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

sequencer: avoid leaking message buffer when refusing... Felipe Contreras Thu, 6 Jun 2013 08:58:57 +0000 (03:58 -0500)

sequencer: avoid leaking message buffer when refusing to create an empty commit

We should free objects before leaving.

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

t0005: skip signal death exit code test on WindowsJohannes Sixt Thu, 6 Jun 2013 06:34:41 +0000 (08:34 +0200)

t0005: skip signal death exit code test on Windows

The test case depends on that test-sigchain can commit suicide by a
call to raise(SIGTERM) in a way that run-command.c::wait_or_whine()
can detect as death through a signal. There are no POSIX signals on
Windows, and a sufficiently close emulation is not available in the
Microsoft C runtime (and probably not even possible).

The particular deficiency is that when a signal is raise()d whose
SIG_DFL action will cause process death (SIGTERM in this case), the
implementation of raise() in msvcrt just calls exit(3).

We could check for exit code 3 in addition to 143, but that would
miss the point of the test entirely. Hence, just skip it on Windows.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

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

test-send-email: test for pre-sanitized self nameMichael S. Tsirkin Wed, 5 Jun 2013 18:11:08 +0000 (21:11 +0300)

test-send-email: test for pre-sanitized self name

Users can sanitize from address manually.
Verify that these are suppressed properly.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/send-email: test suppress-cc=self with non-asciiMichael S. Tsirkin Wed, 5 Jun 2013 18:11:04 +0000 (21:11 +0300)

t/send-email: test suppress-cc=self with non-ascii

test suppress-cc=self when sender is non-acsii

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/send-email: add test with quoted senderMichael S. Tsirkin Wed, 5 Jun 2013 18:11:02 +0000 (21:11 +0300)

t/send-email: add test with quoted sender

add test where sender address needs to be quoted.
Make sure --suppress-cc=self works well in this case.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-email: make --suppress-cc=self sanitize inputMichael S. Tsirkin Wed, 5 Jun 2013 18:11:00 +0000 (21:11 +0300)

send-email: make --suppress-cc=self sanitize input

--suppress-cc=self fails to filter sender address in many cases where it
needs to be sanitized in some way, for example quoted:
"A U. Thor" <author@example.com>
To fix, make send-email sanitize both sender and the address it is
compared against.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/send-email: test suppress-cc=self on cccmdMichael S. Tsirkin Wed, 5 Jun 2013 18:10:57 +0000 (21:10 +0300)

t/send-email: test suppress-cc=self on cccmd

Check that suppress-cc=self works when applied
to output of cccmd.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-email: fix suppress-cc=self on cccmdMichael S. Tsirkin Wed, 5 Jun 2013 18:10:55 +0000 (21:10 +0300)

send-email: fix suppress-cc=self on cccmd

When cccmd is used, old-style suppress-from filter
is applied by the newer suppress-cc=self isn't.
Fix this up.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-remote-mediawiki: use Git.pm functions for credentialsBenoit Person Wed, 5 Jun 2013 10:58:00 +0000 (12:58 +0200)

git-remote-mediawiki: use Git.pm functions for credentials

In 52dce6d, a new credential function was added to Git.pm, based on
git-remote-mediawiki's functions. The logical follow-up is to use
those functions in git-remote-mediawiki.

Signed-off-by: Benoit Person <benoit.person@ensimag.fr>
Signed-off-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

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: silence sha1_loose_object_infoThomas Rast Thu, 30 May 2013 20:00:22 +0000 (22:00 +0200)

sha1_file: silence sha1_loose_object_info

sha1_object_info() returns -1 (OBJ_BAD) if it cannot find the object
for some reason, which suggests that it wants the _caller_ to report
this error. However, part of its work happens in
sha1_loose_object_info, which _does_ report errors itself. This is
doubly strange because:

* packed_object_info(), which is the other half of the duo, does _not_
report this.

* In the event that an object is packed and pruned while
sha1_object_info_extended() goes looking for it, we would
erroneously show the error -- even though the code of the latter
function purports to handle this case gracefully.

* A caller might invoke sha1_object_info() to find the type of an
object even if that object is not known to exist.

Silence this error. The others remain untouched as a corrupt object
is a much more grave error than it merely being absent.

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

sequencer: remove useless indentationFelipe Contreras Wed, 29 May 2013 03:56:21 +0000 (22:56 -0500)

sequencer: remove useless indentation

By using good ol' goto.

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

diffcore-pickaxe doc: document -S and -G properlyRamkumar Ramachandra Fri, 31 May 2013 12:12:15 +0000 (17:42 +0530)

diffcore-pickaxe doc: document -S and -G properly

The documentation of -S and -G is very sketchy. Completely rewrite the
sections in Documentation/diff-options.txt and
Documentation/gitdiffcore.txt.

References:
52e9578 ([PATCH] Introducing software archaeologist's tool "pickaxe".)
f506b8e (git log/diff: add -G<regexp> that greps in the patch text)

Inputs-from: Phil Hord <phil.hord@gmail.com>
Co-authored-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diffcore-pickaxe: make error messages more consistentRamkumar Ramachandra Fri, 31 May 2013 12:12:14 +0000 (17:42 +0530)

diffcore-pickaxe: make error messages more consistent

Currently, diffcore-pickaxe reports two distinct errors for the same
user error:

$ git log --pickaxe-regex -S'\1'
fatal: invalid pickaxe regex: Invalid back reference

$ git log -G'\1'
fatal: invalid log-grep regex: Invalid back reference

This "log-grep" was only an internal name for the -G feature during
development, and invite confusion with "git log --grep=<pattern>".

Change the error messages to say "invalid regex".

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

completion: difftool takes both revs and filesRamkumar Ramachandra Sun, 2 Jun 2013 14:03:41 +0000 (19:33 +0530)

completion: difftool takes both revs and files

'git difftool' is clearly a frontend to 'git diff' and is used in
exactly the same way, but it uses a misleadingly named completion
function __git_complete_file. It happens to work only because it
calls __git_complete_revlist_file that completes both revs and
paths.

Change it to use __git_complete_revlist_file, just like 'git diff'.

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

git.txt: remove stale comment regarding GIT_WORK_TREEChris Rorvick Fri, 31 May 2013 01:11:41 +0000 (20:11 -0500)

git.txt: remove stale comment regarding GIT_WORK_TREE

Official support for specifying --work-tree/GIT_WORK_TREE without
--git-dir/GIT_DIR was added with v1.7.4-rc3~2^2~2. Update description
of GIT_WORK_TREE to reflect this.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

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>

read-cache: trivial style cleanupsFelipe Contreras Thu, 30 May 2013 13:56:19 +0000 (08:56 -0500)

read-cache: trivial style cleanups

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

read-cache: fix wrong 'the_index' usageFelipe Contreras Thu, 30 May 2013 13:56:18 +0000 (08:56 -0500)

read-cache: fix wrong 'the_index' usage

We are dealing with the 'istate' index, not 'the_index'.

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>

t/send-email.sh: add test for suppress-cc=selfMichael S. Tsirkin Thu, 30 May 2013 07:11:13 +0000 (10:11 +0300)

t/send-email.sh: add test for suppress-cc=self

This adds a basic test for --suppress-cc=self
option of git send-email.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-chmtime: Fix exit code on WindowsJohannes Sixt Sat, 1 Jun 2013 09:34:20 +0000 (11:34 +0200)

test-chmtime: Fix exit code on Windows

MinGW's bash does not recognize an exit code -1 as failure. See also
47e3de0e (MinGW: truncate exit()'s argument to lowest 8 bits) and 2488df84
(builtin run_command: do not exit with -1). Exit code 1 is good enough.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: avoid ls-remote in certain scenariosFelipe Contreras Wed, 29 May 2013 03:20:48 +0000 (22:20 -0500)

completion: avoid ls-remote in certain scenarios

It's _very_ slow in many cases, and there's really no point in fetching
*everything* from the remote just for completion. In many cases it might
be faster for the user to type the whole thing.

If the user manually specifies 'refs/*', then the full ls-remote
completion is triggered.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
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

contrib: remove continuous/ and patches/Ramkumar Ramachandra Sun, 2 Jun 2013 20:14:07 +0000 (01:44 +0530)

contrib: remove continuous/ and patches/

They haven't been touched in six years.

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

unpack-trees: free cache_entry array members for mergesRené Scharfe Sun, 2 Jun 2013 15:46:57 +0000 (17:46 +0200)

unpack-trees: free cache_entry array members for merges

The merge functions duplicate entries as needed and they don't free
them. Release them in unpack_nondirectories, the same function
where they were allocated, after we're done.

As suggested by Felipe, use the same loop style (zero-based for loop)
for freeing as for allocating.

Improved-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff-lib, read-tree, unpack-trees: mark cache_entry... René Scharfe Sun, 2 Jun 2013 15:46:56 +0000 (17:46 +0200)

diff-lib, read-tree, unpack-trees: mark cache_entry array paramters const

Change the type merge_fn_t to accept the array of cache_entry pointers
as const pointers to const pointers. This documents the fact that the
merge functions don't modify the cache_entry contents or replace any of
the pointers in the array.

Only a single cast is necessary in unpack_nondirectories because adding
two const modifiers at once is not allowed in C. The cast is safe in
that it doesn't mask any modfication; call_unpack_fn only needs the
array for reading.

Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff-lib, read-tree, unpack-trees: mark cache_entry... René Scharfe Sun, 2 Jun 2013 15:46:55 +0000 (17:46 +0200)

diff-lib, read-tree, unpack-trees: mark cache_entry pointers const

Add const to struct cache_entry pointers throughout the tree which are
only used for reading. This allows callers to pass in const pointers.

Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

unpack-trees: create working copy of merge entry in... René Scharfe Sun, 2 Jun 2013 15:46:54 +0000 (17:46 +0200)

unpack-trees: create working copy of merge entry in merged_entry

Duplicate the merge entry right away and work with that instead of
modifying the entry we got and duplicating it only at the end of
the function. Then mark that pointer const to document that we
don't modify the referenced cache_entry.

This change is safe because all existing merge functions call
merged_entry just before returning (or not at all), i.e. they don't
care about changes to the referenced cache_entry after the call.
unpack_nondirectories and unpack_index_entry, which call the merge
functions through call_unpack_fn, aren't interested in such changes
neither.

The change complicates merged_entry a bit because we have to free the
copy if we error out, but allows callers to pass a const pointer.

Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

unpack-trees: factor out dup_entryRené Scharfe Sun, 2 Jun 2013 15:46:53 +0000 (17:46 +0200)

unpack-trees: factor out dup_entry

While we're add it, mark the struct cache_entry pointer of add_entry
const because we only read from it and this allows callers to pass in
const pointers.

Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

read-cache: mark cache_entry pointers constRené Scharfe Sun, 2 Jun 2013 15:46:52 +0000 (17:46 +0200)

read-cache: mark cache_entry pointers const

ie_match_stat and ie_modified only derefence their struct cache_entry
pointers for reading. Add const to the parameter declaration here and
do the same for the static helper function used by them, as it's the
same there as well. This allows callers to pass in const pointers.

Signed-off-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>