gitweb.git
revert: use OPT_NOOP_NOARGRené Scharfe Wed, 28 Sep 2011 17:47:50 +0000 (19:47 +0200)

revert: use OPT_NOOP_NOARG

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

parseopt: add OPT_NOOP_NOARGRené Scharfe Wed, 28 Sep 2011 17:44:30 +0000 (19:44 +0200)

parseopt: add OPT_NOOP_NOARG

Add OPT_NOOP_NOARG, a helper macro to define deprecated options in a
standard way. The help text is taken from the no-op option -r of
git revert.

The callback could be made to emit a (conditional?) warning later. And
we could also add OPT_NOOP (requiring an argument) etc. as needed.

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

archive.c: use OPT_BOOL()Junio C Hamano Tue, 27 Sep 2011 23:59:01 +0000 (16:59 -0700)

archive.c: use OPT_BOOL()

The list variable (which is OPT_BOOLEAN) is initialized to 0 and only
checked against 0 in the code, so it is safe to use OPT_BOOL().

The worktree_attributes variable (which is OPT_BOOLEAN) is initialized to
0 and later assigned to a field with the same name in struct archive_args,
which is a bitfield of width 1. It is safe and even more correct to use
OPT_BOOL() here; the new test in 5001 demonstrates why using OPT_COUNTUP
is wrong.

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

parse-options: deprecate OPT_BOOLEANJunio C Hamano Tue, 27 Sep 2011 23:56:49 +0000 (16:56 -0700)

parse-options: deprecate OPT_BOOLEAN

It is natural to expect that an option defined with OPT_BOOLEAN() could be
used in this way:

int option = -1; /* unspecified */

struct option options[] = {
OPT_BOOLEAN(0, "option", &option, "set option"),
OPT_END()
};
parse_options(ac, av, prefix, options, usage, 0);

if (option < 0)
... do the default thing ...
else if (!option)
... --no-option was given ...
else
... --option was given ...

to easily tell three cases apart:

- There is no mention of the `--option` on the command line;
- The variable is positively set with `--option`; or
- The variable is explicitly negated with `--no-option`.

Unfortunately, this is not the case. OPT_BOOLEAN() increments the variable
every time `--option` is given, and resets it to zero when `--no-option`
is given.

As a first step to remedy this, introduce a true boolean OPT_BOOL(), and
rename OPT_BOOLEAN() to OPT_COUNTUP(). To help transitioning, OPT_BOOLEAN
and OPTION_BOOLEAN are defined as deprecated synonyms to OPT_COUNTUP and
OPTION_COUNTUP respectively.

This is what db7244b (parse-options new features., 2007-11-07) from four
years ago started by marking OPTION_BOOLEAN as "INCR would have been a
better name".

Some existing users do depend on the count-up semantics; for example,
users of OPT__VERBOSE() could use it to raise the verbosity level with
repeated use of `-v` on the command line, but they probably should be
rewritten to use OPT__VERBOSITY() instead these days. I suspect that some
users of OPT__FORCE() may also use it to implement different level of
forcibleness but I didn't check.

On top of this patch, here are the remaining clean-up tasks that other
people can help:

- Look at each hit in "git grep -e OPT_BOOLEAN"; trace all uses of the
value that is set to the underlying variable, and if it can proven that
the variable is only used as a boolean, replace it with OPT_BOOL(). If
the caller does depend on the count-up semantics, replace it with
OPT_COUNTUP() instead.

- Same for OPTION_BOOLEAN; replace it with OPTION_SET_INT and arrange to
set 1 to the variable for a true boolean, and otherwise replace it with
OPTION_COUNTUP.

- Look at each hit in "git grep -e OPT__VERBOSE -e OPT__QUIET" and see if
they can be replaced with OPT__VERBOSITY().

I'll follow this message up with a separate patch as an example.

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

templates/hooks--*: remove sample hooks without any... Gerrit Pape Tue, 27 Sep 2011 11:56:53 +0000 (11:56 +0000)

templates/hooks--*: remove sample hooks without any functionality

Remove the sample post-commit and post-receive hooks. The sample
post-commit doesn't contain any sample functionality and the comments do
not provide more information than already found in the documentation.
The sample post-receive hooks doesn't provide any sample functionality
either and refers in the comments to a contrib hook that might be
installed in different locations on different systems, which isn't that
helpful.

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/hooks: adapt comment about Debian install locat... Gerrit Pape Mon, 26 Sep 2011 12:58:35 +0000 (12:58 +0000)

contrib/hooks: adapt comment about Debian install location for contrib hooks

Placing the contrib hooks into /usr/share/doc/ wasn't a good idea in the
first place. According to the Debian policy they should be located in
/usr/share/git-core/, so let's put them there.

Thanks to Bill Allombert for reporting this through
http://bugs.debian.org/640949

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/namespace-doc-with-old-asciidoc'Junio C Hamano Mon, 26 Sep 2011 17:50:08 +0000 (10:50 -0700)

Merge branch 'jc/namespace-doc-with-old-asciidoc'

* jc/namespace-doc-with-old-asciidoc:
Documentation/gitnamespaces.txt: cater to older asciidoc

Git 1.7.7-rc3 v1.7.7-rc3Junio C Hamano Fri, 23 Sep 2011 22:35:57 +0000 (15:35 -0700)

Git 1.7.7-rc3

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

