gitweb.git
Makefile: enable SNPRINTF_RETURNS_BOGUS for HP-UXMiklos Vajna Sat, 23 Aug 2008 22:07:55 +0000 (00:07 +0200)

Makefile: enable SNPRINTF_RETURNS_BOGUS for HP-UX

In 81cc66a, customization has been added to Makefile for supporting
HP-UX, but git commit is still problematic. This should fix the issue.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Acked-by: Robert Schiele <rschiele@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7606: fix custom merge testJunio C Hamano Sun, 24 Aug 2008 02:23:22 +0000 (19:23 -0700)

t7606: fix custom merge test

Custom merge strategy does not even kick in when the merge is truly
trivial. The test depended on the behaviour in the git-merge rewritten in
C that broke the trivial merge completely.

Make the test to work on a non-trivial merge to make sure the strategy
kicks in.

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

Merge branch 'maint'Junio C Hamano Sun, 24 Aug 2008 01:28:37 +0000 (18:28 -0700)

Merge branch 'maint'

* maint:
unpack_trees(): protect the handcrafted in-core index from read_cache()
git-p4: Fix one-liner in p4_write_pipe function.
Completion: add missing '=' for 'diff --diff-filter'
Fix 'git help help'

merge: fix numerus bugs around "trivial merge" areaJunio C Hamano Sat, 23 Aug 2008 19:56:57 +0000 (12:56 -0700)

merge: fix numerus bugs around "trivial merge" area

The "trivial merge" codepath wants to optimize itself by making an
internal call to the read-tree machinery, but it does not read the index
before doing so, and the codepath is never exercised. Incidentally, this
failure to read the index upfront means that the safety to refuse doing
anything when the index is unmerged does not kick in, either.

These two problem are fixed by using read_cache_unmerged() that does read
the index before checking if it is unmerged at the beginning of
cmd_merge().

The primary logic of the merge, however, assumes that the process never
reads the index in-core, and the call to write_cache_as_tree() it makes
from write_tree_trivial() will always read from the on-disk index that is
prepared the strategy back-ends. This assumption is now broken by the
above fix. To fix this issue, we now call discard_cache() before calling
write_tree_trivial() when it wants to write the on-disk index as a tree.

When multiple strategies are tried, their results are evaluated by reading
the resulting index and inspecting it. The codepath needs to make a call
to read_cache() for each successful strategy, and for that to work, they
need to discard_cache() the one read by the previous round.

Also the "trivial merge" forgot that the current commit is one of the
parents of the resulting commit.

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

unpack_trees(): protect the handcrafted in-core index... Junio C Hamano Sat, 23 Aug 2008 19:57:30 +0000 (12:57 -0700)

unpack_trees(): protect the handcrafted in-core index from read_cache()

unpack_trees() rebuilds the in-core index from scratch by allocating a new
structure and finishing it off by copying the built one to the final
index.

The resulting in-core index is Ok for most use, but read_cache() does not
recognize it as such. The function is meant to be no-op if you already
have loaded the index, until you call discard_cache().

This change the way read_cache() detects an already initialized in-core
index, by introducing an extra bit, and marks the handcrafted in-core
index as initialized, to avoid this problem.

A better fix in the longer term would be to change the read_cache() API so
that it will always discard and re-read from the on-disk index to avoid
confusion. But there are higher level API that have relied on the current
semantics, and they and their users all need to get converted, which is
outside the scope of 'maint' track.

An example of such a higher level API is write_cache_as_tree(), which is
used by git-write-tree as well as later Porcelains like git-merge, revert
and cherry-pick. In the longer term, we should remove read_cache() from
there and add one to cmd_write_tree(); other callers expect that the
in-core index they prepared is what gets written as a tree so no other
change is necessary for this particular codepath.

The original version of this patch marked the index by pointing an
otherwise wasted malloc'ed memory with o->result.alloc, but this version
uses Linus's idea to use a new "initialized" bit, which is conceptually
much cleaner.

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

git-p4: Fix one-liner in p4_write_pipe function.Tor Arvid Lund Thu, 21 Aug 2008 21:11:40 +0000 (23:11 +0200)

git-p4: Fix one-liner in p4_write_pipe function.

The function built a p4 command string via the p4_build_cmd function, but
ignored the result.

Signed-off-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule: replace duplicated code with a module_li... David Aguilar Fri, 22 Aug 2008 07:30:50 +0000 (00:30 -0700)

git-submodule: replace duplicated code with a module_list function

Several call sites in git-submodule.sh used the same idiom for getting
submodule information:

git ls-files --stage -- "$@" | grep '^160000 '

This patch removes this duplication by introducing a module_list function.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

discard revindex data when pack list changesNicolas Pitre Fri, 22 Aug 2008 19:45:53 +0000 (15:45 -0400)

discard revindex data when pack list changes

This is needed to fix verify-pack -v with multiple pack arguments.

Also, in theory, revindex data (if any) must be discarded whenever
reprepare_packed_git() is called. In practice this is hard to trigger
though.

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

git-merge documentation: more details about resolving... Dan Hensgen Fri, 22 Aug 2008 03:32:00 +0000 (23:32 -0400)

git-merge documentation: more details about resolving conflicts

Signed-off-by: Dan Hensgen <dan@methodhead.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Extend "checkout --track" DWIM to support more casesAlex Riesen Thu, 21 Aug 2008 17:23:20 +0000 (19:23 +0200)

Extend "checkout --track" DWIM to support more cases

The code handles additionally "refs/remotes/<something>/name",
"remotes/<something>/name", and "refs/<namespace>/name".

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

