Code

git.git
14 years agoMerge branch 'maint'
Junio C Hamano [Thu, 3 Sep 2009 02:52:18 +0000 (19:52 -0700)]
Merge branch 'maint'

* maint:
  git-cvsserver: no longer use deprecated 'git-subcommand' commands
  clone: disconnect transport after fetching

14 years agoMerge branch 'maint-1.6.3' into maint
Junio C Hamano [Thu, 3 Sep 2009 02:51:55 +0000 (19:51 -0700)]
Merge branch 'maint-1.6.3' into maint

* maint-1.6.3:
  git-cvsserver: no longer use deprecated 'git-subcommand' commands
  clone: disconnect transport after fetching

14 years agopush: teach --quiet to suppress "Everything up-to-date"
Jeff King [Mon, 31 Aug 2009 19:28:34 +0000 (15:28 -0400)]
push: teach --quiet to suppress "Everything up-to-date"

This should have been part of 481c7a6, whose goal was to
make "git push -q" silent unless there is an error.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.6.2' into maint-1.6.3
Junio C Hamano [Thu, 3 Sep 2009 01:45:44 +0000 (18:45 -0700)]
Merge branch 'maint-1.6.2' into maint-1.6.3

* maint-1.6.2:
  clone: disconnect transport after fetching

14 years agogit-cvsserver: no longer use deprecated 'git-subcommand' commands
Gerrit Pape [Wed, 2 Sep 2009 09:23:10 +0000 (09:23 +0000)]
git-cvsserver: no longer use deprecated 'git-subcommand' commands

git-cvsserver still references git commands like 'git-config', which
is depcrecated.  This commit changes git-cvsserver to use the
'git subcommand' form.

Sylvain Beucler reported the problem through
 http://bugs.debian.org/536067

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoclone: disconnect transport after fetching
Jeff King [Wed, 2 Sep 2009 06:36:47 +0000 (02:36 -0400)]
clone: disconnect transport after fetching

The current code just leaves the transport in whatever state
it was in after performing the fetch.  For a non-empty clone
over the git protocol, the transport code already
disconnects at the end of the fetch.

But for an empty clone, we leave the connection hanging, and
eventually close the socket when clone exits. This causes
the remote upload-pack to complain "the remote end hung up
unexpectedly". While this message is harmless to the clone
itself, it is unnecessarily scary for a user to see and may
pollute git-daemon logs.

This patch just explicitly calls disconnect after we are
done with the remote end, which sends a flush packet to
upload-pack and cleanly disconnects, avoiding the error
message.

Other transports are unaffected or slightly improved:

 - for a non-empty repo over the git protocol, the second
   disconnect is a no-op (since we are no longer connected)

 - for "walker" transports (like HTTP or FTP), we actually
   free some used memory (which previously just sat until
   the clone process exits)

 - for "rsync", disconnect is always a no-op anyway

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agostatus: list unmerged files much later
Johannes Sixt [Tue, 1 Sep 2009 20:13:53 +0000 (22:13 +0200)]
status: list unmerged files much later

When resolving a conflicted merge, two lists in the status output need
more attention from the user than other parts.

 - the list of updated paths is useful to review the amount of changes the
   merge brings in (the user cannot do much about them other than
   reviewing, though); and

 - the list of unmerged paths needs the most attention from the user; the
   user needs to resolve them in order to proceed.

Since the output of git status does not by default go through the pager,
the early parts of the output can scroll away at the top. It is better to
put the more important information near the bottom.  During a merge, local
changes that are not in the index are minimum, and you should keep the
untracked list small in any case, so moving the unmerged list from the top
of the output to immediately after the list of updated paths would give us
the optimum layout.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin-apply.c: get rid of an unnecessary use of temporary array
Junio C Hamano [Tue, 1 Sep 2009 09:18:29 +0000 (02:18 -0700)]
builtin-apply.c: get rid of an unnecessary use of temporary array

Instead of allocating a temporary array imglen[], copying contents to it
from another array img->line[], and then using imglen[], use the value
from img->line[], whose value does not change during the whole process.

This incidentally removes a use of C99 variable length array, which some
older compilers apparently are not happy with.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin-pack-objects.c: avoid vla
Junio C Hamano [Tue, 1 Sep 2009 09:18:52 +0000 (02:18 -0700)]
builtin-pack-objects.c: avoid vla

This is one of only two places that we use C99 variable length array on
the stack, which some older compilers apparently are not happy with.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoStyle fixes, add a space after if/for/while.
Brian Gianforcaro [Tue, 1 Sep 2009 05:35:10 +0000 (01:35 -0400)]
Style fixes, add a space after if/for/while.

The majority of code in core git appears to use a single
space after if/for/while. This is an attempt to bring more
code to this standard. These are entirely cosmetic changes.

Signed-off-by: Brian Gianforcaro <b.gianfo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'lt/approxidate'
Junio C Hamano [Tue, 1 Sep 2009 05:11:36 +0000 (22:11 -0700)]
Merge branch 'lt/approxidate'

* lt/approxidate:
  fix approxidate parsing of relative months and years
  tests: add date printing and parsing tests
  refactor test-date interface
  Add date formatting and parsing functions relative to a given time
  Further 'approxidate' improvements
  Improve on 'approxidate'

Conflicts:
date.c

14 years agoMerge branch 'mr/gitweb-snapshot'
Junio C Hamano [Tue, 1 Sep 2009 05:09:53 +0000 (22:09 -0700)]
Merge branch 'mr/gitweb-snapshot'

* mr/gitweb-snapshot:
  gitweb: add t9501 tests for checking HTTP status codes
  gitweb: split test suite into library and tests
  gitweb: improve snapshot error handling

