Code

git.git
14 years agorefs: ref entry with NULL sha1 is can be a dangling symref
Junio C Hamano [Tue, 16 Mar 2010 05:12:55 +0000 (22:12 -0700)]
refs: ref entry with NULL sha1 is can be a dangling symref

Brandon Casey noticed that t5505 had accidentally broken its && chain,
hiding inconsistency between the code that writes the warning to the
standard output and the test that expects to see the warning on the
standard error, which was introduced by f8948e2 (remote prune: warn
dangling symrefs, 2009-02-08).

It turns out that the issue is deeper than that.  After f8948e2, a symref
that is dangling is marked with a NULL sha1, and the idea of using NULL
sha1 to mean a deleted ref was scrapped, but somehow a follow-up eafb452
(do_one_ref(): null_sha1 check is not about broken ref, 2009-07-22)
incorrectly reorganized do_one_ref(), still thinking NULL sha1 is never
used in the code.

Fix this by:

 - adopt Brandon's fix to t5505 test;

 - introduce REF_BROKEN flag to mark a ref that fails to resolve (dangling
   symref);

 - move the check for broken ref back inside the "if we are skipping
   dangling refs" code block.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogrep: enable threading for context line printing
René Scharfe [Mon, 15 Mar 2010 16:21:10 +0000 (17:21 +0100)]
grep: enable threading for context line printing

If context lines are to be printed, grep separates them with hunk marks
("--\n").  These marks are printed between matches from different files,
too.  They are not printed before the first file, though.

Threading was disabled when context line printing was enabled because
avoiding to print the mark before the first line was an unsolved
synchronisation problem.  This patch separates the code for printing
hunk marks for the threaded and the unthreaded case, allowing threading
to be turned on together with the common -ABC options.

->show_hunk_mark, which controls printing of hunk marks between files in
show_line(), is now set in grep_buffer_1(), but only if some results
have already been printed and threading is disabled.  The threaded case
is handled in work_done().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-read-tree: clarify 2-tree merge
Michael J Gruber [Mon, 15 Mar 2010 10:54:46 +0000 (11:54 +0100)]
Documentation/git-read-tree: clarify 2-tree merge

Clarify the description of the 2-tree merge by defining the terms
which are used in the table, and by applying some small linguistic
changes.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-read-tree: fix table layout
Michael J Gruber [Mon, 15 Mar 2010 10:54:45 +0000 (11:54 +0100)]
Documentation/git-read-tree: fix table layout

Asciidoc takes the first non-space character in the first line of the
paragraph as a reference point for preformatted layout, so adjust to
that to make the table align.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'sd/format-patch-to'
Junio C Hamano [Mon, 15 Mar 2010 07:58:55 +0000 (00:58 -0700)]
Merge branch 'sd/format-patch-to'

* sd/format-patch-to:
  send-email: add --no-cc, --no-to, and --no-bcc
  format-patch: add --no-cc, --no-to, and --no-add-headers
  format-patch: use a string_list for headers
  Add 'git format-patch --to=' option and 'format.to' configuration variable.

14 years agoMerge branch 'tc/http-cleanup'
Junio C Hamano [Mon, 15 Mar 2010 07:58:50 +0000 (00:58 -0700)]
Merge branch 'tc/http-cleanup'

* tc/http-cleanup:
  remote-curl: init walker only when needed
  remote-curl: use http_fetch_ref() instead of walker wrapper
  http: init and cleanup separately from http-walker
  http-walker: cleanup more thoroughly
  http-push: remove "|| 1" to enable verbose check
  t554[01]-http-push: refactor, add non-ff tests
  t5541-http-push: check that ref is unchanged for non-ff test

14 years agoMerge branch 'tc/transport-verbosity'
Junio C Hamano [Mon, 15 Mar 2010 07:58:42 +0000 (00:58 -0700)]
Merge branch 'tc/transport-verbosity'

* tc/transport-verbosity:
  transport: update flags to be in running order
  fetch and pull: learn --progress
  push: learn --progress
  transport->progress: use flag authoritatively
  clone: support multiple levels of verbosity
  push: support multiple levels of verbosity
  fetch: refactor verbosity option handling into transport.[ch]
  Documentation/git-push: put --quiet before --verbose
  Documentation/git-pull: put verbosity options before merge/fetch ones
  Documentation/git-clone: mention progress in -v

Conflicts:
transport.h

14 years agoMerge branch 'ld/push-porcelain'
Junio C Hamano [Mon, 15 Mar 2010 07:58:24 +0000 (00:58 -0700)]
Merge branch 'ld/push-porcelain'

* ld/push-porcelain:
  t5516: Use test_cmp when appropriate
  git-push: add tests for git push --porcelain
  git-push: make git push --porcelain print "Done"
  git-push: send "To <remoteurl>" messages to the standard output in --porcelain mode
  git-push: fix an advice message so it goes to stderr

Conflicts:
transport.c

14 years agoMerge branch 'jh/notes'
Junio C Hamano [Mon, 15 Mar 2010 07:52:06 +0000 (00:52 -0700)]
Merge branch 'jh/notes'

* jh/notes: (33 commits)
  Documentation: fix a few typos in git-notes.txt
  notes: fix malformed tree entry
  builtin-notes: Minor (mostly parse_options-related) fixes
  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
  ...

