Code

git.git
14 years agoMerge branch 'jc/conflict-marker-size'
Junio C Hamano [Tue, 6 Apr 2010 21:50:46 +0000 (14:50 -0700)]
Merge branch 'jc/conflict-marker-size'

* jc/conflict-marker-size:
  diff --check: honor conflict-marker-size attribute

14 years agoMerge branch 'ef/maint-empty-commit-log'
Junio C Hamano [Tue, 6 Apr 2010 21:50:46 +0000 (14:50 -0700)]
Merge branch 'ef/maint-empty-commit-log'

* ef/maint-empty-commit-log:
  rev-list: fix --pretty=oneline with empty message

14 years agoMerge branch 'sg/bash-completion'
Junio C Hamano [Tue, 6 Apr 2010 21:50:45 +0000 (14:50 -0700)]
Merge branch 'sg/bash-completion'

* sg/bash-completion:
  bash: completion for gitk aliases
  bash: support user-supplied completion scripts for aliases
  bash: support user-supplied completion scripts for user's git commands
  bash: improve aliased command recognition

14 years agoRevert "Link against libiconv on IRIX"
Junio C Hamano [Mon, 5 Apr 2010 17:16:11 +0000 (10:16 -0700)]
Revert "Link against libiconv on IRIX"

Brandon Casey reports:

    Subject: Re: [PATCH] Link against libiconv on IRIX
    Date: Mon, 05 Apr 2010 11:45:32 -0500
    Message-Id: <1UypQMCHLT57SnjSQIM66RTkLalsvavG8xXoQJv4rEQ@cipher.nrlssc.navy.mil>

    This breaks compilation on IRIX 6.5.29m for me since there
    is no separate libiconv.so.

    What version of IRIX are you using?

    On my system, even the iconv utility doesn't link against
    a libiconv shared object.  It seems the iconv functionality is in libc.

       # ldd /usr/bin/iconv
       libc.so.1  =>    /usr/lib32/libc.so.1

    Could it be that you are using a third party iconv library?
    I've experienced this on another system and the problem was related
    to curl.  In that case, curl was linked against an external iconv and
    not the native library, so if I tried to build with curl support, I had
    to also build against the external iconv library.

While we wait for an improved solution, revert the regression caused by
21704227904b51197976c61c595b52d807677533.

14 years agoMerge branch 'maint'
Junio C Hamano [Sun, 4 Apr 2010 17:23:21 +0000 (10:23 -0700)]
Merge branch 'maint'

* maint:
  pack-protocol.txt: fix pkt-line lengths
  pack-protocol.txt: fix spelling

14 years agopack-protocol.txt: fix pkt-line lengths
Tay Ray Chuan [Sun, 4 Apr 2010 13:12:17 +0000 (21:12 +0800)]
pack-protocol.txt: fix pkt-line lengths

Previously, the lengths were 4-bytes short. Fix it such that the lengths
reflect the total length of the pkt-line, as per spec.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agopack-protocol.txt: fix spelling
Tay Ray Chuan [Sun, 4 Apr 2010 13:12:16 +0000 (21:12 +0800)]
pack-protocol.txt: fix spelling

s/paramater/parameter/.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'mb/rebase-i-no-ff'
Junio C Hamano [Sat, 3 Apr 2010 19:28:44 +0000 (12:28 -0700)]
Merge branch 'mb/rebase-i-no-ff'

* mb/rebase-i-no-ff:
  Teach rebase the --no-ff option.

Conflicts:
git-rebase--interactive.sh
t/t3404-rebase-interactive.sh

14 years agoMerge branch 'sp/maint-http-backend-die-triggers-die-recursively'
Junio C Hamano [Sat, 3 Apr 2010 19:28:43 +0000 (12:28 -0700)]
Merge branch 'sp/maint-http-backend-die-triggers-die-recursively'

* sp/maint-http-backend-die-triggers-die-recursively:
  http-backend: Don't infinite loop during die()

14 years agoMerge branch 'rr/imap-send-unconfuse-from-line'
Junio C Hamano [Sat, 3 Apr 2010 19:28:42 +0000 (12:28 -0700)]
Merge branch 'rr/imap-send-unconfuse-from-line'

* rr/imap-send-unconfuse-from-line:
  imap-send: Remove limitation on message body

14 years agoMerge branch 'mg/use-default-abbrev-length-in-rev-list'
Junio C Hamano [Sat, 3 Apr 2010 19:28:42 +0000 (12:28 -0700)]
Merge branch 'mg/use-default-abbrev-length-in-rev-list'

* mg/use-default-abbrev-length-in-rev-list:
  rev-list: use default abbrev length when abbrev-commit is in effect

14 years agoMerge branch 'mg/maint-send-email-lazy-editor'
Junio C Hamano [Sat, 3 Apr 2010 19:28:42 +0000 (12:28 -0700)]
Merge branch 'mg/maint-send-email-lazy-editor'

* mg/maint-send-email-lazy-editor:
  send-email: lazily assign editor variable

14 years agoMerge branch 'rb/maint-python-path'
Junio C Hamano [Sat, 3 Apr 2010 19:28:41 +0000 (12:28 -0700)]
Merge branch 'rb/maint-python-path'

* rb/maint-python-path:
  Correct references to /usr/bin/python which does not exist on FreeBSD

14 years agoMerge branch 'jn/merge-diff3-label'
Junio C Hamano [Sat, 3 Apr 2010 19:28:41 +0000 (12:28 -0700)]
Merge branch 'jn/merge-diff3-label'

