gitweb.git
Merge branch 'jc/maint-fbsd-sh-ifs-workaround' into... Junio C Hamano Tue, 8 Jan 2013 19:17:01 +0000 (11:17 -0800)

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

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

Merge branch 'jc/mkstemp-more-careful-error-reporting... Junio C Hamano Tue, 8 Jan 2013 19:16:58 +0000 (11:16 -0800)

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

* 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 Tue, 8 Jan 2013 19:16:56 +0000 (11:16 -0800)

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

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

Merge branch 'jc/maint-test-portability' into maintJunio C Hamano Tue, 8 Jan 2013 19:16:52 +0000 (11:16 -0800)

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

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

remote-hg: Fix biridectionality -> bidirectionality... W. Trevor King Tue, 8 Jan 2013 15:47:37 +0000 (10:47 -0500)

remote-hg: Fix biridectionality -> bidirectionality typos

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

upload-pack: only accept commits from "shallow" lineNguyễn Thái Ngọc Duy Tue, 8 Jan 2013 11:32:36 +0000 (18:32 +0700)

upload-pack: only accept commits from "shallow" line

We only allow cuts at commits, not arbitrary objects. upload-pack will
fail eventually in register_shallow if a non-commit is given with a
generic error "Object %s is a %s, not a commit". Check it early and
give a more accurate error.

This should never show up in an ordinary session. It's for buggy
clients, or when the user manually edits .git/shallow.

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

Prevent space after directories in tcsh completionMarc Khouzam Mon, 7 Jan 2013 19:07:10 +0000 (19:07 +0000)

Prevent space after directories in tcsh completion

If git-completion.bash returns a single directory as a completion,
tcsh will automatically add a space after it, which is not what the
user wants.

This commit prevents tcsh from doing this.

Also, a check is added to make sure the tcsh version used is recent
enough to allow completion to work as expected.

Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

status: always report ignored tracked directoriesAntoine Pelisse Sun, 6 Jan 2013 22:09:39 +0000 (23:09 +0100)

status: always report ignored tracked directories

When enumerating paths that are ignored, paths the index knows
about are not included in the result. The "index knows about"
check is done by consulting the name hash, not the actual
contents of the index:

- When core.ignorecase is false, directory names are not in the
name hash, and ignored ones are shown as ignored (directories
can never be tracked anyway).

- When core.ignorecase is true, however, the name hash keeps
track of the names of directories, in order to detect
additions of the paths under different cases. This causes
ignored directories to be mistakenly excluded when
enumerating ignored paths.

Stop excluding directories that are in the name hash when
looking for ignored files in dir_add_name(); the names that are
actually in the index are excluded much earlier in the callchain
in treat_file(), so this fix will not make them mistakenly
identified as ignored.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: de.po: address the user formallyRalf Thielow Wed, 26 Dec 2012 15:46:52 +0000 (16:46 +0100)

l10n: de.po: address the user formally

In the current German translation, the user was
addressed informally ("Du", "Dein") which is unusual
in German software. This commit changes the addressing
to be formal ("Sie", "Ihr").

Suggested-by: Christian Stimming <stimming@tuhh.de>
Suggested-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

t5003: check if unzip supports symlinksRené Scharfe Sun, 6 Jan 2013 17:59:39 +0000 (18:59 +0100)

t5003: check if unzip supports symlinks

Only add a symlink to the repository if both the filesystem and
unzip support symlinks. To check the latter, add a ZIP file
containing a symlink, created like this with InfoZIP zip 3.0:

$ echo sample text >textfile
$ ln -s textfile symlink
$ zip -y infozip-symlinks.zip textfile symlink

If we can extract it successfully, we add a symlink to the test
repository for git archive --format=zip, or otherwise skip that
step. Users can see the skipped test and perhaps run it again
with a different unzip version.

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

t5000, t5003: move ZIP tests into their own scriptRené Scharfe Sun, 6 Jan 2013 17:51:34 +0000 (18:51 +0100)

t5000, t5003: move ZIP tests into their own script

This makes ZIP specific tweaks easier.

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

t0024, t5000: use test_lazy_prereq for UNZIPRené Scharfe Sun, 6 Jan 2013 17:49:00 +0000 (18:49 +0100)

