Code

git.git
14 years agogit fetch documentation: describe short '-p' synonym to '--prune' option
Oren Held [Tue, 13 Jul 2010 12:01:40 +0000 (15:01 +0300)]
git fetch documentation: describe short '-p' synonym to '--prune' option

It's already implemented, just undocumented.

Signed-off-by: Oren Held <orenhe@il.ibm.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoformat-patch: document the format.to configuration setting
Miklos Vajna [Mon, 12 Jul 2010 18:58:38 +0000 (20:58 +0200)]
format-patch: document the format.to configuration setting

[jc: with simplification from Jonathan Nieder]

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomingw_utime(): handle NULL times parameter
SZEDER Gábor [Mon, 12 Jul 2010 23:42:03 +0000 (01:42 +0200)]
mingw_utime(): handle NULL times parameter

POSIX sayeth:

  "If times is a null pointer, the access and modification
   times of the file shall be set to the current time."

Let's do so.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit add: Add the "--ignore-missing" option for the dry run
Jens Lehmann [Fri, 9 Jul 2010 22:18:38 +0000 (00:18 +0200)]
git add: Add the "--ignore-missing" option for the dry run

Sometimes it is useful to know if a file or directory will be ignored
before it is added to the work tree. An example is "git submodule add",
where it would be really nice to be able to fail with an appropriate
error message before the submodule is cloned and checked out.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: TAP compliance for skipping tests on request
Michael J Gruber [Mon, 12 Jul 2010 10:33:49 +0000 (12:33 +0200)]
test-lib: TAP compliance for skipping tests on request

Make the output TAP compliant for tests skipped on request (GIT_SKIP_TESTS).

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: simplify GIT_SKIP_TESTS loop
Michael J Gruber [Mon, 12 Jul 2010 10:32:18 +0000 (12:32 +0200)]
test-lib: simplify GIT_SKIP_TESTS loop

04ece59 (GIT_SKIP_TESTS: allow users to omit tests that are known to break, 2006-12-28)
introduced GIT_SKIP_TESTS, and since then we have had two nested loops
iterating over GIT_SKIP_TESTS with the same loop variable.

Reduce this to one loop.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 12 Jul 2010 06:47:29 +0000 (23:47 -0700)]
Merge branch 'maint'

* maint:
  Documentation: Spelling fix in protocol-capabilities.txt
  checkout: accord documentation to what git does
  t0005: work around strange $? in ksh when program terminated by a signal

14 years agot3000 (ls-files -o): modernize style
Jonathan Nieder [Sun, 11 Jul 2010 04:20:25 +0000 (23:20 -0500)]
t3000 (ls-files -o): modernize style

This script is part of the second batch of tests, from the same day
the test infrastructure was added to git.  Update it to use a more
modern style in the spirit of v1.6.4-rc0~45^2~2 (2009-05-22).
In particular:

 - Put setup code inside test assertions, to avoid unexpected
   breakages and avoid stray output without -v (as t/README
   recommends); and

 - Put the test title on the same line as the "test_expect_success",
   and end the line with a single-quote to begin the body of the test
   which is one multi-line string.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-gui: fix usage of themed widgets variable
Heiko Voigt [Sat, 20 Feb 2010 13:38:38 +0000 (14:38 +0100)]
git-gui: fix usage of themed widgets variable

There was one forgotten global so NS was not visible to the method
which resulted in an error.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
14 years agogit-gui: Handle failure of core.worktree to identify the working directory.
Pat Thoyts [Sat, 10 Jul 2010 22:40:59 +0000 (23:40 +0100)]
git-gui: Handle failure of core.worktree to identify the working directory.

Commit 21985a11 'git-gui: handle non-standard worktree locations' attempts
to use either GIT_WORK_TREE or core.worktree to set the _gitworktree
variable but these may not be set which leads to a failure to launch
gitk to review history. Use _gitdir to set the location for a standard
git layout where the parent of the .git directory is the working tree.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
14 years agoDocumentation: Spelling fix in protocol-capabilities.txt
Fredrik Skolmli [Sat, 10 Jul 2010 00:00:01 +0000 (02:00 +0200)]
Documentation: Spelling fix in protocol-capabilities.txt

Signed-off-by: Fredrik Skolmli <fredrik@frsk.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency
Nicolas Sebrecht [Fri, 9 Jul 2010 20:27:49 +0000 (22:27 +0200)]
merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency

Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocheckout: accord documentation to what git does
Nicolas Sebrecht [Fri, 9 Jul 2010 20:27:48 +0000 (22:27 +0200)]
checkout: accord documentation to what git does

Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot0005: work around strange $? in ksh when program terminated by a signal
Johannes Sixt [Fri, 9 Jul 2010 07:05:16 +0000 (09:05 +0200)]
t0005: work around strange $? in ksh when program terminated by a signal