14 years agoMerge branch 'tf/diff-whitespace-incomplete-line'
Junio C Hamano [Tue, 1 Sep 2009 05:08:57 +0000 (22:08 -0700)]
Merge branch 'tf/diff-whitespace-incomplete-line'

* tf/diff-whitespace-incomplete-line:
  xutils: Fix xdl_recmatch() on incomplete lines
  xutils: Fix hashing an incomplete line with whitespaces at the end

14 years agofix approxidate parsing of relative months and years
Jeff King [Mon, 31 Aug 2009 02:31:42 +0000 (22:31 -0400)]
fix approxidate parsing of relative months and years

These were broken by b5373e9. The problem is that the code
marks the month and year with "-1" for "we don't know it
yet", but the month and year code paths were not adjusted to
fill in the current time before doing their calculations
(whereas other units follow a different code path and are
fine).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests: add date printing and parsing tests
Jeff King [Mon, 31 Aug 2009 02:30:16 +0000 (22:30 -0400)]
tests: add date printing and parsing tests

Until now, there was no coverage of relative date printing
or approxidate parsing routines (mainly because we had no
way of faking the "now" time for relative date calculations,
which made consistent testing impossible).

This new script tries to exercise the basic features of
show_date and approxidate. Most of the tests are just "this
obvious thing works" to prevent future regressions, with a
few exceptions:

  - We confirm the fix in 607a9e8 that relative year/month
    dates in the latter half of a year round correctly.

  - We confirm that the improvements in b5373e9 and 1bddb25
    work.

  - A few tests are marked to expect failure, which are
    regressions recently introduced by the two commits
    above.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorefactor test-date interface
Jeff King [Mon, 31 Aug 2009 02:26:46 +0000 (22:26 -0400)]
refactor test-date interface

The test-date program goes back to the early days of git,
where it was presumably used to do manual sanity checks on
changes to the date code. However, it is not actually used
by the test suite to do any sort of automatic of systematic
tests.

This patch refactors the interface to the program to try to
make it more suitable for use by the test suite. There
should be no fallouts to changing the interface since it is
not actually installed and is not internally called by any
other programs.

The changes are:

  - add a "mode" parameter so the caller can specify which
    operation to test

  - add a mode to test relative date output from show_date

  - allow faking a fixed time via the TEST_DATE_NOW
    environment variable, which allows consistent automated
    testing

  - drop the use of ctime for showing dates in favor of our
    internal iso8601 printing routines. The ctime output is
    somewhat redundant (because of the day-of-week) which
    makes writing test cases more annoying.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd date formatting and parsing functions relative to a given time
Alex Riesen [Mon, 31 Aug 2009 02:26:05 +0000 (22:26 -0400)]
Add date formatting and parsing functions relative to a given time

The main purpose is to allow predictable testing of the code.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.6.4.2
Junio C Hamano [Sat, 29 Aug 2009 21:52:03 +0000 (14:52 -0700)]
Sync with 1.6.4.2

14 years agoGIT 1.6.4.2 v1.6.4.2
Junio C Hamano [Sat, 29 Aug 2009 21:31:01 +0000 (14:31 -0700)]
GIT 1.6.4.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUI consistency: allow --force for where -f means force
René Scharfe [Sat, 29 Aug 2009 09:05:00 +0000 (11:05 +0200)]
UI consistency: allow --force for where -f means force

git branch, checkout, clean, mv and tag all have an option -f to override
certain checks.  This patch makes them accept the long option --force as
a synonym.

While we're at it, document that checkout support --quiet as synonym for
its short option -q.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoupdate-server-info: make builtin, use parseopt
René Scharfe [Sat, 29 Aug 2009 09:04:52 +0000 (11:04 +0200)]
update-server-info: make builtin, use parseopt

Convert git update-server-info to a built-in command and use parseopt.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoRemove unused t/t8005/iso8859-5.txt
Nanako Shiraishi [Sat, 29 Aug 2009 07:49:32 +0000 (00:49 -0700)]
Remove unused t/t8005/iso8859-5.txt

This file is no longer used since 54bc13c (t8005: Nobody writes Russian in
shift_jis, 2009-06-18).

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDraft release notes to 1.6.5 before -rc0
Junio C Hamano [Sat, 29 Aug 2009 02:48:56 +0000 (19:48 -0700)]
Draft release notes to 1.6.5 before -rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mm/reset-report'
Junio C Hamano [Sat, 29 Aug 2009 02:39:26 +0000 (19:39 -0700)]
Merge branch 'mm/reset-report'

* mm/reset-report:
  reset: make the reminder output consistent with "checkout"
  Rename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.

14 years agoMerge branch 'jk/maint-1.6.3-checkout-unborn'
Junio C Hamano [Sat, 29 Aug 2009 02:39:07 +0000 (19:39 -0700)]
Merge branch 'jk/maint-1.6.3-checkout-unborn'

* jk/maint-1.6.3-checkout-unborn:
  checkout: do not imply "-f" on unborn branches

14 years agoMerge branch 'np/maint-1.6.3-deepen'
Junio C Hamano [Sat, 29 Aug 2009 02:38:56 +0000 (19:38 -0700)]
Merge branch 'np/maint-1.6.3-deepen'

* np/maint-1.6.3-deepen:
  fix simple deepening of a repo

Conflicts:
t/t5500-fetch-pack.sh

14 years agoMerge branch 'jc/shortstatus'
Junio C Hamano [Sat, 29 Aug 2009 02:38:19 +0000 (19:38 -0700)]
Merge branch 'jc/shortstatus'

