gitweb.git
Merge branch 'jc/fetch-ignore-symref'Junio C Hamano Sun, 6 Jan 2013 07:41:37 +0000 (23:41 -0800)

Merge branch 'jc/fetch-ignore-symref'

Avoid false error from an attempt to update local symbolic ref via
fetch.

* jc/fetch-ignore-symref:
fetch: ignore wildcarded refspecs that update local symbolic refs

Merge branch 'cr/push-force-tag-update'Junio C Hamano Sun, 6 Jan 2013 07:41:34 +0000 (23:41 -0800)

Merge branch 'cr/push-force-tag-update'

Require "-f" for push to update a tag, even if it is a fast-forward.

* cr/push-force-tag-update:
push: allow already-exists advice to be disabled
push: rename config variable for more general use
push: cleanup push rules comment
push: clarify rejection of update to non-commit-ish
push: require force for annotated tags
push: require force for refs under refs/tags/
push: flag updates that require force
push: keep track of "update" state separately
push: add advice for rejected tag reference
push: return reject reasons as a bitset

Merge branch 'fc/fast-export-fixes'Junio C Hamano Sun, 6 Jan 2013 07:41:09 +0000 (23:41 -0800)

Merge branch 'fc/fast-export-fixes'

Various updates to fast-export used in the context of the remote
helper interface.

* fc/fast-export-fixes:
fast-export: make sure updated refs get updated
fast-export: don't handle uninteresting refs
fast-export: fix comparison in tests
fast-export: trivial cleanup
remote-testgit: implement the "done" feature manually
remote-testgit: report success after an import
remote-testgit: exercise more features
remote-testgit: cleanup tests
remote-testgit: remove irrelevant test
remote-testgit: remove non-local functionality
Add new simplified git-remote-testgit
Rename git-remote-testgit to git-remote-testpy
remote-helpers: fix failure message
remote-testgit: fix direction of marks
fast-export: avoid importing blob marks

Merge branch 'mh/unify-xml-in-imap-send-and-http-push'Junio C Hamano Sun, 6 Jan 2013 07:41:04 +0000 (23:41 -0800)

Merge branch 'mh/unify-xml-in-imap-send-and-http-push'

Update imap-send to reuse xml quoting code from http-push codepath,
clean up some code, and fix a small bug.

* mh/unify-xml-in-imap-send-and-http-push:
wrap_in_html(): process message in bulk rather than line-by-line
wrap_in_html(): use strbuf_addstr_xml_quoted()
imap-send: change msg_data from storing (ptr, len) to storing strbuf
imap-send: correctly report errors reading from stdin
imap-send: store all_msgs as a strbuf
lf_to_crlf(): NUL-terminate msg_data::data
xml_entities(): use function strbuf_addstr_xml_quoted()
Add new function strbuf_add_xml_quoted()

Merge branch 'nd/pathspec-wildcard'Junio C Hamano Sun, 6 Jan 2013 07:40:15 +0000 (23:40 -0800)

Merge branch 'nd/pathspec-wildcard'

Optimize matching paths with common forms of pathspecs that contain
wildcard characters.

* nd/pathspec-wildcard:
tree_entry_interesting: do basedir compare on wildcard patterns when possible
pathspec: apply "*.c" optimization from exclude
pathspec: do exact comparison on the leading non-wildcard part
pathspec: save the non-wildcard length part

Merge branch 'jk/fsck-dot-in-trees'Junio C Hamano Sun, 6 Jan 2013 07:40:04 +0000 (23:40 -0800)

Merge branch 'jk/fsck-dot-in-trees'

* jk/fsck-dot-in-trees:
fsck: warn about ".git" in trees
fsck: warn about '.' and '..' in trees

Merge branch 'pf/editor-ignore-sigint'Junio C Hamano Sun, 6 Jan 2013 06:48:09 +0000 (22:48 -0800)

Merge branch 'pf/editor-ignore-sigint'

* pf/editor-ignore-sigint:
fix compilation with NO_PTHREADS

fix compilation with NO_PTHREADSJeff King Sat, 5 Jan 2013 14:52:29 +0000 (09:52 -0500)

fix compilation with NO_PTHREADS

Commit 1327452 cleaned up an unused parameter from
wait_or_whine, but forgot to update a caller that is inside
"#ifdef NO_PTHREADS".

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

Update draft release notes to 1.8.2Junio C Hamano Thu, 3 Jan 2013 18:33:22 +0000 (10:33 -0800)

Update draft release notes to 1.8.2

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

Merge branch 'da/p4merge-mktemp'Junio C Hamano Thu, 3 Jan 2013 18:29:32 +0000 (10:29 -0800)

Merge branch 'da/p4merge-mktemp'

Create an empty file in $TMPDIR instead of using an empty file in
the local directory.

* da/p4merge-mktemp:
mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder

Merge branch 'ms/subtree-fixlets'Junio C Hamano Thu, 3 Jan 2013 18:29:29 +0000 (10:29 -0800)

Merge branch 'ms/subtree-fixlets'

* ms/subtree-fixlets:
git-subtree: fix typo in manpage
git-subtree: ignore git-subtree executable

Merge branch 'as/test-tweaks'Junio C Hamano Thu, 3 Jan 2013 18:29:12 +0000 (10:29 -0800)

Merge branch 'as/test-tweaks'

Output from the tests is coloured using "green is okay, yellow is
questionable, red is bad and blue is informative" scheme.