ksh93 is known to report $? of programs that terminated by a signal as
256 + signal number instead of 128 + signal number like other POSIX
compliant shells (ksh's behavior is still POSIX compliant in this regard).

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: Improve robustness when D->F changes provided in wrong order
Elijah Newren [Fri, 9 Jul 2010 13:10:56 +0000 (07:10 -0600)]
fast-import: Improve robustness when D->F changes provided in wrong order

When older versions of fast-export came across a directory changing to a
symlink (or regular file), it would output the changes in the form
  M 120000 :239821 dir-changing-to-symlink
  D dir-changing-to-symlink/filename1
When fast-import sees the first line, it deletes the directory named
dir-changing-to-symlink (and any files below it) and creates a symlink in
its place.  When fast-import came across the second line, it was previously
trying to remove the file and relevant leading directories in
tree_content_remove(), and as a side effect it would delete the symlink
that was just created.  This resulted in the symlink silently missing from
the resulting repository.

To improve robustness, we ignore file deletions underneath directory names
that correspond to non-directories.  This can also be viewed as a minor
optimization: since there cannot be a file and a directory with the same
name in the same directory, the file clearly can't exist so nothing needs
to be done to delete it.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-export: Fix output order of D/F changes
Elijah Newren [Fri, 9 Jul 2010 13:10:55 +0000 (07:10 -0600)]
fast-export: Fix output order of D/F changes

The fast-import stream format requires incremental changes which take place
immediately, meaning that for D->F conversions all files below the relevant
directory must be deleted before the resulting file of the same name is
created.  Reversing the order can result in fast-import silently deleting
the file right after creating it, resulting in the file missing from the
resulting repository.

We correct this by first sorting the diff_queue_struct in depth-first
order.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge_recursive: Fix renames across paths below D/F conflicts
Elijah Newren [Fri, 9 Jul 2010 13:10:54 +0000 (07:10 -0600)]
merge_recursive: Fix renames across paths below D/F conflicts

The rename logic in process_renames() handles renames and merging of file
contents and then marks files as processed.  However, there may be higher
stage entries left in the index for other reasons (e.g., due to D/F
conflicts).  By checking for such cases and marking the entry as not
processed, it allows process_entry() later to look at it and handle those
higher stages.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-recursive: Fix D/F conflicts
Elijah Newren [Fri, 9 Jul 2010 13:10:53 +0000 (07:10 -0600)]
merge-recursive: Fix D/F conflicts

The D/F conflicts that can be automatically resolved (file or directory
unmodified on one side of history), have the nice property that
process_entry() can correctly handle all subpaths of the D/F conflict.  In
the case of D->F conversions, it will correctly delete all non-conflicting
files below the relevant directory and the directory itself (note that both
untracked and conflicting files below the directory will prevent its
removal).  So if we handle D/F conflicts after all other conflicts, they
become fairly simple to handle -- we just need to check for whether or not
a path (file/directory) is in the way of creating the new content.  We do
this by having process_entry() defer handling such entries to a subsequent
process_df_entry() step.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd a rename + D/F conflict testcase
Alexander Gladysh [Fri, 9 Jul 2010 13:10:52 +0000 (07:10 -0600)]
Add a rename + D/F conflict testcase

This is a simple testcase where both sides of the rename are paths involved
in (separate) D/F merge conflicts

Signed-off-by: Alexander Gladysh <agladysh@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd additional testcases for D/F conflicts
Elijah Newren [Fri, 9 Jul 2010 13:10:51 +0000 (07:10 -0600)]
Add additional testcases for D/F conflicts

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge remote branch 'ko/master' into jc/read-tree-cache-tree-fix
Junio C Hamano [Fri, 9 Jul 2010 01:55:50 +0000 (18:55 -0700)]
Merge remote branch 'ko/master' into jc/read-tree-cache-tree-fix

* ko/master: (2325 commits)
  Git 1.7.2-rc2
  backmerge a few more fixes to 1.7.1.X series
  fix git branch -m in presence of cross devices
  t/t0006: specify timezone as EST5 not EST to comply with POSIX
  add missing && to submodule-merge testcase
  t/README: document more test helpers
  test-date: fix sscanf type conversion
  xdiff: optimise for no whitespace difference when ignoring whitespace.
  gitweb: Move evaluate_gitweb_config out of run_request
  parse_date: fix signedness in timezone calculation
  t0006: test timezone parsing
  rerere.txt: Document forget subcommand
  t/README: proposed rewording...
  t/README: Document the do's and don'ts of tests
  t/README: Add a section about skipping tests
  t/README: Document test_expect_code
  t/README: Document test_external*
  t/README: Document the prereq functions, and 3-arg test_*
  t/README: Typo: paralell -> parallel
  t/README: The trash is in 't/trash directory.$name'
  ...

Conflicts:
builtin-read-tree.c

14 years agodiff.c: fix a graph output bug
Bo Yang [Thu, 8 Jul 2010 15:12:34 +0000 (23:12 +0800)]
diff.c: fix a graph output bug

When --graph is in effect, the line-prefix typically has colored graph
line segments and ends with reset.  The color sequence "set" given to
this function is for showing the metainfo part of the patch text and
(1) it should not be applied to the graph lines, and (2) it will be
reset at the end of line_prefix so it won't be in effect anyway.

Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests: Use skip_all=* to skip tests
Ævar Arnfjörð Bjarmason [Thu, 8 Jul 2010 01:16:06 +0000 (01:16 +0000)]
tests: Use skip_all=* to skip tests

Change tests to skip with skip_all=* + test_done instead of using say
+ test_done.

This is a follow-up to "tests: Skip tests in a way that makes sense
under TAP" (fadb5156e4). I missed these cases when prepearing that
patch, hopefully this is all of them.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix "read-tree -m A B" priming the cache-tree
Junio C Hamano [Fri, 9 Jul 2010 00:27:43 +0000 (17:27 -0700)]
Fix "read-tree -m A B" priming the cache-tree

In 456156d a shortcut to priming the index tree reference was
introduced, but the justification for it was completely bogus.

"read-tree -m A B" is to take the index (and the working tree)
that is largely based on (but does not have to match exactly) A
and update it to B, while carrying the local change that does
not overlap the difference between A and B, so there is no reason
to expect that the resulting index should match the tree B.

Noticed and test provided by Heiko Voigt.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoReorganize `git-log' man page to clarify common diff options.
Eli Barzilay [Thu, 8 Jul 2010 02:14:31 +0000 (22:14 -0400)]
Reorganize `git-log' man page to clarify common diff options.

This will reduce considerably the common confusion where people miss the
`--follow' option, and wonder why `-M'/`-C' is not working.

* Move the diff options include to after the log-specific flags, and add
  a "Common diff options" subtitle before them.  (These options apply
  only when patches are shown, which is not a common use case among
  newbies, so having them first is confusing.)

* Move the `--follow' description to the top of the listed options.  The
  options before that seem less important: `--full-diff' applies only
  when patches are shown, `--source' and `--decorate' are less useful
  with many common commit specifications.

* Clarify that `--follow' works only for a single path argument.

Signed-off-by: Eli Barzilay <eli@barzilay.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot9118 (git-svn): prevent early failure from taking down later tests
Jonathan Nieder [Thu, 8 Jul 2010 13:36:02 +0000 (08:36 -0500)]
t9118 (git-svn): prevent early failure from taking down later tests

When test #2 fails, the cwd is project/, causing all the
remaining tests in the same script to get confused and fail.

So in the spirit of v1.7.1.1~53^2~10 (t5550-http-fetch: Use subshell
for repository operations, 2010-04-17), use a subshell for svn
working copy operations.  This way, the cwd will reliably return
to the top of the trash directory and later tests can still be run
when a command has failed.

Reported-by: A Large Angry SCM <gitzilla@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agot9118: avoid PEG revision identifier in tests
Michael J Gruber [Thu, 8 Jul 2010 19:16:35 +0000 (21:16 +0200)]
t9118: avoid PEG revision identifier in tests

@ is SVN's identifier for PEG revisions. But SVN's treatment of PEG
identifiers in copy target URLs changed in r954995/r952973, i.e. between
1.6.11 and 1.6.12. They get eaten now (which is considered the right
way).

Therefore, avoid the @ in the tests with funky branch names.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agogrep -O: Do not pass color sequences as filenames to pager
Nazri Ramliy [Sat, 3 Jul 2010 02:55:06 +0000 (21:55 -0500)]
grep -O: Do not pass color sequences as filenames to pager

With a .gitconfig like this:

 [color]
ui = auto
 [color "grep"]
filename = magenta

if stdout is a terminal, the grep machinery will output the color
sequence \e[36m before each filename in its output.

In the case of "git grep -O foo", output is argv for the pager.
Disable color when calling the grep machinery in this case.

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.2-rc2 v1.7.2-rc2
Junio C Hamano [Wed, 7 Jul 2010 18:19:42 +0000 (11:19 -0700)]
Git 1.7.2-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'ab/tap'
Junio C Hamano [Wed, 7 Jul 2010 18:18:44 +0000 (11:18 -0700)]
Merge branch 'ab/tap'

* ab/tap:
  t/README: document more test helpers
  t/README: proposed rewording...
  t/README: Document the do's and don'ts of tests
  t/README: Add a section about skipping tests
  t/README: Document test_expect_code
  t/README: Document test_external*
  t/README: Document the prereq functions, and 3-arg test_*
  t/README: Typo: paralell -> parallel
  t/README: The trash is in 't/trash directory.$name'
  t/t9700/test.pl: don't access private object members, use public access methods
  t9700: Use Test::More->builder, not $Test::Builder::Test
  tests: Say "pass" rather than "ok" on empty lines for TAP
  tests: Skip tests in a way that makes sense under TAP
  test-lib: output a newline before "ok" under a TAP harness
  test-lib: Make the test_external_* functions TAP-aware
  test-lib: Adjust output to be valid TAP format

14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 7 Jul 2010 18:18:26 +0000 (11:18 -0700)]
Merge branch 'maint'

* maint:
  backmerge a few more fixes to 1.7.1.X series
  rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option
  fix git branch -m in presence of cross devices

Conflicts:
RelNotes
builtin/rev-parse.c

14 years agobackmerge a few more fixes to 1.7.1.X series
Junio C Hamano [Wed, 7 Jul 2010 17:36:19 +0000 (10:36 -0700)]
backmerge a few more fixes to 1.7.1.X series

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.6.4' into maint
Junio C Hamano [Wed, 7 Jul 2010 18:13:40 +0000 (11:13 -0700)]
Merge branch 'maint-1.6.4' into maint

* maint-1.6.4:
  rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option

14 years agorev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option
Uwe Kleine-König [Tue, 6 Jul 2010 14:46:05 +0000 (16:46 +0200)]
rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option

The ?: operator has a lower priority than |, so the implicit associativity
made the 6th argument of parse_options be PARSE_OPT_KEEP_DASHDASH if
keep_dashdash was true discarding PARSE_OPT_STOP_AT_NON_OPTION and
PARSE_OPT_SHELL_EVAL.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mg/doc-rev-parse-treepath-syntax' into maint
Junio C Hamano [Wed, 7 Jul 2010 17:34:04 +0000 (10:34 -0700)]
Merge branch 'mg/doc-rev-parse-treepath-syntax' into maint

* mg/doc-rev-parse-treepath-syntax:
  git-rev-parse.txt: Add more examples for caret and colon
  git-rev-parse.txt: Document ":path" specifier

14 years agoMerge branch 'tr/receive-pack-aliased-update-fix' into maint
Junio C Hamano [Wed, 7 Jul 2010 17:25:15 +0000 (10:25 -0700)]
Merge branch 'tr/receive-pack-aliased-update-fix' into maint

* tr/receive-pack-aliased-update-fix:
  check_aliased_update: strcpy() instead of strcat() to copy
  receive-pack: detect aliased updates which can occur with symrefs
  receive-pack: switch global variable 'commands' to a parameter

Conflicts:
t/t5516-fetch-push.sh

14 years agoImplement automatic fast-forward merge for submodules
Heiko Voigt [Wed, 7 Jul 2010 13:39:13 +0000 (15:39 +0200)]
Implement automatic fast-forward merge for submodules

This implements a simple merge strategy for submodule hashes. We check
whether one side of the merge candidates is already contained in the
other and then merge automatically.

If both sides contain changes we search for a merge in the submodule.
In case a single one exists we check that out and suggest it as the
merge resolution. A list of candidates is returned when we find multiple
merges that contain both sides of the changes.

This is useful for a workflow in which the developers can publish topic
branches in submodules and a separate maintainer merges them. In case
the developers always wait until their branch gets merged before tracking
them in the superproject all merges of branches that contain submodule
changes will be resolved automatically. If developers choose to track
their feature branch the maintainer might get a conflict but git will
search the submodule for a merge and suggest it/them as a resolution.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosetup_revisions(): Allow walking history in a submodule
Heiko Voigt [Wed, 7 Jul 2010 13:39:12 +0000 (15:39 +0200)]
setup_revisions(): Allow walking history in a submodule

By passing the path to a submodule in opt->submodule, the function can
be used to walk history in the named submodule repository, instead of
the toplevel repository.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoTeach ref iteration module about submodules
Heiko Voigt [Wed, 7 Jul 2010 13:39:11 +0000 (15:39 +0200)]
Teach ref iteration module about submodules

We will use this in a later patch to extend setup_revisions() to
load revisions directly from a submodule.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofix git branch -m in presence of cross devices
Pierre Habouzit [Wed, 7 Jul 2010 07:47:20 +0000 (09:47 +0200)]
fix git branch -m in presence of cross devices

When you have for example a bare repository stored on NFS, and that you
create new workdirs locally (using contrib's git-new-workdir), logs/refs
is a symlink to a different device. Hence when the reflogs are renamed,
all must happen below logs/refs or one gets cross device rename errors
like:

  git branch -m foo
  error: unable to move logfile logs/refs/heads/master to tmp-renamed-log: Invalid cross-device link
  fatal: Branch rename failed

The fix is hence to use logs/refs/.tmp-renamed-log as a temporary log
name, instead of just tmp-renamed-log.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t0006: specify timezone as EST5 not EST to comply with POSIX
Brandon Casey [Tue, 6 Jul 2010 23:34:20 +0000 (18:34 -0500)]
t/t0006: specify timezone as EST5 not EST to comply with POSIX

POSIX requires that both the timezone "standard" and "offset" be specified
in the TZ environment variable.  This causes a problem on IRIX which does
not understand the timezone 'EST'.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopack-refs: remove newly empty directories
Greg Price [Tue, 6 Jul 2010 23:29:19 +0000 (19:29 -0400)]
pack-refs: remove newly empty directories

In a large repository which uses directories to organize many refs,
"git pack-refs --all --prune" does not improve performance so much
as it should, unless we remove all the now-empty directories as well.

Signed-off-by: Greg Price <price@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodo not write out index when status does not have to
Junio C Hamano [Wed, 7 Jul 2010 04:53:11 +0000 (21:53 -0700)]
do not write out index when status does not have to

Some codepaths, such as "git status" and "git commit --dry-run",
tried to opportunisticly refresh the index and write the result
out.  But they did so without checking if there was actually any
change that needs to be written out.

Noticed by Jeff King and Daniel at Rutgers.edu

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 7 Jul 2010 04:29:21 +0000 (21:29 -0700)]
Merge branch 'maint'

* maint:
  add missing && to submodule-merge testcase
  test-date: fix sscanf type conversion

14 years agoadd missing && to submodule-merge testcase
Heiko Voigt [Tue, 6 Jul 2010 19:34:31 +0000 (21:34 +0200)]
add missing && to submodule-merge testcase

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: document more test helpers
Jonathan Nieder [Tue, 6 Jul 2010 20:04:10 +0000 (15:04 -0500)]
t/README: document more test helpers

There is no documentation in t/README for test_must_fail,
test_might_fail, test_cmp, or test_when_finished.

Reported-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: work around ksh's failure to handle missing list argument to for loop
Brandon Casey [Tue, 6 Jul 2010 21:56:51 +0000 (14:56 -0700)]
Makefile: work around ksh's failure to handle missing list argument to for loop

ksh does not like it when the list argument is missing in a 'for' loop.
This can happen when NO_CURL is set which causes REMOTE_CURL_ALIASES to be
unset.  In this case, the 'for' loop in the Makefile is expanded to look
like this:

   for p in ; do

and ksh complains like this:

   /bin/ksh: syntax error at line 15 : `;' unexpected

The existing attempt to work around this issue, introduced by 70b89f87,
tried to protect the 'for' loop by first testing whether REMOTE_CURL_ALIASES
was empty, but this does not work since, as Johannes Sixt explains, "Before
the test for emptyness can happen, the complete statement must be parsed,
but ksh finds a syntax error in the statement and, therefore, cannot even
begin to execute the statement. (ksh doesn't follow POSIX in this regard,
where this would not be a syntax error.)".

Make's $(foreach) function could be used to avoid this shell glitch, but
since it has already caused a problem once before by generating a command
line that exceeded the maximum argument list length on IRIX, let's adopt
Bruce Stephens's suggestion for working around this issue in the same way
the OpenSSL folks have done it.  This solution first assigns the contents
of the REMOTE_CURL_ALIASES make variable to a shell variable and then
supplies the shell variable as the list argument in the 'for' loop.  This
satisfies ksh and has the expected behavior even if $(REMOTE_CURL_ALIASES)
is empty.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-date: fix sscanf type conversion
Jeff King [Tue, 6 Jul 2010 07:54:33 +0000 (03:54 -0400)]
test-date: fix sscanf type conversion

Reading into a time_t isn't portable, since we don't know
the exact type. Instead, use an unsigned long, which is what
show_date wants, anyway.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 6 Jul 2010 06:33:07 +0000 (23:33 -0700)]
Merge branch 'maint'