t0024, t5000: use test_lazy_prereq for UNZIP

This change makes the code smaller and we can put it at the top of
the script, its rightful place as setup code.

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

git-send-email: treat field names as case-insensitivelyNickolai Zeldovich Mon, 7 Jan 2013 01:34:58 +0000 (20:34 -0500)

git-send-email: treat field names as case-insensitively

Field names like To:, Cc:, etc. are case-insensitive; use a
case-insensitive regexp to match them as such.

Previously, git-send-email would fail to pick-up the addresses when
in-body "fake" headers with different cases (e.g. lowercase "cc:")
are manually inserted to the messages it was asked to send, even
though the text will still show them.

Signed-off-by: Nickolai Zeldovich <nickolai@csail.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0024, t5000: clear variable UNZIP, use GIT_UNZIP insteadRené Scharfe Sun, 6 Jan 2013 17:47:57 +0000 (18:47 +0100)

t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead

InfoZIP's unzip takes default parameters from the environment variable
UNZIP. Unset it in the test library and use GIT_UNZIP for specifying
alternate versions of the unzip command instead.

t0024 wasn't even using variable for the actual extraction. t5000
was, but when setting it to InfoZIP's unzip it would try to extract
from itself (because it treats the contents of $UNZIP as parameters),
which failed of course.

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

Merge branch 'mz/oneway-merge-wo-u-no-lstat'Junio C Hamano Mon, 7 Jan 2013 06:11:39 +0000 (22:11 -0800)

Merge branch 'mz/oneway-merge-wo-u-no-lstat'

Optimize "read-tree -m <tree-ish>" without "-u".

* mz/oneway-merge-wo-u-no-lstat:
oneway_merge(): only lstat() when told to update worktree

Merge branch 'cc/no-gitk-build-dependency'Junio C Hamano Mon, 7 Jan 2013 06:11:30 +0000 (22:11 -0800)

Merge branch 'cc/no-gitk-build-dependency'

Remove leftover bits from an earlier change to move gitk in its own
subdirectory. Reimplementing the dependency tracking rules needs
to be done in gitk history separately.

* cc/no-gitk-build-dependency:
Makefile: replace "echo 1>..." with "echo >..."
Makefile: detect when PYTHON_PATH changes
Makefile: remove tracking of TCLTK_PATH

Merge branch 'jn/warn-on-inaccessible-loosen'Junio C Hamano Mon, 7 Jan 2013 06:11:16 +0000 (22:11 -0800)

Merge branch 'jn/warn-on-inaccessible-loosen'

Deal with a situation where .config/git is a file and we notice
.config/git/config is not readable due to ENOTDIR, not ENOENT.

* jn/warn-on-inaccessible-loosen:
config: exit on error accessing any config file
doc: advertise GIT_CONFIG_NOSYSTEM
config: treat user and xdg config permission problems as errors
config, gitignore: failure to access with ENOTDIR is ok

Merge branch 'jc/apply-trailing-blank-removal'Junio C Hamano Mon, 7 Jan 2013 06:10:23 +0000 (22:10 -0800)

Merge branch 'jc/apply-trailing-blank-removal'

Fix to update_pre_post_images() that did not take into account the
possibility that whitespace fix could shrink the preimage and
change the number of lines in it.

* jc/apply-trailing-blank-removal:
apply.c:update_pre_post_images(): the preimage can be truncated

Makefile: add comment on CYGWIN_V15_WIN32APIMark Levedahl Sun, 6 Jan 2013 19:56:33 +0000 (11:56 -0800)

Makefile: add comment on CYGWIN_V15_WIN32API

There is no documented, reliable, and future-proof method to
determine the installed w32api version on Cygwin. There are many
things that can be done that will work frequently, except when they
won't.

The only sane thing is to follow the guidance of the Cygwin
developers: the only supported configuration is that which the
current setup.exe produces, and in the case of problems, if the
installation is not up to date then updating is the first required
action.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

api-allocation-growing.txt: encourage better variable... Adam Spiers Sun, 6 Jan 2013 15:35:05 +0000 (15:35 +0000)

