Code

git.git
16 years agot5510: test "git fetch" following tags minimally
Junio C Hamano [Mon, 22 Sep 2008 06:50:01 +0000 (23:50 -0700)]
t5510: test "git fetch" following tags minimally

When "git fetch" auto-follows tags, it should not download excess ones.
This new test makes sure that condition.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes to 1.6.1
Junio C Hamano [Sat, 20 Sep 2008 08:01:30 +0000 (01:01 -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 [Sat, 20 Sep 2008 06:15:44 +0000 (23:15 -0700)]
Merge branch 'maint'

* maint:
  Start draft release notes for 1.6.0.3
  git-repack uses --no-repack-object, not --no-repack-delta.
  Typo "bogos" in format-patch error message.
  builtin-clone: fix typo
  Bust the ghost of long-defunct diffcore-pathspec.
  completion: git commit should list --interactive

Conflicts:
RelNotes

16 years agoStart draft release notes for 1.6.0.3
Junio C Hamano [Sat, 20 Sep 2008 06:15:13 +0000 (23:15 -0700)]
Start draft release notes for 1.6.0.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-repack uses --no-repack-object, not --no-repack-delta.
Mikael Magnusson [Fri, 19 Sep 2008 13:43:48 +0000 (15:43 +0200)]
git-repack uses --no-repack-object, not --no-repack-delta.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoTypo "bogos" in format-patch error message.
Mikael Magnusson [Fri, 19 Sep 2008 13:42:30 +0000 (15:42 +0200)]
Typo "bogos" in format-patch error message.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobuiltin-clone: fix typo
Fabrizio Chiarello [Fri, 19 Sep 2008 12:07:26 +0000 (14:07 +0200)]
builtin-clone: fix typo

Signed-off-by: Fabrizio Chiarello <ponch@autistici.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoBust the ghost of long-defunct diffcore-pathspec.
Yann Dirson [Fri, 19 Sep 2008 20:12:53 +0000 (22:12 +0200)]
Bust the ghost of long-defunct diffcore-pathspec.

This concept was retired by 77882f6 (Retire diffcore-pathspec.,
2006-04-10), more than 2 years ago.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agobash: use for-each-ref format 'refname:short'
SZEDER Gábor [Fri, 19 Sep 2008 22:15:25 +0000 (00:15 +0200)]
bash: use for-each-ref format 'refname:short'

Using this format simplifies the code for completing refs and (in some
cases) improves performance significantly.

For repositories like the current git.git (with more than 200 refs)
there is no real performance difference, but for a repository with 2000
refs the total time needed to complete the refs is reduced by ~25% (from
around 400ms to around 305ms).

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agocompletion: git commit should list --interactive
Eric Raible [Thu, 11 Sep 2008 00:40:20 +0000 (17:40 -0700)]
completion: git commit should list --interactive

Signed-off-by: Eric Raible <raible@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Fri, 19 Sep 2008 03:30:12 +0000 (20:30 -0700)]
Merge branch 'maint'

* maint:
  sha1_file: link() returns -1 on failure, not errno
  Make git archive respect core.autocrlf when creating zip format archives
  Add new test to demonstrate git archive core.autocrlf inconsistency
  gitweb: avoid warnings for commits without body
  Clarified gitattributes documentation regarding custom hunk header.
  git-svn: fix handling of even funkier branch names
  git-svn: Always create a new RA when calling do_switch for svn://
  git-svn: factor out svnserve test code for later use
  diff/diff-files: do not use --cc too aggressively

16 years agoMerge branch 'jc/diff-prefix'
Junio C Hamano [Fri, 19 Sep 2008 03:30:07 +0000 (20:30 -0700)]
Merge branch 'jc/diff-prefix'

* jc/diff-prefix:
  diff: vary default prefix depending on what are compared

16 years agoMerge branch 'np/pack'
Junio C Hamano [Fri, 19 Sep 2008 03:19:30 +0000 (20:19 -0700)]
Merge branch 'np/pack'

* np/pack:
  t5300: improve SHA1 collision test
  pack-objects: don't include missing preferred base objects
  sha1write: don't copy full sized buffers

Conflicts:
t/t5300-pack-object.sh

16 years agoMerge branch 'bw/shortref'
Junio C Hamano [Fri, 19 Sep 2008 03:18:44 +0000 (20:18 -0700)]
Merge branch 'bw/shortref'

* bw/shortref:
  for-each-ref: `:short` format for `refname`

16 years agoMerge branch 'rs/decorate'
Junio C Hamano [Fri, 19 Sep 2008 03:18:41 +0000 (20:18 -0700)]
Merge branch 'rs/decorate'

* rs/decorate:
  add '%d' pretty format specifier to show decoration
  move load_ref_decorations() to log-tree.c and export it
  log: add load_ref_decorations()

16 years agoMerge branch 'tr/rev-list-reverse'
Junio C Hamano [Fri, 19 Sep 2008 03:18:37 +0000 (20:18 -0700)]
Merge branch 'tr/rev-list-reverse'

* tr/rev-list-reverse:
  t6013: replace use of 'tac' with equivalent Perl
  rev-list: fix --reverse interaction with --parents

16 years agoMerge branch 'cc/bisect'
Junio C Hamano [Fri, 19 Sep 2008 03:18:32 +0000 (20:18 -0700)]
Merge branch 'cc/bisect'

* cc/bisect:
  bisect: remove "checkout_done" variable used when checking merge bases
  bisect: only check merge bases when needed
  bisect: test merge base if good rev is not an ancestor of bad rev

16 years agoMerge branch 'jc/setlinebuf-setvbuf'
Junio C Hamano [Fri, 19 Sep 2008 03:18:27 +0000 (20:18 -0700)]
Merge branch 'jc/setlinebuf-setvbuf'

* jc/setlinebuf-setvbuf:
  daemon.c: avoid setlinebuf()

16 years agoMerge branch 'dp/maint-rebase-fix' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:25 +0000 (19:53 -0700)]
Merge branch 'dp/maint-rebase-fix' into maint

