gitweb.git
cvsserver: Actually implement --export-allAlex Riesen Sat, 16 Jun 2007 23:52:50 +0000 (01:52 +0200)

cvsserver: Actually implement --export-all

Frank Lichtenheld, Fri, Jun 15, 2007 03:01:53 +0200:
> +test_expect_failure 'req_Root failure (export-all w/o whitelist)' \
> + 'cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1
> + || false'

This does not work, at least for bash in current Ubuntu:

GNU bash, version 3.2.13(1)-release

You have to put "||" on the previous line:

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

Added git-p4 branches command that shows the mapping... Simon Hausmann Wed, 20 Jun 2007 21:10:28 +0000 (23:10 +0200)

Added git-p4 branches command that shows the mapping of perforce depot paths to imported git branches.

Signed-off-by: Simon Hausmann <simon@lst.de>

Warn about conflicting p4 branch mappings and use the... Simon Hausmann Sun, 17 Jun 2007 13:10:24 +0000 (15:10 +0200)

Warn about conflicting p4 branch mappings and use the first one found.

Signed-off-by: Simon Hausmann <simon@lst.de>

Fix the branch mapping detection to be independent... Simon Hausmann Sun, 17 Jun 2007 09:25:34 +0000 (11:25 +0200)

Fix the branch mapping detection to be independent from the order of the "p4 branches" output.

Collect "unknown" source branches separately and register them at the end.

Also added a minor speed up to splitFilesIntoBranches by breaking out of the loop through all branches when it's safe.

Signed-off-by: Simon Hausmann <simon@lst.de>

Fix ALLOC_GROW calls with obsolete semanticsJeff King Sat, 16 Jun 2007 22:43:40 +0000 (18:43 -0400)

Fix ALLOC_GROW calls with obsolete semantics

ALLOC_GROW now expects the 'nr' argument to be "how much you
want" and not "how much you have". This fixes all cases
where we weren't previously adding anything to the 'nr'.

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

Merge branch 'jk/add-empty' into ei/oneline+add-emptyJunio C Hamano Sun, 17 Jun 2007 00:58:28 +0000 (17:58 -0700)

Merge branch 'jk/add-empty' into ei/oneline+add-empty

* jk/add-empty:
builtin-add: simplify (and increase accuracy of) exclude handling
dir_struct: add collect_ignored option

pp_header(): work around possible memory corruptionJohannes Schindelin Fri, 15 Jun 2007 12:19:07 +0000 (13:19 +0100)

pp_header(): work around possible memory corruption

add_user_info() possibly adds way more than just the commit header line.
In fact, it sometimes needs so much more space that there is a buffer
overrun, leading to an ugly crash. For example, the date is printed in its
own line, and usually takes up more space than the equivalent Unix epoch.

So, for good measure, add 80 characters (a full line) to the allocated
space, in addition to the header line length.

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

Fix ALLOC_GROW off-by-oneJeff King Sat, 16 Jun 2007 22:37:39 +0000 (18:37 -0400)

Fix ALLOC_GROW off-by-one

The ALLOC_GROW macro will never let us fill the array completely,
instead allocating an extra chunk if that would be the case. This is
because the 'nr' argument was originally treated as "how much we do have
now" instead of "how much do we want". The latter makes much more
sense because you can grow by more than one item.

This off-by-one never resulted in an error because it meant we were
overly conservative about when to allocate. Any callers which passed
"how much we have now" need to be updated, or they will fail to allocate
enough.

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

Document git log --full-diffJakub Narebski Sat, 16 Jun 2007 19:03:38 +0000 (21:03 +0200)

Document git log --full-diff

Based on description of commit 477f2b41310c4b1040a9e7f72720b9c39d82caf9
"git log --full-diff" adding this option.

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

Document git log --abbrev-commit, as a kind of pretty... Jakub Narebski Sat, 16 Jun 2007 19:03:39 +0000 (21:03 +0200)

Document git log --abbrev-commit, as a kind of pretty option

Documentation taken from paraphrased description of "--abbrev[=<n>]"
diff option, and from description of commit 5c51c985 introducing
this option.

Note that to change number of digits one must use "--abbrev=<n>",
which affects [also] diff output.

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

Use tabs for indenting definition list for options... Jakub Narebski Sat, 16 Jun 2007 19:03:37 +0000 (21:03 +0200)

Use tabs for indenting definition list for options in git-log.txt

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

Document git rev-list --timestampJakub Narebski Sat, 16 Jun 2007 19:03:42 +0000 (21:03 +0200)

Document git rev-list --timestamp

Note that git log does not understand this option yet:

$ git log --timestamp
fatal: unrecognized argument: --timestamp

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

Document git reflog --stale-fixJakub Narebski Sat, 16 Jun 2007 19:03:46 +0000 (21:03 +0200)

Document git reflog --stale-fix

Document --stale-fix, used in "git reflog expire --stale-fix --all"
to remove invalid reflog entries, to fix situation after running
non reflog-aware git-prune from an older git in the presence of
reflogs (see RelNotes-1.5.0.txt).

Based on description of commit 1389d9ddaa68a4cbf5018d88f971b9bbb7aaa3c9
"reflog expire --fix-stale"
which introduced this option.

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

Document git rev-parse --is-inside-git-dirJakub Narebski Sat, 16 Jun 2007 19:03:44 +0000 (21:03 +0200)