* jn/merge-diff3-label:
  merge-recursive: add a label for ancestor
  cherry-pick, revert: add a label for ancestor
  revert: clarify label on conflict hunks
  compat: add mempcpy()
  checkout -m --conflict=diff3: add a label for ancestor
  merge_trees(): add ancestor label parameter for diff3-style output
  merge_file(): add comment explaining behavior wrt conflict style
  checkout --conflict=diff3: add a label for ancestor
  ll_merge(): add ancestor label parameter for diff3-style output
  merge-file --diff3: add a label for ancestor
  xdl_merge(): move file1 and file2 labels to xmparam structure
  xdl_merge(): add optional ancestor label to diff3-style output
  tests: document cherry-pick behavior in face of conflicts
  tests: document format of conflicts from checkout -m

Conflicts:
builtin/revert.c

14 years agoMerge branch 'ef/cherry-abbrev'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'ef/cherry-abbrev'

* ef/cherry-abbrev:
  ls: remove redundant logic
  cherry: support --abbrev option

14 years agoMerge branch 'bw/template-tool-buildconfig'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'bw/template-tool-buildconfig'

* bw/template-tool-buildconfig:
  Modernize git calling conventions in hook templates
  Make templates honour SHELL_PATH and PERL_PATH

14 years agoMerge branch 'mg/mailmap-update'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'mg/mailmap-update'

* mg/mailmap-update:
  .mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela

14 years agoMerge branch 'bc/t5505-fix'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'bc/t5505-fix'

* bc/t5505-fix:
  t/t5505-remote.sh: escape * to prevent interpretation by shell as glob
  t5505: add missing &&
  t5505: remove unnecessary subshell invocations

14 years agoMerge branch 'gh/maint-stash-show-error-message'
Junio C Hamano [Sat, 3 Apr 2010 19:28:40 +0000 (12:28 -0700)]
Merge branch 'gh/maint-stash-show-error-message'

* gh/maint-stash-show-error-message:
  Improve error messages from 'git stash show'

14 years agoMerge branch 'rs/threaded-grep-context'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'rs/threaded-grep-context'

* rs/threaded-grep-context:
  grep: enable threading for context line printing

Conflicts:
grep.c

14 years agoMerge branch 'bc/maint-daemon-sans-ss-family'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'bc/maint-daemon-sans-ss-family'

* bc/maint-daemon-sans-ss-family:
  daemon.c: avoid accessing ss_family member of struct sockaddr_storage

14 years agoMerge branch 'bc/acl-test'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'bc/acl-test'

* bc/acl-test:
  t/t1304: make a second colon optional in the mask ACL check
  t/t1304: set the ACL effective rights mask
  t/t1304: use 'test -r' to test readability rather than looking at mode bits
  t/t1304: set the Default ACL base entries
  t/t1304: avoid -d option to setfacl

14 years agoMerge branch 'ja/send-email-ehlo'
Junio C Hamano [Sat, 3 Apr 2010 19:28:39 +0000 (12:28 -0700)]
Merge branch 'ja/send-email-ehlo'

* ja/send-email-ehlo:
  git-send-email.perl - try to give real name of the calling host to HELO/EHLO
  git-send-email.perl: add option --smtp-debug
  git-send-email.perl: improve error message in send_message()

14 years agoMerge branch 'do/rebase-i-arbitrary'
Junio C Hamano [Sat, 3 Apr 2010 19:28:38 +0000 (12:28 -0700)]
Merge branch 'do/rebase-i-arbitrary'

* do/rebase-i-arbitrary:
  rebase--interactive: don't require what's rebased to be a branch

Conflicts:
t/t3404-rebase-interactive.sh

14 years agoMerge branch 'ak/everyday-git'
Junio C Hamano [Sat, 3 Apr 2010 19:28:38 +0000 (12:28 -0700)]
Merge branch 'ak/everyday-git'

* ak/everyday-git:
  everyday: fsck and gc are not everyday operations

14 years agoMakefile: future-proof Cygwin version check
Jonathan Nieder [Sat, 3 Apr 2010 07:47:00 +0000 (02:47 -0500)]
Makefile: future-proof Cygwin version check

Tweak the condition that detects old Cygwin versions to not include
versions such as 1.8, 1.11, and 2.1.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoFix _XOPEN_SOURCE problem on DragonFly
YONETANI Tomokazu [Fri, 2 Apr 2010 07:52:09 +0000 (16:52 +0900)]
Fix _XOPEN_SOURCE problem on DragonFly

As on FreeBSD, defining _XOPEN_SOURCE to 600 on DragonFly BSD 2.4-RELEASE
or later hides symbols from programs, which leads to implicit declaration
of functions, making the return value to be assumed an int.  On architectures
where sizeof(int) < sizeof(void *), this can cause unexpected behaviors or
crashes.
This change won't affect other OSes unless they define __DragonFly__ macro,
or older versions of DragonFly BSD as the current git code doesn't rely on
the features only available with _XOPEN_SOURCE set to 600 on DragonFly.

Signed-off-by: YONETANI Tomokazu <y0netan1@dragonflybsd.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin/commit: remove unnecessary variable definition
Markus Heidelberg [Fri, 2 Apr 2010 12:27:19 +0000 (14:27 +0200)]
builtin/commit: remove unnecessary variable definition

The file descriptor is already defined at the beginning of the function.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agobuiltin/commit: fix duplicated sentence in a comment
Markus Heidelberg [Fri, 2 Apr 2010 12:27:18 +0000 (14:27 +0200)]
builtin/commit: fix duplicated sentence in a comment

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoIntegrate version 3 ciabot scripts into contrib/.
Eric Raymond [Fri, 2 Apr 2010 10:10:11 +0000 (06:10 -0400)]
Integrate version 3 ciabot scripts into contrib/.