Revert "Convert output messages in merge-recursive... Jonathan del Strother Fri, 22 Aug 2008 17:18:44 +0000 (18:18 +0100)

Revert "Convert output messages in merge-recursive to past tense."

During a conflicting merge, you would typically see:

Auto-merged foo.txt
CONFLICT (content): Merge conflict in foo.txt
Recorded preimage for 'foo.txt'
Automatic merge failed; fix conflicts and then commit the result.

and left wondering what happened to "foo.txt". Did it succeed, and then
conflicted, and then what?

This is because historically there was a progress bar displayed before the
auto-merge is mentioned, and it was expected to take long time, before we
can say "Auto-merged foo.txt". It turns out it was not the case, and the
original wording "Auto-merging foo.txt" we used to have before 89f40be
(Convert output messages in merge-recursive to past tense., 2007-01-14) is
better.

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

Completion: add missing '=' for 'diff --diff-filter'Eric Raible Fri, 22 Aug 2008 17:25:06 +0000 (10:25 -0700)

Completion: add missing '=' for 'diff --diff-filter'

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>

templates/Makefile: install is unnecessary, just use... Junio C Hamano Fri, 22 Aug 2008 00:31:50 +0000 (19:31 -0500)

templates/Makefile: install is unnecessary, just use mkdir -p

The native install on some platforms (namely IRIX 6.5) treats non-absolute
paths as being relative to the root directory rather than relative to
the current directory. Work around this by avoiding install in this case
since it is unnecessary, and instead depend on the local umask setting
and use mkdir.

Tested-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remote.c: add a function for deleting a refspec array... Brandon Casey Fri, 22 Aug 2008 00:16:30 +0000 (19:16 -0500)

remote.c: add a function for deleting a refspec array and use it (twice)

A number of call sites allocate memory for a refspec array, populate
its members with heap memory, and then free only the refspec pointer
while leaking the memory allocated for the member elements. Provide
a function for freeing the elements of a refspec array and the array
itself.

Caution to callers: code paths must be checked to ensure that the
refspec members "src" and "dst" can be passed to free.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter-branch: Grok special characters in tag namesJohannes Sixt Thu, 21 Aug 2008 14:45:11 +0000 (16:45 +0200)

filter-branch: Grok special characters in tag names

The tag rewriting code used a 'sed' expression to substitute the new tag
name into the corresponding field of the annotated tag object. But this is
problematic if the tag name contains special characters. In particular,
if the tag name contained a slash, then the 'sed' expression had a syntax
error. We now protect against this by using 'printf' to assemble the
tag header.

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

test-lib: do not remove trash_directory if called with... Johannes Schindelin Thu, 21 Aug 2008 07:49:12 +0000 (09:49 +0200)

test-lib: do not remove trash_directory if called with --debug

Sometimes you want to keep the trash directory, even if all tests
passed. For example, when extending tests, it comes it quite handy.

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

provide more errors for the "merge into empty head... Paolo Bonzini Thu, 21 Aug 2008 12:14:18 +0000 (14:14 +0200)

provide more errors for the "merge into empty head" case

A squash merge into an unborn branch could be implemented by building the
index from the merged-from branch, and doing a single commit, but this is
not supported yet.

A non-fast-forward merge into an unborn branch does not make any sense,
because you cannot make a merge commit if you don't have a commit to use
as the parent.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make reflog query '@{1219188291}' act as '@{2008.8... Shawn O. Pearce Thu, 21 Aug 2008 15:40:44 +0000 (08:40 -0700)

Make reflog query '@{1219188291}' act as '@{2008.8.19.16:24:51.-0700}'

As we support seconds-since-epoch in $GIT_COMMITTER_TIME we should
also support it in a reflog @{...} style notation. We can easily
tell this part from @{nth} style notation by looking to see if the
value is unreasonably large for an @{nth} style notation.

The value 100000000 was chosen as it is already used by date.c to
disambiguate yyyymmdd format from a seconds-since-epoch time value.

A reflog with 100,000,000 record entries is also simply not valid.
Such a reflog would require at least 7.7 GB to store just the old
and new SHA-1 values. So our randomly chosen upper limit for @{nth}
notation is "big enough".

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

config.mak.in: Pass on LDFLAGS from configureNeil Roberts Thu, 21 Aug 2008 19:38:23 +0000 (20:38 +0100)

config.mak.in: Pass on LDFLAGS from configure

The configure script allows you to specify flags to pass to the linker
step in the LDFLAGS environment variable but this was being ignored in
the Makefile. Now a make variable gets set to the value passed down
from the configure script.

Signed-off-by: Neil Roberts <bpeeluk@yahoo.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule.sh - Remove trailing / from URL if foundMark Levedahl Thu, 21 Aug 2008 23:54:01 +0000 (19:54 -0400)

git-submodule.sh - Remove trailing / from URL if found

git clone does not complain if a trailing '/' is included in the origin
URL, but doing so causes resolution of a submodule's URL relative to the
superproject to fail. Trailing /'s are likely when cloning locally using
tab-completion, so the slash may appear in either superproject or
submodule URL. So, ignore the trailing slash if it already exists in
the superproject's URL, and don't record one for the submodule (which
could itself have submodules...).

The problem I'm trying to fix is that a number of folks have
superprojects checked out where the recorded origin URL has a trailing
/, and a submodule has its origin in a directory sitting right next to
the superproject on the server. Thus, we have:

superproject url = server:/public/super
submodoule url = server:/public/sub1

However, in the checked out superproject's .git/config

[remote "origin"]
url = server:/public/super/

and for similar reasons, the submodule has its URL recorded in .gitmodules as
[submodule "sub"]

