git
16 years agoMerge branch 'tr/workflow-doc'
Junio C Hamano [Sun, 19 Oct 2008 23:07:23 +0000 (16:07 -0700)] 
Merge branch 'tr/workflow-doc'

* tr/workflow-doc:
  Documentation: add manpage about workflows
  Documentation: Refer to git-rebase(1) to warn against rewriting
  Documentation: new upstream rebase recovery section in git-rebase

16 years agoMerge branch 'mv/clonev'
Junio C Hamano [Sun, 19 Oct 2008 23:07:07 +0000 (16:07 -0700)] 
Merge branch 'mv/clonev'

* mv/clonev:
  Implement git clone -v

16 years agoMerge branch 'ml/cygwin-filemode'
Junio C Hamano [Sun, 19 Oct 2008 23:07:02 +0000 (16:07 -0700)] 
Merge branch 'ml/cygwin-filemode'

* ml/cygwin-filemode:
  compat/cygwin.c - Use cygwin's stat if core.filemode == true

16 years agoMerge branch 'gb/refactor-pathinfo'
Junio C Hamano [Sun, 19 Oct 2008 23:06:53 +0000 (16:06 -0700)] 
Merge branch 'gb/refactor-pathinfo'

* gb/refactor-pathinfo:
  gitweb: refactor input parameters parse/validation

16 years agoMerge branch 'dp/checkattr'
Junio C Hamano [Sun, 19 Oct 2008 23:06:47 +0000 (16:06 -0700)] 
Merge branch 'dp/checkattr'

* dp/checkattr:
  git-check-attr(1): use 'verse' for multi-line synopsis sections
  check-attr: Add --stdin option
  check-attr: add an internal check_attr() function

16 years agoMerge branch 'gb/formatpatch-autonbr'
Junio C Hamano [Sun, 19 Oct 2008 23:06:44 +0000 (16:06 -0700)] 
Merge branch 'gb/formatpatch-autonbr'

* gb/formatpatch-autonbr:
  format-patch: autonumber by default

16 years agoMerge branch 'sp/describe-lwtag'
Junio C Hamano [Sun, 19 Oct 2008 23:06:39 +0000 (16:06 -0700)] 
Merge branch 'sp/describe-lwtag'

* sp/describe-lwtag:
  describe: Make --tags and --all match lightweight tags more often

16 years agoMerge branch 'ae/preservemerge'
Junio C Hamano [Sun, 19 Oct 2008 23:06:31 +0000 (16:06 -0700)] 
Merge branch 'ae/preservemerge'

* ae/preservemerge:
  rebase: Support preserving merges in non-interactive mode

16 years agoMerge branch 'mv/merge-noff'
Junio C Hamano [Sun, 19 Oct 2008 23:06:21 +0000 (16:06 -0700)] 
Merge branch 'mv/merge-noff'

* mv/merge-noff:
  builtin-commit: use reduce_heads() only when appropriate

Conflicts:
builtin-commit.c
t/t7600-merge.sh

16 years agoMerge branch 'ns/rebase-noverify'
Junio C Hamano [Sun, 19 Oct 2008 23:05:58 +0000 (16:05 -0700)] 
Merge branch 'ns/rebase-noverify'

* ns/rebase-noverify:
  rebase: Document --no-verify option to bypass pre-rebase hook
  rebase --no-verify

16 years agoMerge branch 'maint'
Junio C Hamano [Sun, 19 Oct 2008 22:53:46 +0000 (15:53 -0700)] 
Merge branch 'maint'

* maint:
  Documentation: Clarify '--signoff' for git-commit

16 years agoFix mismerge at cdb22c4 in builtin-checkout.c
Junio C Hamano [Sun, 19 Oct 2008 22:32:35 +0000 (15:32 -0700)] 
Fix mismerge at cdb22c4 in builtin-checkout.c

The code to complain when -b is not given but an explicit --track/--no-track
override was given from the command line was unchanged on one branch and
reworked on the other branch.  The merge result incorrectly kept it.

Spotted by Matt McCutchen.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-merge-recursive: honor merge.conflictstyle once again
Matt McCutchen [Sun, 19 Oct 2008 00:40:50 +0000 (20:40 -0400)] 
git-merge-recursive: honor merge.conflictstyle once again

This was originally implemented in c236bcd06138bcbc929b86ad1a513635bf4847b2
but was lost to a mismerge in 9ba929ed652f5ed7707f1c684999af4ad02c4925.

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: add manpage about workflows
Thomas Rast [Sun, 19 Oct 2008 15:20:21 +0000 (17:20 +0200)] 
Documentation: add manpage about workflows

This attempts to make a manpage about workflows that is both handy to
point people at it and as a beginner's introduction.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDocumentation: Spelling fix
Fredrik Skolmli [Sun, 19 Oct 2008 16:09:43 +0000 (18:09 +0200)] 
Documentation: Spelling fix

