git
14 years agosubmodules: ensure clean environment when operating in a submodule oblomov/clear-submodules
Giuseppe Bilotta [Mon, 22 Feb 2010 21:18:53 +0000 (22:18 +0100)] 
submodules: ensure clean environment when operating in a submodule

git-submodule used to take care of clearing GIT_DIR whenever it operated
on a submodule index or configuration, but forgot to unset GIT_WORK_TREE
or other repo-local variables. This which would lead to failures e.g.
when GIT_WORK_TREE was set.

This only happened in very unusual contexts such as operating on the
main worktree from outside of it, but since "git-gui: set GIT_DIR and
GIT_WORK_TREE after setup" (a9fa11fe5bd5978bb) such failures could also
be provoked by invoking an external tool such as "git submodule update"
from the Git Gui in a standard setup.

Solve by using the newly introduced clear_local_git_env() shell function
to ensure that all repo-local environment variables are unset.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
14 years agoshell setup: clear_local_git_env() function
Giuseppe Bilotta [Mon, 22 Feb 2010 23:22:29 +0000 (00:22 +0100)] 
shell setup: clear_local_git_env() function

Introduce an auxiliary function to clear all repo-local environment
variables. This should be invoked by any shell script that switches
repository during execution, to ensure that the environment is clean
and that things such as the git dir and worktree are set up correctly.

The list matches the one in git_connect(), so bring them in sync by adding
the missing CONFIG_ENVIRONMENT. Also add a note about the fact that they
should be kept that way.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
14 years agogit-gui: fix worktree initialization with empty prefix
Giuseppe Bilotta [Mon, 22 Feb 2010 15:10:23 +0000 (16:10 +0100)] 
git-gui: fix worktree initialization with empty prefix

This is sort of a chicken-and-egg problem, because we should only
bother setting the worktree if we are not in a bare repository, but
an unset worktree is one of the conditions we check to see if we have
a bare repository.

Maintain the same sequence of checks, but swap the check for bareness
support and bareness of repository, and check again for an unset
worktree if we are not in the bare case.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
14 years agoMerge branch 'np/compress-loose-object-memsave' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:08 +0000 (23:38 -0800)] 
Merge branch 'np/compress-loose-object-memsave' into next

* np/compress-loose-object-memsave:
  sha1_file: be paranoid when creating loose objects
  sha1_file: don't malloc the whole compressed result when writing out objects

14 years agoMerge branch 'dp/read-not-mmap-small-loose-object' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:08 +0000 (23:38 -0800)] 
Merge branch 'dp/read-not-mmap-small-loose-object' into next

* dp/read-not-mmap-small-loose-object:
  hash-object: don't use mmap() for small files

14 years agoMerge branch 'jc/maint-status-preload' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:08 +0000 (23:38 -0800)] 
Merge branch 'jc/maint-status-preload' into next

* jc/maint-status-preload:
  status: preload index to optimize lstat(2) calls

14 years agoMerge branch 'hm/imap-send-cram-md5' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:07 +0000 (23:38 -0800)] 
Merge branch 'hm/imap-send-cram-md5' into next

* hm/imap-send-cram-md5:
  imap-send: support CRAM-MD5 authentication

14 years agoMerge branch 'ml/fill-mm-refactor' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:07 +0000 (23:38 -0800)] 
Merge branch 'ml/fill-mm-refactor' into next

* ml/fill-mm-refactor:
  refactor duplicated fill_mm() in checkout and merge-recursive

14 years agoMerge branch 'ml/encode-header-refactor' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:07 +0000 (23:38 -0800)] 
Merge branch 'ml/encode-header-refactor' into next

* ml/encode-header-refactor:
  refactor duplicated encode_header in pack-objects and fast-import

14 years agoMerge branch 'ml/connect-refactor' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:06 +0000 (23:38 -0800)] 
Merge branch 'ml/connect-refactor' into next

* ml/connect-refactor:
  connect.c: move duplicated code to a new function 'get_host_and_port'

14 years agoMerge branch 'ld/maint-diff-quiet-w' into next
Junio C Hamano [Mon, 22 Feb 2010 07:38:06 +0000 (23:38 -0800)] 
Merge branch 'ld/maint-diff-quiet-w' into next

* ld/maint-diff-quiet-w:
  git-diff: add a test for git diff --quiet -w
  git diff --quiet -w: check and report the status

14 years agosha1_file: be paranoid when creating loose objects
Nicolas Pitre [Sun, 21 Feb 2010 20:48:06 +0000 (15:48 -0500)] 
sha1_file: be paranoid when creating loose objects

We don't want the data being deflated and stored into loose objects
to be different from what we expect.  While the deflated data is
protected by a CRC which is good enough for safe data retrieval
operations, we still want to be doubly sure that the source data used
at object creation time is still what we expected once that data has
been deflated and its CRC32 computed.

The most plausible data corruption may occur if the source file is
modified while Git is deflating and writing it out in a loose object.
Or Git itself could have a bug causing memory corruption.  Or even bad
RAM could cause trouble.  So it is best to make sure everything is
coherent and checksum protected from beginning to end.

To do so we compute the SHA1 of the data being deflated _after_ the
deflate operation has consumed that data, and make sure it matches
with the expected SHA1.  This way we can rely on the CRC32 checked by
the inflate operation to provide a good indication that the data is still
coherent with its SHA1 hash.  One pathological case we ignore is when
the data is modified before (or during) deflate call, but changed back
before it is hashed.

There is some overhead of course. Using 'git add' on a set of large files:

Before:

real    0m25.210s
user    0m23.783s
sys     0m1.408s

After:

real    0m26.537s
user    0m25.175s
sys     0m1.358s

