gitweb.git
Make usage strings dash-lessStephan Beyer Sun, 13 Jul 2008 13:36:15 +0000 (15:36 +0200)

Make usage strings dash-less

When you misuse a git command, you are shown the usage string.
But this is currently shown in the dashed form. So if you just
copy what you see, it will not work, when the dashed form
is no longer supported.

This patch makes git commands show the dash-less version.

For shell scripts that do not specify OPTIONS_SPEC, git-sh-setup.sh
generates a dash-less usage string now.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/: Use "test_must_fail git" instead of "! git"Stephan Beyer Sat, 12 Jul 2008 15:47:52 +0000 (17:47 +0200)

t/: Use "test_must_fail git" instead of "! git"

This patch changes every occurrence of "! git" -- with the meaning
that a git call has to gracefully fail -- into "test_must_fail git".

This is useful to

- make sure the test does not fail because of a signal,
e.g. SIGSEGV, and

- advertise the use of "test_must_fail" for new tests.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/test-lib.sh: exit with small negagive int is ok with... Stephan Beyer Sat, 12 Jul 2008 15:47:51 +0000 (17:47 +0200)

t/test-lib.sh: exit with small negagive int is ok with test_must_fail

The test_must_fail function in test-lib.sh has been designed to
distinguish segmentation faults from controlled errors. But in the
current implementation this only works if a git command does not return a
small negative value, like -1, -2 or -3. But some git commands do.

Because any signal (like SIGSEGV) will result in an exit status
less than 193, this patch just adds a further check for the exit
status.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

apply: fix copy/rename breakageJunio C Hamano Thu, 10 Jul 2008 02:58:23 +0000 (19:58 -0700)

apply: fix copy/rename breakage

7ebd52a (Merge branch 'dz/apply-again', 2008-07-01) taught "git-apply" to
grok a (non-git) patch that is a concatenation of separate patches that
touch the same file number of times, by recording the postimage of patch
application of previous round and using it as the preimage for later
rounds.

This "incremental" mode of patch application fundamentally contradicts
with the way git rename/copy patches are designed. When a git patch talks
about a file A getting modified, and a new file B created out of A, like
this:

diff --git a/A b/A
--- a/A
+++ b/A
... change text here ...
diff --git a/A b/B
copy from A
copy to B
--- a/A
+++ b/B
... change text here ...

the second change to produce B does not depend on what is done to A with
the first change in any way. This is explicitly done so for reviewability
of individual patches.

With this commit, we do not look at 'fn_table' that records the postimage
of previous round when applying a patch to produce a new file out of an
existing file.

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

Merge branch 'jk/pager-config'Junio C Hamano Wed, 9 Jul 2008 23:58:46 +0000 (16:58 -0700)

Merge branch 'jk/pager-config'

* jk/pager-config:
Allow per-command pager config

Merge branch 'js/apply-root'Junio C Hamano Wed, 9 Jul 2008 23:58:21 +0000 (16:58 -0700)

Merge branch 'js/apply-root'

* js/apply-root:
git-apply --directory: make --root more similar to GNU diff
apply --root: thinkofix.
Teach "git apply" to prepend a prefix with "--root=<root>"

Merge branch 'jc/reflog-expire'Junio C Hamano Wed, 9 Jul 2008 23:57:35 +0000 (16:57 -0700)

Merge branch 'jc/reflog-expire'

* jc/reflog-expire:
Make default expiration period of reflog used for stash infinite
Per-ref reflog expiry configuration

git-send-email: Fix authenticating on some servers... Robert Shearman Wed, 9 Jul 2008 21:39:40 +0000 (22:39 +0100)

git-send-email: Fix authenticating on some servers when using TLS.

Send HELO again after a successful STARTTLS command to refresh the list of
extensions. These may be different to what is returned over a clear
connection (for example the AUTH command may be accepted over a secure
connection, but not over a clear connection).