* as/test-tweaks:
tests: paint unexpectedly fixed known breakages in bold red
tests: test the test framework more thoroughly
tests: refactor mechanics of testing in a sub test-lib
tests: change info messages from yellow/brown to cyan
tests: paint skipped tests in blue
tests: paint known breakages in yellow
tests: test number comes first in 'not ok $count - $message'

Merge branch 'jc/same-encoding'Junio C Hamano Thu, 3 Jan 2013 18:29:08 +0000 (10:29 -0800)

Merge branch 'jc/same-encoding'

Finishing touches to the series to unify "Do we need to reencode
between these two encodings?" logic.

* jc/same-encoding:
format_commit_message(): simplify calls to logmsg_reencode()

Merge branch 'pf/editor-ignore-sigint'Junio C Hamano Thu, 3 Jan 2013 18:28:45 +0000 (10:28 -0800)

Merge branch 'pf/editor-ignore-sigint'

The behaviour visible to the end users was confusing, when they
attempt to kill a process spawned in the editor that was in turn
launched by Git with SIGINT (or SIGQUIT), as Git would catch that
signal and die. We ignore these signals now.

* pf/editor-ignore-sigint:
launch_editor: propagate signals from editor to git
run-command: do not warn about child death from terminal
launch_editor: ignore terminal signals while editor has control
launch_editor: refactor to use start/finish_command
run-command: drop silent_exec_failure arg from wait_or_whine

Merge branch 'mh/pthreads-autoconf'Junio C Hamano Thu, 3 Jan 2013 18:28:33 +0000 (10:28 -0800)

Merge branch 'mh/pthreads-autoconf'

* mh/pthreads-autoconf:
configure.ac: fix pthreads detection on Mac OS X

Merge branch 'mk/qnx'Junio C Hamano Thu, 3 Jan 2013 18:28:26 +0000 (10:28 -0800)

Merge branch 'mk/qnx'

Port to QNX.

* mk/qnx:
Port to QNX
Make lock local to fetch_pack

Merge branch 'dm/port'Junio C Hamano Thu, 3 Jan 2013 18:28:21 +0000 (10:28 -0800)

Merge branch 'dm/port'

Add a few more knobs for new platform ports can tweak.

* dm/port:
git-compat-util.h: do not #include <sys/param.h> by default
Generalize the inclusion of strings.h
Detect when the passwd struct is missing pw_gecos
Support builds when sys/param.h is missing

Merge branch 'ss/nedmalloc-compilation'Junio C Hamano Thu, 3 Jan 2013 18:14:10 +0000 (10:14 -0800)

Merge branch 'ss/nedmalloc-compilation'

* ss/nedmalloc-compilation:
nedmalloc: Fix a compile warning (exposed as error) with GCC 4.7.2

Merge branch 'jc/maint-fnmatch-old-style-definition'Junio C Hamano Thu, 3 Jan 2013 18:14:05 +0000 (10:14 -0800)

Merge branch 'jc/maint-fnmatch-old-style-definition'

Update old-style function definition "int foo(bar) int bar; {}"
to "int foo(int bar) {}".

* jc/maint-fnmatch-old-style-definition:
compat/fnmatch: update old-style definition to ANSI

Start 1.8.2 cycleJunio C Hamano Wed, 2 Jan 2013 18:44:12 +0000 (10:44 -0800)

Start 1.8.2 cycle

Various fixes that have been cooking in 'next' have been merged. All
of them should go to 'maint' for 1.8.1.1 later.

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

Merge branch 'jc/test-portability'Junio C Hamano Wed, 2 Jan 2013 18:53:59 +0000 (10:53 -0800)

Merge branch 'jc/test-portability'

* jc/test-portability:
t9020: use configured Python to run the test helper
t3600: Avoid "cp -a", which is a GNUism

Merge branch 'jc/maint-fbsd-sh-ifs-workaround'Junio C Hamano Wed, 2 Jan 2013 18:40:41 +0000 (10:40 -0800)

Merge branch 'jc/maint-fbsd-sh-ifs-workaround'

Some shells do not behave correctly when IFS is unset; work it
around by explicitly setting it to the default value.

* jc/maint-fbsd-sh-ifs-workaround:
sh-setup: work around "unset IFS" bug in some shells

Merge branch 'sp/shortlog-missing-lf'Junio C Hamano Wed, 2 Jan 2013 18:40:34 +0000 (10:40 -0800)

Merge branch 'sp/shortlog-missing-lf'

When a line to be wrapped has a solid run of non space characters
whose length exactly is the wrap width, "git shortlog -w" failed to
add a newline after such a line.

* sp/shortlog-missing-lf:
strbuf_add_wrapped*(): Remove unused return value
shortlog: fix wrapping lines of wraplen

Merge branch 'md/gitweb-sort-by-age'Junio C Hamano Wed, 2 Jan 2013 18:40:03 +0000 (10:40 -0800)

Merge branch 'md/gitweb-sort-by-age'

"gitweb", when sorting by age to show repositories with new
activities first, used to sort repositories with absolutely nothing
in it early, which was not very useful.

* md/gitweb-sort-by-age:
gitweb: Sort projects with undefined ages last

Merge branch 'nd/invalidate-i-t-a-cache-tree'Junio C Hamano Wed, 2 Jan 2013 18:39:51 +0000 (10:39 -0800)

Merge branch 'nd/invalidate-i-t-a-cache-tree'

After "git add -N" and then writing a tree object out of the
index, the cache-tree data structure got corrupted.

