git.git
14 years agobash-completion: Fix __git_ps1 to work with "set -u"
Andrew Sayers [Thu, 17 Jun 2010 21:32:16 +0000 (22:32 +0100)]
bash-completion: Fix __git_ps1 to work with "set -u"

Define several variables in __git_ps1 to avoid errors under "set -u" semantics.

__git_ps1 seems to have been missed when the rest of the file was fixed in
25a31f8.

Signed-off-by: Andrew Sayers <andrew-git@pileofstuff.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoPrepare draft release notes to 1.7.1.1
Junio C Hamano [Wed, 16 Jun 2010 23:56:53 +0000 (16:56 -0700)]
Prepare draft release notes to 1.7.1.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cw/maint-exec-defpath' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:33:47 +0000 (16:33 -0700)]
Merge branch 'cw/maint-exec-defpath' into maint

* cw/maint-exec-defpath:
  autoconf: Check if <paths.h> exists and set HAVE_PATHS_H
  exec_cmd.c: replace hard-coded path list with one from <paths.h>

14 years agoMerge branch 'sc/http-late-auth' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:32:15 +0000 (16:32 -0700)]
Merge branch 'sc/http-late-auth' into maint

* sc/http-late-auth:
  Prompt for a username when an HTTP request 401s

14 years agoMerge branch 'by/blame-doc-m-c' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:23:51 +0000 (16:23 -0700)]
Merge branch 'by/blame-doc-m-c' into maint

* by/blame-doc-m-c:
  blame-options.txt: Add default value for `-M/-C` options.

14 years agoMerge branch 'cb/maint-stash-orphaned-file' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:23:48 +0000 (16:23 -0700)]
Merge branch 'cb/maint-stash-orphaned-file' into maint

* cb/maint-stash-orphaned-file:
  stash tests: stash can lose data in a file removed from the index
  stash: Don't overwrite files that have gone from the index

14 years agoMerge branch 'mg/advice-statushints' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:23:42 +0000 (16:23 -0700)]
Merge branch 'mg/advice-statushints' into maint

* mg/advice-statushints:
  wt-status: take advice.statusHints seriously
  t7508: test advice.statusHints

14 years agoMerge branch 'jn/maint-bundle' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:23:22 +0000 (16:23 -0700)]
Merge branch 'jn/maint-bundle' into maint

* jn/maint-bundle:
  fix "bundle --stdin" segfault
  t5704 (bundle): add tests for bundle --stdin

14 years agoMerge branch 'rr/doc-submitting' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:23:14 +0000 (16:23 -0700)]
Merge branch 'rr/doc-submitting' into maint

* rr/doc-submitting:
  SubmittingPatches: Add new section about what to base work on

14 years agoMerge branch 'jn/t7006-fixup' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:22:57 +0000 (16:22 -0700)]
Merge branch 'jn/t7006-fixup' into maint

* jn/t7006-fixup:
  t7006: guard cleanup with test_expect_success

14 years agoMerge branch 'jn/shortlog' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:22:51 +0000 (16:22 -0700)]
Merge branch 'jn/shortlog' into maint

* jn/shortlog:
  pretty: Respect --abbrev option
  shortlog: Document and test --format option
  t4201 (shortlog): Test output format with multiple authors
  t4201 (shortlog): guard setup with test_expect_success
  Documentation/shortlog: scripted users should not rely on implicit HEAD

14 years agoMerge branch 'np/index-pack-memsave' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:22:23 +0000 (16:22 -0700)]
Merge branch 'np/index-pack-memsave' into maint

* np/index-pack-memsave:
  index-pack: smarter memory usage when appending objects
  index-pack: rationalize unpack_entry_data()
  index-pack: smarter memory usage when resolving deltas

14 years agoMerge branch 'sp/maint-dumb-http-pack-reidx' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:21:30 +0000 (16:21 -0700)]
Merge branch 'sp/maint-dumb-http-pack-reidx' into maint

* sp/maint-dumb-http-pack-reidx:
  http.c::new_http_pack_request: do away with the temp variable filename
  http-fetch: Use temporary files for pack-*.idx until verified
  http-fetch: Use index-pack rather than verify-pack to check packs
  Allow parse_pack_index on temporary files
  Extract verify_pack_index for reuse from verify_pack
  Introduce close_pack_index to permit replacement
  http.c: Remove unnecessary strdup of sha1_to_hex result
  http.c: Don't store destination name in request structures
  http.c: Drop useless != NULL test in finish_http_pack_request
  http.c: Tiny refactoring of finish_http_pack_request
  t5550-http-fetch: Use subshell for repository operations
  http.c: Remove bad free of static block

14 years agoMerge branch 'jc/am-3-show-corrupted-patch' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:21:23 +0000 (16:21 -0700)]
Merge branch 'jc/am-3-show-corrupted-patch' into maint

* jc/am-3-show-corrupted-patch:
  am -3: recover the diagnostic messages for corrupt patches

14 years agoMerge branch 'sp/maint-describe-tiebreak-with-tagger-date' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:21:15 +0000 (16:21 -0700)]
Merge branch 'sp/maint-describe-tiebreak-with-tagger-date' into maint

* sp/maint-describe-tiebreak-with-tagger-date:
  describe: Break annotated tag ties by tagger date
  tag.c: Parse tagger date (if present)
  tag.c: Refactor parse_tag_buffer to be saner to program
  tag.h: Remove unused signature field
  tag.c: Correct indentation

14 years agoMerge branch 'np/malloc-threading' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:21:06 +0000 (16:21 -0700)]
Merge branch 'np/malloc-threading' into maint

