git.git
15 years agoMerge branch 'jk/color-parse'
Junio C Hamano [Thu, 22 Jan 2009 00:50:34 +0000 (16:50 -0800)]
Merge branch 'jk/color-parse'

* jk/color-parse:
  Optimize color_parse_mem
  expand --pretty=format color options
  color: make it easier for non-config to parse color specs

15 years agoMerge branch 'jc/maint-format-patch-o-relative'
Junio C Hamano [Thu, 22 Jan 2009 00:50:19 +0000 (16:50 -0800)]
Merge branch 'jc/maint-format-patch-o-relative'

* jc/maint-format-patch-o-relative:
  Teach format-patch to handle output directory relative to cwd

Conflicts:
t/t4014-format-patch.sh

15 years agoMerge branch 'kb/am-directory'
Junio C Hamano [Thu, 22 Jan 2009 00:47:14 +0000 (16:47 -0800)]
Merge branch 'kb/am-directory'

* kb/am-directory:
  git-am: fix shell quoting
  git-am: add --directory=<dir> option

15 years agobash completion: add 'rename' subcommand to git-remote
Markus Heidelberg [Wed, 21 Jan 2009 19:14:55 +0000 (20:14 +0100)]
bash completion: add 'rename' subcommand to git-remote

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 21 Jan 2009 09:08:10 +0000 (01:08 -0800)]
Merge branch 'maint'

* maint:
  Rename diff.suppress-blank-empty to diff.suppressBlankEmpty

15 years agoMerge branch 'bs/maint-rename-populate-filespec'
Junio C Hamano [Wed, 21 Jan 2009 09:07:33 +0000 (01:07 -0800)]
Merge branch 'bs/maint-rename-populate-filespec'

* bs/maint-rename-populate-filespec:
  Rename detection: Avoid repeated filespec population

15 years agoRename diff.suppress-blank-empty to diff.suppressBlankEmpty
Johannes Schindelin [Tue, 20 Jan 2009 21:08:33 +0000 (22:08 +0100)]
Rename diff.suppress-blank-empty to diff.suppressBlankEmpty

All the other config variables use CamelCase.  This config variable should
not be an exception.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotutorial-2: Update with the new "git commit" ouput
Santi Béjar [Tue, 20 Jan 2009 11:29:04 +0000 (12:29 +0100)]
tutorial-2: Update with the new "git commit" ouput

An earlier commit c5ee71f (commit: more compact summary and without extra
quotes, 2009-01-19) changed the "git commit" output when creating a
commit.  This patch updates the example session in the tutorial to match
the new output.

Signed-off-by: Santi Béjar <santi@agolina.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRename detection: Avoid repeated filespec population
Björn Steinbrink [Tue, 20 Jan 2009 15:59:57 +0000 (16:59 +0100)]
Rename detection: Avoid repeated filespec population

In diffcore_rename, we assume that the blob contents in the filespec
aren't required anymore after estimate_similarity has been called and thus
we free it. But estimate_similarity might return early when the file sizes
differ too much. In that case, cnt_data is never set and the next call to
estimate_similarity will populate the filespec again, eventually rereading
the same blob over and over again.

To fix that, we first get the blob sizes and only when the blob contents
are actually required, and when cnt_data will be set, the full filespec is
populated, once.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix naming scheme for configure cache variables.
Ralf Wildenhues [Mon, 19 Jan 2009 20:34:36 +0000 (21:34 +0100)]
Fix naming scheme for configure cache variables.

In order to be cached, configure variables need to contain the
string '_cv_', and they should begin with a package-specific
prefix in order to avoid interfering with third-party macros.
Rename ld_dashr, ld_wl_rpath, ld_rpath to git_cv_ld_dashr etc.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMakefile: use shell for-loop rather than Make's foreach loop during install
Brandon Casey [Tue, 20 Jan 2009 01:44:03 +0000 (19:44 -0600)]
Makefile: use shell for-loop rather than Make's foreach loop during install

The install target uses a foreach loop to generate a single long shell
command line to handle installation of the built-in git commands.  The
maximum length of the argument list varies by platform, and this use of
foreach quickly grows the length of the argument list.  Current git can
exceed the default maximum argument list length on IRIX 6.5 of 20480
depending on the installation path.

Rather than using make's foreach loop to pre-generate the shell command
line, use a shell for-loop and allow the shell to iterate through each of
the built-in commands.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agouse uppercase POSIX compliant signals for the 'trap' command
Markus Heidelberg [Mon, 19 Jan 2009 23:43:26 +0000 (00:43 +0100)]
use uppercase POSIX compliant signals for the 'trap' command

In 'man 1p trap' there is written:

    "Implementations may permit names with the SIG prefix or ignore case
    in signal names as an extension."

So change the lowercase signals to uppercase, which is POSIX compliant
instead of being an extension.

There wasn't anybody claiming that it doesn't work, but there was a bug
with using a signal with the SIG prefix, which is an extension as well.
So let's play it safe and change it, since it doesn't hurt anyone.

While at it, also convert 8 indentation spaces to 1 tab character.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocontrib/difftool: remove distracting 'echo' in the SIGINT handler
Markus Heidelberg [Mon, 19 Jan 2009 23:41:18 +0000 (00:41 +0100)]
contrib/difftool: remove distracting 'echo' in the SIGINT handler