* maint:
  xdiff: optimise for no whitespace difference when ignoring whitespace.

14 years agoxdiff: optimise for no whitespace difference when ignoring whitespace.
Dylan Reid [Tue, 6 Jul 2010 03:11:17 +0000 (23:11 -0400)]
xdiff: optimise for no whitespace difference when ignoring whitespace.

In xdl_recmatch, do the memcmp to check if the two lines are equal before
checking if whitespace flags are set.  If the lines are identical, then
there is no need to check if they differ only in whitespace.
This makes the common case (there is no whitespace difference) faster.
It costs the case where lines are the same length and contain
whitespace differences, but the common case is more than 20% faster.

Signed-off-by: Dylan Reid <dgreid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorebase-i: do not get fooled by a log message ending with backslash
Junio C Hamano [Tue, 6 Jul 2010 06:08:36 +0000 (23:08 -0700)]
rebase-i: do not get fooled by a log message ending with backslash

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorebase-i: style fix
Junio C Hamano [Tue, 6 Jul 2010 05:16:15 +0000 (22:16 -0700)]
rebase-i: style fix

Case arms should align with "case" and "esac".

Do not cat a file into a pipeline; just make the downstream command
read from the file.

Having a while statement as a downstream of a pipe is fine, but
the loop should begin on its own line.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: link to gitrevisions rather than git-rev-parse
Michael J Gruber [Mon, 5 Jul 2010 16:11:41 +0000 (18:11 +0200)]
Documentation: link to gitrevisions rather than git-rev-parse