* dp/maint-rebase-fix:
  git-rebase--interactive: auto amend only edited commit
  git-rebase-interactive: do not squash commits on abort

16 years agoMerge branch 'jc/maint-checkout-keep-remove' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:22 +0000 (19:53 -0700)]
Merge branch 'jc/maint-checkout-keep-remove' into maint

* jc/maint-checkout-keep-remove:
  checkout: do not lose staged removal

16 years agoMerge branch 'jc/maint-diff-quiet' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:12 +0000 (19:53 -0700)]
Merge branch 'jc/maint-diff-quiet' into maint

* jc/maint-diff-quiet:
  diff --quiet: make it synonym to --exit-code >/dev/null
  diff Porcelain: do not disable auto index refreshing on -C -C

16 years agoMerge branch 'jc/maint-name-hash-clear' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:06 +0000 (19:53 -0700)]
Merge branch 'jc/maint-name-hash-clear' into maint

* jc/maint-name-hash-clear:
  discard_cache: reset lazy name_hash bit

16 years agoMerge branch 'jc/maint-template-permbits' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:53:01 +0000 (19:53 -0700)]
Merge branch 'jc/maint-template-permbits' into maint

* jc/maint-template-permbits:
  Fix permission bits on sources checked out with an overtight umask

16 years agoMerge branch 'mh/maint-honor-no-ssl-verify' into maint
Junio C Hamano [Fri, 19 Sep 2008 02:52:57 +0000 (19:52 -0700)]
Merge branch 'mh/maint-honor-no-ssl-verify' into maint

* mh/maint-honor-no-ssl-verify:
  Don't verify host name in SSL certs when GIT_SSL_NO_VERIFY is set

16 years agosha1_file: link() returns -1 on failure, not errno
Thomas Rast [Thu, 18 Sep 2008 22:24:46 +0000 (00:24 +0200)]
sha1_file: link() returns -1 on failure, not errno

5723fe7 (Avoid cross-directory renames and linking on object creation,
2008-06-14) changed the call to use link() directly instead of through a
custom wrapper, but forgot that it returns 0 or -1, not 0 or errno.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMake git archive respect core.autocrlf when creating zip format archives
Charles Bailey [Thu, 18 Sep 2008 20:01:20 +0000 (21:01 +0100)]
Make git archive respect core.autocrlf when creating zip format archives

There is currently no call to git_config at the start of cmd_archive.
When creating tar archives the core config is read as a side-effect of
reading the tar specific config, but this doesn't happen for zip
archives.

The consequence is that in a configuration with core.autocrlf set,
although files in a tar archive are created with crlf line endings,
files in a zip archive retain unix line endings.

Signed-off-by: Charles Bailey <charles@hashpling.org>
Acked-by: René Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoAdd new test to demonstrate git archive core.autocrlf inconsistency
Charles Bailey [Thu, 18 Sep 2008 20:01:13 +0000 (21:01 +0100)]
Add new test to demonstrate git archive core.autocrlf inconsistency

Signed-off-by: Charles Bailey <charles@hashpling.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogitweb: avoid warnings for commits without body
Joey Hess [Fri, 5 Sep 2008 18:26:29 +0000 (14:26 -0400)]
gitweb: avoid warnings for commits without body

In the unusual case when there is no commit message, gitweb would
output an uninitialized value warning.

Signed-off-by: Joey Hess <joey@kitenet.net>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoClarified gitattributes documentation regarding custom hunk header.
Garry Dolley [Wed, 17 Sep 2008 06:20:39 +0000 (23:20 -0700)]
Clarified gitattributes documentation regarding custom hunk header.

The only part of the hunk header that we can change is the "TEXT"
portion.  Additionally, a few grammatical errors have been corrected.

Signed-off-by: Garry Dolley <gdolley@ucla.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: fix handling of even funkier branch names
Eric Wong [Sun, 7 Sep 2008 03:18:18 +0000 (20:18 -0700)]
git-svn: fix handling of even funkier branch names

Apparently do_switch() tolerates the lack of escaping in less
funky branch names.  For the really strange and scary ones, we
need to escape them properly.  It strangely maintains compatible
with the existing handling of branch names with spaces and
exclamation marks.

Reported-by: m.skoric@web.de ($gmane/94677)
Signed-off-by: Eric Wong <normalperson@yhbt.net>
16 years agogit-svn: Always create a new RA when calling do_switch for svn://
Alec Berryman [Sun, 14 Sep 2008 21:14:16 +0000 (17:14 -0400)]
git-svn: Always create a new RA when calling do_switch for svn://