Furthermore, this behaviour is recommended by RFC 2487
(http://www.ietf.org/rfc/rfc2487.txt).

Signed-off-by: Robert Shearman <robertshearman@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Provide fallback definitions of PRIu32 and PRIx32Johannes Sixt Wed, 9 Jul 2008 20:38:14 +0000 (22:38 +0200)

Provide fallback definitions of PRIu32 and PRIx32

Since 6e1c23442 we make use of these C99 constructs, but this commit did
not provide fallbacks for non-C99 systems.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9100-git-svn-basic.sh: Fix determination of utf-8... Ramsay Jones Tue, 8 Jul 2008 22:59:25 +0000 (23:59 +0100)

t9100-git-svn-basic.sh: Fix determination of utf-8 locale

When setting the GIT_SVN_LC_ALL variable, default to the $LANG
environment variable, when the $LC_ALL override is not set.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9113-*.sh: provide user feedback when test skippedRamsay Jones Tue, 8 Jul 2008 23:18:26 +0000 (00:18 +0100)

t9113-*.sh: provide user feedback when test skipped

Currently this test simply exits without providing any
feedback at all. Tell user if the test is being skipped
and provide a hint as to how the test may be enabled.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sp/maint-pack-memuse'Junio C Hamano Wed, 9 Jul 2008 21:46:46 +0000 (14:46 -0700)

Merge branch 'sp/maint-pack-memuse'

* sp/maint-pack-memuse:
Correct pack memory leak causing git gc to try to exceed ulimit

Conflicts:

sha1_file.c

Correct pack memory leak causing git gc to try to excee... Shawn O. Pearce Wed, 9 Jul 2008 07:10:07 +0000 (07:10 +0000)

Correct pack memory leak causing git gc to try to exceed ulimit

When recursing to unpack a delta base we must unuse_pack() so that
the pack window for the current object does not remain pinned in
memory while the delta base is itself being unpacked and materialized
for our use.

On a long delta chain of 50 objects we may need to access 6 different
windows from a very large (>3G) pack file in order to obtain all
of the delta base content. If the process ulimit permits us to
map/allocate only 1.5G we must release windows during this recursion
to ensure we stay within the ulimit and transition memory from pack
cache to standard malloc, or other mmap needs.

Inserting an unuse_pack() call prior to the recursion allows us to
avoid pinning the current window, making it available for garbage
collection if memory runs low.

This has been broken since at least before 1.5.1-rc1, and very
likely earlier than that. Its fixed now. :)

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 9 Jul 2008 07:19:50 +0000 (00:19 -0700)

Merge branch 'maint'

* maint:
Start preparing release notes for 1.5.6.3
git-submodule - Fix bugs in adding an existing repo as a module
bash: offer only paths after '--'
Remove unnecessary pack-*.keep file after successful git-clone
make deleting a missing ref more quiet

Start preparing release notes for 1.5.6.3Junio C Hamano Wed, 9 Jul 2008 06:57:14 +0000 (23:57 -0700)

Start preparing release notes for 1.5.6.3

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

Documentation: update sections on naming revisions... Junio C Hamano Mon, 7 Jul 2008 21:58:58 +0000 (14:58 -0700)

Documentation: update sections on naming revisions and revision ranges

Various *_HEAD pseudo refs were not documented in any central place.
Especially since we may be teaching rebase and am to record ORIG_HEAD,
it would be a good time to do so.

While at it, reword the explanation on r1..r2 notation to reduce
confusion.

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

Tone down warning about GNU Interactive ToolsJunio C Hamano Mon, 7 Jul 2008 02:10:00 +0000 (19:10 -0700)

Tone down warning about GNU Interactive Tools

The mention of 1997 was correct when it was made, and it still is true
to some extent (http://savannah.gnu.org/forum/forum.php?forum_id=5189
says it has not been actively maintained for quite some time). However,
because its name changed not to conflict with us, it is no longer
relevant whether many users use gnuit or have moved away to graphical
file managers.

The only people possibly affected are people who have older version of
gnuit installed as "git".

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

Avoid apache complaining about lack of server's FQDNMike Hommey Mon, 7 Jul 2008 20:22:15 +0000 (22:22 +0200)

Avoid apache complaining about lack of server's FQDN

On some setups, apache will say:
apache2: Could not reliably determine the server's fully qualified
domain name, using $(IP_address) for ServerName

Avoid this message polluting tests output by setting a ServerName in
apache configuration.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Skip t5540-http-push test when USE_CURL_MULTI is undefinedMike Hommey Mon, 7 Jul 2008 19:02:50 +0000 (21:02 +0200)

Skip t5540-http-push test when USE_CURL_MULTI is undefined

When USE_CURL_MULTI is undefined, git http-push doesn't work, so it's
useless to test it.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix http-push testMike Hommey Mon, 7 Jul 2008 19:02:37 +0000 (21:02 +0200)

Fix http-push test

http-push test has been broken by 4a7aaccd adding a space character
in the place where the test is being run.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Catch failures from t5540-http-pushMike Hommey Mon, 7 Jul 2008 21:06:46 +0000 (23:06 +0200)

Catch failures from t5540-http-push

git http-push doesn't handle packed-refs, and now the new builtin-clone
created packed refs, the http-push test fails.

Mark the current failure as such, and also catch third test's failure
that went unreported because git push doesn't return an error code when
it says:
No refs in common and none specified; doing nothing.
Which it does when http-push can't get a list of refs recursively from
$URL/refs/.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git.pm: Add remote_refs() git-ls-remote frontendPetr Baudis Tue, 8 Jul 2008 17:48:04 +0000 (19:48 +0200)

Git.pm: Add remote_refs() git-ls-remote frontend

This patch also converts the good ole' git-remote.perl to use it.
It is otherwise used in the repo.or.cz machinery and I guess other
scripts might find it useful too.

Unfortunately,

git-ls-remote --heads .