* jc/shortstatus:
  git commit --dry-run -v: show diff in color when asked
  Documentation/git-commit.txt: describe --dry-run
  wt-status: collect untracked files in a separate "collect" phase
  Make git_status_config() file scope static to builtin-commit.c
  wt-status: move wt_status_colors[] into wt_status structure
  wt-status: move many global settings to wt_status structure
  commit: --dry-run
  status: show worktree status of conflicted paths separately
  wt-status.c: rework the way changes to the index and work tree are summarized
  diff-index: keep the original index intact
  diff-index: report unmerged new entries

14 years agoMerge branch 'maint'
Junio C Hamano [Sat, 29 Aug 2009 02:37:57 +0000 (19:37 -0700)]
Merge branch 'maint'

* maint:
  http.c: set slot callback members to NULL when releasing object

14 years agoMerge branch 'rc/maint-http-fix' into maint
Junio C Hamano [Sat, 29 Aug 2009 02:34:16 +0000 (19:34 -0700)]
Merge branch 'rc/maint-http-fix' into maint

* rc/maint-http-fix:
  http.c: don't assume that urls don't end with slash

14 years agohttp.c: set slot callback members to NULL when releasing object
Tay Ray Chuan [Wed, 26 Aug 2009 12:20:53 +0000 (20:20 +0800)]
http.c: set slot callback members to NULL when releasing object

Set the members callback_func and callback_data of freq->slot to NULL
when releasing a http_object_request. release_active_slot() is also
invoked on the slot to remove the curl handle associated with the slot
from the multi stack (CURLM *curlm in http.c).

These prevent the callback function and data from being used in http
methods (like http.c::finish_active_slot()) after a
http_object_request has been free'd.

Noticed by Ali Polatel, who later tested this patch to verify that it
fixes the problem he saw; Dscho helped to identify the problem spot.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/test-lib.sh: provide a shell implementation of the 'yes' utility
Brandon Casey [Fri, 28 Aug 2009 22:32:41 +0000 (17:32 -0500)]
t/test-lib.sh: provide a shell implementation of the 'yes' utility

Some platforms (IRIX 6.5, Solaris 7) do not provide the 'yes' utility.
Currently, some tests, including t7610 and t9001, try to call this program.
Due to the way the tests are structured, the tests still pass even though
this program is missing.  Rather than succeeding by chance, let's provide
an implementation of the simple 'yes' utility in shell for all platforms to
use.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Fri, 28 Aug 2009 05:01:01 +0000 (22:01 -0700)]
Merge branch 'maint'

* maint:
  Fix overridable written with an extra 'e'
  Documentation: git-archive: mark --format as optional in summary
  Round-down years in "years+months" relative date view

14 years agoMerge branch 'maint-1.6.3' into maint
Junio C Hamano [Fri, 28 Aug 2009 03:42:42 +0000 (20:42 -0700)]
Merge branch 'maint-1.6.3' into maint

* maint-1.6.3:
  Fix overridable written with an extra 'e'
  Documentation: git-archive: mark --format as optional in summary
  Round-down years in "years+months" relative date view

14 years agoMerge branch 'maint-1.6.2' into maint-1.6.3
Junio C Hamano [Fri, 28 Aug 2009 03:42:38 +0000 (20:42 -0700)]
Merge branch 'maint-1.6.2' into maint-1.6.3

* maint-1.6.2:
  Fix overridable written with an extra 'e'
  Documentation: git-archive: mark --format as optional in summary
  Round-down years in "years+months" relative date view

Conflicts:
Documentation/git-archive.txt

14 years agoFix overridable written with an extra 'e'
Nanako Shiraishi [Fri, 28 Aug 2009 03:18:49 +0000 (12:18 +0900)]
Fix overridable written with an extra 'e'

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.6.1' into maint-1.6.2
Junio C Hamano [Fri, 28 Aug 2009 03:41:37 +0000 (20:41 -0700)]
Merge branch 'maint-1.6.1' into maint-1.6.2

* maint-1.6.1:
  Documentation: git-archive: mark --format as optional in summary

14 years agoMerge branch 'maint-1.6.0' into maint-1.6.1
Junio C Hamano [Fri, 28 Aug 2009 03:41:31 +0000 (20:41 -0700)]
Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
  Documentation: git-archive: mark --format as optional in summary

14 years agoDocumentation: git-archive: mark --format as optional in summary
Wesley J. Landaker [Fri, 28 Aug 2009 02:55:43 +0000 (20:55 -0600)]
Documentation: git-archive: mark --format as optional in summary

The --format option was made optional in 8ff21b1 (git-archive: make
tar the default format, 2007-04-09), but it was not marked as optional
in the summary. This trival patch just changes the summary to match
the rest of the documentation.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.5.6' into maint-1.6.0
Junio C Hamano [Fri, 28 Aug 2009 03:03:35 +0000 (20:03 -0700)]
Merge branch 'maint-1.5.6' into maint-1.6.0

* maint-1.5.6:
  revision traversal and pack: notice and die on missing commit

14 years agoRound-down years in "years+months" relative date view
David Reiss [Thu, 27 Aug 2009 23:39:38 +0000 (16:39 -0700)]
Round-down years in "years+months" relative date view

Previously, a commit from 1 year and 7 months ago would display as
"2 years, 7 months ago".

Signed-off-by: David Reiss <dreiss@facebook.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: add t9501 tests for checking HTTP status codes
Mark Rada [Tue, 25 Aug 2009 05:03:48 +0000 (01:03 -0400)]
gitweb: add t9501 tests for checking HTTP status codes

Adds a new test file, t9501, that checks HTTP status codes and messages
from gitweb.