Not doing so caused the "Malformed network data" error when a directoy
was deleted and replaced with a copy from an older version.

Signed-off-by: Alec Berryman <alec@thened.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: factor out svnserve test code for later use
Alec Berryman [Sun, 14 Sep 2008 21:14:15 +0000 (17:14 -0400)]
git-svn: factor out svnserve test code for later use

Signed-off-by: Alec Berryman <alec@thened.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff/diff-files: do not use --cc too aggressively
Junio C Hamano [Thu, 18 Sep 2008 07:32:37 +0000 (00:32 -0700)]
diff/diff-files: do not use --cc too aggressively

Textual diff output for unmerged paths was too eager to give condensed
combined diff.  Even though "diff -c" (and "diff-files -c -p") is a
request to view combined diff without condensing (otherwise the user would
have explicitly asked for --cc, not -c), we showed "--cc" output anyway.

0fe7c1d (built-in diff: assorted updates, 2006-04-29) claimed to be
careful about doing this, but its breakage was hidden because back then
"git diff" was still a shell script that did not use the codepath it
introduced fully.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Tue, 16 Sep 2008 08:24:58 +0000 (01:24 -0700)]
Merge branch 'maint'

* maint:
  Cosmetical command name fix
  Start conforming code to "git subcmd" style part 3
  t9700/test.pl: remove File::Temp requirement
  t9700/test.pl: avoid bareword 'STDERR' in 3-argument open()

16 years agoMerge branch 'dp/maint-rebase-fix'
Junio C Hamano [Tue, 16 Sep 2008 07:50:57 +0000 (00:50 -0700)]
Merge branch 'dp/maint-rebase-fix'

* dp/maint-rebase-fix:
  git-rebase--interactive: auto amend only edited commit
  git-rebase-interactive: do not squash commits on abort

16 years agoMerge branch 'jc/maint-checkout-keep-remove'
Junio C Hamano [Tue, 16 Sep 2008 07:49:59 +0000 (00:49 -0700)]
Merge branch 'jc/maint-checkout-keep-remove'

* jc/maint-checkout-keep-remove:
  checkout: do not lose staged removal

16 years agoMerge branch 'jc/maint-diff-quiet'
Junio C Hamano [Tue, 16 Sep 2008 07:48:16 +0000 (00:48 -0700)]
Merge branch 'jc/maint-diff-quiet'

* jc/maint-diff-quiet:
  diff --quiet: make it synonym to --exit-code >/dev/null
  diff Porcelain: do not disable auto index refreshing on -C -C

16 years agoMerge branch 'jc/maint-name-hash-clear'
Junio C Hamano [Tue, 16 Sep 2008 07:47:52 +0000 (00:47 -0700)]
Merge branch 'jc/maint-name-hash-clear'

* jc/maint-name-hash-clear:
  discard_cache: reset lazy name_hash bit

16 years agoMerge branch 'jc/maint-template-permbits'
Junio C Hamano [Tue, 16 Sep 2008 07:47:30 +0000 (00:47 -0700)]
Merge branch 'jc/maint-template-permbits'

* jc/maint-template-permbits:
  Fix permission bits on sources checked out with an overtight umask

16 years agoMerge branch 'mh/maint-honor-no-ssl-verify'
Junio C Hamano [Tue, 16 Sep 2008 07:46:36 +0000 (00:46 -0700)]
Merge branch 'mh/maint-honor-no-ssl-verify'

* mh/maint-honor-no-ssl-verify:
  Don't verify host name in SSL certs when GIT_SSL_NO_VERIFY is set

16 years agoCosmetical command name fix
Heikki Orsila [Sat, 13 Sep 2008 16:31:31 +0000 (19:31 +0300)]
Cosmetical command name fix

If we came from git.c the first arg would be "archive".
"git-archive" isn't a bug because cmd_archive() doesn't check
the first arg.

Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoStart conforming code to "git subcmd" style part 3
Heikki Orsila [Sat, 13 Sep 2008 17:18:36 +0000 (20:18 +0300)]
Start conforming code to "git subcmd" style part 3

User notifications are presented as 'git cmd', and code comments
are presented as '"cmd"' or 'git's cmd', rather than 'git-cmd'.

Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9700/test.pl: remove File::Temp requirement
Brandon Casey [Mon, 15 Sep 2008 16:25:22 +0000 (11:25 -0500)]
t9700/test.pl: remove File::Temp requirement

The object oriented version of File::Temp is a rather new incarnation it
seems. The File::Temp man page for v5.8.0 says "(NOT YET IMPLEMENTED)" in
the 'Objects' section. Instead of creating a file with a unique name in
the system TMPDIR, we can create our own temporary file with a static
name and use that instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Tested-by: Tom G. Christensen <tgc@statsbiblioteket.dk> on RHEL 3, Perl 5.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9700/test.pl: avoid bareword 'STDERR' in 3-argument open()
Brandon Casey [Mon, 15 Sep 2008 16:23:24 +0000 (11:23 -0500)]
t9700/test.pl: avoid bareword 'STDERR' in 3-argument open()

