gitweb.git
Update git(7) man-page for the C wrapper.Andreas Ericsson Tue, 15 Nov 2005 23:31:25 +0000 (00:31 +0100)

Update git(7) man-page for the C wrapper.

The program 'git' now has --exec-path which needs explaining.

Renamed old "DESCRIPTION" to "CORE GIT COMMANDS" to make room for
"OPTIONS" while following follow some sort of convention.

Also updated AUTHORS section to pat my own back a bit.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

C implementation of the 'git' program, take two.Andreas Ericsson Tue, 15 Nov 2005 23:31:25 +0000 (00:31 +0100)

C implementation of the 'git' program, take two.

This patch provides a C implementation of the 'git' program and
introduces support for putting the git-* commands in a directory
of their own. It also saves some time on executing those commands
in a tight loop and it prints the currently available git commands
in a nicely formatted list.

The location of the GIT_EXEC_PATH (name discussion's closed, thank gods)
can be obtained by running

git --exec-path

which will hopefully give porcelainistas ample time to adapt their
heavy-duty loops to call the core programs directly and thus save
the extra fork() / execve() overhead, although that's not really
necessary any more.

The --exec-path value is prepended to $PATH, so the git-* programs
should Just Work without ever requiring any changes to how they call
other programs in the suite.

Some timing values for 10000 invocations of git-var >&/dev/null:
git.sh: 24.194s
git.c: 9.044s
git-var: 7.377s

The git-<tab><tab> behaviour can, along with the someday-to-be-deprecated
git-<command> form of invocation, be indefinitely retained by adding
the following line to one's .bash_profile or equivalent:

PATH=$PATH:$(git --exec-path)

Experimental libraries can be used by either setting the environment variable
GIT_EXEC_PATH, or by using

git --exec-path=/some/experimental/exec-path

Relative paths are properly grok'ed as exec-path values.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

sha1_file.c::add_packed_git(): fix type mismatch.Junio C Hamano Tue, 15 Nov 2005 20:51:02 +0000 (12:51 -0800)

sha1_file.c::add_packed_git(): fix type mismatch.

An object name is 20-byte 'unsigned char', not 'char'.

Signed-off-by: Junio C Hamano <junkio@cox.net>

diff: make default rename detection limit configurable.Junio C Hamano Tue, 15 Nov 2005 20:48:08 +0000 (12:48 -0800)

diff: make default rename detection limit configurable.

A while ago, a rename-detection limit logic was implemented as a
response to this thread:

http://marc.theaimsgroup.com/?l=git&m=112413080630175

where gitweb was found to be using a lot of time and memory to
detect renames on huge commits. git-diff family takes -l<num>
flag, and if the number of paths that are rename destination
candidates (i.e. new paths with -M, or modified paths with -C)
are larger than that number, skips rename/copy detection even
when -M or -C is specified on the command line.

This commit makes the rename detection limit easier to use. You
can have:

[diff]
renamelimit = 30

in your .git/config file to specify the default rename detection
limit. You can override this from the command line; giving 0
means 'unlimited':

git diff -M -l0

We might want to change the default behaviour, when you do not
have the configuration, to limit it to say 20 paths or so. This
would also help the diffstat generation after a big 'git pull'.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Add config variable core.symrefsonlyJohannes Schindelin Tue, 15 Nov 2005 18:24:19 +0000 (19:24 +0100)

Add config variable core.symrefsonly

This allows you to force git to avoid symlinks for refs. Just add
something like

[core]
symrefsonly = true

to .git/config.

Don´t forget to "git checkout your_branch", or it does not do anything...

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Rework object refs tracking to reduce memory usageSergey Vlasov Tue, 15 Nov 2005 16:08:08 +0000 (19:08 +0300)

Rework object refs tracking to reduce memory usage

Store pointers to referenced objects in a variable sized array instead
of linked list. This cuts down memory usage of utilities which use
object references; e.g., git-fsck-objects --full on the git.git
repository consumes about 2 MB of memory tracked by Massif instead of
7 MB before the change. Object refs are still the biggest consumer of
memory (57%), but the malloc overhead for a single block instead of a
linked list is substantially smaller.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-fsck-objects: Free tree entries after useSergey Vlasov Tue, 15 Nov 2005 16:07:15 +0000 (19:07 +0300)

git-fsck-objects: Free tree entries after use

The Massif tool of Valgrind revealed that parsed tree entries occupy
more than 60% of memory allocated by git-fsck-objects. These entries
can be freed immediately after use, which significantly decreases
memory consumption.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix git(1) link to git-index-packJonas Fonseca Tue, 15 Nov 2005 12:29:18 +0000 (13:29 +0100)

Fix git(1) link to git-index-pack

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: do not blindly run 'cat' .git/HEAD,... Junio C Hamano Tue, 15 Nov 2005 09:31:04 +0000 (01:31 -0800)

Documentation: do not blindly run 'cat' .git/HEAD, or echo into it.

Many places in the documentation we still talked about reading
what commit is recorded in .git/HEAD or writing the new head
information into it, both assuming .git/HEAD is a symlink. That
is not necessarily so.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix bunch of fd leaks in http-fetchPetr Baudis Fri, 11 Nov 2005 23:55:16 +0000 (00:55 +0100)

Fix bunch of fd leaks in http-fetch

The current http-fetch is rather careless about fd leakage, causing
problems while fetching large repositories. This patch does not reserve
exhaustiveness, but I covered everything I spotted. I also left some
safeguards in place in case I missed something, so that we get to know,
sooner or later.

Reported by Becky Bruce <becky.bruce@freescale.com>.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-daemon: --inetd implies --syslogAndreas Ericsson Mon, 14 Nov 2005 16:41:01 +0000 (17:41 +0100)

git-daemon: --inetd implies --syslog

Otherwise nothing is logged anywhere, which is a Bad Thing.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-core-foo -> git-foo, except the core packageH. Peter Anvin Tue, 15 Nov 2005 06:12:17 +0000 (22:12 -0800)

git-core-foo -> git-foo, except the core package

This patch renames the tarball "git" rather than "git-core", and changes
the names of various packages from git-core-foo to git-foo. git-core is
still the true core package; an empty RPM package named "git" pulls in
ALL the git packages -- this makes updates work correctly, and allows
"yum install git" to do the obvious thing.

It also renames the git-(core-)tk package to gitk.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Update topo-order test.Junio C Hamano Tue, 15 Nov 2005 02:15:30 +0000 (18:15 -0800)

Update topo-order test.

The recently we updated rev-list --topo-order to show the heads
in date order, but we had a test that expected to see the old
behaviour.

Signed-off-by: Junio C Hamano <junkio@cox.net>

allow git-update-ref create refs with slashes in namesAlex Riesen Mon, 14 Nov 2005 22:10:59 +0000 (23:10 +0100)

allow git-update-ref create refs with slashes in names

Make git-update-ref create references with slashes in them. git-branch
and git-checkout already support such reference names.

git-branch can use git-update-ref to create the references in a more
formal manner now.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation nitpickingNikolai Weibull Mon, 14 Nov 2005 23:20:01 +0000 (00:20 +0100)

Documentation nitpicking

This patch fixes some small problems with the documentation.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document a couple of missing command-line options.Nikolai Weibull Mon, 14 Nov 2005 23:20:01 +0000 (00:20 +0100)

Document a couple of missing command-line options.

This patch adds documentation to quite a few command-line options.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document the -n command-line option to git-unpack-objectsNikolai Weibull Mon, 14 Nov 2005 23:20:01 +0000 (00:20 +0100)

Document the -n command-line option to git-unpack-objects

This patch documents the -n command-line option to git-unpack-objects,
as it was previously undocumented.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

apply: fix binary patch detection.Junio C Hamano Tue, 15 Nov 2005 01:15:07 +0000 (17:15 -0800)

apply: fix binary patch detection.

The comparison to find "Binary files " string was looking at a
wrong place when offset != 0.

Also, we may have the full 40-byte textual sha1 on the index
line; two off-by-one errors prevented it.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix git-rev-list "date order" with --topo-orderLinus Torvalds Mon, 14 Nov 2005 18:01:26 +0000 (10:01 -0800)

Fix git-rev-list "date order" with --topo-order

This fixes git-rev-list so that when there are multiple branches, we still
sort the heads in proper approximate date order even when sorting the
output topologically.

This makes things like

gitk --all -d

work sanely and show the branches in date order (where "date order" is
obviously modified by the paren-child dependency requirements of the
topological sort).

The trivial fix is to just build the "work" list in date order rather than
inserting the new work entries at the beginning.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-branch: Mention -d and -D in man-page.Andreas Ericsson Mon, 14 Nov 2005 16:53:42 +0000 (17:53 +0100)

git-branch: Mention -d and -D in man-page.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'svnup' of netz.smurf.noris.de/git/gitJunio C Hamano Mon, 14 Nov 2005 21:50:05 +0000 (13:50 -0800)

Merge branch 'svnup' of netz.smurf.noris.de/git/git

Signed-off-by: Junio C Hamano <junkio@cox.net>

Depend on asciidoc 7 (at least).Matthias Urlichs Mon, 14 Nov 2005 16:41:31 +0000 (17:41 +0100)

Depend on asciidoc 7 (at least).

Remove git-rename. git-mv does the sameJosef Weidendorfer Sun, 13 Nov 2005 14:08:00 +0000 (15:08 +0100)

Remove git-rename. git-mv does the same

Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Bugfix: stop if directory already existsJosef Weidendorfer Sun, 13 Nov 2005 14:03:31 +0000 (15:03 +0100)

Bugfix: stop if directory already exists

Fix a typo: We do not want to run the directory as command,
and want to terminate if the directory exists
Additionally, update the usage message

Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Separate LDFLAGS and CFLAGS.Junio C Hamano Sun, 13 Nov 2005 09:46:13 +0000 (01:46 -0800)

Separate LDFLAGS and CFLAGS.

Stuffing -L flag and friends meant for the linking phase into
ALL_CFLAGS is not right; honor LDFLAGS and introduce ALL_LDFLAGS
to separate them out.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'svnup' of netz.smurf.noris.de/git/gitJunio C Hamano Mon, 14 Nov 2005 08:25:48 +0000 (00:25 -0800)

Merge branch 'svnup' of netz.smurf.noris.de/git/git

Remove trailing slashesMatthias Urlichs Mon, 14 Nov 2005 07:31:00 +0000 (08:31 +0100)

Remove trailing slashes

SVN dies a messy death when passed a path with trailing slashes.

Rename lost+found to lost-found.Junio C Hamano Sun, 13 Nov 2005 10:07:02 +0000 (02:07 -0800)

Rename lost+found to lost-found.

Because we use "lost-found" as the directory name to hold
dangling object names, it is confusing to call the command
git-lost+found, although it makes sense and is even cute ;-).

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix compilation warnings in pack-redundant.cKai Ruemmler Sat, 12 Nov 2005 16:33:24 +0000 (17:33 +0100)