Signed-off-by: Fredrik Skolmli <fredrik@frsk.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'pb/rename-rowin32'
Junio C Hamano [Sun, 19 Oct 2008 19:38:50 +0000 (12:38 -0700)] 
Merge branch 'pb/rename-rowin32'

* pb/rename-rowin32:
  Do not rename read-only files during a push

Looks-fine-to-me-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
16 years agoDocumentation: Clarify '--signoff' for git-commit
Abhijit Bhopatkar [Sun, 19 Oct 2008 04:19:23 +0000 (09:49 +0530)] 
Documentation: Clarify '--signoff' for git-commit

'--signoff' uses commiter name always to add the signoff line,
make it explicit in the documentation.

Signed-off-by: Abhijit Bhopatkar <bain@devslashzero.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes for 1.6.1
Junio C Hamano [Sat, 18 Oct 2008 15:30:39 +0000 (08:30 -0700)] 
Update draft release notes for 1.6.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Sat, 18 Oct 2008 15:26:44 +0000 (08:26 -0700)] 
Merge branch 'maint'

* maint:
  Hopefully the final draft release notes update before 1.6.0.3
  diff(1): clarify what "T"ypechange status means
  contrib: update packinfo.pl to not use dashed commands
  force_object_loose: Fix memory leak
  tests: shell negation portability fix

16 years agoHopefully the final draft release notes update before 1.6.0.3
Junio C Hamano [Sat, 18 Oct 2008 15:26:39 +0000 (08:26 -0700)] 
Hopefully the final draft release notes update before 1.6.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff(1): clarify what "T"ypechange status means
Junio C Hamano [Sat, 18 Oct 2008 15:20:51 +0000 (08:20 -0700)] 
diff(1): clarify what "T"ypechange status means

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'db/maint-checkout-b' into maint
Junio C Hamano [Sat, 18 Oct 2008 15:18:11 +0000 (08:18 -0700)] 
Merge branch 'db/maint-checkout-b' into maint

* db/maint-checkout-b:
  Check early that a new branch is new and valid

16 years agoformat-patch: autonumber by default
Brian Gernhardt [Thu, 2 Oct 2008 20:55:39 +0000 (16:55 -0400)] 
format-patch: autonumber by default

format-patch is most commonly used for multiple patches at once when
sending a patchset, in which case we want to number the patches; on
the other hand, single patches are not usually expected to be
numbered.

In other words, the typical behavior expected from format-patch is the
one obtained by enabling autonumber, so we set it to be the default.

Users that want to disable numbering for a particular patchset can do
so with the existing -N command-line switch.  Users that want to
change the default behavior can use the format.numbering config key.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Test-updates-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDo not rename read-only files during a push
Petr Baudis [Fri, 3 Oct 2008 10:20:43 +0000 (12:20 +0200)] 
Do not rename read-only files during a push

Win32 does not allow renaming read-only files (at least on a Samba
share), making push into a local directory to fail. Thus, defer
the chmod() call in index-pack.c:final() only after
move_temp_to_file() was called.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'pb/commit-where'
Junio C Hamano [Sat, 18 Oct 2008 14:07:23 +0000 (07:07 -0700)] 
Merge branch 'pb/commit-where'

* pb/commit-where:
  tutorial: update output of git commit
  reformat informational commit message
  git commit: Reformat output somewhat
  builtin-commit.c: show on which branch a commit was added

16 years agocontrib: update packinfo.pl to not use dashed commands
Dan McGee [Sat, 18 Oct 2008 02:41:18 +0000 (21:41 -0500)] 
contrib: update packinfo.pl to not use dashed commands

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoforce_object_loose: Fix memory leak
Björn Steinbrink [Sat, 18 Oct 2008 00:37:31 +0000 (02:37 +0200)] 
force_object_loose: Fix memory leak

read_packed_sha1 expectes its caller to free the buffer it returns, which
force_object_loose didn't do.

This leak is eventually triggered by "git gc", when it is manually invoked
or there are too many packs around, making gc totally unusable when there
are lots of unreachable objects.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodescribe: Make --tags and --all match lightweight tags more often
Shawn O. Pearce [Mon, 13 Oct 2008 14:39:46 +0000 (07:39 -0700)] 
describe: Make --tags and --all match lightweight tags more often

If the caller supplies --tags they want the lightweight, unannotated
tags to be searched for a match.  If a lightweight tag is closer
in the history, it should be matched, even if an annotated tag is
reachable further back in the commit chain.

The same applies with --all when matching any other type of ref.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-By: Uwe Kleine-König <ukleinek@strlen.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotests: shell negation portability fix
Jeff King [Mon, 13 Oct 2008 09:35:59 +0000 (05:35 -0400)] 
tests: shell negation portability fix

Commit 969c8775 introduced a test which uses the non-portable construct:

  command1 && ! command2 | command3

which must be

  command1 && ! (command2 | command3)

to work on bsd shells (this is another example of bbf08124, which fixed
several similar cases).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Fri, 17 Oct 2008 08:52:32 +0000 (01:52 -0700)] 
Merge branch 'maint'

