gitweb.git
Merge branch 'kb/p4merge'Junio C Hamano Tue, 26 Mar 2013 20:15:24 +0000 (13:15 -0700)

Merge branch 'kb/p4merge'

Adjust the order mergetools feeds the files to the p4merge backend
to match the p4 convention.

* kb/p4merge:
merge-one-file: force content conflict for "both sides added" case
git-merge-one-file: send "ERROR:" messages to stderr
git-merge-one-file: style cleanup
merge-one-file: remove stale comment
mergetools/p4merge: create a base if none available
mergetools/p4merge: swap LOCAL and REMOTE

Merge branch 'maint'Junio C Hamano Tue, 26 Mar 2013 20:14:45 +0000 (13:14 -0700)

Merge branch 'maint'

* maint:
More corrections for 1.8.2.1
Correct the docs about GIT_SSH.

More corrections for 1.8.2.1Junio C Hamano Tue, 26 Mar 2013 19:53:49 +0000 (12:53 -0700)

More corrections for 1.8.2.1

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

Merge branch 'maint-1.8.1' into maintJunio C Hamano Tue, 26 Mar 2013 20:14:11 +0000 (13:14 -0700)

Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
Correct the docs about GIT_SSH.

Merge branch 'we/submodule-update-prefix-output' into... Junio C Hamano Tue, 26 Mar 2013 19:44:26 +0000 (12:44 -0700)

Merge branch 'we/submodule-update-prefix-output' into maint

"git submodule update", when recursed into sub-submodules, did not
acccumulate the prefix paths.

* we/submodule-update-prefix-output:
submodule update: when using recursion, show full path

Merge branch 'jk/mailsplit-maildir-muttsort' into maintJunio C Hamano Tue, 26 Mar 2013 19:44:11 +0000 (12:44 -0700)

Merge branch 'jk/mailsplit-maildir-muttsort' into maint

Sort filenames read from the maildir/ in a way that is more likely
to sort messages in the order the writing MUA meant to, by sorting
numeric segment in numeric order and non-numeric segment in
alphabetical order.

* jk/mailsplit-maildir-muttsort:
mailsplit: sort maildir filenames more cleverly

Merge branch 'rs/zip-compresssed-size-with-export-subst... Junio C Hamano Tue, 26 Mar 2013 19:43:49 +0000 (12:43 -0700)

Merge branch 'rs/zip-compresssed-size-with-export-subst' into maint

When export-subst is used, "zip" output recorded incorrect
size of the file.

* rs/zip-compresssed-size-with-export-subst:
archive-zip: fix compressed size for stored export-subst files

Merge branch 'jk/utf-8-can-be-spelled-differently'... Junio C Hamano Tue, 26 Mar 2013 19:43:25 +0000 (12:43 -0700)

Merge branch 'jk/utf-8-can-be-spelled-differently' into maint

Some platforms and users spell UTF-8 differently; retry with the
most official "UTF-8" when the system does not understand the
user-supplied encoding name that are the common alternative
spellings of UTF-8.

* jk/utf-8-can-be-spelled-differently:
utf8: accept alternate spellings of UTF-8

Merge branch 'nd/branch-error-cases' into maintJunio C Hamano Tue, 26 Mar 2013 19:43:05 +0000 (12:43 -0700)

Merge branch 'nd/branch-error-cases' into maint

"git branch" had more cases where it did not bother to check
nonsense command line parameters.

* nd/branch-error-cases:
branch: segfault fixes and validation

Merge branch 'ap/maint-update-index-h-is-for-help'... Junio C Hamano Tue, 26 Mar 2013 19:42:42 +0000 (12:42 -0700)

Merge branch 'ap/maint-update-index-h-is-for-help' into maint

"git update-index -h" did not do the usual "-h(elp)" thing.

* ap/maint-update-index-h-is-for-help:
update-index: allow "-h" to also display options

Merge branch 'jc/perl-cat-blob' into maintJunio C Hamano Tue, 26 Mar 2013 19:42:24 +0000 (12:42 -0700)

Merge branch 'jc/perl-cat-blob' into maint

perl/Git.pm::cat_blob slurped everything in core only to write it
out to a file descriptor, which was not a very smart thing to do.

* jc/perl-cat-blob:
Git.pm: fix cat_blob crashes on large files

Merge branch 'ob/imap-send-ssl-verify' into maintJunio C Hamano Tue, 26 Mar 2013 19:41:59 +0000 (12:41 -0700)

Merge branch 'ob/imap-send-ssl-verify' into maint

Correctly connect to SSL/TLS sites that serve multiple hostnames on
a single IP by including Server Name Indication in the client-hello.

* ob/imap-send-ssl-verify:
imap-send: support Server Name Indication (RFC4366)

Merge branch 'nd/index-pack-l10n-buf-overflow' into... Junio C Hamano Tue, 26 Mar 2013 19:40:19 +0000 (12:40 -0700)

Merge branch 'nd/index-pack-l10n-buf-overflow' into maint

* nd/index-pack-l10n-buf-overflow:
index-pack: fix buffer overflow caused by translations

Merge branch 'jc/maint-push-refspec-default-doc' into... Junio C Hamano Tue, 26 Mar 2013 19:40:13 +0000 (12:40 -0700)

Merge branch 'jc/maint-push-refspec-default-doc' into maint

* jc/maint-push-refspec-default-doc:
Documentation/git-push: clarify the description of defaults

Merge branch 'wk/user-manual-literal-format' into maintJunio C Hamano Tue, 26 Mar 2013 19:40:11 +0000 (12:40 -0700)