These have been extensively live-tested in the last week. The version 2
ciabot.sh maintainer has passed the baton to me; ciabot.py is original.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMakefile: update defaults for modern Cygwin
Eric Blake [Thu, 1 Apr 2010 22:43:54 +0000 (16:43 -0600)]
Makefile: update defaults for modern Cygwin

Now that Cygwin 1.7.x has enabled lots of new features, and Cygwin 1.5
is no longer actively supported by the Cygwin mailing lists, we might
as well update the defaults to cater to those new features.

NO_TRUSTABLE_FILEMODE is only necessary on FAT drives; the Cygwin
community recommends NTFS drives, but there is still too much use
for FAT to switch the default.  Likewise, UNRELIABLE_FSTAT is probably
file-system specific, but worth keeping unchanged.

This commit does not change the default for NO_MMAP, although definitive
proof of whether this option is necessary is lacking.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with 1.7.0.4
Junio C Hamano [Wed, 31 Mar 2010 22:14:27 +0000 (15:14 -0700)]
Sync with 1.7.0.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoGit 1.7.0.4 v1.7.0.4
Junio C Hamano [Wed, 31 Mar 2010 22:12:08 +0000 (15:12 -0700)]
Git 1.7.0.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jc/maint-refs-dangling' into maint
Junio C Hamano [Wed, 31 Mar 2010 22:09:32 +0000 (15:09 -0700)]
Merge branch 'jc/maint-refs-dangling' into maint

* jc/maint-refs-dangling:
  refs: ref entry with NULL sha1 is can be a dangling symref

14 years agoDocumentation: show-ref <pattern>s are optional
Holger Weiß [Mon, 29 Mar 2010 11:02:37 +0000 (13:02 +0200)]
Documentation: show-ref <pattern>s are optional

Specifying one or more <pattern> parameters is optional when calling
show-ref, so mark them as such using brackets in the manual.

Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoLink against libiconv on IRIX
Holger Weiß [Mon, 29 Mar 2010 10:57:48 +0000 (12:57 +0200)]
Link against libiconv on IRIX

On IRIX, "-liconv" must be added to the linker command line in order to
get iconv(3) support; set the according Makefile variable appropriately.

Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDon't redefine htonl and ntohl on big-endian
Holger Weiß [Mon, 29 Mar 2010 10:22:19 +0000 (12:22 +0200)]
Don't redefine htonl and ntohl on big-endian

Since commit 0fcabdeb52b79775173d009ccc179db104dfbb66, compat/bswap.h
redefined htonl and ntohl to bswap32 not only if bswap32 has been
defined earlier in compat/bswap.h (which is done only on selected
platforms), but also if bswap32 has been defined anywhere else.  This
broke Git at least for NetBSD systems running on big-endian machines
(where ntohl and htonl should, of course, be NOOPs), since NetBSD
defines a bswap32 macro in the system headers.

So, we now undefine any previously defined bswap32 in compat/bswap.h
before defining our own.

Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agogitweb: git_get_project_config requires only $git_dir, not also $project
Jakub Narebski [Sat, 27 Mar 2010 19:26:59 +0000 (20:26 +0100)]
gitweb: git_get_project_config requires only $git_dir, not also $project

Fix overeager early return in git_get_project_config, introduced in 9be3614
(gitweb: Fix project-specific feature override behavior, 2010-03-01).  When
git_get_project_config is called from projects list page via
git_get_project_owner($path) etc., it is called with $git_dir defined (in
git_get_project_owner($path) etc.), but $project variable is not defined.
git_get_project_config doesn't use $project variable anyway.

Reported-by: Tobias Heinlein <keytoaster@gentoo.org>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdated the usage string of git reset
Jan Stępień [Wed, 31 Mar 2010 09:24:19 +0000 (11:24 +0200)]
Updated the usage string of git reset

Make git reset usage string reflect the command's behaviour and contents of
the man page.

Signed-off-by: Jan Stępień <jstepien@users.sourceforge.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: Clarify support for smart HTTP backend
Greg Bacon [Tue, 30 Mar 2010 17:20:57 +0000 (12:20 -0500)]
Documentation: Clarify support for smart HTTP backend

In the description of http.getanyfile, replace the vague "older Git
clients" with the earliest release whose client is able to use the
upload pack service.

Signed-off-by: Greg Bacon <gbacon@dbresearch.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoWindows: fix utime() for read-only files
Johannes Sixt [Tue, 30 Mar 2010 07:46:23 +0000 (09:46 +0200)]
Windows: fix utime() for read-only files

Starting with 5256b00 (Use git_mkstemp_mode instead of plain mkstemp to
create object files, 2010-02-22) utime() is invoked on read-only files.
This is not allowed on Windows and results in many warnings of the form

failed utime() on .git/objects/23/tmp_obj_VlgHlc: Permission denied

during a repack.  Fix it by making the file temporarily writable.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff: fix textconv error zombies
Johannes Sixt [Tue, 30 Mar 2010 17:36:03 +0000 (19:36 +0200)]
diff: fix textconv error zombies

To make the code simpler, run_textconv lumps all of its
error checking into one conditional. However, the
short-circuit means that an error in reading will prevent us
from calling finish_command, leaving a zombie child.
Clean up properly after errors.

Based-on-work-by: Jeff King <peff@peff.net>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint'
Junio C Hamano [Tue, 30 Mar 2010 04:29:24 +0000 (21:29 -0700)]
Merge branch 'maint'

* maint:
  format-patch: Squelch 'fatal: Not a range." error

14 years agoformat-patch: Squelch 'fatal: Not a range." error
Kevin Ballard [Tue, 30 Mar 2010 02:46:38 +0000 (19:46 -0700)]
format-patch: Squelch 'fatal: Not a range." error