api-allocation-growing.txt: encourage better variable naming

The documentation for the ALLOC_GROW API implicitly encouraged
developers to use "ary" as the variable name for the array which is
dynamically grown. However "ary" is an unusual abbreviation hardly
used anywhere else in the source tree, and it is also better to name
variables based on their contents not on their type.

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

archive-zip: write uncompressed size into header even... René Scharfe Sun, 6 Jan 2013 15:20:57 +0000 (16:20 +0100)

archive-zip: write uncompressed size into header even with streaming

We record the uncompressed and compressed sizes and the CRC of streamed
files as zero in the local header of the file. The actual values are
recorded in an extra data descriptor after the file content, and in the
usual ZIP directory entry at the end of the archive.

While we know the compressed size and the CRC only after we processed
the contents, we actually know the uncompressed size right from the
start. And for files that we store uncompressed we also already know
their final size.

Do it like InfoZIP's zip and recored the known values, even though they
can be reconstructed using the ZIP directory and the data descriptors
alone. InfoZIP's unzip worked fine before, but NetBSD's version
actually depends on these fields.

The uncompressed size is already set by sha1_object_info(). We just
need to initialize the compressed size to zero or the uncompressed size
depending on the compression method (0 means storing). The CRC was
propertly initialized already.

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

t6130-pathspec-noglob: Windows does not allow a file... Johannes Sixt Sun, 6 Jan 2013 14:07:43 +0000 (15:07 +0100)

t6130-pathspec-noglob: Windows does not allow a file named "f*"

Windows disallows file names that contain a star. Arrange the test setup
to insert the file name "f*" in the repository without the corresponding
file in the worktree.

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

docs: manpage XML depends on asciidoc.confJonathan Nieder Sun, 6 Jan 2013 12:01:53 +0000 (04:01 -0800)

docs: manpage XML depends on asciidoc.conf

When building manual pages, the source text is transformed to XML with
AsciiDoc before the man pages are generated from the XML with xmlto.

Fix the dependencies in the Makefile so that the XML files are rebuilt
when asciidoc.conf changes and not just the manual pages from
unchanged XML, and move the dependencies from a recipeless rule to the
rules with commands that use asciidoc.conf to make the dependencies
easier to understand and maintain.

Reported-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Tested-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

run-command: encode signal death as a positive integerJeff King Sat, 5 Jan 2013 14:49:49 +0000 (09:49 -0500)

run-command: encode signal death as a positive integer

When a sub-command dies due to a signal, we encode the
signal number into the numeric exit status as "signal -
128". This is easy to identify (versus a regular positive
error code), and when cast to an unsigned integer (e.g., by
feeding it to exit), matches what a POSIX shell would return
when reporting a signal death in $? or through its own exit
code.

So we have a negative value inside the code, but once it
passes across an exit() barrier, it looks positive (and any
code we receive from a sub-shell will have the positive
form). E.g., death by SIGPIPE (signal 13) will look like
-115 to us in inside git, but will end up as 141 when we
call exit() with it. And a program killed by SIGPIPE but run
via the shell will come to us with an exit code of 141.

Unfortunately, this means that when the "use_shell" option
is set, we need to be on the lookout for _both_ forms. We
might or might not have actually invoked the shell (because
we optimize out some useless shell calls). If we didn't invoke
the shell, we will will see the sub-process's signal death
directly, and run-command converts it into a negative value.
But if we did invoke the shell, we will see the shell's
128+signal exit status. To be thorough, we would need to
check both, or cast the value to an unsigned char (after
checking that it is not -1, which is a magic error value).

Fortunately, most callsites do not care at all whether the
exit was from a code or from a signal; they merely check for
a non-zero status, and sometimes propagate the error via
exit(). But for the callers that do care, we can make life
slightly easier by just using the consistent positive form.

This actually fixes two minor bugs:

1. In launch_editor, we check whether the editor died from
SIGINT or SIGQUIT. But we checked only the negative
form, meaning that we would fail to notice a signal
death exit code which was propagated through the shell.