Merge branch 'wk/user-manual-literal-format' into maint

* wk/user-manual-literal-format:
user-manual: Standardize backtick quoting

Merge branch 'gp/avoid-explicit-mention-of-dot-git... Junio C Hamano Tue, 26 Mar 2013 19:40:04 +0000 (12:40 -0700)

Merge branch 'gp/avoid-explicit-mention-of-dot-git-refs' into maint

* gp/avoid-explicit-mention-of-dot-git-refs:
Fix ".git/refs" stragglers

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix... Junio C Hamano Tue, 26 Mar 2013 19:39:51 +0000 (12:39 -0700)

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix' into maint

In "git reflog expire", REACHABLE bit was not cleared from the
correct objects.

* jc/maint-reflog-expire-clean-mark-typofix:
reflog: fix typo in "reflog expire" clean-up codepath

Correct the docs about GIT_SSH.Dan Bornstein Thu, 21 Mar 2013 23:06:40 +0000 (23:06 +0000)

Correct the docs about GIT_SSH.

In particular, it can get called with four arguments if you happen to
be referring to a repo using the ssh:// scheme with a non-default port
number.

Signed-off-by: Dan Bornstein <danfuzz@milk.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Second wave of topics toward 1.8.3Junio C Hamano Mon, 25 Mar 2013 21:08:00 +0000 (14:08 -0700)

Second wave of topics toward 1.8.3

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

Merge branch 'jk/fully-peeled-packed-ref'Junio C Hamano Mon, 25 Mar 2013 21:01:07 +0000 (14:01 -0700)

Merge branch 'jk/fully-peeled-packed-ref'

Not that we do not actively encourage having annotated tags outside
refs/tags/ hierarchy, but they were not advertised correctly to the
ls-remote and fetch with recent version of Git.

* jk/fully-peeled-packed-ref:
pack-refs: add fully-peeled trait
pack-refs: write peeled entry for non-tags
use parse_object_or_die instead of die("bad object")
avoid segfaults on parse_object failure

Merge branch 'jk/fast-export-object-lookup'Junio C Hamano Mon, 25 Mar 2013 21:01:05 +0000 (14:01 -0700)

Merge branch 'jk/fast-export-object-lookup'

* jk/fast-export-object-lookup:
fast-export: do not load blob objects twice
fast-export: rename handle_object function

Merge branch 'jk/peel-ref'Junio C Hamano Mon, 25 Mar 2013 21:01:02 +0000 (14:01 -0700)

Merge branch 'jk/peel-ref'

Recent optimization broke shallow clones.

* jk/peel-ref:
upload-pack: load non-tip "want" objects from disk
upload-pack: make sure "want" objects are parsed
upload-pack: drop lookup-before-parse optimization

Merge branch 'lf/setup-prefix-pathspec'Junio C Hamano Mon, 25 Mar 2013 21:01:00 +0000 (14:01 -0700)

Merge branch 'lf/setup-prefix-pathspec'

"git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
instead the parser kept reading beyond the end of the string.

* lf/setup-prefix-pathspec:
setup.c: check that the pathspec magic ends with ")"
setup.c: stop prefix_pathspec() from looping past the end of string

Merge branch 'ph/tag-force-no-warn-on-creation'Junio C Hamano Mon, 25 Mar 2013 21:00:57 +0000 (14:00 -0700)

Merge branch 'ph/tag-force-no-warn-on-creation'

"git tag -f <tag>" always said "Updated tag '<tag>'" even when
creating a new tag (i.e. not overwriting nor updating).

* ph/tag-force-no-warn-on-creation:
tag: --force does not have to warn when creating tags

Merge branch 'mg/unsigned-time-t'Junio C Hamano Mon, 25 Mar 2013 21:00:56 +0000 (14:00 -0700)

Merge branch 'mg/unsigned-time-t'

A few workarounds for systems with unsigned time_t.

* mg/unsigned-time-t:
Fix time offset calculation in case of unsigned time_t
date.c: fix unsigned time_t comparison

Merge branch 'jk/suppress-clang-warning'Junio C Hamano Mon, 25 Mar 2013 21:00:54 +0000 (14:00 -0700)

Merge branch 'jk/suppress-clang-warning'

* jk/suppress-clang-warning:
fix clang -Wtautological-compare with unsigned enum

Merge branch 'pw/p4-symlinked-root'Junio C Hamano Mon, 25 Mar 2013 21:00:49 +0000 (14:00 -0700)

Merge branch 'pw/p4-symlinked-root'

"git p4" did not behave well when the path to the root of the P4
client was not its real path.

* pw/p4-symlinked-root:
git p4: avoid expanding client paths in chdir
git p4 test: should honor symlink in p4 client root
git p4 test: make sure P4CONFIG relative path works

Merge branch 'jk/empty-archive'Junio C Hamano Mon, 25 Mar 2013 21:00:48 +0000 (14:00 -0700)

Merge branch 'jk/empty-archive'

"git archive" reports a failure when asked to create an archive out
of an empty tree. It would be more intuitive to give an empty
archive back in such a case.

* jk/empty-archive:
archive: handle commits with an empty tree
test-lib: factor out $GIT_UNZIP setup

Merge branch 'ks/rfc2047-one-char-at-a-time'Junio C Hamano Mon, 25 Mar 2013 21:00:46 +0000 (14:00 -0700)

Merge branch 'ks/rfc2047-one-char-at-a-time'

When "format-patch" quoted a non-ascii strings on the header files,
it incorrectly applied rfc2047 and chopped a single character in
the middle of it.