When interrupting git-difftool with Ctrl-C, the output of this echo
command led to having the cursor at the beginning of the line below the
shell prompt.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocontrib/difftool: change trap condition from SIGINT to INT
Markus Heidelberg [Mon, 19 Jan 2009 23:38:16 +0000 (00:38 +0100)]
contrib/difftool: change trap condition from SIGINT to INT

git-difftool worked for me on an up-to-date Gentoo Linux at home, but
didn't work on a somewhat older Ubuntu Linux 7.10 at work and failed
with the following error, where 'Makefile' was locally modified:

    trap: 244: SIGINT: bad trap
    external diff died, stopping at Makefile.

In 'man 1p trap' there is written:

    "The condition can be EXIT, 0 (equivalent to EXIT), or a signal
    specified using a symbolic name, without the SIG prefix, [...]"

    "Implementations may permit names with the SIG prefix or ignore case
    in signal names as an extension."

So now we do it the POSIX compliant way instead of using an extension.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocommit: more compact summary and without extra quotes
Santi Béjar [Mon, 19 Jan 2009 22:45:16 +0000 (23:45 +0100)]
commit: more compact summary and without extra quotes

Update the report format again to save the screen real estates, while
avoiding from enclosing the one-line summary of the commit log inside
double quotes pair, which looks awkward when the message begins or ends
with a double quote.  The old format looked like this:

    [master]: created d9a5491: "foo:bar"

Simply removing the double quotes were found to be confusing as a message
often begins with a short-word (area of the system) and a colon.

The new format looks like this:

    [master d9a5491] foo:bar

As discussed in the git mailing list:

    http://thread.gmane.org/gmane.comp.version-control.git/101687/focus=101735

Signed-off-by: Santi Béjar <santi@agolina.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoOptimize color_parse_mem
René Scharfe [Tue, 20 Jan 2009 04:30:30 +0000 (23:30 -0500)]
Optimize color_parse_mem

Commit 5ef8d77a implemented color_parse_mem, a function for
parsing colors from a non-NUL-terminated string, by simply
allocating a new NUL-terminated string and calling
color_parse. This had a small but measurable speed impact on
a user format that used the advanced color parsing. E.g.,

  # uses quick parsing
  $ time ./git log --pretty=tformat:'%Credfoo%Creset' >/dev/null
  real    0m0.673s
  user    0m0.652s
  sys     0m0.016s

  # uses color_parse_mem
  $ time ./git log --pretty=tformat:'%C(red)foo%C(reset)' >/dev/null
  real    0m0.692s
  user    0m0.660s
  sys     0m0.032s

This patch implements color_parse_mem as the primary
function, with color_parse as a wrapper for strings. This
gives comparable timings to the first case above.

Original patch by René. Commit message and debugging by Jeff
King.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'kc/maint-diff-bwi-fix'
Junio C Hamano [Tue, 20 Jan 2009 05:17:47 +0000 (21:17 -0800)]
Merge branch 'kc/maint-diff-bwi-fix'

* kc/maint-diff-bwi-fix:
  test more combinations of ignore-whitespace options to diff

15 years agotest more combinations of ignore-whitespace options to diff
Keith Cascio [Thu, 15 Jan 2009 00:48:24 +0000 (16:48 -0800)]
test more combinations of ignore-whitespace options to diff

There are three flags involved (-w -b and --ignore-space-at-eol) which
makes 8 combinations possible in total, but only 3 cases are tested (none,
-w alone and -b alone).

This adds the other 5 cases.

Signed-off-by: Keith Cascio <keith@cs.ucla.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Tue, 20 Jan 2009 03:58:58 +0000 (19:58 -0800)]
Merge branch 'maint'

* maint:
  shell: Document that 'cvs server' is a valid command

15 years agoshell: Document that 'cvs server' is a valid command
Lars Noschinski [Mon, 19 Jan 2009 17:06:43 +0000 (18:06 +0100)]
shell: Document that 'cvs server' is a valid command

git-shell's man page explicitly lists all allowed commands, but 'cvs
server' was missing. Add it.

Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash completion: refactor diff options
Thomas Rast [Mon, 19 Jan 2009 21:18:00 +0000 (22:18 +0100)]
bash completion: refactor diff options

diff, log and show all take the same diff options.  Refactor them from
__git_diff and __git_log into a variable, and complete them in
__git_show too.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash completion: move pickaxe options to log
Thomas Rast [Mon, 19 Jan 2009 21:17:59 +0000 (22:17 +0100)]
bash completion: move pickaxe options to log

Move the options --pickaxe-all and --pickaxe-regex to git-log, where
they make more sense than with git-diff.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodifftool: put the cursor on the editable file for Vim
David Aguilar [Mon, 19 Jan 2009 05:34:29 +0000 (21:34 -0800)]
difftool: put the cursor on the editable file for Vim

You only need to edit worktree files when comparing against
the worktree.  Put the cursor automatically into its window for
vimdiff and gvimdiff to avoid doing <C-w>l every time.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodifftool: fix documentation problems
David Aguilar [Mon, 19 Jan 2009 05:27:19 +0000 (21:27 -0800)]
difftool: fix documentation problems