* maint:
  t1301-shared-repo.sh: don't let a default ACL interfere with the test
  git-check-attr(1): add output and example sections
  xdiff-interface.c: strip newline (and cr) from line before pattern matching
  t4018-diff-funcname: demonstrate end of line funcname matching flaw
  t4018-diff-funcname: rework negated last expression test
  Typo "does not exists" when git remote update remote.
  remote.c: correct the check for a leading '/' in a remote name
  Add testcase to ensure merging an early part of a branch is done properly

Conflicts:
t/t7600-merge.sh

16 years agot1301-shared-repo.sh: don't let a default ACL interfere with the test
Matt McCutchen [Fri, 17 Oct 2008 02:32:14 +0000 (22:32 -0400)] 
t1301-shared-repo.sh: don't let a default ACL interfere with the test

This test creates files with several different umasks and expects their
permissions to be initialized according to the umask, so a default ACL on the
trash directory (which overrides the umask for files created in that directory)
causes the test to fail.  To avoid that, remove the default ACL if possible with
setfacl(1).

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-check-attr(1): use 'verse' for multi-line synopsis sections
Jonas Fonseca [Wed, 15 Oct 2008 07:11:52 +0000 (09:11 +0200)] 
git-check-attr(1): use 'verse' for multi-line synopsis sections

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-check-attr(1): add output and example sections
Jonas Fonseca [Wed, 15 Oct 2008 07:10:58 +0000 (09:10 +0200)] 
git-check-attr(1): add output and example sections

Plumbing tools should document what output can be expected.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoxdiff-interface.c: strip newline (and cr) from line before pattern matching
Brandon Casey [Wed, 1 Oct 2008 19:28:26 +0000 (14:28 -0500)] 
xdiff-interface.c: strip newline (and cr) from line before pattern matching

POSIX doth sayeth:

   "In the regular expression processing described in IEEE Std 1003.1-2001,
    the <newline> is regarded as an ordinary character and both a period and
    a non-matching list can match one. ... Those utilities (like grep) that
    do not allow <newline>s to match are responsible for eliminating any
    <newline> from strings before matching against the RE."

Thus far git has not been removing the trailing newline from strings matched
against regular expression patterns. This has the effect that (quoting
Jonathan del Strother) "... a line containing just 'FUNCNAME' (terminated by
a newline) will be matched by the pattern '^(FUNCNAME.$)' but not
'^(FUNCNAME$)'", and more simply not '^FUNCNAME$'.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agot4018-diff-funcname: demonstrate end of line funcname matching flaw
Brandon Casey [Thu, 16 Oct 2008 00:58:50 +0000 (19:58 -0500)] 
t4018-diff-funcname: demonstrate end of line funcname matching flaw

Since the newline is not removed from lines before pattern matching, a
pattern cannot match to the end of the line using the '$' operator without
using an additional operator which will indirectly match the '\n' character.

Introduce a test which should pass, but which does not due to this flaw.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot4018-diff-funcname: rework negated last expression test
Brandon Casey [Thu, 16 Oct 2008 00:58:49 +0000 (19:58 -0500)] 
t4018-diff-funcname: rework negated last expression test

This test used the non-zero exit status of 'git diff' to indicate that a
negated funcname pattern, when placed last, was correctly rejected.

The problem with this is that 'git diff' always returns non-zero if it
finds differences in the files it is comparing, and the files must
contain differences in order to trigger the funcname pattern codepath.

Instead of checking for non-zero exit status, make sure the expected
error message is printed.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTypo "does not exists" when git remote update remote.
Mikael Magnusson [Fri, 19 Sep 2008 13:48:08 +0000 (15:48 +0200)] 
Typo "does not exists" when git remote update remote.

16 years agoremote.c: correct the check for a leading '/' in a remote name
Brandon Casey [Tue, 14 Oct 2008 20:30:21 +0000 (15:30 -0500)] 
remote.c: correct the check for a leading '/' in a remote name

This test is supposed to disallow remote entries in the config file of the
form:

   [remote "/foobar"]
      ...

The leading slash in '/foobar' is not acceptable.

Instead it was incorrectly testing that the subkey had no leading '/', which
had no effect since the subkey pointer was made to point at a '.' in the
preceding lines.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd testcase to ensure merging an early part of a branch is done properly
Miklos Vajna [Mon, 13 Oct 2008 20:54:25 +0000 (22:54 +0200)] 
Add testcase to ensure merging an early part of a branch is done properly

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorebase: Document --no-verify option to bypass pre-rebase hook
Nanako Shiraishi [Mon, 13 Oct 2008 23:17:16 +0000 (08:17 +0900)] 
rebase: Document --no-verify option to bypass pre-rebase hook

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd Linux PPC support to the pre-auto-gc example hook
Miklos Vajna [Tue, 14 Oct 2008 14:42:45 +0000 (16:42 +0200)] 
Add Linux PPC support to the pre-auto-gc example hook

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot4018-diff-funcname: add objective-c xfuncname pattern to syntax test
Brandon Casey [Tue, 14 Oct 2008 20:22:10 +0000 (15:22 -0500)] 
t4018-diff-funcname: add objective-c xfuncname pattern to syntax test

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes to 1.6.1
Junio C Hamano [Tue, 14 Oct 2008 00:05:45 +0000 (17:05 -0700)] 
Update draft release notes to 1.6.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Mon, 13 Oct 2008 22:41:49 +0000 (15:41 -0700)] 
Merge branch 'maint'