path = submodule1
url = ../sub1/

resolve_relative_url gets the submodule's recorded url as $1, which
the caller retrieved from .gitmodules, and retrieves the superprojects
origin from .git/config. So in this case resolve_relative_url has
that:

url = ../sub1/
remoteurl = server:/public/super/

So, without any patch, resolve_relative_url computes the submodule's URL as:

server:/public/super/sub1/

rather than

server:/public/sub1

In summary, it is essential that resolve_relative_url strip the
trailing / from the superproject's url before starting, and
beneficial if it assures that the result does not contain
a trailing / as the submodule may itself also be a superproject.

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

Fix 'git help help'Miklos Vajna Thu, 21 Aug 2008 14:21:48 +0000 (16:21 +0200)

Fix 'git help help'

git help foo invokes man git-foo if foo is a git command, otherwise it
invokes man gitfoo. 'help' is not a git command, but the manual page is
called git-help, so add this special exception.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Acked-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Thu, 21 Aug 2008 08:54:49 +0000 (01:54 -0700)

Merge branch 'maint'

* maint:
compat/snprintf.c: handle snprintf's that always return the # chars transmitted
git-svn: fix dcommit to urls with embedded usernames
revision.h: make show_early_output an extern which is defined in revision.c

compat/snprintf.c: handle snprintf's that always return... Brandon Casey Thu, 21 Aug 2008 01:53:50 +0000 (20:53 -0500)

compat/snprintf.c: handle snprintf's that always return the # chars transmitted

Some platforms provide a horribly broken snprintf. More broken than the
platforms that return -1 when there is too little space in the target buffer
for the formatted string. Some platforms provide an snprintf which _always_
returns the number of characters transmitted to the buffer, regardless of
whether there was enough space or not.

IRIX 6.5 is such a platform. IRIX does have a working snprintf(), but it
is only provided when _NO_XOPEN5 evaluates to zero, and this only happens
if _XOPEN_SOURCE is defined, but definition of _XOPEN_SOURCE prevents
inclusion of many other common functions and defines. So it must be avoided.

Work around these horribly broken snprintf implementations by detecting an
snprintf call which results in the number of transmitted characters exactly
equal to the length of our buffer and retrying with a larger buffer just to
be safe.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach "git diff -p" HTML funcname patternsJohan Herland Wed, 20 Aug 2008 17:49:15 +0000 (19:49 +0200)

Teach "git diff -p" HTML funcname patterns

Find lines with <h1>..<h6> tags.

[jc: while at it, reordered entries to sort alphabetically.]

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach "git diff -p" Python funcname patternsKirill Smelkov Wed, 20 Aug 2008 15:57:07 +0000 (19:57 +0400)

Teach "git diff -p" Python funcname patterns

Find classes, functions, and methods definitions.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: fix dcommit to urls with embedded usernamesEric Wong Wed, 20 Aug 2008 07:30:06 +0000 (00:30 -0700)

git-svn: fix dcommit to urls with embedded usernames

Don't rely on the extracted URL from working_head_info since that has the
username removed. Instead use the $gs->full_url method (as before with
ba24e74 (git-svn: add ability to specify --commit-url for dcommit,
2008-08-07)) to give us the URL to commit to if --commit-url is not
specified.

Aditionally, since we clean usernames from URLs, checking the URL after
rebase can fail because it doesn't match the URL we used to commit; so
unconditionally provide a username-free URL for checking the result of the
refetch.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ml/submodule-foreach'Junio C Hamano Thu, 21 Aug 2008 06:42:33 +0000 (23:42 -0700)

Merge branch 'ml/submodule-foreach'

* ml/submodule-foreach:
git-submodule - Add 'foreach' subcommand

Merge branch 'pm/log-exit-code'Junio C Hamano Thu, 21 Aug 2008 06:42:29 +0000 (23:42 -0700)

Merge branch 'pm/log-exit-code'

* pm/log-exit-code:
Teach git log --exit-code to return an appropriate exit code
Teach git log --check to return an appropriate exit code

Merge branch 'sb/commit-tree-minileak'Junio C Hamano Thu, 21 Aug 2008 06:42:26 +0000 (23:42 -0700)

Merge branch 'sb/commit-tree-minileak'

* sb/commit-tree-minileak:
Fix commit_tree() buffer leak

Merge branch 'pb/reflog-dwim'Junio C Hamano Thu, 21 Aug 2008 06:42:22 +0000 (23:42 -0700)

Merge branch 'pb/reflog-dwim'

* pb/reflog-dwim:
builtin-reflog: Allow reflog expire to name partial ref

Merge branch 'jc/add-stop-at-symlink'Junio C Hamano Thu, 21 Aug 2008 06:42:18 +0000 (23:42 -0700)

Merge branch 'jc/add-stop-at-symlink'

* jc/add-stop-at-symlink:
add: refuse to add working tree items beyond symlinks
update-index: refuse to add working tree items beyond symlinks

Merge branch 'kh/diff-tree'Junio C Hamano Thu, 21 Aug 2008 06:41:59 +0000 (23:41 -0700)

Merge branch 'kh/diff-tree'

* kh/diff-tree:
Add test for diff-tree --stdin with two trees
Teach git diff-tree --stdin to diff trees
diff-tree: Note that the commit ID is printed with --stdin
Refactoring: Split up diff_tree_stdin

Merge branch 'mg/count-objects'Junio C Hamano Thu, 21 Aug 2008 06:41:54 +0000 (23:41 -0700)

Merge branch 'mg/count-objects'

* mg/count-objects:
count-objects: Add total pack size to verbose output