Conflicts:
Makefile

14 years agorebase--interactive: don't require what's rebased to be a branch
Dave Olszewski [Mon, 15 Mar 2010 04:48:22 +0000 (21:48 -0700)]
rebase--interactive: don't require what's rebased to be a branch

git rebase allows you to specify a non-branch commit-ish as the "branch"
argument, which leaves HEAD detached when it's finished.  This is
occasionally useful, and this patch brings the same functionality to git
rebase --interactive.

Signed-off-by: Dave Olszewski <cxreg@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-send-email.perl - try to give real name of the calling host to HELO/EHLO
Jari Aalto [Sun, 14 Mar 2010 15:16:45 +0000 (17:16 +0200)]
git-send-email.perl - try to give real name of the calling host to HELO/EHLO

Add new functions maildomain_net(), maildomain_mta() and
maildomain(), which return FQDN where possible for use in
send_message(). The value is passed to Net::SMTP HELO/EHLO
handshake. The domain name can also be set via new --smtp-domain
option.

The default value in Net::SMTP may not get through:

  Net::SMTP=GLOB(0x267ec28)>>> EHLO localhost.localdomain
  Net::SMTP=GLOB(0x267ec28)<<< 550 EHLO argument does not match calling host

whereas using the FQDN that matches the IP, the result is:

  Net::SMTP=GLOB(0x15b8e80)>>> EHLO host.example.com
  Net::SMTP=GLOB(0x15b8e80)<<< 250-host.example.com Hello host.example.com [192.168.1.7]

The maildomain*() code is based on ideas in Perl library
Test::Reporter by Graham Barr <gbarr@pobox.com> and Mark Overmeer
<mailtools@overmeer.net> released under the same terms as Perl
itself.

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-send-email.perl: add option --smtp-debug
Jari Aalto [Sun, 14 Mar 2010 15:16:09 +0000 (17:16 +0200)]
git-send-email.perl: add option --smtp-debug

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-send-email.perl: improve error message in send_message()
Jari Aalto [Sun, 14 Mar 2010 15:15:33 +0000 (17:15 +0200)]
git-send-email.perl: improve error message in send_message()

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests for "git add ignored-dir/file" without -f
Junio C Hamano [Mon, 1 Mar 2010 03:12:31 +0000 (19:12 -0800)]
tests for "git add ignored-dir/file" without -f

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodir: fix COLLECT_IGNORED on excluded prefixes
Jeff King [Thu, 11 Mar 2010 07:15:43 +0000 (02:15 -0500)]
dir: fix COLLECT_IGNORED on excluded prefixes

As we walk the directory tree, if we see an ignored path, we
want to add it to the ignored list only if it matches any
pathspec that we were given. We used to check for the
pathspec to appear explicitly. E.g., if we see "subdir/file"
and it is excluded, we check to see if we have "subdir/file"
in our pathspec.

However, this interacts badly with the optimization to avoid
recursing into ignored subdirectories. If "subdir" as a
whole is ignored, then we never recurse, and consider only
whether "subdir" itself is in our pathspec.  It would not
match a pathspec of "subdir/file" explicitly, even though it
is the reason that subdir/file would be excluded.

This manifests itself to the user as "git add subdir/file"
failing to correctly note that the pathspec was ignored.

This patch extends the in_pathspec logic to include prefix
directory case.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot0050: mark non-working test as such
Junio C Hamano [Mon, 1 Mar 2010 07:31:21 +0000 (23:31 -0800)]
t0050: mark non-working test as such

The test is to prepare an empty file "camelcase" in the index, remove
and replace it with another file "CamelCase" with "1" as its contents
in the working tree, and add it to the index, in a repository configured
to be case insensitive.

However, the test actually checked ls-files knows about a pathname that
matches "camelcase" case insensitively.  It didn't check if the added
contents actually was the updated one.

Mark the test as non-working.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit status: ignoring untracked files must apply to submodules too
Jens Lehmann [Sat, 13 Mar 2010 22:00:27 +0000 (23:00 +0100)]
git status: ignoring untracked files must apply to submodules too

Since 1.7.0 submodules are considered dirty when they contain untracked
files. But when git status is called with the "-uno" option, the user
asked to ignore untracked files, so they must be ignored in submodules
too. To achieve this, the new flag DIFF_OPT_IGNORE_UNTRACKED_IN_SUBMODULES
is introduced.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sun, 14 Mar 2010 05:31:42 +0000 (21:31 -0800)]
Merge branch 'maint'

* maint:
  don't use default revision if a rev was specified
  for_each_recent_reflog_ent(): use strbuf, fix offset handling
  t/Makefile: remove test artifacts upon "make clean"
  blame: fix indent of line numbers

14 years agodon't use default revision if a rev was specified
Dave Olszewski [Sat, 13 Mar 2010 22:47:05 +0000 (14:47 -0800)]
don't use default revision if a rev was specified

If a revision is specified, it happens not to have any commits, don't
use the default revision.  By doing so, surprising and undesired
behavior can happen, such as showing the reflog for HEAD when a branch
was specified.

[jc: squashed a test from René]

Signed-off-by: Dave Olszewski <cxreg@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofor_each_recent_reflog_ent(): use strbuf, fix offset handling
René Scharfe [Sat, 13 Mar 2010 17:37:50 +0000 (18:37 +0100)]
for_each_recent_reflog_ent(): use strbuf, fix offset handling