* ks/rfc2047-one-char-at-a-time:
format-patch: RFC 2047 says multi-octet character may not be split

Merge branch 'jk/alias-in-bare'Junio C Hamano Mon, 25 Mar 2013 21:00:44 +0000 (14:00 -0700)

Merge branch 'jk/alias-in-bare'

An aliased command spawned from a bare repository that does not say
it is bare with "core.bare = yes" is treated as non-bare by mistake.

* jk/alias-in-bare:
setup: suppress implicit "." work-tree for bare repos
environment: add GIT_PREFIX to local_repo_env
cache.h: drop LOCAL_REPO_ENV_SIZE

Merge branch 'jc/push-follow-tag'Junio C Hamano Mon, 25 Mar 2013 21:00:40 +0000 (14:00 -0700)

Merge branch 'jc/push-follow-tag'

The new "--follow-tags" option tells "git push" to push relevant
annotated tags when pushing branches out.

* jc/push-follow-tag:
push: --follow-tags
commit.c: use clear_commit_marks_many() in in_merge_bases_many()
commit.c: add in_merge_bases_many()
commit.c: add clear_commit_marks_many()

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix'Junio C Hamano Mon, 25 Mar 2013 21:00:39 +0000 (14:00 -0700)

Merge branch 'jc/maint-reflog-expire-clean-mark-typofix'

In "git reflog expire", REACHABLE bit was not cleared from the
correct objects.

* jc/maint-reflog-expire-clean-mark-typofix:
reflog: fix typo in "reflog expire" clean-up codepath

Merge branch 'ap/maint-diff-rename-avoid-overlap'Junio C Hamano Mon, 25 Mar 2013 21:00:37 +0000 (14:00 -0700)

Merge branch 'ap/maint-diff-rename-avoid-overlap'

The logic used by "git diff -M --stat" to shorten the names of
files before and after a rename did not work correctly when the
common prefix and suffix between the two filenames overlapped.

* ap/maint-diff-rename-avoid-overlap:
tests: make sure rename pretty print works
diff: prevent pprint_rename from underrunning input
diff: Fix rename pretty-print when suffix and prefix overlap

Merge branch 'jl/submodule-deinit'Junio C Hamano Mon, 25 Mar 2013 21:00:29 +0000 (14:00 -0700)

Merge branch 'jl/submodule-deinit'

There was no Porcelain way to say "I no longer am interested in
this submodule", once you express your interest in a submodule with
"submodule init". "submodule deinit" is the way to do so.

* jl/submodule-deinit:
submodule: add 'deinit' command

Merge branch 'jc/describe'Junio C Hamano Mon, 25 Mar 2013 21:00:23 +0000 (14:00 -0700)

Merge branch 'jc/describe'

The "--match=<pattern>" option of "git describe", when used with
"--all" to allow refs that are not annotated tags to be used as a
base of description, did not restrict the output from the command
to those that match the given pattern.

We may want to have a looser matching that does not restrict to tags,
but that can be done as a follow-up topic; this step is purely a bugfix.

* jc/describe:
describe: --match=<pattern> must limit the refs even when used with --all

Merge branch 'pe/pull-rebase-v-q'Junio C Hamano Mon, 25 Mar 2013 20:58:34 +0000 (13:58 -0700)

Merge branch 'pe/pull-rebase-v-q'

Teach "git pull --rebase" to pass "-v/-q" command line options to
underlying "git rebase".

* pe/pull-rebase-v-q:
pull: Apply -q and -v options to rebase mode as well

Merge branch 'maint'Junio C Hamano Mon, 25 Mar 2013 20:52:25 +0000 (13:52 -0700)

Merge branch 'maint'

* maint:
Start preparing for 1.8.2.1
transport.c: help gcc 4.6.3 users by squelching compiler warning

Start preparing for 1.8.2.1Junio C Hamano Mon, 25 Mar 2013 20:51:13 +0000 (13:51 -0700)

Start preparing for 1.8.2.1

... at the same time, preparation for 1.8.1.6 also has started ;-)

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

Merge branch 'jk/graph-c-expose-symbols-for-cgit' into... Junio C Hamano Mon, 25 Mar 2013 20:48:39 +0000 (13:48 -0700)

Merge branch 'jk/graph-c-expose-symbols-for-cgit' into maint

In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.

* jk/graph-c-expose-symbols-for-cgit:
Revert "graph.c: mark private file-scope symbols as static"

Merge branch 'maint-1.8.1' into maintJunio C Hamano Mon, 25 Mar 2013 20:46:42 +0000 (13:46 -0700)

Merge branch 'maint-1.8.1' into maint

* maint-1.8.1:
bundle: Add colons to list headings in "verify"
bundle: Fix "verify" output if history is complete
Documentation: filter-branch env-filter example
git-filter-branch.txt: clarify ident variables usage
git-compat-util.h: Provide missing netdb.h definitions
describe: Document --match pattern format
Documentation/githooks: Explain pre-rebase parameters
update-index: list supported idx versions and their features
diff-options: unconfuse description of --color
read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
index-format.txt: mention of v4 is missing in some places

Merge branch 'lf/bundle-verify-list-prereqs' into maint... Junio C Hamano Mon, 25 Mar 2013 20:46:02 +0000 (13:46 -0700)

Merge branch 'lf/bundle-verify-list-prereqs' into maint-1.8.1

"git bundle verify" did not say "records a complete history" for a
bundle that does not have any prerequisites.