Don't output an error on `git format-patch --ignore-if-in-upstream HEAD`.
This matches the behavior of `git format-patch HEAD`.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoUpdate draft release notes to 1.7.1
Junio C Hamano [Mon, 29 Mar 2010 04:57:59 +0000 (21:57 -0700)]
Update draft release notes to 1.7.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cc/cherry-pick-ff'
Junio C Hamano [Mon, 29 Mar 2010 04:52:28 +0000 (21:52 -0700)]
Merge branch 'cc/cherry-pick-ff'

* cc/cherry-pick-ff:
  revert: fix tiny memory leak in cherry-pick --ff
  rebase -i: use new --ff cherry-pick option
  Documentation: describe new cherry-pick --ff option
  cherry-pick: add tests for new --ff option
  revert: add --ff option to allow fast forward when cherry-picking
  builtin/merge: make checkout_fast_forward() non static
  parse-options: add parse_options_concat() to concat options

14 years agoMerge branch 'sb/notes-parse-opt'
Junio C Hamano [Mon, 29 Mar 2010 04:52:28 +0000 (21:52 -0700)]
Merge branch 'sb/notes-parse-opt'

* sb/notes-parse-opt:
  notes: rework subcommands and parse options

Conflicts:
builtin/notes.c

14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 29 Mar 2010 04:52:18 +0000 (21:52 -0700)]
Merge branch 'maint'

* maint:
  Prepare for 1.7.0.4

Conflicts:
RelNotes

14 years agorebase -i: make post-rewrite work for 'edit'
Thomas Rast [Sun, 28 Mar 2010 19:36:00 +0000 (21:36 +0200)]
rebase -i: make post-rewrite work for 'edit'

The post-rewrite support, in the form of the call to
'record_in_rewritten', was hidden in the arm where we have to record a
new commit for the user.  This meant that it was never invoked in the
case where the user has already amended the commit by herself.

[The test is designed to exercise both arms of the 'if' in question.]

Furthermore, recording the stopped-sha (the SHA1 of the commit before
the editing) suffered from a cut&paste error from die_with_patch and
used the wrong variable, hence it never recorded anything.

Noticed by Junio.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoPrepare for 1.7.0.4
Junio C Hamano [Mon, 29 Mar 2010 04:32:25 +0000 (21:32 -0700)]
Prepare for 1.7.0.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'cp/add-u-pathspec' into maint
Junio C Hamano [Mon, 29 Mar 2010 04:21:42 +0000 (21:21 -0700)]
Merge branch 'cp/add-u-pathspec' into maint

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

14 years agoMerge branch 'maint'
Junio C Hamano [Mon, 29 Mar 2010 00:42:58 +0000 (17:42 -0700)]
Merge branch 'maint'

* maint:
  t9350: fix careless use of "cd"
  difftool: Fix '--gui' when diff.guitool is unconfigured
  fast-export: don't segfault when marks file cannot be opened

14 years agot9350: fix careless use of "cd"
Junio C Hamano [Mon, 29 Mar 2010 00:42:11 +0000 (17:42 -0700)]
t9350: fix careless use of "cd"

Upon failure of any of these tests (or when a test that is marked as
expecting a failure is fixed), we will end up running later tests in
random places.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodifftool: Fix '--gui' when diff.guitool is unconfigured
David Aguilar [Sat, 27 Mar 2010 21:58:09 +0000 (14:58 -0700)]
difftool: Fix '--gui' when diff.guitool is unconfigured

When diff.guitool is unconfigured and "--gui" is specified
git-difftool dies with the following error message:

config diff.guitool: command returned error: 1

Catch the error so that the "--gui" flag is a no-op when
diff.guitool is unconfigured.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agofast-export: don't segfault when marks file cannot be opened
Sverre Rabbelier [Sun, 28 Mar 2010 05:42:48 +0000 (00:42 -0500)]
fast-export: don't segfault when marks file cannot be opened

The error function only prints an error message, resulting in a
segfault if we later on try to fprintf to a NULL handle.

Fix this by using die_errno instead.

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoimap-send: suppress warning about cleartext password with CRAM-MD5
Chris Webb [Sat, 27 Mar 2010 15:00:19 +0000 (15:00 +0000)]
imap-send: suppress warning about cleartext password with CRAM-MD5

If a CRAM-MD5 challenge-response is used to authenticate to the IMAP server,
git imap-send shouldn't warn about the password being sent in the clear.

Signed-off-by: Chris Webb <chris@arachsys.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agosend-email: lazily assign editor variable
Michael J Gruber [Mon, 22 Mar 2010 16:12:53 +0000 (17:12 +0100)]
send-email: lazily assign editor variable

b4479f0 (add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR",
2009-10-30) introduced the use of "git var GIT_EDITOR" to obtain the
preferred editor program, instead of reading environment variables
themselves.

However, "git var GIT_EDITOR" run without a tty (think "cron job") would
give a fatal error "Terminal is dumb, but EDITOR unset".  This is not a
problem for add-i, svn, p4 and callers of git_editor() defined in
git-sh-setup, as all of these call it just before launching the editor.
At that point, we know the caller wants to edit.

But send-email ran this near the beginning of the program, even if it is
not going to use any editor (e.g. run without --compose).  Fix this by
calling the command only when we edit a file.

Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agodiff --check: honor conflict-marker-size attribute
Junio C Hamano [Thu, 25 Mar 2010 02:21:32 +0000 (19:21 -0700)]
diff --check: honor conflict-marker-size attribute

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'jh/maint-submodule-status-in-void'
Junio C Hamano [Wed, 24 Mar 2010 23:55:37 +0000 (16:55 -0700)]
Merge branch 'jh/maint-submodule-status-in-void'