As Vladimir reported, "git log -g refs/stash" surprisingly showed the reflog
of HEAD if the message in the reflog file was too long.  To fix this, convert
for_each_recent_reflog_ent() to use strbuf_getwholeline() instead of fgets(),
for safety and to avoid any size limits for reflog entries.

Also reverse the logic of the part of the function that only looks at file
tails.  It used to close the file if fgets() succeeded.  The following
fgets() call in the while loop was likely to fail in this case, too, so
passing an offset to for_each_recent_reflog_ent() never worked.  Change it to
error out if strbuf_getwholeline() fails instead.

Reported-by: Vladimir Panteleev <vladimir@thecybershadow.net>
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot/Makefile: remove test artifacts upon "make clean"
Junio C Hamano [Sat, 13 Mar 2010 20:41:20 +0000 (12:41 -0800)]
t/Makefile: remove test artifacts upon "make clean"

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoblame: fix indent of line numbers
René Scharfe [Sat, 13 Mar 2010 10:25:12 +0000 (11:25 +0100)]
blame: fix indent of line numbers

Correct the calculation of the number of digits for line counts of the
form 10^n-1 (9, 99, ...) in lineno_width().  This makes blame stop
printing an extra space before the line numbers of files with that many
total lines.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Sat, 13 Mar 2010 20:02:54 +0000 (12:02 -0800)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  t9150,t9151: Add rewrite-root option to init
  git-svn: Fix merge detecting with rewrite-root

14 years agot9150,t9151: Add rewrite-root option to init
Tuomas Suutari [Wed, 24 Feb 2010 18:09:02 +0000 (20:09 +0200)]
t9150,t9151: Add rewrite-root option to init

The rewrite-root option seems to be a bit problematic with merge
detecting, so it's better to have a merge detecting test with it
turned on.

Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agogit-svn: Fix merge detecting with rewrite-root
Tuomas Suutari [Wed, 24 Feb 2010 18:09:01 +0000 (20:09 +0200)]
git-svn: Fix merge detecting with rewrite-root

Detecting of merges from svn:mergeinfo or svk merge tickets failed
with rewrite-root option. This fixes it.

Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
14 years agogit status: Fix false positive "new commits" output for dirty submodules
Jens Lehmann [Fri, 12 Mar 2010 21:23:52 +0000 (22:23 +0100)]
git status: Fix false positive "new commits" output for dirty submodules

Testing if the output "new commits" should appear in the long format of
"git status" is done by comparing the hashes of the diffpair. This always
resulted in printing "new commits" for submodules that contained untracked
or modified content, even if they did not contain new commits. The reason
was that match_stat_with_submodule() did set the "changed" flag for dirty
submodules, resulting in two->sha1 being set to the null_sha1 at the call
sites, which indicates that new commits are present. This is changed so
that when no new commits are present, the same object names are in the
sha1 field for both sides of the filepair, and the working tree side will
have the "dirty_submodule" flag set when appropriate. For a submodule to
be seen as modified even when it just has a dirty work tree, some
conditions had to be extended to also check for the "dirty_submodule"
flag.

Unfortunately the test case that should have found this bug had been
changed incorrectly too. It is fixed and extended to test for other
combinations too.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoRefactor dirty submodule detection in diff-lib.c
Jens Lehmann [Thu, 11 Mar 2010 21:50:25 +0000 (22:50 +0100)]
Refactor dirty submodule detection in diff-lib.c

Moving duplicated code into the new function match_stat_with_submodule().
Replacing the implicit activation of detailed checks for the dirtiness of
submodules when DIFF_FORMAT_PATCH was selected with explicitly setting
the recently added DIFF_OPT_DIRTY_SUBMODULES option in diff_setup_done().

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Sat, 13 Mar 2010 06:13:22 +0000 (22:13 -0800)]
Merge branch 'maint'

* maint:
  t9400: Use test_cmp when appropriate

14 years agonotes: rework subcommands and parse options
Stephen Boyd [Sat, 27 Feb 2010 08:59:22 +0000 (00:59 -0800)]
notes: rework subcommands and parse options