Some versions of perl complain when 'STDERR' is used as the third argument
in the 3-argument form of open(). Convert to the 2-argument form which is
described for duping STDERR in my second edition camel book.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Tested-by: Tom G. Christensen <tgc@statsbiblioteket.dk> on RHEL 3, Perl 5.8.0
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate RPM spec for the new location of git-cvsserver.
Quy Tonthat [Fri, 12 Sep 2008 16:22:44 +0000 (02:22 +1000)]
Update RPM spec for the new location of git-cvsserver.

git-cvsserver has been moved from libexecdir to bindir.

Signed-off-by: Quy Tonthat <qtonthat@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoSync with 1.6.0.2
Junio C Hamano [Sat, 13 Sep 2008 00:20:39 +0000 (17:20 -0700)]
Sync with 1.6.0.2

16 years agoGIT 1.6.0.2 v1.6.0.2
Junio C Hamano [Fri, 12 Sep 2008 23:18:47 +0000 (16:18 -0700)]
GIT 1.6.0.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'ho/maint-dashless' into maint
Junio C Hamano [Fri, 12 Sep 2008 23:15:23 +0000 (16:15 -0700)]
Merge branch 'ho/maint-dashless' into maint

* ho/maint-dashless:
  Start conforming code to "git subcmd" style part 2

16 years agoFix some manual typos.
Ralf Wildenhues [Fri, 12 Sep 2008 19:10:26 +0000 (21:10 +0200)]
Fix some manual typos.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUse compatibility regex library also on FreeBSD
Jeff King [Thu, 11 Sep 2008 12:12:16 +0000 (08:12 -0400)]
Use compatibility regex library also on FreeBSD

Commit 3632cfc24 makes the same change for Darwin; however, the problem
also exists on FreeBSD.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUse compatibility regex library also on AIX
Johannes Sixt [Thu, 11 Sep 2008 08:14:44 +0000 (10:14 +0200)]
Use compatibility regex library also on AIX

This augments 3632cfc24 (Use compatibility regex library on Darwin,
2008-09-07), which already carries a "Tested-by" statement for AIX,
but that test was actually done with this patch included.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Tested-by: Mike Ralphson <mike@abacus.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoInstall git-cvsserver in $(bindir)
Nanako Shiraishi [Wed, 10 Sep 2008 11:03:18 +0000 (20:03 +0900)]
Install git-cvsserver in $(bindir)

It is one of the server side programs and needs to be found on usual $PATH.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoseparate build targets for man and html documentation
Michael J Gruber [Wed, 10 Sep 2008 08:19:34 +0000 (10:19 +0200)]
separate build targets for man and html documentation

This introduces new build targets "man" and "html" which allow building
the documentation in the respective formats separately. This helps
people with a partial documentation build chain: html pages can be built
without xmlto.

This is documented in INSTALL now, together with corrections: Before,
instructions in INSTALL would build man+html but install man only. Now
the instructions build and install both, and new and pre-existing
targets are explained.

Note that build targets "doc" and "man" correspond to install targets
"install-doc install-html" and "install-doc" respectively. This
inconsistency is not changed, in order to keep everyone's build scripts
from breaking.

Signed-off-by: Michael J Gruber <michaeljgruber+gmane@fastmail.fm>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoallow installation of man and html doc from the man and html branches
Michael J Gruber [Tue, 9 Sep 2008 20:44:17 +0000 (22:44 +0200)]
allow installation of man and html doc from the man and html branches

This patch introduces a make target "quick-install-html" which installs
the html documentation from the branch origin/html, without the need for
asciidoc/xmlto. This is analogous to the existing "quick-install-doc"
target for the man pages.

We advertise these targets in the INSTALL file now.

Signed-off-by: Michael J Gruber <michaeljgruber+gmane@fastmail.fm>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix git-diff-tree --stdin
Junio C Hamano [Wed, 10 Sep 2008 19:22:35 +0000 (12:22 -0700)]
Fix git-diff-tree --stdin

140b378 (Teach git diff-tree --stdin to diff trees, 2008-08-10) broke the
more important case of reading series of commits to filter ones that touch
given pathspecs.

Noticed by Mark Levedahl, running "gitk ec3a4ba" and trying to focus on
commits that touch "t/" directory.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'maint'
Junio C Hamano [Wed, 10 Sep 2008 20:56:20 +0000 (13:56 -0700)]
Merge branch 'maint'

* maint:
  Update draft release notes for 1.6.0.2
  Use compatibility regex library for OSX/Darwin
  git-svn: Fixes my() parameter list syntax error in pre-5.8 Perl
  Git.pm: Use File::Temp->tempfile instead of ->new
  t7501: always use test_cmp instead of diff

Conflicts:
Makefile

16 years agoUpdate draft release notes for 1.6.0.2
Junio C Hamano [Wed, 10 Sep 2008 19:45:02 +0000 (12:45 -0700)]
Update draft release notes for 1.6.0.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUse compatibility regex library for OSX/Darwin
Arjen Laarhoven [Sun, 7 Sep 2008 18:45:37 +0000 (20:45 +0200)]
Use compatibility regex library for OSX/Darwin

The standard libc regex library on OSX does not support alternation
in POSIX Basic Regular Expression mode.  This breaks the diff.funcname
functionality on OSX.