* nd/invalidate-i-t-a-cache-tree:
cache-tree: invalidate i-t-a paths after generating trees
cache-tree: fix writing cache-tree when CE_REMOVE is present
cache-tree: replace "for" loops in update_one with "while" loops
cache-tree: remove dead i-t-a code in verify_cache()

Merge branch 'jk/repack-ref-racefix'Junio C Hamano Wed, 2 Jan 2013 18:39:36 +0000 (10:39 -0800)

Merge branch 'jk/repack-ref-racefix'

"git pack-refs" that ran in parallel to another process that created
new refs had a nasty race.

* jk/repack-ref-racefix:
refs: do not use cached refs in repack_without_ref

Merge branch 'rb/http-cert-cred-no-username-prompt'Junio C Hamano Wed, 2 Jan 2013 18:39:21 +0000 (10:39 -0800)

Merge branch 'rb/http-cert-cred-no-username-prompt'

http transport was wrong to ask for the username when the
authentication is done by certificate identity.

* rb/http-cert-cred-no-username-prompt:
http.c: Avoid username prompt for certifcate credentials

Merge branch 'mk/maint-graph-infinity-loop'Junio C Hamano Wed, 2 Jan 2013 18:39:09 +0000 (10:39 -0800)

Merge branch 'mk/maint-graph-infinity-loop'

The --graph code fell into infinite loop when asked to do what the
code did not expect.

* mk/maint-graph-infinity-loop:
graph.c: infinite loop in git whatchanged --graph -m

Merge branch 'ss/svn-prompt'Junio C Hamano Wed, 2 Jan 2013 18:38:50 +0000 (10:38 -0800)

Merge branch 'ss/svn-prompt'

The way "git svn" asked for password using SSH_ASKPASS and
GIT_ASKPASS was not in line with the rest of the system.

* ss/svn-prompt:
git-svn, perl/Git.pm: extend and use Git->prompt method for querying users
perl/Git.pm: Honor SSH_ASKPASS as fallback if GIT_ASKPASS is not set
git-svn, perl/Git.pm: add central method for prompting passwords

Merge branch 'jc/mkstemp-more-careful-error-reporting'Junio C Hamano Wed, 2 Jan 2013 18:38:25 +0000 (10:38 -0800)

Merge branch 'jc/mkstemp-more-careful-error-reporting'

After failing to create a temporary file using mkstemp(), failing
pathname was not reported correctly on some platforms.

* jc/mkstemp-more-careful-error-reporting:
xmkstemp(): avoid showing truncated template more carefully

Merge branch 'jc/test-cvs-no-init-in-existing-dir'Junio C Hamano Wed, 2 Jan 2013 18:38:09 +0000 (10:38 -0800)

Merge branch 'jc/test-cvs-no-init-in-existing-dir'

t9200 runs "cvs init" on a directory that already exists, but a
platform can configure this fail for the current user (e.g. you need
to be in the cvsadmin group on NetBSD 6.0).

* jc/test-cvs-no-init-in-existing-dir:
t9200: let "cvs init" create the test repository

Merge branch 'jc/maint-test-portability'Junio C Hamano Wed, 2 Jan 2013 18:37:48 +0000 (10:37 -0800)

Merge branch 'jc/maint-test-portability'

t4014, t9502 and t0200 tests had various portability issues that
broke on OpenBSD.

* jc/maint-test-portability:
t4014: fix arguments to grep
t9502: do not assume GNU tar
t0200: "locale" may not exist

Merge branch 'mh/ceiling'Junio C Hamano Wed, 2 Jan 2013 18:36:59 +0000 (10:36 -0800)

Merge branch 'mh/ceiling'

An element on GIT_CEILING_DIRECTORIES list that does not name the
real path to a directory (i.e. a symbolic link) could have caused
the GIT_DIR discovery logic to escape the ceiling.

* mh/ceiling:
string_list_longest_prefix(): remove function
setup_git_directory_gently_1(): resolve symlinks in ceiling paths
longest_ancestor_length(): require prefix list entries to be normalized
longest_ancestor_length(): take a string_list argument for prefixes
longest_ancestor_length(): use string_list_split()
Introduce new function real_path_if_valid()
real_path_internal(): add comment explaining use of cwd
Introduce new static function real_path_internal()

Git 1.8.1 v1.8.1Junio C Hamano Mon, 31 Dec 2012 22:24:22 +0000 (14:24 -0800)

Git 1.8.1

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

Merge branch 'so/prompt-command'Junio C Hamano Fri, 28 Dec 2012 00:00:07 +0000 (16:00 -0800)

Merge branch 'so/prompt-command'

Finishing touches...

* so/prompt-command:
make __git_ps1 accept a third parameter in pcmode

Sync with 1.8.0.3Junio C Hamano Thu, 27 Dec 2012 23:59:42 +0000 (15:59 -0800)

Sync with 1.8.0.3

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

Git 1.8.0.3 v1.8.0.3Junio C Hamano Thu, 27 Dec 2012 23:57:20 +0000 (15:57 -0800)

Git 1.8.0.3

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

git(1): show link to contributor summary pageJunio C Hamano Wed, 12 Dec 2012 18:06:24 +0000 (10:06 -0800)

git(1): show link to contributor summary page

We earlier removed a link to list of contributors that pointed to a
defunct page; let's use a working one from Ohloh.net to replace it
instead.

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