Merge branch 'mz/push-verbose'Junio C Hamano Thu, 21 Aug 2008 06:41:51 +0000 (23:41 -0700)

Merge branch 'mz/push-verbose'

* mz/push-verbose:
Make push more verbose about illegal combination of options

Merge branch 'jc/index-extended-flags'Junio C Hamano Thu, 21 Aug 2008 06:41:47 +0000 (23:41 -0700)

Merge branch 'jc/index-extended-flags'

* jc/index-extended-flags:
index: future proof for "extended" index entries

Merge branch 'cc/merge-base-many'Junio C Hamano Thu, 21 Aug 2008 06:41:38 +0000 (23:41 -0700)

Merge branch 'cc/merge-base-many'

* cc/merge-base-many:
git-merge-octopus: use (merge-base A (merge B C D E...)) for stepwise merge
merge-base-many: add trivial tests based on the documentation
documentation: merge-base: explain "git merge-base" with more than 2 args
merge-base: teach "git merge-base" to drive underlying merge_bases_many()

Merge branch 'jc/test-deeper'Junio C Hamano Thu, 21 Aug 2008 06:40:59 +0000 (23:40 -0700)

Merge branch 'jc/test-deeper'

* jc/test-deeper:
tests: use $TEST_DIRECTORY to refer to the t/ directory

Merge branch 'js/parallel-test'Junio C Hamano Thu, 21 Aug 2008 06:40:56 +0000 (23:40 -0700)

Merge branch 'js/parallel-test'

* js/parallel-test:
Update t/.gitignore to ignore all trash directories
Enable parallel tests
tests: Clarify dependencies between tests, 'aggregate-results' and 'clean'
t9700: remove useless check

git-submodule.sh - Remove trailing / from URL if foundMark Levedahl Wed, 20 Aug 2008 02:18:23 +0000 (22:18 -0400)

git-submodule.sh - Remove trailing / from URL if found

git clone does not complain if a trailing '/' is included in the origin
URL, but doing so causes resolution of a submodule's URL relative to the
superproject to fail. Regardless of whether git is changed to remove the
trailing / before recording the URL, we should avoid this issue in
submodule as existing repositories can have this problem.

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

Fix "git-merge -s bogo" help textJunio C Hamano Thu, 21 Aug 2008 05:07:55 +0000 (22:07 -0700)

Fix "git-merge -s bogo" help text

It does not make much sense to reuse the output code from "git help" to
show the list of commands to the standard output while giving the error
message before that to the standard error stream. This makes the output
consistent to that of the 1.6.0 version of "git merge".

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

revision.h: make show_early_output an extern which... Brandon Casey Thu, 21 Aug 2008 00:34:30 +0000 (19:34 -0500)

revision.h: make show_early_output an extern which is defined in revision.c

The variable show_early_output is defined in revision.c and should be
declared extern in revision.h so that the linker does not complain
about multiply defined variables.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes for 1.6.1Junio C Hamano Wed, 20 Aug 2008 23:32:15 +0000 (16:32 -0700)

Update draft release notes for 1.6.1

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

Merge branch 'maint'Junio C Hamano Wed, 20 Aug 2008 23:18:16 +0000 (16:18 -0700)

Merge branch 'maint'

* maint:
Update draft release notes for 1.6.0.1
Add hints to revert documentation about other ways to undo changes
Install templates with the user and group of the installing personality
"git-merge": allow fast-forwarding in a stat-dirty tree
completion: find out supported merge strategies correctly
decorate: allow const objects to be decorated
for-each-ref: cope with tags with incomplete lines
diff --check: do not get confused by new blank lines in the middle
remote.c: remove useless if-before-free test
mailinfo: avoid violating strbuf assertion
git format-patch: avoid underrun when format.headers is empty or all NLs

Update draft release notes for 1.6.0.1Junio C Hamano Wed, 20 Aug 2008 22:19:00 +0000 (15:19 -0700)

Update draft release notes for 1.6.0.1

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

Add hints to revert documentation about other ways... Tarmigan Casebolt Tue, 19 Aug 2008 19:50:31 +0000 (12:50 -0700)

Add hints to revert documentation about other ways to undo changes

Based on its name, people may read the 'git revert' documentation when
they want to undo local changes, especially people who have used other
SCM's. 'git revert' may not be what they had in mind, but git
provides several other ways to undo changes to files. We can help
them by pointing them towards the git commands that do what they might
want to do.

Cc: Daniel Barkalow <barkalow@iabervon.org>
Cc: Lea Wiemann <lewiemann@gmail.com>
Signed-off-by: Tarmigan Casebolt <tarmigan+git@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Install templates with the user and group of the instal... Johannes Sixt Wed, 20 Aug 2008 15:36:25 +0000 (17:36 +0200)

Install templates with the user and group of the installing personality

If 'make install' was run with sufficient privileges, then the installed
templates, which are copied using 'tar', would receive the user and group
of whoever built git. This instructs 'tar' to ignore the user and group
that are recorded in the archive.

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

"git-merge": allow fast-forwarding in a stat-dirty... Junio C Hamano Wed, 20 Aug 2008 22:09:28 +0000 (15:09 -0700)

"git-merge": allow fast-forwarding in a stat-dirty tree

We used to refresh the index to clear stat-dirtyness before a fast-forward
merge. Recent C rewrite forgot to do this.

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

completion: find out supported merge strategies correctlyJunio C Hamano Wed, 20 Aug 2008 21:13:42 +0000 (14:13 -0700)

completion: find out supported merge strategies correctly

"git-merge" is a binary executable these days, and looking for assignment
to $all_strategies variable with grep/sed does not work well.