* maint:
  Update draft release notes to 1.6.0.3

16 years agoUpdate draft release notes to 1.6.0.3
Junio C Hamano [Mon, 13 Oct 2008 22:41:36 +0000 (15:41 -0700)] 
Update draft release notes to 1.6.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocompat/cygwin.c - Use cygwin's stat if core.filemode == true
Mark Levedahl [Mon, 13 Oct 2008 04:33:31 +0000 (00:33 -0400)] 
compat/cygwin.c - Use cygwin's stat if core.filemode == true

Cygwin's POSIX emulation allows use of core.filemode true, unlike native
Window's implementation of stat / lstat, and Cygwin/git users who have
configured core.filemode true in various repositories will be very
unpleasantly surprised to find that git is no longer honoring that option.
So, this patch forces use of Cygwin's stat functions if core.filemode is
set true, regardless of any other considerations.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotests: shell negation portability fix
Jeff King [Mon, 13 Oct 2008 09:35:59 +0000 (05:35 -0400)] 
tests: shell negation portability fix

Commit 969c8775 introduced a test which uses the non-portable construct:

  command1 && ! command2 | command3

which must be

  command1 && ! (command2 | command3)

to work on bsd shells (this is another example of bbf08124, which fixed
several similar cases).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: refactor input parameters parse/validation
Giuseppe Bilotta [Fri, 10 Oct 2008 18:42:26 +0000 (20:42 +0200)] 
gitweb: refactor input parameters parse/validation

Since input parameters can be obtained both from CGI parameters and
PATH_INFO, we would like most of the code to be agnostic about the way
parameters were retrieved. We thus collect all the parameters into the
new %input_params hash, delaying validation after the collection is
completed.

Although the kludge removal is minimal at the moment, it makes life much
easier for future expansions such as more extensive PATH_INFO use or
other form of input such as command-line support.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agocheck-attr: Add --stdin option
Dmitry Potapov [Tue, 7 Oct 2008 00:16:52 +0000 (04:16 +0400)] 
check-attr: Add --stdin option

This allows multiple paths to be specified on stdin.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agocheck-attr: add an internal check_attr() function
Dmitry Potapov [Tue, 7 Oct 2008 00:14:18 +0000 (04:14 +0400)] 
check-attr: add an internal check_attr() function

This step is preparation to introducing --stdin-paths option.

I have also added maybe_flush_or_die() at the end of main() to ensure that
we exit with the zero code only when we flushed the output successfully.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint'
Shawn O. Pearce [Sun, 12 Oct 2008 20:21:17 +0000 (13:21 -0700)] 
Merge branch 'maint'

* maint:
  test-lib: fix broken printf
  git apply --directory broken for new files

16 years agotest-lib: fix broken printf
Shawn O. Pearce [Sun, 12 Oct 2008 20:13:59 +0000 (13:13 -0700)] 
test-lib: fix broken printf

b8eecafd888d219633f4c29e8b6a90fc21a46dfd introduced usage of
printf without a format string.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years ago"git diff <tree>{3,}": do not reverse order of arguments
Matt McCutchen [Sat, 11 Oct 2008 01:56:15 +0000 (21:56 -0400)] 
"git diff <tree>{3,}": do not reverse order of arguments

According to the message of commit 0fe7c1de16f71312e6adac4b85bddf0d62a47168,
"git diff" with three or more trees expects the merged tree first followed by
the parents, in order.  However, this command reversed the order of its
arguments, resulting in confusing diffs.  A comment /* Again, the revs are all
reverse */ suggested there was a reason for this, but I can't figure out the
reason, so I removed the reversal of the arguments.  Test case included.

Signed-off-by: Matt McCutchen <matt@mattmccutchen.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoReplace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer
Brandon Casey [Thu, 9 Oct 2008 19:12:12 +0000 (14:12 -0500)] 
Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer

Many call sites use strbuf_init(&foo, 0) to initialize local
strbuf variable "foo" which has not been accessed since its
declaration. These can be replaced with a static initialization
using the STRBUF_INIT macro which is just as readable, saves a
function call, and takes up fewer lines.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoprint an error message for invalid path
Dmitry Potapov [Sat, 11 Oct 2008 16:39:37 +0000 (20:39 +0400)] 
print an error message for invalid path