Fix compilation warnings in pack-redundant.c

This fixes compilation warnings where "%ld" was used to print values of
type size_t.

Signed-off-by: Kai Ruemmler <kai.ruemmler@gmx.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Debian: build-depend on libexpat-dev.Junio C Hamano Sun, 13 Nov 2005 09:57:33 +0000 (01:57 -0800)

Debian: build-depend on libexpat-dev.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Split gitk into seperate RPM packageThomas Matysik Sun, 13 Nov 2005 04:58:02 +0000 (17:58 +1300)

Split gitk into seperate RPM package

I don't want to have to install x11-libs and all it's dependencies on
my headless machines, so this patch splits gitk out of the RPM.

The .deb already appears to have gitk split out.

Signed-off-by: Thomas Matysik <thomas@matysik.co.nz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add expat and expat-devel dependencies (for http-push... Thomas Matysik Sun, 13 Nov 2005 04:56:55 +0000 (17:56 +1300)

Add expat and expat-devel dependencies (for http-push) to RPM spec.

Signed-off-by: Thomas Matysik <thomas@matysik.co.nz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix fd leak in http-fetchNick Hengeveld Sat, 12 Nov 2005 17:38:28 +0000 (09:38 -0800)

Fix fd leak in http-fetch

Added a call to finish_request to clean up resources if the server
returned a 404 and there are no alternates left to try.

Signed-off-by: Nick Hengeveld <nickh@reactrix.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix for multiple alternates requests in http-fetchNick Hengeveld Sat, 12 Nov 2005 17:11:32 +0000 (09:11 -0800)

Fix for multiple alternates requests in http-fetch

Stop additional alternates requests from starting if one is already in
progress. This adds an optional callback which is processed after a slot
has finished running.

Signed-off-by: Nick Hengeveld <nickh@reactrix.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

debian packaging: git-cvs needs cvspsMatthias Urlichs Sat, 12 Nov 2005 22:15:50 +0000 (23:15 +0100)

debian packaging: git-cvs needs cvsps

Ignore built git-lost+found.Junio C Hamano Sat, 12 Nov 2005 06:28:03 +0000 (22:28 -0800)

Ignore built git-lost+found.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: asciidoc sources are utf-8Junio C Hamano Sat, 12 Nov 2005 06:16:59 +0000 (22:16 -0800)

Documentation: asciidoc sources are utf-8

git-pack-redundant documentation was encoded in latin1, which caused
asciidoc to barf, which expected to see utf-8. Run tcs to re-encode
it in utf-8.

Also just for fun try my name in Japanese in git-lost+found
documentation ;-)