When asked for an unknown strategy, pre-1.6.0 and post-1.6.0 "git merge"
commands respectively say:

$ $HOME/git-snap-v1.5.6.5/bin/git merge -s help
available strategies are: recur recursive octopus resolve stupid ours subtree
$ $HOME/git-snap-v1.6.0/bin/git merge -s help
Could not find merge strategy 'help'.
Available strategies are: recursive octopus resolve ours subtree.

both on their standard error stream. We can use this to learn what
strategies are supported.

The sed script is written in such a way that it catches both old and new
message styles ("Available" vs "available", and the full stop at the end).
It also allows future versions of "git merge" to line-wrap the list of
strategies, and add extra comments, like this:

$ $HOME/git-snap-v1.6.1/bin/git merge -s help
Could not find merge strategy 'help'.
Available strategies are: blame recursive octopus resolve ours
subtree.
Also you have custom strategies: theirs

Make sure you spell strategy names correctly.

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

decorate: allow const objects to be decoratedJeff King Wed, 20 Aug 2008 17:55:33 +0000 (13:55 -0400)

decorate: allow const objects to be decorated

We don't actually modify the struct object, so there is no
reason not to accept const versions (and this allows other
callsites, like the next patch, to use the decoration
machinery).

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

for-each-ref: cope with tags with incomplete linesJunio C Hamano Wed, 20 Aug 2008 19:29:27 +0000 (12:29 -0700)

for-each-ref: cope with tags with incomplete lines

If you have a tag with a single, incomplete line as its payload, asking
git-for-each-ref for its %(body) element accessed a NULL pointer.

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

diff --check: do not get confused by new blank lines... Junio C Hamano Wed, 20 Aug 2008 18:47:55 +0000 (11:47 -0700)

diff --check: do not get confused by new blank lines in the middle

The code remembered that the last diff output it saw was an empty line,
and tried to reset that state whenever it sees a context line, a non-blank
new line, or a new hunk. However, this codepath asks the underlying diff
engine to feed diff without any context, and the "just saw an empty line"
state was not reset if you added a new blank line in the last hunk of your
patch, even if it is not the last line of the file.

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

Build-in "git-shell"Junio C Hamano Wed, 20 Aug 2008 01:05:43 +0000 (18:05 -0700)

Build-in "git-shell"

This trivially makes "git-shell" a built-in. It makes the executable even
fatter, though.

And MinGW removed git-shell only because of the funny dependencies; there
is no reason to do so anymore.

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

Merge branch 'bd/diff-strbuf'Junio C Hamano Wed, 20 Aug 2008 04:43:40 +0000 (21:43 -0700)

Merge branch 'bd/diff-strbuf'

* bd/diff-strbuf:
xdiff-interface: hide the whole "xdiff_emit_state" business from the caller
Use strbuf for struct xdiff_emit_state's remainder
Make xdi_diff_outf interface for running xdiff_outf diffs

Merge branch 'dp/hash-literally'Junio C Hamano Wed, 20 Aug 2008 04:43:25 +0000 (21:43 -0700)

Merge branch 'dp/hash-literally'

* dp/hash-literally:
add --no-filters option to git hash-object
add --path option to git hash-object
use parse_options() in git hash-object
correct usage help string for git-hash-object
correct argument checking test for git hash-object
teach index_fd to work with pipes

Merge branch 'js/checkout-dwim-local'Junio C Hamano Wed, 20 Aug 2008 04:43:04 +0000 (21:43 -0700)

Merge branch 'js/checkout-dwim-local'

* js/checkout-dwim-local:
checkout --track: make up a sensible branch name if '-b' was omitted

Merge branch 'ph/enable-threaded'Junio C Hamano Wed, 20 Aug 2008 04:43:01 +0000 (21:43 -0700)

Merge branch 'ph/enable-threaded'

* ph/enable-threaded:
Enable threaded delta search on *BSD and Linux.

Merge branch 'jk/pager-swap'Junio C Hamano Wed, 20 Aug 2008 04:42:55 +0000 (21:42 -0700)

Merge branch 'jk/pager-swap'

* jk/pager-swap:
spawn pager via run_command interface
run-command: add pre-exec callback

Merge branch 'rs/imap'Junio C Hamano Wed, 20 Aug 2008 04:42:46 +0000 (21:42 -0700)

Merge branch 'rs/imap'

* rs/imap:
Documentation: Improve documentation for git-imap-send(1)
imap-send.c: more style fixes
imap-send.c: style fixes
git-imap-send: Support SSL
git-imap-send: Allow the program to be run from subdirectories of a git tree

Merge branch 'js/mingw-stat'Junio C Hamano Wed, 20 Aug 2008 04:25:48 +0000 (21:25 -0700)

Merge branch 'js/mingw-stat'

* js/mingw-stat:
Revert "Windows: Use a customized struct stat that also has the st_blocks member."
compat: introduce on_disk_bytes()

remote.c: remove useless if-before-free testJim Meyering Tue, 19 Aug 2008 18:46:30 +0000 (20:46 +0200)

remote.c: remove useless if-before-free test

We removed a handful of these useless if-before-free tests several months
ago. This change removes a new one that snuck back in.

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

mailinfo: avoid violating strbuf assertionJeff King Tue, 19 Aug 2008 17:28:24 +0000 (13:28 -0400)

mailinfo: avoid violating strbuf assertion

In handle_from, we calculate the end boundary of a section
to remove from a strbuf using strcspn like this:

el = strcspn(buf, set_of_end_boundaries);
strbuf_remove(&sb, start, el + 1);