Merge 1.7.6.4 inJunio C Hamano Fri, 23 Sep 2011 22:31:08 +0000 (15:31 -0700)

Merge 1.7.6.4 in

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

merge-recursive: Do not look at working tree during... Junio C Hamano Fri, 23 Sep 2011 22:21:01 +0000 (15:21 -0700)

merge-recursive: Do not look at working tree during a virtual ancestor merge

Fix another instance of a recursive merge incorrectly paying attention to
the working tree file during a virtual ancestor merge, that resulted in
spurious and useless "addinfo_cache failed" error message.

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

Git 1.7.6.4 v1.7.6.4Junio C Hamano Fri, 23 Sep 2011 21:38:39 +0000 (14:38 -0700)

Git 1.7.6.4

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

Merge branch 'cb/maint-ls-files-error-report' into... Junio C Hamano Fri, 23 Sep 2011 21:30:49 +0000 (14:30 -0700)

Merge branch 'cb/maint-ls-files-error-report' into maint

* cb/maint-ls-files-error-report:
t3005: do not assume a particular order of stdout and stderr of git-ls-files
ls-files: fix pathspec display on error

describe: Refresh the index when run with --dirtyAllan Caffee Mon, 1 Aug 2011 01:52:41 +0000 (21:52 -0400)

describe: Refresh the index when run with --dirty

When running git describe --dirty the index should be refreshed. Previously
the cached index would cause describe to think that the index was dirty when,
in reality, it was just stale.

The issue was exposed by python setuptools which hardlinks files into another
directory when building a distribution.

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

Merge branch 'jc/maint-clone-alternates' into maintJunio C Hamano Fri, 23 Sep 2011 21:27:33 +0000 (14:27 -0700)

Merge branch 'jc/maint-clone-alternates' into maint

* jc/maint-clone-alternates:
clone: clone from a repository with relative alternates
clone: allow more than one --reference

Merge branch 'nd/maint-clone-gitdir' into maintJunio C Hamano Fri, 23 Sep 2011 21:21:39 +0000 (14:21 -0700)

Merge branch 'nd/maint-clone-gitdir' into maint

* nd/maint-clone-gitdir:
clone: allow to clone from .git file
read_gitfile_gently(): rename misnamed function to read_gitfile()

Merge branch 'mh/check-ref-format-print-normalize'... Junio C Hamano Fri, 23 Sep 2011 21:20:51 +0000 (14:20 -0700)

Merge branch 'mh/check-ref-format-print-normalize' into maint

* mh/check-ref-format-print-normalize:
Forbid DEL characters in reference names
check-ref-format --print: Normalize refnames that start with slashes

Merge branch 'mg/branch-set-upstream-previous' into... Junio C Hamano Fri, 23 Sep 2011 21:16:22 +0000 (14:16 -0700)

Merge branch 'mg/branch-set-upstream-previous' into maint

* mg/branch-set-upstream-previous:
branch.c: use the parsed branch name

Merge branch 'gb/maint-am-patch-format-error-message... Junio C Hamano Fri, 23 Sep 2011 21:11:18 +0000 (14:11 -0700)

Merge branch 'gb/maint-am-patch-format-error-message' into maint

* gb/maint-am-patch-format-error-message:
am: format is in $patch_format, not parse_patch

Merge branch 'maint'Junio C Hamano Tue, 20 Sep 2011 03:46:48 +0000 (20:46 -0700)

Merge branch 'maint'

* maint:
git-mergetool: check return value from read

git-mergetool: check return value from readJay Soffian Mon, 19 Sep 2011 23:40:52 +0000 (19:40 -0400)

git-mergetool: check return value from read

Mostly fixed already by 6b44577 (mergetool: check return value
from read, 2011-07-01). Catch two uses it missed.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ph/format-patch-no-color'Junio C Hamano Mon, 19 Sep 2011 20:15:41 +0000 (13:15 -0700)

Merge branch 'ph/format-patch-no-color'

* ph/format-patch-no-color:
t4014: clean up format.thread config after each test

t4014: clean up format.thread config after each testJeff King Mon, 19 Sep 2011 19:15:45 +0000 (15:15 -0400)

t4014: clean up format.thread config after each test

The threading tests turn on format.thread, but never clean
up after themselves, meaning that later tests will also have
format.thread set.

This is more annoying than most leftover config, too,
because not only does it impact the results of other tests,
but it does so non-deterministically. Threading requires the
generation of message-ids, which incorporate the current
time, meaning a slow-running test script may generate
different results from run to run.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.7-rc2 v1.7.7-rc2Junio C Hamano Sun, 18 Sep 2011 22:41:34 +0000 (15:41 -0700)

Git 1.7.7-rc2

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

Merge branch 'ci/forbid-unwanted-current-branch-update'Junio C Hamano Sat, 17 Sep 2011 04:48:10 +0000 (21:48 -0700)

Merge branch 'ci/forbid-unwanted-current-branch-update'

* ci/forbid-unwanted-current-branch-update:
branch --set-upstream: regression fix

branch --set-upstream: regression fixJunio C Hamano Fri, 16 Sep 2011 23:28:38 +0000 (16:28 -0700)

branch --set-upstream: regression fix

The "git branch" command, while not in listing mode, calls create_branch()
even when the target branch already exists, and it does so even when it is
not interested in updating the value of the branch (i.e. the name of the
commit object that sits at the tip of the existing branch). This happens
when the command is run with "--set-upstream" option.