Signed-off-by: Junio C Hamano <junkio@cox.net>

Rename .git/lost+found to .git/lost-found.Junio C Hamano Fri, 11 Nov 2005 03:16:26 +0000 (19:16 -0800)

Rename .git/lost+found to .git/lost-found.

Just to avoid confusion that scripts poorly written by somebody
else ;-) might mistake this as a mount point, or backup tools
ignoring the directory. The latter is probably not a big loss,
however, considering that this directory's contents are to be
used while fresh anyway.

Signed-off-by: Junio C Hamano <junkio@cox.net>

git-lost+foundJunio C Hamano Mon, 7 Nov 2005 23:15:34 +0000 (15:15 -0800)

git-lost+found

This command helps you resurrect accidentally lost tags and commits.

Signed-off-by: Junio C Hamano <junkio@cox.net>

git-prune: prune redundant packsJunio C Hamano Fri, 11 Nov 2005 18:41:53 +0000 (10:41 -0800)

git-prune: prune redundant packs

Signed-off-by: Junio C Hamano <junkio@cox.net>

Make git-pack-redundant consider alt-odbsLukas_Sandström Fri, 11 Nov 2005 00:25:04 +0000 (01:25 +0100)

Make git-pack-redundant consider alt-odbs

This patch changes git-pack-redundant so that packfiles
in alternate object directories also are considered when
deciding which objects are redundant.