This works fine if "el" is the offset of the boundary
character, meaning we remove up to and including that
character. But if the end boundary didn't match (that is, we
hit the end of the string as the boundary instead) then we
want just "el". Asking for "el+1" caught an out-of-bounds
assertion in the strbuf library.

This manifested itself when we got a 'From' header that had
just an email address with nothing else in it (the end of
the string was the end of the address, rather than, e.g., a
trailing '>' character), causing git-mailinfo to barf.

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

reword --full-index descriptionJim Meyering Wed, 2 Jul 2008 07:49:59 +0000 (09:49 +0200)

reword --full-index description

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

SubmittingPatches: fix a typoJim Meyering Tue, 1 Apr 2008 12:53:51 +0000 (14:53 +0200)

SubmittingPatches: fix a typo

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

add boolean diff.suppress-blank-empty config optionJim Meyering Fri, 15 Aug 2008 11:39:26 +0000 (13:39 +0200)

add boolean diff.suppress-blank-empty config option

GNU diff's --suppress-blank-empty option makes it so that diff no
longer outputs trailing white space unless the input data has it.
With this option, empty context lines are now empty also in diff -u output.
Before, they would have a single trailing space.

* diff.c (diff_suppress_blank_empty): New global.
(git_diff_basic_config): Set it.
(fn_out_consume): Honor it.
* t/t4029-diff-trailing-space.sh: New file.
* Documentation/config.txt: Document it.

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

git format-patch: avoid underrun when format.headers... Jim Meyering Tue, 19 Aug 2008 18:42:04 +0000 (20:42 +0200)

git format-patch: avoid underrun when format.headers is empty or all NLs

* builtin-log.c (add_header): Avoid a buffer underrun when
format.headers is empty or all newlines. Reproduce with this:
git config format.headers '' && git format-patch -1

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

shell: do not play duplicated definition games to shrin... Junio C Hamano Wed, 20 Aug 2008 01:05:39 +0000 (18:05 -0700)

shell: do not play duplicated definition games to shrink the executable

Playing with linker games to shrink git-shell did not go well with various
other platforms and compilers.

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

Merge branch 'maint'Junio C Hamano Tue, 19 Aug 2008 07:40:53 +0000 (00:40 -0700)

Merge branch 'maint'

* maint:
t1002-read-tree-m-u-2way.sh: use 'git diff -U0' rather than 'diff -U0'
adapt git-cvsserver manpage to dash-free syntax
mailinfo: re-fix MIME multipart boundary parsing

t1002-read-tree-m-u-2way.sh: use 'git diff -U0' rather... Brandon Casey Mon, 18 Aug 2008 23:17:53 +0000 (18:17 -0500)

t1002-read-tree-m-u-2way.sh: use 'git diff -U0' rather than 'diff -U0'

Some old platforms have an old diff which doesn't have the -U option.
'git diff' can be used in its place. Adjust the comparison function to
strip git's additional header lines to make this possible.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update t/.gitignore to ignore all trash directoriesMarcus Griep Mon, 18 Aug 2008 16:25:40 +0000 (12:25 -0400)

Update t/.gitignore to ignore all trash directories

The current .gitignore only ignores the old "trash directory" and
not the new "trash directory.[test]". This ignores both forms.

Signed-off-by: Marcus Griep <marcus@griep.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "Windows: Use a customized struct stat that... Johannes Sixt Mon, 18 Aug 2008 20:01:06 +0000 (22:01 +0200)

Revert "Windows: Use a customized struct stat that also has the st_blocks member."

This reverts commit fc2ded5b08e071beed974117c0148781b1acc94a.

As we do not need the member in struct stat, we do not need to have a
custom "struct mingw_stat" anymore.

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

compat: introduce on_disk_bytes()Junio C Hamano Mon, 18 Aug 2008 19:57:16 +0000 (21:57 +0200)

compat: introduce on_disk_bytes()

Some platforms do not have st_blocks member in "struct stat"; mingw
already emulates it by rounding it up to closest 512-byte blocks (even
though it could overcount when a file has holes).

The reason to use the member is only to figure out how many kilobytes the
files occupy on-disk, so give a helper function in git-compat-util.h to
compute this value.

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

adapt git-cvsserver manpage to dash-free syntaxRobert Schiele Mon, 18 Aug 2008 14:17:04 +0000 (16:17 +0200)

adapt git-cvsserver manpage to dash-free syntax

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

mailinfo: re-fix MIME multipart boundary parsingDon Zickus Thu, 14 Aug 2008 15:35:42 +0000 (11:35 -0400)

mailinfo: re-fix MIME multipart boundary parsing

Recent changes to is_multipart_boundary() caused git-mailinfo to segfault.
The reason was after handling the end of the boundary the code tried to look
for another boundary. Because the boundary list was empty, dereferencing
the pointer to the top of the boundary caused the program to go boom.

The fix is to check to see if the list is empty and if so go on its merry
way instead of looking for another boundary.

I also fixed a couple of increments and decrements that didn't look correct
relating to content_top.

The boundary test case was updated to catch future problems like this again.

Signed-off-by: Don Zickus <dzickus@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revision --simplify-merges: make it a no-op without... Junio C Hamano Thu, 14 Aug 2008 20:52:36 +0000 (13:52 -0700)

revision --simplify-merges: make it a no-op without pathspec

When we are not pruning there is no reason to run the merge
simplification.

Also avoid running topo-order sort twice.

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

revision --simplify-merges: do not leave commits unproc... Junio C Hamano Mon, 18 Aug 2008 07:37:34 +0000 (00:37 -0700)

revision --simplify-merges: do not leave commits unprocessed

When we still do not know how parents of a commit simplify to, we should
defer processing of the commit, not discard it.

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