* lf/bundle-verify-list-prereqs:
bundle: Add colons to list headings in "verify"
bundle: Fix "verify" output if history is complete

Merge branch 'tk/doc-filter-branch' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:45:53 +0000 (13:45 -0700)

Merge branch 'tk/doc-filter-branch' into maint-1.8.1

Add an example use of "--env-filter" in "filter-branch"
documentation.

* tk/doc-filter-branch:
Documentation: filter-branch env-filter example
git-filter-branch.txt: clarify ident variables usage

Merge branch 'dm/ni-maxhost-may-be-missing' into maint... Junio C Hamano Mon, 25 Mar 2013 20:45:42 +0000 (13:45 -0700)

Merge branch 'dm/ni-maxhost-may-be-missing' into maint-1.8.1

Some sources failed to compile on systems that lack NI_MAXHOST in
their system header.

* dm/ni-maxhost-may-be-missing:
git-compat-util.h: Provide missing netdb.h definitions

Merge branch 'gp/describe-match-uses-glob-pattern'... Junio C Hamano Mon, 25 Mar 2013 20:45:33 +0000 (13:45 -0700)

Merge branch 'gp/describe-match-uses-glob-pattern' into maint-1.8.1

The "--match=<pattern>" argument "git describe" takes uses glob
pattern but it wasn't obvious from the documentation.

* gp/describe-match-uses-glob-pattern:
describe: Document --match pattern format

Merge branch 'nd/doc-index-format' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:45:26 +0000 (13:45 -0700)

Merge branch 'nd/doc-index-format' into maint-1.8.1

The v4 index format was not documented.

* nd/doc-index-format:
update-index: list supported idx versions and their features
read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
index-format.txt: mention of v4 is missing in some places

Merge branch 'wk/doc-pre-rebase' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:45:14 +0000 (13:45 -0700)

Merge branch 'wk/doc-pre-rebase' into maint-1.8.1

The arguments given to pre-rebase hook were not documented.

* wk/doc-pre-rebase:
Documentation/githooks: Explain pre-rebase parameters

Merge branch 'jc/color-diff-doc' into maint-1.8.1Junio C Hamano Mon, 25 Mar 2013 20:44:53 +0000 (13:44 -0700)

Merge branch 'jc/color-diff-doc' into maint-1.8.1

The "--color=<when>" argument to the commands in the diff family
was described poorly.

* jc/color-diff-doc:
diff-options: unconfuse description of --color

merge-one-file: force content conflict for "both sides... Junio C Hamano Mon, 25 Mar 2013 17:05:13 +0000 (10:05 -0700)

merge-one-file: force content conflict for "both sides added" case

Historically, we tried to be lenient to "both sides added, slightly
differently" case and as long as the files can be merged using a
made-up common ancestor cleanly, since f7d24bbefb06 (merge with
/dev/null as base, instead of punting O==empty case, 2005-11-07).

This was later further refined to use a better made-up common file
with fd66dbf5297a (merge-one-file: use empty- or common-base
condintionally in two-stage merge., 2005-11-10), but the spirit has
been the same.

But the original fix in f7d24bbefb06 to avoid punting on "both sides
added" case had a code to unconditionally error out the merge. When
this triggers, even though the content-level merge can be done
cleanly, we end up not saying "content conflict" in the message, but
still issue the error message, showing "ERROR: in <pathname>".

Move that "always fail for add/add conflict" logic a bit higher to
fix this.

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

transport.c: help gcc 4.6.3 users by squelching compile... Junio C Hamano Mon, 25 Mar 2013 19:51:50 +0000 (12:51 -0700)

transport.c: help gcc 4.6.3 users by squelching compiler warning

To a human reader, it is quite obvious that cmp is assigned before
it is used, but gcc 4.6.3 that ships with Ubuntu 12.04 is among
those that do not get this right.

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

git-merge-one-file: send "ERROR:" messages to stderrKevin Bracey Sun, 24 Mar 2013 12:26:24 +0000 (14:26 +0200)

git-merge-one-file: send "ERROR:" messages to stderr

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-merge-one-file: style cleanupKevin Bracey Sun, 24 Mar 2013 12:26:23 +0000 (14:26 +0200)

git-merge-one-file: style cleanup

Update style to match Documentation/CodingGuidelines.

Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-one-file: remove stale commentJunio C Hamano Mon, 25 Mar 2013 17:48:24 +0000 (10:48 -0700)

merge-one-file: remove stale comment

The "funny filename" comment was from b539c5e8fbd3 (git-merge-one:
new merge world order., 2005-12-07) where the removed code just
before that new comment ended with:

merge "$4" "$orig" "$src2"

(yes, we used to use "merge" program from the RCS suite). The
comment refers to one of the bad side effect the old code used to
have and warns against such a practice, i.e. it was talking about
the code that no longer existed.

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

Update draft release notes to 1.8.3Junio C Hamano Thu, 21 Mar 2013 22:29:42 +0000 (15:29 -0700)

Update draft release notes to 1.8.3

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

Merge branch 'maint'Junio C Hamano Thu, 21 Mar 2013 21:06:55 +0000 (14:06 -0700)

Merge branch 'maint'

* maint:
diff.c: diff.renamelimit => diff.renameLimit in message
wt-status: fix possible use of uninitialized variable
fast-import: clarify "inline" logic in file_change_m
run-command: always set failed_errno in start_command
transport: drop "int cmp = cmp" hack
drop some obsolete "x = x" compiler warning hacks
fast-import: use pointer-to-pointer to keep list tail