Document git rev-parse --is-inside-git-dir

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

Document git read-tree --trivialJakub Narebski Sat, 16 Jun 2007 19:03:45 +0000 (21:03 +0200)

Document git read-tree --trivial

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

Document git rev-list --full-historyJakub Narebski Sat, 16 Jun 2007 19:03:43 +0000 (21:03 +0200)

Document git rev-list --full-history

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

git-p4 fails when cloning a p4 depo.Benjamin Sergeant Fri, 8 Jun 2007 18:13:55 +0000 (11:13 -0700)

git-p4 fails when cloning a p4 depo.

A perforce command with all the files in the repo is generated to get
all the file content.
Here is a patch to break it into multiple successive perforce command
who uses 4K of parameter max, and collect the output for later.

It works, but not for big depos, because the whole perforce depo
content is stored in memory in P4Sync.run(), and it looks like mine is
bigger than 2 Gigs, so I had to kill the process.

[Simon: I added the bit about using SC_ARG_MAX, as suggested by Han-Wen]

Signed-off-by: Benjamin Sergeant <bsergean@gmail.com>
Signed-off-by: Simon Hausmann <simon@lst.de>

Do not use h_errno after connect(2): the function does... Alex Riesen Tue, 12 Jun 2007 20:52:10 +0000 (22:52 +0200)

Do not use h_errno after connect(2): the function does not set it

Randal L. Schwartz noticed compilation problems on SunOS, which made
me look at the code again. The thing is, h_errno is not used by
connect(2), it is only for functions from netdb.h, like gethostbyname.

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

Documentation: update "stale" links for 1.5.2.2Junio C Hamano Sat, 16 Jun 2007 16:10:18 +0000 (09:10 -0700)

Documentation: update "stale" links for 1.5.2.2

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

Fix initial multi-branch import.Simon Hausmann Sat, 16 Jun 2007 11:09:21 +0000 (13:09 +0200)

Fix initial multi-branch import.

The list of existing p4 branches in git wasn't initialized.

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Merge branch 'jc/remote'Junio C Hamano Sat, 16 Jun 2007 08:22:45 +0000 (01:22 -0700)

Merge branch 'jc/remote'

* jc/remote:
git-push: Update description of refspecs and add examples
remote.c: "git-push frotz" should update what matches at the source.
remote.c: fix "git push" weak match disambiguation
remote.c: minor clean-up of match_explicit()
remote.c: refactor creation of new dst ref
remote.c: refactor match_explicit_refs()

Merge branch 'gp/branch'Junio C Hamano Sat, 16 Jun 2007 08:22:43 +0000 (01:22 -0700)

Merge branch 'gp/branch'

* gp/branch:
git-branch: cleanup config file when deleting branches

Merge branch 'fl/cvsserver'Junio C Hamano Sat, 16 Jun 2007 08:22:38 +0000 (01:22 -0700)

Merge branch 'fl/cvsserver'

* fl/cvsserver:
cvsserver: Actually implement --export-all
cvsserver: Let --base-path and pserver get along just fine
cvsserver: Add some useful commandline options

Merge branch 'lh/submodule'Junio C Hamano Sat, 16 Jun 2007 08:22:35 +0000 (01:22 -0700)

Merge branch 'lh/submodule'

* lh/submodule:
gitmodules(5): remove leading period from synopsis
Add gitmodules(5)
git-submodule: give submodules proper names
Rename sections from "module" to "submodule" in .gitmodules
git-submodule: remember to checkout after clone
t7400: barf if git-submodule removes or replaces a file

Merge branch 'maint' to sync with GIT 1.5.2.2Junio C Hamano Sat, 16 Jun 2007 08:22:10 +0000 (01:22 -0700)

Merge branch 'maint' to sync with GIT 1.5.2.2

git-svn: avoid string eval for defining functionsSam Vilain Fri, 15 Jun 2007 03:43:59 +0000 (15:43 +1200)

git-svn: avoid string eval for defining functions

You don't need to use string eval to define new functions; assigning a
code reference to the target symbol table is enough.

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

Fix pushing to a pattern with no dstDaniel Barkalow Fri, 15 Jun 2007 14:22:37 +0000 (10:22 -0400)

Fix pushing to a pattern with no dst

Refspecs with no colons are left with no dst value, because they are
interepreted differently for fetch and push. For push, they mean to
reuse the src side. Fix this for patterns.

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

GIT 1.5.2.2 v1.5.2.2Junio C Hamano Sat, 16 Jun 2007 06:58:18 +0000 (23:58 -0700)

GIT 1.5.2.2

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

Documentation: adjust to AsciiDoc 8Junio C Hamano Fri, 15 Jun 2007 05:20:16 +0000 (22:20 -0700)

Documentation: adjust to AsciiDoc 8

It turns out that the attribute definition we have had for a
long time to hide "^" character from AsciiDoc 7 was not honored
by AsciiDoc 8 even under "-a asciidoc7compatible" mode. There is
a similar breakage with the "compatible" mode with + characters.

The double colon at the end of definition list term needs
to be attached to the term, without a whitespace. After this
minimum fixups, AsciiDoc 8 (I used 8.2.1 on Debian) with
compatibility mode seems to produce reasonably good results.

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

