gitweb.git
compat: add a mkstemps() compatibility functionDavid Aguilar Sun, 31 May 2009 08:35:50 +0000 (01:35 -0700)

compat: add a mkstemps() compatibility function

mkstemps() is a BSD extension so provide an implementation
for cross-platform use.

Signed-off-by: David Aguilar <davvid@gmail.com>
Tested-by: Johannes Sixt <j6t@kdbg.org> (Windows)
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.6.4Junio C Hamano Tue, 26 May 2009 02:46:17 +0000 (19:46 -0700)

Update draft release notes to 1.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 26 May 2009 02:44:52 +0000 (19:44 -0700)

Merge branch 'maint'

* maint:
Prepare for 1.6.3.2
fix cat-file usage message and documentation
fetch: report ref storage DF errors more accurately
lock_ref: inform callers of unavailable ref
merge-options.txt: Clarify merge --squash

Conflicts:
RelNotes

Prepare for 1.6.3.2Junio C Hamano Tue, 26 May 2009 02:20:39 +0000 (19:20 -0700)

Prepare for 1.6.3.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/maint-no-ln-across-libexec-and-bin... Junio C Hamano Tue, 26 May 2009 02:04:29 +0000 (19:04 -0700)

Merge branch 'js/maint-no-ln-across-libexec-and-bin' into maint

* js/maint-no-ln-across-libexec-and-bin:
Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile

Conflicts:
Makefile

Merge branch 'lt/maint-diff-reduce-lstat' into maintJunio C Hamano Tue, 26 May 2009 02:04:08 +0000 (19:04 -0700)

Merge branch 'lt/maint-diff-reduce-lstat' into maint

* lt/maint-diff-reduce-lstat:
Teach 'git checkout' to preload the index contents
Avoid unnecessary 'lstat()' calls in 'get_stat_data()'

Merge branch 'jm/format-patch-no-auto-n-when-k-is-given... Junio C Hamano Tue, 26 May 2009 02:03:52 +0000 (19:03 -0700)

Merge branch 'jm/format-patch-no-auto-n-when-k-is-given' into maint

* jm/format-patch-no-auto-n-when-k-is-given:
format-patch let -k override a config-specified format.numbered

Merge branch 'do/maint-merge-recursive-fix' into maintJunio C Hamano Tue, 26 May 2009 02:03:43 +0000 (19:03 -0700)

Merge branch 'do/maint-merge-recursive-fix' into maint

* do/maint-merge-recursive-fix:
merge-recursive: never leave index unmerged while recursing

Merge branch 'jk/maint-1.6.0-trace-argv' into maintJunio C Hamano Tue, 26 May 2009 02:03:20 +0000 (19:03 -0700)

Merge branch 'jk/maint-1.6.0-trace-argv' into maint

* jk/maint-1.6.0-trace-argv:
fix GIT_TRACE segfault with shell-quoted aliases

Conflicts:
alias.c

Merge branch 'np/push-delta' into maintJunio C Hamano Tue, 26 May 2009 02:02:11 +0000 (19:02 -0700)

Merge branch 'np/push-delta' into maint

* np/push-delta:
allow OFS_DELTA objects during a push

Merge branch 'ar/merge-one-file-diag' into maintJunio C Hamano Tue, 26 May 2009 02:01:59 +0000 (19:01 -0700)

Merge branch 'ar/merge-one-file-diag' into maint

* ar/merge-one-file-diag:
Clarify kind of conflict in merge-one-file helper

Merge branch 'ar/unlink-err' into maintJunio C Hamano Tue, 26 May 2009 02:01:50 +0000 (19:01 -0700)

Merge branch 'ar/unlink-err' into maint

* ar/unlink-err:
print unlink(2) errno in copy_or_link_directory
replace direct calls to unlink(2) with unlink_or_warn
Introduce an unlink(2) wrapper which gives warning if unlink failed

Merge branch 'jk/maint-add-empty' into maintJunio C Hamano Tue, 26 May 2009 02:01:41 +0000 (19:01 -0700)

Merge branch 'jk/maint-add-empty' into maint

* jk/maint-add-empty:
add: don't complain when adding empty project root

fix cat-file usage message and documentationJeff King Mon, 25 May 2009 10:33:15 +0000 (06:33 -0400)

fix cat-file usage message and documentation

cat-file with an object on the command line requires an
option to tell it what to output (type, size, pretty-print,
etc). However, the square brackets in the usage imply that
those options are not required. This patch switches them to
parentheses to indicate "required but grouped-OR" (curly
braces might also work, but this follows the convention used
already by "git stash").

While we're at it, let's change the <sha1> specifier in the
usage to <object>. That's what the documentation uses, and
it does actually use the regular object lookup.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch: report ref storage DF errors more accuratelyJeff King Mon, 25 May 2009 10:40:54 +0000 (06:40 -0400)

fetch: report ref storage DF errors more accurately