This functionality is controlled by the flag '--alt-odb'.

Also convert the other flags to the long form, and update
docs and git-repack accordingly.

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Rename git-pack-intersect to git-pack-redundantLukas_Sandström Wed, 9 Nov 2005 23:16:13 +0000 (00:16 +0100)

Rename git-pack-intersect to git-pack-redundant

This patch renames git-pack-intersect to git-pack-redundant
as suggested by Petr Baudis. The new name reflects what the
program does, rather than how it does it.

Also fix a small argument parsing bug.

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Make git-repack use git-pack-intersect.Lukas_Sandström Wed, 9 Nov 2005 01:25:48 +0000 (02:25 +0100)

Make git-repack use git-pack-intersect.

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add git-pack-intersect to .gitignoreLukas_Sandström Wed, 9 Nov 2005 01:24:51 +0000 (02:24 +0100)

Add git-pack-intersect to .gitignore

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add documentation for git-pack-intersectLukas_Sandström Wed, 9 Nov 2005 01:23:55 +0000 (02:23 +0100)

Add documentation for git-pack-intersect

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add git-pack-intersectLukas_Sandström Wed, 9 Nov 2005 01:22:40 +0000 (02:22 +0100)

Add git-pack-intersect

This patch adds the program git-pack-intersect. It is
used to find redundant packs in git repositories.

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-one-file: use empty- or common-base condintionall... Junio C Hamano Fri, 11 Nov 2005 03:30:23 +0000 (19:30 -0800)

merge-one-file: use empty- or common-base condintionally in two-stage merge.

If two sides added the same path completely different thing, it is
easier to see the merge pivoting on /dev/null. So check the size of
the common section we have found, and empty it if it is too small.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: git-apply --no-addJunio C Hamano Thu, 10 Nov 2005 04:53:54 +0000 (20:53 -0800)

Documentation: git-apply --no-add

This is a specialized hack to help no-base merges, but other
people might find it useful, so let's document it.

Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-one-file: use common as base, instead of emptiness.Junio C Hamano Thu, 10 Nov 2005 04:38:33 +0000 (20:38 -0800)

merge-one-file: use common as base, instead of emptiness.

Unlike the previous round that merged the path added differently
in each branches using emptiness as the base, compute a common
version and use it as input to 'merge' program.

This would show the resulting (still conflicting) file left in
the working tree as:

common file contents...
<<<<<< FILENAME
version from our branch...
======
version from their branch...
>>>>>> .merge_file_XXXXXX
more common file contents...