Avoid diff cost on "git log -z"Junio C Hamano Sat, 16 Jun 2007 06:48:35 +0000 (23:48 -0700)

Avoid diff cost on "git log -z"

Johannes and Marco discovered that "git log -z" spent cycles in diff even
though there is no need to actually compute diffs.

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

git-branch --track: fix tracking branch computation.Junio C Hamano Sat, 16 Jun 2007 06:35:32 +0000 (23:35 -0700)

git-branch --track: fix tracking branch computation.

The original code did not take hierarchical branch names into account at all.

[jc: cherry-picked 11f68d9 from 'master']

Tested-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

$EMAIL is a last resort fallback, as it's system-wide.Junio C Hamano Sat, 16 Jun 2007 06:33:06 +0000 (23:33 -0700)

$EMAIL is a last resort fallback, as it's system-wide.

$EMAIL is a system-wide setup that is used for many many many
applications. If the git user chose a specific user.email setup,
then _this_ should be honoured rather than $EMAIL.

[jc: cherry-picked ec563e8 from 'master']

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

merge-recursive: refuse to merge binary filesJohannes Schindelin Tue, 5 Jun 2007 02:36:49 +0000 (03:36 +0100)

merge-recursive: refuse to merge binary files

[jc: cherry-picked 9f30855 from 'master']

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

Move buffer_is_binary() to xdiff-interface.hJohannes Schindelin Tue, 5 Jun 2007 02:36:11 +0000 (03:36 +0100)

Move buffer_is_binary() to xdiff-interface.h

We already have two instances where we want to determine if a buffer
contains binary data as opposed to text.

[jc: cherry-picked 6bfce93e from 'master']

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

Add a local implementation of hstrerror for the system... Alex Riesen Wed, 13 Jun 2007 18:54:32 +0000 (20:54 +0200)

Add a local implementation of hstrerror for the system which do not have it

The function converts the value of h_errno (last error of name
resolver library, see netdb.h).
One of systems which supposedly do not have the function is SunOS.
POSIX does not mandate its presence.

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

gitmodules(5): remove leading period from synopsisLars Hjemli Wed, 13 Jun 2007 22:01:10 +0000 (00:01 +0200)

gitmodules(5): remove leading period from synopsis

Asciidoc treats a line starting with a period followed by a title as a
blocktitle element. My introduction of gitmodules(5) unfortunatly broke
the documentation build process due to this processing, since it made
asciidoc generate an illegal (empty) synopsis element. Removing the leading
period fixes the problem and also makes gitmodules(5) use the same synopsis
notation as gitattributes(5).

Noticed-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Generated spec file to be ignored is named git.spec... Jakub Narebski Wed, 13 Jun 2007 23:12:20 +0000 (01:12 +0200)

Generated spec file to be ignored is named git.spec and not git-core.spec

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

cvsserver: Actually implement --export-allFrank Lichtenheld Fri, 15 Jun 2007 01:01:53 +0000 (03:01 +0200)

cvsserver: Actually implement --export-all

Embarrassing bug number two in my options patch.

Also enforce that --export-all is only ever used together with an
explicit whitelist. Otherwise people might export every git repository
on the whole system without realising.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cvsserver: Let --base-path and pserver get along just... Frank Lichtenheld Fri, 15 Jun 2007 01:01:52 +0000 (03:01 +0200)

cvsserver: Let --base-path and pserver get along just fine

Embarassing bug number one in my options patch.

Since the code for --base-path support rewrote
the cvsroot value after comparing it with a possible
existing value (i.e. from pserver authentication)
the check always failed.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: allow dcommit to retain local merge informationEric Wong Wed, 13 Jun 2007 09:23:28 +0000 (02:23 -0700)

git-svn: allow dcommit to retain local merge information

dcommit will still rewrite the HEAD commit and the history of the first
parents of each HEAD~1, HEAD~2, HEAD~3 as it always has.

However, any merge parents (HEAD^2, HEAD^^2, HEAD~2^2) will now be
preserved when the new HEAD and HEAD~[0-9]+ commits are rewritten to SVN
with dcommit. Commits written to SVN will still not have any merge
information besides anything in the commit message.

Thanks to Joakim Tjernlund, Junio C Hamano and Steven Grimm
for explanations, feedback, examples and test case.

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

git-svn: reduce stat() calls for a backwards compatibil... Eric Wong Wed, 13 Jun 2007 09:37:05 +0000 (02:37 -0700)

git-svn: reduce stat() calls for a backwards compatibility check

Also, this fixes a bug where in an odd case a remote named
"config" could get renamed to ".metadata".

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

git-svn: test for creating new directories over svn://Eric Wong Wed, 13 Jun 2007 09:37:04 +0000 (02:37 -0700)

git-svn: test for creating new directories over svn://

As reported by Matthieu Moy, this is causing svnserve to
terminate connections, because it segfaults.

This test is disabled by default and can be enabled by setting
SVNSERVE_PORT to an unbound (for 127.0.0.1) TCP port in the
environment (in addition to SVN_TESTS=1). I'm not comfortable
with having a test start a daemon by default and take up a port
that could potentially stay running if the test failed.

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

git-svn: cleanup: factor out longest_common_path()... Eric Wong Wed, 13 Jun 2007 09:37:03 +0000 (02:37 -0700)

git-svn: cleanup: factor out longest_common_path() function