To fix this, we use the GNU regex library which is already present in
the compat/ diretory for the MinGW port.  However, simply adding compat/
to the COMPAT_CFLAGS variable causes a conflict between the system
fnmatch.h and the one present in compat/.  To remedy this, move the
regex and fnmatch functionality to their own subdirectories in compat/
so they can be included seperately.

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Tested-by: Mike Ralphson <mike@abacus.co.uk> (AIX)
Tested-by: Johannes Sixt <johannes.sixt@telecom.at> (MinGW)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: Fixes my() parameter list syntax error in pre-5.8 Perl
Marcus Griep [Wed, 10 Sep 2008 15:09:46 +0000 (11:09 -0400)]
git-svn: Fixes my() parameter list syntax error in pre-5.8 Perl

Signed-off-by: Marcus Griep <marcus@griep.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoGit.pm: Use File::Temp->tempfile instead of ->new
Marcus Griep [Mon, 8 Sep 2008 16:53:01 +0000 (12:53 -0400)]
Git.pm: Use File::Temp->tempfile instead of ->new

Perl 5.8.0 ships with File::Temp 0.13, which does not have the new()
interface introduced in 0.14, as pointed out by Tom G. Christensen.

This modifies Git.pm to use the more established tempfile() interface
and updates 'git svn' to match.

Signed-off-by: Marcus Griep <marcus@griep.us>
Acked-by: Eric Wong <normalperson@yhbt.net>
Tested-by: Tom G. Christensen <tgc@statsbiblioteket.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot7501: always use test_cmp instead of diff
Miklos Vajna [Wed, 10 Sep 2008 17:32:44 +0000 (19:32 +0200)]
t7501: always use test_cmp instead of diff

This should make the output more readable (by default using diff -u)
when some tests fail.

Also changed the diff order from "current expected" to "expected
current".

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'jc/maint-log-grep' into maint
Junio C Hamano [Wed, 10 Sep 2008 09:15:08 +0000 (02:15 -0700)]
Merge branch 'jc/maint-log-grep' into maint

* jc/maint-log-grep:
  log --author/--committer: really match only with name part

16 years agoMerge branch 'jc/maint-hide-cr-in-diff-from-less' into maint
Junio C Hamano [Wed, 10 Sep 2008 09:14:18 +0000 (02:14 -0700)]
Merge branch 'jc/maint-hide-cr-in-diff-from-less' into maint

* jc/maint-hide-cr-in-diff-from-less:
  diff: Help "less" hide ^M from the output

16 years agoMerge branch 'jc/maint-checkout-fix' into maint
Junio C Hamano [Wed, 10 Sep 2008 09:13:41 +0000 (02:13 -0700)]
Merge branch 'jc/maint-checkout-fix' into maint

* jc/maint-checkout-fix:
  checkout: do not check out unmerged higher stages randomly

16 years agoMerge branch 'np/maint-safer-pack' into maint
Junio C Hamano [Wed, 10 Sep 2008 09:12:47 +0000 (02:12 -0700)]
Merge branch 'np/maint-safer-pack' into maint

* np/maint-safer-pack:
  fixup_pack_header_footer(): use nicely aligned buffer sizes
  index-pack: use fixup_pack_header_footer()'s validation mode
  pack-objects: use fixup_pack_header_footer()'s validation mode
  improve reliability of fixup_pack_header_footer()
  pack-objects: improve returned information from write_one()

16 years agot9101: use "git hash-object" without dash
Nanako Shiraishi [Tue, 9 Sep 2008 21:25:28 +0000 (06:25 +0900)]
t9101: use "git hash-object" without dash

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agotests: use "git foo" without dash in strings
Nanako Shiraishi [Tue, 9 Sep 2008 21:25:27 +0000 (06:25 +0900)]
tests: use "git foo" without dash in strings

This changes "git-foo" to "git foo" when message strings in tests
name git subcommands.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9700: use "git config" without dash
Nanako Shiraishi [Tue, 9 Sep 2008 21:25:26 +0000 (06:25 +0900)]
t9700: use "git config" without dash

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9300, t9301: use "git fast-import/fast-export" without dash
Nanako Shiraishi [Tue, 9 Sep 2008 21:25:25 +0000 (06:25 +0900)]
t9300, t9301: use "git fast-import/fast-export" without dash

Also use "git hash-object" and "git rev-parse" without dash.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot9200: use "git cvsexportcommit" without dash
Nanako Shiraishi [Tue, 9 Sep 2008 21:25:24 +0000 (06:25 +0900)]
t9200: use "git cvsexportcommit" without dash

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge branch 'ho/dashless'
Junio C Hamano [Wed, 10 Sep 2008 05:57:35 +0000 (22:57 -0700)]
Merge branch 'ho/dashless'

* ho/dashless:
  Start conforming code to "git subcmd" style part 2

16 years agocheckout: do not lose staged removal
Junio C Hamano [Mon, 8 Sep 2008 02:49:25 +0000 (19:49 -0700)]
checkout: do not lose staged removal

The logic to checkout a different commit implements the safety to never
lose user's local changes.  For example, switching from a commit to
another commit, when you have changed a path that is different between
them, need to merge your changes to the version from the switched-to
commit, which you may not necessarily be able to resolve easily.  By
default, "git checkout" refused to switch branches, to give you a chance
to stash your local changes (or use "-m" to merge, accepting the risks of
getting conflicts).