The earlier safety-measure to prevent "git branch -f $branch $commit" from
updating the currently checked out branch did not take it into account,
and we no longer can update the tracking information of the current branch.

Minimally fix this regression by telling the validation code if it is
called to really update the value of a potentially existing branch, or if
the caller merely is interested in updating auxiliary aspects of a branch.

Reported-and-Tested-by: Jay Soffian
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Disambiguate duplicate t9160* testsFrédéric Heitzmann Fri, 16 Sep 2011 19:55:03 +0000 (21:55 +0200)

Disambiguate duplicate t9160* tests

1e5814f created t9160-git-svn-mergeinfo-push.sh on 11/9/7
40a1530 created t9160-git-svn-preserve-empty-dirs.sh on 11/7/20
The former test script is renumbered to t9161.

Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/gitnamespaces.txt: cater to older asciidocJunio C Hamano Fri, 16 Sep 2011 00:09:41 +0000 (17:09 -0700)

Documentation/gitnamespaces.txt: cater to older asciidoc

Older asciidoc (e.g. 8.2.5 on Centos 5.5) is unhappy if a manpage does not
have a SYNOPSIS section. Show a sample (and a possibly bogus) command line
of running two commands that pay attention to this environment variable
with a customized value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Reviewed-by: Jamey Sharp <jamey@minilop.net>

Merge branch 'ph/format-patch-no-color'Junio C Hamano Thu, 15 Sep 2011 04:43:57 +0000 (21:43 -0700)

Merge branch 'ph/format-patch-no-color'

* ph/format-patch-no-color:
format-patch: ignore ui.color

git-svn: teach git-svn to populate svn:mergeinfoBryan Jacobs Wed, 7 Sep 2011 17:36:05 +0000 (13:36 -0400)

git-svn: teach git-svn to populate svn:mergeinfo

Allow git-svn to populate the svn:mergeinfo property automatically in
a narrow range of circumstances. Specifically, when dcommitting a
revision with multiple parents, all but (potentially) the first of
which have been committed to SVN in the same repository as the target
of the dcommit.

In this case, the merge info is the union of that given by each of the
parents, plus all changes introduced to the first parent by the other
parents.

In all other cases where a revision to be committed has multiple
parents, cause "git svn dcommit" to raise an error rather than
completing the commit and potentially losing history information in
the upstream SVN repository.

This behavior is disabled by default, and can be enabled by setting
the svn.pushmergeinfo config option.

[ew: minor style changes and manpage merge fix]

Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Bryan Jacobs <bjacobs@woti.com>

format-patch: ignore ui.colorPang Yan Han Mon, 12 Sep 2011 17:46:41 +0000 (01:46 +0800)

format-patch: ignore ui.color

commit c9bfb953 (want_color: automatically fallback to color.ui,
2011-08-17) introduced a regression where format-patch produces colorized
patches when color.ui is set to "always".

In f3aafa4 (Disable color detection during format-patch, 2006-07-09),
git_format_config was taught to intercept diff.color to avoid passing it
down to git_log_config and later, git_diff_ui_config.

Teach git_format_config to intercept color.ui in the same way.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.7-rc1 v1.7.7-rc1Junio C Hamano Mon, 12 Sep 2011 17:44:32 +0000 (10:44 -0700)

Git 1.7.7-rc1

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

Sync with 1.7.6.3Junio C Hamano Mon, 12 Sep 2011 17:43:17 +0000 (10:43 -0700)

Sync with 1.7.6.3

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

Merge branch 'jn/remote-helpers-doc'Junio C Hamano Mon, 12 Sep 2011 17:38:11 +0000 (10:38 -0700)

Merge branch 'jn/remote-helpers-doc'

* jn/remote-helpers-doc:
(short) documentation for the testgit remote helper
Documentation/git-remote-helpers: explain how import works with multiple refs
Documentation/remote-helpers: explain capabilities first

Git 1.7.6.3 v1.7.6.3Junio C Hamano Mon, 12 Sep 2011 17:33:03 +0000 (10:33 -0700)

Git 1.7.6.3

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

Merge branch 'jl/maint-fetch-submodule-check-fix' into... Junio C Hamano Mon, 12 Sep 2011 17:19:57 +0000 (10:19 -0700)

Merge branch 'jl/maint-fetch-submodule-check-fix' into maint

* jl/maint-fetch-submodule-check-fix:
fetch: skip on-demand checking when no submodules are configured

Merge branch 'maint'Junio C Hamano Mon, 12 Sep 2011 05:35:11 +0000 (22:35 -0700)

Merge branch 'maint'

* maint:
Prepare for 1.7.6.3 maintenance release
SubmittingPathces: remove Cogito reference

Conflicts:
RelNotes

Prepare for 1.7.6.3 maintenance releaseJunio C Hamano Mon, 12 Sep 2011 05:08:56 +0000 (22:08 -0700)

Prepare for 1.7.6.3 maintenance release

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

Merge branch 'ms/reflog-show-is-default' into maintJunio C Hamano Mon, 12 Sep 2011 05:33:24 +0000 (22:33 -0700)

Merge branch 'ms/reflog-show-is-default' into maint

* ms/reflog-show-is-default:
reflog: actually default to subcommand 'show'