when both sides added similar contents.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge ... /dev/null as base, instead of punting O=... Junio C Hamano Tue, 8 Nov 2005 06:03:46 +0000 (22:03 -0800)

Merge ... /dev/null as base, instead of punting O==empty case

Instead of leaving the path unmerged in a case where each side
adds different version of the same path, attempt to merge it
with empty base and leave "our" version in the index file, just
like we do for the case in conflicting merge.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Show URL in the "Getting <foo> list" http-fetch messagesPetr Baudis Sat, 12 Nov 2005 00:49:59 +0000 (01:49 +0100)

Show URL in the "Getting <foo> list" http-fetch messages

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-recursive: Use '~' instead of '_' to separate... Fredrik Kuivinen Fri, 11 Nov 2005 23:55:36 +0000 (00:55 +0100)

merge-recursive: Use '~' instead of '_' to separate file names from branch names

Makes it less probable that we get a clash with an existing file,
furthermore Cogito already uses '~' for this purpose.

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-recursive: Add copyright noticeFredrik Kuivinen Fri, 11 Nov 2005 23:54:55 +0000 (00:54 +0100)

merge-recursive: Add copyright notice

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-recursive: Indent the output properlyFredrik Kuivinen Fri, 11 Nov 2005 23:53:07 +0000 (00:53 +0100)

merge-recursive: Indent the output properly

If we have multiple common ancestors and have to recursively merge
them then the output will be much more readable with this commit.

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Change 'cache' to 'index' in the docsLukas_Sandström Fri, 11 Nov 2005 01:12:27 +0000 (02:12 +0100)

Change 'cache' to 'index' in the docs

This patch makes the documentation refer to the index
as index instead of cache, but some references still
remain. (e.g. git-update-index.txt)

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

INSTALL: duplicate python requirements from MakefileJunio C Hamano Fri, 11 Nov 2005 19:27:03 +0000 (11:27 -0800)

INSTALL: duplicate python requirements from Makefile

... and refer the reader to Makefile for other things that can be
tweaked.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branches 'jc/sb' and 'jc/mb'Junio C Hamano Fri, 11 Nov 2005 18:52:59 +0000 (10:52 -0800)

Merge branches 'jc/sb' and 'jc/mb'

t1200: use --topo-order to keep the show-branch output... Junio C Hamano Fri, 11 Nov 2005 02:27:44 +0000 (18:27 -0800)

t1200: use --topo-order to keep the show-branch output stable.

Because a batch-oriented script creates many commits within a second
on a fast machine, show-branch output of the test results are unstable
without topo-order.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fully detect uninteresting commits.Junio C Hamano Thu, 10 Nov 2005 23:47:58 +0000 (15:47 -0800)

Fully detect uninteresting commits.

With the change in the previous round, we are guaranteed to come up
with the list of all relevant merge bases, but sometimes we do not
fully mark unintersting ones due to a horizon effect. Add a phase to
postprocess, so that we mark all ancestor of "interesting" commit.

This also changes the default ordering of shown commits back to
chronological order, and adds --topo-order flag to show them in
topological order.

Signed-off-by: Junio C Hamano <junkio@cox.net>

git-show-branch: tighten merge-base computation.Junio C Hamano Thu, 10 Nov 2005 07:36:15 +0000 (23:36 -0800)

git-show-branch: tighten merge-base computation.

This makes the merge-base computation resistant to the pathological
case discussed on the list earlier, by doing the same logic as
git-merge-base. As a side effect, it breaks the command's primary
function to list non-merge commit sequences, which needs to be fixed
separately.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Add test case for merge-base.Junio C Hamano Fri, 11 Nov 2005 09:00:52 +0000 (01:00 -0800)

Add test case for merge-base.

Although it was shown that the "full contamination" was not really full
during the list discussion, the series improves things without incurring
extra parsing cost, and here is a test to check that.

Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-base: avoid unnecessary postprocessing.Junio C Hamano Fri, 11 Nov 2005 06:41:44 +0000 (22:41 -0800)

merge-base: avoid unnecessary postprocessing.

When we have only one merge-base candidates in the result list,
there is no point going back to mark the reachable commits
again. And that is the most common case, so try not to waste
time on it. Suggested by Linus.

Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-base: fully contaminate the well.Junio C Hamano Fri, 11 Nov 2005 01:21:54 +0000 (17:21 -0800)