I hadn't looked at this code in a while and had to read this
again to figure out what it did. To avoid having to do this
again in the future, I just gave gave the hunk a descriptive
name.

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

gitview: run blame with -C -CAneesh Kumar K.V Wed, 13 Jun 2007 08:46:16 +0000 (14:16 +0530)

gitview: run blame with -C -C

pass -C -C option to git-blame so that blame browsing
works when the data is copied over from other files.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitview: Fix the blame interface.Aneesh Kumar K.V Wed, 13 Jun 2007 08:46:15 +0000 (14:16 +0530)

gitview: Fix the blame interface.

The async reading from the pipe was skipping some of the
input lines. Fix the same by making sure that we add the
partial content of the previous read to the newly read
data.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

More staticJunio C Hamano Wed, 13 Jun 2007 08:42:05 +0000 (01:42 -0700)

More static

There still are quite a few symbols that ought to be static.

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

-Wold-style-definition fixJunio C Hamano Wed, 13 Jun 2007 08:22:51 +0000 (01:22 -0700)

-Wold-style-definition fix

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

Makefile: allow generating git.o for debugging purposesJunio C Hamano Wed, 13 Jun 2007 08:28:21 +0000 (01:28 -0700)

Makefile: allow generating git.o for debugging purposes

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

Makefile: common-cmds.h depends on generate-cmdlist... Junio C Hamano Wed, 13 Jun 2007 09:00:01 +0000 (02:00 -0700)

Makefile: common-cmds.h depends on generate-cmdlist.sh script

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

builtin-add: simplify (and increase accuracy of) exclud... Jeff King Tue, 12 Jun 2007 21:42:14 +0000 (23:42 +0200)

builtin-add: simplify (and increase accuracy of) exclude handling

Previously, the code would always set up the excludes, and then manually
pick through the pathspec we were given, assuming that non-added but
existing paths were just ignored. This was mostly correct, but would
erroneously mark a totally empty directory as 'ignored'.

Instead, we now use the collect_ignored option of dir_struct, which
unambiguously tells us whether a path was ignored. This simplifies the
code, and means empty directories are now just not mentioned at all.

Furthermore, we now conditionally ask dir_struct to respect excludes,
depending on whether the '-f' flag has been set. This means we don't have
to pick through the result, checking for an 'ignored' flag; ignored entries
were either added or not in the first place.

We can safely get rid of the special 'ignored' flags to dir_entry, which
were not used anywhere else.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

dir_struct: add collect_ignored optionJeff King Mon, 11 Jun 2007 13:39:50 +0000 (09:39 -0400)

dir_struct: add collect_ignored option

When set, this option will cause read_directory to keep
track of which entries were ignored. While this shouldn't
effect functionality in most cases, it can make warning
messages to the user much more useful.

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

Extend --pretty=oneline to cover the first paragraph,Junio C Hamano Tue, 12 Jun 2007 05:10:55 +0000 (22:10 -0700)

Extend --pretty=oneline to cover the first paragraph,

so that an ugly commit message like this can be
handled sanely.

Currently, --pretty=oneline and --pretty=email (hence
format-patch) take and use only the first line of the commit log
message. This changes them to:

- Take the first paragraph, where the definition of the first
paragraph is "skip all blank lines from the beginning, and
then grab everything up to the next empty line".

- Replace all line breaks with a whitespace.

This change would not affect a well-behaved commit message that
adheres to the convention of "single line summary, a blank line,
and then body of message", as its first paragraph always
consists of a single line. Commit messages from different
culture, such as the ones imported from CVS/SVN, can however get
chomped with the existing behaviour at the first linebreak in
the middle of sentence right now, which would become much easier
to see with this change.

The Subject: and --pretty=oneline output would become very long
and unsightly for non-conforming commits, but their messages are
already ugly anyway, and thischange at least avoids the loss of
information.

The Subject: line from a multi-line paragraph is folded using
RFC2822 line folding rules at the places where line breaks were
in the original.

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

Lift 16kB limit of log message outputJunio C Hamano Mon, 11 Jun 2007 07:34:54 +0000 (00:34 -0700)

Lift 16kB limit of log message output

Traditionally we had 16kB limit when formatting log messages for
output, because it was easier to arrange for the caller to have
a reasonably big buffer and pass it down without ever worrying
about reallocating.

This changes the calling convention of pretty_print_commit() to
lift this limit. Instead of the buffer and remaining length, it
now takes a pointer to the pointer that points at the allocated
buffer, and another pointer to the location that stores the
allocated length, and reallocates the buffer as necessary.

To support the user format, the error return of interpolate()
needed to be changed. It used to return a bool telling "Ok the
result fits", or "Sorry, I had to truncate it". Now it returns
0 on success, and returns the size of the buffer it wants in
order to fit the whole result.

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

Merge branch 'jc/blame' (early part)Junio C Hamano Wed, 13 Jun 2007 07:22:40 +0000 (00:22 -0700)

Merge branch 'jc/blame' (early part)

* 'jc/blame' (early part):
git-blame -w: ignore whitespace
git-blame: do not indent with spaces.

make git barf when an alias changes environment variablesMatthias Lederhofer Fri, 8 Jun 2007 20:57:55 +0000 (22:57 +0200)

make git barf when an alias changes environment variables