Merge branch 'sl/maint-git-svn-docs' into maintJunio C Hamano Thu, 27 Dec 2012 23:38:34 +0000 (15:38 -0800)

Merge branch 'sl/maint-git-svn-docs' into maint

* sl/maint-git-svn-docs:
git-svn: Note about tags.
git-svn: Expand documentation for --follow-parent
git-svn: Recommend use of structure options.
git-svn: Document branches with at-sign(@).

git-svn: Note about tags.Sebastian Leske Fri, 23 Nov 2012 07:29:38 +0000 (08:29 +0100)

git-svn: Note about tags.

Document that 'git svn' will import SVN tags as branches.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Expand documentation for --follow-parentSebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Expand documentation for --follow-parent

Describe what the option --follow-parent does, and what happens if it is
set or unset.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Recommend use of structure options.Sebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Recommend use of structure options.

Document that when using git svn, one should usually either use the
directory structure options to import branches as branches, or only
import one subdirectory. The default behaviour of cloning all branches
and tags as subdirectories in the working copy is usually not what the
user wants.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Document branches with at-sign(@).Sebastian Leske Fri, 30 Nov 2012 07:16:30 +0000 (08:16 +0100)

git-svn: Document branches with at-sign(@).

git svn sometimes creates branches with an at-sign in the name
(branchname@revision). These branches confuse many users and it is a FAQ
why they are created. Document when git svn creates them.

Signed-off-by: Sebastian Leske <sebastian.leske@sleske.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'gb/maint-doc-svn-log-window-size' into... Junio C Hamano Thu, 27 Dec 2012 23:34:37 +0000 (15:34 -0800)

Merge branch 'gb/maint-doc-svn-log-window-size' into maint

* branch 'gb/maint-doc-svn-log-window-size':
Document git-svn fetch --log-window-size parameter

Merge branch 'km/maint-doc-git-reset' into maintJunio C Hamano Thu, 27 Dec 2012 23:32:27 +0000 (15:32 -0800)

Merge branch 'km/maint-doc-git-reset' into maint

* branch 'km/maint-doc-git-reset':
doc: git-reset: make "<mode>" optional

git-remote-helpers.txt: document invocation before... Max Horn Tue, 27 Nov 2012 23:03:21 +0000 (00:03 +0100)

git-remote-helpers.txt: document invocation before input format

In the distant past, the order things were documented was
'Invocation', 'Commands', 'Capabilities', ...

Then it was decided that before giving a list of Commands, there
should be an overall description of the 'Input format', which was
a wise decision. However, this description was put as the very
first thing, with the rationale that any implementor would want
to know that first.

However, it seems an implementor would actually first need to
know how the remote helper will be invoked, so moving
'Invocation' to the front again seems logical. Moreover, we now
don't switch from discussing the input format to the invocation
style and then back to input related stuff.

Signed-off-by: Max Horn <max@quendi.de>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/avoid-mailto-invalid-in-doc' into... Junio C Hamano Thu, 27 Dec 2012 23:27:46 +0000 (15:27 -0800)

Merge branch 'jk/avoid-mailto-invalid-in-doc' into maint

* jk/avoid-mailto-invalid-in-doc:
Documentation: don't link to example mail addresses

Merge branch 'tj/maint-doc-commit-sign' into maintJunio C Hamano Thu, 27 Dec 2012 23:24:51 +0000 (15:24 -0800)

Merge branch 'tj/maint-doc-commit-sign' into maint

* branch 'tj/maint-doc-commit-sign':
Add -S, --gpg-sign option to manpage of "git commit"

Documentation: move diff.wordRegex from config.txt... Ramkumar Ramachandra Tue, 13 Nov 2012 15:42:44 +0000 (21:12 +0530)

Documentation: move diff.wordRegex from config.txt to diff-config.txt

19299a8 (Documentation: Move diff.<driver>.* from config.txt to
diff-config.txt, 2011-04-07) moved the diff configuration options to
diff-config.txt, but forgot about diff.wordRegex, which was left
behind in config.txt. Fix this.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mergetools/p4merge: Honor $TMPDIR for the /dev/null... David Aguilar Thu, 27 Dec 2012 00:45:29 +0000 (16:45 -0800)

mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder

Use $TMPDIR when creating the /dev/null placeholder for p4merge.
This prevents users from finding a seemingly random untracked file
in their worktree.

This is different than what mergetool does with $LOCAL and
$REMOTE because those files exist to aid users when resolving
merges. p4merge's /dev/null placeholder is not helpful in that
situation so it is sensible to keep it out of the worktree.

Reported-by: Jeremy Morton <admin@game-point.net>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make __git_ps1 accept a third parameter in pcmodeSimon Oosthoek Wed, 26 Dec 2012 19:15:05 +0000 (20:15 +0100)

make __git_ps1 accept a third parameter in pcmode

The optional third parameter when __git_ps1 is used in
PROMPT_COMMAND mode as format string for printf to further
customize the way the git status string is embedded in the
user's PS1 prompt.

Signed-off-by: Simon Oosthoek <s.oosthoek@xs4all.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9200: let "cvs init" create the test repositoryJunio C Hamano Tue, 25 Dec 2012 01:09:49 +0000 (17:09 -0800)

t9200: let "cvs init" create the test repository

Some platforms (e.g. NetBSD 6.0) seem to configure their CVS to
allow "cvs init" in an existing directory only to members of
"cvsadmin".