Currently, the only tests are for the snapshot feature.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: split test suite into library and tests
Mark Rada [Fri, 28 Aug 2009 02:07:07 +0000 (22:07 -0400)]
gitweb: split test suite into library and tests

To accommodate additions to the test cases for gitweb, the preamble
from t9500 is now in its own library so that new sets of tests for
gitweb can use the same setup without copying the code.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'lt/block-sha1'
Junio C Hamano [Fri, 28 Aug 2009 00:00:35 +0000 (17:00 -0700)]
Merge branch 'lt/block-sha1'

* lt/block-sha1:
  remove ARM and Mozilla SHA1 implementations
  block-sha1: guard gcc extensions with __GNUC__
  make sure byte swapping is optimal for git
  block-sha1: make the size member first in the context struct

14 years agoMerge branch 'as/maint-graph-interesting-fix'
Junio C Hamano [Thu, 27 Aug 2009 23:59:56 +0000 (16:59 -0700)]
Merge branch 'as/maint-graph-interesting-fix'

* as/maint-graph-interesting-fix:
  Add tests for rev-list --graph with options that simplify history
  graph API: fix bug in graph_is_interesting()

14 years agoMerge branch 'jh/submodule-foreach'
Junio C Hamano [Thu, 27 Aug 2009 23:59:25 +0000 (16:59 -0700)]
Merge branch 'jh/submodule-foreach'

* jh/submodule-foreach:
  git clone: Add --recursive to automatically checkout (nested) submodules
  t7407: Use 'rev-parse --short' rather than bash's substring expansion notation
  git submodule status: Add --recursive to recurse into nested submodules
  git submodule update: Introduce --recursive to update nested submodules
  git submodule foreach: Add --recursive to recurse into nested submodules
  git submodule foreach: test access to submodule name as '$name'
  Add selftest for 'git submodule foreach'
  git submodule: Cleanup usage string and add option parsing to cmd_foreach()
  git submodule foreach: Provide access to submodule name, as '$name'

Conflicts:
Documentation/git-submodule.txt
git-submodule.sh

14 years agoMerge branch 'jc/maint-unpack-objects-strict'
Junio C Hamano [Thu, 27 Aug 2009 23:59:08 +0000 (16:59 -0700)]
Merge branch 'jc/maint-unpack-objects-strict'

* jc/maint-unpack-objects-strict:
  Fix "unpack-objects --strict"

Conflicts:
builtin-unpack-objects.c

14 years agoMerge branch 'wl/insta-mongoose'
Junio C Hamano [Thu, 27 Aug 2009 23:57:34 +0000 (16:57 -0700)]
Merge branch 'wl/insta-mongoose'

* wl/insta-mongoose:
  Add support for the Mongoose web server.

14 years agoMerge branch 'nd/sparse' (early part)
Junio C Hamano [Thu, 27 Aug 2009 23:56:33 +0000 (16:56 -0700)]
Merge branch 'nd/sparse' (early part)

* 'nd/sparse' (early part):
  Prevent diff machinery from examining assume-unchanged entries on worktree

14 years agocommit.c: rename variable named 'n' which masks previous declaration
Brandon Casey [Thu, 27 Aug 2009 16:16:34 +0000 (11:16 -0500)]
commit.c: rename variable named 'n' which masks previous declaration

The variable named 'n' was initially declared to be of type int.  The name
'n' was reused inside inner blocks as a different type.  Rename the uses
within inner blocks to avoid confusion and give them a slightly more
descriptive name.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoabspath.c: move declaration of 'len' into inner block and use appropriate type
Brandon Casey [Thu, 27 Aug 2009 16:16:33 +0000 (11:16 -0500)]
abspath.c: move declaration of 'len' into inner block and use appropriate type

The 'len' variable was declared at the beginning of the make_absolute_path
function and also in an inner 'if' block which masked the outer declaration.
It is only used in two 'if' blocks, so remove the outer declaration and
make a new declaration inside the other 'if' block that uses 'len'.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: remove pointless conditional assignment in SunOS section
Brandon Casey [Thu, 27 Aug 2009 15:35:46 +0000 (10:35 -0500)]
Makefile: remove pointless conditional assignment in SunOS section

It is true that NEEDS_RESOLV is needed on SunOS if NO_IPV6 is set since
hstrerror() resides in libresolv, but performing this test at its current
location is not very useful.  It will only have any effect if the user
modifies the make variables from the make command line, and will have no
effect if a config.mak file is used.  A better location for this
conditional would have been further down in the Makefile after the
config.mak and config.mak.autogen had been parsed.  Rather than adding
clutter to the Makefile for a conditional that will likely never be
triggered, just remove it, and any user on SunOS that manually sets NO_IPV6
can also set NEEDS_RESOLV.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 26 Aug 2009 19:15:15 +0000 (12:15 -0700)]
Merge branch 'maint'

* maint:
  git-log: allow --decorate[=short|full]
  Minor improvement to the write-tree documentation
  git-bisect: call the found commit "*the* first bad commit"

14 years agogit-log: allow --decorate[=short|full]
Lars Hjemli [Sat, 15 Aug 2009 14:23:12 +0000 (16:23 +0200)]
git-log: allow --decorate[=short|full]

Commit de435ac0 changed the behavior of --decorate from printing the
full ref (e.g., "refs/heads/master") to a shorter, more human-readable
version (e.g., just "master"). While this is nice for human readers,
external tools using the output from "git log" may prefer the full
version.

This patch introduces an extension to --decorate to allow the caller to
specify either the short or the full versions.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMinor improvement to the write-tree documentation
David Kågedal [Wed, 26 Aug 2009 14:04:54 +0000 (16:04 +0200)]
Minor improvement to the write-tree documentation