Aliases changing environment variables (GIT_DIR or
GIT_WORK_TREE) can cause problems:
git has to use GIT_DIR to read the aliases from the config.
After running handle_options for the alias the options of the
alias may have changed environment variables. Depending on
the implementation of setenv the memory location obtained
through getenv earlier may contain the old value or the new
value (or even be used for something else?). To avoid these
problems git errors out if an alias uses any option which
changes environment variables.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refactor dir_add_nameJeff King Mon, 11 Jun 2007 13:39:44 +0000 (09:39 -0400)

refactor dir_add_name

This is in preparation for keeping two entry lists in the
dir object.

This patch adds and uses the ALLOC_GROW() macro, which
implements the commonly used idiom of growing a dynamic
array using the alloc_nr function (not just in dir.c, but
everywhere).

We also move creation of a dir_entry to dir_entry_new.

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

git-remote show: Also shorten non-fast-forward refs... Johannes Sixt Sat, 9 Jun 2007 20:34:16 +0000 (22:34 +0200)

git-remote show: Also shorten non-fast-forward refs in the 'push' listing

'git-remote show remote-name' lists the refs that are pushed to the remote
by showing the 'Push' line from the config file. But before showing it,
it shortened 'refs/heads/here:refs/heads/there' to 'here:there'. However,
if the Push line is prefixed with a plus, the ref was not shortened.

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

gitweb: change filename/directory name of snapshotsMatthias Lederhofer Thu, 7 Jun 2007 09:27:08 +0000 (11:27 +0200)

gitweb: change filename/directory name of snapshots

/.git or .git is removed from the project name and the
basename of the remaining path is used as the beginning of
the filename and as the directory in the archive.

The regexp will actually not strip off /.git or .git if there
wouldn't be anything left after removing it.

Currently the full project name is used as directory in the
archive and the basename is used as filename. For example a
repository named foo/bar/.git will have a archive named
.git-<version>.* and extract to foo/bar/.git. With this patch
the file is named bar-<version>.* and extracts to bar.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Don't dereference a strdup-returned NULLJim Meyering Tue, 12 Jun 2007 20:59:21 +0000 (22:59 +0200)

Don't dereference a strdup-returned NULL

There are only a dozen or so uses of strdup in all of git.
Of those, most seem ok, but this one isn't:

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

Merge branch 'maint'Junio C Hamano Wed, 13 Jun 2007 04:05:09 +0000 (21:05 -0700)

Merge branch 'maint'

* maint:

Merge branch 'aw/cvs'Junio C Hamano Wed, 13 Jun 2007 04:04:52 +0000 (21:04 -0700)

Merge branch 'aw/cvs'

* aw/cvs:
cvsimport: add <remote>/HEAD reference in separate remotes more
cvsimport: update documentation to include separate remotes option
cvsimport: add support for new style remote layout

Merge branch 'ep/cvstag'Junio C Hamano Wed, 13 Jun 2007 04:01:27 +0000 (21:01 -0700)

Merge branch 'ep/cvstag'

* ep/cvstag:
Use git-tag in git-cvsimport

Merge branch 'ar/clone' into maintJunio C Hamano Wed, 13 Jun 2007 03:48:31 +0000 (20:48 -0700)

Merge branch 'ar/clone' into maint

* ar/clone:
Fix clone to setup the origin if its name ends with .git

Merge branch 'sv/objfixes' into maintJunio C Hamano Wed, 13 Jun 2007 03:48:21 +0000 (20:48 -0700)

Merge branch 'sv/objfixes' into maint

* sv/objfixes:
Don't assume tree entries that are not dirs are blobs

Only use double quotes on WindowsMarius Storm-Olsen Tue, 12 Jun 2007 13:27:52 +0000 (15:27 +0200)

Only use double quotes on Windows

Signed-off-by: Marius Storm-Olsen <mstormo_git@storm-olsen.com>

Fix git-p4 rebase to detect the correct upstream branch... Simon Hausmann Tue, 12 Jun 2007 12:34:46 +0000 (14:34 +0200)

Fix git-p4 rebase to detect the correct upstream branch instead of unconditionally
always rebasing on top of remotes/p4/master

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Moved the code from git-p4 submit to figure out the... Simon Hausmann Tue, 12 Jun 2007 12:31:59 +0000 (14:31 +0200)

Moved the code from git-p4 submit to figure out the upstream branch point
into a separate helper method.

Signed-off-by: Simon Hausmann <shausman@trolltech.com>

Add gitmodules(5)Lars Hjemli Tue, 12 Jun 2007 07:05:21 +0000 (09:05 +0200)

Add gitmodules(5)

This adds documentation for the .gitmodules file.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule: give submodules proper namesLars Hjemli Mon, 11 Jun 2007 19:12:24 +0000 (21:12 +0200)

git-submodule: give submodules proper names

This changes the way git-submodule uses .gitmodules: Subsections no longer
specify the submodule path, they now specify the submodule name. The
submodule path is found under the new key "submodule.<name>.path", which is
a required key.

With this change a submodule can be moved between different 'checkout paths'
without upsetting git-submodule.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Rename sections from "module" to "submodule" in .gitmodulesLars Hjemli Mon, 11 Jun 2007 19:12:23 +0000 (21:12 +0200)

Rename sections from "module" to "submodule" in .gitmodules