Instead of preparing an empty directory and then running "cvs init"
on it, let's run "cvs init" and let it create the necessary
directory.

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

Merge branch 'maint'Junio C Hamano Sun, 23 Dec 2012 04:40:07 +0000 (20:40 -0800)

Merge branch 'maint'

Merge branch 'jc/doc-diff-blobs' into maintJunio C Hamano Sun, 23 Dec 2012 04:38:07 +0000 (20:38 -0800)

Merge branch 'jc/doc-diff-blobs' into maint

* jc/doc-diff-blobs:
Documentation: Describe "git diff <blob> <blob>" separately

Merge branch 'cr/doc-checkout-branch' into maintJunio C Hamano Sun, 23 Dec 2012 04:38:02 +0000 (20:38 -0800)

Merge branch 'cr/doc-checkout-branch' into maint

* cr/doc-checkout-branch:
Documentation/git-checkout.txt: document 70c9ac2 behavior
Documentation/git-checkout.txt: clarify usage

Merge branch 'ta/api-index-doc' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:42 +0000 (20:37 -0800)

Merge branch 'ta/api-index-doc' into maint

* ta/api-index-doc:
Remove misleading date from api-index-skel.txt

Merge branch 'as/doc-for-devs' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:33 +0000 (20:37 -0800)

Merge branch 'as/doc-for-devs' into maint

* as/doc-for-devs:
Documentation: move support for old compilers to CodingGuidelines
SubmittingPatches: add convention of prefixing commit messages

Merge branch 'sl/readme-gplv2' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:27 +0000 (20:37 -0800)

Merge branch 'sl/readme-gplv2' into maint

* sl/readme-gplv2:
README: it does not matter who the current maintainer is
README: Git is released under the GPLv2, not just "the GPL"

Merge branch 'jc/fetch-tags-doc' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:22 +0000 (20:37 -0800)

Merge branch 'jc/fetch-tags-doc' into maint

* jc/fetch-tags-doc:
fetch --tags: clarify documentation

Merge branch 'nd/index-format-doc' into maintJunio C Hamano Sun, 23 Dec 2012 04:37:09 +0000 (20:37 -0800)

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

* nd/index-format-doc:
index-format.txt: clarify what is "invalid"

Merge branch 'jk/mailmap-cleanup' into maintJunio C Hamano Sun, 23 Dec 2012 04:36:42 +0000 (20:36 -0800)

Merge branch 'jk/mailmap-cleanup' into maint

* jk/mailmap-cleanup:
contrib: update stats/mailmap script
.mailmap: normalize emails for Linus Torvalds
.mailmap: normalize emails for Jeff King
.mailmap: fix broken entry for Martin Langhoff
.mailmap: match up some obvious names/emails

Merge branch 'ta/doc-cleanup' into maintJunio C Hamano Sun, 23 Dec 2012 04:35:34 +0000 (20:35 -0800)

Merge branch 'ta/doc-cleanup' into maint

* ta/doc-cleanup:
Documentation: build html for all files in technical and howto
Documentation/howto: convert plain text files to asciidoc
Documentation/technical: convert plain text files to asciidoc
Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt
Shorten two over-long lines in git-bisect-lk2009.txt by abbreviating some sha1
Split over-long synopsis in git-fetch-pack.txt into several lines

Sort howto documents in howto-index.txtThomas Ackermann Sat, 22 Dec 2012 18:34:27 +0000 (19:34 +0100)

Sort howto documents in howto-index.txt

Howto documents in howto-index.txt were listed in a rather
random order. So better sort them.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-subtree: fix typo in manpageMichael Schubert Sat, 22 Dec 2012 14:46:02 +0000 (15:46 +0100)

git-subtree: fix typo in manpage

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-subtree: ignore git-subtree executableMichael Schubert Sat, 22 Dec 2012 14:45:40 +0000 (15:45 +0100)

git-subtree: ignore git-subtree executable

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.8.1-rc3 v1.8.1-rc3Junio C Hamano Sat, 22 Dec 2012 19:48:47 +0000 (11:48 -0800)

Git 1.8.1-rc3

The changes since -rc2 are mostly documentation updates.

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

Merge branch 'ta/new-command-howto'Junio C Hamano Fri, 21 Dec 2012 23:19:25 +0000 (15:19 -0800)

Merge branch 'ta/new-command-howto'

* ta/new-command-howto:
Move ./technical/api-command.txt to ./howto/new-command.txt

Merge branch 'jc/doc-diff-blobs'Junio C Hamano Fri, 21 Dec 2012 23:19:13 +0000 (15:19 -0800)

Merge branch 'jc/doc-diff-blobs'

"git diff <blob> <blob>" was not documented and was only hinted as
an extension to "git diff <commit> <commit> -- <pathspec>", but
comparison between two blobs are more special than that. It does
not take any pathspec to begin with.

* jc/doc-diff-blobs:
Documentation: Describe "git diff <blob> <blob>" separately

Merge branch 'cr/doc-checkout-branch'Junio C Hamano Fri, 21 Dec 2012 23:19:08 +0000 (15:19 -0800)

Merge branch 'cr/doc-checkout-branch'

Document the magic "git checkout <no-such-branch>" hack to create
local branch out of a remote tracking branch that hasn't been
documented so far.

* cr/doc-checkout-branch:
Documentation/git-checkout.txt: document 70c9ac2 behavior
Documentation/git-checkout.txt: clarify usage

Merge branch 'ta/api-index-doc'Junio C Hamano Fri, 21 Dec 2012 23:19:04 +0000 (15:19 -0800)