2. In handle_alias, we assume that a negative return value
from run_command means that errno tells us something
interesting (like a fork failure, or ENOENT).
Otherwise, we simply propagate the exit code. Negative
signal death codes confuse us, and we print a useless
"unable to run alias 'foo': Success" message. By
encoding signal deaths using the positive form, the
existing code just propagates it as it would a normal
non-zero exit code.

The downside is that callers of run_command can no longer
differentiate between a signal received directly by the
sub-process, and one propagated. However, no caller
currently cares, and since we already optimize out some
calls to the shell under the hood, that distinction is not
something that should be relied upon by callers.

Fix the same logic in t/test-terminal.perl for consistency [jc:
raised by Jonathan in the discussion].

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

Update draft release notes to 1.8.2Junio C Hamano Sun, 6 Jan 2013 08:17:24 +0000 (00:17 -0800)

Update draft release notes to 1.8.2

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

Merge branch 'wk/submodule-update-remote'Junio C Hamano Sun, 6 Jan 2013 07:42:11 +0000 (23:42 -0800)

Merge branch 'wk/submodule-update-remote'

The beginning of 'integrate with the tip of the remote branch, not
the commit recorded in the superproject gitlink' support.

* wk/submodule-update-remote:
submodule add: If --branch is given, record it in .gitmodules
submodule update: add --remote for submodule's upstream changes
submodule: add get_submodule_config helper funtion

Merge branch 'jk/pathspec-literal'Junio C Hamano Sun, 6 Jan 2013 07:42:07 +0000 (23:42 -0800)

Merge branch 'jk/pathspec-literal'

Allow scripts to feed literal paths to commands that take
pathspecs, by disabling wildcard globbing.

* jk/pathspec-literal:
add global --literal-pathspecs option

Conflicts:
dir.c

Merge branch 'jk/error-const-return'Junio C Hamano Sun, 6 Jan 2013 07:42:00 +0000 (23:42 -0800)

Merge branch 'jk/error-const-return'

Help compilers' flow analysis by making it more explicit that
error() always returns -1, to reduce false "variable used
uninitialized" warnings. Looks somewhat ugly but not too much.

* jk/error-const-return:
silence some -Wuninitialized false positives
make error()'s constant return value more visible

Merge branch 'jc/format-color-auto'Junio C Hamano Sun, 6 Jan 2013 07:41:57 +0000 (23:41 -0800)

Merge branch 'jc/format-color-auto'

Introduce "log --format=%C(auto,blue)Foo%C(auto,reset)" that does
not color its output when writing to a non-terminal.

* jc/format-color-auto:
log --format: teach %C(auto,black) to respect color config
t6006: clean up whitespace

Merge branch 'jk/complete-commit-c'Junio C Hamano Sun, 6 Jan 2013 07:41:53 +0000 (23:41 -0800)

Merge branch 'jk/complete-commit-c'

Complete "git commmit -c foo<TAB>" into a refname that begins with
"foo".

* jk/complete-commit-c:
completion: complete refs for "git commit -c"

Merge branch 'ja/directory-attrs'Junio C Hamano Sun, 6 Jan 2013 07:41:46 +0000 (23:41 -0800)

Merge branch 'ja/directory-attrs'

The attribute mechanism didn't allow limiting attributes to be
applied to only a single directory itself with "path/" like the
exclude mechanism does.

* ja/directory-attrs:
Add directory pattern matching to attributes

Merge branch 'jk/mailmap-from-blob'Junio C Hamano Sun, 6 Jan 2013 07:41:42 +0000 (23:41 -0800)

Merge branch 'jk/mailmap-from-blob'

Allow us to read, and default to read, mailmap files from the tip
of the history in bare repositories. This will help running tools
like shortlog in server settings.

* jk/mailmap-from-blob:
mailmap: default mailmap.blob in bare repositories
mailmap: fix some documentation loose-ends for mailmap.blob
mailmap: clean up read_mailmap error handling
mailmap: support reading mailmap from blobs
mailmap: refactor mailmap parsing for non-file sources

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

archive-tar: split long paths more carefullyRené Scharfe Sat, 5 Jan 2013 22:49:54 +0000 (23:49 +0100)

archive-tar: split long paths more carefully