If verification of path failed, it is always better to print an
error message saying this than relying on the caller function to
print a meaningful error message (especially when the callee already
prints error message for another situation).

Because the callers of add_index_entry_with_check() did not print
any error message, it resulted that the user would not notice the
problem when checkout of an invalid path failed.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoDocumentation: remove stale howto/rebase-and-edit.txt
Thomas Rast [Sun, 12 Oct 2008 11:21:48 +0000 (13:21 +0200)] 
Documentation: remove stale howto/rebase-and-edit.txt

The "rebase and edit" howto predates the much easier solution 'git
rebase -i' by two years.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agot9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
Brandon Casey [Sat, 11 Oct 2008 00:21:34 +0000 (19:21 -0500)] 
t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'

Since dbf5e1e9, the '--no-validate' option is a Getopt::Long boolean
option. The '--no-' prefix (as in --no-validate) for boolean options
is not supported in Getopt::Long version 2.32 which was released with
Perl 5.8.0. This version only supports '--no' as in '--novalidate'.
More recent versions of Getopt::Long, such as version 2.34, support
either prefix. So use the older form in the tests.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit apply --directory broken for new files
Jeff King [Sun, 12 Oct 2008 04:06:11 +0000 (00:06 -0400)] 
git apply --directory broken for new files

We carefully verify that the input to git-apply is sane,
including cross-checking that the filenames we see in "+++"
headers match what was provided on the command line of "diff
--git". When --directory is used, however, we ended up
comparing the unadorned name to one with the prepended root,
causing us to complain about a mismatch.

We simply need to prepend the root directory, if any, when
pulling the name out of the git header.

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint'
Shawn O. Pearce [Fri, 10 Oct 2008 15:39:20 +0000 (08:39 -0700)] 
Merge branch 'maint'

* maint:
  rebase -i: do not fail when there is no commit to cherry-pick
  test-lib: fix color reset in say_color()
  fix pread()'s short read in index-pack

Conflicts:
csum-file.c

16 years agorebase -i: do not fail when there is no commit to cherry-pick
Johannes Schindelin [Fri, 10 Oct 2008 11:42:12 +0000 (13:42 +0200)] 
rebase -i: do not fail when there is no commit to cherry-pick

In case there is no commit to apply (for example because you rebase to
upstream and all your local patches have been applied there), do not
fail.  The non-interactive rebase already behaves that way.

Do this by introducing a new command, "noop", which is substituted for
an empty commit list, so that deleting the commit list can still abort
as before.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agotest-lib: fix color reset in say_color()
Miklos Vajna [Thu, 9 Oct 2008 22:07:10 +0000 (00:07 +0200)] 
test-lib: fix color reset in say_color()

When executing a single test with colors enabled, the cursor was not set
back to the previous one, and you had to hit an extra enter to get it
back.

Work around this problem by calling 'tput sgr0' before printing the
final newline.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agofix pread()'s short read in index-pack
Nicolas Pitre [Fri, 10 Oct 2008 02:08:51 +0000 (22:08 -0400)] 
fix pread()'s short read in index-pack

Since v1.6.0.2~13^2~ the completion of a thin pack uses sha1write() for
its ability to compute a SHA1 on the written data.  This also provides
data buffering which, along with commit 92392b4a45, will confuse pread()
whenever an appended object is 1) freed due to memory pressure because
of the depth-first delta processing, and 2) needed again because it has
many delta children, and 3) its data is still buffered by sha1write().

Let's fix the issue by simply forcing cached data out when such an
object is written so it can be pread()'d at leisure.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoImplement git clone -v
Miklos Vajna [Wed, 8 Oct 2008 23:40:32 +0000 (01:40 +0200)] 
Implement git clone -v

The new -v option forces the progressbar, even in case the output
is not a terminal.  This can be useful if the caller is an IDE or
wrapper which wants to scrape the progressbar from stderr and show
its information in a different format.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'js/objc-funchdr'
Shawn O. Pearce [Thu, 9 Oct 2008 18:01:51 +0000 (11:01 -0700)] 
Merge branch 'js/objc-funchdr'

* js/objc-funchdr:
  Teach git diff about Objective-C syntax

16 years agoMerge branch 'pb/gitweb'
Shawn O. Pearce [Thu, 9 Oct 2008 17:52:04 +0000 (10:52 -0700)] 
Merge branch 'pb/gitweb'

* pb/gitweb:
  gitweb: Support for simple project search form
  gitweb: Make the by_tag filter delve in forks as well
  gitweb: Support for tag clouds
  gitweb: Add support for extending the action bar with custom links
  gitweb: Sort the list of forks on the summary page by age
  gitweb: Clean-up sorting of project list

16 years agoMerge branch 'dm/svn-branch'
Shawn O. Pearce [Thu, 9 Oct 2008 17:39:00 +0000 (10:39 -0700)] 
Merge branch 'dm/svn-branch'

* dm/svn-branch:
  Add git-svn branch to allow branch creation in SVN repositories