* jh/maint-submodule-status-in-void:
  git submodule summary: Handle HEAD as argument when on an unborn branch
  submodule summary: do not fail before the first commit

14 years agoMerge branch 'tr/notes-display'
Junio C Hamano [Wed, 24 Mar 2010 23:26:43 +0000 (16:26 -0700)]
Merge branch 'tr/notes-display'

* tr/notes-display:
  git-notes(1): add a section about the meaning of history
  notes: track whether notes_trees were changed at all
  notes: add shorthand --ref to override GIT_NOTES_REF
  commit --amend: copy notes to the new commit
  rebase: support automatic notes copying
  notes: implement helpers needed for note copying during rewrite
  notes: implement 'git notes copy --stdin'
  rebase -i: invoke post-rewrite hook
  rebase: invoke post-rewrite hook
  commit --amend: invoke post-rewrite hook
  Documentation: document post-rewrite hook
  Support showing notes from more than one notes tree
  test-lib: unset GIT_NOTES_REF to stop it from influencing tests

Conflicts:
git-am.sh
refs.c

14 years agoMerge branch 'jl/submodule-diff-dirtiness'
Junio C Hamano [Wed, 24 Mar 2010 23:25:43 +0000 (16:25 -0700)]
Merge branch 'jl/submodule-diff-dirtiness'

* jl/submodule-diff-dirtiness:
  git status: ignoring untracked files must apply to submodules too
  git status: Fix false positive "new commits" output for dirty submodules
  Refactor dirty submodule detection in diff-lib.c
  git status: Show detailed dirty status of submodules in long format
  git diff --submodule: Show detailed dirty status of submodules

14 years agoMerge branch 'pb/log-first-parent-p-m'
Junio C Hamano [Wed, 24 Mar 2010 23:25:39 +0000 (16:25 -0700)]
Merge branch 'pb/log-first-parent-p-m'

* pb/log-first-parent-p-m:
  show --first-parent/-m: do not default to --cc
  show -c: show patch text
  revision: introduce setup_revision_opt
  t4013: add tests for log -p -m --first-parent
  git log -p -m: document -m and honor --first-parent

14 years agoMerge branch 'jc/maint-refs-dangling'
Junio C Hamano [Wed, 24 Mar 2010 23:25:34 +0000 (16:25 -0700)]
Merge branch 'jc/maint-refs-dangling'

* jc/maint-refs-dangling:
  refs: ref entry with NULL sha1 is can be a dangling symref

14 years agoMerge branch 'maint'
Junio C Hamano [Wed, 24 Mar 2010 23:24:21 +0000 (16:24 -0700)]
Merge branch 'maint'

* maint:
  Documentation: explain the meaning of "-g" in git-describe output

14 years agoMerge branch 'jc/color-attrs' into maint
Junio C Hamano [Wed, 24 Mar 2010 23:24:13 +0000 (16:24 -0700)]
Merge branch 'jc/color-attrs' into maint

* jc/color-attrs:
  color: allow multiple attributes

14 years agoMerge branch 'jk/maint-add-ignored-dir' into maint
Junio C Hamano [Wed, 24 Mar 2010 23:24:03 +0000 (16:24 -0700)]
Merge branch 'jk/maint-add-ignored-dir' into maint

* jk/maint-add-ignored-dir:
  tests for "git add ignored-dir/file" without -f
  dir: fix COLLECT_IGNORED on excluded prefixes
  t0050: mark non-working test as such

14 years agoMerge branch 'bg/apply-fix-blank-at-eof' into maint
Junio C Hamano [Wed, 24 Mar 2010 23:23:50 +0000 (16:23 -0700)]
Merge branch 'bg/apply-fix-blank-at-eof' into maint

* bg/apply-fix-blank-at-eof:
  t3417: Add test cases for "rebase --whitespace=fix"
  t4124: Add additional tests of --whitespace=fix
  apply: Allow blank context lines to match beyond EOF
  apply: Remove the quick rejection test
  apply: Don't unnecessarily update line lengths in the preimage

14 years agoTeach rebase the --no-ff option.
Marc Branchaud [Wed, 24 Mar 2010 20:34:04 +0000 (16:34 -0400)]
Teach rebase the --no-ff option.

For git-rebase.sh, --no-ff is a synonym for --force-rebase.

For git-rebase--interactive.sh, --no-ff cherry-picks all the commits in
the rebased branch, instead of fast-forwarding over any unchanged commits.

--no-ff offers an alternative way to deal with reverted merges.  Instead of
"reverting the revert" you can use "rebase --no-ff" to recreate the branch
with entirely new commits (they're new because at the very least the
committer time is different).  This obviates the need to revert the
reversion, as you can re-merge the new topic branch directly.  Added an
addendum to revert-a-faulty-merge.txt describing the situation and how to
use --no-ff to handle it.

Signed-off-by: Marc Branchaud <marcnarc@xiplink.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agohttp-backend: Don't infinite loop during die()
Shawn O. Pearce [Mon, 22 Mar 2010 14:22:04 +0000 (07:22 -0700)]
http-backend: Don't infinite loop during die()

If stdout has already been closed by the CGI and die() gets called,
the CGI will fail to write the "Status: 500 Internal Server Error" to
the pipe, which results in die() being called again (via safe_write).
This goes on in an infinite loop until the stack overflows and the
process is killed by SIGSEGV.

Instead set a flag on the first die() invocation and if we came back to
the handler, just die silently, as it only means we failed to report the
failure---we cannot report anything anyway in such a case.  This way
failures to write the error messages to the stdout pipe do not result in
an infinite loop.

We also now report on the death to stderr before we report to stdout,
to increase the chances that the cause of the die() invocation will
appear in the server's error log.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
fixup! http-backend.c: Don't infinite loop