git-daemon: rewrite kindergarden, new option --max... Stephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: rewrite kindergarden, new option --max-connections

Get rid of the fixed array of children and make max-connections
dynamic and configurable.
Fix the killing code to actually kill the newest connections from
duplicate IP-addresses.
Avoid forking if too busy already.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon: Simplify dead-children reaping logicStephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: Simplify dead-children reaping logic

Move almost all code out of the child_handler() into check_dead_children().
The fact that systemcalls get interrupted by signals allows us to
make the SIGCHLD signal handler almost a no-op by simply running
check_dead_children() right before waiting on poll().

In case some systems do not interrupt systemcalls upon signal receipt,
all zombies will eventually be collected before the next poll() cycle.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon: use LOG_PID, simplify logging codeStephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: use LOG_PID, simplify logging code

Make git-daemon use LOG_PID like most daemons, instead of prepending the
pid to the message ourselves, when using syslog(3).

Simplify the logging code by setting stderr to line buffered, instead of
building a single string and writing it out with a single write(2).

Give an extra log message at the daemon start-up.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon: call logerror() instead of error()Stephen R. van den Berg Thu, 14 Aug 2008 18:02:20 +0000 (20:02 +0200)

git-daemon: call logerror() instead of error()

Use logerror(), not error(), so that the messages won't be lost,
especially when running the daemon with its log sent to the syslog
facility.

Signed-off-by: Stephen R. van den Berg <srb@cuci.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure: auto detect dynamic library path switchesGiovanni Funchal Sat, 16 Aug 2008 13:01:23 +0000 (15:01 +0200)

configure: auto detect dynamic library path switches

Most systems (e.g. Linux gcc) use "-Wl,-rpath," to pass to the linker the
runtime dynamic library paths. Some other systems (e.g. Sun, some BSD) use
"-R" etc. This patch adds tests in configure for the three most common
switches (to my best knowledge) which should cover all current platforms
where Git is used.

Signed-Off-By: Giovanni Funchal <gafunchal@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: Allow CC_LD_DYNPATH to be overridenJunio C Hamano Sun, 17 Aug 2008 04:56:24 +0000 (21:56 -0700)

Makefile: Allow CC_LD_DYNPATH to be overriden

Current Makefile does not allow config.mak to override CC_LD_DYNPATH; it
only lets it affect indirectly via NO_R_TO_GCC_LINKER.

If the command line, config.mak or config.mak.autogen wants to set
CC_LD_DYNPATH differently, we should just allow it.

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

git-submodule - Add 'foreach' subcommandMark Levedahl Sun, 10 Aug 2008 23:10:04 +0000 (19:10 -0400)

git-submodule - Add 'foreach' subcommand

submodule foreach <command-list> will execute the list of commands in
each currently checked out submodule directory. The list of commands
is arbitrary as long as it is acceptable to sh. The variables '$path'
and '$sha1' are availble to the command-list, defining the submodule
path relative to the superproject and the submodules's commitID as
recorded in the superproject (this may be different than HEAD in the
submodule).

This utility is inspired by a number of threads on the mailing list
looking for ways to better integrate submodules in a tree and work
with them as a unit. This could include fetching a new branch in each
from a given source, or possibly checking out a given named branch in
each. Currently, there is no consensus as to what additional commands
should be implemented in the porcelain, requiring all users whose needs
exceed that of git-submodule to do their own scripting. The foreach
command is intended to support such scripting, and in particular does
no error checking and produces no output, thus allowing end users
complete control over any information printed out and over what
constitutes an error. The processing does terminate if the command-list
returns an error, but processing can easily be forced for all
submodules be terminating the list with ';true'.

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

Fix commit_tree() buffer leakStephan Beyer Mon, 11 Aug 2008 22:35:11 +0000 (00:35 +0200)

Fix commit_tree() buffer leak

The commit_tree() strbuf has a minimum size of 8k and it has not been
released yet. This patch releases the buffer.

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

Teach git log --exit-code to return an appropriate... Peter Valdemar Mørch Mon, 11 Aug 2008 06:46:25 +0000 (08:46 +0200)

Teach git log --exit-code to return an appropriate exit code

Signed-off-by: Peter Valdemar Mørch <peter@morch.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach git log --check to return an appropriate exit... Peter Valdemar Mørch Mon, 11 Aug 2008 06:46:24 +0000 (08:46 +0200)

Teach git log --check to return an appropriate exit code

Signed-off-by: Peter Valdemar Mørch <peter@morch.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-reflog: Allow reflog expire to name partial refPieter de Bie Sun, 10 Aug 2008 20:22:21 +0000 (22:22 +0200)

builtin-reflog: Allow reflog expire to name partial ref

This allows you to specify 'git reflog expire master' without needing
to give the full refname like 'git reflog expire refs/heads/master'

Signed-off-by: Pieter de Bie <pdebie@ai.rug.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Start 1.6.1 cycleJunio C Hamano Sun, 17 Aug 2008 22:48:51 +0000 (15:48 -0700)

Start 1.6.1 cycle

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

Start 1.6.0.X maintenance seriesJunio C Hamano Sun, 17 Aug 2008 22:44:11 +0000 (15:44 -0700)

Start 1.6.0.X maintenance series

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

GIT 1.6.0 v1.6.0Junio C Hamano Sun, 17 Aug 2008 18:42:10 +0000 (11:42 -0700)

GIT 1.6.0

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

Merge git-gui 0.11.0Junio C Hamano Sun, 17 Aug 2008 18:40:56 +0000 (11:40 -0700)

Merge git-gui 0.11.0