Merge branch 'ta/api-index-doc'

* ta/api-index-doc:
Remove misleading date from api-index-skel.txt

Merge branch 'jk/avoid-mailto-invalid-in-doc'Junio C Hamano Fri, 21 Dec 2012 23:18:57 +0000 (15:18 -0800)

Merge branch 'jk/avoid-mailto-invalid-in-doc'

Avoids invalid sample e-mail addresses from becoming mailto links
in the formatted output.

* jk/avoid-mailto-invalid-in-doc:
Documentation: don't link to example mail addresses

Merge branch 'as/doc-for-devs'Junio C Hamano Fri, 21 Dec 2012 23:18:47 +0000 (15:18 -0800)

Merge branch 'as/doc-for-devs'

It might be a better idea to move the text the bottom one adds to
the extended description from the quick checklist part.

* as/doc-for-devs:
Documentation: move support for old compilers to CodingGuidelines
SubmittingPatches: add convention of prefixing commit messages

Merge branch 'sl/readme-gplv2'Junio C Hamano Fri, 21 Dec 2012 23:18:41 +0000 (15:18 -0800)

Merge branch 'sl/readme-gplv2'

Clarify that the project as a whole is GPLv2 only, with some parts
borrowed under different licenses that are compatible with GPLv2.

* sl/readme-gplv2:
README: it does not matter who the current maintainer is
README: Git is released under the GPLv2, not just "the GPL"

Merge branch 'jc/fetch-tags-doc'Junio C Hamano Fri, 21 Dec 2012 23:18:35 +0000 (15:18 -0800)

Merge branch 'jc/fetch-tags-doc'

"git fetch --tags" was explained as if it were "git fetch
--no-no-tags", which is not the case, causing confusion.

* jc/fetch-tags-doc:
fetch --tags: clarify documentation

Merge branch 'nd/index-format-doc'Junio C Hamano Fri, 21 Dec 2012 23:18:31 +0000 (15:18 -0800)

Merge branch 'nd/index-format-doc'

* nd/index-format-doc:
index-format.txt: clarify what is "invalid"

Merge branch 'sl/git-svn-docs'Junio C Hamano Fri, 21 Dec 2012 23:18:27 +0000 (15:18 -0800)

Merge branch 'sl/git-svn-docs'

* sl/git-svn-docs:
git-svn: Note about tags.
git-svn: Expand documentation for --follow-parent
git-svn: Recommend use of structure options.
git-svn: Document branches with at-sign(@).

Merge branch 'jk/mailmap-cleanup'Junio C Hamano Fri, 21 Dec 2012 23:18:20 +0000 (15:18 -0800)

Merge branch 'jk/mailmap-cleanup'

Update various entries in our .mailmap file.

* jk/mailmap-cleanup:
contrib: update stats/mailmap script
.mailmap: normalize emails for Linus Torvalds
.mailmap: normalize emails for Jeff King
.mailmap: fix broken entry for Martin Langhoff
.mailmap: match up some obvious names/emails

Move ./technical/api-command.txt to ./howto/new-command.txtThomas Ackermann Fri, 21 Dec 2012 18:05:28 +0000 (19:05 +0100)

Move ./technical/api-command.txt to ./howto/new-command.txt

The contents of this document does not describe any particular API, but
is more about the way to add a new command, which belongs to the "How To"
section of the documentation suite.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http.c: Avoid username prompt for certifcate credentialsRene Bredlau Fri, 21 Dec 2012 16:31:19 +0000 (17:31 +0100)

http.c: Avoid username prompt for certifcate credentials

If sslCertPasswordProtected is set to true do not ask for username to decrypt rsa key. This question is pointless, the key is only protected by a password. Internaly the username is simply set to "".

Signed-off-by: Rene Bredlau <git@unrelated.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs: do not use cached refs in repack_without_refJeff King Fri, 21 Dec 2012 08:04:49 +0000 (03:04 -0500)

refs: do not use cached refs in repack_without_ref

When we delete a ref that is packed, we rewrite the whole
packed-refs file and simply omit the ref that no longer
exists. However, we base the rewrite on whatever happens to
be in our refs cache, not what is necessarily on disk. That
opens us up to a race condition if another process is
simultaneously packing the refs, as we will overwrite their
newly-made pack-refs file with our potentially stale data,
losing commits.

You can demonstrate the race like this:

# setup some repositories
git init --bare parent &&
(cd parent && git config core.logallrefupdates true) &&
git clone parent child &&
(cd child && git commit --allow-empty -m base)

# in one terminal, repack the refs repeatedly
cd parent &&
while true; do
git pack-refs --all
done

# in another terminal, simultaneously push updates to
# master, and create and delete an unrelated ref
cd child &&
while true; do
git push origin HEAD:newbranch &&
git commit --allow-empty -m foo
us=`git rev-parse master` &&
git push origin master &&
git push origin :newbranch &&
them=`git --git-dir=../parent rev-parse master` &&
if test "$them" != "$us"; then
echo >&2 "$them" != "$us"
exit 1
fi
done

In many cases the two processes will conflict over locking
the packed-refs file, and the deletion of newbranch will
simply fail. But eventually you will hit the race, which
happens like this:

1. We push a new commit to master. It is already packed
(from the looping pack-refs call). We write the new
value (let us call it B) to $GIT_DIR/refs/heads/master,
but the old value (call it A) remains in the
packed-refs file.