The name field of a tar header has a size of 100 characters. This limit
was extended long ago in a backward compatible way by providing the
additional prefix field, which can hold 155 additional characters. The
actual path is constructed at extraction time by concatenating the prefix
field, a slash and the name field.

get_path_prefix() is used to determine which slash in the path is used as
the cutting point and thus which part of it is placed into the field
prefix and which into the field name. It tries to cram as much into the
prefix field as possible. (And only if we can't fit a path into the
provided 255 characters we use a pax extended header to store it.)

If a path is longer than 100 but shorter than 156 characters and ends
with a slash (i.e. is for a directory) then get_path_prefix() puts the
whole path in the prefix field and leaves the name field empty. GNU tar
reconstructs the path without complaint, but the tar included with
NetBSD 6 does not: It reports the header to be invalid.

For compatibility with this version of tar, make sure to never leave the
name field empty. In order to do that, trim the trailing slash from the
part considered as possible prefix, if it exists -- that way the last
path component (or more, but not less) will end up in the name field.

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

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>

clone: support atomic operation with --separate-git-dirJens Lehmann Sat, 5 Jan 2013 20:17:04 +0000 (21:17 +0100)

clone: support atomic operation with --separate-git-dir

Since b57fb80a7d (init, clone: support --separate-git-dir for .git file)
git clone supports the --separate-git-dir option to create the git dir
outside the work tree. But when that option is used, the git dir won't be
deleted in case the clone fails like it would be without this option. This
makes clone lose its atomicity as in case of a failure a partly set up git
dir is left behind. A real world example where this leads to problems is
when "git submodule update" fails to clone a submodule and later calls to
"git submodule update" stumble over the partially set up git dir and try
to revive the submodule from there, which then fails with a not very user
friendly error message.

Fix that by updating the junk_git_dir variable (used to remember if and
what git dir should be removed in case of failure) to the new value given
with the --seperate-git-dir option. Also add a test for this to t5600 (and
while at it fix the former last test to not cd into a directory to test
for its existence but use "test -d" instead).

Reported-by: Manlio Perillo <manlio.perillo@gmail.com>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: give --reroll-count a short synonym -vJunio C Hamano Wed, 2 Jan 2013 22:19:05 +0000 (14:19 -0800)

format-patch: give --reroll-count a short synonym -v

Accept "-v" as a synonym to "--reroll-count", so that users can say
"git format-patch -v4 master", instead of having to fully spell it
out as "git format-patch --reroll-count=4 master".

As I do not think of a reason why users would want to tell the
command to be "verbose", I think this should be OK.

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

Makefile: hoist uname autodetection to config.mak.unameJeff King Thu, 3 Jan 2013 21:05:41 +0000 (16:05 -0500)

Makefile: hoist uname autodetection to config.mak.uname

Our Makefile first sets up some sane per-platform defaults
by looking at "uname", then modifies that according to the
results of autoconf (if any), then modifies that according
to the user's wishes in config.mak.

For sub-Makefiles like Documentation/Makefile, the latter
two are available, but the uname defaults are available only
to the main Makefile. This hasn't been a problem so far,
because the sub-Makefiles do not rely on any of those
automatic settings to do their work.

This patch puts the uname magic into its own file so it can
be reused in other Makefiles, opening up the possibility of
new knobs.

Note that we leave one reference to uname in the top-level
Makefile: if we are on Darwin, we must check the NO_FINK and
NO_DARWIN_PORTS settings. But because we are combining uname
settings with user-options, we must do so after all of the
config is loaded. This is acceptable, as the resulting
conditionals are about setting variables specific to the
top-level Makefile (and if that ever changes, we can hoist
them into a separate post-config include, too).

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

merge: Honor prepare-commit-msg return codeAntoine Pelisse Wed, 2 Jan 2013 18:42:50 +0000 (19:42 +0100)

merge: Honor prepare-commit-msg return code

65969d4 (merge: honor prepare-commit-msg hook, 2011-02-14) tried to
make "git commit" and "git merge" consistent, because a merge that
required user assistance has to be concluded with "git commit", but
back then only "git commit" triggered prepare-commit-msg hook.

When it added a call to run the prepare-commit-msg hook, however, it
forgot to check the exit code from the hook like "git commit" does,
and ended up replacing one inconsistency with another.