When we fail to store a fetched ref, we recommend that the
user try running "git prune" to remove up any old refs that
have been deleted by the remote, which would clear up any DF
conflicts. However, ref storage might fail for other
reasons (e.g., permissions problems) in which case the
advice is useless and misleading.

This patch detects when there is an actual DF situation and
only issues the advice when one is found.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

lock_ref: inform callers of unavailable refJeff King Mon, 25 May 2009 10:37:15 +0000 (06:37 -0400)

lock_ref: inform callers of unavailable ref

One of the ways that locking might fail is that there is a
DF conflict between two refs (e.g., you want to lock
"foo/bar" but "foo" already exists). In this case, we return
an error, but there is no way for the caller to know the
specific problem.

This patch sets errno to ENOTDIR, which is the most sensible
code. It's what we would see if the refs were stored purely
in the filesystem (but these days we must check the
namespace manually due to packed refs).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

convert bare readlink to strbuf_readlinkJeff King Mon, 25 May 2009 10:46:09 +0000 (06:46 -0400)

convert bare readlink to strbuf_readlink

This particular readlink call never NUL-terminated its
result, making it a potential source of bugs (though there
is no bug now, as it currently always respects the length
field). Let's just switch it to strbuf_readlink which is
shorter and less error-prone.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-options.txt: Clarify merge --squashMichael J Gruber Mon, 25 May 2009 16:00:10 +0000 (18:00 +0200)

merge-options.txt: Clarify merge --squash

With the --squash option, merge sets up the index just like for a real
merge, but without the merge info (stages). Say so.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 24 May 2009 22:29:55 +0000 (15:29 -0700)

Merge branch 'maint'

* maint:
http-push.c::remove_locks(): fix use after free

Merge branch 'maint-1.6.2' into maintJunio C Hamano Sun, 24 May 2009 22:29:33 +0000 (15:29 -0700)

Merge branch 'maint-1.6.2' into maint

* maint-1.6.2:
http-push.c::remove_locks(): fix use after free

Merge branch 'maint-1.6.1' into maint-1.6.2Junio C Hamano Sun, 24 May 2009 22:29:23 +0000 (15:29 -0700)

Merge branch 'maint-1.6.1' into maint-1.6.2

* maint-1.6.1:
http-push.c::remove_locks(): fix use after free

Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano Sun, 24 May 2009 22:29:13 +0000 (15:29 -0700)

Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
http-push.c::remove_locks(): fix use after free

http-push.c::remove_locks(): fix use after freeAlex Riesen Sun, 24 May 2009 13:16:49 +0000 (15:16 +0200)

http-push.c::remove_locks(): fix use after free

Noticed and reported by Serhat Şevki Dinçer.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/t3400-rebase.sh: add more tests to help migrating... Nguyễn Thái Ngọc Duy Sat, 23 May 2009 15:31:02 +0000 (01:31 +1000)

t/t3400-rebase.sh: add more tests to help migrating git-rebase.sh to C

These new tests make sure I don't miss any check being performed before
rebase is proceeded (which is well tested by other tests)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

post-receive-email: hooks.showrev: show how to include... Jim Meyering Sat, 23 May 2009 12:26:44 +0000 (14:26 +0200)

post-receive-email: hooks.showrev: show how to include both web link and patch

Add a comment showing how to include a web link (i.e. gitweb/cgit)
and a patch in the email that is sent for each pushed commit.

The quoting was tricky enough that it's worth documenting. To add
two blank lines (i.e. put \n\n in the printf), you would need to
say \\\\n\\\\n, and in the end, the pair of "echo" statements seemed
better. This is used in glibc.git repository:

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=summary

push-triggered messages have been sent to this list since May 21:

http://sourceware.org/ml/glibc-cvs/2009-q2/

Signed-off-by: Junio C Hamano <gitster@pobox.com>

MinGW: Fix compiler warning in merge-recursiveJohannes Schindelin Sat, 23 May 2009 08:04:51 +0000 (10:04 +0200)

MinGW: Fix compiler warning in merge-recursive

GCC 4.4.0 on Windows does not like the format %zu. It is quite unlikely,
though, that we need more merge bases than a %d can display, so replace
the %zu by a %d.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MinGW: Add a simple getpass()Johannes Schindelin Sat, 23 May 2009 08:04:50 +0000 (10:04 +0200)

MinGW: Add a simple getpass()

We need getpass() to activate curl on MinGW. Although the default
Makefile currently has 'NO_CURL = YesPlease', msysgit releases do
provide curl support, so getpass() is used.

[spr: - edited commit message.
- squashed commit that provides getpass() declaration.]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MinGW: use POSIX signature of waitpid()Johannes Schindelin Sat, 23 May 2009 08:04:49 +0000 (10:04 +0200)

MinGW: use POSIX signature of waitpid()