diff.c: diff.renamelimit => diff.renameLimit in messageMax Nanasy Thu, 21 Mar 2013 19:53:38 +0000 (12:53 -0700)

diff.c: diff.renamelimit => diff.renameLimit in message

In the warning message printed when rename or unmodified copy
detection was skipped due to too many files, change "diff.renamelimit"
to "diff.renameLimit", in order to make it consistent with git
documentation, which consistently uses "diff.renameLimit".

Signed-off-by: Max Nanasy <max.nanasy@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

wt-status: fix possible use of uninitialized variableJeff King Thu, 21 Mar 2013 11:05:28 +0000 (07:05 -0400)

wt-status: fix possible use of uninitialized variable

In wt_status_print_change_data, we accept a change_type flag
that is meant to be either WT_STATUS_UPDATED or
WT_STATUS_CHANGED. We then switch() on this value to set
the local variable "status" for each case, but do not
provide a fallback "default" label to the switch statement.

As a result, the compiler realizes that "status" might be
unset, and complains with a warning. To silence this
warning, we use the "int status = status" trick. This is
correct with the current code, as all callers provide one of
the two expected change_type flags. However, it's also a
maintenance trap, as there is nothing to prevent future
callers from passing another flag, nor to document this
assumption.

Instead of using the "x = x" hack, let's handle the default
case in the switch() statement with a die("BUG"). That tells
the compiler and any readers of the code exactly what the
function's input assumptions are.

We could also convert the flag to an enum, which would
provide a compile-time check on the function input. However,
since these flags are part of a larger enum, that would make
the code unnecessarily complex (we would have to make a new
enum with just the two flags, and then convert it to the old
enum for passing to sub-functions).

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

fast-import: clarify "inline" logic in file_change_mJeff King Thu, 21 Mar 2013 15:44:39 +0000 (11:44 -0400)

fast-import: clarify "inline" logic in file_change_m

When we read a fast-import line like:

M 100644 :1 foo.c

we point the local object_entry variable "oe" to the object
named by the mark ":1". When the input uses the "inline"
construct, however, we do not have such an object_entry.

The current code is careful not to access "oe" in the inline
case, but we can make the assumption even more obvious (and
catch violations of it) by setting oe to NULL and adding a
comment. As a bonus, this also squelches an over-zealous gcc
-Wuninitialized warning, which means we can drop the "oe =
oe" initialization hack.

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

run-command: always set failed_errno in start_commandJeff King Thu, 21 Mar 2013 15:45:00 +0000 (11:45 -0400)

run-command: always set failed_errno in start_command

When we fail to fork, we set the failed_errno variable to
the value of errno so it is not clobbered by later syscalls.
However, we do so in a conditional, and it is hard to see
later under what conditions the variable has a valid value.

Instead of setting it only when fork fails, let's just
always set it after forking. This is more obvious for human
readers (as we are no longer setting it as a side effect of
a strerror call), and it is more obvious to gcc, which no
longer generates a spurious -Wuninitialized warning. It also
happens to match what the WIN32 half of the #ifdef does.

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

transport: drop "int cmp = cmp" hackJeff King Thu, 21 Mar 2013 11:13:33 +0000 (07:13 -0400)

transport: drop "int cmp = cmp" hack

According to 47ec794, this initialization is meant to
squelch an erroneous uninitialized variable warning from gcc
4.0.1. That version is quite old at this point, and gcc 4.1
and up handle it fine, with one exception. There seems to be
a regression in gcc 4.6.3, which produces the warning;
however, gcc versions 4.4.7 and 4.7.2 do not.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

drop some obsolete "x = x" compiler warning hacksJeff King Thu, 21 Mar 2013 11:10:28 +0000 (07:10 -0400)

drop some obsolete "x = x" compiler warning hacks

In cases where the setting and access of a variable are
protected by the same conditional flag, older versions of
gcc would generate a "might be used unitialized" warning. We
silence the warning by initializing the variable to itself,
a hack that gcc recognizes.

Modern versions of gcc are smart enough to get this right,
going back to at least version 4.3.5. gcc 4.1 does get it
wrong in both cases, but is sufficiently old that we
probably don't need to care about it anymore.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fast-import: use pointer-to-pointer to keep list tailJeff King Thu, 21 Mar 2013 11:08:17 +0000 (07:08 -0400)

fast-import: use pointer-to-pointer to keep list tail

This is shorter, idiomatic, and it means the compiler does
not get confused about whether our "e" pointer is valid,
letting us drop the "e = e" hack.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'we/submodule-update-prefix-output'Junio C Hamano Thu, 21 Mar 2013 21:03:10 +0000 (14:03 -0700)

Merge branch 'we/submodule-update-prefix-output'

"git submodule update", when recursed into sub-submodules, did not
acccumulate the prefix paths.

* we/submodule-update-prefix-output:
submodule update: when using recursion, show full path

Merge branch 'jk/mailsplit-maildir-muttsort'Junio C Hamano Thu, 21 Mar 2013 21:03:08 +0000 (14:03 -0700)

Merge branch 'jk/mailsplit-maildir-muttsort'

Sort filenames read from the maildir/ in a way that is more likely
to sort messages in the order the writing MUA meant to, by sorting
numeric segment in numeric order and non-numeric segment in
alphabetical order.

* jk/mailsplit-maildir-muttsort:
mailsplit: sort maildir filenames more cleverly

Merge branch 'rs/zip-compresssed-size-with-export-subst'Junio C Hamano Thu, 21 Mar 2013 21:03:04 +0000 (14:03 -0700)

Merge branch 'rs/zip-compresssed-size-with-export-subst'