Merge branch 'jk/reset-reflog-message-fix' into maintJunio C Hamano Mon, 12 Sep 2011 05:33:20 +0000 (22:33 -0700)

Merge branch 'jk/reset-reflog-message-fix' into maint

* jk/reset-reflog-message-fix:
reset: give better reflog messages

Merge branch 'vi/make-test-vector-less-specific' into... Junio C Hamano Mon, 12 Sep 2011 05:33:16 +0000 (22:33 -0700)

Merge branch 'vi/make-test-vector-less-specific' into maint

* vi/make-test-vector-less-specific:
tests: cleanup binary test vector files

Merge branch 'jk/tag-contains-ab' (early part) into... Junio C Hamano Mon, 12 Sep 2011 04:54:32 +0000 (21:54 -0700)

Merge branch 'jk/tag-contains-ab' (early part) into maint

* 'jk/tag-contains-ab' (early part):
tag: speed up --contains calculation

Merge branch 'dz/connect-error-report' into maintJunio C Hamano Mon, 12 Sep 2011 04:53:47 +0000 (21:53 -0700)

Merge branch 'dz/connect-error-report' into maint

* dz/connect-error-report:
Do not log unless all connect() attempts fail

Merge branch 'jc/maint-mergetool-read-fix' into maintJunio C Hamano Mon, 12 Sep 2011 04:53:39 +0000 (21:53 -0700)

Merge branch 'jc/maint-mergetool-read-fix' into maint

* jc/maint-mergetool-read-fix:
mergetool: check return value from read

Merge branch 'jk/maint-config-param' into maintJunio C Hamano Mon, 12 Sep 2011 04:53:13 +0000 (21:53 -0700)

Merge branch 'jk/maint-config-param' into maint

* jk/maint-config-param:
config: use strbuf_split_str instead of a temporary strbuf
strbuf: allow strbuf_split to work on non-strbufs
config: avoid segfault when parsing command-line config
config: die on error in command-line config
fix "git -c" parsing of values with equals signs
strbuf_split: add a max parameter

Merge branch 'jn/doc-dashdash' into maintJunio C Hamano Mon, 12 Sep 2011 04:52:18 +0000 (21:52 -0700)

Merge branch 'jn/doc-dashdash' into maint

* jn/doc-dashdash:
Documentation/i18n: quote double-dash for AsciiDoc
Documentation: quote double-dash for AsciiDoc

Conflicts:
Documentation/git-mergetool--lib.txt

Merge branch 'jk/maint-1.7.2-status-ignored' into maintJunio C Hamano Mon, 12 Sep 2011 04:51:10 +0000 (21:51 -0700)

Merge branch 'jk/maint-1.7.2-status-ignored' into maint

* jk/maint-1.7.2-status-ignored:
git status --ignored: tests and docs
status: fix bug with missing --ignore files

Conflicts:
Documentation/git-status.txt
t/t7508-status.sh

SubmittingPathces: remove Cogito referenceSverre Rabbelier Sun, 11 Sep 2011 12:38:10 +0000 (14:38 +0200)

SubmittingPathces: remove Cogito reference

Removing Cogito leaves just git and StGit, which is a rather
incomplete list of git diff tools available. Sidestep the problem
of deciding what tools to mention by not mentioning any.

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: skip on-demand checking when no submodules are... Jens Lehmann Fri, 9 Sep 2011 18:22:03 +0000 (20:22 +0200)

fetch: skip on-demand checking when no submodules are configured

It makes no sense to do the - possibly very expensive - call to "rev-list
<new-ref-sha1> --not --all" in check_for_new_submodule_commits() when
there aren't any submodules configured.

Leave check_for_new_submodule_commits() early when no name <-> path
mappings for submodules are found in the configuration. To make that work
reading the configuration had to be moved further up in cmd_fetch(), as
doing that after the actual fetch of the superproject was too late.

Reported-by: Martin Fick <mfick@codeaurora.org>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

RelNotes/1.7.7: minor fixesMichael J Gruber Wed, 7 Sep 2011 11:54:11 +0000 (13:54 +0200)

RelNotes/1.7.7: minor fixes

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Minor update to how-to maintain gitJunio C Hamano Wed, 7 Sep 2011 18:18:18 +0000 (11:18 -0700)

Minor update to how-to maintain git

A few more parts of this document is stale that needs updating
to reflect the reality, but I do not regularly rebase topics that
are only in "pu" anymore, which may be noteworthy for a commit.

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

Update draft release notes to 1.7.7Junio C Hamano Tue, 6 Sep 2011 18:48:21 +0000 (11:48 -0700)

Update draft release notes to 1.7.7

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

Merge branch 'rc/histogram-diff'Junio C Hamano Tue, 6 Sep 2011 18:42:58 +0000 (11:42 -0700)

Merge branch 'rc/histogram-diff'

* rc/histogram-diff:
xdiff/xprepare: initialise xdlclassifier_t cf in xdl_prepare_env()

Merge branch 'cb/maint-ls-files-error-report'Junio C Hamano Tue, 6 Sep 2011 18:42:55 +0000 (11:42 -0700)

Merge branch 'cb/maint-ls-files-error-report'

* cb/maint-ls-files-error-report:
t3005: do not assume a particular order of stdout and stderr of git-ls-files