Running 'git notes copy -h' is not very helfpul right now. It lists
the options for all the git notes subcommands and is rather confusing.
Fix this by splitting cmd_notes() into separate functions for each
subcommand (besides append and edit since they're very similar) and
only providing a usage message for the subcommand.

This has an added benefit of reducing the code complexity while making
it safer and easier to read. The downside is we get some code bloat
from similar setup and teardown needed for notes and options parsing.
We also get a bit stricter in options parsing by only allowing
the ref option to come before the subcommand.

Acked-by: Johan Herland <johan@herland.net>
Cc: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit-notes(1): add a section about the meaning of history
Thomas Rast [Fri, 12 Mar 2010 17:04:37 +0000 (18:04 +0100)]
git-notes(1): add a section about the meaning of history

To the displaying code, the only interesting thing about a notes ref
is that it has a tree of the required format.  However, notes actually
have a history since they are recorded as successive commits.

Make a note about the existence of this history in the manpage, but
keep some doors open if we want to change the details.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agonotes: track whether notes_trees were changed at all
Thomas Rast [Fri, 12 Mar 2010 17:04:36 +0000 (18:04 +0100)]
notes: track whether notes_trees were changed at all

Currently, the notes copying is a bit wasteful since it always creates
new trees, even if no notes were copied at all.

Teach add_note() and remove_note() to flag the affected notes tree as
changed ('dirty').  Then teach builtin/notes.c to use this knowledge
and avoid committing trees that weren't changed.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agonotes: add shorthand --ref to override GIT_NOTES_REF
Thomas Rast [Fri, 12 Mar 2010 17:04:35 +0000 (18:04 +0100)]
notes: add shorthand --ref to override GIT_NOTES_REF

Adds a shorthand option that overrides the GIT_NOTES_REF variable, and
hence determines the notes tree that will be manipulated.  It also
DWIMs a refs/notes/ prefix.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocommit --amend: copy notes to the new commit
Thomas Rast [Fri, 12 Mar 2010 17:04:34 +0000 (18:04 +0100)]
commit --amend: copy notes to the new commit

Teaches 'git commit --amend' to copy notes.  The catch is that this
must also be guarded by --no-post-rewrite, which we use to prevent
--amend from copying notes during a rebase -i 'edit'/'reword'.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorebase: support automatic notes copying
Thomas Rast [Fri, 12 Mar 2010 17:04:33 +0000 (18:04 +0100)]
rebase: support automatic notes copying

Luckily, all the support already happens to be there.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agonotes: implement helpers needed for note copying during rewrite
Thomas Rast [Fri, 12 Mar 2010 17:04:32 +0000 (18:04 +0100)]
notes: implement helpers needed for note copying during rewrite

Implement helper functions to load the rewriting config, and to
actually copy the notes.  Also document the config.

Secondly, also implement an undocumented --for-rewrite=<cmd> option to
'git notes copy' which is used like --stdin, but also puts the
configuration for <cmd> into effect.  It will be needed to support the
copying in git-rebase.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agonotes: implement 'git notes copy --stdin'
Thomas Rast [Fri, 12 Mar 2010 17:04:31 +0000 (18:04 +0100)]
notes: implement 'git notes copy --stdin'

This implements a mass-copy command that takes a sequence of lines in
the format

  <from-sha1> SP <to-sha1> [ SP <rest> ] LF

on stdin, and copies each <from-sha1>'s notes to the <to-sha1>.  The
<rest> is ignored.  The intent, of course, is that this can read the
same input that the 'post-rewrite' hook gets.

The copy_note() function is exposed for everyone's and in particular
the next commit's use.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorebase -i: invoke post-rewrite hook
Thomas Rast [Fri, 12 Mar 2010 17:04:30 +0000 (18:04 +0100)]
rebase -i: invoke post-rewrite hook

Aside from the same issue that rebase also has (remembering the
original commit across a conflict resolution), rebase -i brings an
extra twist: We need to defer writing the rewritten list in the case
of {squash,fixup} because their rewritten result should be the last
commit in the squashed group.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorebase: invoke post-rewrite hook
Thomas Rast [Fri, 12 Mar 2010 17:04:29 +0000 (18:04 +0100)]
rebase: invoke post-rewrite hook

We have to deal with two separate code paths: a normal rebase, which
actually goes through git-am; and rebase {-m|-s}.

The only small issue with both is that they need to remember the
original sha1 across a possible conflict resolution.  rebase -m
already puts this information in $dotest/current, and we just
introduce a similar file for git-am.

Note that in git-am, the hook really only runs when coming from
git-rebase: the code path that sets the $dotest/original-commit file
is guarded by a test for $dotest/rebasing.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocommit --amend: invoke post-rewrite hook
Thomas Rast [Fri, 12 Mar 2010 17:04:28 +0000 (18:04 +0100)]
commit --amend: invoke post-rewrite hook

The rough structure of run_rewrite_hook() comes from
run_receive_hook() in receive-pack.

We introduce a --no-post-rewrite option and use it to avoid the hook
when called from git-rebase -i 'edit'.  The next patch will add full
support in git-rebase, and we only want to invoke the hook once.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: document post-rewrite hook
Thomas Rast [Fri, 12 Mar 2010 17:04:27 +0000 (18:04 +0100)]
Documentation: document post-rewrite hook

This defines the behaviour of the post-rewrite hook support, which
will be implemented in the following patches.

We deliberately do not document how often the hook will be invoked per
rewriting command, but the interface is designed to keep that at
"once".  This would currently not matter too much, since both rebase
and filter-branch are shellscripts and spawn many processes anyway.
However, when a fast sequencer in C is implemented, it will be
beneficial to only have to run the hook once.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSupport showing notes from more than one notes tree
Thomas Rast [Fri, 12 Mar 2010 17:04:26 +0000 (18:04 +0100)]
Support showing notes from more than one notes tree

With this patch, you can set notes.displayRef to a glob that points at
your favourite notes refs, e.g.,

[notes]
displayRef = refs/notes/*

Then git-log and friends will show notes from all trees.

Thanks to Junio C Hamano for lots of feedback, which greatly
influenced the design of the entire series and this commit in
particular.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotest-lib: unset GIT_NOTES_REF to stop it from influencing tests
Thomas Rast [Fri, 12 Mar 2010 17:04:25 +0000 (18:04 +0100)]
test-lib: unset GIT_NOTES_REF to stop it from influencing tests

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot5516: Use test_cmp when appropriate
Junio C Hamano [Fri, 12 Mar 2010 05:51:57 +0000 (21:51 -0800)]
t5516: Use test_cmp when appropriate

Consistently using test_cmp would make debugging test scripts far easier,
as output from them run under "-v" option becomes readable.

Besides, some platforms' "diff" implementations lack "-q" option.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot9400: Use test_cmp when appropriate
Junio C Hamano [Fri, 12 Mar 2010 05:40:33 +0000 (21:40 -0800)]
t9400: Use test_cmp when appropriate

Consistently using test_cmp would make debugging test scripts far easier,
as output from them run under "-v" option becomes readable.

Besides, some platforms' "diff" implementations lack "-q" option.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'sd/init-template'
Junio C Hamano [Wed, 10 Mar 2010 23:32:43 +0000 (15:32 -0800)]
Merge branch 'sd/init-template'

* sd/init-template:
  wrap-for-bin: do not export an empty GIT_TEMPLATE_DIR
  t/t0001-init.sh: add test for 'init with init.templatedir set'
  init: having keywords without value is not a global error.
  Add a "TEMPLATE DIRECTORY" section to git-init[1].
  Add `init.templatedir` configuration variable.

14 years agoMerge branch 'sh/am-keep-cr'
Junio C Hamano [Wed, 10 Mar 2010 23:32:34 +0000 (15:32 -0800)]
Merge branch 'sh/am-keep-cr'

* sh/am-keep-cr:
  git-am: Add tests for `--keep-cr`, `--no-keep-cr` and `am.keepcr`
  git-am: Add am.keepcr and --no-keep-cr to override it
  git-am: Add command line parameter `--keep-cr` passing it to git-mailsplit
  documentation: 'git-mailsplit --keep-cr' is not hidden anymore

14 years agoMerge branch 'cp/add-u-pathspec'
Junio C Hamano [Wed, 10 Mar 2010 23:32:02 +0000 (15:32 -0800)]
Merge branch 'cp/add-u-pathspec'

* cp/add-u-pathspec:
  test for add with non-existent pathspec
  git add -u: die on unmatched pathspec

14 years agoMakefile: update check-docs target
Junio C Hamano [Wed, 10 Mar 2010 23:31:34 +0000 (15:31 -0800)]
Makefile: update check-docs target

When we added bunch of git-remote-* helper backends, we should have
done this to squelch complaints that they do not have their own
manual pages.  Also the entry for git-remote-helpers was not
properly marked as a non-command.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'lt/deepen-builtin-source'
Junio C Hamano [Wed, 10 Mar 2010 23:25:18 +0000 (15:25 -0800)]
Merge branch 'lt/deepen-builtin-source'

* lt/deepen-builtin-source:
  Move 'builtin-*' into a 'builtin/' subdirectory

Conflicts:
Makefile

14 years agogit submodule summary: Handle HEAD as argument when on an unborn branch
Jens Lehmann [Tue, 9 Mar 2010 14:55:32 +0000 (15:55 +0100)]
git submodule summary: Handle HEAD as argument when on an unborn branch

When calling "git submodule summary HEAD" on an unborn branch the output
was empty even when it shouldn't have been ("git submodule summary"
without the HEAD argument prints the expected output since commit
"submodule summary: do not fail before the first commit").

This also fixes "git status" to emit the "Submodule changes to be
committed" section on an unborn branch when used with the
status.submodulesummary config option.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoshow --first-parent/-m: do not default to --cc
Junio C Hamano [Tue, 9 Mar 2010 08:22:54 +0000 (00:22 -0800)]
show --first-parent/-m: do not default to --cc

Given that "git show" always shows some diff and does not walk the history
by default, it is natural to expect "git show --first-parent" to show the
difference between the given commit and its first parent.  It also would
be natural, given that "--cc" is the default, "git show -m" to show
pairwise difference from each of the parents.

We however always defaulted to --cc and there was no way to turn it off.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoshow -c: show patch text
Junio C Hamano [Tue, 9 Mar 2010 07:27:25 +0000 (23:27 -0800)]
show -c: show patch text

Traditionally, "show" defaulted to "show --cc" (dense combined patch), but
asking for combined patch with "show -c" didn't turn the patch output
format on; the placement of this logic in setup_revisions() dates back to
cd2bdc5 (Common option parsing for "git log --diff" and friends,
2006-04-14).

This unfortunately cannot be done as a trivial change of "if dense
combined is asked, default to patch format" done in setup_revisions() to
"if any combined is asked, default to patch format", as "diff-tree -c"
needs to default to raw, while "diff-tree --cc" needs to default to patch,
and they share the codepath.  These command specific defaults are now
handled in the new "tweak" callback that can be customized by individual
command implementations.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorevision: introduce setup_revision_opt
Junio C Hamano [Tue, 9 Mar 2010 06:58:09 +0000 (22:58 -0800)]
revision: introduce setup_revision_opt

So far the last parameter to setup_revisions() was to specify the default
ref when the command line did not give any (typically "HEAD").  This changes
it to take a pointer to a structure so that we can add other information without
touching too many codepaths in later patches.

There is no functionality change.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agot4013: add tests for log -p -m --first-parent
Junio C Hamano [Tue, 9 Mar 2010 05:11:40 +0000 (21:11 -0800)]
t4013: add tests for log -p -m --first-parent

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: improve description of "git reset --keep"
Junio C Hamano [Tue, 9 Mar 2010 01:51:16 +0000 (02:51 +0100)]
Documentation: improve description of "git reset --keep"

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosend-email: add --no-cc, --no-to, and --no-bcc
Stephen Boyd [Sun, 7 Mar 2010 22:46:48 +0000 (14:46 -0800)]
send-email: add --no-cc, --no-to, and --no-bcc

There's no way to override the sendemail.to, sendemail.cc, and
sendemail.bcc config settings. Add options allowing the user to tell
git to ignore the config settings and take whatever is on the command
line.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoformat-patch: add --no-cc, --no-to, and --no-add-headers
Stephen Boyd [Sun, 7 Mar 2010 22:46:47 +0000 (14:46 -0800)]
format-patch: add --no-cc, --no-to, and --no-add-headers

These new options allow users to override their config settings for
format.cc, format.to and format.headers respectively. These options
only make git ignore the config settings and any previous command line
options, so you'll still have to add more command line options to add
extra headers. For example,

$ cat .git/config
[format]
to = Someone <someone@out.there>
$ git format-patch -1 --no-to --to="Someone Else <else@out.there>"

would format a patch addressed to "Someone Else" and not "Someone".

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoformat-patch: use a string_list for headers
Stephen Boyd [Sun, 7 Mar 2010 22:46:46 +0000 (14:46 -0800)]
format-patch: use a string_list for headers

In the next patch we'll need to clear the header lists if the user
specifies --no-add-headers or --no-to or --no-cc. This actually cuts
down on the code a bit too.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogit status: Show detailed dirty status of submodules in long format
Jens Lehmann [Mon, 8 Mar 2010 12:53:19 +0000 (13:53 +0100)]
git status: Show detailed dirty status of submodules in long format

Since 1.7.0 there are three reasons a submodule is considered modified
against the work tree: It contains new commits, modified content or
untracked content. Lets show all reasons in the long format of git status,
so the user can better asses the nature of the modification. This change
does not affect the short and porcelain formats.

Two new members are added to "struct wt_status_change_data" to store the
information gathered by run_diff_files(). wt-status.c uses the new flag
DIFF_OPT_DIRTY_SUBMODULES to tell diff-lib.c it wants to get detailed
dirty information about submodules.

A hint line for submodules is printed in the dirty header when dirty
submodules are present.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.1
Junio C Hamano [Mon, 8 Mar 2010 08:54:05 +0000 (00:54 -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 [Mon, 8 Mar 2010 08:52:01 +0000 (00:52 -0800)]
Merge branch 'maint'

* maint:
  Merge accumulated fixes to prepare for 1.7.0.3

Conflicts:
RelNotes

14 years agoMerge accumulated fixes to prepare for 1.7.0.3
Junio C Hamano [Mon, 8 Mar 2010 08:50:24 +0000 (00:50 -0800)]
Merge accumulated fixes to prepare for 1.7.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mw/maint-gcc-warns-unused-write' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:02 +0000 (00:36 -0800)]
Merge branch 'mw/maint-gcc-warns-unused-write' into maint

* mw/maint-gcc-warns-unused-write:
  run-command.c: fix build warnings on Ubuntu

14 years agoMerge branch 'fn/maint-mkdtemp-compat' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:02 +0000 (00:36 -0800)]
Merge branch 'fn/maint-mkdtemp-compat' into maint

* fn/maint-mkdtemp-compat:
  Fix gitmkdtemp: correct test for mktemp() return value

14 years agoMerge branch 'gb/maint-submodule-env' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:02 +0000 (00:36 -0800)]
Merge branch 'gb/maint-submodule-env' into maint

* gb/maint-submodule-env:
  is_submodule_modified(): clear environment properly
  submodules: ensure clean environment when operating in a submodule
  shell setup: clear_local_git_env() function
  rev-parse: --local-env-vars option
  Refactor list of of repo-local env vars

14 years agoMerge branch 'as/maint-expire' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:01 +0000 (00:36 -0800)]
Merge branch 'as/maint-expire' into maint

* as/maint-expire:
  reflog: honor gc.reflogexpire=never
  prune: honor --expire=never

14 years agoMerge branch 'ml/maint-grep-doc' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:01 +0000 (00:36 -0800)]
Merge branch 'ml/maint-grep-doc' into maint

* ml/maint-grep-doc:
  grep docs: document --no-index option
  grep docs: --cached and <tree>... are incompatible
  grep docs: use AsciiDoc literals consistently
  grep docs: pluralize "Example" section

14 years agoMerge branch 'jk/maint-push-tracking-wo-remote' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:01 +0000 (00:36 -0800)]
Merge branch 'jk/maint-push-tracking-wo-remote' into maint

* jk/maint-push-tracking-wo-remote:
  push: fix segfault for odd config

14 years agoMerge branch 'jc/fetch-param' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:00 +0000 (00:36 -0800)]
Merge branch 'jc/fetch-param' into maint

* jc/fetch-param:
  fetch --all/--multiple: keep all the fetched branch information
  builtin-fetch --all/--multi: propagate options correctly
  t5521: fix and modernize

14 years agoMerge branch 'ne/pack-local-doc' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:00 +0000 (00:36 -0800)]
Merge branch 'ne/pack-local-doc' into maint

* ne/pack-local-doc:
  pack-objects documentation: Fix --honor-pack-keep as well.
  pack-objects documentation: reword "objects that appear in the standard input"
  Documentation: pack-objects: Clarify --local's semantics.

14 years agoMerge branch 'jk/maint-add--interactive-delete' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:00 +0000 (00:36 -0800)]
Merge branch 'jk/maint-add--interactive-delete' into maint

* jk/maint-add--interactive-delete:
  add-interactive: fix bogus diff header line ordering

14 years agoMerge branch 'mm/mkstemps-mode-for-packfiles' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:36:00 +0000 (00:36 -0800)]
Merge branch 'mm/mkstemps-mode-for-packfiles' into maint

* mm/mkstemps-mode-for-packfiles:
  Use git_mkstemp_mode instead of plain mkstemp to create object files
  git_mkstemps_mode: don't set errno to EINVAL on exit.
  Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.
  git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.
  Move gitmkstemps to path.c
  Add a testcase for ACL with restrictive umask.

14 years agoMerge branch 'jc/maint-fix-mailinfo-strip' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:35:59 +0000 (00:35 -0800)]
Merge branch 'jc/maint-fix-mailinfo-strip' into maint

* jc/maint-fix-mailinfo-strip:
  mailinfo: do not strip leading spaces even for a header line

14 years agoMerge branch 'jc/grep-author-all-match-implicit' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:35:59 +0000 (00:35 -0800)]
Merge branch 'jc/grep-author-all-match-implicit' into maint

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

14 years agoMerge branch 'jc/checkout-detached' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:35:59 +0000 (00:35 -0800)]
Merge branch 'jc/checkout-detached' into maint

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

14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Mon, 8 Mar 2010 08:35:58 +0000 (00:35 -0800)]
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:

14 years agogrep: Colorize selected, context, and function lines
Mark Lodato [Sun, 7 Mar 2010 16:52:47 +0000 (11:52 -0500)]
grep: Colorize selected, context, and function lines

Colorize non-matching text of selected lines, context lines, and
function name lines.  The default for all three is no color, but they
can be configured using color.grep.<slot>.  The first two are similar
to the corresponding options in GNU grep, except that GNU grep applies
the color to the entire line, not just non-matching text.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogrep: Colorize filename, line number, and separator
Mark Lodato [Sun, 7 Mar 2010 16:52:46 +0000 (11:52 -0500)]
grep: Colorize filename, line number, and separator

Colorize the filename, line number, and separator in git grep output, as
GNU grep does.  The colors are customizable through color.grep.<slot>.
The default is to only color the separator (in cyan), since this gives
the biggest legibility increase without overwhelming the user with
colors.  GNU grep also defaults cyan for the separator, but defaults to
magenta for the filename and to green for the line number, as well.

There is one difference from GNU grep: When a binary file matches
without -a, GNU grep does not color the <file> in "Binary file <file>
matches", but we do.

Like GNU grep, if --null is given, the null separators are not colored.

For config.txt, use a a sub-list to describe the slots, rather than
a single paragraph with parentheses, since this is much more readable.

Remove the cast to int for `rm_eo - rm_so` since it is not necessary.

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 maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:54:05 +0000 (14:54 -0800)]
Merge branch 'jc/maint-fix-test-perm' into maint-1.6.6

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

14 years agoMerge branch 'sp/maint-push-sideband' into maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:54:01 +0000 (14:54 -0800)]
Merge branch 'sp/maint-push-sideband' into maint-1.6.6

* sp/maint-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 'hm/maint-imap-send-crlf' into maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:53:57 +0000 (14:53 -0800)]
Merge branch 'hm/maint-imap-send-crlf' into maint-1.6.6

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

14 years agoMerge branch 'gf/maint-sh-setup-nongit-ok' into maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:53:53 +0000 (14:53 -0800)]
Merge branch 'gf/maint-sh-setup-nongit-ok' into maint-1.6.6

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

14 years agoMerge branch 'jk/maint-rmdir-fix' into maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:53:50 +0000 (14:53 -0800)]
Merge branch 'jk/maint-rmdir-fix' into maint-1.6.6

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

14 years agoMerge branch 'rs/optim-text-wrap' into maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:53:45 +0000 (14:53 -0800)]
Merge branch 'rs/optim-text-wrap' into maint-1.6.6

* 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 'tr/maint-cherry-pick-list' into maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:53:40 +0000 (14:53 -0800)]
Merge branch 'tr/maint-cherry-pick-list' into maint-1.6.6

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

14 years agoMerge branch 'cc/maint-bisect-paths' into maint-1.6.6
Junio C Hamano [Sun, 7 Mar 2010 22:53:35 +0000 (14:53 -0800)]
Merge branch 'cc/maint-bisect-paths' into maint-1.6.6

* cc/maint-bisect-paths:
  bisect: error out when passing bad path parameters

14 years agoMerge branch 'mw/maint-gcc-warns-unused-write'
Junio C Hamano [Sun, 7 Mar 2010 20:47:18 +0000 (12:47 -0800)]
Merge branch 'mw/maint-gcc-warns-unused-write'

* mw/maint-gcc-warns-unused-write:
  run-command.c: fix build warnings on Ubuntu

14 years agoMerge branch 'as/maint-expire'
Junio C Hamano [Sun, 7 Mar 2010 20:47:17 +0000 (12:47 -0800)]
Merge branch 'as/maint-expire'

* as/maint-expire:
  reflog: honor gc.reflogexpire=never
  prune: honor --expire=never

14 years agoMerge branch 'ml/maint-grep-doc'
Junio C Hamano [Sun, 7 Mar 2010 20:47:17 +0000 (12:47 -0800)]
Merge branch 'ml/maint-grep-doc'

* ml/maint-grep-doc:
  grep docs: document --no-index option
  grep docs: --cached and <tree>... are incompatible
  grep docs: use AsciiDoc literals consistently
  grep docs: pluralize "Example" section

14 years agoMerge branch 'fn/maint-mkdtemp-compat'
Junio C Hamano [Sun, 7 Mar 2010 20:47:17 +0000 (12:47 -0800)]
Merge branch 'fn/maint-mkdtemp-compat'

* fn/maint-mkdtemp-compat:
  Fix gitmkdtemp: correct test for mktemp() return value

14 years agoMerge branch 'gb/maint-submodule-env'
Junio C Hamano [Sun, 7 Mar 2010 20:47:17 +0000 (12:47 -0800)]
Merge branch 'gb/maint-submodule-env'

* gb/maint-submodule-env:
  is_submodule_modified(): clear environment properly
  submodules: ensure clean environment when operating in a submodule
  shell setup: clear_local_git_env() function
  rev-parse: --local-env-vars option
  Refactor list of of repo-local env vars

14 years agoMerge branch 'ne/pack-local-doc'
Junio C Hamano [Sun, 7 Mar 2010 20:47:16 +0000 (12:47 -0800)]
Merge branch 'ne/pack-local-doc'

* ne/pack-local-doc:
  pack-objects documentation: Fix --honor-pack-keep as well.
  pack-objects documentation: reword "objects that appear in the standard input"
  Documentation: pack-objects: Clarify --local's semantics.

14 years agoMerge branch 'mb/shortlog-nongit-stdin'
Junio C Hamano [Sun, 7 Mar 2010 20:47:16 +0000 (12:47 -0800)]
Merge branch 'mb/shortlog-nongit-stdin'

* mb/shortlog-nongit-stdin:
  shortlog: warn the user when there is no input

14 years agoMerge branch 'jk/maint-push-tracking-wo-remote'
Junio C Hamano [Sun, 7 Mar 2010 20:47:16 +0000 (12:47 -0800)]
Merge branch 'jk/maint-push-tracking-wo-remote'

* jk/maint-push-tracking-wo-remote:
  push: fix segfault for odd config

14 years agoMerge branch 'jc/fetch-param'
Junio C Hamano [Sun, 7 Mar 2010 20:47:16 +0000 (12:47 -0800)]
Merge branch 'jc/fetch-param'

* jc/fetch-param:
  fetch --all/--multiple: keep all the fetched branch information
  builtin-fetch --all/--multi: propagate options correctly
  t5521: fix and modernize

14 years agoMerge branch 'il/loosen-remote-helper-names'
Junio C Hamano [Sun, 7 Mar 2010 20:47:15 +0000 (12:47 -0800)]
Merge branch 'il/loosen-remote-helper-names'

* il/loosen-remote-helper-names:
  Allow '+', '-' and '.' in remote helper names

14 years agoMerge branch 'nd/root-git'
Junio C Hamano [Sun, 7 Mar 2010 20:47:15 +0000 (12:47 -0800)]
Merge branch 'nd/root-git'

* nd/root-git:
  Add test for using Git at root of file system
  Support working directory located at root
  Move offset_1st_component() to path.c
  init-db, rev-parse --git-dir: do not append redundant slash
  make_absolute_path(): Do not append redundant slash

Conflicts:
setup.c
sha1_file.c

14 years agoMerge branch 'js/runtime-prefix-trace-not-warn'
Junio C Hamano [Sun, 7 Mar 2010 20:47:15 +0000 (12:47 -0800)]
Merge branch 'js/runtime-prefix-trace-not-warn'

* js/runtime-prefix-trace-not-warn:
  Print RUNTIME_PREFIX warning only when GIT_TRACE is set

14 years agoMerge branch 'mm/mkstemps-mode-for-packfiles'
Junio C Hamano [Sun, 7 Mar 2010 20:47:14 +0000 (12:47 -0800)]
Merge branch 'mm/mkstemps-mode-for-packfiles'

* mm/mkstemps-mode-for-packfiles:
  Use git_mkstemp_mode instead of plain mkstemp to create object files
  git_mkstemps_mode: don't set errno to EINVAL on exit.
  Use git_mkstemp_mode and xmkstemp_mode in odb_mkstemp, not chmod later.
  git_mkstemp_mode, xmkstemp_mode: variants of gitmkstemps with mode argument.
  Move gitmkstemps to path.c
  Add a testcase for ACL with restrictive umask.

14 years agoMerge branch 'jk/maint-add--interactive-delete'
Junio C Hamano [Sun, 7 Mar 2010 20:47:14 +0000 (12:47 -0800)]
Merge branch 'jk/maint-add--interactive-delete'

* jk/maint-add--interactive-delete:
  add-interactive: fix bogus diff header line ordering