This patch makes the difftool docs always refer to the
git-difftool script using the dashed form of the name.
Only command examples use the non-dashed form now.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Mon, 19 Jan 2009 06:29:37 +0000 (22:29 -0800)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git-svn: Show UUID in svn info for added directories with svn 1.5.5
  git-svn: avoid importing nested git repos
  git-svn: fix SVN 1.1.x compatibility
  git-svn: Add --localtime option to "fetch"
  git-svn: better attempt to handle broken symlink updates
  git-svn: handle empty files marked as symlinks in SVN

15 years agogit-svn: Show UUID in svn info for added directories with svn 1.5.5
Marcel Koeppen [Mon, 19 Jan 2009 02:02:01 +0000 (03:02 +0100)]
git-svn: Show UUID in svn info for added directories with svn 1.5.5

In svn 1.5.5 the output of "svn info" for added directories was changed
and now shows the repository UUID. This patch implements the same
behavior for "git svn info" and makes t9119-git-svn-info.17 pass if
svn 1.5.5 is used.

Signed-off-by: Marcel Koeppen <git-dev@marzelpan.de>
Acked-by: Eric Wong <normalperson@yhbt.net>
15 years agogit-svn: avoid importing nested git repos
Eric Wong [Mon, 12 Jan 2009 02:23:38 +0000 (18:23 -0800)]
git-svn: avoid importing nested git repos

Some SVN repositories contain git repositories within them
(hopefully accidentally checked in).  Since git refuses to track
nested ".git" repositories, this can be a problem when fetching
updates from SVN.

Thanks to Morgan Christiansson for the report and testing.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit-svn: fix SVN 1.1.x compatibility
Eric Wong [Sun, 18 Jan 2009 06:11:44 +0000 (22:11 -0800)]
git-svn: fix SVN 1.1.x compatibility

The get_log() function in the Perl SVN API introduced the limit
parameter in 1.2.0.  However, this got discarded in our SVN::Ra
compatibility layer when used with SVN 1.1.x.  We now emulate
the limit functionality in older SVN versions by preventing the
original callback from being called if the given limit has been
reached.  This emulation is less bandwidth efficient, but SVN
1.1.x is becoming rarer now.

Additionally, the --limit parameter in svn(1) uses the
aforementioned get_log() functionality change in SVN 1.2.x.
t9129 no longer depends on --limit to work and instead uses
Perl to parse out the commit message.

Thanks to Tom G. Christensen for the bug report.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit-svn: Add --localtime option to "fetch"
Pete Harlan [Sun, 18 Jan 2009 04:10:14 +0000 (20:10 -0800)]
git-svn: Add --localtime option to "fetch"

By default git-svn stores timestamps of fetched commits in
Subversion's UTC format.  Passing --localtime to fetch will convert
them to the timezone of the server on which git-svn is run.

This makes the timestamps of a resulting "git log" agree with what
"svn log" shows for the same repository.

Signed-off-by: Pete Harlan <pgit@pcharlan.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
15 years agogit-svn: better attempt to handle broken symlink updates
Eric Wong [Mon, 12 Jan 2009 00:51:11 +0000 (16:51 -0800)]
git-svn: better attempt to handle broken symlink updates

This is a followup to 7fc35e0e94782bbbefb920875813519038659930,
(workaround a for broken symlinks in SVN).

Since broken SVN clients can commit svn:special files without
the magic "link " prefix, this can affect delta application
when we update the broken svn:special file.  So now we fall
back and retry the delta application on symlinks if having
a "link " prefix fails.

Our behavior differs from svn(1) (v1.5.1) slightly:

  When a svn:special file is created w/o a "link " prefix, svn
  will create a regular file (mode 100644 to git) with the
  contents of the blob as-is.

  Our behavior is to continue creating the symlink (mode 120000
  to git) with the contents of the blob as-is.  While this
  differs from current svn(1) behavior, this is easier and more
  efficient to implement (and the correctness of the svn(1) is
  debatable, since it's a workaround for a bug in the first
  place).

More information on this SVN bug is described here:
  http://subversion.tigris.org/issues/show_bug.cgi?id=2692

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agogit-svn: handle empty files marked as symlinks in SVN
Eric Wong [Mon, 12 Jan 2009 00:51:10 +0000 (16:51 -0800)]
git-svn: handle empty files marked as symlinks in SVN

Broken SVN clients generate empty files with the svn:special set
to '*'.  This attempts to denote a symlink pointing to a file
with an empty path (""), which cannot be generated on a POSIX
system.

Thus, we mimic the behavior of svn(1) and create a zero-byte
file in our tree.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
15 years agomergetool: put the cursor on the editable file for Vim
Markus Heidelberg [Sat, 17 Jan 2009 21:28:45 +0000 (22:28 +0100)]
mergetool: put the cursor on the editable file for Vim

When resolving conflicts, you only need to edit the $MERGED file. Put
the cursor automatically into its window for vimdiff and gvimdiff to
avoid doing <C-w>l every time.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Tested-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agot7700: demonstrate misbehavior of 'repack -a' when local packs exist
Brandon Casey [Fri, 9 Jan 2009 22:14:39 +0000 (16:14 -0600)]
t7700: demonstrate misbehavior of 'repack -a' when local packs exist