Git's source code expects waitpid() to return a signed int status.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MinGW: the path separator to split GITPERLLIB is '... Johannes Schindelin Sat, 23 May 2009 08:04:48 +0000 (10:04 +0200)

MinGW: the path separator to split GITPERLLIB is ';' on Win32

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MinGW: Scan for \r in addition to \n when reading shban... Peter Harris Sat, 23 May 2009 08:04:47 +0000 (10:04 +0200)

MinGW: Scan for \r in addition to \n when reading shbang lines

\r is common on Windows, so we should handle it gracefully.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jn/gitweb-cleanup'Junio C Hamano Sat, 23 May 2009 08:44:06 +0000 (01:44 -0700)

Merge branch 'jn/gitweb-cleanup'

* jn/gitweb-cleanup:
gitweb: Remove unused $hash_base parameter from normalize_link_target
gitweb: Simplify snapshot format detection logic in evaluate_path_info
gitweb: Use capturing parentheses only when you intend to capture
gitweb: Replace wrongly added tabs with spaces
gitweb: Use block form of map/grep in a few cases more
gitweb: Always use three argument form of open
gitweb: Always use three argument form of open
gitweb: Do not use bareword filehandles

Merge branch 'mg/track'Junio C Hamano Sat, 23 May 2009 08:44:00 +0000 (01:44 -0700)

Merge branch 'mg/track'

* mg/track:
Fix behavior with non-commit upstream references
Test tracking of non-commit upstreams

Merge branch 'fc/decorate-tag'Junio C Hamano Sat, 23 May 2009 08:43:50 +0000 (01:43 -0700)

Merge branch 'fc/decorate-tag'

* fc/decorate-tag:
Prettify log decorations even more
Change prettify_ref to prettify_refname

Merge branch 'tp/send-email-from-config'Junio C Hamano Sat, 23 May 2009 08:43:26 +0000 (01:43 -0700)

Merge branch 'tp/send-email-from-config'

* tp/send-email-from-config:
send-email: Add config option for sender address

Merge branch 'js/maint-no-ln-across-libexec-and-bin'Junio C Hamano Sat, 23 May 2009 08:43:08 +0000 (01:43 -0700)

Merge branch 'js/maint-no-ln-across-libexec-and-bin'

* js/maint-no-ln-across-libexec-and-bin:
Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile

Conflicts:
Makefile

Merge branch 'da/mergetool-lib'Junio C Hamano Sat, 23 May 2009 08:41:51 +0000 (01:41 -0700)

Merge branch 'da/mergetool-lib'

* da/mergetool-lib:
mergetool--lib: specialize diff options for emerge and ecmerge

Merge branch 'cc/bisect' (early part)Junio C Hamano Sat, 23 May 2009 08:41:27 +0000 (01:41 -0700)

Merge branch 'cc/bisect' (early part)

* 'cc/bisect' (early part):
bisect: make "git bisect" use new "--next-all" bisect-helper function
bisect: add "check_good_are_ancestors_of_bad" function
bisect: implement the "check_merge_bases" function
bisect: automatically sort sha1_array if needed when looking it up
bisect: make skipped array functions more generic
bisect: remove too much function nesting
bisect: use new "struct argv_array" to prepare argv for "setup_revisions"
bisect: store good revisions in a "sha1_array"
bisect: implement "rev_argv_push" to fill an argv with revs
bisect: use "sha1_array" to store skipped revisions
am: simplify "sq" function by using "git rev-parse --sq-quote"
bisect: use "git rev-parse --sq-quote" instead of a custom "sq" function
rev-parse: add --sq-quote to shell quote arguments
rev-list: remove stringed output flag from "show_bisect_vars"
bisect--helper: remove "--next-vars" option as it is now useless
bisect: use "git bisect--helper --next-exit" in "git-bisect.sh"
bisect--helper: add "--next-exit" to output bisect results
bisect: move common bisect functionality to "bisect_common"
rev-list: refactor printing bisect vars
rev-list: make "estimate_bisect_steps" non static

Merge branch 'lt/maint-diff-reduce-lstat'Junio C Hamano Sat, 23 May 2009 08:40:33 +0000 (01:40 -0700)

Merge branch 'lt/maint-diff-reduce-lstat'

* lt/maint-diff-reduce-lstat:
Teach 'git checkout' to preload the index contents
Avoid unnecessary 'lstat()' calls in 'get_stat_data()'

Merge branch 'jm/format-patch-no-auto-n-when-k-is-given'Junio C Hamano Sat, 23 May 2009 08:40:22 +0000 (01:40 -0700)

Merge branch 'jm/format-patch-no-auto-n-when-k-is-given'

* jm/format-patch-no-auto-n-when-k-is-given:
format-patch let -k override a config-specified format.numbered

Merge branch 'do/maint-merge-recursive-fix'Junio C Hamano Sat, 23 May 2009 08:39:50 +0000 (01:39 -0700)

Merge branch 'do/maint-merge-recursive-fix'