Now die_webcgi() actually can return during a recursive call into it,
causing

    http-backend.c:554: error: 'noreturn' function does return

The only reason we would come back to the die handler is because we
failed during it, so we cannot report anything anyway.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoCorrect references to /usr/bin/python which does not exist on FreeBSD
R. Tyler Ballance [Sun, 21 Mar 2010 19:01:50 +0000 (12:01 -0700)]
Correct references to /usr/bin/python which does not exist on FreeBSD

On FreeBSD, Python does not ship as part of the base system but is available
via the ports system, which install the binary in /usr/local/bin.

Signed-off-by: R. Tyler Ballance <tyler@monkeypox.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation: explain the meaning of "-g" in git-describe output
Markus Heidelberg [Mon, 22 Mar 2010 20:45:33 +0000 (21:45 +0100)]
Documentation: explain the meaning of "-g" in git-describe output

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorev-list: use default abbrev length when abbrev-commit is in effect
Michael J Gruber [Mon, 22 Mar 2010 13:36:30 +0000 (14:36 +0100)]
rev-list: use default abbrev length when abbrev-commit is in effect

Currently, rev-list has a default of "0" for abbrev which means that
switching on abbreviations with --abbrev-commit has no visible effect,
even though the option is documented.

Set abbrev to DEFAULT_ABBREV so that --abbrev-commit has the same effect
as for log.

Reported-by: Eli Barzilay <eli@barzilay.org>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoimap-send: Remove limitation on message body
Ramkumar Ramachandra [Mon, 22 Mar 2010 18:07:52 +0000 (23:37 +0530)]
imap-send: Remove limitation on message body

There is a documented limitation on the body of any email not being
able to contain lines starting with "From ". This patch removes that
limitation by improving the parser to search for "From", "Date", and
"Subject" fields in the email before considering it to be an email.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoSync with Git 1.7.0.3
Junio C Hamano [Mon, 22 Mar 2010 00:01:55 +0000 (17:01 -0700)]
Sync with Git 1.7.0.3

* maint:
  Git 1.7.0.3
  .mailmap: Map the the first submissions of MJG by e-mail
  Documentation/git-clone: Transform description list into item list
  Documentation/urls: Remove spurious example markers
  Documentation/gitdiffcore: Remove misleading date in heading
  Documentation/git-reflog: Fix formatting of command lists

14 years agoGit 1.7.0.3 v1.7.0.3
Junio C Hamano [Mon, 22 Mar 2010 00:01:22 +0000 (17:01 -0700)]
Git 1.7.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoMerge branch 'maint-1.6.6' into maint
Junio C Hamano [Mon, 22 Mar 2010 00:00:22 +0000 (17:00 -0700)]
Merge branch 'maint-1.6.6' into maint

* maint-1.6.6:
  Documentation/git-clone: Transform description list into item list
  Documentation/urls: Remove spurious example markers
  Documentation/gitdiffcore: Remove misleading date in heading
  Documentation/git-reflog: Fix formatting of command lists

14 years ago.mailmap: Map the the first submissions of MJG by e-mail
Michael J Gruber [Sun, 21 Mar 2010 13:43:47 +0000 (14:43 +0100)]
.mailmap: Map the the first submissions of MJG by e-mail

so that git shortlog with '-e' coalesces all my commits.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agols: remove redundant logic
Erik Faye-Lund [Sat, 20 Mar 2010 18:55:28 +0000 (19:55 +0100)]
ls: remove redundant logic

find_unique_abbrev() already returns the full SHA-1 if abbrev = 0,
so we can remove the logic that avoids the call.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocherry: support --abbrev option
Erik Faye-Lund [Sat, 20 Mar 2010 18:55:27 +0000 (19:55 +0100)]
cherry: support --abbrev option

Switch to parse-options API while we're at it.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-clone: Transform description list into item list
Michael J Gruber [Sun, 21 Mar 2010 17:30:19 +0000 (18:30 +0100)]
Documentation/git-clone: Transform description list into item list

so that the list of examples is formatted in the same way as for
git-fetch, and, more importantly, the different identation for the
code blocks in the examples (compared to the immediately preceding code
blocks from url.txt) doesn't look like misformatted, but is clarified by
the items' bullets.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/urls: Remove spurious example markers
Michael J Gruber [Sun, 21 Mar 2010 17:30:18 +0000 (18:30 +0100)]
Documentation/urls: Remove spurious example markers

In urls.txt (which is included from git-{clone,fetch,push}.txt)
several item lists are surrounded by example block markers. This is
problematic for two reasons:

- None of these lists are example lists, so they should not be marked as
  such semantically.
- The html output looks weird (bulleted list with left sidebar).

Therefore, remove the example block markers. Output by the man backend
is unaffected.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/gitdiffcore: Remove misleading date in heading
Michael J Gruber [Sun, 21 Mar 2010 17:30:17 +0000 (18:30 +0100)]
Documentation/gitdiffcore: Remove misleading date in heading

Ever since the automatic conversion into man form, the heading
contained a misidentified subheading reading "June 2005".
Remove this since the documentation is more recent, and the correct
date is in the footer.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoDocumentation/git-reflog: Fix formatting of command lists
Michael J Gruber [Sun, 21 Mar 2010 17:30:16 +0000 (18:30 +0100)]
Documentation/git-reflog: Fix formatting of command lists

A misplaced list continuation mark appears literally in the
rendered doc. Fix this by removing it.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorev-list: fix --pretty=oneline with empty message
Erik Faye-Lund [Sun, 21 Mar 2010 14:40:16 +0000 (15:40 +0100)]
rev-list: fix --pretty=oneline with empty message