The ability to "...fatten [the] local repository by packing everything that
is needed by the local ref into a single new pack, including things that are
borrowed from alternates"[1] is supposed to be provided by the '-a' or '-A'
options to repack when '-l' is not used, but there is a flaw.  For each
pack in the local repository without a .keep file, repack supplies a
--unpacked=<pack> argument to pack-objects.

The --unpacked option to pack-objects, with or without an argument, causes
pack-objects to ignore any object which is packed in a pack not mentioned
in an argument to --unpacked=.  So, if there are local packs, and
'repack -a' is called, then any objects which reside in packs accessible
through alternates will _not_ be packed.  If there are no local packs, then
no --unpacked argument will be supplied, and repack will behave as expected.

[1] http://mid.gmane.org/7v8wrwidi3.fsf@gitster.siamese.dyndns.org

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest more combinations of ignore-whitespace options to diff
Keith Cascio [Thu, 15 Jan 2009 00:48:24 +0000 (16:48 -0800)]
test more combinations of ignore-whitespace options to diff

There are three flags involved (-w -b and --ignore-space-at-eol) which
makes 8 combinations possible in total, but only 3 cases are tested (none,
-w alone and -b alone).

This adds the other 5 cases.

Signed-off-by: Keith Cascio <keith@cs.ucla.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'ds/uintmax-config'
Junio C Hamano [Sun, 18 Jan 2009 07:08:53 +0000 (23:08 -0800)]
Merge branch 'ds/uintmax-config'

* ds/uintmax-config:
  autoconf: Enable threaded delta search when pthreads are supported

15 years agoMerge branch 'gb/gitweb-opml'
Junio C Hamano [Sun, 18 Jan 2009 07:07:19 +0000 (23:07 -0800)]
Merge branch 'gb/gitweb-opml'

* gb/gitweb-opml:
  gitweb: suggest name for OPML view
  gitweb: don't use pathinfo for global actions

15 years agoMerge branch 'mv/apply-parse-opt'
Junio C Hamano [Sun, 18 Jan 2009 07:06:53 +0000 (23:06 -0800)]
Merge branch 'mv/apply-parse-opt'

* mv/apply-parse-opt:
  Resurrect "git apply --flags -" to read from the standard input
  parse-opt: migrate builtin-apply.

15 years agoMerge branch 'tr/rebase-root'
Junio C Hamano [Sun, 18 Jan 2009 07:06:38 +0000 (23:06 -0800)]
Merge branch 'tr/rebase-root'

* tr/rebase-root:
  rebase: update documentation for --root
  rebase -i: learn to rebase root commit
  rebase: learn to rebase root commit
  rebase -i: execute hook only after argument checking

15 years agoMerge branch 'gb/gitweb-patch'
Junio C Hamano [Sun, 18 Jan 2009 07:06:19 +0000 (23:06 -0800)]
Merge branch 'gb/gitweb-patch'

* gb/gitweb-patch:
  gitweb: link to patch(es) view in commit(diff) and (short)log view
  gitweb: add patches view
  gitweb: change call pattern for git_commitdiff
  gitweb: add patch view

Conflicts:
gitweb/gitweb.perl

15 years agoMerge branch 'ap/clone-into-empty'
Junio C Hamano [Sun, 18 Jan 2009 07:05:54 +0000 (23:05 -0800)]
Merge branch 'ap/clone-into-empty'

* ap/clone-into-empty:
  Allow cloning to an existing empty directory
  add is_dot_or_dotdot inline function

15 years agoMerge branch 'jc/maint-format-patch'
Junio C Hamano [Sun, 18 Jan 2009 07:05:50 +0000 (23:05 -0800)]
Merge branch 'jc/maint-format-patch'

* jc/maint-format-patch:
  format-patch: show patch text for the root commit

15 years agoMerge branch 'tr/maint-no-index-fixes'
Junio C Hamano [Sun, 18 Jan 2009 07:05:38 +0000 (23:05 -0800)]
Merge branch 'tr/maint-no-index-fixes'

* tr/maint-no-index-fixes:
  diff --no-index -q: fix endless loop
  diff --no-index: test for pager after option parsing
  diff: accept -- when using --no-index

15 years agoMerge branch 'as/autocorrect-alias'
Junio C Hamano [Sun, 18 Jan 2009 07:05:34 +0000 (23:05 -0800)]
Merge branch 'as/autocorrect-alias'

* as/autocorrect-alias:
  git.c: make autocorrected aliases work

15 years agoMerge branch 'rs/fgrep'
Junio C Hamano [Sun, 18 Jan 2009 07:05:28 +0000 (23:05 -0800)]
Merge branch 'rs/fgrep'

* rs/fgrep:
  grep: don't call regexec() for fixed strings
  grep -w: forward to next possible position after rejected match

15 years agoMerge branch 'rs/maint-shortlog-foldline'
Junio C Hamano [Sun, 18 Jan 2009 07:05:23 +0000 (23:05 -0800)]
Merge branch 'rs/maint-shortlog-foldline'