* do/maint-merge-recursive-fix:
merge-recursive: never leave index unmerged while recursing

Merge branch 'rr/forbid-bs-in-ref'Junio C Hamano Sat, 23 May 2009 08:39:45 +0000 (01:39 -0700)

Merge branch 'rr/forbid-bs-in-ref'

* rr/forbid-bs-in-ref:
Disallow '\' in ref names

Merge branch 'hv/sample-update'Junio C Hamano Sat, 23 May 2009 08:39:15 +0000 (01:39 -0700)

Merge branch 'hv/sample-update'

* hv/sample-update:
Extend sample update hook, disable modifying of existing tags

Merge branch 'jk/maint-1.6.0-trace-argv'Junio C Hamano Sat, 23 May 2009 08:39:08 +0000 (01:39 -0700)

Merge branch 'jk/maint-1.6.0-trace-argv'

* jk/maint-1.6.0-trace-argv:
fix GIT_TRACE segfault with shell-quoted aliases

Conflicts:
alias.c

Merge branch 'jk/no-no-no-empty-directory'Junio C Hamano Sat, 23 May 2009 08:38:35 +0000 (01:38 -0700)

Merge branch 'jk/no-no-no-empty-directory'

* jk/no-no-no-empty-directory:
parseopt: add OPT_NEGBIT

Merge branch 'rs/grep-parseopt'Junio C Hamano Sat, 23 May 2009 08:38:32 +0000 (01:38 -0700)

Merge branch 'rs/grep-parseopt'

* rs/grep-parseopt:
grep: make callback functions static
grep: use parseopt
grep: remove global variable builtin_grep
parseopt: add PARSE_OPT_NODASH
parseopt: add OPT_NUMBER_CALLBACK
parseopt: add OPT_NEGBIT

Merge branch 'fl/git-pm'Junio C Hamano Sat, 23 May 2009 08:38:28 +0000 (01:38 -0700)

Merge branch 'fl/git-pm'

* fl/git-pm:
Git.pm: Always set Repository to absolute path if autodetecting
Git.pm: Set GIT_WORK_TREE if we set GIT_DIR

Merge branch 'mt/submodule-reference'Junio C Hamano Sat, 23 May 2009 08:38:24 +0000 (01:38 -0700)

Merge branch 'mt/submodule-reference'

* mt/submodule-reference:
Add --reference option to git submodule.

gitweb: Sanitize title attribute in format_subject_htmlJakub Narebski Fri, 22 May 2009 15:35:46 +0000 (17:35 +0200)

gitweb: Sanitize title attribute in format_subject_html

Replace control characters with question mark '?' (like in
chop_and_esc_str).

A little background: some web browsers turn on strict (and
unforgiving) XML validating mode for XHTML documents served using
application/xhtml+xml content type. This means among others that
control characters are forbidden to appear in gitweb output.

CGI.pm does by default slight escaping (using simple_escape subroutine
from CGI::Util) of all _attribute_ values (depending on the value of
autoEscape, by default on). This escaping, at least in CGI.pm version
3.10 (most current version at CPAN is 3.43), is minimal: only '"',
'&', '<' and '>' are escaped using named HTML entity references
(&quot;, &amp;, &lt; and &gt; respectively). But simple_escape does
not do escaping of control characters such as ^X which are invalid in
XHTML (in strict mode).

If by some accident commit message do contain some control character
in first 50 characters (more or less) of first line of commit message,
and this line is longer than 50 characters (so gitweb shortens it for
display), then gitweb would put this control character in title
attribute (and CGI.pm would not remove them). The tag _contents_ is
safe because it is escaped using esc_html() explicitly, and it
replaces control characters by their printable representation.

While at it: chop_and_escape_str doesn't need capturing group.

Noticed-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Terminate argv with NULL before calling setup_revisions()Nguyễn Thái Ngọc Duy Thu, 21 May 2009 09:32:44 +0000 (19:32 +1000)

Terminate argv with NULL before calling setup_revisions()

It is convention that argv should be terminated with NULL, even if
argc is used to specify the size of argv. setup_revisions() requires
this and may segfault otherwise.

This patch makes sure that all argv (that I can find) is NULL terminated.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

doc/git-rebase.txt: remove mention of multiple strategiesNguyễn Thái Ngọc Duy Thu, 21 May 2009 09:47:07 +0000 (19:47 +1000)

doc/git-rebase.txt: remove mention of multiple strategies

git-rebase.sh does not seem to support this.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.bogomips.org/git-svnJunio C Hamano Thu, 21 May 2009 14:28:07 +0000 (07:28 -0700)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
git-svn: add --authors-prog option
git-svn: Set svn.authorsfile if it is passed to git svn clone
git-svn: Correctly report max revision when following deleted paths
git-svn: Fix for svn paths removed > log-window-size revisions ago
git-svn testsuite: use standard configuration for Subversion tools