This safety, however, had one deliberate hole since early June 2005.  When
your local change was to remove a path (and optionally to stage that
removal), the command checked out the path from the switched-to commit
nevertheless.

This was to allow an initial checkout to happen smoothly (e.g. an initial
checkout is done by starting with an empty index and switching from the
commit at the HEAD to the same commit).  We can tighten the rule slightly
to allow this special case to pass, without losing sight of removal
explicitly done by the user, by noticing if the index is truly empty when
the operation begins.

For historical background, see:

    http://thread.gmane.org/gmane.comp.version-control.git/4641/focus=4646

This case is marked as *0* in the message, which both Linus and I said "it
feels somewhat wrong but otherwise we cannot start from an empty index".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUse xmalloc() and friends to catch allocation failures
Dotan Barak [Tue, 9 Sep 2008 18:57:10 +0000 (21:57 +0300)]
Use xmalloc() and friends to catch allocation failures

Some places use the standard malloc/strdup without checking if the
allocation was successful; they should use xmalloc/xstrdup that
check the memory allocation result.

Signed-off-by: Dotan Barak <dotanba@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoFix permission bits on sources checked out with an overtight umask
Junio C Hamano [Fri, 22 Aug 2008 00:31:50 +0000 (19:31 -0500)]
Fix permission bits on sources checked out with an overtight umask

Two patches 9907721 (templates/Makefile: don't depend on local umask
setting, 2008-02-28) and 96cda0b (templates/Makefile: install is
unnecessary, just use mkdir -p, 2008-08-21) tried to prevent an overtight
umask the builder/installer might have from screwing over the installation
procedure, but we forgot there was another source of trouble.  If the
person who checked out the source tree had an overtight umask, it will
leak out to the built products, which is propagated to the installation
destination.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-rebase--interactive: auto amend only edited commit
Dmitry Potapov [Tue, 9 Sep 2008 12:05:26 +0000 (16:05 +0400)]
git-rebase--interactive: auto amend only edited commit

"git rebase --continue" issued after git rebase being stop by "edit"
command is trying to amend the last commit using stage changes. However,
if the last commit is not the commit that was marked as "edit" then it
can produce unexpected results.

For instance, after being stop by "edit", I have made some changes to
commit message using "git commit --amend". After that I realized that
I forgot to add some changes to some file. So, I said "git add file"
and the "git rebase --continue". Unfortunately, it caused that the new
commit message was lost.

Another problem is that after being stopped at "edit", the user adds new
commits. In this case, automatic amend behavior of git rebase triggered
by some stage changes causes that not only that the log message of the
last commit is lost but that it will contain also wrong Author and Date
information.

Therefore, this patch restrict automatic amend only to the situation
where HEAD is the commit at which git rebase stop by "edit" command.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoStart conforming code to "git subcmd" style part 2
Heikki Orsila [Tue, 9 Sep 2008 10:28:30 +0000 (13:28 +0300)]
Start conforming code to "git subcmd" style part 2

User notifications are presented as 'git cmd', and code comments
are presented as '"cmd"' or 'git's cmd', rather than 'git-cmd'.

Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-rebase-interactive: do not squash commits on abort
Dmitry Potapov [Mon, 8 Sep 2008 20:42:48 +0000 (00:42 +0400)]
git-rebase-interactive: do not squash commits on abort

If git rebase interactive is stopped by "edit" command and then the user
said "git rebase --continue" while having some stage changes, git rebase
interactive is trying to amend the last commit by doing:
  git --soft reset && git commit

However, the user can abort commit for some reason by providing an empty
log message, and that would leave the last commit undone, while the user
being completely unaware about what happened. Now if the user tries to
continue, by issuing "git rebase --continue" that squashes two previous
commits.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agorefs: improve comments about "reading" argument of "resolve_ref"
Christian Couder [Tue, 9 Sep 2008 05:10:56 +0000 (07:10 +0200)]
refs: improve comments about "reading" argument of "resolve_ref"

The existing in-code comment was misleading.  An access that is not
"reading" may often be "writing", but it does not have to be.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot6023-merge-file: Work around non-portable sed usage
Arjen Laarhoven [Mon, 8 Sep 2008 18:29:18 +0000 (20:29 +0200)]
t6023-merge-file: Work around non-portable sed usage

OS X sed doesn't understand '\n' on the right side of a substitution.
Use a valid substitution character instead and use 'tr' to convert
those to a newline.

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoCorrect output of git-count-objects.
Mikael Magnusson [Mon, 8 Sep 2008 17:56:32 +0000 (19:56 +0200)]
Correct output of git-count-objects.

The non-verbose output was not changed in fdb2a2a (compat: introduce
on_disk_bytes(), 2008-08-18) which caused git-count-objects to claim 512
times too much space used for loose objects.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoWindows: git-shell can be compiled again
Johannes Sixt [Mon, 8 Sep 2008 10:46:55 +0000 (12:46 +0200)]
Windows: git-shell can be compiled again