When prepare-commit-msg hook that is run from "git merge" exits with
a non-zero status, abort the commit.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: pick up branch description when no ref... Nguyễn Thái Ngọc Duy Thu, 3 Jan 2013 16:16:37 +0000 (23:16 +0700)

format-patch: pick up branch description when no ref is specified

We only try to get branch name in "format-patch origin" case or
similar and not "format-patch -22" where HEAD is automatically
added. Without correct branch name, branch description cannot be
added. Make sure we always get branch name.

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

tests: turn on test-lint by defaultJeff King Thu, 3 Jan 2013 07:17:51 +0000 (02:17 -0500)

tests: turn on test-lint by default

The test Makefile knows about a few "lint" checks for common
errors. However, they are not enabled as part of "make test"
by default, which means that many people do not bother
running them. Since they are both quick to run and accurate
(i.e., no false positives), there should be no harm in
turning them on and helping submitters catch errors earlier.

We could just set:

TEST_LINT = test-lint

to enable all tests. But that would be unnecessarily
annoying later on if we add slower or less accurate tests
that should not be part of the default. Instead, we name the
tests individually.

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

format-patch: pick up correct branch name from symbolic refNguyễn Thái Ngọc Duy Thu, 3 Jan 2013 14:03:10 +0000 (21:03 +0700)

format-patch: pick up correct branch name from symbolic ref

find_branch_name() assumes to take refs/heads/<branch>. But we also
have symbolic refs, such as HEAD, that can point to a valid branch in
refs/heads and do not follow refs/heads/<branch> syntax. Remove the
assumption and apply normal ref resolution. After all it would be
confusing if rev machinery resolves a ref in one way and
find_branch_name() another.

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

t4014: a few more tests on cover letter using branch... Nguyễn Thái Ngọc Duy Thu, 3 Jan 2013 14:03:09 +0000 (21:03 +0700)

t4014: a few more tests on cover letter using branch description

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

branch: delete branch description if it's emptyNguyễn Thái Ngọc Duy Thu, 3 Jan 2013 14:03:08 +0000 (21:03 +0700)

branch: delete branch description if it's empty

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

remote-bzr: detect local repositoriesFelipe Contreras Wed, 28 Nov 2012 01:01:35 +0000 (02:01 +0100)

remote-bzr: detect local repositories

So we don't create a clone unnecessarily.

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

remote-bzr: add support for older versions of bzrFelipe Contreras Wed, 28 Nov 2012 01:01:34 +0000 (02:01 +0100)

remote-bzr: add support for older versions of bzr

At least as old as 2.0.

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

remote-bzr: add support to push special modesFelipe Contreras Sun, 11 Nov 2012 14:19:58 +0000 (15:19 +0100)

remote-bzr: add support to push special modes

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

remote-bzr: add support for fecthing special modesFelipe Contreras Sun, 11 Nov 2012 14:19:57 +0000 (15:19 +0100)

remote-bzr: add support for fecthing special modes

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

remote-bzr: add simple testsFelipe Contreras Sun, 11 Nov 2012 14:19:56 +0000 (15:19 +0100)

remote-bzr: add simple tests

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

test: Add check-non-portable-shell.plTorsten Bögershausen Wed, 2 Jan 2013 23:20:19 +0000 (00:20 +0100)

test: Add check-non-portable-shell.pl

Add the perl script "check-non-portable-shell.pl" to detect
non-portable shell syntax.

"echo -n" is an example of a shell command working on Linux, but not
on Mac OS X.

These shell commands are checked and reported as error:

- "echo -n" (printf should be used)
- "sed -i" (GNUism; use a temp file instead)
- "declare" (bashism, often used with arrays)
- "which" (unreliable exit status and output; use type instead)
- "test a == b" (bashism for "test a = b")

"make test-lint-shell-syntax" can be used to run only the check.

Helped-By: Jeff King <peff@peff.net>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: document and test --reroll-countJunio C Hamano Wed, 2 Jan 2013 22:16:07 +0000 (14:16 -0800)

format-patch: document and test --reroll-count

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

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()

build: do not automatically reconfigure unless configur... Jonathan Nieder Wed, 2 Jan 2013 08:25:44 +0000 (00:25 -0800)