The overhead is around 5% for full data coherency guarantee.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-diff: add a test for git diff --quiet -w
Larry D'Anna [Mon, 22 Feb 2010 02:58:44 +0000 (21:58 -0500)] 
git-diff: add a test for git diff --quiet -w

This patch adds two test cases for:

6977c25 git diff --quiet -w: check and report the status

Signed-off-by: Larry D'Anna <larry@elder-gods.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'ml/color-when' into next
Junio C Hamano [Sun, 21 Feb 2010 21:46:43 +0000 (13:46 -0800)] 
Merge branch 'ml/color-when' into next

* ml/color-when:
  Add an optional argument for --color options

14 years agoMerge branch 'tr/maint-cherry-pick-list' into next
Junio C Hamano [Sun, 21 Feb 2010 21:44:03 +0000 (13:44 -0800)] 
Merge branch 'tr/maint-cherry-pick-list' into next

* tr/maint-cherry-pick-list:
  cherry_pick_list: quit early if one side is empty

14 years agoMerge branch 'rs/optim-text-wrap' into next
Junio C Hamano [Sun, 21 Feb 2010 21:43:59 +0000 (13:43 -0800)] 
Merge branch 'rs/optim-text-wrap' into next

* rs/optim-text-wrap:
  utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()
  utf8.c: remove strbuf_write()
  utf8.c: remove print_spaces()
  utf8.c: remove print_wrapped_text()

14 years agoMerge branch 'master' into next
Junio C Hamano [Sun, 21 Feb 2010 21:25:06 +0000 (13:25 -0800)] 
Merge branch 'master' into next

* master:

14 years agoMerge branch 'jc/for-each-ref' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:49 +0000 (13:20 -0800)] 
Merge branch 'jc/for-each-ref' into next

* jc/for-each-ref:
  for-each-ref --format='%(flag)'
  for-each-ref --format='%(symref) %(symref:short)'
  builtin-for-each-ref.c: check if we need to peel onion while parsing the format
  builtin-for-each-ref.c: comment fixes

14 years agoMerge branch 'jn/gitweb-config-error-die' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:49 +0000 (13:20 -0800)] 
Merge branch 'jn/gitweb-config-error-die' into next

* jn/gitweb-config-error-die:
  gitweb: Die if there are parsing errors in config file

14 years agoMerge branch 'jn/maint-fix-pager' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:49 +0000 (13:20 -0800)] 
Merge branch 'jn/maint-fix-pager' into next

* jn/maint-fix-pager:
  t7006-pager: if stdout is not a terminal, make a new one
  tests: Add tests for automatic use of pager
  am: Fix launching of pager
  git svn: Fix launching of pager
  git.1: Clarify the behavior of the --paginate option
  Make 'git var GIT_PAGER' always print the configured pager
  Fix 'git var' usage synopsis

14 years agoMerge branch 'jh/maint-submodule-status-in-void' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:48 +0000 (13:20 -0800)] 
Merge branch 'jh/maint-submodule-status-in-void' into next

* jh/maint-submodule-status-in-void:
  submodule summary: Don't barf when invoked in an empty repo

14 years agoMerge branch 'gf/maint-sh-setup-nongit-ok' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:48 +0000 (13:20 -0800)] 
Merge branch 'gf/maint-sh-setup-nongit-ok' into next

* gf/maint-sh-setup-nongit-ok:
  require_work_tree broken with NONGIT_OK

14 years agoMerge branch 'ml/send-pack-transport-refactor' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:48 +0000 (13:20 -0800)] 
Merge branch 'ml/send-pack-transport-refactor' into next

* ml/send-pack-transport-refactor:
  refactor duplicated code in builtin-send-pack.c and transport.c

14 years agoMerge branch 'jn/makedepend' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:47 +0000 (13:20 -0800)] 
Merge branch 'jn/makedepend' into next