Currently, whenever we need documentation for revisions and ranges, we
link to the git-rev-parse man page, i.e. a plumbing man page, which has
this along with the documentation of all rev-parse modes.

Link to the new gitrevisions man page instead in all cases except
- when the actual git-rev-parse command is referred to or
- in very technical context (git-send-pack).

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: gitrevisions
Michael J Gruber [Mon, 5 Jul 2010 16:11:40 +0000 (18:11 +0200)]
Documentation: gitrevisions

Create a new man page gitrevisions(7) which contains the revsions and
ranges documentation but not more. This uses (per include) the same bits
as the pertaining section of git-rev-parse(1).

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: split off rev doc into include file
Michael J Gruber [Mon, 5 Jul 2010 16:11:39 +0000 (18:11 +0200)]
Documentation: split off rev doc into include file

Currently, the documentation for revisions and ranges sits in the
git-rev-parse man page, i.e. a plumbing man page, along with the
documentation of all rev-parse modes.

Split off the revisions and ranges section into an included file to
prepare for restructuring.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: Move evaluate_gitweb_config out of run_request
Jakub Narebski [Mon, 5 Jul 2010 18:52:43 +0000 (20:52 +0200)]
gitweb: Move evaluate_gitweb_config out of run_request

Move evaluate_gitweb_config() and evaluate_git_version() out of
run_request() to run(), making them not run one for each request.
This changes how git behaves in FastCGI case.