When export-subst is used, "zip" output recorded incorrect
size of the file.

* rs/zip-compresssed-size-with-export-subst:
archive-zip: fix compressed size for stored export-subst files

Merge branch 'mn/send-email-works-with-credential'Junio C Hamano Thu, 21 Mar 2013 21:03:02 +0000 (14:03 -0700)

Merge branch 'mn/send-email-works-with-credential'

Hooks the credential system to send-email.

* mn/send-email-works-with-credential:
git-send-email: use git credential to obtain password
Git.pm: add interface for git credential command
Git.pm: allow pipes to be closed prior to calling command_close_bidi_pipe
Git.pm: refactor command_close_bidi_pipe to use _cmd_close
Git.pm: fix example in command_close_bidi_pipe documentation
Git.pm: allow command_close_bidi_pipe to be called as method

Merge branch 'tz/credential-authinfo'Junio C Hamano Thu, 21 Mar 2013 21:03:00 +0000 (14:03 -0700)

Merge branch 'tz/credential-authinfo'

A new read-only credential helper (in contrib/) to interact with
the .netrc/.authinfo files. Hopefully mn/send-email-authinfo topic
can rebuild on top of something like this.

* tz/credential-authinfo:
Add contrib/credentials/netrc with GPG support

Merge branch 'jk/utf-8-can-be-spelled-differently'Junio C Hamano Thu, 21 Mar 2013 21:02:58 +0000 (14:02 -0700)

Merge branch 'jk/utf-8-can-be-spelled-differently'

Some platforms and users spell UTF-8 differently; retry with the
most official "UTF-8" when the system does not understand the
user-supplied encoding name that are the common alternative
spellings of UTF-8.

* jk/utf-8-can-be-spelled-differently:
utf8: accept alternate spellings of UTF-8

Merge branch 'mg/gpg-interface-using-status'Junio C Hamano Thu, 21 Mar 2013 21:02:55 +0000 (14:02 -0700)

Merge branch 'mg/gpg-interface-using-status'

Call "gpg" using the right API when validating the signature on
tags.

* mg/gpg-interface-using-status:
pretty: make %GK output the signing key for signed commits
pretty: parse the gpg status lines rather than the output
gpg_interface: allow to request status return
log-tree: rely upon the check in the gpg_interface
gpg-interface: check good signature in a reliable way

Merge branch 'rt/commit-cleanup-config'Junio C Hamano Thu, 21 Mar 2013 21:02:53 +0000 (14:02 -0700)

Merge branch 'rt/commit-cleanup-config'

Fix tests that contaminated their environments and affected new
tests introduced later in the sequence by containing their effects
in their own subshells.

* rt/commit-cleanup-config:
t7502: perform commits using alternate editor in a subshell

Merge branch 'nd/branch-error-cases'Junio C Hamano Thu, 21 Mar 2013 21:02:51 +0000 (14:02 -0700)

Merge branch 'nd/branch-error-cases'

"git branch" had more cases where it did not bother to check
nonsense command line parameters.

* nd/branch-error-cases:
branch: segfault fixes and validation

Merge branch 'ap/maint-update-index-h-is-for-help'Junio C Hamano Thu, 21 Mar 2013 21:02:48 +0000 (14:02 -0700)

Merge branch 'ap/maint-update-index-h-is-for-help'

"git update-index -h" did not do the usual "-h(elp)" thing.

* ap/maint-update-index-h-is-for-help:
update-index: allow "-h" to also display options

Merge branch 'jc/perl-cat-blob'Junio C Hamano Thu, 21 Mar 2013 21:02:46 +0000 (14:02 -0700)

Merge branch 'jc/perl-cat-blob'

perl/Git.pm::cat_blob slurped everything in core only to write it
out to a file descriptor, which was not a very smart thing to do.

* jc/perl-cat-blob:
Git.pm: fix cat_blob crashes on large files

Merge branch 'da/difftool-fixes'Junio C Hamano Thu, 21 Mar 2013 21:02:43 +0000 (14:02 -0700)

Merge branch 'da/difftool-fixes'

Minor maintenance updates to difftool, and updates to its tests.

* da/difftool-fixes:
t7800: "defaults" is no longer a builtin tool name
t7800: modernize tests
t7800: update copyright notice
difftool: silence uninitialized variable warning

Merge branch 'ob/imap-send-ssl-verify'Junio C Hamano Thu, 21 Mar 2013 21:02:39 +0000 (14:02 -0700)

Merge branch 'ob/imap-send-ssl-verify'

Correctly connect to SSL/TLS sites that serve multiple hostnames on
a single IP by including Server Name Indication in the client-hello.

* ob/imap-send-ssl-verify:
imap-send: support Server Name Indication (RFC4366)

Merge branch 'bc/commit-complete-lines-given-via-m... Junio C Hamano Thu, 21 Mar 2013 21:02:37 +0000 (14:02 -0700)

Merge branch 'bc/commit-complete-lines-given-via-m-option'

'git commit -m "$str"' when $str was already terminated with a LF
now avoids adding an extra LF to the message.

* bc/commit-complete-lines-given-via-m-option:
Documentation/git-commit.txt: rework the --cleanup section
git-commit: only append a newline to -m mesg if necessary
t7502: demonstrate breakage with a commit message with trailing newlines
t/t7502: compare entire commit message with what was expected

Merge branch 'nd/count-garbage'Junio C Hamano Thu, 21 Mar 2013 21:02:34 +0000 (14:02 -0700)

Merge branch 'nd/count-garbage'