* jn/makedepend:
  Makefile: always remove .depend directories on 'make clean'
  Makefile: tuck away generated makefile fragments in .depend
  Teach Makefile to check header dependencies
  Makefile: list standalone program object files in PROGRAM_OBJS
  Makefile: lazily compute header dependencies
  Makefile: list generated object files in OBJECTS
  Makefile: disable default implicit rules
  Makefile: rearrange dependency rules
  Makefile: transport.o depends on branch.h now
  Makefile: drop dependency on $(wildcard */*.h)
  Makefile: clean up http-walker.o dependency rules
  Makefile: remove wt-status.h from LIB_H
  Makefile: make sure test helpers are rebuilt when headers change
  Makefile: add missing header file dependencies

Conflicts:
Makefile

14 years agoMerge branch 'jh/notes' into next
Junio C Hamano [Sun, 21 Feb 2010 21:20:47 +0000 (13:20 -0800)] 
Merge branch 'jh/notes' into next

* jh/notes: (30 commits)
  builtin-notes: Add "copy" subcommand for copying notes between objects
  builtin-notes: Misc. refactoring of argc and exit value handling
  builtin-notes: Add -c/-C options for reusing notes
  builtin-notes: Refactor handling of -F option to allow combining -m and -F
  builtin-notes: Deprecate the -m/-F options for "git notes edit"
  builtin-notes: Add "append" subcommand for appending to note objects
  builtin-notes: Add "add" subcommand for adding notes to objects
  builtin-notes: Add --message/--file aliases for -m/-F options
  builtin-notes: Add "list" subcommand for listing note objects
  Documentation: Generalize git-notes docs to 'objects' instead of 'commits'
  builtin-notes: Add "prune" subcommand for removing notes for missing objects
  Notes API: prune_notes(): Prune notes that belong to non-existing objects
  t3305: Verify that removing notes triggers automatic fanout consolidation
  builtin-notes: Add "remove" subcommand for removing existing notes
  Teach builtin-notes to remove empty notes
  Teach notes code to properly preserve non-notes in the notes tree
  t3305: Verify that adding many notes with git-notes triggers increased fanout
  t3301: Verify successful annotation of non-commits
  Builtin-ify git-notes
  Refactor notes concatenation into a flexible interface for combining notes
  ...

Conflicts:
Makefile

14 years agoMerge branch 'ml/maint-grep-doc'
Junio C Hamano [Sun, 21 Feb 2010 20:01:06 +0000 (12:01 -0800)] 
Merge branch 'ml/maint-grep-doc'

* ml/maint-grep-doc:
  grep documentation: clarify what files match

14 years agoMerge branch 'tc/maint-transport-ls-remote-with-void'
Junio C Hamano [Sun, 21 Feb 2010 20:01:03 +0000 (12:01 -0800)] 
Merge branch 'tc/maint-transport-ls-remote-with-void'

* tc/maint-transport-ls-remote-with-void:
  transport: add got_remote_refs flag

14 years agoMerge branch 'hm/maint-imap-send-crlf'
Junio C Hamano [Sun, 21 Feb 2010 20:00:21 +0000 (12:00 -0800)] 
Merge branch 'hm/maint-imap-send-crlf'

* hm/maint-imap-send-crlf:
  git-imap-send: Convert LF to CRLF before storing patch to draft box

14 years agoMerge branch 'sp/push-sideband'
Junio C Hamano [Sun, 21 Feb 2010 20:00:07 +0000 (12:00 -0800)] 
Merge branch 'sp/push-sideband'

* sp/push-sideband:
  receive-pack: Send internal errors over side-band #2
  t5401: Use a bare repository for the remote peer
  receive-pack: Send hook output over side band #2
  receive-pack: Wrap status reports inside side-band-64k
  receive-pack: Refactor how capabilities are shown to the client
  send-pack: demultiplex a sideband stream with status data
  run-command: support custom fd-set in async
  run-command: Allow stderr to be a caller supplied pipe

14 years agoMerge branch 'jc/checkout-detached'
Junio C Hamano [Sun, 21 Feb 2010 19:59:42 +0000 (11:59 -0800)] 
Merge branch 'jc/checkout-detached'

* jc/checkout-detached:
  Reword "detached HEAD" notification

14 years agoMerge branch 'jc/maint-fix-test-perm'
Junio C Hamano [Sun, 21 Feb 2010 19:59:35 +0000 (11:59 -0800)] 
Merge branch 'jc/maint-fix-test-perm'

* jc/maint-fix-test-perm:
  lib-patch-mode.sh: Fix permission
  t6000lib: Fix permission

14 years agoMerge branch 'jn/makefile-script-lib'
Junio C Hamano [Sun, 21 Feb 2010 19:59:22 +0000 (11:59 -0800)] 
Merge branch 'jn/makefile-script-lib'

* jn/makefile-script-lib:
  Do not install shell libraries executable

14 years agoMerge branch 'mv/request-pull-modernize'
Junio C Hamano [Sun, 21 Feb 2010 19:59:17 +0000 (11:59 -0800)] 
Merge branch 'mv/request-pull-modernize'

* mv/request-pull-modernize:
  request-pull: avoid mentioning that the start point is a single commit

14 years agohash-object: don't use mmap() for small files
Dmitry Potapov [Sun, 21 Feb 2010 06:32:19 +0000 (09:32 +0300)] 
hash-object: don't use mmap() for small files

Using read() instead of mmap() can be 39% speed up for 1Kb files and is
1% speed up 1Mb files. For larger files, it is better to use mmap(),
because the difference between is not significant, and when there is not
enough memory, mmap() performs much better, because it avoids swapping.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosha1_file: don't malloc the whole compressed result when writing out objects
Nicolas Pitre [Sun, 21 Feb 2010 04:27:31 +0000 (23:27 -0500)] 
sha1_file: don't malloc the whole compressed result when writing out objects

There is no real advantage to malloc the whole output buffer and
deflate the data in a single pass when writing loose objects. That is
like only 1% faster while using more memory, especially with large
files where memory usage is far more. It is best to deflate and write
the data out in small chunks reusing the same memory instead.

For example, using 'git add' on a few large files averaging 40 MB ...

Before:
21.45user 1.10system 0:22.57elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+828040outputs (0major+142640minor)pagefaults 0swaps

After:
21.50user 1.25system 0:22.76elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+828040outputs (0major+104408minor)pagefaults 0swaps

While the runtime stayed relatively the same, the number of minor page
faults went down significantly.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot7006-pager: if stdout is not a terminal, make a new one
Jonathan Nieder [Sat, 20 Feb 2010 08:50:25 +0000 (02:50 -0600)] 
t7006-pager: if stdout is not a terminal, make a new one

Testing pagination requires (fake or real) access to a terminal so we
can see whether the pagination automatically kicks in, which makes it
hard to get good coverage when running tests without --verbose.  There
are a number of ways to work around that:

 - Replace all isatty calls with calls to a custom xisatty wrapper
   that usually checks for a terminal but can be overridden for tests.
   This would be workable, but it would require implementing xisatty
   separately in three languages (C, shell, and perl) and making sure
   that any code that is to be tested always uses the wrapper.

 - Redirect stdout to /dev/tty.  This would be problematic because
   there might be no terminal available, and even if a terminal is
   available, it might not be appropriate to spew output to it.

 - Create a new pseudo-terminal on the fly and capture its output.

This patch implements the third approach.

The new test-terminal.perl helper uses IO::Pty from Expect.pm to create
a terminal and executes the program specified by its arguments with
that terminal as stdout.  If the IO::Pty module is missing or not
working on a system, the test script will maintain its old behavior
(skipping most of its tests unless GIT_TEST_OPTS includes --verbose).

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Sat, 20 Feb 2010 18:39:55 +0000 (10:39 -0800)] 
Merge branch 'master' into next

* master:
  git-p4: fix bug in symlink handling
  t1450: fix testcases that were wrongly expecting failure
  Documentation: Fix indentation problem in git-commit(1)

14 years agoMerge branch 'maint'
Junio C Hamano [Sat, 20 Feb 2010 18:38:42 +0000 (10:38 -0800)] 
Merge branch 'maint'

* maint:
  git-p4: fix bug in symlink handling
  t1450: fix testcases that were wrongly expecting failure
  Documentation: Fix indentation problem in git-commit(1)

14 years agocherry_pick_list: quit early if one side is empty
Thomas Rast [Sat, 20 Feb 2010 11:42:04 +0000 (12:42 +0100)] 
cherry_pick_list: quit early if one side is empty

The --cherry-pick logic starts by counting the commits on each side,
so that it can filter away commits on the bigger one.  However, so
far it missed an opportunity for optimization: it doesn't need to do
any work if either side is empty.

This in particular helps the common use-case 'git rebase -i HEAD~$n':
it internally uses --cherry-pick, but since HEAD~$n is a direct
ancestor the left side is always empty.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests: Add tests for automatic use of pager
Jonathan Nieder [Fri, 19 Feb 2010 07:18:58 +0000 (01:18 -0600)] 
tests: Add tests for automatic use of pager

Git’s automatic pagination support has some subtleties.  Add some
tests to make sure we don’t break:

 - when git will use a pager by default;
 - the effect of the --paginate and --no-pager options;
 - the effect of pagination on use of color;
 - how the choice of pager is configured.

This does not yet test:

 - use of pager by scripted commands (git svn and git am);
 - effect of the pager.* configuration variables;
 - setting of the LESS variable.

Some features involve checking whether stdout is a terminal, so many
of these tests are skipped unless output is passed through to the
terminal (i.e., unless $GIT_TEST_OPTS includes --verbose).

The immediate purpose for these tests was to avoid making things worse
after the breakage from my jn/editor-pager series (see commit 376f39,
2009-11-20).  Thanks to Sebastian Celis <sebastian@sebastiancelis.com>
for the report.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoutf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()
René Scharfe [Fri, 19 Feb 2010 22:20:44 +0000 (23:20 +0100)] 
utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()

is_utf8() works by calling utf8_width() for each character at the
supplied location.  In strbuf_add_wrapped_text(), we do that anyway
while wrapping the lines.  So instead of checking the encoding
beforehand, optimistically assume that it's utf-8 and wrap along
until an invalid character is hit, and when that happens start over.

This pays off if the text consists only of valid utf-8 characters.
The following command was run against the Linux kernel repo with
git 1.7.0:

$ time git log --format='%b' v2.6.32 >/dev/null

real 0m2.679s
user 0m2.580s
sys 0m0.100s

$ time git log --format='%w(60,4,8)%b' >/dev/null

real 0m4.342s
user 0m4.230s
sys 0m0.110s

And with this patch series:

$ time git log --format='%w(60,4,8)%b' >/dev/null

real 0m3.741s
user 0m3.630s
sys 0m0.110s

So the cost of wrapping is reduced to 70% in this case.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoutf8.c: remove strbuf_write()
René Scharfe [Fri, 19 Feb 2010 22:16:45 +0000 (23:16 +0100)] 
utf8.c: remove strbuf_write()

The patch before the previous one made sure that all callers of
strbuf_add_wrapped_text() supply a strbuf.  Replace all calls of
strbuf_write() with regular strbuf functions and remove it.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoutf8.c: remove print_spaces()
René Scharfe [Fri, 19 Feb 2010 22:15:55 +0000 (23:15 +0100)] 
utf8.c: remove print_spaces()

The previous patch made sure that strbuf_add_wrapped_text() (and thus
strbuf_add_indented_text(), too) always get a strbuf.  Make use of
this fact by adding strbuf_addchars(), a small helper that adds a
char the specified number of times to a strbuf, and use it to replace
print_spaces().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoutf8.c: remove print_wrapped_text()
René Scharfe [Fri, 19 Feb 2010 22:15:01 +0000 (23:15 +0100)] 
utf8.c: remove print_wrapped_text()

strbuf_add_wrapped_text() is called only from print_wrapped_text()
without a strbuf (in which case it writes its results to stdout).

At its only callsite, supply a strbuf, call strbuf_add_wrapped_text()
directly and remove the wrapper function.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-p4: fix bug in symlink handling
Evan Powers [Tue, 16 Feb 2010 08:44:08 +0000 (00:44 -0800)] 
git-p4: fix bug in symlink handling

Fix inadvertent breakage from b932705 (git-p4: stream from perforce to
speed up clones, 2009-07-30) in the code that strips the trailing '\n'
from p4 print on a symlink. (In practice, contents is of the form
['target\n', ''].)

Signed-off-by: Evan Powers <evan.powers@gmail.com>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot1450: fix testcases that were wrongly expecting failure
Thomas Rast [Sat, 20 Feb 2010 00:18:44 +0000 (01:18 +0100)] 
t1450: fix testcases that were wrongly expecting failure

Almost exactly a year ago in 02a6552 (Test fsck a bit harder), I
introduced two testcases that were expecting failure.

However, the only bug was that the testcases wrote *blobs* because I
forgot to pass -t tag to hash-object.  Fix this, and then adjust the
rest of the test to properly check the result.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: Fix indentation problem in git-commit(1)
Jacob Helwig [Mon, 15 Feb 2010 12:33:06 +0000 (04:33 -0800)] 
Documentation: Fix indentation problem in git-commit(1)

Ever since the "See linkgit:git-config[1]..." paragraph was added to the
description for --untracked-files (d6293d1), the paragraphs for the
following options were indented at the same level as the "See
linkgit:git-config[1]" paragraph.  This problem showed up in the
manpages, but not in the HTML documentation.

While this does fix the alignment of the options following
--untracked-files in the manpage, the "See linkgit..." portion of the
description does not retain its previous indentation level in the
manpages, or HTML documentation.

Signed-off-by: Jacob Helwig <jacob.helwig@gmail.com>
Acked-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Fri, 19 Feb 2010 09:32:05 +0000 (01:32 -0800)] 
Merge branch 'master' into next

* master:
  rm: fix bug in recursive subdirectory removal
  Documentation: describe --thin more accurately

14 years agoMerge branch 'maint'
Junio C Hamano [Fri, 19 Feb 2010 09:31:42 +0000 (01:31 -0800)] 
Merge branch 'maint'

* maint:
  rm: fix bug in recursive subdirectory removal
  Documentation: describe --thin more accurately

14 years agoMerge branch 'jk/maint-rmdir-fix' into maint
Junio C Hamano [Fri, 19 Feb 2010 09:31:37 +0000 (01:31 -0800)] 
Merge branch 'jk/maint-rmdir-fix' into maint

* jk/maint-rmdir-fix:
  rm: fix bug in recursive subdirectory removal

14 years agorm: fix bug in recursive subdirectory removal
Jeff King [Fri, 19 Feb 2010 05:57:21 +0000 (00:57 -0500)] 
rm: fix bug in recursive subdirectory removal

If we remove a path in a/deep/subdirectory, we should try to
remove as many trailing components as possible (i.e.,
subdirectory, then deep, then a). However, the test for the
return value of rmdir was reversed, so we only ever deleted
at most one level.

The fix is in remove_path, so "apply" and "merge-recursive"
also are fixed.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoAdd an optional argument for --color options
Mark Lodato [Wed, 17 Feb 2010 04:55:58 +0000 (23:55 -0500)] 
Add an optional argument for --color options

Make git-branch, git-show-branch, git-grep, and all the diff-based
programs accept an optional argument <when> for --color.  The argument
is a colorbool: "always", "never", or "auto".  If no argument is given,
"always" is used;  --no-color is an alias for --color=never.  This makes
the command-line interface consistent with other GNU tools, such as `ls'
and `grep', and with the git-config color options.  Note that, without
an argument, --color and --no-color work exactly as before.

To implement this, two internal changes were made:

1. Allow the first argument of git_config_colorbool() to be NULL,
   in which case it returns -1 if the argument isn't "always", "never",
   or "auto".

2. Add OPT_COLOR_FLAG(), OPT__COLOR(), and parse_opt_color_flag_cb()
   to the option parsing library.  The callback uses
   git_config_colorbool(), so color.h is now a dependency
   of parse-options.c.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: describe --thin more accurately
Stephen Boyd [Thu, 18 Feb 2010 09:10:28 +0000 (01:10 -0800)] 
Documentation: describe --thin more accurately

The description for --thin was misleading and downright wrong. Correct
it with some inspiration from the description of index-pack's --fix-thin
and some background information from Nicolas Pitre <nico@fluxnic.net>.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Thu, 18 Feb 2010 07:04:00 +0000 (23:04 -0800)] 
Merge branch 'master' into next

* master:
  docs: don't talk about $GIT_DIR/refs/ everywhere

14 years agoMerge branch 'maint'
Junio C Hamano [Thu, 18 Feb 2010 07:03:46 +0000 (23:03 -0800)] 
Merge branch 'maint'

* maint:
  docs: don't talk about $GIT_DIR/refs/ everywhere

14 years agodocs: don't talk about $GIT_DIR/refs/ everywhere
Jeff King [Thu, 18 Feb 2010 01:16:20 +0000 (20:16 -0500)] 
docs: don't talk about $GIT_DIR/refs/ everywhere

It is misleading to say that we pull refs from $GIT_DIR/refs/*, because we
may also consult the packed refs mechanism. These days we tend to treat
the "refs hierarchy" as more of an abstract namespace that happens to be
represented as $GIT_DIR/refs. At best, this is a minor inaccuracy, but at
worst it can confuse users who then look in $GIT_DIR/refs and find that it
is missing some of the refs they expected to see.

This patch drops most uses of "$GIT_DIR/refs/*", changing them into just
"refs/*", under the assumption that users can handle the concept of an
abstract refs namespace. There are a few things to note:

  - most cases just dropped the $GIT_DIR/ portion. But for cases where
    that left _just_ the word "refs", I changed it to "refs/" to help
    indicate that it was a hierarchy.  I didn't do the same for longer
    paths (e.g., "refs/heads" remained, instead of becoming
    "refs/heads/").

  - in some cases, no change was made, as the text was explicitly about
    unpacked refs (e.g., the discussion in git-pack-refs).

  - In some cases it made sense instead to note the existence of packed
    refs (e.g., in check-ref-format and rev-parse).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'master' into next
Junio C Hamano [Wed, 17 Feb 2010 23:33:27 +0000 (15:33 -0800)] 
Merge branch 'master' into next

* master:
  Update draft release notes to 1.7.1
  Update 1.7.0.1 release notes
  fast-import: use the diff_delta() max_delta_size argument
  fast-import: honor pack.indexversion and pack.packsizelimit config vars
  fast-import: make default pack size unlimited
  fast-import: use write_idx_file() instead of custom code
  fast-import: use sha1write() for pack data
  fast-import: start using struct pack_idx_entry

14 years agorefactor duplicated encode_header in pack-objects and fast-import
Michael Lukashov [Tue, 16 Feb 2010 23:42:54 +0000 (23:42 +0000)] 
refactor duplicated encode_header in pack-objects and fast-import

The following function is duplicated:

  encode_header

Move this function to sha1_file.c and rename it 'encode_in_pack_object_header',
as suggested by Junio C Hamano

Signed-off-by: Michael Lukashov <michael.lukashov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'np/fast-import-idx-v2'
Junio C Hamano [Wed, 17 Feb 2010 23:28:25 +0000 (15:28 -0800)] 
Merge branch 'np/fast-import-idx-v2'

* np/fast-import-idx-v2:
  fast-import: use the diff_delta() max_delta_size argument
  fast-import: honor pack.indexversion and pack.packsizelimit config vars
  fast-import: make default pack size unlimited
  fast-import: use write_idx_file() instead of custom code
  fast-import: use sha1write() for pack data
  fast-import: start using struct pack_idx_entry

Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorefactor duplicated fill_mm() in checkout and merge-recursive
Michael Lukashov [Tue, 16 Feb 2010 23:42:55 +0000 (23:42 +0000)] 
refactor duplicated fill_mm() in checkout and merge-recursive

The following function is duplicated:

  fill_mm

Move it to xdiff-interface.c and rename it 'read_mmblob', as suggested
by Junio C Hamano.

Also, change parameters order for consistency with read_mmfile().

Signed-off-by: Michael Lukashov <michael.lukashov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorefactor duplicated code in builtin-send-pack.c and transport.c
Michael Lukashov [Tue, 16 Feb 2010 23:42:52 +0000 (23:42 +0000)] 
refactor duplicated code in builtin-send-pack.c and transport.c

The following functions are (almost) identical:

  verify_remote_names
  update_tracking_ref
  refs_pushed
  print_push_status

Move common versions of these functions to transport.c and rename
them, as suggested by Jeff King and Junio C Hamano.

These functions have been removed entirely from builtin-send-pack.c,
since they are only used internally by print_push_status():

  print_ref_status
  status_abbrev
  print_ok_ref_status
  print_one_push_status

Also, move #define SUMMARY_WIDTH to transport.h and rename it
TRANSPORT_SUMMARY_WIDTH as it is used in builtin-fetch.c and
transport.c

Signed-off-by: Michael Lukashov <michael.lukashov@gmail.com>
Acked-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoconnect.c: move duplicated code to a new function 'get_host_and_port'
Michael Lukashov [Wed, 17 Feb 2010 20:56:02 +0000 (20:56 +0000)] 
connect.c: move duplicated code to a new function 'get_host_and_port'

The following functions:

  git_tcp_connect_sock (IPV6 version)
  git_tcp_connect_sock (no IPV6 version),
  git_proxy_connect

have common block of code. Move it to a new function 'get_host_and_port'

Signed-off-by: Michael Lukashov <michael.lukashov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.1
Junio C Hamano [Wed, 17 Feb 2010 23:01:11 +0000 (15:01 -0800)] 
Update draft release notes to 1.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 17 Feb 2010 23:00:10 +0000 (15:00 -0800)] 
Merge branch 'maint'

* maint:
  Update 1.7.0.1 release notes

14 years agoUpdate 1.7.0.1 release notes
Junio C Hamano [Wed, 17 Feb 2010 23:00:00 +0000 (15:00 -0800)] 
Update 1.7.0.1 release notes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jk/cherry-pick-reword' into maint
Junio C Hamano [Wed, 17 Feb 2010 22:55:24 +0000 (14:55 -0800)] 
Merge branch 'jk/cherry-pick-reword' into maint

* jk/cherry-pick-reword:
  cherry-pick: prettify the advice message
  cherry-pick: show commit name instead of sha1
  cherry-pick: format help message as strbuf
  cherry-pick: refactor commit parsing code
  cherry-pick: rewrap advice message

14 years agoMerge branch 'jk/grep-double-dash' into maint
Junio C Hamano [Wed, 17 Feb 2010 22:55:15 +0000 (14:55 -0800)] 
Merge branch 'jk/grep-double-dash' into maint

* jk/grep-double-dash:
  accept "git grep -- pattern"

14 years agoMerge branch 'jc/typo' into maint
Junio C Hamano [Wed, 17 Feb 2010 22:55:09 +0000 (14:55 -0800)] 
Merge branch 'jc/typo' into maint

* jc/typo:
  Typofixes outside documentation area

14 years agostatus: preload index to optimize lstat(2) calls
Junio C Hamano [Wed, 17 Feb 2010 20:30:41 +0000 (12:30 -0800)] 
status: preload index to optimize lstat(2) calls

Noticed by James Pickens

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/grep-author-all-match-implicit' into next
Junio C Hamano [Wed, 17 Feb 2010 19:44:25 +0000 (11:44 -0800)] 
Merge branch 'jc/grep-author-all-match-implicit' into next

* jc/grep-author-all-match-implicit:
  "log --author=me --grep=it" should find intersection, not union

14 years agoMerge branch 'jc/checkout-detached' into next
Junio C Hamano [Wed, 17 Feb 2010 19:43:43 +0000 (11:43 -0800)] 
Merge branch 'jc/checkout-detached' into next

* jc/checkout-detached:
  Reword "detached HEAD" notification

14 years agoMerge branch 'ac/cvsimport-revision-mapping' into next
Junio C Hamano [Wed, 17 Feb 2010 19:42:03 +0000 (11:42 -0800)] 
Merge branch 'ac/cvsimport-revision-mapping' into next

* ac/cvsimport-revision-mapping:
  cvsimport: new -R option: generate .git/cvs-revisions mapping

14 years agoMerge branch 'pb/log-first-parent-p-m' into next
Junio C Hamano [Wed, 17 Feb 2010 19:41:38 +0000 (11:41 -0800)] 
Merge branch 'pb/log-first-parent-p-m' into next

* pb/log-first-parent-p-m:
  git log -p -m: document -m and honor --first-parent

14 years agoMerge branch 'hm/maint-imap-send-crlf' into next
Junio C Hamano [Wed, 17 Feb 2010 19:40:40 +0000 (11:40 -0800)] 
Merge branch 'hm/maint-imap-send-crlf' into next

* hm/maint-imap-send-crlf:
  git-imap-send: Convert LF to CRLF before storing patch to draft box

14 years agoMerge branch 'master' into next
Junio C Hamano [Wed, 17 Feb 2010 19:22:15 +0000 (11:22 -0800)] 
Merge branch 'master' into next

* master:
  gitweb: Protect escaping functions against calling on undef
  gitweb: esc_html (short) error message in die_error

14 years agogitweb: Protect escaping functions against calling on undef
Jakub Narebski [Sun, 7 Feb 2010 20:52:25 +0000 (21:52 +0100)] 
gitweb: Protect escaping functions against calling on undef

This is a bit of future-proofing esc_html and friends: when called
with undefined value they would now would return undef... which would
probably mean that error would still occur, but closer to the source
of problem.

This means that we can safely use
  esc_html(shift) || "Internal Server Error"
in die_error() instead of
  esc_html(shift || "Internal Server Error")

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: esc_html (short) error message in die_error
Jakub Narebski [Sun, 7 Feb 2010 20:51:18 +0000 (21:51 +0100)] 
gitweb: esc_html (short) error message in die_error

The error message (second argument to die_error) is meant to be short,
one-line text description of given error.  A few callers call
die_error with error message containing unescaped user supplied data
($hash, $file_name).  Instead of forcing callers to escape data,
simply call esc_html on the parameter.

Note that optional third parameter, which contains detailed error
description, is meant to be HTML formatted, and therefore should be
not escaped.

While at it update esc_html synopsis/usage, and bring default error
description to read 'Internal Server Error' (titlecased).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosubmodule summary: Don't barf when invoked in an empty repo
Johan Herland [Tue, 16 Feb 2010 10:21:14 +0000 (11:21 +0100)] 
submodule summary: Don't barf when invoked in an empty repo

When invoking "git submodule summary" in an empty repo (which can be
indirectly done by setting status.submodulesummary = true), it currently
emits an error message (via "git diff-index") since HEAD points to an
unborn branch.

This patch adds handling of the HEAD-points-to-unborn-branch special case,
so that "git submodule summary" no longer emits this error message.

The patch also adds a test case that verifies the fix.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: use the diff_delta() max_delta_size argument
Nicolas Pitre [Wed, 17 Feb 2010 19:05:56 +0000 (14:05 -0500)] 
fast-import: use the diff_delta() max_delta_size argument

This let diff_delta() abort early if it is going to bust the given
size limit.  Also, only objects larger than 20 bytes are considered
as objects smaller than that are most certainly going to produce
larger deltas than the original object due to the additional headers.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: honor pack.indexversion and pack.packsizelimit config vars
Nicolas Pitre [Wed, 17 Feb 2010 19:05:55 +0000 (14:05 -0500)] 
fast-import: honor pack.indexversion and pack.packsizelimit config vars

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: make default pack size unlimited
Nicolas Pitre [Wed, 17 Feb 2010 19:05:54 +0000 (14:05 -0500)] 
fast-import: make default pack size unlimited

Now that fast-import is creating packs with index version 2, there is
no point limiting the pack size by default.  A pack split will still
happen if off_t is not sufficiently large to hold large offsets.

While updating the doc, let's remove the "packfiles fit on CDs"
suggestion.  Pack files created by fast-import are still suboptimal and
a 'git repack -a -f -d' or even 'git gc --aggressive' would be a pretty
good idea before considering storage on CDs.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: use write_idx_file() instead of custom code
Nicolas Pitre [Wed, 17 Feb 2010 19:05:53 +0000 (14:05 -0500)] 
fast-import: use write_idx_file() instead of custom code

This allows for the creation of pack index version 2 with its object
CRC and the possibility for a pack to be larger than 4 GB.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: use sha1write() for pack data
Nicolas Pitre [Wed, 17 Feb 2010 19:05:52 +0000 (14:05 -0500)] 
fast-import: use sha1write() for pack data

This is in preparation for using write_idx_file().  Also, by using
sha1write() we get some buffering to reduces the number of write
syscalls, and the written data is SHA1 summed which allows for the extra
data integrity validation check performed in fixup_pack_header_footer()
(details on this in commit abeb40e5aa).

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-import: start using struct pack_idx_entry
Nicolas Pitre [Wed, 17 Feb 2010 19:05:51 +0000 (14:05 -0500)] 
fast-import: start using struct pack_idx_entry

This is in preparation for using write_idx_file().

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorequire_work_tree broken with NONGIT_OK
Gabriel Filion [Wed, 17 Feb 2010 04:18:50 +0000 (23:18 -0500)] 
require_work_tree broken with NONGIT_OK

With NONGIT_OK set, require_work_tree function outside a git repository
gives a syntax error.  This is caused by an incorrect use of "test" that
didn't anticipate $(git rev-parse --is-inside-work-tree) may return an
empty string.

Properly quote the argument to "test", and send the standard error stream
to /dev/null to avoid giving duplicate error messages.

Signed-off-by: Gabriel Filion <lelutin@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoimap-send: support CRAM-MD5 authentication
Hitoshi Mitake [Tue, 16 Feb 2010 06:34:07 +0000 (22:34 -0800)] 
imap-send: support CRAM-MD5 authentication

CRAM-MD5 authentication ought to be independent from SSL, but NO_OPENSSL
build will not support this because the base64 and md5 code are used from
the OpenSSL library in this implementation.

Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mv/request-pull-modernize' into jch
Junio C Hamano [Wed, 17 Feb 2010 07:03:40 +0000 (23:03 -0800)] 
Merge branch 'mv/request-pull-modernize' into jch

* mv/request-pull-modernize:
  request-pull: avoid mentioning that the start point is a single commit

14 years agoMerge branch 'jn/makefile-script-lib' into jch
Junio C Hamano [Wed, 17 Feb 2010 07:03:20 +0000 (23:03 -0800)] 
Merge branch 'jn/makefile-script-lib' into jch

* jn/makefile-script-lib:
  Do not install shell libraries executable

14 years agoMerge branch 'sp/push-sideband' into jch
Junio C Hamano [Wed, 17 Feb 2010 07:02:43 +0000 (23:02 -0800)] 
Merge branch 'sp/push-sideband' into jch

* sp/push-sideband:
  receive-pack: Send internal errors over side-band #2
  t5401: Use a bare repository for the remote peer
  receive-pack: Send hook output over side band #2
  receive-pack: Wrap status reports inside side-band-64k
  receive-pack: Refactor how capabilities are shown to the client
  send-pack: demultiplex a sideband stream with status data
  run-command: support custom fd-set in async
  run-command: Allow stderr to be a caller supplied pipe

14 years agoMerge branch 'tc/maint-transport-ls-remote-with-void' into jch
Junio C Hamano [Wed, 17 Feb 2010 07:02:21 +0000 (23:02 -0800)] 
Merge branch 'tc/maint-transport-ls-remote-with-void' into jch

* tc/maint-transport-ls-remote-with-void:
  transport: add got_remote_refs flag

14 years agoMerge branch 'ml/maint-grep-doc' into jch
Junio C Hamano [Wed, 17 Feb 2010 07:01:28 +0000 (23:01 -0800)] 
Merge branch 'ml/maint-grep-doc' into jch

* ml/maint-grep-doc:
  grep documentation: clarify what files match

14 years agogrep documentation: clarify what files match
Mark Lodato [Tue, 16 Feb 2010 00:25:40 +0000 (19:25 -0500)] 
grep documentation: clarify what files match

Clarify that git-grep(1) searches only tracked files, and that each
<pathspec> is a pathspec, as in any other ordinary git commands.

Add an example to show a simple use case for searching all .c and .h
files in the current directory and below.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/maint-fix-test-perm' into jch
Junio C Hamano [Wed, 17 Feb 2010 06:50:22 +0000 (22:50 -0800)] 
Merge branch 'jc/maint-fix-test-perm' into jch

* jc/maint-fix-test-perm:
  lib-patch-mode.sh: Fix permission
  t6000lib: Fix permission

14 years agoMerge branch 'jc/typo'
Junio C Hamano [Wed, 17 Feb 2010 06:45:14 +0000 (22:45 -0800)] 
Merge branch 'jc/typo'

* jc/typo:
  Typofixes outside documentation area

14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 17 Feb 2010 06:40:45 +0000 (22:40 -0800)] 
Merge branch 'maint'

* maint:
  Prepare 1.7.0.1 release notes
  Fix use of mutex in threaded grep
  dwim_ref: fix dangling symref warning
  stash pop: remove 'apply' options during 'drop' invocation
  diff: make sure --output=/bad/path is caught
  Remove hyphen from "git-command" in two error messages

14 years agoPrepare 1.7.0.1 release notes
Junio C Hamano [Wed, 17 Feb 2010 06:25:03 +0000 (22:25 -0800)] 
Prepare 1.7.0.1 release notes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/maint-grep-one-thread-mutex-fix' into maint
Junio C Hamano [Wed, 17 Feb 2010 06:23:25 +0000 (22:23 -0800)] 
Merge branch 'jc/maint-grep-one-thread-mutex-fix' into maint

* jc/maint-grep-one-thread-mutex-fix:
  Fix use of mutex in threaded grep

14 years agoFix use of mutex in threaded grep
Junio C Hamano [Tue, 16 Feb 2010 02:34:28 +0000 (18:34 -0800)] 
Fix use of mutex in threaded grep

The program can decide at runtime not to use threading even if the support
is compiled in.  In such a case, mutexes are not necessary and left
uninitialized.  But the code incorrectly tried to take and release the
read_sha1_mutex unconditionally.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Fredrik Kuivinen <frekui@gmail.com>
14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Tue, 16 Feb 2010 23:05:02 +0000 (15:05 -0800)] 
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
  dwim_ref: fix dangling symref warning
  stash pop: remove 'apply' options during 'drop' invocation
  diff: make sure --output=/bad/path is caught
  Remove hyphen from "git-command" in two error messages

14 years agoMerge branch 'maint-1.6.5' into maint-1.6.6
Junio C Hamano [Tue, 16 Feb 2010 23:04:55 +0000 (15:04 -0800)] 
Merge branch 'maint-1.6.5' into maint-1.6.6

* maint-1.6.5:
  dwim_ref: fix dangling symref warning
  stash pop: remove 'apply' options during 'drop' invocation
  diff: make sure --output=/bad/path is caught