This change makes it impossible to have config which changes with
request, but I don't think anyone relied on such (hidden action)
behavior.

While at it, reset timer and number of git commands at beginning of
run_request() in new reset_timer() subroutine.  This fixes case when
gitweb was run using FastCGI interface: time is reported for request,
and not for single run of gitweb script.  This changes slightly
behavior in non-FastCGI case: the number of git commands reported is
1 less (running `git --version` one per gitweb is not counted now).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoTeach fast-import to import subtrees named by tree id
Jonathan Nieder [Thu, 1 Jul 2010 03:18:19 +0000 (22:18 -0500)]
Teach fast-import to import subtrees named by tree id

To simulate the svn cp command, it would be very useful to be
replace an arbitrary file in the current revision by an
arbitrary directory from a previous one.  Modify the filemodify
command to allow that:

 M 040000 <tree id> pathname

This would be most useful in combination with a facility to
print the commit ids for new revisions as they are written.

Cc: Shawn O. Pearce <spearce@spearce.org>
Cc: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoparse_date: fix signedness in timezone calculation
Jeff King [Sun, 4 Jul 2010 11:00:17 +0000 (07:00 -0400)]
parse_date: fix signedness in timezone calculation

When no timezone is specified, we deduce the offset by
subtracting the result of mktime from our calculated
timestamp.

However, our timestamp is stored as an unsigned integer,
meaning we perform the subtraction as unsigned. For a
negative offset, this means we wrap to a very high number,
and our numeric timezone is in the millions of hours. You
can see this bug by doing:

   $ TZ=EST \
     GIT_AUTHOR_DATE='2010-06-01 10:00' \
     git commit -a -m foo
   $ git cat-file -p HEAD | grep author
   author Jeff King <peff@peff.net> 1275404416 +119304128