is subtly different from

git-ls-remote . refs/heads/

(since the second matches anywhere in the string, not just at the
beginning) so we have to provide interface for both.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7701-repack-unpack-unreachable.sh: check timestamp... Brandon Casey Sun, 29 Jun 2008 00:25:05 +0000 (19:25 -0500)

t7701-repack-unpack-unreachable.sh: check timestamp of unpacked objects

Unpacked objects should receive the timestamp of the pack they were
unpacked from. Check.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add branch options --contains --merged... Eric Raible Mon, 7 Jul 2008 20:41:54 +0000 (13:41 -0700)

completion: add branch options --contains --merged --no-merged

Signed-off-by: Eric Raible <raible@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule - Fix bugs in adding an existing repo... Mark Levedahl Tue, 8 Jul 2008 02:36:40 +0000 (22:36 -0400)

git-submodule - Fix bugs in adding an existing repo as a module

git-submodule add would trip if path to the submodule included a space,
or if its .git was a gitdir: link to a GIT_DIR kept elsewhere. Fix both.

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

install-doc-quick - use git --exec-path to find git... Mark Levedahl Tue, 8 Jul 2008 02:37:38 +0000 (22:37 -0400)

install-doc-quick - use git --exec-path to find git-sh-setup

This is needed as git-sh-setup is no longer in the path.

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

bash: offer only paths after '--'SZEDER Gábor Tue, 8 Jul 2008 16:56:14 +0000 (18:56 +0200)

bash: offer only paths after '--'

Many git commands use '--' to separate subcommands, options, and refs
from paths. However, the programmable completion for several of these
commands does not respect the '--', and offer subcommands, options, or
refs after a '--', although only paths are permitted. e.g. 'git bisect
-- <TAB>' offers subcommands, 'git log -- --<TAB>' offers options and
'git log -- git<TAB>' offers all gitgui tags.

The completion for the following commands share this wrong behaviour:
am add bisect commit diff log reset shortlog submodule gitk.

To avoid this, we check the presence of a '--' on the command line first
and let the shell do filename completion, if one is found.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Remove unnecessary pack-*.keep file after successful... Shawn O. Pearce Tue, 8 Jul 2008 04:46:06 +0000 (04:46 +0000)

Remove unnecessary pack-*.keep file after successful git-clone

Once a clone is successful we no longer need to hold onto the
.keep file created by the transport. Delete the file so we
can later repack the complete repository.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

avoid null SHA1 in oldest reflogJeff King Tue, 8 Jul 2008 04:38:54 +0000 (00:38 -0400)

avoid null SHA1 in oldest reflog

When the user specifies a ref by a reflog entry older than
one we have (e.g., "HEAD@{20 years ago"}), we issue a
warning and give them the "from" value of the oldest reflog
entry. That is, we say "we don't know what happened before
this entry, but before this we know we had some particular
SHA1".

However, the oldest reflog entry is often a creation event
such as clone or branch creation. In this case, the entry
claims that the ref went from "00000..." (the null sha1) to
the new value, and the reflog lookup returns the null sha1.