* rs/maint-shortlog-foldline:
  shortlog: handle multi-line subjects like log --pretty=oneline et. al. do

15 years agoMerge branch 'mh/maint-commit-color-status'
Junio C Hamano [Sun, 18 Jan 2009 07:05:19 +0000 (23:05 -0800)]
Merge branch 'mh/maint-commit-color-status'

* mh/maint-commit-color-status:
  git-status -v: color diff output when color.ui is set
  git-commit: color status output when color.ui is set

15 years agoMerge branch 'maint'
Junio C Hamano [Sun, 18 Jan 2009 07:04:40 +0000 (23:04 -0800)]
Merge branch 'maint'

* maint:
  Update draft release notes for 1.6.1.1
  builtin-fsck: fix off by one head count
  t5540: clarify that http-push does not handle packed-refs on the remote
  http-push: when making directories, have a trailing slash in the path name
  http-push: fix off-by-path_len
  Documentation: let asciidoc align related options
  githooks.txt: add missing word
  builtin-commit.c: do not remove COMMIT_EDITMSG

15 years agoUpdate draft release notes for 1.6.1.1
Junio C Hamano [Sun, 18 Jan 2009 07:04:35 +0000 (23:04 -0800)]
Update draft release notes for 1.6.1.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint-1.6.0' into maint
Junio C Hamano [Sun, 18 Jan 2009 06:39:49 +0000 (22:39 -0800)]
Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
  builtin-fsck: fix off by one head count
  Documentation: let asciidoc align related options
  githooks.txt: add missing word
  builtin-commit.c: do not remove COMMIT_EDITMSG

15 years agobuiltin-fsck: fix off by one head count
Christian Couder [Sun, 18 Jan 2009 03:46:09 +0000 (04:46 +0100)]
builtin-fsck: fix off by one head count

According to the man page, if "git fsck" is passed one or more heads, it
should verify connectivity and validity of only objects reachable from the
heads it is passed.

However, since 5ac0a20 (Make builtin-fsck.c use parse_options.,
2007-10-15) the command behaved as if no heads were passed, when given
only one argument.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocontrib: add 'git difftool' for launching common merge tools
David Aguilar [Fri, 16 Jan 2009 08:00:02 +0000 (00:00 -0800)]
contrib: add 'git difftool' for launching common merge tools

'git difftool' is a git command that allows you to compare and edit files
between revisions using common merge tools.  'git difftool' does what
'git mergetool' does but its use is for non-merge situations such as
when preparing commits or comparing changes against the index.
It uses the same configuration variables as 'git mergetool' and
provides the same command-line interface as 'git diff'.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash: refactor 'git log --pretty=<format>' options
SZEDER Gábor [Fri, 16 Jan 2009 16:02:15 +0000 (17:02 +0100)]
bash: refactor 'git log --pretty=<format>' options

Both 'git log' and 'show' have the same '--pretty=<format>' option
with the same formats.  So refactor these formats into a common
variable.

While at it, also add 'format:' to the list.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash: add missing format-patch command line options
SZEDER Gábor [Fri, 16 Jan 2009 16:02:04 +0000 (17:02 +0100)]
bash: add missing format-patch command line options

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash: remove unnecessary checks for long options with argument
SZEDER Gábor [Fri, 16 Jan 2009 16:01:57 +0000 (17:01 +0100)]
bash: remove unnecessary checks for long options with argument

__gitcomp takes care of it since 5447aac7 (bash: fix long option with
argument double completion, 2008-03-05)

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agot5540: clarify that http-push does not handle packed-refs on the remote
Johannes Schindelin [Sat, 17 Jan 2009 15:41:41 +0000 (16:41 +0100)]
t5540: clarify that http-push does not handle packed-refs on the remote

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agohttp-push: when making directories, have a trailing slash in the path name
Johannes Schindelin [Sat, 17 Jan 2009 15:11:51 +0000 (16:11 +0100)]
http-push: when making directories, have a trailing slash in the path name

The function lock_remote() sends MKCOL requests to make leading
directories; However, if it does not put a forward slash '/' at the end of
the path, the server sends a 301 redirect.

By leaving the '/' in place, we can avoid this additional step.

Incidentally, at least one version of Curl (7.16.3) does not resend
credentials when it follows a 301 redirect, so this commit also fixes
a bug.

Original patch by Tay Ray Chuan <rctay89@gmail.com>.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agohttp-push: fix off-by-path_len
Johannes Schindelin [Sat, 17 Jan 2009 15:36:26 +0000 (16:36 +0100)]
http-push: fix off-by-path_len

When getting the result of remote_ls(), we were advancing the variable
"path" to the relative path inside the repository.

However, then we went on to malloc a bogus amount of memory: we were
subtracting the prefix length _again_, quite possibly getting something
negative, which xmalloc() interprets as really, really much.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: let asciidoc align related options
Markus Heidelberg [Fri, 16 Jan 2009 21:42:33 +0000 (22:42 +0100)]
Documentation: let asciidoc align related options

Fixes the description of the -t option in git-mergetool, which
failed to hint that it takes an argument.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoexpand --pretty=format color options
Jeff King [Sat, 17 Jan 2009 15:38:46 +0000 (10:38 -0500)]
expand --pretty=format color options

