gitweb.git
Merge branch 'ls/maint-mailinfo-patch-label'Junio C Hamano Tue, 15 Jul 2008 06:47:23 +0000 (23:47 -0700)

Merge branch 'ls/maint-mailinfo-patch-label'

* ls/maint-mailinfo-patch-label:
git-mailinfo: Fix getting the subject from the in-body [PATCH] line

Merge branch 'om/rerere-careful'Junio C Hamano Tue, 15 Jul 2008 06:47:14 +0000 (23:47 -0700)

Merge branch 'om/rerere-careful'

* om/rerere-careful:
builtin-rerere: more carefully find conflict markers

Merge branch 'jc/branch-merged'Junio C Hamano Tue, 15 Jul 2008 06:47:01 +0000 (23:47 -0700)

Merge branch 'jc/branch-merged'

* jc/branch-merged:
branch --merged/--no-merged: allow specifying arbitrary commit
branch --contains: default to HEAD
parse-options: add PARSE_OPT_LASTARG_DEFAULT flag

Conflicts:
Documentation/git-branch.txt

Merge branch 'jc/rebase-orig-head'Junio C Hamano Tue, 15 Jul 2008 06:45:49 +0000 (23:45 -0700)

Merge branch 'jc/rebase-orig-head'

* jc/rebase-orig-head:
Documentation: mention ORIG_HEAD in am, merge, and rebase
Teach "am" and "rebase" to mark the original position with ORIG_HEAD

bash completion: Remove dashed command completion supportShawn O. Pearce Tue, 15 Jul 2008 05:58:06 +0000 (05:58 +0000)

bash completion: Remove dashed command completion support

Since only 'git' and 'gitk' are in the user's $PATH now we do not
expect users to need completion support for git-fetch, and expect
they will instead rely upon the completion support for 'git fetch'.

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

Merge branch 'sp/maint-bash-completion-optim'Junio C Hamano Tue, 15 Jul 2008 06:36:08 +0000 (23:36 -0700)

Merge branch 'sp/maint-bash-completion-optim'

* sp/maint-bash-completion-optim:
bash completion: Resolve git show ref:path<tab> losing ref: portion
bash completion: Append space after file names have been completed

restore legacy behavior for read_sha1_file()Nicolas Pitre Tue, 15 Jul 2008 01:46:48 +0000 (21:46 -0400)

restore legacy behavior for read_sha1_file()

Since commit 8eca0b47ff1598a6d163df9358c0e0c9bd92d4c8, it is possible
for read_sha1_file() to return NULL even with existing objects when they
are corrupted. Previously a corrupted object would have terminated the
program immediately, effectively making read_sha1_file() return NULL
only when specified object is not found.

Let's restore this behavior for all users of read_sha1_file() and
provide a separate function with the ability to not terminate when
bad objects are encountered.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash: Add long option completion for 'git send-email'Teemu Likonen Mon, 14 Jul 2008 08:21:02 +0000 (11:21 +0300)

bash: Add long option completion for 'git send-email'

Add the following long options to be completed with 'git send-email':

--bcc --cc --cc-cmd --chain-reply-to --compose --dry-run
--envelope-sender --from --identity --in-reply-to
--no-chain-reply-to --no-signed-off-by-cc --no-suppress-from
--no-thread --quiet --signed-off-by-cc --smtp-pass --smtp-server
--smtp-server-port --smtp-ssl --smtp-user --subject --suppress-cc
--suppress-from --thread --to

Short ones like --to and --cc are not usable for actual completion
because of the shortness itself and because there are longer ones which
start with same letters (--thread, --compose). It's still useful to have
these shorter options _listed_ when user presses TAB key after typing
two dashes. It gives user an idea what options are available (and --to
and --cc are probably the most commonly used).

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule - register submodule URL if adding in... Mark Levedahl Thu, 10 Jul 2008 01:05:41 +0000 (21:05 -0400)

git-submodule - register submodule URL if adding in place

When adding a new submodule in place, meaning the user created the
submodule as a git repo in the superproject's tree first, we don't go
through "git submodule init" to register the module. Thus, the
submodule's origin repository URL is not stored in .git/config, and no
subsequent submodule operation will ever do so. In this case, assume the
URL the user supplies to "submodule add" is the one that should be
registered, and do so.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule - make "submodule add" more strict, and... Mark Levedahl Thu, 10 Jul 2008 01:05:40 +0000 (21:05 -0400)

git-submodule - make "submodule add" more strict, and document it

This change makes "submodule add" much more strict in the arguments it
takes, and is intended to address confusion as recently noted on the
git-list. With this change, the required syntax is:

$ git submodule add URL path

Specifically, this eliminates the form

$ git submodule add URL

which was confused by more than one person as

$ git submodule add path

With this patch, the URL locating the submodule's origin repository can be
either an absolute URL, or (if it begins with ./ or ../) can express the
submodule's repository location relative to the superproject's origin.