Merge branch 'mh/check-ref-format-print-normalize'Junio C Hamano Tue, 6 Sep 2011 18:42:52 +0000 (11:42 -0700)

Merge branch 'mh/check-ref-format-print-normalize'

* mh/check-ref-format-print-normalize:
Forbid DEL characters in reference names
check-ref-format --print: Normalize refnames that start with slashes

Sync with 1.7.6.2Junio C Hamano Tue, 6 Sep 2011 18:42:12 +0000 (11:42 -0700)

Sync with 1.7.6.2

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

Git 1.7.6.2 v1.7.6.2Junio C Hamano Tue, 6 Sep 2011 18:41:02 +0000 (11:41 -0700)

Git 1.7.6.2

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

Revert "Merge branch 'cb/maint-quiet-push' into maint"Junio C Hamano Tue, 6 Sep 2011 18:06:32 +0000 (11:06 -0700)

Revert "Merge branch 'cb/maint-quiet-push' into maint"

This reverts commit ffa69e61d3c5730bd4b65a465efc130b0ef3c7df, reversing
changes made to 4a13c4d14841343d7caad6ed41a152fee550261d.

Adding a new command line option to receive-pack and feed it from
send-pack is not an acceptable way to add features, as there is no
guarantee that your updated send-pack will be talking to updated
receive-pack. New features need to be added via the capability mechanism
negotiated over the protocol.

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

Update draft release notes to 1.7.7Junio C Hamano Fri, 2 Sep 2011 20:26:02 +0000 (13:26 -0700)

Update draft release notes to 1.7.7

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

Merge branch 'js/i18n-scripts-2'Junio C Hamano Fri, 2 Sep 2011 20:18:42 +0000 (13:18 -0700)

Merge branch 'js/i18n-scripts-2'

* js/i18n-scripts-2:
bisect: take advantage of gettextln, eval_gettextln.

Merge branch 'tr/maint-t3903-misquoted-command'Junio C Hamano Fri, 2 Sep 2011 20:18:39 +0000 (13:18 -0700)

Merge branch 'tr/maint-t3903-misquoted-command'

* tr/maint-t3903-misquoted-command:
t3903: fix misquoted rev-parse invocation

Merge branch 'bc/bisect-test-use-shell-path'Junio C Hamano Fri, 2 Sep 2011 20:18:37 +0000 (13:18 -0700)

Merge branch 'bc/bisect-test-use-shell-path'

* bc/bisect-test-use-shell-path:
t6030: use $SHELL_PATH to invoke user's preferred shell instead of bare sh

Merge branch 'va/p4-branch-import-test-update'Junio C Hamano Fri, 2 Sep 2011 20:18:33 +0000 (13:18 -0700)

Merge branch 'va/p4-branch-import-test-update'

* va/p4-branch-import-test-update:
git-p4: simple branch tests edits

Merge branch 'tr/maint-strbuf-grow-nul-termination'Junio C Hamano Fri, 2 Sep 2011 20:18:29 +0000 (13:18 -0700)

Merge branch 'tr/maint-strbuf-grow-nul-termination'

* tr/maint-strbuf-grow-nul-termination:
strbuf_grow(): maintain nul-termination even for new buffer

Merge branch 'tr/maint-ident-to-git-memmove'Junio C Hamano Fri, 2 Sep 2011 20:18:25 +0000 (13:18 -0700)

Merge branch 'tr/maint-ident-to-git-memmove'

* tr/maint-ident-to-git-memmove:
Use memmove in ident_to_git

Merge branch 'tr/maint-format-patch-empty-output'Junio C Hamano Fri, 2 Sep 2011 20:18:22 +0000 (13:18 -0700)

Merge branch 'tr/maint-format-patch-empty-output'

* tr/maint-format-patch-empty-output:
Document negated forms of format-patch --to --cc --add-headers
t4014: "no-add-headers" is actually called "no-add-header"
t4014: invoke format-patch with --stdout where intended
t4014: check for empty files from git format-patch --stdout

Merge branch 'gb/maint-am-stgit-author-to-from-fix'Junio C Hamano Fri, 2 Sep 2011 20:18:11 +0000 (13:18 -0700)

Merge branch 'gb/maint-am-stgit-author-to-from-fix'

* gb/maint-am-stgit-author-to-from-fix:
am: fix stgit patch mangling

Merge branch 'gb/maint-am-patch-format-error-message'Junio C Hamano Fri, 2 Sep 2011 20:18:07 +0000 (13:18 -0700)

Merge branch 'gb/maint-am-patch-format-error-message'

* gb/maint-am-patch-format-error-message:
am: format is in $patch_format, not parse_patch

Conflicts:
git-am.sh

Merge branch 'ms/daemon-timeout-is-in-seconds'Junio C Hamano Fri, 2 Sep 2011 20:17:58 +0000 (13:17 -0700)

Merge branch 'ms/daemon-timeout-is-in-seconds'

* ms/daemon-timeout-is-in-seconds:
git-daemon.txt: specify --timeout in seconds

Merge branch 'bg/t5540-osx-grep'Junio C Hamano Fri, 2 Sep 2011 20:17:50 +0000 (13:17 -0700)

Merge branch 'bg/t5540-osx-grep'

* bg/t5540-osx-grep:
t5540-http-test: shorten grep pattern

Merge branch 'jc/clean-exclude-doc'Junio C Hamano Fri, 2 Sep 2011 20:17:46 +0000 (13:17 -0700)