"git count-objects -v" did not count leftover temporary packfiles
and other kinds of garbage.

* nd/count-garbage:
count-objects: report how much disk space taken by garbage files
count-objects: report garbage files in pack directory too
sha1_file: reorder code in prepare_packed_git_one()
git-count-objects.txt: describe each line in -v output

Merge branch 'jc/fetch-raw-sha1'Junio C Hamano Thu, 21 Mar 2013 21:02:27 +0000 (14:02 -0700)

Merge branch 'jc/fetch-raw-sha1'

Allows requests to fetch objects at any tip of refs (including
hidden ones). It seems that there may be use cases even outside
Gerrit (e.g. $gmane/215701).

* jc/fetch-raw-sha1:
fetch: fetch objects by their exact SHA-1 object names
upload-pack: optionally allow fetching from the tips of hidden refs
fetch: use struct ref to represent refs to be fetched
parse_fetch_refspec(): clarify the codeflow a bit

Merge branch 'nd/preallocate-hash'Junio C Hamano Thu, 21 Mar 2013 21:02:19 +0000 (14:02 -0700)

Merge branch 'nd/preallocate-hash'

When we know approximately how many entries we will have in the
hash-table, it makes sense to size the hash table to that number
from the beginning to avoid unnecessary rehashing.

* nd/preallocate-hash:
Preallocate hash tables when the number of inserts are known in advance

Merge branch 'nd/index-pack-l10n-buf-overflow'Junio C Hamano Thu, 21 Mar 2013 21:02:16 +0000 (14:02 -0700)

Merge branch 'nd/index-pack-l10n-buf-overflow'

* nd/index-pack-l10n-buf-overflow:
index-pack: fix buffer overflow caused by translations

Merge branch 'tb/document-status-u-tradeoff'Junio C Hamano Thu, 21 Mar 2013 21:02:10 +0000 (14:02 -0700)

Merge branch 'tb/document-status-u-tradeoff'

Suggest users to look into using--untracked=no option when "git
status" takes too long.

* tb/document-status-u-tradeoff:
status: advise to consider use of -u when read_directory takes too long
git status: document trade-offs in choosing parameters to the -u option

Merge branch 'jn/shell-disable-interactive'Junio C Hamano Thu, 21 Mar 2013 21:01:53 +0000 (14:01 -0700)

Merge branch 'jn/shell-disable-interactive'

When the interactive access to git-shell is not enabled, we issue a
message meant to help the system admininstrator to enable it. Add
an explicit way to help the end users who connect to the service by
issuing custom messages to refuse such an access.

* jn/shell-disable-interactive:
shell: new no-interactive-login command to print a custom message
shell doc: emphasize purpose and security model

Merge branch 'jc/maint-push-refspec-default-doc'Junio C Hamano Thu, 21 Mar 2013 21:01:47 +0000 (14:01 -0700)

Merge branch 'jc/maint-push-refspec-default-doc'

Clarify in the documentation "what" gets pushed to "where" when the
command line to "git push" does not say these explicitly.

* jc/maint-push-refspec-default-doc:
Documentation/git-push: clarify the description of defaults

The first wave of topics for 1.8.3Junio C Hamano Tue, 19 Mar 2013 19:30:25 +0000 (12:30 -0700)

The first wave of topics for 1.8.3

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