16 years agoMerge branch 'bc/xdiffnl'
Shawn O. Pearce [Thu, 9 Oct 2008 17:24:24 +0000 (10:24 -0700)] 
Merge branch 'bc/xdiffnl'

* bc/xdiffnl:
  xdiff-interface.c: strip newline (and cr) from line before pattern matching

16 years agoMerge branch 'dp/cywginstat'
Shawn O. Pearce [Thu, 9 Oct 2008 17:24:14 +0000 (10:24 -0700)] 
Merge branch 'dp/cywginstat'

* dp/cywginstat:
  cygwin: Use native Win32 API for stat
  mingw: move common functionality to win32.h
  add have_git_dir() function

16 years agoMerge branch 'lt/time-reject-fractional-seconds'
Shawn O. Pearce [Thu, 9 Oct 2008 17:23:55 +0000 (10:23 -0700)] 
Merge branch 'lt/time-reject-fractional-seconds'

* lt/time-reject-fractional-seconds:
  date/time: do not get confused by fractional seconds

16 years agoMerge branch 'jc/add-ita'
Shawn O. Pearce [Thu, 9 Oct 2008 17:21:25 +0000 (10:21 -0700)] 
Merge branch 'jc/add-ita'

* jc/add-ita:
  git-add --intent-to-add (-N)

16 years agoMerge branch 'mw/sendemail'
Shawn O. Pearce [Thu, 9 Oct 2008 17:19:51 +0000 (10:19 -0700)] 
Merge branch 'mw/sendemail'

* mw/sendemail:
  bash completion: Add --[no-]validate to "git send-email"
  send-email: signedoffcc -> signedoffbycc, but handle both
  Docs: send-email: Create logical groupings for man text
  Docs: send-email: Create logical groupings for --help text
  Docs: send-email: Remove unnecessary config variable description
  Docs: send-email: --chain_reply_to -> --[no-]chain-reply-to
  send-email: change --no-validate to boolean --[no-]validate
  Docs: send-email: Man page option ordering
  Docs: send-email usage text much sexier
  Docs: send-email's usage text and man page mention same options

16 years agoMerge branch 'mv/merge-refresh'
Shawn O. Pearce [Thu, 9 Oct 2008 17:19:23 +0000 (10:19 -0700)] 
Merge branch 'mv/merge-refresh'

* mv/merge-refresh:
  builtin-merge: refresh the index before calling a strategy

16 years agoMerge branch 'ph/parseopt'
Shawn O. Pearce [Thu, 9 Oct 2008 17:19:08 +0000 (10:19 -0700)] 
Merge branch 'ph/parseopt'

* ph/parseopt:
  parse-opt: migrate builtin-merge-file.
  parse-opt: migrate git-merge-base.
  parse-opt: migrate fmt-merge-msg.

16 years agoMerge branch 'rz/grepz'
Shawn O. Pearce [Thu, 9 Oct 2008 17:18:59 +0000 (10:18 -0700)] 
Merge branch 'rz/grepz'

* rz/grepz:
  git grep: Add "-z/--null" option as in GNU's grep.

16 years agoMerge branch 'mg/verboseprune'
Shawn O. Pearce [Thu, 9 Oct 2008 17:18:41 +0000 (10:18 -0700)] 
Merge branch 'mg/verboseprune'

* mg/verboseprune:
  make prune report removed objects on -v

16 years agoMerge branch 'maint'
Shawn O. Pearce [Thu, 9 Oct 2008 17:18:32 +0000 (10:18 -0700)] 
Merge branch 'maint'

* maint:
  builtin-apply: fix typo leading to stack corruption
  git-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)
  builtin-merge.c: allocate correct amount of memory
  Makefile: do not set NEEDS_LIBICONV for Solaris 8
  rebase -i: remove leftover debugging
  rebase -i: proper prepare-commit-msg hook argument when squashing

16 years agoMerge branch 'sg/maint-intrebase-msghook' into maint
Shawn O. Pearce [Thu, 9 Oct 2008 16:33:23 +0000 (09:33 -0700)] 
Merge branch 'sg/maint-intrebase-msghook' into maint

* sg/maint-intrebase-msghook:
  rebase -i: remove leftover debugging
  rebase -i: proper prepare-commit-msg hook argument when squashing

16 years agobuiltin-apply: fix typo leading to stack corruption
Imre Deak [Wed, 8 Oct 2008 21:24:16 +0000 (00:24 +0300)] 
builtin-apply: fix typo leading to stack corruption

This typo led to stack corruption for lines with whitespace fixes
and length > 1024.

Signed-off-by: Imre Deak <imre.deak@gmail.com>
Looks-good-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)
Brandon Casey [Thu, 2 Oct 2008 23:52:11 +0000 (18:52 -0500)] 
git-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1)