Merge branch 'jc/clean-exclude-doc'

* jc/clean-exclude-doc:
Documentation: clarify "git clean -e <pattern>"

Merge branch 'mg/maint-notes-C-doc'Junio C Hamano Fri, 2 Sep 2011 20:17:40 +0000 (13:17 -0700)

Merge branch 'mg/maint-notes-C-doc'

* mg/maint-notes-C-doc:
git-notes.txt: clarify -C vs. copy and -F

Merge branch 'fg/submodule-ff-check-before-push'Junio C Hamano Fri, 2 Sep 2011 20:07:58 +0000 (13:07 -0700)

Merge branch 'fg/submodule-ff-check-before-push'

* fg/submodule-ff-check-before-push:
push: Don't push a repository with unpushed submodules

Merge branch 'rc/diff-cleanup-records'Junio C Hamano Fri, 2 Sep 2011 19:07:11 +0000 (12:07 -0700)

Merge branch 'rc/diff-cleanup-records'

* rc/diff-cleanup-records:
xdiff/xprepare: improve O(n*m) performance in xdl_cleanup_records()

Merge branch 'fk/use-kwset-pickaxe-grep-f'Junio C Hamano Fri, 2 Sep 2011 17:00:38 +0000 (10:00 -0700)

Merge branch 'fk/use-kwset-pickaxe-grep-f'

* fk/use-kwset-pickaxe-grep-f:
obstack: Fix portability issues
Use kwset in grep
Use kwset in pickaxe
Adapt the kwset code to Git
Add string search routines from GNU grep
Add obstack.[ch] from EGLIBC 2.10

Merge branch 'en/merge-recursive-2'Junio C Hamano Fri, 2 Sep 2011 17:00:18 +0000 (10:00 -0700)

Merge branch 'en/merge-recursive-2'

* en/merge-recursive-2: (57 commits)
merge-recursive: Don't re-sort a list whose order we depend upon
merge-recursive: Fix virtual merge base for rename/rename(1to2)/add-dest
t6036: criss-cross + rename/rename(1to2)/add-dest + simple modify
merge-recursive: Avoid unnecessary file rewrites
t6022: Additional tests checking for unnecessary updates of files
merge-recursive: Fix spurious 'refusing to lose untracked file...' messages
t6022: Add testcase for spurious "refusing to lose untracked" messages
t3030: fix accidental success in symlink rename
merge-recursive: Fix working copy handling for rename/rename/add/add
merge-recursive: add handling for rename/rename/add-dest/add-dest
merge-recursive: Have conflict_rename_delete reuse modify/delete code
merge-recursive: Make modify/delete handling code reusable
merge-recursive: Consider modifications in rename/rename(2to1) conflicts
merge-recursive: Create function for merging with branchname:file markers
merge-recursive: Record more data needed for merging with dual renames
merge-recursive: Defer rename/rename(2to1) handling until process_entry
merge-recursive: Small cleanups for conflict_rename_rename_1to2
merge-recursive: Fix rename/rename(1to2) resolution for virtual merge base
merge-recursive: Introduce a merge_file convenience function
merge-recursive: Fix modify/delete resolution in the recursive case
...

(short) documentation for the testgit remote helperMatthieu Moy Thu, 1 Sep 2011 16:49:38 +0000 (18:49 +0200)

(short) documentation for the testgit remote helper

While it's not a command meant to be used by actual users (hence, not
mentionned in git(1)), this command is a very precious help for
remote-helpers authors.

The best place for such technical doc is the source code, but users may
not find it without a link in a manpage.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-remote-helpers: explain how import... Matthieu Moy Thu, 1 Sep 2011 16:49:37 +0000 (18:49 +0200)

Documentation/git-remote-helpers: explain how import works with multiple refs

This is important for two reasons:

* when two "import" lines follow each other, only one "done" command
should be issued in the fast-import stream, not one per "import".

* The blank line terminating an import command should not be confused
with the one terminating the sequence of commands.

While we're there, illustrate the corresponding explanation for push
batches with an example.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Teach dcommit --mergeinfo to handle multiple... Bryan Jacobs Wed, 31 Aug 2011 16:48:39 +0000 (12:48 -0400)

git-svn: Teach dcommit --mergeinfo to handle multiple lines

"svn dcommit --mergeinfo" replaces the svn:mergeinfo property in an
upstream SVN repository with the given text. The svn:mergeinfo
property may contain commits originating on multiple branches,
separated by newlines.

Cause space characters in the mergeinfo to be replaced by newlines,
allowing a user to create history representing multiple branches being
merged into one.

Update the corresponding documentation and add a test for the new
functionality.

Signed-off-by: Bryan Jacobs <bjacobs@woti.com>
Acked-by: Sam Vilain <sam@vilain.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: fix fetch with moved path when using rewriteRootEric Wong Mon, 29 Aug 2011 00:45:44 +0000 (00:45 +0000)

git-svn: fix fetch with moved path when using rewriteRoot

The matching step in commit 3235b7053c45a734c1cdf9b117bda68b7ced29c9
did not properly account for users of the "rewriteRoot"
configuration parameter.

ref: <CANWsHyfHtr0EaJtNsDK9UTcmb_AbLg-1jUA-0uWJ-nEeNosb7w@mail.gmail.com>