Currently, the only colors available to --pretty=format
users are red, green, and blue. Rather than expand it with a
few new colors, this patch makes the usual config color
syntax available, including more colors, backgrounds, and
attributes.

Because colors are no longer bounded to a single word (e.g.,
%Cred), this uses a more advanced syntax that features a
beginning and end delimiter (but the old syntax still
works). So you can now do:

  git log --pretty=tformat:'%C(yellow)%h%C(reset) %s'

to emulate --pretty=oneline, or even

  git log --pretty=tformat:'%C(cyan magenta bold)%s%C(reset)'

if you want to relive the awesomeness of 4-color CGA.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocolor: make it easier for non-config to parse color specs
Jeff King [Sat, 17 Jan 2009 15:32:30 +0000 (10:32 -0500)]
color: make it easier for non-config to parse color specs

We have very featureful color-parsing routines which are
used for color.diff.* and other options. Let's make it
easier to use those routines from other parts of the code.

This patch adds a color_parse_mem() helper function which
takes a length-bounded string instead of a NUL-terminated
one. While the helper is only a few lines long, it is nice
to abstract this out so that:

 - callers don't forget to free() the temporary buffer

 - right now, it is implemented in terms of color_parse().
   But it would be more efficient to reverse this and
   implement color_parse in terms of color_parse_mem.

This also changes the error string for an invalid color not
to mention the word "config", since it is not always
appropriate (and when it is, the context is obvious since
the offending config variable is given).

Finally, while we are in the area, we clean up the parameter
names in the declaration of color_parse; the var and value
parameters were reversed from the actual implementation.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: let asciidoc align related options
Markus Heidelberg [Fri, 16 Jan 2009 21:42:33 +0000 (22:42 +0100)]
Documentation: let asciidoc align related options

Command line options can share the same paragraph of description, if
they are related or synonymous. In these cases they should be written
among each other, so that asciidoc can format them itself.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogithooks.txt: add missing word
Stephan Beyer [Fri, 16 Jan 2009 20:36:06 +0000 (21:36 +0100)]
githooks.txt: add missing word

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobuiltin-commit.c: do not remove COMMIT_EDITMSG
Stephan Beyer [Fri, 16 Jan 2009 19:40:05 +0000 (20:40 +0100)]
builtin-commit.c: do not remove COMMIT_EDITMSG

git-commit tries to remove the file ./COMMIT_EDITMSG instead of
$GIT_DIR/COMMIT_EDITMSG after commit preparation (e.g. running
hooks, launching editor).
This behavior exists since f5bbc3225c4b07 "Port git commit to C".

Some test cases (e.g. t/t7502-commit.sh) rely on the existence of
$GIT_DIR/COMMIT_EDITMSG after committing and, I guess, many people
are used to it.  So it is best not to remove it.

This patch just removes the removal of COMMIT_EDITMSG.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Fri, 16 Jan 2009 02:52:35 +0000 (18:52 -0800)]
Merge branch 'maint'

* maint:
  t3404: Add test case for auto-amending only edited commits after "edit"
  t3404: Add test case for aborted --continue after "edit"
  t3501: check that commits are actually done

15 years agoMerge branch 'maint-1.6.0' into maint
Junio C Hamano [Thu, 15 Jan 2009 22:33:54 +0000 (14:33 -0800)]
Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
  t3404: Add test case for auto-amending only edited commits after "edit"
  t3404: Add test case for aborted --continue after "edit"
  t3501: check that commits are actually done

15 years agot3404: Add test case for auto-amending only edited commits after "edit"
Stephan Beyer [Thu, 15 Jan 2009 12:56:16 +0000 (13:56 +0100)]
t3404: Add test case for auto-amending only edited commits after "edit"

Add a test case for the bugfix introduced by commit c14c3c82d
"git-rebase--interactive: auto amend only edited commit".

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agot3404: Add test case for aborted --continue after "edit"
Stephan Beyer [Thu, 15 Jan 2009 12:56:15 +0000 (13:56 +0100)]
t3404: Add test case for aborted --continue after "edit"

Add a test case for the bugfix introduced by commit 8beb1f33d
"git-rebase-interactive: do not squash commits on abort".

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agot3501: check that commits are actually done
Stephan Beyer [Thu, 15 Jan 2009 13:03:17 +0000 (14:03 +0100)]
t3501: check that commits are actually done

The basic idea of t3501 is to check whether revert
and cherry-pick works on renamed files.
But as there is no pure cherry-pick/revert test, it is
good to also check if commits are actually done in that
scenario.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash-completion: Add comments to remind about required arguments
Ted Pavlic [Thu, 15 Jan 2009 16:02:23 +0000 (11:02 -0500)]
bash-completion: Add comments to remind about required arguments

Add a few simple comments above commands that take arguments. These
comments are meant to remind developers of potential problems that
can occur when the script is sourced on systems with "set -u." Any
function which requires arguments really ought to be called with
explicit arguments given.

Also adds a #!bash to the top of bash completions so that editing
software can always identify that the file is of sh type.