* np/malloc-threading:
  Thread-safe xmalloc and xrealloc needs a recursive mutex
  Make xmalloc and xrealloc thread-safe

14 years agoMerge branch 'bg/send-email-smtpdomain' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:20:06 +0000 (16:20 -0700)]
Merge branch 'bg/send-email-smtpdomain' into maint

* bg/send-email-smtpdomain:
  send-email: Cleanup smtp-domain and add config
  Document send-email --smtp-domain
  send-email: Don't use FQDNs without a '.'
  send-email: Cleanup { style

14 years agoMerge branch 'rc/maint-curl-helper' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:19:43 +0000 (16:19 -0700)]
Merge branch 'rc/maint-curl-helper' into maint

* rc/maint-curl-helper:
  remote-curl: ensure that URLs have a trailing slash
  http: make end_url_with_slash() public
  t5541-http-push: add test for URLs with trailing slash

Conflicts:
remote-curl.c

14 years agoMerge branch 'hg/maint-attr-fix' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:17:54 +0000 (16:17 -0700)]
Merge branch 'hg/maint-attr-fix' into maint

* hg/maint-attr-fix:
  attr: Expand macros immediately when encountered.
  attr: Allow multiple changes to an attribute on the same line.
  attr: Fixed debug output for macro expansion.

14 years agoMerge branch 'mh/status-optionally-refresh' into maint
Junio C Hamano [Wed, 16 Jun 2010 23:16:40 +0000 (16:16 -0700)]
Merge branch 'mh/status-optionally-refresh' into maint

* mh/status-optionally-refresh:
  t7508: add a test for "git status" in a read-only repository
  git status: refresh the index if possible
  t7508: add test for "git status" refreshing the index

14 years agonotes: Initialize variable to appease Sun Studio
Ævar Arnfjörð Bjarmason [Mon, 14 Jun 2010 23:40:05 +0000 (23:40 +0000)]
notes: Initialize variable to appease Sun Studio