Suggested-by: H Krishnan <hetchkay@gmail.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

git-svn: New flag to emulate empty directoriesRay Chen Wed, 20 Jul 2011 22:37:26 +0000 (18:37 -0400)

git-svn: New flag to emulate empty directories

Adds a --preserve-empty-dirs flag to the clone operation that will detect
empty directories in the remote Subversion repository and create placeholder
files in the corresponding local Git directories. This allows "empty"
directories to exist in the history of a Git repository.

Also adds the --placeholder-file flag to control the name of any placeholder
files created. Default value is ".gitignore".

Signed-off-by: Ray Chen <rchen@cs.umd.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

xdiff/xprepare: initialise xdlclassifier_t cf in xdl_pr... Tay Ray Chuan Wed, 31 Aug 2011 04:48:46 +0000 (12:48 +0800)

xdiff/xprepare: initialise xdlclassifier_t cf in xdl_prepare_env()

Ensure that the xdl_free_classifier() call on xdlclassifier_t cf is safe
even if xdl_init_classifier() isn't called. This may occur in the case
where diff is run with --histogram and a call to, say, xdl_prepare_ctx()
fails.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t6030: use $SHELL_PATH to invoke user's preferred shell... Brandon Casey Mon, 29 Aug 2011 20:09:25 +0000 (13:09 -0700)

t6030: use $SHELL_PATH to invoke user's preferred shell instead of bare sh

Some platforms (IRIX, Solaris) provide an ancient /bin/sh which chokes on
modern shell syntax like $(). SHELL_PATH is provided to allow the user to
specify a working sh, let's use it here.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bisect: take advantage of gettextln, eval_gettextln.Jon Seymour Tue, 30 Aug 2011 23:09:47 +0000 (09:09 +1000)

bisect: take advantage of gettextln, eval_gettextln.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 30 Aug 2011 19:35:51 +0000 (12:35 -0700)

Merge branch 'maint'

* maint:
Documentation: clarify effects of -- <path> arguments

t3903: fix misquoted rev-parse invocationThomas Rast Tue, 30 Aug 2011 00:06:07 +0000 (02:06 +0200)

t3903: fix misquoted rev-parse invocation

!"git ..." hopefully always succeeds because "git ..." is not the name
of any executable. However, that's not what was intended. Unquote
it, and while we're at it, also replace ! with test_must_fail since it
is a call to git.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: clarify effects of -- <path> argumentsThomas Rast Tue, 30 Aug 2011 09:21:07 +0000 (11:21 +0200)

Documentation: clarify effects of -- <path> arguments

'git log -- <path>' does not "show commits that affect the specified
paths" in a literal sense unless --full-history is given (for example,
a file that only existed on a side branch will turn up no commits at
all!).

Reword it to specify the actual intent of the filtering, and point to
the "History Simplification" section.

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

Documentation/remote-helpers: explain capabilities... Jonathan Nieder Tue, 30 Aug 2011 03:56:08 +0000 (22:56 -0500)

Documentation/remote-helpers: explain capabilities first

The current remote helper documentation is from the perspective of
git, so to speak: it presents a full menu of commands for a person
invoking a remote helper to choose from. In practice, that's less
useful than it could be, since the daunted novice remote-helper author
probably just wanted a list of commands needs to implement to get
started. So preface the command list with an overview of each
capability, its purpose, and what commands it requires.

As a side effect, this makes it a little clearer that git doesn't
choose arbitrary commands to run, even if the remote helper advertises
all capabilities --- instead, there are well defined command sequences
for various tasks.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

strbuf_grow(): maintain nul-termination even for new... Thomas Rast Mon, 29 Aug 2011 21:16:12 +0000 (23:16 +0200)

strbuf_grow(): maintain nul-termination even for new buffer

In the case where sb is initialized to the slopbuf (through
strbuf_init(sb,0) or STRBUF_INIT), strbuf_grow() loses the terminating
nul: it grows the buffer, but gives ALLOC_GROW a NULL source to avoid
it being freed. So ALLOC_GROW does not copy anything to the new
memory area.

This subtly broke the call to strbuf_getline in read_next_command()
[fast-import.c:1855], which goes

strbuf_detach(&command_buf, NULL); # command_buf is now = STRBUF_INIT
stdin_eof = strbuf_getline(&command_buf, stdin, '\n');
if (stdin_eof)
return EOF;

In strbuf_getwholeline, this did

strbuf_grow(sb, 0); # loses nul-termination
if (feof(fp))
return EOF;
strbuf_reset(sb); # this would have nul-terminated!

Valgrind found this because fast-import subsequently uses prefixcmp()
on command_buf.buf, which after the EOF exit contains only
uninitialized memory.

Arguably strbuf_getwholeline is also broken, in that it touches the
buffer before deciding whether to do any work. However, it seems more
futureproof to not let the strbuf API lose the nul-termination by its
own fault.

So make sure that strbuf_grow() puts in a nul even if it has nowhere
to copy it from. This makes strbuf_grow(sb, 0) a semantic no-op as
far as readers of the buffer are concerned.

Also remove the nul-termination added by strbuf_init, which is made
redudant.

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

Document negated forms of format-patch --to --cc -... Thomas Rast Mon, 29 Aug 2011 20:10:49 +0000 (22:10 +0200)

Document negated forms of format-patch --to --cc --add-headers