The reason that git-shell was excluded from the Windows build was that
our compatibility layer needed stuff that was removed when we tried to
link less of the git library into git-shell. Since 4cfc24a (shell: do
not play duplicated definition games to shrink the executable,
2008-08-19) the complete library is linked again, so we can build
git-shell on Windows as well. (This fixes 'make install', which depends
on that git-shell is always built.)

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot/t91XX git-svn tests: run "git svn" not "git-svn"
Nanako Shiraishi [Mon, 8 Sep 2008 10:02:08 +0000 (19:02 +0900)]
t/t91XX git-svn tests: run "git svn" not "git-svn"

This replaces 'git-svn' with 'git svn' in the tests.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agot/t91XX-svn: start removing use of "git-" from these tests
Nanako Shiraishi [Mon, 8 Sep 2008 10:02:05 +0000 (19:02 +0900)]
t/t91XX-svn: start removing use of "git-" from these tests

Subversion tests use too many "git-foo" form, so I am converting them
in two steps.

This first step replaces literal strings "remotes/git-svn" and "git-svn-id"
by introducing $remotes_git_svn and $git_svn_id constants defined as shell
variables.  This will reduce the number of false hits from "git grep".

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Mon, 8 Sep 2008 21:15:17 +0000 (14:15 -0700)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git-svn: fix handling of even funkier branch names

16 years agoMerge branch 'ar/autospell'
Junio C Hamano [Mon, 8 Sep 2008 06:52:16 +0000 (23:52 -0700)]
Merge branch 'ar/autospell'

* ar/autospell:
  Add help.autocorrect to enable/disable autocorrecting
  git wrapper: DWIM mistyped commands

16 years agoMerge branch 'jc/cc-ld-dynpath'
Junio C Hamano [Mon, 8 Sep 2008 06:45:56 +0000 (23:45 -0700)]
Merge branch 'jc/cc-ld-dynpath'

* jc/cc-ld-dynpath:
  configure: auto detect dynamic library path switches
  Makefile: Allow CC_LD_DYNPATH to be overriden

Conflicts:
Makefile
config.mak.in

16 years agoMerge branch 'jc/hide-cr-in-diff-from-less'
Junio C Hamano [Mon, 8 Sep 2008 06:45:40 +0000 (23:45 -0700)]
Merge branch 'jc/hide-cr-in-diff-from-less'

* jc/hide-cr-in-diff-from-less:
  diff: Help "less" hide ^M from the output

16 years agoMerge branch 'jc/maint-checkout-fix'
Junio C Hamano [Mon, 8 Sep 2008 05:44:45 +0000 (22:44 -0700)]
Merge branch 'jc/maint-checkout-fix'

* jc/maint-checkout-fix:
  checkout: do not check out unmerged higher stages randomly

Conflicts:
t/t7201-co.sh

16 years agoTeach "git diff -p" to locate PHP class methods
Andreas Ericsson [Sun, 7 Sep 2008 20:15:29 +0000 (22:15 +0200)]
Teach "git diff -p" to locate PHP class methods

Otherwise it will always print the class-name rather
than the name of the function inside that class.

While we're at it, reorder the gitattributes manpage to
list the built-in funcname pattern names in alphabetical
order.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoDon't verify host name in SSL certs when GIT_SSL_NO_VERIFY is set
Junio C Hamano [Thu, 21 Feb 2008 23:10:37 +0000 (15:10 -0800)]
Don't verify host name in SSL certs when GIT_SSL_NO_VERIFY is set

Originally from Mike Hommey; earlier we were disabling SSL_VERIFYPEER
but SSL_VERIFYHOST was in effect even when the user asked not to with
the environment variable.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: fix handling of even funkier branch names
Eric Wong [Sun, 7 Sep 2008 03:18:18 +0000 (20:18 -0700)]
git-svn: fix handling of even funkier branch names

Apparently do_switch() tolerates the lack of escaping in less
funky branch names.  For the really strange and scary ones, we
need to escape them properly.  It strangely maintains compatible
with the existing handling of branch names with spaces and
exclamation marks.

Reported-by: m.skoric@web.de ($gmane/94677)
Signed-off-by: Eric Wong <normalperson@yhbt.net>
16 years agodaemon.c: avoid setlinebuf()
Junio C Hamano [Thu, 4 Sep 2008 03:33:29 +0000 (20:33 -0700)]
daemon.c: avoid setlinebuf()

This function is outside POSIX (Linux and recent BSD have it).  Replace it
with setvbuf() which is POSIX.

I am not sure about the value this patch passes as size argument to
setvbuf(), though.  I know the call this patch makes is equivalent to
calling setlinebuf() with GNU libc, but POSIX itself leaves what happens
to the size argument quite vague, saying only "otherwise [i.e. when buf is
a null pointer], size _may_ determine the size of a buffer allocated by
the setvbuf() function."  If passing size=0 causes stdio to allocate very
small buffer, and while stdio tries to line buffer the output, it might
make it to fail to buffer an entire line, causing early flushing of the
stream.