Signed-off-by: Ted Pavlic <ted@tedpavlic.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash-completion: Try bash completions before simple filetype
Ted Pavlic [Thu, 15 Jan 2009 16:02:22 +0000 (11:02 -0500)]
bash-completion: Try bash completions before simple filetype

When a git completion is not found, a bash shell should try bash-type
completions first before going to standard filetype completions. This
patch adds "-o bashdefault" to the completion line. If that option is
not available, it uses the old method.

This behavior was inspired by Mercurial's bash completion script.

Signed-off-by: Ted Pavlic <ted@tedpavlic.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agobash-completion: Support running when set -u is enabled
Ted Pavlic [Thu, 15 Jan 2009 16:02:21 +0000 (11:02 -0500)]
bash-completion: Support running when set -u is enabled

Under "set -u" semantics, it is an error to access undefined variables.
Some user environments may enable this setting in the interactive shell.

In any context where the completion functions access an undefined
variable, accessing a default empty string (aka "${1-}" instead of "$1")
is a reasonable way to code the function, as it silences the undefined
variable error while still supplying an empty string.

In this patch, functions that should always take an argument still use
$1. Functions that have optional arguments use ${1-}.

Signed-off-by: Ted Pavlic <ted@tedpavlic.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Thu, 15 Jan 2009 06:58:46 +0000 (22:58 -0800)]
Merge branch 'maint'

* maint:
  Update draft release notes to 1.6.1.1
  Make t3411 executable
  fix handling of multiple untracked files for git mv -k
  add test cases for "git mv -k"

15 years agoUpdate draft release notes to 1.6.1.1
Junio C Hamano [Thu, 15 Jan 2009 06:43:04 +0000 (22:43 -0800)]
Update draft release notes to 1.6.1.1

15 years agoMerge branch 'maint-1.6.0' into maint
Junio C Hamano [Thu, 15 Jan 2009 06:34:05 +0000 (22:34 -0800)]
Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
  fix handling of multiple untracked files for git mv -k
  add test cases for "git mv -k"

15 years agoMake t3411 executable
Miklos Vajna [Thu, 15 Jan 2009 00:33:19 +0000 (01:33 +0100)]
Make t3411 executable

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-am: fix shell quoting
Junio C Hamano [Thu, 15 Jan 2009 00:29:59 +0000 (16:29 -0800)]
git-am: fix shell quoting

Noticed by Stephan Beyer; the new test is mine.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agofix handling of multiple untracked files for git mv -k
Michael J Gruber [Wed, 14 Jan 2009 17:03:22 +0000 (18:03 +0100)]
fix handling of multiple untracked files for git mv -k

The "-k" option to "git mv" should allow specifying multiple untracked
files. Currently, multiple untracked files raise an assertion if they
appear consecutively as arguments. Fix this by decrementing the loop
index after removing one entry from the array of arguments.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoadd test cases for "git mv -k"
Michael J Gruber [Wed, 14 Jan 2009 17:03:21 +0000 (18:03 +0100)]
add test cases for "git mv -k"

Add test cases for ignoring nonexisting and untracked files using the -k
option to "git mv". There is one known breakage related to multiple
untracked files specfied as consecutive arguments.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoUpdate 1.6.2 draft release notes
Junio C Hamano [Wed, 14 Jan 2009 07:41:32 +0000 (23:41 -0800)]
Update 1.6.2 draft release notes

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Wed, 14 Jan 2009 07:12:51 +0000 (23:12 -0800)]
Merge branch 'maint'

* maint:
  fast-import: Cleanup mode setting.
  Git.pm: call Error::Simple() properly

15 years agoMerge branch 'maint-1.6.0' into maint
Junio C Hamano [Wed, 14 Jan 2009 07:10:50 +0000 (23:10 -0800)]
Merge branch 'maint-1.6.0' into maint

* maint-1.6.0:
  fast-import: Cleanup mode setting.
  Git.pm: call Error::Simple() properly

15 years agoMerge branch 'nd/grep-assume-unchanged'
Junio C Hamano [Wed, 14 Jan 2009 07:10:02 +0000 (23:10 -0800)]
Merge branch 'nd/grep-assume-unchanged'

* nd/grep-assume-unchanged:
  grep: grep cache entries if they are "assume unchanged"
  grep: support --no-ext-grep to test builtin grep

15 years agoMerge branch 'as/maint-shortlog-cleanup'
Junio C Hamano [Wed, 14 Jan 2009 07:10:00 +0000 (23:10 -0800)]
Merge branch 'as/maint-shortlog-cleanup'

* as/maint-shortlog-cleanup:
  builtin-shortlog.c: use string_list_append(), and don't strdup unnecessarily

15 years agoMerge branch 'jc/maint-ls-tree'
Junio C Hamano [Wed, 14 Jan 2009 07:09:57 +0000 (23:09 -0800)]
Merge branch 'jc/maint-ls-tree'

* jc/maint-ls-tree:
  Document git-ls-tree --full-tree
  ls-tree: add --full-tree option

15 years agoMerge branch 'js/bundle-tags'
Junio C Hamano [Wed, 14 Jan 2009 07:09:50 +0000 (23:09 -0800)]
Merge branch 'js/bundle-tags'