Signed-off-by: David Kågedal <davidk@lysator.liu.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-bisect: call the found commit "*the* first bad commit"
Nanako Shiraishi [Wed, 26 Aug 2009 08:38:50 +0000 (17:38 +0900)]
git-bisect: call the found commit "*the* first bad commit"

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'js/maint-cover-letter-non-ascii' into maint
Junio C Hamano [Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)]
Merge branch 'js/maint-cover-letter-non-ascii' into maint

* js/maint-cover-letter-non-ascii:
  Correctly mark cover letters' encodings if they are not pure ASCII
  Expose the has_non_ascii() function

14 years agoMerge branch 'jc/maint-clean-nested-dir-safety' into maint
Junio C Hamano [Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)]
Merge branch 'jc/maint-clean-nested-dir-safety' into maint

* jc/maint-clean-nested-dir-safety:
  clean: require double -f options to nuke nested git repository and work tree

14 years agoMerge branch 'jk/maint-merge-msg-fix' into maint
Junio C Hamano [Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)]
Merge branch 'jk/maint-merge-msg-fix' into maint

* jk/maint-merge-msg-fix:
  merge: indicate remote tracking branches in merge message
  merge: fix incorrect merge message for ambiguous tag/branch
  add tests for merge message headings

14 years agoMerge branch 'jc/apply-epoch-patch' into maint
Junio C Hamano [Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)]
Merge branch 'jc/apply-epoch-patch' into maint

* jc/apply-epoch-patch:
  apply: notice creation/removal patches produced by GNU diff

14 years agoMerge branch 'jp/symlink-dirs' into maint
Junio C Hamano [Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)]
Merge branch 'jp/symlink-dirs' into maint

* jp/symlink-dirs:
  t6035-merge-dir-to-symlink depends on SYMLINKS prerequisite
  git-checkout: be careful about untracked symlinks
  lstat_cache: guard against full match of length of 'name' parameter
  Demonstrate bugs when a directory is replaced with a symlink

14 years agoMerge branch 'maint-1.6.3' into maint
Junio C Hamano [Wed, 26 Aug 2009 19:05:57 +0000 (12:05 -0700)]
Merge branch 'maint-1.6.3' into maint

* maint-1.6.3:
  add -p: do not attempt to coalesce mode changes
  git add -p: demonstrate failure when staging both mode and hunk

14 years agoMerge branch 'tr/maint-1.6.3-add-p-modeonly-fix' into maint-1.6.3
Junio C Hamano [Wed, 26 Aug 2009 18:22:00 +0000 (11:22 -0700)]
Merge branch 'tr/maint-1.6.3-add-p-modeonly-fix' into maint-1.6.3

* tr/maint-1.6.3-add-p-modeonly-fix:
  add -p: do not attempt to coalesce mode changes
  git add -p: demonstrate failure when staging both mode and hunk

14 years agogitweb: improve snapshot error handling
Mark Rada [Tue, 25 Aug 2009 04:59:48 +0000 (00:59 -0400)]
gitweb: improve snapshot error handling

The last check in the second block of checks in the &git_snapshot routine
is never executed because the second to last check is a superset of the
last check.

Switch the order of the last two checks. It has the advantage of giving
clients a more specific reason why they cannot get a snapshot format if
the format they have chosen is disabled.

Signed-off-by: Mark Rada <marada@uwaterloo.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'aj/fix-read-tree-from-scratch'
Junio C Hamano [Tue, 25 Aug 2009 21:48:15 +0000 (14:48 -0700)]
Merge branch 'aj/fix-read-tree-from-scratch'

* aj/fix-read-tree-from-scratch:
  read-tree: Fix regression with creation of a new index file.

14 years agoMerge branch 'jc/maint-checkout-index-to-prefix'
Junio C Hamano [Tue, 25 Aug 2009 21:47:56 +0000 (14:47 -0700)]
Merge branch 'jc/maint-checkout-index-to-prefix'

* jc/maint-checkout-index-to-prefix:
  check_path(): allow symlinked directories to checkout-index --prefix

14 years agoMerge branch 'jl/submodule-summary-diff-files'
Junio C Hamano [Tue, 25 Aug 2009 21:46:43 +0000 (14:46 -0700)]
Merge branch 'jl/submodule-summary-diff-files'

* jl/submodule-summary-diff-files:
  Documentaqtion/git-submodule.txt: Typofix
  git submodule summary: add --files option

14 years agoMerge branch 'lh/short-decorate'
Junio C Hamano [Tue, 25 Aug 2009 21:46:12 +0000 (14:46 -0700)]
Merge branch 'lh/short-decorate'

* lh/short-decorate:
  git-log: allow --decorate[=short|full]

14 years agoMerge branch 'oa/stash-na'
Junio C Hamano [Tue, 25 Aug 2009 21:46:04 +0000 (14:46 -0700)]
Merge branch 'oa/stash-na'

* oa/stash-na:
  git stash: Give friendlier errors when there is nothing to apply

14 years agoDocumentation: consistently refer to check-ref-format
Nanako Shiraishi [Sat, 22 Aug 2009 00:45:18 +0000 (09:45 +0900)]
Documentation: consistently refer to check-ref-format

Change the <name> placeholder to <tagname> in the SYNOPSIS section of
git-tag documentation, and describe it in the OPTIONS section in a way
similar to how documentation for git-branch does.

Add SEE ALSO section to list the other documentation pages these two pages
refer to.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocheckout: do not imply "-f" on unborn branches
Jeff King [Tue, 25 Aug 2009 03:03:16 +0000 (23:03 -0400)]
checkout: do not imply "-f" on unborn branches