The referenced commit tried to fix a flaw in stash's handling of a user
supplied invalid ref. i.e. 'git stash apply fake_ref@{0}' should fail
instead of applying stash@{0}. But, it did so in a naive way by avoiding the
use of the --default option of rev-parse, and instead manually supplied the
default revision if the user supplied an empty command line. This prevented
a common usage scenario of supplying flags on the stash command line (i.e.
non-empty command line) which would be parsed by lower level git commands,
without supplying a specific revision. This should fall back to the default
revision, but now it causes an error. e.g. 'git stash show -p'

The correct fix is to use the --verify option of rev-parse, which fails
properly if an invalid ref is supplied, and still allows falling back to a
default ref when one is not supplied.

Convert stash-drop to use --verify while we're at it, since specifying
multiple revisions for any of these commands is also an error and --verify
makes it so.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'jk/maint-soliconv' into maint
Shawn O. Pearce [Thu, 9 Oct 2008 16:08:43 +0000 (09:08 -0700)] 
Merge branch 'jk/maint-soliconv' into maint

* jk/maint-soliconv:
  Makefile: do not set NEEDS_LIBICONV for Solaris 8

16 years agoCleanup in sha1_file.c::cache_or_unpack_entry()
Miklos Vajna [Thu, 9 Oct 2008 00:11:24 +0000 (02:11 +0200)] 
Cleanup in sha1_file.c::cache_or_unpack_entry()

This patch just removes an unnecessary goto which makes the code easier
to read and shorter.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agobuiltin-merge.c: allocate correct amount of memory
Brandon Casey [Thu, 9 Oct 2008 00:07:54 +0000 (19:07 -0500)] 
builtin-merge.c: allocate correct amount of memory

Fix two memory allocation errors which allocate space for a pointer
rather than enough space for the structure itself.

This:

    struct commit_list *parent = xmalloc(sizeof(struct commit_list *));

should have been this:

    struct commit_list *parent = xmalloc(sizeof(struct commit_list));

But while we're at it, change the allocation to reference the
variable it is allocating memory for to try to prevent a similar
mistake, for example if the type is changed, in the future.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint'
Shawn O. Pearce [Wed, 8 Oct 2008 15:05:43 +0000 (08:05 -0700)] 
Merge branch 'maint'

* maint:
  Do not use errno when pread() returns 0
  git init: --bare/--shared overrides system/global config
  git-push.txt: Describe --repo option in more detail
  git rm: refresh index before up-to-date check
  Fix a few typos in relnotes

16 years agoDo not use errno when pread() returns 0
Samuel Tardieu [Mon, 6 Oct 2008 17:28:41 +0000 (19:28 +0200)] 
Do not use errno when pread() returns 0

If we use pread() while at the end of the file, it will return 0, which is
not an error from the operating system point of view. In this case, errno
has not been set and must not be used.

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoReplace xmalloc/memset(0) pairs with xcalloc
Brandon Casey [Mon, 6 Oct 2008 23:39:10 +0000 (18:39 -0500)] 
Replace xmalloc/memset(0) pairs with xcalloc

Many call sites immediately initialize allocated memory with zero after
calling xmalloc. A single call to xcalloc can replace this two-call
sequence.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit init: --bare/--shared overrides system/global config
Deskin Miller [Tue, 7 Oct 2008 05:37:48 +0000 (01:37 -0400)] 
git init: --bare/--shared overrides system/global config

If core.bare or core.sharedRepository are set in /etc/gitconfig or
~/.gitconfig, then 'git init' will read the values when constructing a
new config file; reading them, however, will override the values
specified on the command line.  In the case of --bare, this ends up
causing a segfault, without the repository being properly initialised;
in the case of --shared, the permissions are set according to the
existing config settings, not what was specified on the command line.

This fix saves any specified values for --bare and --shared prior to
reading existing config settings, and restores them after reading but
before writing the new config file.  core.bare is ignored in all
situations, while core.sharedRepository will only be used if --shared
is not specified to git init.

Also includes testcases which use a specified global config file
override, demonstrating the former failure scenario.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit-push.txt: Describe --repo option in more detail
Johannes Sixt [Tue, 7 Oct 2008 14:26:20 +0000 (16:26 +0200)] 
git-push.txt: Describe --repo option in more detail

The --repo option was described in a way that the reader would have to
assume that it is the same as the <repository> parameter. But it actually
servers a purpose, which is now written down.

Furthermore, the --mirror option was missing from the synopsis.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agogit rm: refresh index before up-to-date check
Johannes Schindelin [Tue, 7 Oct 2008 16:08:21 +0000 (18:08 +0200)] 
git rm: refresh index before up-to-date check

Since "git rm" is supposed to be porcelain, we should convince it to
be user friendly by refreshing the index itself.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoFix a few typos in relnotes
Mikael Magnusson [Tue, 7 Oct 2008 18:15:25 +0000 (20:15 +0200)] 
Fix a few typos in relnotes

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoTeach git diff about Objective-C syntax
Jonathan del Strother [Tue, 30 Sep 2008 23:46:34 +0000 (00:46 +0100)] 
Teach git diff about Objective-C syntax