2. We push the deletion of newbranch, spawning a
receive-pack process. Receive-pack advertises all refs
to the client, causing it to iterate over each ref; it
caches the packed refs in memory, which points at the
stale value A.

3. Meanwhile, a separate pack-refs process is running. It
runs to completion, updating the packed-refs file to
point master at B, and deleting $GIT_DIR/refs/heads/master
which also pointed at B.

4. Back in the receive-pack process, we get the
instruction to delete :newbranch. We take a lock on
packed-refs (which works, as the other pack-refs
process has already finished). We then rewrite the
contents using the cached refs, which contain the stale
value A.

The resulting packed-refs file points master once again at
A. The loose ref which would override it to point at B was
deleted (rightfully) in step 3. As a result, master now
points at A. The only trace that B ever existed in the
parent is in the reflog: the final entry will show master
moving from A to B, even though the ref still points at A
(so you can detect this race after the fact, because the
next reflog entry will move from A to C).

We can fix this by invalidating the packed-refs cache after
we have taken the lock. This means that we will re-read the
packed-refs file, and since we have the lock, we will be
sure that what we read will be atomically up-to-date when we
write (it may be out of date with respect to loose refs, but
that is OK, as loose refs take precedence).

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

tests: paint unexpectedly fixed known breakages in... Adam Spiers Sun, 16 Dec 2012 18:28:15 +0000 (18:28 +0000)

tests: paint unexpectedly fixed known breakages in bold red

Change color of unexpectedly fixed known breakages to bold red. An
unexpectedly passing test indicates that the test code is somehow
broken or out of sync with the code it is testing. Either way this is
an error which is potentially as bad as a failing test, and as such is
no longer portrayed as a pass in the output.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: test the test framework more thoroughlyAdam Spiers Sun, 16 Dec 2012 18:28:14 +0000 (18:28 +0000)

tests: test the test framework more thoroughly

Add 5 new full test suite runs each with a different number of
passing/failing/broken/fixed tests, in order to ensure that the
correct exit code and output are generated in each case. As before,
these are run in a subdirectory to avoid disrupting the metrics for
the parent tests.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: refactor mechanics of testing in a sub test-libAdam Spiers Sun, 16 Dec 2012 18:28:13 +0000 (18:28 +0000)

tests: refactor mechanics of testing in a sub test-lib

This will allow us to test the test framework more thoroughly
without disrupting the top-level test metrics.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: change info messages from yellow/brown to cyanAdam Spiers Sun, 16 Dec 2012 18:28:12 +0000 (18:28 +0000)

tests: change info messages from yellow/brown to cyan

Now that we've adopted a "traffic lights" coloring scheme, yellow is
used for warning messages, so we need to re-color info messages to
something less alarmist. Blue is a universal color for informational
messages; however we are using that for skipped tests in order to
align with the color schemes of other test suites. Therefore we use
cyan which is also blue-ish, but visually distinct from blue.

This was suggested on the list a while ago and no-one raised any
objections:

http://thread.gmane.org/gmane.comp.version-control.git/205675/focus=205966

An earlier iteration of this patch used bold cyan, but the point of
this change is to make them less alarming; let's drop the boldness.

Also paint the message to report skipping the whole thing via
GIT_SKIP_TESTS mechanism in the same color as the "info" color
that is used on the final summary line for the entire script.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: paint skipped tests in blueAdam Spiers Sun, 16 Dec 2012 18:28:11 +0000 (18:28 +0000)

tests: paint skipped tests in blue

Skipped tests indicate incomplete test coverage. Whilst this is not a
test failure or other error, it's still not a complete success.

Other testsuite related software like automake, autotest and prove
seem to use blue for skipped tests, so let's follow suit.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: paint known breakages in yellowAdam Spiers Sun, 16 Dec 2012 18:28:10 +0000 (18:28 +0000)

tests: paint known breakages in yellow

Yellow seems a more appropriate color than bold green when
considering the universal traffic lights coloring scheme, where
green conveys the impression that everything's OK, and amber that
something's not quite right.

Likewise, change the color of the summarized total number of known
breakages from bold red to the same yellow to be less alarmist and
more consistent with the above.

An earlier version of this patch used bold yellow but because these
are all long-known failures, reminding them to developers in bold
over and over does not help encouraging them to take a look at them
very much. This iteration paints them in plain yellow instead to
make them less distracting.

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Port to QNXMatt Kraai Tue, 18 Dec 2012 22:03:55 +0000 (14:03 -0800)

Port to QNX

Signed-off-by: Matt Kraai <matt.kraai@amo.abbott.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make lock local to fetch_packMatt Kraai Tue, 18 Dec 2012 22:03:54 +0000 (14:03 -0800)

Make lock local to fetch_pack

lock is only used by fetch_pack, so move it into that function.

Signed-off-by: Matt Kraai <matt.kraai@amo.abbott.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-compat-util.h: do not #include <sys/param.h> by... Junio C Hamano Tue, 18 Dec 2012 17:35:33 +0000 (09:35 -0800)

git-compat-util.h: do not #include <sys/param.h> by default

Earlier we allowed platforms that lack <sys/param.h> not to include
the header file from git-compat-util.h; we have included this header
file since the early days back when we used MAXPATHLEN (which we no
longer use) and also depended on it slurping ULONG_MAX (which we get
by including stdint.h or inttypes.h these days).