Instead, we should perform this subtraction as a time_t, the
same type that mktime returns.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 5 Jul 2010 18:56:53 +0000 (11:56 -0700)]
Merge branch 'maint'

* maint:
  t0006: test timezone parsing
  rerere.txt: Document forget subcommand
  Documentation/git-gc.txt: add reference to githooks

14 years agot0006: test timezone parsing
Jeff King [Sun, 4 Jul 2010 10:48:35 +0000 (06:48 -0400)]
t0006: test timezone parsing

Previously, test-date simply ignored the parsed timezone and
told show_date() to use UTC. Instead, let's print out what
we actually parsed.

While we're at it, let's make it easy for tests to work in a specific
timezone.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit submodule: add submodules with git add -f <path>
Ævar Arnfjörð Bjarmason [Mon, 5 Jul 2010 17:33:03 +0000 (17:33 +0000)]
git submodule: add submodules with git add -f <path>

Change `git submodule add' to add the new submodule <path> with `git
add --force'.

I keep my /etc in .git with a .gitignore that contains just
"*". I.e. `git status' will ignore everything that isn't in the tree
already. When I do:

    git submodule add <url> hlagh

git-submodule will get as far as checking out the remote repository
into hlagh, but it'll die right afterwards when it fails to add the
new path:

    The following paths are ignored by one of your .gitignore files:
    hlagh
    Use -f if you really want to add them.
    fatal: no files added
    Failed to add submodule 'hlagh'

Currently there's no way to add a submodule in this situation other
than to remove the ignored path from the .gitignore while I'm at it.

That's silly, when you run `git submodule add' you're explicitly
saying that you want to add something *new* to the repository. Instead
it should just add the path with `git add --force'.

Initially I implemented this by adding new -f and --force options to
`git submodule add'. But if the --force option isn't supplied it'll
get as far as cloning `hlagh', but won't add it.

So the first thing the user has to do is to remove `hlagh' and then
try again with the --force option.

That sucks, it should just add the path to begin with. I can't think
of any usecase where you've gone through the trouble of typing out
`git submodule add ..', but wish to be overriden by a `gitignore'. The
submodule semantics should be more like `git init', not `git add'.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorerere.txt: Document forget subcommand
Michael J Gruber [Mon, 5 Jul 2010 13:15:20 +0000 (15:15 +0200)]
rerere.txt: Document forget subcommand

dea4562 (rerere forget path: forget recorded resolution, 2009-12-25)
introduced the forget subcommand for rerere.

Document it.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agostring_list: Add STRING_LIST_INIT macro and make use of it.
Thiago Farina [Sun, 4 Jul 2010 19:46:19 +0000 (16:46 -0300)]
string_list: Add STRING_LIST_INIT macro and make use of it.

Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoConvert the users of for_each_string_list to for_each_string_list_item macro
Alex Riesen [Sat, 3 Jul 2010 12:41:54 +0000 (14:41 +0200)]
Convert the users of for_each_string_list to for_each_string_list_item macro

The rule for selecting the candidates for conversion is: if the callback
function returns only 0 (the condition for for_each_string_list to exit
early), than it can be safely converted to the macro.

A notable exception are the callers in builtin/remote.c. If converted, the
readability in the file will suffer greately. Besides, the code is not very
performance critical (at the moment, at least): it does output formatting of
the list of remotes.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd a for_each_string_list_item macro
Alex Riesen [Sat, 3 Jul 2010 12:40:04 +0000 (14:40 +0200)]
Add a for_each_string_list_item macro

This is more lightweight than a call to for_each_string_list function with
callback function and a cookie argument.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: proposed rewording...
Junio C Hamano [Mon, 5 Jul 2010 18:37:30 +0000 (11:37 -0700)]
t/README: proposed rewording...

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document the do's and don'ts of tests
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:49 +0000 (14:59 +0000)]
t/README: Document the do's and don'ts of tests

Add a "Do's, don'ts & things to keep in mind" subsection to the
"Writing Tests" documentation. Much of this is based on Junio C
Hamano's "Test your stuff" section in
<7vhbkj2kcr.fsf@alter.siamese.dyndns.org>.

I turned it into a list of do's and don'ts to make it easier to skim
it, and integrated my note that a TAP harness will get confused if you
print "ok" or "not ok" at the beginning of a line.

Thad had to be fixed in 335f87871fe5aa6b3fd55b2b4e80f16fe9681483 when
TAP support was introduced.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Add a section about skipping tests
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:48 +0000 (14:59 +0000)]
t/README: Add a section about skipping tests

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document test_expect_code
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:47 +0000 (14:59 +0000)]
t/README: Document test_expect_code

test_expect_code (which was introduced in d3bfdb75) never had any
documentation.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document test_external*
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:46 +0000 (14:59 +0000)]
t/README: Document test_external*

There was do documentation for the test_external_without_stderr and
test_external functions.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Document the prereq functions, and 3-arg test_*
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:45 +0000 (14:59 +0000)]
t/README: Document the prereq functions, and 3-arg test_*

There was no documentation for the test_set_prereq and
test_have_prereq functions, or the three-arg form of
test_expect_success and test_expect_failure.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: Typo: paralell -> parallel
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:44 +0000 (14:59 +0000)]
t/README: Typo: paralell -> parallel

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/README: The trash is in 't/trash directory.$name'
Ævar Arnfjörð Bjarmason [Fri, 2 Jul 2010 14:59:43 +0000 (14:59 +0000)]
t/README: The trash is in 't/trash directory.$name'