When checkout sees that HEAD points to a non-existent ref,
it currently acts as if "-f" was given; this behavior dates
back to 5a03e7f, which enabled checkout from unborn branches
in the shell version of "git-checkout". The reasoning given
is to avoid the code path which tries to merge the tree
contents. When checkout was converted to C, this code
remained intact.

The unfortunate side effect of this strategy is that the
"force" code path will overwrite working tree and index
state that may be precious to the user. Instead of enabling
"force", this patch uses the normal "merge" codepath for an
unborn branch, but substitutes the empty tree for the "old"
commit.

This means that in the absence of an index, any files in the
working tree will be treated as untracked files, and a
checkout which would overwrite them is aborted. Similarly,
any paths in the index will be merged with an empty entry
as the base, meaning that unless the new branch's content is
identical to what's in the index, there will be a conflict
and the checkout will be aborted.

The user is then free to correct the situation or proceed
with "-f" as appropriate.

This patch also removes the "warning: you are on a branch
yet to be born" message. Its function was to warn the user
that we were enabling the "-f" option. Since we are no
longer doing that, there is no reason for the user to care
whether we are switching away from an unborn branch.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofix simple deepening of a repo
Nicolas Pitre [Mon, 24 Aug 2009 04:04:09 +0000 (00:04 -0400)]
fix simple deepening of a repo

If all refs sent by the remote repo during a fetch are reachable
locally, then no further conversation is performed with the remote. This
check is skipped when the --depth argument is provided to allow the
deepening of a shallow clone which corresponding remote repo has no
changed.

However, some additional filtering was added in commit c29727d5 to
remove those refs which are equal on both sides.  If the remote repo has
not changed, then the list of refs to give the remote process becomes
empty and simply attempting to deepen a shallow repo always fails.

Let's stop being smart in that case and simply send the whole list over
when that condition is met.  The remote will do the right thing anyways.

Test cases for this issue are also provided.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd tests for rev-list --graph with options that simplify history
Adam Simpkins [Fri, 21 Aug 2009 18:20:34 +0000 (11:20 -0700)]
Add tests for rev-list --graph with options that simplify history

These tests help make sure graph_is_interesting() is doing the right
thing.

Signed-off-by: Adam Simpkins <simpkins@facebook.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/verify-pack-stat'
Junio C Hamano [Mon, 24 Aug 2009 00:19:19 +0000 (17:19 -0700)]
Merge branch 'jc/verify-pack-stat'

* jc/verify-pack-stat:
  verify-pack --stat-only: show histogram without verifying

14 years agoMerge branch 'mr/gitweb-xz'
Junio C Hamano [Mon, 24 Aug 2009 00:19:06 +0000 (17:19 -0700)]
Merge branch 'mr/gitweb-xz'

* mr/gitweb-xz:
  gitweb: add support for XZ compressed snapshots
  gitweb: update INSTALL regarding specific snapshot settings
  gitweb: support to globally disable a snapshot format

14 years agoMerge branch 'ld/p4'
Junio C Hamano [Mon, 24 Aug 2009 00:18:52 +0000 (17:18 -0700)]
Merge branch 'ld/p4'

* ld/p4:
  git-p4: stream from perforce to speed up clones

14 years agoAdd support for the Mongoose web server.
Wilhansen Li [Fri, 21 Aug 2009 14:24:48 +0000 (22:24 +0800)]
Add support for the Mongoose web server.

Mongoose (http://code.google.com/p/mongoose/) is a lightweight web
server. It's just a single binary so it's a lot simpler to configure and
install.

Signed-off-by: Wilhansen Li <wil@nohakostudios.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: pull ref markes pull out of subject <a> element
Giuseppe Bilotta [Sun, 23 Aug 2009 08:28:09 +0000 (10:28 +0200)]
gitweb: pull ref markes pull out of subject <a> element

Since 4afbaef (gitweb: ref markers link to named shortlogs, 2008-09-02),
ref markers that accompany the subject in views such as shortlog and
history point to something different from the subject itself. Therefore,
they should not be included in the same <a> element.

Benefits of the change are:

 * better compliance to the XHTML standards, that forbid links within
   links even though the restriction cannot be imposed via DTD; this also
   benefits visualization in some older browsers;

 * when hovering the subject, only the subject itself is underlined; when
   hovering the ref markers, only the text in the hovered ref marker is
   underlined; previously, hovering any written part of the subject column
   led to complete underlying of everything at the same time, with
   unpleasing effects.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoxutils: Fix xdl_recmatch() on incomplete lines
Junio C Hamano [Sun, 23 Aug 2009 07:57:18 +0000 (00:57 -0700)]
xutils: Fix xdl_recmatch() on incomplete lines

Thell Fowler noticed that various "ignore whitespace" options to git diff
do not work well on an incomplete line.

The loop control of the function responsible for these bugs was extremely
difficult to follow.  This patch restructures the loops for three variants
of "ignore whitespace" logic.

The basic idea of the re-written logic is:

 - A loop runs while the characters from both strings we are looking at
   match.  We declare unmatch immediately when we find something that does
   not match and return false from the function.  We break out of the loop
   if we ran out of either side of the string.

   The way we skip spaces inside this loop varies depending on the style
   of ignoring whitespaces.

 - After the above loop breaks, we know that the parts of the strings we
   inspected so far match, ignoring the whitespaces.  The lines can match
   only if the remainder consists of nothing but whitespaces.  This part
   of the logic is shared across all three styles.

The new code is more obvious and should be much easier to follow.

Tested-by: Thell Fowler <git@tbfowler.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoxutils: Fix hashing an incomplete line with whitespaces at the end
Junio C Hamano [Sun, 23 Aug 2009 07:51:09 +0000 (00:51 -0700)]
xutils: Fix hashing an incomplete line with whitespaces at the end

Upon seeing a whitespace, xdl_hash_record_with_whitespace() first skipped
the run of whitespaces (excluding LF) that begins there, ensuring that the
pointer points at the last whitespace character in the run, and assumed
that the next character must be LF at the end of the line.  This does not
work when hashing an incomplete line, which lacks the LF at the end.

Introduce "at_eol" variable that is true when either we are at the end of
line (looking at LF) or at the end of an incomplete line, and use that
instead throughout the code.

Noticed by Thell Fowler.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFurther 'approxidate' improvements
Linus Torvalds [Sun, 23 Aug 2009 01:11:44 +0000 (18:11 -0700)]
Further 'approxidate' improvements

The previous patch to improve approxidate got us to the point that a lot
of the remaining annoyances were due to the 'strict' date handling running
first, and deciding that it got a good enough date that the approximate
date routines were never even invoked.

For example, using a date string like

6AM, June 7, 2009

the strict date logic would be perfectly happy with the "June 7, 2009"
part, and ignore the 6AM part that it didn't understand - resulting in the
information getting dropped on the floor:

6AM, June 7, 2009 -> Sat Jun 6 00:00:00 2009

and the date being calculated as if it was midnight, and the '6AM' having
confused the date routines into thinking about '6 June' rather than 'June
7' at 6AM (ie notice how the _day_ was wrong due to this, not just the
time).