* js/bundle-tags:
  bundle: allow rev-list options to exclude annotated tags

15 years agoMerge branch 'js/add-not-submodule'
Junio C Hamano [Wed, 14 Jan 2009 07:09:47 +0000 (23:09 -0800)]
Merge branch 'js/add-not-submodule'

* js/add-not-submodule:
  git add: do not add files from a submodule

15 years agoMerge branch 'pb/maint-git-pm-false-dir'
Junio C Hamano [Wed, 14 Jan 2009 07:09:42 +0000 (23:09 -0800)]
Merge branch 'pb/maint-git-pm-false-dir'

* pb/maint-git-pm-false-dir:
  Git.pm: correctly handle directory name that evaluates to "false"

15 years agoMerge branch 'pj/maint-ldflags'
Junio C Hamano [Wed, 14 Jan 2009 07:09:38 +0000 (23:09 -0800)]
Merge branch 'pj/maint-ldflags'

* pj/maint-ldflags:
  configure clobbers LDFLAGS

15 years agoMerge branch 'fe/cvsserver'
Junio C Hamano [Wed, 14 Jan 2009 07:09:35 +0000 (23:09 -0800)]
Merge branch 'fe/cvsserver'

* fe/cvsserver:
  cvsserver: change generation of CVS author names
  cvsserver: add option to configure commit message

15 years agoMerge branch 'js/maint-bisect-gitk'
Junio C Hamano [Wed, 14 Jan 2009 07:09:29 +0000 (23:09 -0800)]
Merge branch 'js/maint-bisect-gitk'

* js/maint-bisect-gitk:
  bisect view: call gitk if Cygwin's SESSIONNAME variable is set

15 years agoMerge branch 'np/no-loosen-prune-expire-now'
Junio C Hamano [Wed, 14 Jan 2009 07:09:24 +0000 (23:09 -0800)]
Merge branch 'np/no-loosen-prune-expire-now'

* np/no-loosen-prune-expire-now:
  objects to be pruned immediately don't have to be loosened

15 years agoMerge branch 'cb/maint-unpack-trees-absense'
Junio C Hamano [Wed, 14 Jan 2009 07:09:20 +0000 (23:09 -0800)]
Merge branch 'cb/maint-unpack-trees-absense'

* cb/maint-unpack-trees-absense:
  unpack-trees: remove redundant path search in verify_absent
  unpack-trees: fix path search bug in verify_absent
  unpack-trees: handle failure in verify_absent

15 years agoMerge branch 'mc/cd-p-pwd'
Junio C Hamano [Wed, 14 Jan 2009 07:09:13 +0000 (23:09 -0800)]
Merge branch 'mc/cd-p-pwd'

* mc/cd-p-pwd:
  git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X

15 years agoMerge branch 'mh/cherry-default'
Junio C Hamano [Wed, 14 Jan 2009 07:09:09 +0000 (23:09 -0800)]
Merge branch 'mh/cherry-default'

* mh/cherry-default:
  Documentation: clarify which parameters are optional to git-cherry
  git-cherry: make <upstream> parameter optional

15 years agofast-import: Cleanup mode setting.
Felipe Contreras [Wed, 14 Jan 2009 01:37:07 +0000 (03:37 +0200)]
fast-import: Cleanup mode setting.

"S_IFREG | mode" makes only sense for 0644 and 0755.

Even though doing (S_IFREG | mode) may not hurt when mode is any other
supported value, that is only true because S_IFREG mode bit happens to
be already on for S_IFLNK or S_IFGITLINK.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoGit.pm: call Error::Simple() properly
Jay Soffian [Tue, 13 Jan 2009 22:41:35 +0000 (17:41 -0500)]
Git.pm: call Error::Simple() properly

The error message to Error::Simple() must be passed as a single argument.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMerge branch 'maint'
Junio C Hamano [Tue, 13 Jan 2009 09:25:55 +0000 (01:25 -0800)]
Merge branch 'maint'

* maint:
  Avoid spurious error messages on error mistakes.
  contrib/examples/README: give an explanation of the status of these files

15 years agoMerge branch 'kk/maint-http-push' into maint
Junio C Hamano [Tue, 13 Jan 2009 09:15:49 +0000 (01:15 -0800)]
Merge branch 'kk/maint-http-push' into maint

* kk/maint-http-push:
  http-push: support full URI in handle_remote_ls_ctx()

15 years agoMerge branch 'js/maint-merge-recursive-r-d-conflict' into maint
Junio C Hamano [Tue, 13 Jan 2009 09:15:19 +0000 (01:15 -0800)]
Merge branch 'js/maint-merge-recursive-r-d-conflict' into maint

* js/maint-merge-recursive-r-d-conflict:
  merge-recursive: mark rename/delete conflict as unmerged

15 years agoMerge branch 'cb/maint-merge-recursive-fix' into maint
Junio C Hamano [Tue, 13 Jan 2009 09:13:56 +0000 (01:13 -0800)]
Merge branch 'cb/maint-merge-recursive-fix' into maint

* cb/maint-merge-recursive-fix:
  merge-recursive: do not clobber untracked working tree garbage
  modify/delete conflict resolution overwrites untracked file

Conflicts:
builtin-merge-recursive.c