While this is technically correct (the entry tells us that
the ref didn't exist at the specified time) it is not
terribly useful to the end user. What they probably want
instead is "the oldest useful sha1 that this ref ever had".
This patch changes the behavior such that if the oldest ref
would return the null sha1, it instead returns the first
value the ref ever had.

We never discovered this problem in the test scripts because
we created "fake" reflogs that had only a specified segment
of history. This patch updates the tests with a creation
event at the beginning of history.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make deleting a missing ref more quietJeff King Tue, 8 Jul 2008 04:08:02 +0000 (00:08 -0400)

make deleting a missing ref more quiet

If git attempts to delete a ref, but the unlink of the ref
file fails, we print a message to stderr. This is usually a
good thing, but if the error is ENOENT, then it indicates
that the ref has _already_ been deleted. And since that's
our goal, it doesn't make sense to complain to the user.

This harmonizes the error reporting behavior for the
unpacked and packed cases; the packed case already printed
nothing on ENOENT, but the unpacked printed unconditionally.

Additionally, send-pack would, when deleting the tracking
ref corresponding to a remote delete, print "Failed to
delete" on any failure. This can be a misleading
message, since we actually _did_ delete at the remote side,
but we failed to delete locally. Rather than make the
message more precise, let's just eliminate it entirely; the
delete_ref routine already takes care of printing out a much
more specific message about what went wrong.

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

Merge branch 'qq/maint' into maintJunio C Hamano Tue, 8 Jul 2008 20:05:06 +0000 (13:05 -0700)

Merge branch 'qq/maint' into maint

* qq/maint:
run_command(): respect GIT_TRACE

Documentation: fix broken "linkgit" linksEric Hanchrow Tue, 8 Jul 2008 20:02:11 +0000 (13:02 -0700)

Documentation: fix broken "linkgit" links

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

user-manual: typo and grammar fixesEric Hanchrow Tue, 8 Jul 2008 20:00:30 +0000 (13:00 -0700)

user-manual: typo and grammar fixes

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

Merge branch 'lt/racy-empty' into maintJunio C Hamano Tue, 8 Jul 2008 07:19:17 +0000 (00:19 -0700)

Merge branch 'lt/racy-empty' into maint

* lt/racy-empty:
racy-git: an empty blob has a fixed object name

Merge branch 'qq/maint'Junio C Hamano Mon, 7 Jul 2008 23:42:08 +0000 (16:42 -0700)

Merge branch 'qq/maint'

* qq/maint:
run_command(): respect GIT_TRACE

Conflicts:

run-command.c

gitweb: Describe projects_index format in more detailJakub Narebski Mon, 7 Jul 2008 22:07:53 +0000 (00:07 +0200)

gitweb: Describe projects_index format in more detail

Update and extend information about $projects_list file format in
gitweb/README and in gitweb/INSTALL.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/maint-daemon-syslog'Junio C Hamano Mon, 7 Jul 2008 23:32:46 +0000 (16:32 -0700)

Merge branch 'js/maint-daemon-syslog'

* js/maint-daemon-syslog:
git daemon: avoid calling syslog() from a signal handler

Merge branch 'maint'Junio C Hamano Mon, 7 Jul 2008 23:31:55 +0000 (16:31 -0700)

Merge branch 'maint'

* maint:
git-svn.perl: workaround assertions in svn library 1.5.0

Merge branch 'qq/maint' (early part) into maintJunio C Hamano Mon, 7 Jul 2008 23:09:17 +0000 (16:09 -0700)

Merge branch 'qq/maint' (early part) into maint

* 'qq/maint' (early part):
git-svn.perl: workaround assertions in svn library 1.5.0
mailinfo: feed the correct line length to decode_transfer_encoding()
git-clone: remove leftover debugging fprintf().
Fix "config_error_nonbool" used with value instead of key
clone -q: honor "quiet" option over native transports.
attribute documentation: keep EXAMPLE at end
builtin-commit.c: Use 'git_config_string' to get 'commit.template'
http.c: Use 'git_config_string' to clean up SSL config.
diff.c: Use 'git_config_string' to get 'diff.external'
convert.c: Use 'git_config_string' to get 'smudge' and 'clean'
builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix'
Documentation cvs: Clarify when a bare repository is needed
Documentation: be precise about which date --pretty uses

run_command(): respect GIT_TRACEJohannes Schindelin Mon, 7 Jul 2008 13:41:34 +0000 (14:41 +0100)

run_command(): respect GIT_TRACE

When GIT_TRACE is set, the user is most likely wanting to see an external
command that is about to be executed.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn.perl: workaround assertions in svn library... Gerrit Pape Sun, 6 Jul 2008 19:28:50 +0000 (19:28 +0000)

git-svn.perl: workaround assertions in svn library 1.5.0

With subversion 1.5.0 (C and perl libraries) the git-svn selftest
t9101-git-svn-props.sh fails at test 25 and 26. The following commands
cause assertions in the svn library

$ cd deeply
$ git-svn propget svn:ignore .
perl: /build/buildd/subversion-1.5.0dfsg1/subversion/libsvn_ra/ra_loader.c:674: svn_ra_get_dir: Assertion `*path != '/'' failed.
Aborted

$ git-svn propget svn:ignore ..
perl: /build/buildd/subversion-1.5.0dfsg1/subversion/libsvn_subr/path.c:120: svn_path_join: Assertion `is_canonical(component, clen)' failed.

With this commit, git-svn makes sure the path doesn't start with a
slash, and is not a dot, working around these assertions.

The breakage was reported by Lucas Nussbaum through
http://bugs.debian.org/489108

Signed-off-by: Gerrit Pape <pape@smarden.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes for 1.6.0Junio C Hamano Mon, 7 Jul 2008 08:39:28 +0000 (01:39 -0700)

Update draft release notes for 1.6.0

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

Merge branch 'jc/rerere'Junio C Hamano Mon, 7 Jul 2008 09:17:28 +0000 (02:17 -0700)

Merge branch 'jc/rerere'

* jc/rerere:
rerere.autoupdate
t4200: fix rerere test
rerere: remove dubious "tail_optimization"
git-rerere: detect unparsable conflicts
rerere: rerere_created_at() and has_resolution() abstraction

Merge branch 'dr/ceiling'Junio C Hamano Mon, 7 Jul 2008 09:17:23 +0000 (02:17 -0700)

Merge branch 'dr/ceiling'

* dr/ceiling:
Eliminate an unnecessary chdir("..")
Add support for GIT_CEILING_DIRECTORIES
Fold test-absolute-path into test-path-utils
Implement normalize_absolute_path

Conflicts:

cache.h
setup.c

Merge branch 'db/no-git-config'Junio C Hamano Mon, 7 Jul 2008 09:17:14 +0000 (02:17 -0700)

Merge branch 'db/no-git-config'

* db/no-git-config:
Only use GIT_CONFIG in "git config", not other programs

Conflicts:

Documentation/RelNotes-1.6.0.txt

Merge branch 'js/import-zip'Junio C Hamano Mon, 7 Jul 2008 09:16:55 +0000 (02:16 -0700)

Merge branch 'js/import-zip'

* js/import-zip:
Add another fast-import example, this time for .zip files

Merge branch 'maint'Junio C Hamano Mon, 7 Jul 2008 09:11:28 +0000 (02:11 -0700)

Merge branch 'maint'

* maint:
Fix grammar in git-rev-parse(1).

Merge branch 'qq/maint'Junio C Hamano Mon, 7 Jul 2008 09:09:38 +0000 (02:09 -0700)

Merge branch 'qq/maint'

* qq/maint:
mailinfo: feed the correct line length to decode_transfer_encoding()
git-clone: remove leftover debugging fprintf().

completion.bash: add 'skip' and 'run' to git-bisectDmitry Potapov Wed, 2 Jul 2008 13:29:50 +0000 (17:29 +0400)

completion.bash: add 'skip' and 'run' to git-bisect

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mailinfo: feed the correct line length to decode_transf... Junio C Hamano Mon, 7 Jul 2008 05:26:45 +0000 (22:26 -0700)

mailinfo: feed the correct line length to decode_transfer_encoding()

When handling a MIME multipart message, multi-part boundary lines are eaten
by a call to handle_boundary() function from the main loop of handle_body(),
and after that happens, we should update the line length correctly, because
handle_boundary() udpates line[] with new data.

This was caused by a thinko in 9aa2309 (mailinfo: apply the same fix not
to lose NULs in BASE64 and QP codepaths, 2008-05-25).

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

git-apply --directory: make --root more similar to... Junio C Hamano Mon, 7 Jul 2008 01:36:01 +0000 (18:36 -0700)

git-apply --directory: make --root more similar to GNU diff

Applying a patch in the directory that is different from what the patch
records is done with --directory option in GNU diff. The --root option we
introduced previously does the same, and we can call it the same way to
give users more familiar feel.

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

git-clone: remove leftover debugging fprintf().Alex Riesen Sun, 6 Jul 2008 22:56:49 +0000 (00:56 +0200)

git-clone: remove leftover debugging fprintf().

Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix grammar in git-rev-parse(1).Mikael Magnusson Sun, 6 Jul 2008 20:34:21 +0000 (22:34 +0200)

Fix grammar in git-rev-parse(1).

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

git daemon: avoid calling syslog() from a signal handlerJohannes Schindelin Thu, 3 Jul 2008 15:27:24 +0000 (16:27 +0100)

git daemon: avoid calling syslog() from a signal handler

Signal handlers should never call syslog(), as that can raise signals
of its own.

Instead, call the syslog() from the master process.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://repo.or.cz/git-guiJunio C Hamano Sun, 6 Jul 2008 19:55:34 +0000 (12:55 -0700)

Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
git-gui: Implement "Stage/Unstage Line"
git-gui: Don't select the wrong file if the last listed file is staged.
git-gui: Fix accidental staged state toggle when clicking top pixel row
git-gui: Move on to the next filename after staging/unstaging a change

Allow per-command pager configJeff King Thu, 3 Jul 2008 11:46:57 +0000 (07:46 -0400)

Allow per-command pager config

There is great debate over whether some commands should set
up a pager automatically. This patch allows individuals to
set their own pager preferences for each command, overriding
the default. For example, to disable the pager for git
status:

git config pager.status false

If "--pager" or "--no-pager" is specified on the command
line, it takes precedence over the config option.

There are two caveats:

- you can turn on the pager for plumbing commands.
Combined with "core.pager = always", this will probably
break a lot of things. Don't do it.

- This only works for builtin commands. The reason is
somewhat complex:

Calling git_config before we do setup_git_directory
has bad side effects, because it wants to know where
the git_dir is to find ".git/config". Unfortunately,
we cannot call setup_git_directory indiscriminately,
because some builtins (like "init") break if we do.

For builtins, this is OK, since we can just wait until
after we call setup_git_directory. But for aliases, we
don't know until we expand (recursively) which command
we're doing. This should not be a huge problem for
aliases, which can simply use "--pager" or "--no-pager"
in the alias as appropriate.

For external commands, however, we don't know we even
have an external command until we exec it, and by then
it is too late to check the config.

An alternative approach would be to have a config mode
where we don't bother looking at .git/config, but only
at the user and system config files. This would make the
behavior consistent across builtins, aliases, and
external commands, at the cost of not allowing per-repo
pager config for at all.

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

Merge branch 'qq/maint'Junio C Hamano Sun, 6 Jul 2008 07:35:13 +0000 (00:35 -0700)

Merge branch 'qq/maint'

* qq/maint:
Fix "config_error_nonbool" used with value instead of key

hg-to-git: use git init instead of git init-dbMiklos Vajna Sun, 6 Jul 2008 03:15:20 +0000 (05:15 +0200)

hg-to-git: use git init instead of git init-db

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

hg-to-git: rewrite "git-frotz" to "git frotz"Miklos Vajna Sun, 6 Jul 2008 03:15:19 +0000 (05:15 +0200)

hg-to-git: rewrite "git-frotz" to "git frotz"

This is not just nice but necessary since git-frotz is no longer in
PATH.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

hg-to-git: abort if the project directory is not a... Miklos Vajna Sun, 6 Jul 2008 03:15:18 +0000 (05:15 +0200)

hg-to-git: abort if the project directory is not a hg repo

Check the exit code of the first hg command, and abort to avoid a later
ValueError exception.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

hg-to-git: avoid raising a string exceptionMiklos Vajna Sun, 6 Jul 2008 03:15:17 +0000 (05:15 +0200)

hg-to-git: avoid raising a string exception

This fixes the following warning:
hg-to-git.py:92: DeprecationWarning: raising a string exception is deprecated

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

INSTALL: Update section about git-frotz form.Miklos Vajna Sun, 6 Jul 2008 04:28:41 +0000 (06:28 +0200)

INSTALL: Update section about git-frotz form.

The old text stated that 'git-frotz' can be always used instead of 'git
frotz' which is no longer true.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix "config_error_nonbool" used with value instead... Christian Couder Sun, 6 Jul 2008 04:10:04 +0000 (06:10 +0200)

Fix "config_error_nonbool" used with value instead of key

The function "config_error_nonbool", that is defined in "config.c",
is used to report an error when a config key in the config file
should have a corresponding value but it hasn't.

So the parameter to this function should be the key and not the
value, because the value is undefined. And it could crash if the
value is used.

This patches fixes two occurences where the value was passed
instead of the key.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix "config_error_nonbool" used with value instead... Christian Couder Sun, 6 Jul 2008 04:10:04 +0000 (06:10 +0200)

Fix "config_error_nonbool" used with value instead of key

The function "config_error_nonbool", that is defined in "config.c",
is used to report an error when a config key in the config file
should have a corresponding value but it hasn't.

So the parameter to this function should be the key and not the
value, because the value is undefined. And it could crash if the
value is used.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'qq/maint'Junio C Hamano Sun, 6 Jul 2008 01:33:16 +0000 (18:33 -0700)

Merge branch 'qq/maint'

* qq/maint:
clone -q: honor "quiet" option over native transports.
attribute documentation: keep EXAMPLE at end
builtin-commit.c: Use 'git_config_string' to get 'commit.template'
http.c: Use 'git_config_string' to clean up SSL config.
diff.c: Use 'git_config_string' to get 'diff.external'
convert.c: Use 'git_config_string' to get 'smudge' and 'clean'
builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix'
Documentation cvs: Clarify when a bare repository is needed
Documentation: be precise about which date --pretty uses

Conflicts:

Documentation/gitattributes.txt

clone -q: honor "quiet" option over native transports.Junio C Hamano Sun, 6 Jul 2008 00:58:50 +0000 (17:58 -0700)

clone -q: honor "quiet" option over native transports.

The earlier built-in conversion seems to have broken "git-clone"; this
teaches the command to honor the "-q" option again when talking to the
remote end over native transports (file://, git:// and ssh://).

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

attribute documentation: keep EXAMPLE at endJunio C Hamano Sun, 6 Jul 2008 01:14:27 +0000 (18:14 -0700)

attribute documentation: keep EXAMPLE at end

The document gives overall definition of states in DESCRIPTION, describes
various aspects of git operations that can be influenced in EFFECTS, and
finally gives examples in the EXAMPLE section. Archive creation however
was somehow documented after the EXAMPLE section, not insode EFFECTS.

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

builtin-commit.c: Use 'git_config_string' to get 'commi... Brian Hetro Sat, 5 Jul 2008 05:24:40 +0000 (01:24 -0400)

builtin-commit.c: Use 'git_config_string' to get 'commit.template'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http.c: Use 'git_config_string' to clean up SSL config.Brian Hetro Sat, 5 Jul 2008 05:24:44 +0000 (01:24 -0400)

http.c: Use 'git_config_string' to clean up SSL config.

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff.c: Use 'git_config_string' to get 'diff.external'Brian Hetro Sat, 5 Jul 2008 05:24:43 +0000 (01:24 -0400)

diff.c: Use 'git_config_string' to get 'diff.external'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

convert.c: Use 'git_config_string' to get 'smudge'... Brian Hetro Sat, 5 Jul 2008 05:24:42 +0000 (01:24 -0400)

convert.c: Use 'git_config_string' to get 'smudge' and 'clean'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-log.c: Use 'git_config_string' to get 'format... Brian Hetro Sat, 5 Jul 2008 05:24:41 +0000 (01:24 -0400)

builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix'

Signed-off-by: Brian Hetro <whee@smaertness.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation cvs: Clarify when a bare repository is... Matthew Ogilvie Sat, 5 Jul 2008 04:43:41 +0000 (22:43 -0600)

Documentation cvs: Clarify when a bare repository is needed

New users sometimes import a project and then immediately
try to use the imported repository as a central shared repository.
This provides pointers about setting up a bare repository for that
in the parts of the documentation dealing with CVS migration.

Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Move read_revisions_from_stdin from builtin-rev-list... Adam Brewster Sat, 5 Jul 2008 21:26:39 +0000 (17:26 -0400)

Move read_revisions_from_stdin from builtin-rev-list.c to revision.c

Reading rev-list parameters from the command line can be reused by
commands other than rev-list. Move this function to more "library-ish"
place to promote code reuse.

Signed-off-by: Adam Brewster <asb@bu.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix some warnings (on cygwin) to allow -WerrorRamsay Jones Thu, 3 Jul 2008 15:52:09 +0000 (16:52 +0100)

Fix some warnings (on cygwin) to allow -Werror

When printing valuds of type uint32_t, we should use PRIu32, and should
not assume that it is unsigned int. On 32-bit platforms, it could be
defined as unsigned long. The same caution applies to ntohl().

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: be precise about which date --pretty... Nikolaus Schulz Sat, 5 Jul 2008 00:00:13 +0000 (02:00 +0200)

Documentation: be precise about which date --pretty uses

This makes it explicit that the --pretty formats 'medium' and 'email' use the
author date (and ignore the committer date).

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

manpages: use teletype font for sample command linesJonathan Nieder Thu, 3 Jul 2008 06:06:23 +0000 (01:06 -0500)

manpages: use teletype font for sample command lines

I think that some of these uses of italics were meant to be
rendered in quotation marks, anyway.

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

manpages: italicize git subcommand names (which were... Jonathan Nieder Thu, 3 Jul 2008 05:59:09 +0000 (00:59 -0500)

manpages: italicize git subcommand names (which were in teletype font)

Italicize those git subcommand names already in teletype we missed.

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

manpages: italicize nongit command names (if they are... Jonathan Nieder Thu, 3 Jul 2008 05:55:07 +0000 (00:55 -0500)

manpages: italicize nongit command names (if they are in teletype font)

Some manual pages use teletype font to set command names. We
change them to use italics, instead. This creates a visual
distinction between names of commands and command lines that
can be typed at the command line. It is also more consistent
with other man pages outside Git.

In this patch, the commands named are non-git commands like bash.

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

manpages: italicize gitk's name (where it was in telety... Jonathan Nieder Thu, 3 Jul 2008 05:49:55 +0000 (00:49 -0500)

manpages: italicize gitk's name (where it was in teletype font)

The name `gitk` is sometimes meant to be entered at the command
prompt, but most uses are just referring to the program with that
name (not the incantation to start it).

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

manpages: italicize git command names (which were in... Jonathan Nieder Thu, 3 Jul 2008 05:41:41 +0000 (00:41 -0500)

manpages: italicize git command names (which were in teletype font)

The names of git commands are not meant to be entered at the
commandline; they are just names. So we render them in italics,
as is usual for command names in manpages.

Using

doit () {
perl -e 'for (<>) { s/\`(git-[^\`.]*)\`/'\''\1'\''/g; print }'
}
for i in git*.txt config.txt diff*.txt blame*.txt fetch*.txt i18n.txt \
merge*.txt pretty*.txt pull*.txt rev*.txt urls*.txt
do
doit <"$i" >"$i+" && mv "$i+" "$i"
done
git diff

.

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

manpages: italicize command namesJonathan Nieder Thu, 3 Jul 2008 05:37:18 +0000 (00:37 -0500)

manpages: italicize command names

This includes nongit commands like RCS 'merge'. This patch only
italicizes names of commands if they had no formatting before.

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

manpages: italicize command names in synopsesJonathan Nieder Thu, 3 Jul 2008 05:36:04 +0000 (00:36 -0500)

manpages: italicize command names in synopses

To tell command names from options in a glance.

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

gitdiffcore(7): fix awkward wordingJonathan Nieder Thu, 3 Jul 2008 05:30:25 +0000 (00:30 -0500)

gitdiffcore(7): fix awkward wording

The phrase "diff outputs" sounds awkward to my ear (I think
"output" is meant to be used as a substantive noun.)

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

Documentation: more "git-" versus "git " changesJonathan Nieder Thu, 3 Jul 2008 05:28:15 +0000 (00:28 -0500)

Documentation: more "git-" versus "git " changes

With git-commands moving out of $(bindir), it is useful to make a
clearer distinction between the git subcommand 'git-whatever' and
the command you type, `git whatever <options>`. So we use a dash
after "git" when referring to the former and not the latter.

I already sent a patch doing this same thing, but I missed some
spots.

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

Documentation: rewrap to prepare for "git-" vs "git... Jonathan Nieder Thu, 3 Jul 2008 05:20:21 +0000 (00:20 -0500)

Documentation: rewrap to prepare for "git-" vs "git " change

Rewrap lines in preparation for added dashes.

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

git-commit(1): depersonalize descriptionJonathan Nieder Thu, 3 Jul 2008 05:13:45 +0000 (00:13 -0500)

git-commit(1): depersonalize description

The intent is to make git-commit(1) feel more like a manual page. The
change also makes the page four words shorter.

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

git(1): add commaJonathan Nieder Thu, 3 Jul 2008 05:08:12 +0000 (00:08 -0500)

git(1): add comma

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

manpages: fix bogus whitespaceJonathan Nieder Thu, 3 Jul 2008 05:03:54 +0000 (00:03 -0500)

manpages: fix bogus whitespace

It's distracting.

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

Documentation: fix gitlinksJonathan Nieder Thu, 3 Jul 2008 04:54:38 +0000 (23:54 -0500)

Documentation: fix gitlinks

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

git-format-patch(1): fix stray \ in outputJonathan Nieder Thu, 3 Jul 2008 04:47:05 +0000 (23:47 -0500)

git-format-patch(1): fix stray \ in output

In listing blocks (set off by rows of dashes), the usual
formatting characters of asciidoc are instead rendered verbatim.
When the escaped double-hyphen of olden days is moved into such a
block along with other formatting improvements, it becomes
backslash-dash-dash.

So we remove the backslash.

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

Retire 'stupid' merge strategyMiklos Vajna Sat, 5 Jul 2008 14:43:51 +0000 (16:43 +0200)

Retire 'stupid' merge strategy

As pointed out by Linus, this strategy tries to take the best merge
base, but 'recursive' just does it better. If one needs something more
than 'resolve' then he/she should really use 'recursive' and not
'stupid'.

Cf. Message-ID: <alpine.LFD.1.10.0807030947360.18105@woody.linux-foundation.org>

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

Fix apply --recount handling of no-EOL lineThomas Rast Fri, 4 Jul 2008 19:10:14 +0000 (21:10 +0200)

Fix apply --recount handling of no-EOL line

If a patch modifies the last line of a file that previously had no
terminating '\n', it looks like

-old text
\ No newline at end of file
+new text

Hence, a '\' line does not signal the end of the hunk. This modifies
'git apply --recount' to take this into account.

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

Merge branch 'maint'Junio C Hamano Fri, 4 Jul 2008 08:59:57 +0000 (01:59 -0700)

Merge branch 'maint'

* maint:
GIT 1.5.6.2
Fix executable bits in t/ scripts
Work around gcc warnings from curl headers

GIT 1.5.6.2 v1.5.6.2Junio C Hamano Fri, 4 Jul 2008 08:12:54 +0000 (01:12 -0700)

GIT 1.5.6.2

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

Fix executable bits in t/ scriptsJunio C Hamano Fri, 4 Jul 2008 08:38:34 +0000 (01:38 -0700)

Fix executable bits in t/ scripts

Pointed out by Ramsay Jones.

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

t4127-apply-same-fn: Avoid sed -iJohannes Sixt Fri, 4 Jul 2008 06:43:19 +0000 (08:43 +0200)

t4127-apply-same-fn: Avoid sed -i

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Work around gcc warnings from curl headersJunio C Hamano Fri, 4 Jul 2008 07:37:40 +0000 (00:37 -0700)

Work around gcc warnings from curl headers

After master.k.org upgrade, I started seeing these warning messages:

transport.c: In function 'get_refs_via_curl':
transport.c:458: error: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option

It appears that the curl header wants to enforce the function signature
for callback function given to curl_easy_setopt() to be compatible with
that of (*curl_write_callback) or fwrite. This patch seems to work the
issue around.

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

fast-export --export-marks: fix off by one errorJunio C Hamano Thu, 3 Jul 2008 07:25:23 +0000 (00:25 -0700)

fast-export --export-marks: fix off by one error

The export_marks() function iterated over a (potentially sparsely
populated) hashtable, but it accessed it starting from offset 1 and one
element beyond the end.

Noticed by SungHyun Nam.

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

git-send-email: Do not attempt to STARTTLS more than... Thomas Rast Wed, 2 Jul 2008 22:11:31 +0000 (00:11 +0200)

git-send-email: Do not attempt to STARTTLS more than once

With the previous TLS patch, send-email would attempt to STARTTLS at
the beginning of every mail, despite reusing the last connection. We
simply skip further encryption checks after successful TLS initiation.

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