55246aa (Dont use "<unknown>" for placeholders and suppress printing
of empty user formats) introduced a check to prevent empty
user-formats from being printed. This test didn't take empty commit
messages into account, and prevented the line-termination from being
output. This lead to multiple commits on a single line.

Correct it by guarding the check with a check for user-format. A
similar correction for the --graph code-path has been included.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-recursive: add a label for ancestor
Jonathan Nieder [Sun, 21 Mar 2010 00:52:21 +0000 (19:52 -0500)]
merge-recursive: add a label for ancestor

git merge-recursive (and hence git merge) will present conflict hunks
in output something like what ‘diff3 -m’ produces if the
merge.conflictstyle configuration option is set to diff3.
There is a small difference from diff3: diff3 -m includes a label
for the merge base on the ||||||| line.

Tools familiar with the format and humans unfamiliar with the format
both can benefit from such a label.  So mark the start of the text
from the merge bases with the heading "||||||| merged common
ancestors".

It would be nicer to use a more informative label.  Perhaps someone
will provide one some day.

git rerere does not have trouble parsing the new output, and its
preimage ids are unchanged since it has its own code for re-creating
conflict hunks.  No other code in git parses conflict hunks.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocherry-pick, revert: add a label for ancestor
Jonathan Nieder [Sun, 21 Mar 2010 00:46:07 +0000 (19:46 -0500)]
cherry-pick, revert: add a label for ancestor

When writing conflict hunks in ‘diff3 -m’ format, also add a label to
the common ancestor.  Especially in a cherry-pick, it is not immediately
obvious without such a label what the common ancestor represents.

git rerere does not have trouble parsing the new output and its preimage
ids are unchanged since it includes its own code for recreating conflict
hunks.  No other code in git parses conflict hunks.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorevert: clarify label on conflict hunks
Jonathan Nieder [Sun, 21 Mar 2010 00:45:21 +0000 (19:45 -0500)]
revert: clarify label on conflict hunks

When reverting a commit, the commit being merged is not the commit
to revert itself but its parent.  Add “parent of” to the conflict
hunk label to make this more clear.

The conflict hunk labels are all pieces of a single string written in
the new get_message() function.  Avoid some complication by using
mempcpy to advance a pointer as the result is written.

Also free the corresponding temporary buffer (it was leaked before).
This is not important because it is a small one-time allocation.  It
would become a memory leak if unnoticed when libifying revert.

This patch uses calls to strlen() instead of integer constants in some
places.  GCC will compute the length at compile time; I am not sure
about other compilers, but this is not performance-critical anyway.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocompat: add mempcpy()
Jonathan Nieder [Sun, 21 Mar 2010 00:43:32 +0000 (19:43 -0500)]
compat: add mempcpy()

The mempcpy() function was added in glibc 2.1.  It is quite handy, so
add an implementation for cross-platform use.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocheckout -m --conflict=diff3: add a label for ancestor
Jonathan Nieder [Sun, 21 Mar 2010 00:42:51 +0000 (19:42 -0500)]
checkout -m --conflict=diff3: add a label for ancestor

git checkout --merge --conflict=diff3 can be used to present conflict
hunks including text from the common ancestor.  The added information
is helpful for resolving a merge by hand, and merge tools tend to
understand it because it is very similar to what ‘diff3 -m’ produces.

Unlike current git, diff3 -m includes a label for the merge base on
the ||||||| line, and unfortunately, some tools cannot parse the
conflict hunks without it.  Humans can benefit from a cue when
learning to interpreting the format, too.  Mark the start of the text
from the old branch with a label based on the branch’s name.

git rerere does not have trouble parsing this output and its preimage
ids are unchanged since it includes its own code for recreating
conflict hunks.  No other code in git tries to parse conflict hunks.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge_trees(): add ancestor label parameter for diff3-style output
Jonathan Nieder [Sun, 21 Mar 2010 00:41:38 +0000 (19:41 -0500)]
merge_trees(): add ancestor label parameter for diff3-style output

Commands using the merge_trees() machinery will present conflict hunks
in output something like what ‘diff3 -m’ produces if the
merge.conflictstyle configuration option is set to diff3.  The output
lacks the name of the merge base on the ||||||| line of the output,
and tools can misparse the conflict hunks without it.  Add a new
o->ancestor parameter to merge_trees() for use as a label for the
ancestor in conflict hunks.

If o->ancestor is NULL, the output format is as before.  All callers
pass NULL for now.

If o->ancestor is non-NULL and both branches renamed the base file
to the same name, that name is included in the conflict hunk labels.
Even if o->ancestor is NULL I think this would be a good change, but
this patch only does it in the non-NULL case to ensure the output
format does not change where it might matter.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge_file(): add comment explaining behavior wrt conflict style
Jonathan Nieder [Sun, 21 Mar 2010 00:40:53 +0000 (19:40 -0500)]
merge_file(): add comment explaining behavior wrt conflict style

The merge_file() function is a helper for ‘git read-tree’, which does
not respect the merge.conflictstyle option, so there is no need to
worry about what ancestor_name it should pass to ll_merge().  Add a
comment to this effect.

Signed-off-by: Jonathan Nieder <jrnieder@mgila.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agocheckout --conflict=diff3: add a label for ancestor
Jonathan Nieder [Sun, 21 Mar 2010 00:40:19 +0000 (19:40 -0500)]
checkout --conflict=diff3: add a label for ancestor

git checkout --conflict=diff3 can be used to present conflicts hunks
including text from the common ancestor:

<<<<<<< ours
ourside
|||||||
original
=======
theirside
>>>>>>> theirs

The added information is helpful for resolving a merge by hand, and
merge tools can usually understand it without trouble because it looks
like output from ‘diff3 -m’.