merge-base: fully contaminate the well.

The discussion on the list demonstrated a pathological case where
an ancestor of a merge-base can be left interesting. This commit
introduces a postprocessing phase to fix it.

Signed-off-by: Junio C Hamano <junkio@cox.net>

RPM: arch submodule needs tla.Junio C Hamano Fri, 11 Nov 2005 17:31:38 +0000 (09:31 -0800)

RPM: arch submodule needs tla.

Noticed by Horst von Brand.

Signed-off-by: Junio C Hamano <junkio@cox.net>

git-clone: Allow cloning into directories other than... Andreas Ericsson Thu, 10 Nov 2005 11:58:08 +0000 (12:58 +0100)

git-clone: Allow cloning into directories other than child of current dir.

This patch adds -p to mkdir and an explicit check to see if the target
directory exists (since mkdir -p doesn't throw an error if it does).

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-clone: Keep remote names when cloning unless explic... Andreas Ericsson Thu, 10 Nov 2005 11:58:08 +0000 (12:58 +0100)

git-clone: Keep remote names when cloning unless explicitly told not to.

With this patch the following commands all clone into the local directory
"repo". If repo exists, it will still barf.

git-clone git://host.xz/repo.git
git-clone /path/to/repo/.git
git-clone host.xz:repo.git

I ended up doing the same source-to-target sed'ing for all our company
projects, so it was easier to add it directly to git-clone.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

specfile cleanupsChris Wright Fri, 11 Nov 2005 09:10:29 +0000 (01:10 -0800)

specfile cleanups

Some specfile cleanups after the split.
- zlib dependency fix, current method is inconsistent, you can
potentially build a package that you can't install on machine you
built it on
- Add proper defattr
- Remove trailing '.' in summary
- Add docs to split up packages
- Add git-core dependency for each subpackage
- Move arch import to separate package as well

Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

archimport: handle pika escapingMartin Langhoff Fri, 11 Nov 2005 05:00:57 +0000 (18:00 +1300)

archimport: handle pika escaping

Arch uses pika escaping in some places (but not all!). Specifically, commits of
the type 'patch' use pika escaping in the log entries, which we parse to know
what to add/delete and what to commit.

This patch checks for hints of pika escaping and asks tla to unescape for us.

Originally implemented by Penny Leach <penny@catalyst.net.nz>

Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-clone: quote destination directory namePavel Roskin Fri, 11 Nov 2005 05:19:04 +0000 (00:19 -0500)

git-clone: quote destination directory name

git-clone doesn't quote the full path to the destination directory,
which causes it to fail if the path contains spaces or other characters
interpreted by the shell.

[jc: obviously I was not careful enough. Pavel, thanks for catching.]

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add --no-commit-id option for git-diff-tree, use it... Pavel Roskin Thu, 10 Nov 2005 05:30:12 +0000 (00:30 -0500)

Add --no-commit-id option for git-diff-tree, use it in gitk

This patch introduces -no-commit-id option for git-diff-tree, which
suppresses commit ID output.

[jc: dropped gitk part for now.]

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

octopus: do not do AND'ed merge base.Junio C Hamano Thu, 10 Nov 2005 06:37:14 +0000 (22:37 -0800)

octopus: do not do AND'ed merge base.

When doing an octopus, we incorrectly used the previous merge
base as the reference to compute next merge base. This was
unnecessary, because that can never be better than using the
original HEAD. And that is far simpler as well ;-).

Signed-off-by: Junio C Hamano <junkio@cox.net>

Add --pretty=fullerJunio C Hamano Thu, 10 Nov 2005 06:15:27 +0000 (22:15 -0800)

Add --pretty=fuller

git log without --pretty showed author and author-date, while
with --pretty=full showed author and committer but no dates.
The new formatting option, --pretty=fuller, shows both name and
timestamp for author and committer.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Do not lose author name information to locale gotchas.Junio C Hamano Fri, 11 Nov 2005 07:34:08 +0000 (23:34 -0800)

Do not lose author name information to locale gotchas.

I noticed format-patch loses authorship information of Lukas' patch
when I run git tools with LC_LANG set to ja_JP. It turns out that
the sed script to set environment variables were not working on his
name (encoded in UTF-8), which is unfortunate but technically correct.

Force sed invocation under C locale because we always want literal byte
semantics.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: "host:path/to/repo" is git native over... Junio C Hamano Fri, 11 Nov 2005 01:46:20 +0000 (17:46 -0800)