Even if that turns out to be a problem on minorority platforms, we won't
know it until the issue actually hurts them, so let's push this change out
and see what happens.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoUpdate draft release notes for 1.6.1
Junio C Hamano [Sun, 7 Sep 2008 01:22:00 +0000 (18:22 -0700)]
Update draft release notes for 1.6.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agoMerge git://git.bogomips.org/git-svn
Junio C Hamano [Sun, 7 Sep 2008 02:39:13 +0000 (19:39 -0700)]
Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git-svn: set auto_props when renaming files
  t9124: clean up chdir usage
  git-svn: fix 'info' tests for unknown items
  git-svn: match SVN 1.5 behaviour of info' on unknown item
  git svn info: always quote URLs in 'info' output
  git svn info: make info relative to the current directory
  git svn info: tests: fix ptouch argument order in setup
  git svn info: tests: use test_cmp instead of git-diff
  git svn info: tests: do not use set -e
  git svn info: tests: let 'init' test run with SVN 1.5
  git svn: catch lack of upstream info for dcommit earlier
  git-svn: check error code of send_txstream
  git-svn: Send deltas during commits
  git-svn: Introduce SVN::Git::Editor::_chg_file_get_blob
  git-svn: extract base blob in generate_diff

16 years agodiff --quiet: make it synonym to --exit-code >/dev/null
Junio C Hamano [Tue, 2 Sep 2008 06:20:26 +0000 (23:20 -0700)]
diff --quiet: make it synonym to --exit-code >/dev/null

The point of --quiet was to return the status as early as possible without
doing any extra processing.  Well behaved scripts, when they expect to run
many diff operations inside, are supposed to run "update-index --refresh"
upfront; we do not want them to pay the price of iterating over the index
and comparing the contents to fix the stat dirtiness, and we avoided most
of the processing in diffcore_std() when --quiet is in effect.

But scripts that adhere to the good practice won't have to pay any more
price than the necessary lstat(2) that will report stat cleanliness, as
long as only -q is given without any fancier diff options.

More importantly, users who do ask for "--quiet -M --filter=D" (in order
to notice only the deletion, not paths that disappeared only because they
have been renamed away) deserve to get the result they asked for, even it
means they have to pay the extra price; the alternative is to get a cheap
early return that gives a result they did not ask for, which is much
worse.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agodiff Porcelain: do not disable auto index refreshing on -C -C
Junio C Hamano [Sun, 7 Sep 2008 02:09:16 +0000 (19:09 -0700)]
diff Porcelain: do not disable auto index refreshing on -C -C

When we enabled the automatic refreshing of the index to "diff" Porcelain,
we disabled it when --find-copies-harder was asked, but there is no good
reason to do so.  In the following command sequence, the first "diff"
shows an "empty" diff exposing stat dirtyness, while the second one does
not.

    $ >foo
    $ git add foo
    $ touch foo
    $ git diff -C -C
    $ git diff -C

This fixes the inconsistency.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 years agogit-svn: set auto_props when renaming files
Paul Talacko [Sun, 7 Sep 2008 01:50:38 +0000 (18:50 -0700)]
git-svn: set auto_props when renaming files

Patch-by: Paul Talacko <gnuruandstuff@yahoo.co.uk>:
<http://article.gmane.org/gmane.comp.version-control.git/95006>
> Hello,
>
> There's an issue in git-svn as autoprops are not applied to
> renamed files, only to added files.
>
> This patch fixes the bug.

[ew: added test case]
Signed-off-by: Eric Wong <normalperson@yhbt.net>
16 years agot9124: clean up chdir usage
Eric Wong [Sun, 7 Sep 2008 01:29:12 +0000 (18:29 -0700)]
t9124: clean up chdir usage

Spawn subshells when running things in subdirectories instead of
chdir-ing to the path of an undefined variable, which is
confusing.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
16 years agoMerge updated git-gui and gitk that call each other
Junio C Hamano [Sun, 7 Sep 2008 01:06:39 +0000 (18:06 -0700)]
Merge updated git-gui and gitk that call each other

Merge git://repo.or.cz/git-gui and git://git.kernel.org/pub/scm/gitk/gitk

    * git://repo.or.cz/git-gui:
      git-gui: Show special diffs for complex conflict cases.
      git-gui: Make F5 reselect a diff, if an untracked file is selected.
      git-gui: Reimplement and enhance auto-selection of diffs.
      git-gui: Support conflict states _U & UT.
      git-gui: Support more merge tools.
      git-gui: Don't allow staging files with conflicts.
      git-gui: Support calling merge tools.
      git-gui: Support resolving conflicts via the diff context menu.
      git-gui: Mark forgotten strings for translation.
      git-gui: Allow specifying an initial line for git gui blame.
      git-gui: Better positioning in Blame Parent Commit
      git-gui: Support passing blame to a parent commit.
      git-gui: Support starting gitk from Gui Blame
      git-gui: Teach git gui about file type changes

    * git://git.kernel.org/pub/scm/gitk/gitk:
      gitk: Add menu item for calling git gui blame
      gitk: Add option to specify the default commit on command line

16 years agoMerge branch 'maint'
Junio C Hamano [Sat, 6 Sep 2008 23:47:32 +0000 (16:47 -0700)]
Merge branch 'maint'

* maint:
  Update draft release notes for 1.6.0.2
  stash: refresh the index before deciding if the work tree is dirty
  Mention the fact that 'git annotate' is only for backward compatibility.
  "blame -c" should be compatible with "annotate"
  git-gui: Fix diff parsing for lines starting with "--" or "++"
  git-gui: Fix string escaping in po2msg.sh
  git gui: show diffs with a minimum of 1 context line
  git-gui: update all remaining translations to French.
  git-gui: Update french translation