So this makes the strict date routines a bit stricter, and requires that
not just the date, but also the time, has actually been parsed. With that
fix, and trivial extension of the approxidate routines, git now properly
parses the date as

6AM, June 7, 2009 -> Sun Jun  7 06:00:00 2009

without dropping the fuzzy time ("6AM" or "noon" or any of the other
non-strict time formats) on the floor.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoImprove on 'approxidate'
Linus Torvalds [Sat, 22 Aug 2009 22:10:07 +0000 (15:10 -0700)]
Improve on 'approxidate'

This is not a new failure mode - approxidate has always been kind of
random in the input it accepts, but some of the randomness is more
irritating than others.

For example:

Jun 6, 5AM -> Mon Jun 22 05:00:00 2009
5AM Jun 6 -> Sat Jun  6 05:00:00 2009

Whaa? The reason for the above is that approxidate squirrells away the '6'
from "Jun 6" to see if it's going to be a relative number, and then
forgets about it when it sees a new number (the '5' in '5AM'). So the odd
"June 22" date is because today is July 22nd, and if it doesn't have
another day of the month, it will just pick todays mday - having ignored
the '6' entirely due to getting all excited about seeing a new number (5).

There are other oddnesses. This does not fix them all, but I think it
makes for fewer _really_ perplexing cases. At least now we have

Jun 6, 5AM -> Sat Jun  6 05:00:00 2009
5AM, Jun 6 -> Sat Jun  6 05:00:00 2009

which makes me happier. I can still point to cases that don't work as
well, but those are separate issues.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoreset: make the reminder output consistent with "checkout"
Matthieu Moy [Fri, 21 Aug 2009 08:57:59 +0000 (10:57 +0200)]
reset: make the reminder output consistent with "checkout"

git reset without argument displays a summary of the local modification,
like this:

    $ git reset
    Makefile: locally modified

Some people have problems with this; they look like an error message.

This patch makes its output mimic how "git checkout $another_branch"
reports the paths with local modifications.  "git add --refresh --verbose"
is changed in the same way.

It also adds a header to make it clear that the output is informative,
and not an error.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
14 years agoRename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.
Matthieu Moy [Fri, 21 Aug 2009 08:57:58 +0000 (10:57 +0200)]
Rename REFRESH_SAY_CHANGED to REFRESH_IN_PORCELAIN.

The change in the output is going to become more general than just saying
"changed", so let's make the variable name more general too.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.6.4.1
Junio C Hamano [Sat, 22 Aug 2009 03:23:10 +0000 (20:23 -0700)]
Sync with 1.6.4.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGIT 1.6.4.1 v1.6.4.1
Junio C Hamano [Fri, 21 Aug 2009 19:02:25 +0000 (12:02 -0700)]
GIT 1.6.4.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'bc/maint-am-email' into maint
Junio C Hamano [Sat, 22 Aug 2009 01:51:30 +0000 (18:51 -0700)]
Merge branch 'bc/maint-am-email' into maint

* bc/maint-am-email:
  git-am: print fair error message when format detection fails
  am: allow individual e-mail files as input

14 years agocompat/snprintf.c: clarify SNPRINTF_SIZE_CORR
Junio C Hamano [Fri, 21 Aug 2009 22:13:21 +0000 (15:13 -0700)]
compat/snprintf.c: clarify SNPRINTF_SIZE_CORR

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cc/replace'
Junio C Hamano [Sat, 22 Aug 2009 01:47:53 +0000 (18:47 -0700)]
Merge branch 'cc/replace'

* cc/replace:
  t6050: check pushing something based on a replaced commit
  Documentation: add documentation for "git replace"
  Add git-replace to .gitignore
  builtin-replace: use "usage_msg_opt" to give better error messages
  parse-options: add new function "usage_msg_opt"
  builtin-replace: teach "git replace" to actually replace
  Add new "git replace" command
  environment: add global variable to disable replacement
  mktag: call "check_sha1_signature" with the replacement sha1
  replace_object: add a test case
  object: call "check_sha1_signature" with the replacement sha1
  sha1_file: add a "read_sha1_file_repl" function
  replace_object: add mechanism to replace objects found in "refs/replace/"
  refs: add a "for_each_replace_ref" function