diff3 includes a label for the merge base on the ||||||| line, and it
seems some tools (for example, Emacs 22’s smerge-mode) cannot parse
conflict hunks without such a label.  Humans could use help in
interpreting the output, too.  So change the marker for the start of the
text from the common ancestor to include the label “base”.

git rerere’s conflict identifiers are not affected: to parse conflict
hunks, rerere looks for whitespace after the ||||||| marker rather
than a newline, and to compute preimage ids, rerere has its own code
for creating conflict hunks.  No other code in git tries to parse
conflict hunks.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoll_merge(): add ancestor label parameter for diff3-style output
Jonathan Nieder [Sun, 21 Mar 2010 00:38:58 +0000 (19:38 -0500)]
ll_merge(): add ancestor label parameter for diff3-style output

Commands using the ll_merge() function will present conflict hunks
imitating ‘diff3 -m’ output if the merge.conflictstyle configuration
option is set appropriately.  Unlike ‘diff3 -m’, the output does not
include a label for the merge base on the ||||||| line of the output,
and some tools misparse the conflict hunks without that.

Add a new ancestor_label parameter to ll_merge() to give callers the
power to rectify this situation.  If ancestor_label is NULL, the output
format is unchanged.  All callers pass NULL for now.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agomerge-file --diff3: add a label for ancestor
Jonathan Nieder [Sun, 21 Mar 2010 00:37:33 +0000 (19:37 -0500)]
merge-file --diff3: add a label for ancestor

git merge-file --diff3 can be used to present conflicts hunks
including text from the common ancestor.

The added information is helpful for resolving a merge by hand, and
merge tools can usually grok it because it looks like output from
diff3 -m.  However, ‘diff3’ includes a label for the merge base on the
||||||| line and some tools cannot parse conflict hunks without such a
label.  Write the base-name as passed in a -L option (or the name of
the ancestor file by default) on that line.

git rerere will not have trouble parsing this output, since instead of
looking for a newline, it looks for whitespace after the |||||||
marker.  Since rerere includes its own code for recreating conflict
hunks, conflict identifiers are unaffected.  No other code in git tries
to parse conflict hunks.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoxdl_merge(): move file1 and file2 labels to xmparam structure
Jonathan Nieder [Sun, 21 Mar 2010 00:35:18 +0000 (19:35 -0500)]
xdl_merge(): move file1 and file2 labels to xmparam structure

The labels for the three participants in a potential conflict are all
optional arguments for the xdiff merge routine; if they are NULL, then
xdl_merge() can cope by omitting the labels from its output.  Move
them to the xmparam structure to allow new callers to save some
keystrokes where they are not needed.

This also has the virtue of making the xdiff merge interface more
similar to merge_trees, which might make it easier to learn.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agoxdl_merge(): add optional ancestor label to diff3-style output
Jonathan Nieder [Sun, 21 Mar 2010 00:31:44 +0000 (19:31 -0500)]
xdl_merge(): add optional ancestor label to diff3-style output

The ‘git checkout --conflict=diff3’ command can be used to
present conflicts hunks including text from the common ancestor:

<<<<<<< ours
ourside
|||||||
original
=======
theirside
>>>>>>> theirs

The added information is helpful for resolving merges by hand, and
merge tools can usually grok it because it is very similar to the
output from diff3 -m.

A subtle change can help more tools to understand the output.  ‘diff3’
includes the name of the merge base on the ||||||| line of the output,
and some tools misparse the conflict hunks without it.  Add a new
xmp->ancestor parameter to xdl_merge() for use with conflict style
XDL_MERGE_DIFF3 as a label on the ||||||| line for any conflict hunks.

If xmp->ancestor is NULL, the output format is unchanged.  Thus, this
change only provides unexposed plumbing for the new feature; it does
not affect the outward behavior of git.

Requested-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Bert Wesarg <Bert.Wesarg@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests: document cherry-pick behavior in face of conflicts
Jonathan Nieder [Sun, 21 Mar 2010 00:28:14 +0000 (19:28 -0500)]
tests: document cherry-pick behavior in face of conflicts

We are about to change the format of the conflict hunks that
cherry-pick and revert write.  Add tests checking the current behavior
first.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agotests: document format of conflicts from checkout -m
Jonathan Nieder [Sun, 21 Mar 2010 00:27:17 +0000 (19:27 -0500)]
tests: document format of conflicts from checkout -m

We are about to change the format of the conflict hunks that ‘checkout
--merge’ writes.  Add tests checking the current behavior first.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years ago.mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela
Michael J Gruber [Fri, 19 Mar 2010 11:02:04 +0000 (12:02 +0100)]
.mailmap: Entries for Alex Bennée, Deskin Miller, Vitaly "_Vi" Shukela

With the current .mailmap, git shortlog shows the following for these:

    11 Deskin Miller
     3 Vitaly \"_Vi\" Shukela
     1 Alex Bennee
     1 Alex Bennée
     1 Deskin Miler
     1 Vitaly _Vi Shukela

Add (e-mail based qualified) entries to .mailmap to get:

    12 Deskin Miller
     4 Vitaly "_Vi" Shukela
     2 Alex Bennée

The Shukela spelling is based on the version used consistently in the s-o-b
lines of all his patches.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 years agorevert: fix tiny memory leak in cherry-pick --ff
Jonathan Nieder [Sun, 21 Mar 2010 02:01:20 +0000 (21:01 -0500)]
revert: fix tiny memory leak in cherry-pick --ff

We forgot to free defmsg when returning early for a fast-forward.

Fixing this should reduce noise during test suite runs with valgrind.
More importantly, once cherry-pick learns to pick multiple commits,
the amount of memory leaked would start to add up.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>