Documentation: "host:path/to/repo" is git native over ssh.

You could also spell it ssh://host:/path/to/repo (or git+ssh,
ssh+git), but without method:// is shorter to type, so mention
only that one in the short and sweet list.

Noticed by Pasky.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Let git-clone/git-fetch follow HTTP redirectionsJosef Weidendorfer Thu, 10 Nov 2005 13:12:19 +0000 (14:12 +0100)

Let git-clone/git-fetch follow HTTP redirections

Otherwise, git-clone silently failed to clone a remote
repository where redirections (ie. a response with a
"Location" header line) are used.

This includes the fixes from Nick Hengeveld.

Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix confusing git-update-ref error messagePetr Baudis Thu, 10 Nov 2005 19:55:13 +0000 (20:55 +0100)

Fix confusing git-update-ref error message

When git-update-ref has hit the "Ref %s changed to %s" error, I just stare
at it, left puzzled. This patch attempts to reword that to a more useful
and less confusing error message.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add missing git-core and cvsps RPM dependencies.Jim Radford Thu, 10 Nov 2005 19:03:08 +0000 (11:03 -0800)

Add missing git-core and cvsps RPM dependencies.

Signed-off-by: Jim Radford <radford@blackbean.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Make git-recursive the default strategy for git-pull.Junio C Hamano Tue, 8 Nov 2005 10:00:31 +0000 (02:00 -0800)

Make git-recursive the default strategy for git-pull.

This does two things:

- It changes the hardcoded default merge strategy for two-head
git-pull from resolve to recursive.

- .git/config file acquires two configuration items.
pull.twohead names the strategy for two-head case, and
pull.octopus names the strategy for octopus merge.

IOW you are paranoid, you can have the following lines in your
.git/config file and keep using git-merge-resolve when pulling
one remote:

[pull]
twohead = resolve

OTOH, you can say this:

[pull]
twohead = resolve
twohead = recursive

to try quicker resolve first, and when it fails, fall back to
recursive.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Use 'merge-base --all' where applicable.Junio C Hamano Thu, 10 Nov 2005 02:54:14 +0000 (18:54 -0800)

Use 'merge-base --all' where applicable.

It may get extra merge base on truly pathological commit histories,
but is a lot easier to understand, explain, and prove correctness.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'hold/svn'Junio C Hamano Thu, 10 Nov 2005 02:44:42 +0000 (18:44 -0800)

Merge branch 'hold/svn'

Merge branch 'hold/rpm'Junio C Hamano Thu, 10 Nov 2005 02:44:18 +0000 (18:44 -0800)

Merge branch 'hold/rpm'

git-apply: do not fail on binary diff when not applying... Junio C Hamano Wed, 9 Nov 2005 22:59:23 +0000 (14:59 -0800)

git-apply: do not fail on binary diff when not applying nor checking.

We run git-apply with --stat and --summary at the end of the pull
by default, which causes it to barf when the pull brought in changes
to binary files. Just mark them as binary patch and proceed when
not applying nor checking.

[jc: I almost missed --check until I saw Linus did something similar.]

Signed-off-by: Junio C Hamano <junkio@cox.net>

Update INSTALLJunio C Hamano Wed, 9 Nov 2005 20:40:03 +0000 (12:40 -0800)

Update INSTALL

Explicitly mention how to install by hand in build-as-user and
install-as-root steps.

Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-recursive: Fix support for branch names containin... Fredrik Kuivinen Wed, 9 Nov 2005 10:42:57 +0000 (11:42 +0100)

merge-recursive: Fix support for branch names containing slashes

A branch name could have a slash in it.

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

merge-recursive: Fix limited output of rename messagesFredrik Kuivinen Wed, 9 Nov 2005 10:36:55 +0000 (11:36 +0100)

merge-recursive: Fix limited output of rename messages

The previous code did the right thing, but it did it by accident.

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix cvsexportcommit syntax errorAlexander Litvinov Wed, 9 Nov 2005 07:02:58 +0000 (13:02 +0600)

Fix cvsexportcommit syntax error

There is a syntax error in cvsexport script:

Signed-off-by: Junio C Hamano <junkio@cox.net>

Update howto using-topic-branchesLuck, Tony Tue, 8 Nov 2005 23:52:02 +0000 (15:52 -0800)

Update howto using-topic-branches