This patch also eliminates a third form of URL, which was relative to the
superproject's top-level directory (not its repository). Any URL that was
neither absolute nor matched ./*|../* was assumed to point to a
subdirectory of the superproject as the location of the submodule's origin
repository. This URL form was confusing and does not seem to correspond
to an important use-case. Specifically, no-one has identified the need to
clone from a repository already in the superproject's tree, but if this is
needed it is easily done using an absolute URL: $(pwd)/relative-path. So,
no functionality is lost with this patch. (t6008-rev-list-submodule.sh did
rely upon this relative URL, fixed by using $(pwd).)

Following this change, there are exactly four variants of
submodule-add, as both arguments have two flavors:

URL can be absolute, or can begin with ./|../ and thus names the
submodule's origin relative to the superproject's origin.

Note: With this patch, "submodule add" discerns an absolute URL as
matching /*|*:*: e.g., URL begins with /, or it contains a :. This works
for all valid URLs, an absolute path in POSIX, as well as an absolute path
on Windows).

path can either already exist as a valid git repo, or will be cloned from
the given URL. The first form here eases creation of a new submodule in
an existing superproject as the submodule can be added and tested in-tree
before pushing to the public repository. However, the more usual form is
the second, where the repo is cloned from the given URL.

This specifically addresses the issue of

$ git submodule add a/b/c

attempting to clone from a repository at "a/b/c" to create a new module
in "c". This also simplifies description of "relative URL" as there is now
exactly *one* form: a URL relative to the parent's origin repo.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: typofixFrederik Schwarzer Mon, 14 Jul 2008 16:30:24 +0000 (18:30 +0200)

git-svn: typofix

Signed-off-by: Frederik Schwarzer <schwarzerf@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: find-rev and rebase for SVN::Mirror repositoriesJoão Abecasis Mon, 14 Jul 2008 15:28:04 +0000 (16:28 +0100)

git-svn: find-rev and rebase for SVN::Mirror repositories

find-rev and rebase error out on svm because git-svn doesn't trace the
original svn revision numbers back to git commits. The updated test
case, included in the patch, shows the issue and passes with the rest of
the patch applied.

This fixes Git::SVN::find_by_url to find branches based on the
svm:source URL, where useSvmProps is set. Also makes sure cmd_find_rev
and working_head_info use the information they have to correctly track
the source repository. This is enough to get find-rev and rebase
working.

Signed-off-by: João Abecasis <joao@abecasis.name>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tutorial: clarify "pull" is "fetch + merge"Junio C Hamano Thu, 10 Jul 2008 21:01:57 +0000 (14:01 -0700)

tutorial: clarify "pull" is "fetch + merge"

The document says that a fetch with a configured remote stores what are
fetched in the remote tracking branches "Unlike the longhand form", but
there is no longhand form "fetch" demonstrated earlier.

This adds a missing demonstration of the longhand form, and a new
paragraph to explain why some people might want to fetch before pull.

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

tutorial: use prompt with user names in example, to... Ian Katz Thu, 10 Jul 2008 18:27:30 +0000 (14:27 -0400)

tutorial: use prompt with user names in example, to clarify who is doing what

Signed-off-by: Ian Katz <ifreecarve@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: Resolve git show ref:path<tab> losing... Shawn O. Pearce Tue, 15 Jul 2008 05:52:04 +0000 (05:52 +0000)

bash completion: Resolve git show ref:path<tab> losing ref: portion

Linus reported that the bash completion for git show often dropped
the ref portion of the argument (stuff before the :) when trying
to complete a file name of a file in another branch or tag.

Björn Steinbrink tracked it down to the gvfs completion script
which comes standard on many Fedora Core based systems. That is
removing : from COMP_WORDBREAKS, making readline treat the entire
argument (including the ref) as the name that must be completed.
When the git completion routines supplied a completion of just the
filename, readline replaced everything.

Since Git users often need to use "ref:path" or "ref:ref" sort of
arguments, and expect completion support on both sides of the :
we really want the : in COMP_WORDBREAKS to provide a good user
experience. This is also the default that ships with bash as it
can be useful in other contexts, such as rcp/scp.

We now try to add : back to COMP_WORDBREAKS if it has been removed
by a script that loaded before us. However if this doesn't work
(as the : is stripped after we load) we fallback in the completion
routines to include "ref:" as part of the prefix for completions,
allowing readine to fully insert the argument the user wanted.

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

Update draft release notes for 1.6.0Junio C Hamano Mon, 14 Jul 2008 05:30:35 +0000 (22:30 -0700)

Update draft release notes for 1.6.0

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

bash completion: Append space after file names have... Shawn O. Pearce Mon, 14 Jul 2008 00:22:03 +0000 (00:22 +0000)

bash completion: Append space after file names have been completed

When completing `git show origin/maint:Makef<tab>` we should add a
space after the filename has been completed, so that the user can
immediately begin the next argument.

I also added a special case for the symlink variant so we treat it
just like a normal blob, as there are no items below it in the Git
tree structure.

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

git-mailinfo: Fix getting the subject from the in-body... Lukas Sandström Thu, 10 Jul 2008 21:41:33 +0000 (23:41 +0200)

git-mailinfo: Fix getting the subject from the in-body [PATCH] line

"Subject: " isn't in the static array "header", and thus
memcmp("Subject:", header[i], 7) will never match.

Even if it did so, hdr_data[] may not have been allocated if there weren't
a "Subject: " in-body when we process "[PATCH]" in the affected codepath.

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sp/maint-bash-completion-optim'Junio C Hamano Sun, 13 Jul 2008 23:41:02 +0000 (16:41 -0700)

Merge branch 'sp/maint-bash-completion-optim'

* sp/maint-bash-completion-optim:
bash completion: Don't offer "a.." as a completion for "a."
bash completion: Improve responsiveness of git-log completion

bash completion: Don't offer "a.." as a completion... Shawn O. Pearce Sun, 13 Jul 2008 22:06:31 +0000 (22:06 +0000)

bash completion: Don't offer "a.." as a completion for "a."

If the user is trying to complete "v1.5.3.<tab>" to see all of
the available maintenance releases for 1.5.3 we should not give
them an extra dot as the completion. Instead if the user wants
a ".." or a "..." operator they should key the two dots out on
their own. Its the same number of keystrokes either way.

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

git-request-pull: replace call to deprecated peek-remoteRamsay Jones Tue, 8 Jul 2008 23:32:15 +0000 (00:32 +0100)

git-request-pull: replace call to deprecated peek-remote

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make rebase--interactive use OPTIONS_SPECStephan Beyer Sat, 12 Jul 2008 15:48:20 +0000 (17:48 +0200)

Make rebase--interactive use OPTIONS_SPEC

Also add some checks that --continue/--abort/--skip
actions are used without --onto, -p, -t, etc.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3404: test two "preserve merges with -p" casesStephan Beyer Sat, 12 Jul 2008 15:47:31 +0000 (17:47 +0200)

t3404: test two "preserve merges with -p" cases

There are two cases for preserving merges:

1. The merge base is outside the trunk that is to be rebased.
Then commits of those other parents must not be picked.

2. The merge base is inside the trunk that is to be rebased.
Then all the commits related to that merge must be picked
and the merge must be redone.

The "preserve merges with -p" test case tested for case 1 only.
This patch adds case 2.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-am/git-mailsplit: correct synopsis for reading... Stephan Beyer Sat, 12 Jul 2008 15:47:16 +0000 (17:47 +0200)

git-am/git-mailsplit: correct synopsis for reading from stdin

Invoking git-am or git-mailsplit without mbox or Maildir results in
reading an mbox from stdin. Mention this in the synopsis and usage
strings.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' to sync with 1.5.6.3Junio C Hamano Sun, 13 Jul 2008 22:45:38 +0000 (15:45 -0700)

Merge branch 'maint' to sync with 1.5.6.3

* maint:
GIT 1.5.6.3
git-am: Do not exit silently if committer is unset
t0004: fix timing bug
git-mailinfo: document the -n option
Fix backwards-incompatible handling of core.sharedRepository

GIT 1.5.6.3 v1.5.6.3Junio C Hamano Sun, 13 Jul 2008 22:23:43 +0000 (15:23 -0700)

GIT 1.5.6.3

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

Merge branch 'ph/parseopt-step-blame'Junio C Hamano Sun, 13 Jul 2008 22:16:35 +0000 (15:16 -0700)

Merge branch 'ph/parseopt-step-blame'

* ph/parseopt-step-blame:
revisions: refactor handle_revision_opt into parse_revision_opt.
git-shortlog: migrate to parse-options partially.
git-blame: fix lapsus
git-blame: migrate to incremental parse-option [2/2]
git-blame: migrate to incremental parse-option [1/2]
revisions: split handle_revision_opt() from setup_revisions()
parse-opt: add PARSE_OPT_KEEP_ARGV0 parser option.
parse-opt: fake short strings for callers to believe in.
parse-opt: do not print errors on unknown options, return -2 intead.
parse-opt: create parse_options_step.
parse-opt: Export a non NORETURN usage dumper.
parse-opt: have parse_options_{start,end}.
git-blame --reverse
builtin-blame.c: allow more than 16 parents
builtin-blame.c: move prepare_final() into a separate function.
rev-list --children
revision traversal: --children option

Merge branch 'am/stash-branch'Junio C Hamano Sun, 13 Jul 2008 22:16:09 +0000 (15:16 -0700)

Merge branch 'am/stash-branch'

* am/stash-branch:
Add a test for "git stash branch"
Implement "git stash branch <newbranch> <stash>"

Merge branch 'sg/stash-k-i'Junio C Hamano Sun, 13 Jul 2008 22:15:27 +0000 (15:15 -0700)

Merge branch 'sg/stash-k-i'

* sg/stash-k-i:
Documentation: tweak use case in "git stash save --keep-index"
stash: introduce 'stash save --keep-index' option

Merge branch 'jc/report-tracking'Junio C Hamano Sun, 13 Jul 2008 22:15:23 +0000 (15:15 -0700)

Merge branch 'jc/report-tracking'

* jc/report-tracking:
branch -r -v: do not spit out garbage
stat_tracking_info(): clear object flags used during counting
git-branch -v: show the remote tracking statistics
git-status: show the remote tracking statistics
Refactor "tracking statistics" code used by "git checkout"

Merge branch 'js/pick-root'Junio C Hamano Sun, 13 Jul 2008 22:15:13 +0000 (15:15 -0700)

Merge branch 'js/pick-root'

* js/pick-root:
Allow cherry-picking root commits

Merge branch 'ab/bundle'Junio C Hamano Sun, 13 Jul 2008 22:15:08 +0000 (15:15 -0700)

Merge branch 'ab/bundle'

* ab/bundle:
Teach git-bundle to read revision arguments from stdin like git-rev-list.

Merge branch 'tr/add-i-e'Junio C Hamano Sun, 13 Jul 2008 22:14:59 +0000 (15:14 -0700)

Merge branch 'tr/add-i-e'

* tr/add-i-e:
git-add--interactive: manual hunk editing mode
git-add--interactive: remove hunk coalescing
git-add--interactive: replace hunk recounting with apply --recount

git-am: Do not exit silently if committer is unsetStephan Beyer Sat, 12 Jul 2008 15:46:59 +0000 (17:46 +0200)

git-am: Do not exit silently if committer is unset

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: Improve responsiveness of git-log... Shawn O. Pearce Sun, 13 Jul 2008 02:37:42 +0000 (02:37 +0000)

bash completion: Improve responsiveness of git-log completion

Junio noticed the bash completion has been taking a long time lately.
Petr Baudis tracked it down to 72e5e989b ("bash: Add space after
unique command name is completed."). Tracing the code showed
we spent significant time inside of this loop within __gitcomp,
due to the string copying overhead.

[28.146109654] _git common over
[28.164791148] gitrefs in
[28.280302268] gitrefs dir out
[28.300939737] gitcomp in
[28.308378112] gitcomp pre-case
* [28.313407453] gitcomp iter in
* [28.701270296] gitcomp iter out
[28.713370786] out normal

Since __git_refs avoids this string copying by forking and using
echo we use the same trick here when we need to finish generating
the names for the caller.

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

t0004: fix timing bugJunio C Hamano Sat, 12 Jul 2008 11:15:56 +0000 (04:15 -0700)

t0004: fix timing bug

The test created an initial commit, made .git/objects unwritable and then
exercised various codepaths to create loose commit, tree and blob objects
to make sure the commands notice failures from these attempts.

However, the initial commit was not preceded with test_tick, which made
its object name depend on the timestamp. The names of all the later tree
and blob objects the test tried to create were static. If the initial
commit's object name happened to begin with the same two hexdigits as the
tree or blob objects the test later attempted to create, the fan-out
directory in which these tree or blob would be created is already created
when the initial commit was made, and the object creation succeeds, and
commands being tested should not notice any failure --- in short, the test
was bogus.

This makes the fan-out directories also unwritable, and adds test_tick
before the commit object creation to make the test repeatable.

The contents of the file to create a blob from "a" to "60" is to force the
name of the blob object to begin with "1b", which shares the fan-out
directory with the initial commit that is created with the test. This was
useful when diagnosing the breakage of this test.

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

git-mailinfo: document the -n optionLukas Sandström Thu, 10 Jul 2008 21:36:28 +0000 (23:36 +0200)

git-mailinfo: document the -n option

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix backwards-incompatible handling of core.sharedRepos... Petr Baudis Sat, 12 Jul 2008 01:15:03 +0000 (03:15 +0200)

Fix backwards-incompatible handling of core.sharedRepository

06cbe85 (Make core.sharedRepository more generic, 2008-04-16) broke the
traditional setting of core.sharedRepository to true, which was to make
the repository group writable: with umask 022, it would clear the
permission bits for 'other'. (umask 002 did not exhibit this behaviour
since pre-chmod() check in adjust_shared_perm() fails in that case.)

The call to adjust_shared_perm() should only loosen the permission.
If the user has umask like 022 or 002 that allow others to read, the
resulting files should be made readable and writable by group, without
restricting the readability by others.

This patch fixes the adjust_shared_perm() mode tweak based on Junio's
suggestion and adds the appropriate tests to t/t1301-shared-repo.sh.

Cc: Heikki Orsila <heikki.orsila@iki.fi>
Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-rerere: more carefully find conflict markersOlivier Marin Mon, 7 Jul 2008 12:42:48 +0000 (14:42 +0200)

builtin-rerere: more carefully find conflict markers

When a conflicting file contains a line that begin with "=======", rerere
failed to parse conflict markers. This result to a wrong preimage file and
an unexpected error for the user. The boundary between ours and theirs
not just begin with 7 equals, but is followed by either a SP or a LF.

This patch enforces parsing rules so that markers match in the right order,
and when ambiguous, the command does not autoresolve the conflicted file.

Especially because we are introducing rerere.autoupdate configuration
(which is off by default for safety) that automatically stages the
resolution made by rerere, it is necessary to make sure that we do not
autoresolve when there is any ambiguity.

Signed-off-by: Olivier Marin <dkr@freesurf.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

apply: fix copy/rename breakageJunio C Hamano Thu, 10 Jul 2008 02:58:23 +0000 (19:58 -0700)

apply: fix copy/rename breakage

7ebd52a (Merge branch 'dz/apply-again', 2008-07-01) taught "git-apply" to
grok a (non-git) patch that is a concatenation of separate patches that
touch the same file number of times, by recording the postimage of patch
application of previous round and using it as the preimage for later
rounds.

This "incremental" mode of patch application fundamentally contradicts
with the way git rename/copy patches are designed. When a git patch talks
about a file A getting modified, and a new file B created out of A, like
this:

diff --git a/A b/A
--- a/A
+++ b/A
... change text here ...
diff --git a/A b/B
copy from A
copy to B
--- a/A
+++ b/B
... change text here ...

the second change to produce B does not depend on what is done to A with
the first change in any way. This is explicitly done so for reviewability
of individual patches.

With this commit, we do not look at 'fn_table' that records the postimage
of previous round when applying a patch to produce a new file out of an
existing file.

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

Merge branch 'jk/pager-config'Junio C Hamano Wed, 9 Jul 2008 23:58:46 +0000 (16:58 -0700)

Merge branch 'jk/pager-config'

* jk/pager-config:
Allow per-command pager config

Merge branch 'js/apply-root'Junio C Hamano Wed, 9 Jul 2008 23:58:21 +0000 (16:58 -0700)

Merge branch 'js/apply-root'

* js/apply-root:
git-apply --directory: make --root more similar to GNU diff
apply --root: thinkofix.
Teach "git apply" to prepend a prefix with "--root=<root>"

Merge branch 'jc/reflog-expire'Junio C Hamano Wed, 9 Jul 2008 23:57:35 +0000 (16:57 -0700)

Merge branch 'jc/reflog-expire'

* jc/reflog-expire:
Make default expiration period of reflog used for stash infinite
Per-ref reflog expiry configuration

git-send-email: Fix authenticating on some servers... Robert Shearman Wed, 9 Jul 2008 21:39:40 +0000 (22:39 +0100)

git-send-email: Fix authenticating on some servers when using TLS.

Send HELO again after a successful STARTTLS command to refresh the list of
extensions. These may be different to what is returned over a clear
connection (for example the AUTH command may be accepted over a secure
connection, but not over a clear connection).

Furthermore, this behaviour is recommended by RFC 2487
(http://www.ietf.org/rfc/rfc2487.txt).

Signed-off-by: Robert Shearman <robertshearman@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revisions: refactor handle_revision_opt into parse_revi... Pierre Habouzit Wed, 9 Jul 2008 21:38:34 +0000 (23:38 +0200)

revisions: refactor handle_revision_opt into parse_revision_opt.

It seems we're using handle_revision_opt the same way each time, have a
wrapper around it that does the 9-liner we copy each time instead.

handle_revision_opt can be static in the module for now, it's always
possible to make it public again if needed.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-shortlog: migrate to parse-options partially.Pierre Habouzit Wed, 9 Jul 2008 21:38:33 +0000 (23:38 +0200)

git-shortlog: migrate to parse-options partially.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-blame: fix lapsusPierre Habouzit Wed, 9 Jul 2008 20:47:38 +0000 (22:47 +0200)

git-blame: fix lapsus

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Provide fallback definitions of PRIu32 and PRIx32Johannes Sixt Wed, 9 Jul 2008 20:38:14 +0000 (22:38 +0200)

Provide fallback definitions of PRIu32 and PRIx32

Since 6e1c23442 we make use of these C99 constructs, but this commit did
not provide fallbacks for non-C99 systems.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9100-git-svn-basic.sh: Fix determination of utf-8... Ramsay Jones Tue, 8 Jul 2008 22:59:25 +0000 (23:59 +0100)

t9100-git-svn-basic.sh: Fix determination of utf-8 locale

When setting the GIT_SVN_LC_ALL variable, default to the $LANG
environment variable, when the $LC_ALL override is not set.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9113-*.sh: provide user feedback when test skippedRamsay Jones Tue, 8 Jul 2008 23:18:26 +0000 (00:18 +0100)

t9113-*.sh: provide user feedback when test skipped

Currently this test simply exits without providing any
feedback at all. Tell user if the test is being skipped
and provide a hint as to how the test may be enabled.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'sp/maint-pack-memuse'Junio C Hamano Wed, 9 Jul 2008 21:46:46 +0000 (14:46 -0700)

Merge branch 'sp/maint-pack-memuse'

* sp/maint-pack-memuse:
Correct pack memory leak causing git gc to try to exceed ulimit

Conflicts:

sha1_file.c

Correct pack memory leak causing git gc to try to excee... Shawn O. Pearce Wed, 9 Jul 2008 07:10:07 +0000 (07:10 +0000)

Correct pack memory leak causing git gc to try to exceed ulimit

When recursing to unpack a delta base we must unuse_pack() so that
the pack window for the current object does not remain pinned in
memory while the delta base is itself being unpacked and materialized
for our use.

On a long delta chain of 50 objects we may need to access 6 different
windows from a very large (>3G) pack file in order to obtain all
of the delta base content. If the process ulimit permits us to
map/allocate only 1.5G we must release windows during this recursion
to ensure we stay within the ulimit and transition memory from pack
cache to standard malloc, or other mmap needs.

Inserting an unuse_pack() call prior to the recursion allows us to
avoid pinning the current window, making it available for garbage
collection if memory runs low.

This has been broken since at least before 1.5.1-rc1, and very
likely earlier than that. Its fixed now. :)

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

branch --merged/--no-merged: allow specifying arbitrary... Junio C Hamano Wed, 9 Jul 2008 00:55:47 +0000 (17:55 -0700)

branch --merged/--no-merged: allow specifying arbitrary commit

"git-branch --merged" is a handy way to list all the branches that have
already been merged to the current branch, but it did not allow checking
against anything but the current branch. Having to switch branches only
to list the branches that are merged with another branch made the feature
practically useless.

This updates the option parser so that "git branch --merged next" is
accepted when you are on 'master' branch.

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

branch --contains: default to HEADJunio C Hamano Wed, 9 Jul 2008 00:31:51 +0000 (17:31 -0700)

branch --contains: default to HEAD

We used to require the name of the commit to limit the branches shown to
the --contains option, but more recent --merged/--no-meregd defaults to
HEAD (and they do not allow arbitrary commit, which is a separate issue).

This teaches --contains to default to HEAD when no parameter is given.

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

parse-options: add PARSE_OPT_LASTARG_DEFAULT flagPierre Habouzit Tue, 8 Jul 2008 10:34:08 +0000 (12:34 +0200)

parse-options: add PARSE_OPT_LASTARG_DEFAULT flag

If you set this for a given option, and the optoin appears without an
argument on the command line, then the `defval' is used as its argument.

Note that this flag is meaningless in presence of OPTARG or NOARG flags.
(in the current implementation it will be ignored, but don't rely on it).

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 9 Jul 2008 07:19:50 +0000 (00:19 -0700)

Merge branch 'maint'

* maint:
Start preparing release notes for 1.5.6.3
git-submodule - Fix bugs in adding an existing repo as a module
bash: offer only paths after '--'
Remove unnecessary pack-*.keep file after successful git-clone
make deleting a missing ref more quiet

Start preparing release notes for 1.5.6.3Junio C Hamano Wed, 9 Jul 2008 06:57:14 +0000 (23:57 -0700)

Start preparing release notes for 1.5.6.3

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

Documentation: update sections on naming revisions... Junio C Hamano Mon, 7 Jul 2008 21:58:58 +0000 (14:58 -0700)

Documentation: update sections on naming revisions and revision ranges

Various *_HEAD pseudo refs were not documented in any central place.
Especially since we may be teaching rebase and am to record ORIG_HEAD,
it would be a good time to do so.

While at it, reword the explanation on r1..r2 notation to reduce
confusion.

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

Tone down warning about GNU Interactive ToolsJunio C Hamano Mon, 7 Jul 2008 02:10:00 +0000 (19:10 -0700)

Tone down warning about GNU Interactive Tools

The mention of 1997 was correct when it was made, and it still is true
to some extent (http://savannah.gnu.org/forum/forum.php?forum_id=5189
says it has not been actively maintained for quite some time). However,
because its name changed not to conflict with us, it is no longer
relevant whether many users use gnuit or have moved away to graphical
file managers.

The only people possibly affected are people who have older version of
gnuit installed as "git".

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

Avoid apache complaining about lack of server's FQDNMike Hommey Mon, 7 Jul 2008 20:22:15 +0000 (22:22 +0200)

Avoid apache complaining about lack of server's FQDN

On some setups, apache will say:
apache2: Could not reliably determine the server's fully qualified
domain name, using $(IP_address) for ServerName

Avoid this message polluting tests output by setting a ServerName in
apache configuration.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Skip t5540-http-push test when USE_CURL_MULTI is undefinedMike Hommey Mon, 7 Jul 2008 19:02:50 +0000 (21:02 +0200)

Skip t5540-http-push test when USE_CURL_MULTI is undefined

When USE_CURL_MULTI is undefined, git http-push doesn't work, so it's
useless to test it.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix http-push testMike Hommey Mon, 7 Jul 2008 19:02:37 +0000 (21:02 +0200)

Fix http-push test

http-push test has been broken by 4a7aaccd adding a space character
in the place where the test is being run.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Catch failures from t5540-http-pushMike Hommey Mon, 7 Jul 2008 21:06:46 +0000 (23:06 +0200)

Catch failures from t5540-http-push

git http-push doesn't handle packed-refs, and now the new builtin-clone
created packed refs, the http-push test fails.

Mark the current failure as such, and also catch third test's failure
that went unreported because git push doesn't return an error code when
it says:
No refs in common and none specified; doing nothing.
Which it does when http-push can't get a list of refs recursively from
$URL/refs/.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git.pm: Add remote_refs() git-ls-remote frontendPetr Baudis Tue, 8 Jul 2008 17:48:04 +0000 (19:48 +0200)

Git.pm: Add remote_refs() git-ls-remote frontend

This patch also converts the good ole' git-remote.perl to use it.
It is otherwise used in the repo.or.cz machinery and I guess other
scripts might find it useful too.

Unfortunately,

git-ls-remote --heads .

is subtly different from

git-ls-remote . refs/heads/

(since the second matches anywhere in the string, not just at the
beginning) so we have to provide interface for both.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7701-repack-unpack-unreachable.sh: check timestamp... Brandon Casey Sun, 29 Jun 2008 00:25:05 +0000 (19:25 -0500)

t7701-repack-unpack-unreachable.sh: check timestamp of unpacked objects

Unpacked objects should receive the timestamp of the pack they were
unpacked from. Check.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add branch options --contains --merged... Eric Raible Mon, 7 Jul 2008 20:41:54 +0000 (13:41 -0700)

completion: add branch options --contains --merged --no-merged

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>

git-submodule - Fix bugs in adding an existing repo... Mark Levedahl Tue, 8 Jul 2008 02:36:40 +0000 (22:36 -0400)

git-submodule - Fix bugs in adding an existing repo as a module

git-submodule add would trip if path to the submodule included a space,
or if its .git was a gitdir: link to a GIT_DIR kept elsewhere. Fix both.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

install-doc-quick - use git --exec-path to find git... Mark Levedahl Tue, 8 Jul 2008 02:37:38 +0000 (22:37 -0400)

install-doc-quick - use git --exec-path to find git-sh-setup

This is needed as git-sh-setup is no longer in the path.

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash: offer only paths after '--'SZEDER Gábor Tue, 8 Jul 2008 16:56:14 +0000 (18:56 +0200)

bash: offer only paths after '--'

Many git commands use '--' to separate subcommands, options, and refs
from paths. However, the programmable completion for several of these
commands does not respect the '--', and offer subcommands, options, or
refs after a '--', although only paths are permitted. e.g. 'git bisect
-- <TAB>' offers subcommands, 'git log -- --<TAB>' offers options and
'git log -- git<TAB>' offers all gitgui tags.

The completion for the following commands share this wrong behaviour:
am add bisect commit diff log reset shortlog submodule gitk.

To avoid this, we check the presence of a '--' on the command line first
and let the shell do filename completion, if one is found.

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>

git-blame: migrate to incremental parse-option [2/2]Pierre Habouzit Tue, 8 Jul 2008 13:19:35 +0000 (15:19 +0200)

git-blame: migrate to incremental parse-option [2/2]

Now use handle_revision_args instead of parse_revisions, and simplify the
handling of old-style arguments a lot thanks to the filtering.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-blame: migrate to incremental parse-option [1/2]Pierre Habouzit Tue, 8 Jul 2008 13:19:34 +0000 (15:19 +0200)

git-blame: migrate to incremental parse-option [1/2]

This step merely moves the parser to an incremental version, still using
parse_revisions.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revisions: split handle_revision_opt() from setup_revis... Pierre Habouzit Tue, 8 Jul 2008 13:19:33 +0000 (15:19 +0200)

revisions: split handle_revision_opt() from setup_revisions()

Add two fields to struct rev_info:

- .def to store --default argument; and
- .show_merge 1-bit field.

handle_revision_opt() is able to deal with any revision option, and
consumes them, and leaves revision arguments or pseudo arguments
(like --all, --not, ...) in place.

For now setup_revisions() does a pass of handle_revision_opt() again
so that code not using it in a parse-opt parser still work the same.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/blame' (early part) into HEADJunio C Hamano Tue, 8 Jul 2008 22:25:44 +0000 (15:25 -0700)

Merge branch 'jc/blame' (early part) into HEAD

* 'jc/blame' (early part):
git-blame --reverse
builtin-blame.c: allow more than 16 parents
builtin-blame.c: move prepare_final() into a separate function.
rev-list --children
revision traversal: --children option

Conflicts:

Documentation/rev-list-options.txt
revision.c

Remove unnecessary pack-*.keep file after successful... Shawn O. Pearce Tue, 8 Jul 2008 04:46:06 +0000 (04:46 +0000)

Remove unnecessary pack-*.keep file after successful git-clone

Once a clone is successful we no longer need to hold onto the
.keep file created by the transport. Delete the file so we
can later repack the complete repository.

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

Documentation: tweak use case in "git stash save -... Eric Raible Tue, 8 Jul 2008 07:40:56 +0000 (00:40 -0700)

Documentation: tweak use case in "git stash save --keep-index"

The documentation suggests using "git stash apply" in the
--keep-index workflow even though doing so will lead to clutter
in the stash. And given that the changes are about to be
committed anyway "git stash pop" is more sensible.

Additionally the text preceeding the example claims that it
works for "two or more commits", but the example itself is
really tailored for just two. Expanding it just a little
makes it clear how the procedure generalizes to N commits.

Finally the example is annotated with some commentary to
explain things on a line-by-line basis.

avoid null SHA1 in oldest reflogJeff King Tue, 8 Jul 2008 04:38:54 +0000 (00:38 -0400)

avoid null SHA1 in oldest reflog

When the user specifies a ref by a reflog entry older than
one we have (e.g., "HEAD@{20 years ago"}), we issue a
warning and give them the "from" value of the oldest reflog
entry. That is, we say "we don't know what happened before
this entry, but before this we know we had some particular
SHA1".

However, the oldest reflog entry is often a creation event
such as clone or branch creation. In this case, the entry
claims that the ref went from "00000..." (the null sha1) to
the new value, and the reflog lookup returns the null sha1.

While this is technically correct (the entry tells us that
the ref didn't exist at the specified time) it is not
terribly useful to the end user. What they probably want
instead is "the oldest useful sha1 that this ref ever had".
This patch changes the behavior such that if the oldest ref
would return the null sha1, it instead returns the first
value the ref ever had.

We never discovered this problem in the test scripts because
we created "fake" reflogs that had only a specified segment
of history. This patch updates the tests with a creation
event at the beginning of history.

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

Documentation: mention ORIG_HEAD in am, merge, and... Brian Gernhardt Tue, 8 Jul 2008 04:12:22 +0000 (00:12 -0400)

Documentation: mention ORIG_HEAD in am, merge, and rebase

Merge has always set ORIG_HEAD but never mentioned it, while we
recently added it to am and rebase. These facts should be reflected
in the documentation.

git-reset also sets ORIG_HEAD, but that fact is already mentioned in
the very first example so no changes were needed there.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make deleting a missing ref more quietJeff King Tue, 8 Jul 2008 04:08:02 +0000 (00:08 -0400)

make deleting a missing ref more quiet

If git attempts to delete a ref, but the unlink of the ref
file fails, we print a message to stderr. This is usually a
good thing, but if the error is ENOENT, then it indicates
that the ref has _already_ been deleted. And since that's
our goal, it doesn't make sense to complain to the user.

This harmonizes the error reporting behavior for the
unpacked and packed cases; the packed case already printed
nothing on ENOENT, but the unpacked printed unconditionally.

Additionally, send-pack would, when deleting the tracking
ref corresponding to a remote delete, print "Failed to
delete" on any failure. This can be a misleading
message, since we actually _did_ delete at the remote side,
but we failed to delete locally. Rather than make the
message more precise, let's just eliminate it entirely; the
delete_ref routine already takes care of printing out a much
more specific message about what went wrong.

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

Merge branch 'qq/maint' into maintJunio C Hamano Tue, 8 Jul 2008 20:05:06 +0000 (13:05 -0700)

Merge branch 'qq/maint' into maint

* qq/maint:
run_command(): respect GIT_TRACE

Documentation: fix broken "linkgit" linksEric Hanchrow Tue, 8 Jul 2008 20:02:11 +0000 (13:02 -0700)

Documentation: fix broken "linkgit" links

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

user-manual: typo and grammar fixesEric Hanchrow Tue, 8 Jul 2008 20:00:30 +0000 (13:00 -0700)

user-manual: typo and grammar fixes

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

Merge branch 'lt/racy-empty' into maintJunio C Hamano Tue, 8 Jul 2008 07:19:17 +0000 (00:19 -0700)

Merge branch 'lt/racy-empty' into maint

* lt/racy-empty:
racy-git: an empty blob has a fixed object name

Merge branch 'qq/maint'Junio C Hamano Mon, 7 Jul 2008 23:42:08 +0000 (16:42 -0700)

Merge branch 'qq/maint'

* qq/maint:
run_command(): respect GIT_TRACE

Conflicts:

run-command.c

gitweb: Describe projects_index format in more detailJakub Narebski Mon, 7 Jul 2008 22:07:53 +0000 (00:07 +0200)

gitweb: Describe projects_index format in more detail

Update and extend information about $projects_list file format in
gitweb/README and in gitweb/INSTALL.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/maint-daemon-syslog'Junio C Hamano Mon, 7 Jul 2008 23:32:46 +0000 (16:32 -0700)

Merge branch 'js/maint-daemon-syslog'

* js/maint-daemon-syslog:
git daemon: avoid calling syslog() from a signal handler

Merge branch 'maint'Junio C Hamano Mon, 7 Jul 2008 23:31:55 +0000 (16:31 -0700)

Merge branch 'maint'

* maint:
git-svn.perl: workaround assertions in svn library 1.5.0

Merge branch 'qq/maint' (early part) into maintJunio C Hamano Mon, 7 Jul 2008 23:09:17 +0000 (16:09 -0700)

Merge branch 'qq/maint' (early part) into maint

* 'qq/maint' (early part):
git-svn.perl: workaround assertions in svn library 1.5.0
mailinfo: feed the correct line length to decode_transfer_encoding()
git-clone: remove leftover debugging fprintf().
Fix "config_error_nonbool" used with value instead of key
clone -q: honor "quiet" option over native transports.
attribute documentation: keep EXAMPLE at end
builtin-commit.c: Use 'git_config_string' to get 'commit.template'
http.c: Use 'git_config_string' to clean up SSL config.
diff.c: Use 'git_config_string' to get 'diff.external'
convert.c: Use 'git_config_string' to get 'smudge' and 'clean'
builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix'
Documentation cvs: Clarify when a bare repository is needed
Documentation: be precise about which date --pretty uses

Allow cherry-picking root commitsJohannes Schindelin Fri, 4 Jul 2008 15:19:52 +0000 (16:19 +0100)

Allow cherry-picking root commits

A root commit couldn't be cherry-picked. But its semantics can be
defined as simply merging two trees by overlaying disjoint parts
and merging overlapping files without any common ancestor. You
should be able to rebase originally independent branches on top of
another branch by using this.

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

run_command(): respect GIT_TRACEJohannes Schindelin Mon, 7 Jul 2008 13:41:34 +0000 (14:41 +0100)

run_command(): respect GIT_TRACE

When GIT_TRACE is set, the user is most likely wanting to see an external
command that is about to be executed.

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

Teach "am" and "rebase" to mark the original position... Junio C Hamano Mon, 7 Jul 2008 07:16:38 +0000 (00:16 -0700)

Teach "am" and "rebase" to mark the original position with ORIG_HEAD

"merge" and "reset" leave the original point in history in ORIG_HEAD,
which makes it easy to go back to where you were before you inflict a
major damage to your history and realize that you do not like the result
at all. These days with reflog, we technically do not need to use
ORIG_HEAD, but it is a handy way nevertheless.

This teaches "am" and "rebase" (all forms --- the vanilla one that uses
"am" as its backend, "-m" variant that cherry-picks, and "--interactive")
to do the same.

The original idea and a partial implementation to do this only for "rebase
-m" was by Brian Gernhardt; this extends on his idea.

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

git-svn.perl: workaround assertions in svn library... Gerrit Pape Sun, 6 Jul 2008 19:28:50 +0000 (19:28 +0000)

git-svn.perl: workaround assertions in svn library 1.5.0

With subversion 1.5.0 (C and perl libraries) the git-svn selftest
t9101-git-svn-props.sh fails at test 25 and 26. The following commands
cause assertions in the svn library

$ cd deeply
$ git-svn propget svn:ignore .
perl: /build/buildd/subversion-1.5.0dfsg1/subversion/libsvn_ra/ra_loader.c:674: svn_ra_get_dir: Assertion `*path != '/'' failed.
Aborted

$ git-svn propget svn:ignore ..
perl: /build/buildd/subversion-1.5.0dfsg1/subversion/libsvn_subr/path.c:120: svn_path_join: Assertion `is_canonical(component, clen)' failed.

With this commit, git-svn makes sure the path doesn't start with a
slash, and is not a dot, working around these assertions.

The breakage was reported by Lucas Nussbaum through
http://bugs.debian.org/489108

Signed-off-by: Gerrit Pape <pape@smarden.org>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes for 1.6.0Junio C Hamano Mon, 7 Jul 2008 08:39:28 +0000 (01:39 -0700)

Update draft release notes for 1.6.0

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

Merge branch 'jc/rerere'Junio C Hamano Mon, 7 Jul 2008 09:17:28 +0000 (02:17 -0700)

Merge branch 'jc/rerere'

* jc/rerere:
rerere.autoupdate
t4200: fix rerere test
rerere: remove dubious "tail_optimization"
git-rerere: detect unparsable conflicts
rerere: rerere_created_at() and has_resolution() abstraction

Merge branch 'dr/ceiling'Junio C Hamano Mon, 7 Jul 2008 09:17:23 +0000 (02:17 -0700)

Merge branch 'dr/ceiling'

* dr/ceiling:
Eliminate an unnecessary chdir("..")
Add support for GIT_CEILING_DIRECTORIES
Fold test-absolute-path into test-path-utils
Implement normalize_absolute_path

Conflicts:

cache.h
setup.c

Merge branch 'db/no-git-config'Junio C Hamano Mon, 7 Jul 2008 09:17:14 +0000 (02:17 -0700)

Merge branch 'db/no-git-config'

* db/no-git-config:
Only use GIT_CONFIG in "git config", not other programs

Conflicts:

Documentation/RelNotes-1.6.0.txt

Merge branch 'js/import-zip'Junio C Hamano Mon, 7 Jul 2008 09:16:55 +0000 (02:16 -0700)

Merge branch 'js/import-zip'

* js/import-zip:
Add another fast-import example, this time for .zip files

Merge branch 'maint'Junio C Hamano Mon, 7 Jul 2008 09:11:28 +0000 (02:11 -0700)

Merge branch 'maint'

* maint:
Fix grammar in git-rev-parse(1).

Merge branch 'qq/maint'Junio C Hamano Mon, 7 Jul 2008 09:09:38 +0000 (02:09 -0700)

Merge branch 'qq/maint'

* qq/maint:
mailinfo: feed the correct line length to decode_transfer_encoding()
git-clone: remove leftover debugging fprintf().

Teach git-bundle to read revision arguments from stdin... Adam Brewster Sat, 5 Jul 2008 21:26:40 +0000 (17:26 -0400)

Teach git-bundle to read revision arguments from stdin like git-rev-list.

This patch allows the caller to feed the revision parameters to git-bundle
from its standard input. This way, a script do not have to worry about
limitation of the length of command line.

Documentation/git-bundle.txt says that git-bundle takes arguments acceptable
to git-rev-list. Obviously some arguments that git-rev-list handles don't
make sense for git-bundle (e.g. --bisect) but --stdin is pretty reasonable.

Signed-off-by: Adam Brewster <adambrewster@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion.bash: add 'skip' and 'run' to git-bisectDmitry Potapov Wed, 2 Jul 2008 13:29:50 +0000 (17:29 +0400)

completion.bash: add 'skip' and 'run' to git-bisect

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