build: do not automatically reconfigure unless configure.ac changed

Starting with v1.7.12-rc0~4^2 (build: reconfigure automatically if
configure.ac changes, 2012-07-19), "config.status --recheck" is
automatically run every time the "configure" script changes. In
particular, that means the configuration procedure repeats whenever
the version number changes (since the configure script changes to
support "./configure --version" and "./configure --help"), making
bisecting painfully slow.

The intent was to make the reconfiguration process only trigger for
changes to configure.ac's logic. Tweak the Makefile rule to match
that intent by depending on configure.ac instead of configure.

Reported-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Reviewed-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: give list and maintainer addressesJunio C Hamano Wed, 2 Jan 2013 17:31:54 +0000 (09:31 -0800)

SubmittingPatches: give list and maintainer addresses

We told readers to "send it to the list" (or the maintainer) without
telling what addresses are to be used. Correct this.

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

SubmittingPatches: remove overlong checklistJunio C Hamano Tue, 1 Jan 2013 23:19:00 +0000 (15:19 -0800)

SubmittingPatches: remove overlong checklist

The section is no longer a concise checklist. It also talks about
things that are not covered in the "Long version" text, which means
people need to read both, covering more or less the same thing in
different phrasing.

Fold the details into the main text and remove the section.

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

t9020: which is not portableTorsten Bögershausen Tue, 1 Jan 2013 21:42:03 +0000 (22:42 +0100)

t9020: which is not portable

Use type instead

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9810: Do not use sed -iTorsten Bögershausen Tue, 1 Jan 2013 21:40:37 +0000 (22:40 +0100)

t9810: Do not use sed -i

sed -i is not portable on all systems. Use sed with different input
and output files. Utilize a tmp file whenever needed.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: fix error in sanitize when highlight is enabledOrgad Shaneh Sun, 30 Dec 2012 11:52:53 +0000 (13:52 +0200)

gitweb: fix error in sanitize when highlight is enabled

$1 becomes undef by internal regex, since it has no capture groups.

Match against accpetable control characters using index() instead of a regex.

Signed-off-by: Orgad Shaneh <orgads@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-status: Test --ignored behaviorAntoine Pelisse Sun, 30 Dec 2012 14:39:01 +0000 (15:39 +0100)

git-status: Test --ignored behavior

Test all possible use-cases of git-status "--ignored" with the
"--untracked-files" option with values "normal" and "all":

- An untracked directory is listed as untracked if it has a mix of
untracked and ignored files in it. With -uall, ignored/untracked
files are listed as ignored/untracked.

- An untracked directory with only ignored files is listed as
ignored. With -uall, all files in the directory are listed.

- An ignored directory is listed as ignored. With -uall, all files
in the directory are listed as ignored.

- An ignored and committed directory is listed as ignored if it has
untracked files. With -uall, all untracked files in the
directory are listed as ignored.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: Make git-status --ignored more consistentAntoine Pelisse Sun, 30 Dec 2012 14:39:00 +0000 (15:39 +0100)

dir.c: Make git-status --ignored more consistent

The current behavior of git-status is inconsistent and misleading.
Especially when used with --untracked-files=all option:

- files ignored in untracked directories will be missing from
status output.

- untracked files in committed yet ignored directories are also
missing.

- with --untracked-files=normal, untracked directories that
contains only ignored files are dropped too.

Make the behavior more consistent across all possible use cases:

- "--ignored --untracked-files=normal" doesn't show each specific
files but top directory. It instead shows untracked directories
that only contains ignored files, and ignored tracked directories
with untracked files.

- "--ignored --untracked-files=all" shows all ignored files, either
because it's in an ignored directory (tracked or untracked), or
because the file is explicitly ignored.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: full-ness of a bundle is significant... Junio C Hamano Tue, 1 Jan 2013 20:46:15 +0000 (12:46 -0800)

Documentation: full-ness of a bundle is significant for cloning

Not necessarily every bundle file can be cloned from. Only the ones
that do not need prerequisites can.