There's a unique trash directory for each test, not a single directory
as the previous documentation suggested.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: remove some unnecessary curly braces
Brandon Casey [Fri, 2 Jul 2010 18:50:28 +0000 (11:50 -0700)]
Makefile: remove some unnecessary curly braces

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDon't expand CRLFs when normalizing text during merge
Eyvind Bernhardsen [Fri, 2 Jul 2010 19:20:49 +0000 (21:20 +0200)]
Don't expand CRLFs when normalizing text during merge

Disable CRLF expansion when convert_to_working_tree() is called from
normalize_buffer().  This improves performance when merging branches
with conflicting line endings when core.eol=crlf or core.autocrlf=true
by making the normalization act as if core.eol=lf.

Signed-off-by: Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoTry normalizing files to avoid delete/modify conflicts when merging
Eyvind Bernhardsen [Fri, 2 Jul 2010 19:20:48 +0000 (21:20 +0200)]
Try normalizing files to avoid delete/modify conflicts when merging

If a file is modified due to normalization on one branch, and deleted on
another, a merge of the two branches will result in a delete/modify
conflict for that file even if it is otherwise unchanged.

Try to avoid the conflict by normalizing and comparing the "base" file
and the modified file when their sha1s differ.  If they compare equal,
the file is considered unmodified and is deleted.

Signed-off-by: Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAvoid conflicts when merging branches with mixed normalization
Eyvind Bernhardsen [Fri, 2 Jul 2010 19:20:47 +0000 (21:20 +0200)]
Avoid conflicts when merging branches with mixed normalization

Currently, merging across changes in line ending normalization is
painful since files containing CRLF will conflict with normalized files,
even if the only difference between the two versions is the line
endings.  Additionally, any "real" merge conflicts that exist are
obscured because every line in the file has a conflict.

Assume you start out with a repo that has a lot of text files with CRLF
checked in (A):

      o---C
     /     \
    A---B---D

B: Add "* text=auto" to .gitattributes and normalize all files to
   LF-only

C: Modify some of the text files

D: Try to merge C

You will get a ridiculous number of LF/CRLF conflicts when trying to
merge C into D, since the repository contents for C are "wrong" wrt the
new .gitattributes file.

Fix ll-merge so that the "base", "theirs" and "ours" stages are passed
through convert_to_worktree() and convert_to_git() before a three-way
merge.  This ensures that all three stages are normalized in the same
way, removing from consideration differences that are only due to
normalization.

This feature is optional for now since it changes a low-level mechanism
and is not necessary for the majority of users.  The "merge.renormalize"
config variable enables it.

Signed-off-by: Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-gc.txt: add reference to githooks
Chris Packham [Wed, 30 Jun 2010 20:41:27 +0000 (13:41 -0700)]
Documentation/git-gc.txt: add reference to githooks

This advertises the existence of the 'pre-auto-gc' hook and adds a cross
reference to where the hook is documented.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdates from the list to 1.7.2 Release Notes
Junio C Hamano [Fri, 2 Jul 2010 17:29:07 +0000 (10:29 -0700)]
Updates from the list to 1.7.2 Release Notes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.2-rc1 v1.7.2-rc1
Junio C Hamano [Wed, 30 Jun 2010 19:22:13 +0000 (12:22 -0700)]
Git 1.7.2-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit.spec.in: Add gitweb subpackage
Junio C Hamano [Wed, 30 Jun 2010 22:49:07 +0000 (15:49 -0700)]
git.spec.in: Add gitweb subpackage

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'ar/decorate-color'
Junio C Hamano [Wed, 30 Jun 2010 18:55:40 +0000 (11:55 -0700)]
Merge branch 'ar/decorate-color'

* ar/decorate-color:
  Add test for correct coloring of git log --decoration
  Allow customizable commit decorations colors
  log --decorate: Colorize commit decorations
  log-tree.c: Use struct name_decoration's type for classifying decoration
  commit.h: add 'type' to struct name_decoration

14 years agoMerge branch 'mg/doc-rev-parse-treepath-syntax'
Junio C Hamano [Wed, 30 Jun 2010 18:55:40 +0000 (11:55 -0700)]
Merge branch 'mg/doc-rev-parse-treepath-syntax'

* mg/doc-rev-parse-treepath-syntax:
  git-rev-parse.txt: Add more examples for caret and colon
  git-rev-parse.txt: Document ":path" specifier

14 years agoMerge branch 'cc/cherry-pick-stdin'
Junio C Hamano [Wed, 30 Jun 2010 18:55:39 +0000 (11:55 -0700)]
Merge branch 'cc/cherry-pick-stdin'

* cc/cherry-pick-stdin:
  revert: do not rebuild argv on heap
  revert: accept arbitrary rev-list options
  t3508 (cherry-pick): futureproof against unmerged files

14 years agoMerge branch 'jl/status-ignore-submodules'
Junio C Hamano [Wed, 30 Jun 2010 18:55:39 +0000 (11:55 -0700)]
Merge branch 'jl/status-ignore-submodules'

* jl/status-ignore-submodules:
  Add the option "--ignore-submodules" to "git status"
  git submodule: ignore dirty submodules for summary and status

Conflicts:
builtin/commit.c
t/t7508-status.sh
wt-status.c
wt-status.h

14 years agoMerge branch 'jk/url-decode'
Junio C Hamano [Wed, 30 Jun 2010 18:55:38 +0000 (11:55 -0700)]
Merge branch 'jk/url-decode'

* jk/url-decode:
  url_decode: URL scheme ends with a colon and does not require a slash

14 years agoMerge branch 'jn/grep-open'
Junio C Hamano [Wed, 30 Jun 2010 18:55:38 +0000 (11:55 -0700)]
Merge branch 'jn/grep-open'