Merge branch 'ak/p4'Junio C Hamano Sun, 17 Aug 2008 17:53:57 +0000 (10:53 -0700)

Merge branch 'ak/p4'

* ak/p4:
Utilise our new p4_read_pipe and p4_write_pipe wrappers
Add p4 read_pipe and write_pipe wrappers
Put in the two other configuration elements found in the source
Put some documentation in about the parameters that have been added
Move git-p4.syncFromOrigin into a configuration parameters section
Consistently use 'git-p4' for the configuration entries
If the user has configured various parameters, use them.
Switch to using 'p4_build_cmd'
If we are in verbose mode, output what we are about to run (or return)
Add a single command that will be used to construct the 'p4' command
Utilise the new 'p4_system' function.
Have a command that specifically invokes 'p4' (via system)
Utilise the new 'p4_read_pipe_lines' command
Create a specific version of the read_pipe_lines command for p4 invocations

Conflicts:
contrib/fast-import/git-p4

count-objects: Add total pack size to verbose outputMarcus Griep Fri, 15 Aug 2008 04:20:20 +0000 (00:20 -0400)

count-objects: Add total pack size to verbose output

Adds the total pack size (including indexes) the verbose count-objects
output, floored to the nearest kilobyte.

Updates documentation to match this addition.

Signed-off-by: Marcus Griep <marcus@griep.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: use $TEST_DIRECTORY to refer to the t/ directoryJunio C Hamano Fri, 8 Aug 2008 09:26:28 +0000 (02:26 -0700)

tests: use $TEST_DIRECTORY to refer to the t/ directory

Many test scripts assumed that they will start in a 'trash' subdirectory
that is a single level down from the t/ directory, and referred to their
test vector files by asking for files like "../t9999/expect". This will
break if we move the 'trash' subdirectory elsewhere.

To solve this, we earlier introduced "$TEST_DIRECTORY" so that they can
refer to t/ directory reliably. This finally makes all the tests use
it to refer to the outside environment.

With this patch, and a one-liner not included here (because it would
contradict with what Dscho really wants to do):

| diff --git a/t/test-lib.sh b/t/test-lib.sh
| index 70ea7e0..60e69e4 100644
| --- a/t/test-lib.sh
| +++ b/t/test-lib.sh
| @@ -485,7 +485,7 @@ fi
| . ../GIT-BUILD-OPTIONS
|
| # Test repository
| -test="trash directory"
| +test="trash directory/another level/yet another"
| rm -fr "$test" || {
| trap - exit
| echo >&5 "FATAL: Cannot prepare test area"

all the tests still pass, but we would want extra sets of eyeballs on this
type of change to really make sure.

[jc: with help from Stephan Beyer on http-push tests I do not run myself;
credits for locating silly quoting errors go to Olivier Marin.]

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

Make push more verbose about illegal combination of... Marek Zawirski Sat, 16 Aug 2008 17:58:32 +0000 (19:58 +0200)

Make push more verbose about illegal combination of options

It may be unclear that --all, --mirror, --tags and/or explicit refspecs
are illegal combinations for git push.

Git was silently failing in these cases, while we can complaint more
properly about it.

Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

index: future proof for "extended" index entriesJunio C Hamano Sun, 17 Aug 2008 06:02:08 +0000 (23:02 -0700)

index: future proof for "extended" index entries

We do not have any more bits in the on-disk index flags word, but we would
need to have more in the future. Use the last remaining bits as a signal
to tell us that the index entry we are looking at is an extended one.

Since we do not understand the extended format yet, we will just error out
when we see it.

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

git-p4: chdir now properly sets PWD environment variabl... Robert Blum Fri, 1 Aug 2008 19:50:03 +0000 (12:50 -0700)

git-p4: chdir now properly sets PWD environment variable in msysGit

P4 on Windows expects the PWD environment variable to be set to the
current working dir, but os.chdir in python doesn't do so.

Signed-off-by: Robert Blum <rob.blum@gmail.com>
Acked-by: Simon Hausmann <simon@lst.de>
Acked-by: Han-Wen Nienhuys <hanwen@xs4all.nl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Improve error output of git-rebaseStephan Beyer Sun, 17 Aug 2008 04:25:43 +0000 (06:25 +0200)

Improve error output of git-rebase

"git rebase" without arguments on initial startup showed:

fatal: Needed a single revision
invalid upstream

This patch makes it show the ordinary usage string.

If .git/rebase-merge or .git/rebase-apply/rebasing exists, git-rebase
will die with a message saying that a rebase is in progress and the user
should try --skip/--abort/--continue.

If .git/rebase-apply/applying exists, git-rebase will die with a message
saying that git-am is in progress, regardless how many arguments are
given.

If no arguments are given and .git/rebase-apply/ exists, but neither a
rebasing nor applying file is in that directory, git-rebase dies with a
message saying that rebase-apply exists and no arguments were given.

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

t9300: replace '!' with test_must_failMiklos Vajna Sat, 16 Aug 2008 15:17:42 +0000 (17:17 +0200)

t9300: replace '!' with test_must_fail

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano Sun, 17 Aug 2008 06:21:07 +0000 (23:21 -0700)

Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Allow safely calling nukefile from a run queue handler

Git.pm: Make File::Spec and File::Temp requirement... Marcus Griep Fri, 15 Aug 2008 19:53:59 +0000 (15:53 -0400)

Git.pm: Make File::Spec and File::Temp requirement lazy

This will ensure that the API at large is accessible to nearly
all Perl versions, while only the temp file caching API is tied to
the File::Temp and File::Spec modules being available.

Signed-off-by: Marcus Griep <marcus@griep.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>