Sun Studio 12 Update 1 thinks that *t could be uninitialized,
ostensibly because it doesn't take rewrite_cmd into account in its
static analysis.

    builtin/notes.c: In function `notes_copy_from_stdin':
    builtin/notes.c:419: warning: 't' might be used uninitialized in this function

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-mailinfo documentation: clarify -u/--encoding
Zhang Le [Sun, 13 Jun 2010 18:49:47 +0000 (02:49 +0800)]
git-mailinfo documentation: clarify -u/--encoding

Instead of talking about hardcoded UTF-8, describe i18n.commitencoding
and the --encoding option, and state that they default to UTF-8.

Signed-off-by: Zhang Le <r0bertz@gentoo.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoadd-interactive: Clarify “remaining hunks in the file”
Jonathan Nieder [Sun, 13 Jun 2010 03:32:51 +0000 (22:32 -0500)]
add-interactive: Clarify “remaining hunks in the file”

The "a" and "d" commands to ‘add --patch’ (accept/reject rest of file)
interact with "j", "g", and "/" (skip some hunks) in a perhaps
confusing way: after accepting or rejecting all _later_ hunks in the
file, they return to the earlier, skipped hunks and prompt the user
about them again.

This behavior can be very useful in practice.  One can still accept or
reject _all_ undecided hunks in a file by using the "g" command to
move to hunk #1 first.

Reported-by: Frédéric Brière <fbriere@fbriere.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: document --root option
Thomas Rast [Thu, 10 Jun 2010 18:24:46 +0000 (20:24 +0200)]
t/README: document --root option

We've had this option since f423ef5 (tests: allow user to specify
trash directory location, 2009-08-09).  Make it easier to look up :-)

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: default pager on AIX to "more"
Jeff King [Thu, 10 Jun 2010 08:59:52 +0000 (04:59 -0400)]
Makefile: default pager on AIX to "more"

AIX doesn't ship with "less" by default, and their "more" is
more featureful than average, so the latter is a more
sensible choice.  People who really want less can set the
compile-time option themselves, or users can set $PAGER.

Signed-off-by: Jeff King <peff@peff.net>
Tested-by: Tor Arntsen <tor@spacetec.no>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoChange C99 comments to old-style C comments
Tor Arntsen [Fri, 4 Jun 2010 09:32:11 +0000 (11:32 +0200)]
Change C99 comments to old-style C comments

Signed-off-by: Tor Arntsen <tor@spacetec.no>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocommit.txt: clarify how --author argument is used
Jay Soffian [Sun, 6 Jun 2010 23:31:34 +0000 (19:31 -0400)]
commit.txt: clarify how --author argument is used

commit --author was added by 146ea06 (git commit --author=$name: look $name up
in existing commits), but its documentation was sorely lacking compared to its
excellent commit message. This commit tries to improve the documentation.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosetup: document prefix
Clemens Buchacher [Sat, 5 Jun 2010 08:04:20 +0000 (10:04 +0200)]
setup: document prefix

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-compat-util.h: use apparently more common __sgi macro to detect SGI IRIX
Gary V. Vaughan [Wed, 2 Jun 2010 01:55:36 +0000 (20:55 -0500)]
git-compat-util.h: use apparently more common __sgi macro to detect SGI IRIX

IRIX 6.5.26m does not define the 'sgi' macro, but it does define an '__sgi'
macro.  Since later IRIX versions (6.5.29m) define both macros, and since
an underscore prefixed macro is preferred anyway, use '__sgi' to detect
compilation on SGI IRIX.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Gary V. Vaughan <gary@thewrittenword.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: A...B shortcut for checkout and rebase
Michael J Gruber [Tue, 1 Jun 2010 15:16:42 +0000 (17:16 +0200)]
Documentation: A...B shortcut for checkout and rebase

Describe the A...B shortcuts for checkout and rebase [-i] which were
introduced in these commits:

619a64e ("checkout A...B" switches to the merge base between A and B, 2009-10-18)
61dfa1b ("rebase --onto A...B" replays history on the merge base between A and B, 2009-11-20)
230a456 (rebase -i: teach --onto A...B syntax, 2010-01-07)

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/pretty-{formats,options}: better reference for "format:<string>"
Nazri Ramliy [Tue, 1 Jun 2010 17:54:46 +0000 (01:54 +0800)]
Documentation/pretty-{formats,options}: better reference for "format:<string>"

In "git help log" (and friends) it's not easy to find the possible
placeholder for <string> for the "--pretty=format:<string>" option
to git log.

This patch makes the placeholder easier to find by adding a reference
to the "PRETTY FORMATS" section and repeating the "format:<string>"
phrase.

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.7.0' into maint
Junio C Hamano [Tue, 1 Jun 2010 01:14:17 +0000 (18:14 -0700)]
Merge branch 'maint-1.7.0' into maint

* maint-1.7.0:
  Documentation/config: describe status.submodulesummary

14 years agoDocumentation/SubmittingPatches: Fix typo in GMail section
Tim Henigan [Wed, 26 May 2010 12:36:10 +0000 (08:36 -0400)]
Documentation/SubmittingPatches: Fix typo in GMail section

Commit e498257d introduced a typo while improving the GMail section
of SubmittingPatches.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Acked-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/config: describe status.submodulesummary
Michael J Gruber [Thu, 20 May 2010 15:55:42 +0000 (17:55 +0200)]
Documentation/config: describe status.submodulesummary

ac8d5af (builtin-status: submodule summary support, 2008-04-12)
intoduced this variable and described it in git-status[1].

Include this description in git-config[1], as well.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.7.0' into maint
Junio C Hamano [Fri, 28 May 2010 23:59:36 +0000 (16:59 -0700)]
Merge branch 'maint-1.7.0' into maint

* maint-1.7.0:
  Makefile: reenable install with NO_CURL

14 years agoMakefile: reenable install with NO_CURL
Michael J Gruber [Wed, 26 May 2010 14:24:34 +0000 (16:24 +0200)]
Makefile: reenable install with NO_CURL

Setting NO_CURL leaves some variables like REMOTE_CURL_ALIASES
empty, which creates no fun when for-looping over
$(REMOTE_CURL_ALIASES) unconditionally. Make it conditional.

Reported-by: Paul Walker <PWalker752@aol.com>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocompletion: --set-upstream option for git-branch
Michael J Gruber [Wed, 26 May 2010 08:46:41 +0000 (10:46 +0200)]
completion: --set-upstream option for git-branch

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoget_cwd_relative(): do not misinterpret suffix as subdirectory
Clemens Buchacher [Sat, 22 May 2010 11:13:05 +0000 (13:13 +0200)]
get_cwd_relative(): do not misinterpret suffix as subdirectory

If the current working directory is the same as the work tree path
plus a suffix, e.g. 'work' and 'work-xyz', then the suffix '-xyz'
would be interpreted as a subdirectory of 'work'.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/SubmittingPatches: clarify GMail section and SMTP
Michael J Gruber [Tue, 25 May 2010 08:30:13 +0000 (10:30 +0200)]
Documentation/SubmittingPatches: clarify GMail section and SMTP

We keep getting mangled submissions from GMail's web interface. Try to
be more proactive in SubmittingPatches by

- pointing to MUA specific instructions early on,
- structuring the GMail section more clearly,
- putting send-email/SMTP before imap-send/IMAP.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoshow-branch: use DEFAULT_ABBREV instead of 7
Tay Ray Chuan [Mon, 24 May 2010 08:50:44 +0000 (16:50 +0800)]
show-branch: use DEFAULT_ABBREV instead of 7

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot7502-commit: fix spelling
Tay Ray Chuan [Mon, 24 May 2010 08:51:17 +0000 (16:51 +0800)]
t7502-commit: fix spelling

s/subdirecotry/subdirectory/

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest get_git_work_tree() return value for NULL
Clemens Buchacher [Sat, 22 May 2010 12:21:27 +0000 (14:21 +0200)]
test get_git_work_tree() return value for NULL

If we are in a git directory, get_git_work_tree() can return NULL.
While trying to determine whether or not the given paths are outside
the work tree, the following command would read from it anyways and
trigger a segmentation fault.

 git diff / /

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix checkout of large files to network shares on Windows XP
René Scharfe [Thu, 20 May 2010 18:57:53 +0000 (20:57 +0200)]
Fix checkout of large files to network shares on Windows XP

Bigger writes to network drives on Windows XP fail.  Cap them at 31MB to
allow them to succeed.  Callers need to be prepared for write() calls
that do less work than requested anyway.

On local drives, write() calls are translated to WriteFile() calls with
a cap of 64KB on Windows XP and 256KB on Vista.  Thus a cap of 31MB won't
affect the number of WriteFile() calls which do the actual work.  There's
still room for some other version of Windows to use a chunk size of 1MB
without increasing the number of system calls.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agostart_command: close cmd->err descriptor when fork/spawn fails
bert Dvornik [Thu, 20 May 2010 18:57:52 +0000 (20:57 +0200)]
start_command: close cmd->err descriptor when fork/spawn fails

Fix the problem where the cmd->err passed into start_command wasn't
being properly closed when certain types of errors occurr.  (Compare
the affected code with the clean shutdown code later in the function.)

On Windows, this problem would be triggered if mingw_spawnvpe()
failed, which would happen if the command to be executed was malformed
(e.g. a text file that didn't start with a #! line).  If cmd->err was
a pipe, the failure to close it could result in a hang while the other
side was waiting (forever) for either input or pipe close, e.g. while
trying to shove the output into the side band.  On msysGit, this
problem was causing a hang in t5516-fetch-push.

[J6t: With a slight adjustment of the test case, the hang is also
observed on Linux.]

Signed-off-by: bert Dvornik <dvornik+git@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix "Out of memory? mmap failed" for files larger than 4GB on Windows
Ian McLean [Thu, 20 May 2010 18:57:51 +0000 (20:57 +0200)]
Fix "Out of memory? mmap failed" for files larger than 4GB on Windows

The git_mmap implementation was broken for file sizes that wouldn't fit
into a size_t (32 bits).  This was caused by intermediate variables that
were only 32 bits wide when they should be 64 bits.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopost-receive-email: document command-line mode
Jonathan Nieder [Wed, 19 May 2010 19:01:47 +0000 (14:01 -0500)]
post-receive-email: document command-line mode

According to the default hooks/post-receive file, the hook is called
with three arguments on stdin:

  <oldrev> <newrev> <refname>

In command-line mode, the arguments come in a different order, because
the email hook instead calls:

  generate_email $2 $3 $1

Add a comment to explain why, based on comments from the mailing list
and the commit message to v1.5.1~9.  Thanks to Andy for the
explanation.

Requested-by: martin f. krafft <madduck@debian.org>
Cc: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/gitdiffcore: fix order in pickaxe description
Michael J Gruber [Tue, 18 May 2010 10:49:33 +0000 (12:49 +0200)]
Documentation/gitdiffcore: fix order in pickaxe description

Reverse the order of "origin" and "result" so that the sentence
really describes an addition rather than a removal.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: fix minor inconsistency
Michael J Gruber [Thu, 13 May 2010 12:51:38 +0000 (14:51 +0200)]
Documentation: fix minor inconsistency

While we don't always write out commands in full (`git command`) we
should do it consistently in adjacent paragraphs.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: rebase -i ignores options passed to "git am"
Markus Heidelberg [Thu, 13 May 2010 12:47:53 +0000 (14:47 +0200)]
Documentation: rebase -i ignores options passed to "git am"

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohash_object: correction for zero length file
Dmitry Potapov [Mon, 10 May 2010 21:38:17 +0000 (01:38 +0400)]
hash_object: correction for zero length file

The check whether size is zero was done after if size <= SMALL_FILE_SIZE,
as result, zero size case was never triggered. Instead zero length file
was treated as any other small file. This did not caused any problem, but
if we have a special case for size equal to zero, it is better to make it
work and avoid redundant malloc().

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGIT-VERSION-GEN: restrict tags used
Tay Ray Chuan [Wed, 12 May 2010 03:29:20 +0000 (11:29 +0800)]
GIT-VERSION-GEN: restrict tags used

Restrict the tags used to generate the version string to those that
begin with "v", since git's tags for git-core (ie. excluding git-gui)
are all of the form "vX.Y...".

This is to avoid using private tags by the user in a clone of the git
code repository, which may break certain machinery (eg. Makefile, gitk).

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohandle "git --bare init <dir>" properly
Jeff King [Mon, 10 May 2010 09:42:06 +0000 (05:42 -0400)]
handle "git --bare init <dir>" properly

If we know we are creating a bare repository, we use setenv
to set the GIT_DIR directory to the current directory
(either where we already were, or one we created and chdir'd
into with "git init --bare <dir>").

However, with "git --bare init <dir>" (note the --bare as a
git wrapper option), the setup code actually sets GIT_DIR
for us, but it uses the wrong, original cwd when a directory
is given. Because our setenv does not use the overwrite
flag, it is ignored.

We need to set the overwrite flag, but only when we are
given a directory on the command line. That still allows:

  GIT_DIR=foo.git git init --bare

to work. The behavior is changed for:

  GIT_DIR=foo.git git init --bare bar.git

which used to create the repository in foo.git, but now will
use bar.git. This is more sane, as command line options
should generally override the environment.

Noticed by Oliver Hoffmann.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocherry-pick: do not dump core when iconv fails
Jonathan Nieder [Sat, 8 May 2010 23:17:29 +0000 (18:17 -0500)]
cherry-pick: do not dump core when iconv fails

When cherry-picking, usually the new and old commit encodings are both
UTF-8.  Most old iconv implementations do not support this trivial
conversion, so on old platforms, out->message remains NULL, and later
attempts to read it segfault.

Fix this by noticing the input and output encodings match and skipping
the iconv step, like the other reencode_string() call sites already do.
Also stop segfaulting on other iconv failures: if iconv fails for some
other reason, the best we can do is to pass the old message through.

This fixes a regression introduced in v1.7.1-rc0~15^2~2 (revert:
clarify label on conflict hunks, 2010-03-20).

Reported-by: Andreas Krey <a.krey@gmx.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: Fix 'clean' target to remove all gitweb build files
Ramsay Jones [Sat, 8 May 2010 17:36:15 +0000 (18:36 +0100)]
Makefile: Fix 'clean' target to remove all gitweb build files

In particular the gitweb/GITWEB-BUILD-OPTIONS file was not being
removed by the main Makefile. However, the gitweb/Makefile has a
'clean' target that correctly removes all the build products.
In order to fix the problem, rather than duplicate the clean-up
instructions, we change the main Makefile so that it delegates
the clean-up actions to the gitweb Makefile.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/config.txt: GIT_NOTES_REWRITE_REF overrides notes.rewriteRef
Leif Arne Storset [Wed, 5 May 2010 14:16:25 +0000 (16:16 +0200)]
Documentation/config.txt: GIT_NOTES_REWRITE_REF overrides notes.rewriteRef

The documentation erroneously mentions the GIT_NOTES_REWRITE_REF
override in the description of notes.rewrite.<command>.  Move it
under notes.rewriteRef where it belongs.

Signed-off-by: Leif Arne Storset <lstorset@opera.com>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoblame-options.txt: Add default value for `-M/-C` options.
Bo Yang [Fri, 7 May 2010 04:51:57 +0000 (21:51 -0700)]
blame-options.txt: Add default value for `-M/-C` options.

Both `-M` and `-C` have default values and the <num> argument
the last `-C` option takes effect.

Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agowt-status: take advice.statusHints seriously
Michael J Gruber [Thu, 22 Apr 2010 20:30:20 +0000 (22:30 +0200)]
wt-status: take advice.statusHints seriously

Currently, status gives a lot of hints even when advice.statusHints is
false. Change this so that all hints depend on the config variable.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot7508: test advice.statusHints
Michael J Gruber [Thu, 22 Apr 2010 20:30:19 +0000 (22:30 +0200)]
t7508: test advice.statusHints

edf563f (status: make "how to stage" messages optional, 2009-09-09)
introduced advice.statusHints without tests. Add a few tests to describe
and test the status quo.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: some shells do not let $? propagate into an eval
Jonathan Nieder [Thu, 6 May 2010 08:41:10 +0000 (03:41 -0500)]
test-lib: some shells do not let $? propagate into an eval

In 3bf7886 (test-lib: Let tests specify commands to be run at end of
test, 2010-05-02), the git test harness learned to run cleanup
commands unconditionally at the end of a test.  During each test,
the intended cleanup actions are collected in the test_cleanup variable
and evaluated.  That variable looks something like this:

eval_ret=$?; clean_something && (exit "$eval_ret")
eval_ret=$?; clean_something_else && (exit "$eval_ret")
eval_ret=$?; final_cleanup && (exit "$eval_ret")
eval_ret=$?

All cleanup actions are run unconditionally but if one of them fails
it is properly reported through $eval_ret.

On FreeBSD, unfortunately, $? is set at the beginning of an ‘eval’
to 0 instead of the exit status of the previous command.  This results
in tests using test_expect_code appearing to fail and all others
appearing to pass, unless their cleanup fails.  Avoid the problem by
setting eval_ret before the ‘eval’ begins.

Thanks to Jeff King for the explanation.

Cc: Jeff King <peff@peff.net>
Cc: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopretty: Respect --abbrev option
Will Palmer [Tue, 4 May 2010 03:18:57 +0000 (22:18 -0500)]
pretty: Respect --abbrev option

Prior to this, the output of git log -1 --format=%h was always 7
characters long, without regard to whether --abbrev had been passed.

Signed-off-by: Will Palmer <wmpalmer@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoshortlog: Document and test --format option
Jonathan Nieder [Tue, 4 May 2010 02:59:55 +0000 (21:59 -0500)]
shortlog: Document and test --format option

Do not document the --pretty synonym, since it takes too long to
explain the name to people.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot4201 (shortlog): Test output format with multiple authors
Jonathan Nieder [Tue, 4 May 2010 02:58:04 +0000 (21:58 -0500)]
t4201 (shortlog): Test output format with multiple authors

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot4201 (shortlog): guard setup with test_expect_success
Jonathan Nieder [Tue, 4 May 2010 02:57:36 +0000 (21:57 -0500)]
t4201 (shortlog): guard setup with test_expect_success

Follow the current prevailing style.  This also has the benefit of
capturing any stray output and noticing if any of the setup commands
start failing.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/shortlog: scripted users should not rely on implicit HEAD
Jonathan Nieder [Tue, 4 May 2010 02:57:10 +0000 (21:57 -0500)]
Documentation/shortlog: scripted users should not rely on implicit HEAD

When passed no revision arguments, ‘git shortlog’ reads a log from
stdin if and only if stdin is not a tty.  So scripts that need to
function identically when standard input is a terminal (as when run
interactively) and not (as when run through a cron job) should either
supply a log themselves or specify the desired revisions explicitly.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: Let tests specify commands to be run at end of test
Jonathan Nieder [Sun, 2 May 2010 08:53:41 +0000 (03:53 -0500)]
test-lib: Let tests specify commands to be run at end of test

Certain actions can imply that if the test fails early, recovery from
within other tests is too much to expect:

 - creating unwritable directories, like the EACCESS test in t0001-init
 - setting unusual configuration, like user.signingkey in t7004-tag
 - crashing and leaving the index lock held, like t3600-rm once did

Some test scripts work around this by running cleanup actions outside
the supervision of the test harness, with the unfortunate consequence
that those commands are not appropriately echoed and their output not
suppressed.  Others explicitly save exit status, clean up, and then
reset the exit status within the tests, which has excellent behavior
but makes the tests hard to read.  Still others ignore the problem.

Allow tests a fourth option: by calling this function, tests can
stack up commands they would like to be run to clean up.

Commands passed to test_when_finished during a test are
unconditionally run in the test environment immediately before the
test is completed, in last-in-first-out order.  If some cleanup
command fails, then the other cleanup commands are still run before
the failure is reported and the test script allowed to continue.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.7.0' into maint
Junio C Hamano [Tue, 4 May 2010 22:20:47 +0000 (15:20 -0700)]
Merge branch 'maint-1.7.0' into maint

* maint-1.7.0:
  remove ecb parameter from xdi_diff_outf()

14 years agoremove ecb parameter from xdi_diff_outf()
René Scharfe [Tue, 4 May 2010 20:41:34 +0000 (22:41 +0200)]
remove ecb parameter from xdi_diff_outf()

xdi_diff_outf() overrides the structure members of its last parameter,
ignoring any value that callers pass in.  It's no surprise then that all
callers pass a pointer to an uninitialized structure.  They also don't
read it after the call, so the parameter is neither used for input nor
for output.   Turn it into a local variable of xdi_diff_outf().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-send-email: Add "Use gmail as the smtp server"
Ping Yin [Sat, 24 Apr 2010 07:34:02 +0000 (15:34 +0800)]
Documentation/git-send-email: Add "Use gmail as the smtp server"

Signed-off-by: Ping Yin <pkufranky@gmail.com>
Acked by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoclone: quell the progress report from init and report on clone
Junio C Hamano [Fri, 23 Apr 2010 12:37:22 +0000 (14:37 +0200)]
clone: quell the progress report from init and report on clone

Currently, a local git clone reports only initializing an empty
git dir, which is potentially confusing.

Instead, report that cloning is in progress and when it is done
(unless -q) is given, and suppress the init report.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.
Michal Sojka [Fri, 16 Apr 2010 13:53:59 +0000 (15:53 +0200)]
test-lib.sh: Add explicit license detail, with change from GPLv2 to GPLv2+.

Dear Junio,

this is a resend of relicensing patch for test suite library, which
was initially sent by Carl Worth. Since the time you sent me acks for
this patch collected by you, I collected 8 additional acks as is
documented at
https://git.wiki.kernel.org/index.php/Test-lib_reclicensing. There are
still three contributors missing: Bert Wesarg, Stephan Beyer and Bryan
Donlan. The contributions of first two are clearly not copyrightable.
I'm not sure about the copyrightability of Bryan Donlan's
contributions (git log -p --author='Bryan Donlan' t/test-lib.sh).

Carl told me that in your ack collection process you missed only three
acks. So I wonder whether you already did some analysis of which
contributions are copyrightable. If so, are the missing acks in the
list bellow?

Thanks
Michal

8<--------8<--------8<--------
This file has had no explicit license information noted in it, but
has clearly been created and modified according to the terms of GPLv2
as with the rest of the git code base.

The purpose of relicensing is to allow other GPLv3+ projects (in
particular, the notmuch project: http://notmuchmail.org) to use this
same test-suite structure and to contribute changes back as well.

Signed-off-by: Carl Worth <cworth@cworth.org>
Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
Acked-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Brandon Casey <drafnel@gmail.com>
Acked-by: Clemens Buchacher <drizzd@aon.at>
Acked-by: David Reiss <dreiss@facebook.com>
Acked-by: Emil Sit <sit@emilsit.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Acked-by: Fredrik Kuivinen <frekui@gmail.com>
Acked-by: Gerrit Pape <pape@smarden.org>
Acked-by: Christian Couder <chriscool@tuxfamily.org>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Acked-by: Johan Herland <johan@herland.net>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Josh Triplett <josh@joshtriplett.org>
Acked-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Lea Wiemann <lewiemann@gmail.com>
Acked-by: Markus Heidelberg <markus.heidelberg@web.de>
Acked-by: Martin Waitz <tali@admingilde.org>
Acked-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Acked-by: Matthias Lederhofer <matled@gmx.net>
Acked-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Michele Ballabio <barra_cuda@katamail.com>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Acked-by: Pavel Roskin <proski@gnu.org>
Acked-by: Petr Baudis <pasky@ucw.cz>
Acked-by: Pierre Habouzit <madcoder@debian.org>
Acked-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Stephen Boyd <bebarino@gmail.com>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGitweb: ignore built file
Sverre Rabbelier [Sun, 25 Apr 2010 20:17:05 +0000 (22:17 +0200)]
Gitweb: ignore built file

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sun, 2 May 2010 03:23:10 +0000 (20:23 -0700)]
Merge branch 'maint'

* maint:
  index-pack: fix trivial typo in usage string
  git-submodule.sh: properly initialize shell variables

14 years agoindex-pack: fix trivial typo in usage string
Michael J Gruber [Thu, 29 Apr 2010 15:42:47 +0000 (17:42 +0200)]
index-pack: fix trivial typo in usage string

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-submodule.sh: properly initialize shell variables
Gerrit Pape [Mon, 26 Apr 2010 09:50:39 +0000 (11:50 +0200)]
git-submodule.sh: properly initialize shell variables

git-submodule inherits variables from the environment it is started in,
expects the internal variables init= and recursive= to have an empty
value, but doesn't initialize them appropriately.  Thanks to the
selftests, this can be reproduced through

 init=1 make test
 recursive=1 make test

With this commit the variables are initialized, and the selftests
succeed even if these variables have some values in the environment.

The bug was discovered through the Debian autobuilders
 http://bugs.debian.org/569594

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoxdiff/xmerge.c: use memset() instead of explicit for-loop
Alexey Mahotkin [Wed, 28 Apr 2010 11:29:06 +0000 (15:29 +0400)]
xdiff/xmerge.c: use memset() instead of explicit for-loop

memset() is heavily optimized, and resulting assembler code
is about 150 lines less for that file.

Signed-off-by: Alexey Mahotkin <squadette@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.1 v1.7.1
Junio C Hamano [Sat, 24 Apr 2010 01:27:17 +0000 (18:27 -0700)]
Git 1.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sat, 24 Apr 2010 01:24:32 +0000 (18:24 -0700)]
Merge branch 'maint'

* maint:
  Documentation improvements for the description of short format.

14 years agoDocumentation improvements for the description of short format.
Eric Raymond [Fri, 23 Apr 2010 17:40:15 +0000 (13:40 -0400)]
Documentation improvements for the description of short format.

Incorporates the detailed explanation from Jeff King in
<20100410040959.GA11977@coredump.intra.peff.net> and fixes
the bug noted by Junio C Hamano in
<7vmxxc1i8g.fsf@alter.siamese.dyndns.org>.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.7.0.6
Junio C Hamano [Fri, 23 Apr 2010 06:05:49 +0000 (23:05 -0700)]
Sync with 1.7.0.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.0.6 v1.7.0.6
Junio C Hamano [Fri, 23 Apr 2010 05:46:24 +0000 (22:46 -0700)]
Git 1.7.0.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mg/use-default-abbrev-length-in-rev-list' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:39:26 +0000 (22:39 -0700)]
Merge branch 'mg/use-default-abbrev-length-in-rev-list' into maint

* mg/use-default-abbrev-length-in-rev-list:
  rev-list: use default abbrev length when abbrev-commit is in effect

14 years agoMerge branch 'wp/doc-filter-direction' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:29:50 +0000 (22:29 -0700)]
Merge branch 'wp/doc-filter-direction' into maint

* wp/doc-filter-direction:
  documentation: clarify direction of core.autocrlf

14 years agoMerge branch 'jk/maint-diffstat-overflow' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:29:13 +0000 (22:29 -0700)]
Merge branch 'jk/maint-diffstat-overflow' into maint

* jk/maint-diffstat-overflow:
  diff: use large integers for diffstat calculations

14 years agoMerge branch 'da/maint-python-startup' into maint
Junio C Hamano [Fri, 23 Apr 2010 05:29:07 +0000 (22:29 -0700)]
Merge branch 'da/maint-python-startup' into maint

* da/maint-python-startup:
  Makefile: Remove usage of deprecated Python "has_key" method

14 years agoMerge branch 'maint'
Junio C Hamano [Thu, 22 Apr 2010 06:54:04 +0000 (23:54 -0700)]
Merge branch 'maint'

* maint:
  Documentation/Makefile: fix interrupted builds of user-manual.xml

14 years agoDocumentation/Makefile: fix interrupted builds of user-manual.xml
Jonathan Nieder [Thu, 22 Apr 2010 01:18:21 +0000 (20:18 -0500)]
Documentation/Makefile: fix interrupted builds of user-manual.xml

Unlike gcc, asciidoc does not atomically write its output file or
delete it when interrupted.  If it is interrupted in the middle of
writing an XML file, the result will be truncated input for xsltproc.

XSLTPROC user-manual.html
user-manual.xml:998: parser error : Premature end of data in t

Take care of this case by writing to a temporary and renaming it when
finished.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agostash tests: stash can lose data in a file removed from the index
Charles Bailey [Sun, 18 Apr 2010 18:27:49 +0000 (19:27 +0100)]
stash tests: stash can lose data in a file removed from the index

If a file is removed from the index and then modified in the working
tree then stash will discard the working tree file with no way to
recover the changes.

This can might be done in one of a number of ways.

git rm file
vi file              # edit a new version
git stash

or with git mv

git mv file newfile
vi file              # make a new file with the old name
git stash

Signed-off-by: Charles Bailey <charles@hashpling.org>
14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 20 Apr 2010 05:41:30 +0000 (22:41 -0700)]
Merge branch 'maint'

* maint:
  t7012: Mark missing tests as TODO
  reflog: remove 'show' from 'expire's usage string
  MSVC: Fix build by adding missing termios.h dummy

14 years agofix "bundle --stdin" segfault
Jonathan Nieder [Mon, 19 Apr 2010 08:03:40 +0000 (03:03 -0500)]
fix "bundle --stdin" segfault

When passed an empty list, objects_array_remove_duplicates() corrupts it
by changing the number of entries from 0 to 1.

The problem lies in the condition of its main loop:

for (ref = 0; ref < array->nr - 1; ref++) {

The loop body manipulates the supplied object array.  In the case of an
empty array, it should not be doing anything at all.  But array->nr is an
unsigned quantity, so the code enters the loop, in particular increasing
array->nr.  Fix this by comparing (ref + 1 < array->nr) instead.

This bug can be triggered by git bundle --stdin:

$ echo HEAD | git bundle create some.bundle --stdin’
Segmentation fault (core dumped)

The list of commits to bundle appears to be empty because of another bug:
by the time the revision-walking machinery gets to look at it, standard
input has already been consumed by rev-list, so this function gets an
empty list of revisions.

After this patch, git bundle --stdin still does not work; it just doesn’t
segfault any more.

Reported-by: Joey Hess <joey@kitenet.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot5704 (bundle): add tests for bundle --stdin
Jonathan Nieder [Mon, 19 Apr 2010 08:03:03 +0000 (03:03 -0500)]
t5704 (bundle): add tests for bundle --stdin

As long as no rev-list arguments are supplied on the command line,
git bundle create --stdin currently segfaults.  With added rev-list
arguments, it does not segfault, but the revisions from stdin are
ignored.

Thanks to Joey Hess <joey@kitenet.net> for the report.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot7012: Mark missing tests as TODO
Michael J Gruber [Mon, 19 Apr 2010 08:14:32 +0000 (10:14 +0200)]
t7012: Mark missing tests as TODO

Currently, there are 6 tests which are not even written but are
'test_expect_failure message false'.
Do not abuse test_expect_failure as a to do marker, but mark them as
'#TODO' instead.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp.c::new_http_pack_request: do away with the temp variable filename
Tay Ray Chuan [Mon, 19 Apr 2010 14:46:43 +0000 (22:46 +0800)]
http.c::new_http_pack_request: do away with the temp variable filename

Now that the temporary variable char *filename is only used in one
place, do away with it and just call sha1_pack_name() directly.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp-fetch: Use temporary files for pack-*.idx until verified
Shawn O. Pearce [Mon, 19 Apr 2010 14:23:10 +0000 (07:23 -0700)]
http-fetch: Use temporary files for pack-*.idx until verified

Verify that a downloaded pack-*.idx file is consistent and valid
as an index file before we rename it into its final destination.
This prevents a corrupt index file from later being treated as a
usable file, confusing readers.

Check that we do not have the pack index file before invoking
fetch_pack_index(); that way, we can do without the has_pack_index()
check in fetch_pack_index().

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp-fetch: Use index-pack rather than verify-pack to check packs
Shawn O. Pearce [Mon, 19 Apr 2010 14:23:09 +0000 (07:23 -0700)]
http-fetch: Use index-pack rather than verify-pack to check packs

To ensure we don't leave a corrupt pack file positioned as though
it were a valid pack file, run index-pack on the temporary pack
before we rename it to its final name.  If index-pack crashes out
when it discovers file corruption (e.g. GitHub's error HTML at the
end of the file), simply delete the temporary files to cleanup.

By waiting until the pack has been validated before we move it
to its final name, we eliminate a race condition where another
concurrent reader might try to access the pack at the same time
that we are still trying to verify its not corrupt.

Switching from verify-pack to index-pack is a change in behavior,
but it should turn out better for users.  The index-pack algorithm
tries to minimize disk seeks, as well as the number of times any
given object is inflated, by organizing its work along delta chains.
The verify-pack logic does not attempt to do this, thrashing the
delta base cache and the filesystem cache.

By recreating the index file locally, we also can automatically
upgrade from a v1 pack table of contents to v2.  This makes the
CRC32 data available for use during later repacks, even if the
server didn't have them on hand.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAllow parse_pack_index on temporary files
Shawn O. Pearce [Mon, 19 Apr 2010 14:23:08 +0000 (07:23 -0700)]
Allow parse_pack_index on temporary files

The easiest way to verify a pack index is to open it through the
standard parse_pack_index function, permitting the header check
to happen when the file is mapped.  However, the dumb HTTP client
needs to verify a pack index before its moved into its proper file
name within the objects/pack directory, to prevent a corrupt index
from being made available.  So permit the caller to specify the
exact path of the index file.

For now we're still using the final destination name within the
sole call site in http.c, but eventually we will start to parse
the temporary path instead.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoExtract verify_pack_index for reuse from verify_pack
Shawn O. Pearce [Mon, 19 Apr 2010 14:23:07 +0000 (07:23 -0700)]
Extract verify_pack_index for reuse from verify_pack

The dumb HTTP transport should verify an index is completely valid
before trying to use it.  That requires checking the header/footer
but also checking the complete content SHA-1.  All of this logic is
already in the front half of verify_pack, so pull it out into a new
function that can be reused.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoIntroduce close_pack_index to permit replacement
Shawn O. Pearce [Mon, 19 Apr 2010 14:23:06 +0000 (07:23 -0700)]
Introduce close_pack_index to permit replacement

By closing the pack index, a caller can later overwrite the index
with an updated index file, possibly after converting from v1 to
the v2 format.  Because p->index_data is NULL after close, on the
next access the index will be opened again and the other members
will be updated with new data.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp.c: Remove unnecessary strdup of sha1_to_hex result
Shawn O. Pearce [Mon, 19 Apr 2010 14:23:05 +0000 (07:23 -0700)]
http.c: Remove unnecessary strdup of sha1_to_hex result

Most of the time the dumb HTTP transport is run without the verbose
flag set, so we only need the result of sha1_to_hex(sha1) once, to
construct the pack URL.  Don't bother with an unnecessary malloc,
copy, free chain of this buffer.

If verbose is set, we'll format the SHA-1 twice now.  But this
tiny extra CPU time spent is nothing compared to the slowdown that
is usually imposed by the verbose messages being sent to the tty,
and is entirely trivial compared to the latency involved with the
remote HTTP server sending something as big as a pack file.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoreflog: remove 'show' from 'expire's usage string
SZEDER Gábor [Mon, 19 Apr 2010 09:52:30 +0000 (11:52 +0200)]
reflog: remove 'show' from 'expire's usage string

Most of 'expire's options are not recognized by the 'show' subcommand,
hence it errors out.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Mon, 19 Apr 2010 08:28:27 +0000 (01:28 -0700)]
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
  MSVC: Fix build by adding missing termios.h dummy