It turns out that we can compile our modern codebase just file
without including it on many platforms (so far, Fedora, Debian,
Ubuntu, MinGW, Mac OS X, Cygwin, HP-Nonstop, QNX and z/OS are
reported to be OK).

Let's stop including it by default, and on platforms that need it to
be included, leave "make NEEDS_SYS_PARAM_H=YesPlease" as an escape
hatch and ask them to report to us, so that we can find out about
the real dependency and fix it in a more platform agnostic way.

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

Remove duplicate entry in ./Documentation/MakefileThomas Ackermann Wed, 19 Dec 2012 18:15:25 +0000 (19:15 +0100)

Remove duplicate entry in ./Documentation/Makefile

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

compat/fnmatch: update old-style definition to ANSIJunio C Hamano Wed, 19 Dec 2012 16:54:25 +0000 (08:54 -0800)

compat/fnmatch: update old-style definition to ANSI

We try to avoid touching borrowed code, but we encourage people to
write without old-style definition and compile with -Werror these
days, and on platforms that need to use NO_FNMATCH, these three
functions make the compilation fail.

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

t9020: use configured Python to run the test helperJunio C Hamano Wed, 19 Dec 2012 04:41:15 +0000 (20:41 -0800)

t9020: use configured Python to run the test helper

The test helper svnrdump_sim.py is used as "svnrdump" during the
execution of this test, but the arrangement was not optimal:

- it relied on symbolic links;
- unportable "export VAR=VAL" was used;
- GIT_BUILD_DIR variable was not quoted correctly;
- it assumed that the Python interpreter is in /usr/bin/ and
called "python" (i.e. not "python2.7" etc.)

Rework this by writing a small shell script that spawns the right
Python interpreter, using the right quoting.

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

t3600: Avoid "cp -a", which is a GNUismJunio C Hamano Wed, 19 Dec 2012 02:47:50 +0000 (18:47 -0800)

t3600: Avoid "cp -a", which is a GNUism

With d4a7ffa (tests: "cp -a" is a GNUism, 2012-10-08), we got rid of
most of them, but the ones in a topic that was still in flight were
missed.

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

Merge branch 'jc/maint-test-portability' into 'jc/test... Junio C Hamano Wed, 19 Dec 2012 15:46:05 +0000 (07:46 -0800)

Merge branch 'jc/maint-test-portability' into 'jc/test-portability'

* jc/maint-test-portability:
t4014: fix arguments to grep
t9502: do not assume GNU tar
t0200: "locale" may not exist

t4014: fix arguments to grepJunio C Hamano Wed, 19 Dec 2012 03:13:30 +0000 (19:13 -0800)

t4014: fix arguments to grep

These "expect-failure" tests were not looking for the right string
in the patch file. For example:

grep "^ *"S. E. Cipient" <scipient@example.com>\$" patch5

was looking for "^ *S." in these three files:

"E."
"Cipient <scipient@example.com>$"
"patch5"

With some implementations of grep, the lack of file "E." was
reported as an error, leading to the failure of the test.

With other implementations of grep, the pattern "^ *S." matched what
was in patch5, without diagnosing the missing files as an error, and
made these tests unexpectedly pass.

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

t9502: do not assume GNU tarJunio C Hamano Wed, 19 Dec 2012 04:57:13 +0000 (20:57 -0800)

t9502: do not assume GNU tar

The check_snapshot function makes sure that no cruft outside the
repository hierarchy is added to the tar archive. The output from
"tar tf" on the resulting archive is inspected to see if there is
anything that does not begin with "$prefix/".

There are two issues with this implementation:

- Traditional tar implemenations that do not understand
pax_global_header will write it out as if it is a plain file at
the top-level;

- Some implementations of tar do not add trailing slash when
showing a directory entry (i.e. the output line for the entire
archive will show "$prefix", not "$prefix/").

Fix them so that what we want to validate can be tested with
traditional tar implementations.

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

t0200: "locale" may not existJunio C Hamano Wed, 19 Dec 2012 06:44:56 +0000 (22:44 -0800)

t0200: "locale" may not exist

On systems without "locale" installed, t0200-gettext-basic.sh leaked
error messages when checking if some test locales are available.
Hide them, as they are not very useful.

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

Merge branch 'maint'Junio C Hamano Tue, 18 Dec 2012 23:35:01 +0000 (15:35 -0800)

Merge branch 'maint'

* maint:
t7004: do not create unneeded gpghome/gpg.conf when GPG is not used

xmkstemp(): avoid showing truncated template more carefullyJunio C Hamano Tue, 18 Dec 2012 20:51:35 +0000 (12:51 -0800)

xmkstemp(): avoid showing truncated template more carefully

Some implementations of xmkstemp() leaves the given in/out buffer
truncated when they return with failure.

6cf6bb3 (Improve error messages when temporary file creation fails,
2010-12-18) attempted to show the real filename we tried to create
(but failed), and if that is not available due to such truncation,
to show the original template that was given by the caller.

But it failed to take into account that the given template could
have "directory/" in front, in which case the truncation point may
not be template[0] but somewhere else.

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

Documentation: Describe "git diff <blob> <blob>" separatelyJunio C Hamano Tue, 18 Dec 2012 19:35:28 +0000 (11:35 -0800)

Documentation: Describe "git diff <blob> <blob>" separately

As it was not a common operation, it was described as if it is a
side note for the more common two-commit variant, but this mode
behaves very differently, e.g. it does not make any sense to ask
recursive behaviour, or give the command a pathspec.

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