* jn/grep-open:
  t/t7811-grep-open.sh: remove broken/redundant creation of fake "less" script
  t/t7811-grep-open.sh: ensure fake "less" is made executable
  t/lib-pager.sh: remove unnecessary '^' from 'expr' regular expression
  grep -O: allow optional argument specifying the pager (or editor)
  grep: Add the option '--open-files-in-pager'
  Unify code paths of threaded greps
  grep: refactor grep_objects loop into its own function

Conflicts:
t/t7006-pager.sh

14 years agoMerge branch 'jp/string-list-api-cleanup'
Junio C Hamano [Wed, 30 Jun 2010 18:55:38 +0000 (11:55 -0700)]
Merge branch 'jp/string-list-api-cleanup'

* jp/string-list-api-cleanup:
  string_list: Fix argument order for string_list_append
  string_list: Fix argument order for string_list_lookup
  string_list: Fix argument order for string_list_insert_at_index
  string_list: Fix argument order for string_list_insert
  string_list: Fix argument order for for_each_string_list
  string_list: Fix argument order for print_string_list

14 years agoMerge branch 'tr/rev-list-count'
Junio C Hamano [Wed, 30 Jun 2010 18:55:38 +0000 (11:55 -0700)]
Merge branch 'tr/rev-list-count'

* tr/rev-list-count:
  bash completion: Support "divergence from upstream" messages in __git_ps1
  rev-list: introduce --count option

Conflicts:
contrib/completion/git-completion.bash

14 years agoMerge branch 'as/maint-completion-set-u-fix'
Junio C Hamano [Wed, 30 Jun 2010 18:55:37 +0000 (11:55 -0700)]
Merge branch 'as/maint-completion-set-u-fix'

* as/maint-completion-set-u-fix:
  bash-completion: Fix __git_ps1 to work with "set -u"

14 years agoMerge branch 'mg/rev-parse-tests'
Junio C Hamano [Wed, 30 Jun 2010 18:55:37 +0000 (11:55 -0700)]
Merge branch 'mg/rev-parse-tests'

* mg/rev-parse-tests:
  t6018: make sure all tested symbolic names are different revs
  t6018: add tests for rev-list's --branches and --tags

14 years agoMerge branch 'jl/maint-diff-ignore-submodules'
Junio C Hamano [Wed, 30 Jun 2010 18:55:37 +0000 (11:55 -0700)]
Merge branch 'jl/maint-diff-ignore-submodules'

* jl/maint-diff-ignore-submodules:
  t4027,4041: Use test -s to test for an empty file
  Add optional parameters to the diff option "--ignore-submodules"
  git diff: rename test that had a conflicting name

14 years agoAdd test for correct coloring of git log --decoration
Nazri Ramliy [Tue, 29 Jun 2010 07:47:08 +0000 (15:47 +0800)]
Add test for correct coloring of git log --decoration

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.7.1.1
Junio C Hamano [Tue, 29 Jun 2010 18:24:36 +0000 (11:24 -0700)]
Sync with 1.7.1.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorevert: do not rebuild argv on heap
Jonathan Nieder [Mon, 14 Jun 2010 05:32:09 +0000 (00:32 -0500)]
revert: do not rebuild argv on heap

Set options in struct rev_info directly so we can reuse the
arguments collected from parse_options without modification.

This is just a cleanup; no noticeable change is intended.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge commit 'v1.7.2-rc0~6^2' into cc/cherry-pick-stdin
Junio C Hamano [Tue, 29 Jun 2010 17:20:53 +0000 (10:20 -0700)]
Merge commit 'v1.7.2-rc0~6^2' into cc/cherry-pick-stdin

* commit 'v1.7.2-rc0~6^2':
  DWIM 'git show -5' to 'git show --do-walk -5'
  Documentation/SubmittingPatches: Fix typo in GMail section
  Documentation/config: describe status.submodulesummary

This commit fixes one test in t3508 by making "cherry-pick -<num>"
walk the history.

A test update from Elijah Newren is squashed as an evil merge.

14 years agoGit 1.7.1.1 v1.7.1.1
Junio C Hamano [Tue, 29 Jun 2010 16:59:56 +0000 (09:59 -0700)]
Git 1.7.1.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t9700/test.pl: don't access private object members, use public access methods
Brandon Casey [Mon, 28 Jun 2010 22:51:02 +0000 (17:51 -0500)]
t/t9700/test.pl: don't access private object members, use public access methods

This test is accessing private object members of the Test::More and
Test::Builder objects.  Older versions of Test::More did not implement
these variables using a hash.

My system complains as follows:

   Can't coerce array into hash at <snip>/t/t9700/test.pl line 13.
   BEGIN failed--compilation aborted at <snip>/t/t9700/test.pl line 15.

There are public access methods available for retrieving and setting these
variables, so let's use them instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/t9001: use egrep when regular expressions are involved
Brandon Casey [Mon, 28 Jun 2010 22:46:22 +0000 (17:46 -0500)]
t/t9001: use egrep when regular expressions are involved

Supplying backslashed, extended regular expressions to grep is not
portable.  Use egrep instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-rev-parse.txt: Add more examples for caret and colon
Michael J Gruber [Mon, 28 Jun 2010 19:01:07 +0000 (21:01 +0200)]
git-rev-parse.txt: Add more examples for caret and colon

Several items in the caret, colon and friends section contain examples
already. Make sure they all come with examples, and that examples come
early so that they serve as a visual guide, as well.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>