When 1d52b02 (Documentation: minor grammatical fixes and rewording
in git-bundle.txt, 2009-03-22) reworded this paragraph, it lost a
critical hint to tell readers why this particular bundle can be
cloned from. Resurrect it.

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

wildmatch: replace variable 'special' with better named... Nguyễn Thái Ngọc Duy Tue, 1 Jan 2013 02:44:04 +0000 (09:44 +0700)

wildmatch: replace variable 'special' with better named ones

'special' is too generic and is used for two different purposes.
Replace it with 'match_slash' to indicate "**" pattern and 'negated'
for "[!...]" and "[^...]".

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

compat/fnmatch: respect NO_FNMATCH* even on glibcNguyễn Thái Ngọc Duy Tue, 1 Jan 2013 02:44:03 +0000 (09:44 +0700)

compat/fnmatch: respect NO_FNMATCH* even on glibc

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

wildmatch: fix "**" special caseNguyễn Thái Ngọc Duy Tue, 1 Jan 2013 02:44:02 +0000 (09:44 +0700)

wildmatch: fix "**" special case

"**" is adjusted to only be effective when surrounded by slashes, in
40bbee0 (wildmatch: adjust "**" behavior - 2012-10-15). Except that
the commit did it wrong:

1. when it checks for "the preceding slash unless ** is at the
beginning", it compares to wrong pointer. It should have compared
to the beginning of the pattern, not the text.

2. prev_p points to the character before "**", not the first "*". The
correct comparison must be "prev_p < pattern" or
"prev_p + 1 == pattern", not "prev_p == pattern".

3. The pattern must be surrounded by slashes unless it's at the
beginning or the end of the pattern. We do two checks: one for the
preceding slash and one the trailing slash. Both checks must be
met. The use of "||" is wrong.

This patch fixes all above.

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

SubmittingPatches: mention subsystems with dedicated... Junio C Hamano Tue, 1 Jan 2013 22:37:56 +0000 (14:37 -0800)

SubmittingPatches: mention subsystems with dedicated repositories

These were only mentioned in periodical "A note from the maintainer"
posting and not in the documentation suite. SubmittingPatches has a
section to help contributors decide on what commit to base their
changes, which is the most suitable place for this information.

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

SubmittingPatches: who am I and who cares?Junio C Hamano Tue, 1 Jan 2013 22:35:22 +0000 (14:35 -0800)

SubmittingPatches: who am I and who cares?

The introductory text in the "long version" talks about the origin
of this document with "I started ...", but it is unclear who that I
is, and more importantly, it is not interesting how it was started.

Just state the purpose of the document to help readers decide if it
is releavant to them.

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

Documentation: correct example restore from bundleKirill Brilliantov Tue, 1 Jan 2013 13:54:44 +0000 (17:54 +0400)

Documentation: correct example restore from bundle

Because the bundle created in the example does not record HEAD, "git
clone" will not check out the files to the working tree:

$ git clone pr.bundle q/
Cloning into 'q'...
Receiving objects: 100% (619/619), 13.52 MiB | 18.74 MiB/s, done.
Resolving deltas: 100% (413/413), done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.

Avoid alarming the readers by adding "-b master" to the example. A
better fix may be to arrange the bundle created in the earlier step
to record HEAD, so that it can be cloned without this workaround.

Signed-off-by: Brilliantov Kirill Vladimirovich <brilliantov@inbox.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.txt: a few lines about branch.<name>.descriptionNguyễn Thái Ngọc Duy Tue, 1 Jan 2013 09:30:53 +0000 (16:30 +0700)

config.txt: a few lines about branch.<name>.description

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

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 --no-edit: do not credit people involved in the... Junio C Hamano Fri, 28 Dec 2012 23:29:31 +0000 (15:29 -0800)

merge --no-edit: do not credit people involved in the side branch

The credit lines "By" and "Via" to credit authors and committers for
their contributions on the side branch are meant as a hint to the
integrator to decide whom to mention in the log message text. After
the integrator saves the message in the editor, they are meant to go
away and that is why they are commented out.

When a merge is recorded without editing the generated message,
however, its contents do not go through the normal stripspace()
and these lines are left in the merge.

Stop producing them when we know the merge is going to be recorded
without editing, i.e. when --no-edit is given.

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