The negated forms introduced in c426003 (format-patch: add --no-cc,
--no-to, and --no-add-headers, 2010-03-07) were not documented
anywhere. Add them to the descriptions of the positive forms.

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

t4014: "no-add-headers" is actually called "no-add... Thomas Rast Mon, 29 Aug 2011 20:10:48 +0000 (22:10 +0200)

t4014: "no-add-headers" is actually called "no-add-header"

Since c426003 (format-patch: add --no-cc, --no-to, and
--no-add-headers, 2010-03-07) the tests have checked for an option
called --no-add-headers introduced by letting the user negate
--add-header.

However, the parseopt machinery does not automatically pluralize
anything, so it is in fact called --no-add-header.

Since the option never worked, is not documented anywhere, and
implementing an actual --no-add-headers would lead to silly code
complications, we just adapt the test to the code.

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

t4014: invoke format-patch with --stdout where intendedThomas Rast Mon, 29 Aug 2011 20:10:47 +0000 (22:10 +0200)

t4014: invoke format-patch with --stdout where intended

The test wrote something along the lines of 0001-foo.patch to output,
which of course never contained a signature. Luckily the tested
behaviour is actually present.

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

t4014: check for empty files from git format-patch... Thomas Rast Mon, 29 Aug 2011 20:10:46 +0000 (22:10 +0200)

t4014: check for empty files from git format-patch --stdout

Most kinds of failure in 'git format-patch --stdout >output' will
result in an empty 'output'. This slips past checks that only verify
absence of output, such as the '! grep ...' that are quite prevalent
in t4014.

Introduce a helper check_patch() that checks that at least From, Date
and Subject are present, thus making sure it looks vaguely like a
patch (or cover letter) email. Then insert calls to it in all tests
that do have positive checks for content.

This makes two of the tests fail. Mark them as such; they'll be
fixed in a moment.

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

Use memmove in ident_to_gitThomas Rast Mon, 29 Aug 2011 20:06:04 +0000 (22:06 +0200)

Use memmove in ident_to_git

convert_to_git sets src=dst->buf if any of the preceding conversions
actually did any work. Thus in ident_to_git we have to use memmove
instead of memcpy as far as src->dst copying is concerned.

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

am: fix stgit patch manglingGiuseppe Bilotta Mon, 29 Aug 2011 16:44:07 +0000 (18:44 +0200)

am: fix stgit patch mangling

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: simple branch tests editsPete Wyckoff Mon, 29 Aug 2011 09:32:23 +0000 (10:32 +0100)

git-p4: simple branch tests edits

More review comments.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Vitor Antunes <vitor.hda@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

am: format is in $patch_format, not parse_patchGiuseppe Bilotta Mon, 29 Aug 2011 15:22:06 +0000 (17:22 +0200)

am: format is in $patch_format, not parse_patch

The error message given when the patch format was not recognized was
wrong, since the variable checked was $parse_patch rather than
$patch_format. Fix by checking the non-emptyness of the correct
variable.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5540-http-test: shorten grep patternBrian Gernhardt Mon, 29 Aug 2011 06:42:21 +0000 (02:42 -0400)

t5540-http-test: shorten grep pattern

On OS X, the grep pattern

"\"OP .*/objects/$x2/X38_X40 HTTP/[.0-9]*\" 20[0-9] "

is too long ($x38 and $x40 represent 38 and 40 copies of [0-9a-f]) for
grep to handle. In order to still be able to match this, use the sed
invocation to replace what we're looking for with a token.

Improved-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: clarify "git clean -e <pattern>"Junio C Hamano Thu, 25 Aug 2011 18:29:57 +0000 (11:29 -0700)

Documentation: clarify "git clean -e <pattern>"

The current explanation of -e can be misread as allowing the user to say

I know 'git clean -XYZ' (substitute -XYZ with any option and/or
parameter) will remove paths A, B, and C, and I want them all removed
except for paths matching this pattern by adding '-e C' to the same
command line, i.e. 'git clean -e C -XYZ'.

But that is not what this option does. It augments the set of ignore rules
from the command line, just like the same "-e <pattern>" argument does
with the "ls-files" command (the user could probably pass "-e \!C" to tell
the command to clean everything the command would normally remove, except
for C). Also error out when both -x and -e are given with an explanation of
what -e means---it is a symptom of misunderstanding what -e does.

It also fixes small style nit in the parameter to add_exclude() call. The
current code only works because EXC_CMDL happens to be defined as 0.

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

t3005: do not assume a particular order of stdout and... Johannes Sixt Sun, 28 Aug 2011 07:34:56 +0000 (09:34 +0200)

t3005: do not assume a particular order of stdout and stderr of git-ls-files

There is no guarantee that stderr is flushed before stdout when both
channels are redirected to a file. Check the channels using independent
files.

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

obstack: Fix portability issuesFredrik Kuivinen Sun, 28 Aug 2011 20:08:46 +0000 (22:08 +0200)

obstack: Fix portability issues

i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1, SunOS 5.10, and possibly
others do not have exit.h and exitfail.h. Remove the use of these in
obstack.c.

The __block variable was renamed to block to avoid a gcc error:

compat/obstack.h:190: error: __block attribute can be specified on variables only

Initial-patch-by: David Aguilar <davvid@gmail.com>
Reported-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Fredrik Kuivinen <frekui@gmail.com>
Acked-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>