Merge branch 'jc/add-2.0-u-A-sans-pathspec' (early... Junio C Hamano Tue, 19 Mar 2013 19:21:27 +0000 (12:21 -0700)

Merge branch 'jc/add-2.0-u-A-sans-pathspec' (early part)

* 'jc/add-2.0-u-A-sans-pathspec' (early part):
t2200: check that "add -u" limits itself to subdirectory

Merge branch 'lf/bundle-verify-list-prereqs'Junio C Hamano Tue, 19 Mar 2013 19:21:09 +0000 (12:21 -0700)

Merge branch 'lf/bundle-verify-list-prereqs'

* lf/bundle-verify-list-prereqs:
bundle: Add colons to list headings in "verify"
bundle: Fix "verify" output if history is complete

Merge branch 'jk/graph-c-expose-symbols-for-cgit'Junio C Hamano Tue, 19 Mar 2013 19:20:56 +0000 (12:20 -0700)

Merge branch 'jk/graph-c-expose-symbols-for-cgit'

In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.

* jk/graph-c-expose-symbols-for-cgit:
Revert "graph.c: mark private file-scope symbols as static"

Merge branch 'tk/doc-filter-branch'Junio C Hamano Tue, 19 Mar 2013 19:20:50 +0000 (12:20 -0700)

Merge branch 'tk/doc-filter-branch'

* tk/doc-filter-branch:
Documentation: filter-branch env-filter example
git-filter-branch.txt: clarify ident variables usage

Merge branch 'wk/user-manual-literal-format'Junio C Hamano Tue, 19 Mar 2013 19:20:44 +0000 (12:20 -0700)

Merge branch 'wk/user-manual-literal-format'

* wk/user-manual-literal-format:
user-manual: Standardize backtick quoting

Merge branch 'rj/msvc-build'Junio C Hamano Tue, 19 Mar 2013 19:20:40 +0000 (12:20 -0700)

Merge branch 'rj/msvc-build'

* rj/msvc-build:
msvc: avoid collisions between "tags" and "TAGS"
msvc: test-svn-fe: Fix linker "unresolved external" error
msvc: Fix build by adding missing symbol defines
msvc: git-daemon: Fix linker "unresolved external" errors
msvc: Fix compilation errors caused by poll.h emulation

Merge branch 'dm/ni-maxhost-may-be-missing'Junio C Hamano Tue, 19 Mar 2013 19:18:21 +0000 (12:18 -0700)

Merge branch 'dm/ni-maxhost-may-be-missing'

On systems without NI_MAXHOST in their system header files,
connect.c (hence most of the transport) did not compile.

* dm/ni-maxhost-may-be-missing:
git-compat-util.h: Provide missing netdb.h definitions

Merge branch 'gp/describe-match-uses-glob-pattern'Junio C Hamano Tue, 19 Mar 2013 19:16:31 +0000 (12:16 -0700)

Merge branch 'gp/describe-match-uses-glob-pattern'

The syntax of the pattern given to the "--match=<pattern>" argument
to "git describe" was not documented to be a glob.

* gp/describe-match-uses-glob-pattern:
describe: Document --match pattern format

Merge branch 'gp/avoid-explicit-mention-of-dot-git... Junio C Hamano Tue, 19 Mar 2013 19:16:22 +0000 (12:16 -0700)

Merge branch 'gp/avoid-explicit-mention-of-dot-git-refs'

* gp/avoid-explicit-mention-of-dot-git-refs:
Fix ".git/refs" stragglers

Merge branch 'da/downcase-u-in-usage'Junio C Hamano Tue, 19 Mar 2013 19:15:54 +0000 (12:15 -0700)

Merge branch 'da/downcase-u-in-usage'

* da/downcase-u-in-usage:
contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
contrib/examples/git-remote.perl: use a lowercase "usage:" string
tests: use a lowercase "usage:" string
git-svn: use a lowercase "usage:" string
Documentation/user-manual.txt: use a lowercase "usage:" string
templates/hooks--update.sample: use a lowercase "usage:" string
contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
contrib/examples: use a lowercase "usage:" string
contrib/fast-import/import-zips.py: use spaces instead of tabs
contrib/fast-import/import-zips.py: fix broken error message
contrib/fast-import: use a lowercase "usage:" string
contrib/credential: use a lowercase "usage:" string
git-cvsimport: use a lowercase "usage:" string
git-cvsimport: use a lowercase "usage:" string
git-cvsexportcommit: use a lowercase "usage:" string
git-archimport: use a lowercase "usage:" string
git-merge-one-file: use a lowercase "usage:" string
git-relink: use a lowercase "usage:" string
git-svn: use a lowercase "usage:" string
git-sh-setup: use a lowercase "usage:" string

Merge branch 'nd/doc-index-format'Junio C Hamano Tue, 19 Mar 2013 19:15:14 +0000 (12:15 -0700)

Merge branch 'nd/doc-index-format'

Update the index format documentation to mention the v4 format.

* nd/doc-index-format:
update-index: list supported idx versions and their features
read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
index-format.txt: mention of v4 is missing in some places

Merge branch 'wk/doc-pre-rebase'Junio C Hamano Tue, 19 Mar 2013 19:14:05 +0000 (12:14 -0700)

Merge branch 'wk/doc-pre-rebase'

* wk/doc-pre-rebase:
Documentation/githooks: Explain pre-rebase parameters

Merge branch 'jc/color-diff-doc'Junio C Hamano Tue, 19 Mar 2013 19:11:31 +0000 (12:11 -0700)

Merge branch 'jc/color-diff-doc'

The --color[=<when>] option to the diff family was documented in a
confusing way.

* jc/color-diff-doc:
diff-options: unconfuse description of --color

Start the post 1.8.2 cycleJunio C Hamano Mon, 18 Mar 2013 22:01:19 +0000 (15:01 -0700)

Start the post 1.8.2 cycle

Again, tentatively let's call this cycle 1.8.3.

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

pack-refs: add fully-peeled traitMichael Haggerty Mon, 18 Mar 2013 11:37:32 +0000 (07:37 -0400)

pack-refs: add fully-peeled trait

Older versions of pack-refs did not write peel lines for
refs outside of refs/tags. This meant that on reading the
pack-refs file, we might set the REF_KNOWS_PEELED flag for
such a ref, even though we do not know anything about its
peeled value.

The previous commit updated the writer to always peel, no
matter what the ref is. That means that packed-refs files
written by newer versions of git are fine to be read by both
old and new versions of git. However, we still have the
problem of reading packed-refs files written by older
versions of git, or by other implementations which have not
yet learned the same trick.

The simplest fix would be to always unset the
REF_KNOWS_PEELED flag for refs outside of refs/tags that do
not have a peel line (if it has a peel line, we know it is
valid, but we cannot assume a missing peel line means
anything). But that loses an important optimization, as
upload-pack should not need to load the object pointed to by
refs/heads/foo to determine that it is not a tag.

Instead, we add a "fully-peeled" trait to the packed-refs
file. If it is set, we know that we can trust a missing peel
line to mean that a ref cannot be peeled. Otherwise, we fall
back to assuming nothing.

[commit message and tests by Jeff King <peff@peff.net>]

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 17 Mar 2013 22:39:43 +0000 (15:39 -0700)

Merge branch 'maint'

* maint:
t1507: Test that branchname@{upstream} is interpreted as branch

t1507: Test that branchname@{upstream} is interpreted... Kacper Kornet Sun, 17 Mar 2013 22:17:09 +0000 (23:17 +0100)

t1507: Test that branchname@{upstream} is interpreted as branch

Syntax branchname@{upstream} should interpret its argument as a name of
a branch. Add the test to check that it doesn't try to interpret it as a
refname if the branch in question does not exist.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>