Rename [module] to [submodule], so that it would be more
forward compatible with the proposed extension by harmonizing
the section names used in .gitmodules and .git/config.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule: remember to checkout after cloneLars Hjemli Mon, 11 Jun 2007 19:12:22 +0000 (21:12 +0200)

git-submodule: remember to checkout after clone

After the initial clone of a submodule, no files would be checked out in
the submodule directory if the submodule HEAD was equal to the SHA-1
specified in the index of the containing repository. This fixes the problem
by simply ignoring submodule HEAD for a fresh clone.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7400: barf if git-submodule removes or replaces a... Lars Hjemli Mon, 11 Jun 2007 19:12:21 +0000 (21:12 +0200)

t7400: barf if git-submodule removes or replaces a file

The test for an unmolested file wouldn't fail properly if the file had been
removed or replaced by something other than a regular file. This fixes it.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach diff to imply --find-copies-harder upon -C -CJohannes Schindelin Mon, 11 Jun 2007 20:12:19 +0000 (21:12 +0100)

Teach diff to imply --find-copies-harder upon -C -C

Earlier, a second "-C" on the command line had no effect.
But "--find-copies-harder" is so long to type, let's make doubled -C
enable that option. It is in line with how "git blame" handles such
doubled options to mean "work harder".

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

Remove trailing slash from $(template_dir).Johannes Sixt Mon, 11 Jun 2007 09:10:47 +0000 (11:10 +0200)

Remove trailing slash from $(template_dir).

All the other directory location variables do not have the trailing
slash.

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