Add support for recognition of Objective-C class & instance methods,
C functions, and class implementation/interfaces.

Signed-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agorebase --no-verify
Nanako Shiraishi [Mon, 6 Oct 2008 05:14:29 +0000 (14:14 +0900)] 
rebase --no-verify

It is sometimes desirable to disable the safety net of pre-rebase hook
when the user knows what he is doing (for example, when the original
changes on the branch have not been shown to the public yet).

This teaches --no-verify option to git-rebase, which is similar to the way
pre-commit hook is bypassed by git-commit.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoAdd git-svn branch to allow branch creation in SVN repositories
Florian Ragwitz [Sun, 5 Oct 2008 02:35:17 +0000 (19:35 -0700)] 
Add git-svn branch to allow branch creation in SVN repositories

[ew: fixed a warning to stderr causing t9108 to fail]

Signed-off-by: Florian Ragwitz <rafl@debian.org>
Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoMerge branch 'maint'
Shawn O. Pearce [Mon, 6 Oct 2008 15:56:07 +0000 (08:56 -0700)] 
Merge branch 'maint'

* maint:
  Update release notes for 1.6.0.3
  Teach rebase -i to honor pre-rebase hook
  docs: describe pre-rebase hook
  do not segfault if make_cache_entry failed
  make prefix_path() never return NULL
  fix bogus "diff --git" header from "diff --no-index"
  Fix fetch/clone --quiet when stdout is connected
  builtin-blame: Fix blame -C -C with submodules.
  bash: remove fetch, push, pull dashed form leftovers

Conflicts:
diff.c

16 years agoUpdate release notes for 1.6.0.3
Shawn O. Pearce [Mon, 6 Oct 2008 15:22:19 +0000 (08:22 -0700)] 
Update release notes for 1.6.0.3

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agodo not segfault if make_cache_entry failed
Dmitry Potapov [Sun, 5 Oct 2008 02:14:40 +0000 (06:14 +0400)] 
do not segfault if make_cache_entry failed

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agoTeach rebase -i to honor pre-rebase hook
Nanako Shiraishi [Mon, 6 Oct 2008 05:14:24 +0000 (14:14 +0900)] 
Teach rebase -i to honor pre-rebase hook

The original git-rebase honored pre-rebase hook so that public branches
can be protected from getting rebased, but rebase --interactive ignored
the hook entirely.  This fixes it.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agodocs: describe pre-rebase hook
Nanako Shiraishi [Sun, 5 Oct 2008 13:26:54 +0000 (22:26 +0900)] 
docs: describe pre-rebase hook

Documentation/git-rebase.txt talks about pre-rebase hook, but it
appears that Documentation/git-hooks.txt does not have corresponding
entry for it.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agodo not segfault if make_cache_entry failed
Dmitry Potapov [Sun, 5 Oct 2008 02:14:40 +0000 (06:14 +0400)] 
do not segfault if make_cache_entry failed

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agomake prefix_path() never return NULL
Dmitry Potapov [Sun, 5 Oct 2008 00:40:36 +0000 (04:40 +0400)] 
make prefix_path() never return NULL

There are 9 places where prefix_path is called, and only in one of
them the returned pointer was checked to be non-zero and only to
call exit(128) as it is usually done by die(). In other 8 places,
the returned value was not checked and it caused SIGSEGV when a
path outside of the working tree was used. For instance, running
  git update-index --add /some/path/outside
caused SIGSEGV.

This patch changes prefix_path() to die if the path is outside of
the repository, so it never returns NULL.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
16 years agofix bogus "diff --git" header from "diff --no-index"
Linus Torvalds [Sun, 5 Oct 2008 19:35:15 +0000 (15:35 -0400)] 
fix bogus "diff --git" header from "diff --no-index"

When "git diff --no-index" is given an absolute pathname, it
would generate a diff header with the absolute path
prepended by the prefix, like:

  diff --git a/dev/null b/foo

Not only is this nonsensical, and not only does it violate
the description of diffs given in git-diff(1), but it would
produce broken binary diffs. Unlike text diffs, the binary
diffs don't contain the filenames anywhere else, and so "git
apply" relies on this header to figure out the filename.

This patch just refuses to use an invalid name for anything
visible in the diff.

Now, this fixes the "git diff --no-index --binary a
/dev/null" kind of case (and we'll end up using "a" as the
basename), but some other insane cases are impossible to
handle. If you do

git diff --no-index --binary a /bin/echo

you'll still get a patch like

diff --git a/a b/bin/echo
old mode 100644
new mode 100755
index ...

and "git apply" will refuse to apply it for a couple of
reasons, and the diff is simply bogus.

And that, btw, is no longer a bug, I think. It's impossible
to know whethe the user meant for the patch to be a rename
or not. And as such, refusing to apply it because you don't
know what name you should use is probably _exactly_ the
right thing to do!

Original problem reported by Imre Deak. Test script and problem
description by Jeff King.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>