14 years agoMerge branch 'gb/apply-ignore-whitespace'
Junio C Hamano [Sat, 22 Aug 2009 01:47:48 +0000 (18:47 -0700)]
Merge branch 'gb/apply-ignore-whitespace'

* gb/apply-ignore-whitespace:
  git apply: option to ignore whitespace differences

14 years agoMerge branch 'bc/mailsplit-cr-at-eol'
Junio C Hamano [Sat, 22 Aug 2009 01:47:44 +0000 (18:47 -0700)]
Merge branch 'bc/mailsplit-cr-at-eol'

* bc/mailsplit-cr-at-eol:
  Allow mailsplit (and hence git-am) to handle mails with CRLF line-endings
  builtin-mailsplit.c: remove read_line_with_nul() since it is no longer used
  builtin-mailinfo,builtin-mailsplit: use strbufs
  strbuf: add new function strbuf_getwholeline()

14 years agograph API: fix bug in graph_is_interesting()
Adam Simpkins [Wed, 19 Aug 2009 02:34:33 +0000 (19:34 -0700)]
graph API: fix bug in graph_is_interesting()

Previously, graph_is_interesting() did not behave quite the same way as
the code in get_revision().  As a result, it would sometimes think
commits were uninteresting, even though get_revision() would return
them.  This resulted in incorrect lines in the graph output.

This change creates a get_commit_action() function, which
graph_is_interesting() and simplify_commit() both now use to determine
if a commit will be shown.  It is identical to the old simplify_commit()
behavior, except that it never calls rewrite_parents().

This problem was reported by Santi Béjar.  The following command
would exhibit the problem before, but now works correctly:

  git log --graph --simplify-by-decoration --oneline v1.6.3.3

Previously git graph did not display the output for this command
correctly between f29ac4f and 66996ec, among other places.

Signed-off-by: Adam Simpkins <simpkins@facebook.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/maint-merge-recursive-fix' into maint
Junio C Hamano [Fri, 21 Aug 2009 18:34:24 +0000 (11:34 -0700)]
Merge branch 'jc/maint-merge-recursive-fix' into maint

* jc/maint-merge-recursive-fix:
  merge-recursive: don't segfault while handling rename clashes

14 years agoMerge branch 'zf/maint-gitweb-acname' into maint
Junio C Hamano [Fri, 21 Aug 2009 18:34:17 +0000 (11:34 -0700)]
Merge branch 'zf/maint-gitweb-acname' into maint

* zf/maint-gitweb-acname:
  gitweb: parse_commit_text encoding fix

14 years agoMerge branch 'np/maint-limit-delta-cache' into maint
Junio C Hamano [Fri, 21 Aug 2009 18:34:02 +0000 (11:34 -0700)]
Merge branch 'np/maint-limit-delta-cache' into maint

* np/maint-limit-delta-cache:
  don't let the delta cache grow unbounded in 'git repack'

14 years agoMerge branch 'jk/maint-show-tag' into maint
Junio C Hamano [Fri, 21 Aug 2009 18:33:54 +0000 (11:33 -0700)]
Merge branch 'jk/maint-show-tag' into maint

* jk/maint-show-tag:
  show: add space between multiple items
  show: suppress extra newline when showing annotated tag

14 years agoMerge branch 'sb/maint-pull-rebase' into maint
Junio C Hamano [Fri, 21 Aug 2009 18:33:08 +0000 (11:33 -0700)]
Merge branch 'sb/maint-pull-rebase' into maint

* sb/maint-pull-rebase:
  pull: support rebased upstream + fetch + pull --rebase
  t5520-pull: Test for rebased upstream + fetch + pull --rebase

14 years agoMake test number t7406- unique
Johannes Sixt [Fri, 21 Aug 2009 08:32:25 +0000 (10:32 +0200)]
Make test number t7406- unique

We skip t7407 because a patch series is cooking that uses is.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit clone: Add --recursive to automatically checkout (nested) submodules
Johan Herland [Wed, 19 Aug 2009 23:07:43 +0000 (01:07 +0200)]
git clone: Add --recursive to automatically checkout (nested) submodules

Many projects using submodules expect all submodules to be checked out
in order to build/work correctly. A common command sequence for
developers on such projects is:

git clone url/to/project
cd project
git submodule update --init (--recursive)

This patch introduces the --recursive option to git-clone. The new
option causes git-clone to recursively clone and checkout all
submodules of the cloned project. Hence, the above command sequence
can be reduced to:

git clone --recursive url/to/project

--recursive is ignored if no checkout is done by the git-clone.

The patch also includes documentation and a selftest.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot7407: Use 'rev-parse --short' rather than bash's substring expansion notation
Johan Herland [Thu, 20 Aug 2009 09:24:54 +0000 (11:24 +0200)]
t7407: Use 'rev-parse --short' rather than bash's substring expansion notation

The substring expansion notation is a bashism that we have not so far
adopted.  Use 'git rev-parse --short' instead, as this also handles
the case where the unique abbreviation is longer than 7 characters.

Also fix the typo; the object name for submodule #2 was copied from
submodule #1's by mistake.

Suggested-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-compat-util.h: remove superfluous test for __sun__
Brandon Casey [Thu, 20 Aug 2009 01:27:08 +0000 (20:27 -0500)]
git-compat-util.h: remove superfluous test for __sun__

This 'ifndef' macro is entered only when __sun__ is not defined.  This test
will never fail since it is located inside of the 'else' branch of an 'if'
macro which tests whether __sun__ is defined.  It has had no effect since
the merge at 436f66b7.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>