git-send-email: Handle quotes when parsing .mailrc... Eric W. Biederman Thu, 21 May 2009 02:45:53 +0000 (19:45 -0700)

git-send-email: Handle quotes when parsing .mailrc files

It is legal and not uncommon to use quotes in a .mailrc file so
you can include a persons fullname as well as their email alias.
Handle this by using quotewords instead of split when parsing
.mailrc files.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: add --authors-prog optionMark Lodato Fri, 15 May 2009 01:27:15 +0000 (21:27 -0400)

git-svn: add --authors-prog option

Add a new option, --authors-prog, to git-svn that allows a more flexible
alternative (or supplement) to --authors-file. This allows more
advanced username operations than the authors file will allow. For
example, one may look up Subversion users via LDAP, or may generate the
name and email address from the Subversion username.

Notes:

* If both --authors-name and --authors-prog are given, the former is
tried first, falling back to the later.

* The program is called once per unique SVN username, and the result is
cached.

* The command-line argument must be the path to a program, not a generic
shell command line. The absolute path to this program is taken at
startup since the git-svn script changes directory during operation.

* The option is not enabled for `git svn log'.

[ew: fixed case where neither --authors-(name|prog) were defined]
Signed-off-by: Mark Lodato <lodatom@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: Set svn.authorsfile if it is passed to git... Alex Vandiver Wed, 6 May 2009 20:19:45 +0000 (16:19 -0400)

git-svn: Set svn.authorsfile if it is passed to git svn clone

Signed-off-by: Alex Vandiver <alexmv@mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: Correctly report max revision when following... Alex Vandiver Wed, 6 May 2009 20:18:53 +0000 (16:18 -0400)

git-svn: Correctly report max revision when following deleted paths

Report the maximum found revision in the range, instead of the minimum
changed revision.

Signed-off-by: Alex Vandiver <alexmv@mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn: Fix for svn paths removed > log-window-size... Alex Vandiver Wed, 6 May 2009 20:18:52 +0000 (16:18 -0400)

git-svn: Fix for svn paths removed > log-window-size revisions ago

Instead of trying to find the end of the commit history only in the
last window, track if we have seen commits yet, and use that to judge
if we need to backtrack and look for a tail. Otherwise, conversion
can silently lose up to 100 revisions of a branch if it was deleted
>100 revisions ago.

Signed-off-by: Alex Vandiver <alexmv@mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-svn testsuite: use standard configuration for Subve... Eygene Ryabinkin Fri, 8 May 2009 08:06:16 +0000 (12:06 +0400)

git-svn testsuite: use standard configuration for Subversion tools

I have tweaked configuration in my ~/.subversion directory, namely I am
running auto-properties and automatically adding '$Id$' expansion to
every file. This choke the last test named 'proplist' from
t9101-git-svn-props.sh, because one more property, svn:keywords is
automatically added.

I had just wrapped svn invocation with the svn_cmd that specifies empty
directory via --config-dir argument. Since the latter is the global
option, it should be recognized by all svn subcommands, so no
regressions will be introduced.

Now svn_cmd is used everywhere, not just in the failed test module: this
should guard us from the future clashes with user-defined configuration
tweaks.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Acked-by: Eric Wong <normalperson@yhbt.net>

Merge branch 'maint'Junio C Hamano Thu, 21 May 2009 01:59:09 +0000 (18:59 -0700)

Merge branch 'maint'

* maint:
grep: fix word-regexp colouring
completion: use git rev-parse to detect bare repos
Cope better with a _lot_ of packs
for-each-ref: fix segfault in copy_email

grep: fix word-regexp colouringRené Scharfe Wed, 20 May 2009 21:31:53 +0000 (23:31 +0200)

grep: fix word-regexp colouring

As noticed by Dmitry Gryazin: When a pattern is found but it doesn't
start and end at word boundaries, bol is forwarded to after the match and
the pattern is searched again. When a pattern is finally found between
word boundaries, the match offsets are off by the number of characters
that have been skipped.

This patch corrects the offsets to be relative to the value of bol as
passed to match_one_pattern() by its caller.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: use git rev-parse to detect bare reposGiuseppe Bilotta Mon, 18 May 2009 16:24:30 +0000 (18:24 +0200)

completion: use git rev-parse to detect bare repos

Its check is more robust than a config check for core.bare

Trivially-Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Cope better with a _lot_ of packsJohannes Schindelin Fri, 15 May 2009 18:52:47 +0000 (20:52 +0200)

Cope better with a _lot_ of packs

You might end up with a situation where you have tons of pack files, e.g.
when using hg2git. In this situation, all kinds of operations may
end up with a "too many files open" error. Let's recover gracefully from
that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Looks-right-to-me-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: make callback functions staticRené Scharfe Wed, 20 May 2009 22:05:22 +0000 (00:05 +0200)

grep: make callback functions static

Suggested by Stephen Boyd: make the callback functions used for option
parsing static.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

for-each-ref: fix segfault in copy_emailJeff King Mon, 18 May 2009 17:58:11 +0000 (13:58 -0400)

for-each-ref: fix segfault in copy_email

You can trigger a segfault in git.git by doing:

git for-each-ref --format='%(taggeremail)' refs/tags/v0.99

The v0.99 tag is special in that it contains no "tagger"
header.

The bug is obvious in copy_email, which carefully checks to
make sure the result of a strchr is non-NULL, but only after
already having used it to perform other work. The fix is to
move the check up.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Extend sample pre-commit hook to check for non ascii... Heiko Voigt Tue, 19 May 2009 20:01:54 +0000 (22:01 +0200)

Extend sample pre-commit hook to check for non ascii filenames

At the moment non-ascii encodings of filenames are not portably
converted between different filesystems by git. This will most likely
change in the future but to allow repositories to be portable among
different file/operating systems this check is enabled by default.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Unify signedness in hashing callsDan McGee Tue, 19 May 2009 04:34:02 +0000 (23:34 -0500)

Unify signedness in hashing calls

Our hash_obj and hashtable_index calls and functions were doing a lot of
funny things with signedness. Unify all of it to 'unsigned int'.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'np/push-delta'Junio C Hamano Mon, 18 May 2009 16:01:16 +0000 (09:01 -0700)

Merge branch 'np/push-delta'

* np/push-delta:
allow OFS_DELTA objects during a push

Merge branch 'ar/merge-one-file-diag'Junio C Hamano Mon, 18 May 2009 16:01:11 +0000 (09:01 -0700)

Merge branch 'ar/merge-one-file-diag'

* ar/merge-one-file-diag:
Clarify kind of conflict in merge-one-file helper

Merge branch 'ar/unlink-err'Junio C Hamano Mon, 18 May 2009 16:01:06 +0000 (09:01 -0700)

Merge branch 'ar/unlink-err'

* ar/unlink-err:
print unlink(2) errno in copy_or_link_directory
replace direct calls to unlink(2) with unlink_or_warn
Introduce an unlink(2) wrapper which gives warning if unlink failed

Merge branch 'jk/maint-add-empty'Junio C Hamano Mon, 18 May 2009 16:01:01 +0000 (09:01 -0700)

Merge branch 'jk/maint-add-empty'

* jk/maint-add-empty:
add: don't complain when adding empty project root

Merge branch 'js/add-edit'Junio C Hamano Mon, 18 May 2009 16:00:06 +0000 (09:00 -0700)

Merge branch 'js/add-edit'

* js/add-edit:
t3702: fix reliance on SHELL_PATH being '/bin/sh'
git-add: introduce --edit (to edit the diff vs. the index)

Merge branch 'mh/diff-stat-color'Junio C Hamano Mon, 18 May 2009 15:59:54 +0000 (08:59 -0700)

Merge branch 'mh/diff-stat-color'

* mh/diff-stat-color:
diff: do not color --stat output like patch context

Merge branch 'mh/show-branch-color'Junio C Hamano Mon, 18 May 2009 15:59:48 +0000 (08:59 -0700)

Merge branch 'mh/show-branch-color'

* mh/show-branch-color:
bash completion: show-branch color support
show-branch: color the commit status signs

Conflicts:
contrib/completion/git-completion.bash

Merge branch 'ac/graph-horizontal-line'Junio C Hamano Mon, 18 May 2009 15:59:30 +0000 (08:59 -0700)

Merge branch 'ac/graph-horizontal-line'

* ac/graph-horizontal-line:
graph API: Use horizontal lines for more compact graphs

Merge branch 'ae/anon-fetch-info'Junio C Hamano Mon, 18 May 2009 15:59:27 +0000 (08:59 -0700)

Merge branch 'ae/anon-fetch-info'

* ae/anon-fetch-info:
fetch: Strip usernames from url's before storing them

Merge branch 'maint'Junio C Hamano Mon, 18 May 2009 15:59:20 +0000 (08:59 -0700)

Merge branch 'maint'

* maint:
show-branch: Fix die message in parse_reflog_param()

show-branch: Fix die message in parse_reflog_param()Stephen Boyd Sun, 17 May 2009 10:47:02 +0000 (03:47 -0700)

show-branch: Fix die message in parse_reflog_param()

Commit 76a44c5 (show-branch --reflog: show the reflog message at the
top, 2007-01-19) introduced parse_reflog_param(). The die() call was
incorrectly passed arg + 9, when it should have been passed arg.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 17 May 2009 06:08:49 +0000 (23:08 -0700)

Merge branch 'maint'

* maint:
completion: add missing options to show-branch and show
dir.c: clean up handling of 'path' parameter in read_directory_recursive()
Fix type-punning issues

completion: add missing options to show-branch and... Stephen Boyd Sun, 17 May 2009 03:42:43 +0000 (20:42 -0700)

completion: add missing options to show-branch and show

Add --oneline and --abbrev-commit to show and --sparse to show-branch.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir.c: clean up handling of 'path' parameter in read_di... Linus Torvalds Thu, 14 May 2009 20:05:03 +0000 (13:05 -0700)

dir.c: clean up handling of 'path' parameter in read_directory_recursive()

Right now we pass two different pathnames ('path' and 'base') down to
read_directory_recursive(), and the only real reason for that is that we
want to allow an empty 'base' parameter, but when we do so, we need the
pathname to "opendir()" to be "." rather than the empty string.

And rather than handle that confusion in the caller, we can just fix
read_directory_recursive() to handle the case of an empty path itself,
by just passing opendir() a "." ourselves if the path is empty.

This would allow us to then drop one of the pathnames entirely from the
calling convention, but rather than do that, we'll start separating them
out as a "filesystem pathname" (the one we use for filesystem accesses)
and a "git internal base name" (which is the name that we use for git
internally).

That will eventually allow us to do things like handle different
encodings (eg the filesystem pathnames might be Latin1, while git itself
would use UTF-8 for filename information).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix type-punning issuesDan McGee Tue, 12 May 2009 01:17:38 +0000 (20:17 -0500)

Fix type-punning issues

In these two places we are casting part of our unsigned char sha1 array into
an unsigned int, which violates GCCs strict-aliasing rules (and probably
other compilers).

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 17 May 2009 02:49:42 +0000 (19:49 -0700)

Merge branch 'maint'

* maint:
test: checkout shouldn't say that HEAD has moved if it didn't
completion: enhance "current branch" display
completion: simplify "current branch" in __git_ps1()
completion: fix PS1 display during a merge on detached HEAD
builtin-checkout: Don't tell user that HEAD has moved before it has
pre-commit.sample: don't print incidental SHA1
tests: Add tests for missing format-patch long options
api-parse-options.txt: use 'func' instead of 'funct'
Turn on USE_ST_TIMESPEC for OpenBSD
ls-tree manpage: output of ls-tree is compatible with update-index
ls-tree manpage: use "unless" instead of "when ... is not"

test: checkout shouldn't say that HEAD has moved if... Nanako Shiraishi Sun, 17 May 2009 02:43:08 +0000 (11:43 +0900)

test: checkout shouldn't say that HEAD has moved if it didn't

Signed-off-by: しらいしななこ <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: enhance "current branch" displayJunio C Hamano Sun, 10 May 2009 08:56:21 +0000 (01:56 -0700)

completion: enhance "current branch" display

Introduce GIT_PS1_DESCRIBE option you can set to "contains", "branch", or
"describe" to tweak the way how a detached HEAD is described.

The default behaviour is to describe only exact match with some tag
(otherwise use the first 7 hexdigits) as before.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: simplify "current branch" in __git_ps1()Junio C Hamano Sun, 10 May 2009 08:53:19 +0000 (01:53 -0700)

completion: simplify "current branch" in __git_ps1()

As I very often work on a detached HEAD, I found it pretty confusing
when __git_ps1() said 'some-name'. Did I create a branch with that name
by mistake, or do I happen to be on a commit with that exact tag?

This patch fixes the issue by enclosing non branch names in a pair of
parentheses when used to substitute %s token in __git_ps1() argument.

It also fixes a small bug where the branch part is left empty when
.git/HEAD is unreadable for whatever reason. The output now says
"(unknown)".

Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: fix PS1 display during a merge on detached... Junio C Hamano Sat, 16 May 2009 18:46:22 +0000 (11:46 -0700)

completion: fix PS1 display during a merge on detached HEAD

If your merge stops in a conflict while on a detached HEAD, recent
completion code fails to show anything. This was because various cases
added to support the operation-in-progress markers (e.g. REBASE, MERGING)
forgot that they need to set the variable "b" to something for the result
they computed to be displayed at all.

Probably not many people make trial merges on a detached HEAD (which is
tremendously useful feature of git, by the way), and that may be why this
was not noticed for a long time.

Acked-By: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Improve the naming of guessed target repository for... Alex Riesen Wed, 13 May 2009 16:32:06 +0000 (18:32 +0200)

Improve the naming of guessed target repository for git clone

Strip leading and trailing spaces off guessed target directory, and
replace sequences of whitespace and 'control' characters with one
space character.

User still can have any name by specifying it explicitely after url.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use UTF-8 instead of utf8 for backward compatibilityAlex Riesen Thu, 14 May 2009 12:55:54 +0000 (14:55 +0200)

Use UTF-8 instead of utf8 for backward compatibility

An old iconv (GNU libiconv 1.11) does not know about utf8, it does know
UTF-8 though, which is also understood by all newer iconv implementations.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-checkout: Don't tell user that HEAD has moved... Daniel Cordero Sat, 16 May 2009 17:54:45 +0000 (10:54 -0700)

builtin-checkout: Don't tell user that HEAD has moved before it has

Previously, checkout would tell the user this message before moving HEAD,
without regard to whether the upcoming move will result in success.
If the move failed, this causes confusion.

Show the message after the move, unless the move failed.

Signed-off-by: Daniel Cordero <theappleman@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pre-commit.sample: don't print incidental SHA1Jim Meyering Sat, 16 May 2009 10:21:50 +0000 (12:21 +0200)

pre-commit.sample: don't print incidental SHA1

Make the sample pre-commit hook script discard
all git-rev-parse output, not just stderr.
Otherwise, it would print an SHA1.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: Add tests for missing format-patch long optionsStephen Boyd Sat, 16 May 2009 09:24:45 +0000 (02:24 -0700)

tests: Add tests for missing format-patch long options

Exercise format-patch's --signoff, --in-reply-to and --start-number long
options.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

api-parse-options.txt: use 'func' instead of 'funct'Stephen Boyd Sat, 16 May 2009 09:24:44 +0000 (02:24 -0700)

api-parse-options.txt: use 'func' instead of 'funct'

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Turn on USE_ST_TIMESPEC for OpenBSDTony Kemp Thu, 14 May 2009 06:47:41 +0000 (16:47 +1000)

Turn on USE_ST_TIMESPEC for OpenBSD

Like Darwin, OpenBSD's stat struct uses st_ctimespec and st_mtimestruct
rather than st_ctim and st_mtim.

Signed-off-by: Tony Kemp <tony.kemp@newcastle.edu.au>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.2' into maintJunio C Hamano Sat, 16 May 2009 07:12:58 +0000 (00:12 -0700)

Merge branch 'maint-1.6.2' into maint

* maint-1.6.2:
ls-tree manpage: output of ls-tree is compatible with update-index
ls-tree manpage: use "unless" instead of "when ... is not"

Fix behavior with non-commit upstream referencesMichael J Gruber Mon, 11 May 2009 14:42:54 +0000 (16:42 +0200)

Fix behavior with non-commit upstream references

stat_tracking_info() assumes that upstream references (as specified by
--track or set up automatically) are commits. By calling lookup_commit()
on them, create_objects() creates objects for them with type commit no
matter what their real type is; this disturbs lookup_tag() later on in the
call sequence, leading to git status, git branch -v and git checkout
erroring out.

Fix this by using lookup_commit_reference() instead so that (annotated)
tags can be used as upstream references.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.1' into maint-1.6.2Junio C Hamano Thu, 14 May 2009 04:06:11 +0000 (21:06 -0700)

Merge branch 'maint-1.6.1' into maint-1.6.2

* maint-1.6.1:
ls-tree manpage: output of ls-tree is compatible with update-index
ls-tree manpage: use "unless" instead of "when ... is not"

Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano Thu, 14 May 2009 04:05:59 +0000 (21:05 -0700)

Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
ls-tree manpage: output of ls-tree is compatible with update-index
ls-tree manpage: use "unless" instead of "when ... is not"

Prettify log decorations even moreFelipe Contreras Wed, 13 May 2009 21:32:53 +0000 (00:32 +0300)

Prettify log decorations even more

"tag: v1.6.2.5" looks much better than "tag: refs/tags/v1.6.2.5".

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Change prettify_ref to prettify_refnameFelipe Contreras Wed, 13 May 2009 21:22:04 +0000 (00:22 +0300)

Change prettify_ref to prettify_refname

In preparation to be used when the ref object is not available

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-email: Add config option for sender addressTrent Piepho Tue, 12 May 2009 22:48:56 +0000 (15:48 -0700)

send-email: Add config option for sender address

The sender address, as specified with the '--from' command line option,
couldn't be set in the config file. So add a new config option,
'sendemail.from', which sets it. One can use 'sendemail.<identity>.from'
as well of course, which is likely the more useful case.

The sender address would default to GIT_AUTHOR_IDENT, which is usually the
right thing, but this doesn't allow switching based on the identity
selected. It's possible to switch the SMTP server and envelope sender by
using the '--identity' option, in which case one probably wants to use a
different from address as well, but this had to be manually specified.

The documentation for 'from' is also corrected somewhat. If '--from' is
specified (or the new sendemail.from option is used) then the user isn't
prompted. The default with no '--from' option (or sendemail.from option)
is GIT_AUTHOR_IDENT first then GIT_COMMITTER_IDENT, not just
GIT_COMMITTER_IDENT.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add NO_CROSS_DIRECTORY_HARDLINKS support to the MakefileJohannes Schindelin Mon, 11 May 2009 11:02:18 +0000 (13:02 +0200)

Add NO_CROSS_DIRECTORY_HARDLINKS support to the Makefile

When the installed programs are tar'ed up and installed on a system where
bin/ and libexec/git-core/ live on different file systems, we do not want
libexec/git-core/git-* to be hardlinks to bin/git.

Noticed by Cedric Staniewski.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>