"git resolve" is being deprecated in favour of "git merge".
Update the documentation to reflect this.

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

sparse fixes for http-{fetch,push}.cPeter Hagervall Tue, 8 Nov 2005 22:18:31 +0000 (23:18 +0100)

sparse fixes for http-{fetch,push}.c

Make a bunch of needlessly global functions static, and replace two
K&R-style declarations.

Signed-off-by: Peter Hagervall <hager@cs.umu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-tag -d <tag>: delete tag <tag>Kai Ruemmler Tue, 8 Nov 2005 10:44:33 +0000 (11:44 +0100)

git-tag -d <tag>: delete tag <tag>

This adds option '-d' to git-tag.sh and documents it.

Signed-off-by: Kai Ruemmler <kai.ruemmler@gmx.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

make tests ignorable with "make -i"Alex Riesen Tue, 8 Nov 2005 09:51:10 +0000 (10:51 +0100)

make tests ignorable with "make -i"

Allow failed tests to be ignored using make's "-i". The patch also
disables parallel make in t/. This doesn't make the testing any
different as before: the tests were run sequentially before.

It also allows to run more tests, ignoring the ones usually failing
just to figure out if something else broke. (Or to ignore plainly
uninteresting situations because of the testing being done on say...
cygwin ;)

Signed-off-by: Junio C Hamano <junkio@cox.net>

fix t5000-tar-tree.sh when $TAR isn't setAlex Riesen Tue, 8 Nov 2005 10:45:15 +0000 (11:45 +0100)

fix t5000-tar-tree.sh when $TAR isn't set

$TAR isn't set everywhere. Provide a default (tar)

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Clean build annoyance.Junio C Hamano Tue, 8 Nov 2005 16:58:52 +0000 (08:58 -0800)

Clean build annoyance.

As Pasky pointed out, building in templates directory showed
list of built template files which was unneeded. This commit
also fixes another build annoyance I recently left in by
accident.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Separate RPMS for programs with non-standard dependencies.Jim Radford Sat, 5 Nov 2005 19:38:02 +0000 (11:38 -0800)

Separate RPMS for programs with non-standard dependencies.

Signed-off-by: Jim Radford <radford@blackbean.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix a couple of obvious and insignificant typo.Junio C Hamano Sat, 5 Nov 2005 07:30:12 +0000 (23:30 -0800)

Fix a couple of obvious and insignificant typo.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Lift the default limit of number of revs.Yaacov Akiba Slama Wed, 2 Nov 2005 21:51:58 +0000 (23:51 +0200)

Lift the default limit of number of revs.

Now that the leak is gone, there is by default no limit of revisions to
import. No more message about leak when the limit (given by the -l
parameter) is reached.

Signed-off-by: Yaacov Akiba Slama <ya@slamail.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Handle a revision that only creates a new tag correctly.Yaacov Akiba Slama Wed, 2 Nov 2005 21:51:57 +0000 (23:51 +0200)

Handle a revision that only creates a new tag correctly.

Fix an error when a svn revision consists only of the creation of a new tag
directory (/tags/this_is_a_tag).

Signed-off-by: Yaacov Akiba Slama <ya@slamail.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Bundle file copies from multiple branches into a merge.Yaacov Akiba Slama Wed, 2 Nov 2005 21:51:57 +0000 (23:51 +0200)

Bundle file copies from multiple branches into a merge.

When copying files and/or directories from several branches in one single
revision, all these branches are used as parents of the commit.

Signed-off-by: Yaacov Akiba Slama <ya@slamail.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

copy_dir becomes copy_path and handles both files and... Yaacov Akiba Slama Wed, 2 Nov 2005 21:51:57 +0000 (23:51 +0200)

copy_dir becomes copy_path and handles both files and directories

The A (Add) and R (Replace) actions handling are unified.

Signed-off-by: Yaacov Akiba Slama <ya@slamail.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Don't output error on changes in the nodes /, /tags... Yaacov Akiba Slama Wed, 2 Nov 2005 21:51:57 +0000 (23:51 +0200)

Don't output error on changes in the nodes /, /tags or /branches

Signed-off-by: Junio C Hamano <junkio@cox.net>

Add node_kind function to differentiate between file... Yaacov Akiba Slama Wed, 2 Nov 2005 21:51:57 +0000 (23:51 +0200)

Add node_kind function to differentiate between file and directory

Signed-off-by: Yaacov Akiba Slama <ya@slamail.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>