Avoid double-slash in path names that depend on $(share... Johannes Sixt Mon, 11 Jun 2007 08:02:17 +0000 (10:02 +0200)

Avoid double-slash in path names that depend on $(sharedir).

Recent git-gui has the ability to determine the location of its library
files relative to the --exec-dir. Its Makefile enables this capability
depending on the install paths that are specified. However, without this
fix there is an extra slash in a path specification, so that the Makefile
does not recognize the equivalence of two paths that it compares.

A side-effect is that all "standard" builds (which do not set $(sharedir)
explicitly) now exploit above mentioned gut-gui feature.

Another side-effect is that an ugly compiled-in double-slash in
$(template_dir) is avoided.

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

Merge branch 'lh/submodule'Junio C Hamano Tue, 12 Jun 2007 07:17:26 +0000 (00:17 -0700)

Merge branch 'lh/submodule'

* lh/submodule:
git-submodule: clone during update, not during init
git-submodule: move cloning into a separate function

Merge branch 'maint'Junio C Hamano Tue, 12 Jun 2007 07:15:16 +0000 (00:15 -0700)

Merge branch 'maint'

* maint:
Unquote From line from patch before comparing with given from address.
git-cherry: Document 'limit' command-line option

Merge branch 'master' of git://repo.or.cz/git-guiJunio C Hamano Tue, 12 Jun 2007 07:14:47 +0000 (00:14 -0700)

Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
git-gui: Save geometry before the window layout is damaged
git-gui: Give amend precedence to HEAD over MERGE_MSG
git-gui: Include 'war on whitespace' fixes from git.git

Unquote From line from patch before comparing with... Kristian Høgsberg Mon, 11 Jun 2007 17:04:40 +0000 (13:04 -0400)

Unquote From line from patch before comparing with given from address.

This makes --suppress-from actually work when you're unfortunate enough
to have non-ASCII in your name. Also, if there's a match use the optionally
RFC2047 quoted version from the email.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-cherry: Document 'limit' command-line optionLuiz Fernando N. Capitulino Mon, 11 Jun 2007 12:56:56 +0000 (09:56 -0300)

git-cherry: Document 'limit' command-line option

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' of git://repo.or.cz/git-gui into... Junio C Hamano Tue, 12 Jun 2007 07:05:24 +0000 (00:05 -0700)

Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
git-gui: Save geometry before the window layout is damaged
git-gui: Give amend precedence to HEAD over MERGE_MSG
git-gui: Include 'war on whitespace' fixes from git.git

Merge branch 'maint'Shawn O. Pearce Tue, 12 Jun 2007 03:58:11 +0000 (23:58 -0400)

Merge branch 'maint'

* maint:
git-gui: Save geometry before the window layout is damaged
git-gui: Give amend precedence to HEAD over MERGE_MSG

git-gui: Save geometry before the window layout is... Shawn O. Pearce Tue, 12 Jun 2007 03:52:43 +0000 (23:52 -0400)

git-gui: Save geometry before the window layout is damaged

Because Tk does not assure us the order that it will process
children in before it destroys the main toplevel we cannot safely
save our geometry data during a "bind . <Destroy>" event binding.
The geometry may have already changed as a result of a one or
more children being removed from the layout. This was pointed
out in gitk by Mark Levedahl, and patched over there by commit
b6047c5a8166a71e01c6b63ebbb67c6894d95114.

So we now also use "wm protocol . WM_DELETE_WINDOW" to detect when
the window is closed by the user, and forward that close event to
our main do_quit routine.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Give amend precedence to HEAD over MERGE_MSGShawn O. Pearce Mon, 11 Jun 2007 23:39:55 +0000 (19:39 -0400)

git-gui: Give amend precedence to HEAD over MERGE_MSG

Apparently git-commit.sh (the command line commit user interface in
core Git) always gives precedence to the prior commit's message if
`commit --amend` is used and a $GIT_DIR/MERGE_MSG file also exists.

We actually were doing the same here in git-gui, but the amended
message got lost if $GIT_DIR/MERGE_MSG already existed because
we started a rescan immediately after loading the prior commit's
body into the edit buffer. When that happened the rescan found
MERGE_MSG existed and replaced the commit message buffer with the
contents of that file. This meant the user never saw us pick up
the commit message of the prior commit we are about to replace.

Johannes Sixt <J.Sixt@eudaptics.com> found this bug in git-gui by
running `git cherry-pick -n $someid` and then trying to amend the
prior commit in git-gui, thus combining the contents of $someid
with the contents of HEAD, and reusing the commit message of HEAD,
not $someid. With the recent changes to make cherry-pick use the
$GIT_DIR/MERGE_MSG file Johannes saw git-gui pick up the message
of $someid, not HEAD. Now we always use HEAD if we are amending.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'maint'Shawn O. Pearce Mon, 11 Jun 2007 23:06:15 +0000 (19:06 -0400)

Merge branch 'maint'

* maint:
git-gui: Include 'war on whitespace' fixes from git.git

git-gui: Include 'war on whitespace' fixes from git.gitShawn O. Pearce Mon, 11 Jun 2007 23:06:10 +0000 (19:06 -0400)

git-gui: Include 'war on whitespace' fixes from git.git

Earlier git.git applied a large "war on whitespace" patch that was
created using 'apply --whitespace=strip'. Unfortunately a few of
git-gui's own files got caught in the mix and were also cleaned up.
That was a6080a0a44d5ead84db3dabbbc80e82df838533d.

This patch is needed in git-gui.git to reapply those exact same
changes here, otherwise our version generator script is unable to
obtain our version number from git-describe when we are hosted in
the git.git repository.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-p4 submit: Fix missing quotes around p4 commands... Simon Hausmann Mon, 11 Jun 2007 21:40:25 +0000 (23:40 +0200)

git-p4 submit: Fix missing quotes around p4 commands to make them work with spaces in filenames

Noticed by Alex Riesen

Signed-off-by: Simon Hausmann <simon@lst.de>

Mention remotes/p4/master also in the documentation.Simon Hausmann Mon, 11 Jun 2007 21:30:23 +0000 (23:30 +0200)

Mention remotes/p4/master also in the documentation.

Signed-off-by: Simon Hausmann <simon@lst.de>

Provide some information for single branch imports... Simon Hausmann Mon, 11 Jun 2007 21:28:03 +0000 (23:28 +0200)

Provide some information for single branch imports where the commits go

Signed-off-by: Simon Hausmann <simon@lst.de>

git-p4: check for existence of repo dir before trying... Kevin Green Mon, 11 Jun 2007 20:48:07 +0000 (16:48 -0400)

git-p4: check for existence of repo dir before trying to create

When using git-p4 in this manner:

git-p4 clone //depot/path/project myproject

If "myproject" already exists as a dir, but not a valid git repo, it fails
to create the directory.

Signed-off-by: Kevin Green <Kevin.Green@morganstanley.com>

Write out the options tag in the log message of imports... Simon Hausmann Mon, 11 Jun 2007 08:01:58 +0000 (10:01 +0200)

Write out the options tag in the log message of imports only if we actually have
options

Signed-off-by: Simon Hausmann <simon@lst.de>

Fix support for explicit disabling of syncing with... Simon Hausmann Mon, 11 Jun 2007 07:59:27 +0000 (09:59 +0200)

Fix support for explicit disabling of syncing with the origin

Signed-off-by: Simon Hausmann <simon@lst.de>

Merge branch 'master' of git://repo.or.cz/git-guiJunio C Hamano Mon, 11 Jun 2007 07:52:43 +0000 (00:52 -0700)

Merge branch 'master' of git://repo.or.cz/git-gui

* 'master' of git://repo.or.cz/git-gui:
git-gui: Internalize symbolic-ref HEAD reading logic
git-gui: Expose the merge.diffstat configuration option
git-gui: Allow users to delete remote branches
git-gui: Allow users to rename branches through 'branch -m'
git-gui: Disable tearoff menus on Windows, Mac OS X
git-gui: Provide fatal error if library is unavailable
git-gui: Enable verbose Tcl loading earlier
git-gui: Show the git-gui library path in 'About git-gui'
git-gui: GUI support for running 'git remote prune <name>'
git gui 0.8.0

Merge branch 'maint'Junio C Hamano Mon, 11 Jun 2007 07:52:37 +0000 (00:52 -0700)

Merge branch 'maint'

* maint: (46 commits)
git-gui: Changed blame header bar background to match main window
git-gui: Favor the original annotations over the recent ones
git-gui: Improve our labeling of blame annotation types
git-gui: Use three colors for the blame viewer background
git-gui: Jump to original line in blame viewer
git-gui: Display both commits in our tooltips
git-gui: Run blame twice on the same file and display both outputs
git-gui: Display the "Loading annotation..." message in italic
git-gui: Rename fields in blame viewer to better descriptions
git-gui: Label the uncommitted blame history entry
git-gui: Switch internal blame structure to Tcl lists
git-gui: Cleanup redundant column management in blame viewer
git-gui: Better document our blame variables
git-gui: Remove unused commit_list from blame viewer
git-gui: Automatically expand the line number column as needed
git-gui: Make the line number column slightly wider in blame
git-gui: Use lighter colors in blame view
git-gui: Remove unnecessary space between columns in blame viewer
git-gui: Remove the loaded column from the blame viewer
git-gui: Clip the commit summaries in the blame history menu
...

Merge branch 'maint' of git://repo.or.cz/git-gui into... Junio C Hamano Mon, 11 Jun 2007 07:51:39 +0000 (00:51 -0700)

Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui: (46 commits)
git-gui: Changed blame header bar background to match main window
git-gui: Favor the original annotations over the recent ones
git-gui: Improve our labeling of blame annotation types
git-gui: Use three colors for the blame viewer background
git-gui: Jump to original line in blame viewer
git-gui: Display both commits in our tooltips
git-gui: Run blame twice on the same file and display both outputs
git-gui: Display the "Loading annotation..." message in italic
git-gui: Rename fields in blame viewer to better descriptions
git-gui: Label the uncommitted blame history entry
git-gui: Switch internal blame structure to Tcl lists
git-gui: Cleanup redundant column management in blame viewer
git-gui: Better document our blame variables
git-gui: Remove unused commit_list from blame viewer
git-gui: Automatically expand the line number column as needed
git-gui: Make the line number column slightly wider in blame
git-gui: Use lighter colors in blame view
git-gui: Remove unnecessary space between columns in blame viewer
git-gui: Remove the loaded column from the blame viewer
git-gui: Clip the commit summaries in the blame history menu
...

Fix depot-paths encoding for multi-path imports (don... Simon Hausmann Mon, 11 Jun 2007 06:54:45 +0000 (08:54 +0200)

Fix depot-paths encoding for multi-path imports (don't split up //depot/path/foo)

Signed-off-by: Simon Hausmann <simon@lst.de>

Fix project name guessingSimon Hausmann Mon, 11 Jun 2007 06:50:57 +0000 (08:50 +0200)

Fix project name guessing

Signed-off-by: Simon Hausmann <simon@lst.de>

Merge branch 'maint'Shawn O. Pearce Mon, 11 Jun 2007 06:14:21 +0000 (02:14 -0400)

Merge branch 'maint'

* maint: (38 commits)
git-gui: Changed blame header bar background to match main window
git-gui: Favor the original annotations over the recent ones
git-gui: Improve our labeling of blame annotation types
git-gui: Use three colors for the blame viewer background
git-gui: Jump to original line in blame viewer
git-gui: Display both commits in our tooltips
git-gui: Run blame twice on the same file and display both outputs
git-gui: Display the "Loading annotation..." message in italic
git-gui: Rename fields in blame viewer to better descriptions
git-gui: Label the uncommitted blame history entry
git-gui: Switch internal blame structure to Tcl lists
git-gui: Cleanup redundant column management in blame viewer
git-gui: Better document our blame variables
git-gui: Remove unused commit_list from blame viewer
git-gui: Automatically expand the line number column as needed
git-gui: Make the line number column slightly wider in blame
git-gui: Use lighter colors in blame view
git-gui: Remove unnecessary space between columns in blame viewer
git-gui: Remove the loaded column from the blame viewer
git-gui: Clip the commit summaries in the blame history menu
...

gitweb: '--cc' for merges in 'commitdiff' viewJakub Narebski Fri, 8 Jun 2007 11:33:28 +0000 (13:33 +0200)

gitweb: '--cc' for merges in 'commitdiff' view

Allow choosing between '-c' (combined diff) and '--cc' (compact
combined) diff format in 'commitdiff' view for merge (multiparent)
commits. Default is now '--cc'.

In the bottom part of navigation bar there is link allowing to change
diff format: "combined" for '-c' (when using '--cc') and "compact" for
'--cc' (when using '-c'), just on the right of "raw" link to
'commitdiff_plain" view.

About patchset part of diff --cc output: the difftree (whatchanged
table) has "patch" links to anchors to individual patches (on the same
page). The --cc option further compresses the patch output by
omitting some hunks; when this optimization makes all hunks disappear,
the patch is not shown (like in any other "empty diff" case). But the
fact that patch has been simplified out is not reflected in the raw
(difftree) part of diff output; the raw part is the same for '-c' and
'--cc' options. As correcting difftree is rather out of the question,
as it would require scanning patchset part before writing out
difftree, we add "Simple merge" empty diffs as a place to have anchor
to in place of those simplified out and removed patches.

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

gitweb: Add links to blobdiffs in from-file/to-file... Jakub Narebski Fri, 8 Jun 2007 11:32:44 +0000 (13:32 +0200)

gitweb: Add links to blobdiffs in from-file/to-file header for merges

Add links to diff to file ('blobdiff' view) for each of individual
versions of the file in a merge commit to the from-file/to-file header
in the patch part of combined 'commitdiff' view for merges.

The from-file/to-file header for combined diff now looks like:

--- _1_/_git-gui/git-gui.sh_
--- _2_/_git-gui.sh_
+++ b/_git-gui/git-gui.sh_

where _<filename>_ link is link to appropriate version of a file
('blob' view), and _<n>_ is link to respective diff to mentioned
version of a file ('blobdiff' view). There is even hint provided in
the form of title attribute.

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