gitweb.git
Increase pack.depth default to 50Theodore Ts'o Tue, 8 May 2007 13:28:26 +0000 (09:28 -0400)

Increase pack.depth default to 50

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add pack.depth option to git-pack-objects.Theodore Ts'o Tue, 8 May 2007 13:28:26 +0000 (09:28 -0400)

Add pack.depth option to git-pack-objects.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Use .git/MERGE_MSG in cherry-pick/revertShawn O. Pearce Tue, 8 May 2007 02:57:15 +0000 (22:57 -0400)

Use .git/MERGE_MSG in cherry-pick/revert

Rather than storing the temporary commit message data in .msg (in
the working tree) we now store the message data in .git/MERGE_MSG.

By storing the message in the .git/ directory we are sure we will
never have a collision with a user file, should a project actually
have a ".msg" file in their top level tree. We also don't need to
worry about leaving this stale file behind during a `reset --hard`
and have it show up in the output of status.

We are using .git/MERGE_MSG here to store the temporary message as
it is an already established convention between git-merge, git-am
and git-rebase that git-commit will default the user's edit buffer
to the contents of .git/MERGE_MSG. If the user is going to need
to resolve this commit or wants to edit the message on their own
prepping that file with the desired message "just works".

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Wed, 9 May 2007 05:46:56 +0000 (22:46 -0700)

Merge branch 'maint'

* maint:
GIT v1.5.1.4
Add howto files to rpm packages.
wcwidth redeclaration
user-manual: fix clone and fetch typos

GIT v1.5.1.4 v1.5.1.4Junio C Hamano Wed, 9 May 2007 05:10:56 +0000 (22:10 -0700)

GIT v1.5.1.4

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

Add howto files to rpm packages.Quy Tonthat Tue, 8 May 2007 14:19:41 +0000 (00:19 +1000)

Add howto files to rpm packages.

RPM packages did not include howto files which causes broken
links in howto-index.html

Signed-off-by: Quy Tonthat <qtonthat@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

wcwidth redeclarationAmos Waterland Tue, 8 May 2007 04:46:08 +0000 (00:46 -0400)

wcwidth redeclaration

Build fails for git 1.5.1.3 on AIX, with the message:

utf8.c:66: error: conflicting types for 'wcwidth'
/.../lib/gcc/powerpc-ibm-aix5.3.0.0/4.0.3/include/string.h:266: error: previous declaration of 'wcwidth' was here

Fix this by renaming our static variant to our own name.

Signed-off-by: Amos Waterland <apw@us.ibm.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

user-manual: fix clone and fetch typosJ. Bruce Fields Tue, 8 May 2007 03:34:26 +0000 (23:34 -0400)

user-manual: fix clone and fetch typos

More typo fixes from Santi Béjar, plus a couple other mistakes I noticed
along the way.

Cc: Santi Béjar <sbejar@gmail.com>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Remove duplicate exports from MakefileShawn O. Pearce Tue, 8 May 2007 03:53:06 +0000 (23:53 -0400)

Remove duplicate exports from Makefile

We already export these variables earlier in the Makefile, right
after they were 'declared'. There is no point in doing so again.

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

Merge branch 'master' of git://repo.or.cz/git-guiShawn O. Pearce Tue, 8 May 2007 03:36:31 +0000 (23:36 -0400)

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

* 'master' of git://repo.or.cz/git-gui:
git-gui: Use vi-like keys in merge dialog
git-gui: Include commit id/subject in merge choices
git-gui: Show all possible branches for merge
git-gui: Move merge support into a namespace
git-gui: Allow vi keys to scroll the diff/blame regions
git-gui: Move console procs into their own namespace
git-gui: Refactor into multiple files to save my sanity
git-gui: Track our own embedded values and rebuild when they change
git-gui: Refactor to use our git proc more often
git-gui: Use option database defaults to set the font
git-gui: Cleanup common font handling for font_ui
git-gui: Correct line wrapping for too many branch message
git-gui: Warn users before making an octopus merge
git-gui: Include the subject in the status bar after commit

Also perform an evil merge change to update Git's main Makefile to
pass the proper options down into git-gui now that it depends on
reasonable values for 'sharedir' and 'TCL_PATH'.

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

git-gui: Use vi-like keys in merge dialog gitgui-0.7.0-rc1Shawn O. Pearce Sat, 5 May 2007 06:28:41 +0000 (02:28 -0400)

git-gui: Use vi-like keys in merge dialog

Since we support vi-like keys for scrolling in other UI contexts
we can easily do so here too. Tk's handy little `event generate'
makes this a lot easier than I thought it would be. We may want
to go back and fix some of the other vi-like bindings to redirect
to the arrow and pageup/pagedown keys, rather than running the
view changes directly.

I've bound 'v' to visualize, as this is a somewhat common thing
to want to do in the merge dialog. Control (or Command) Return
is also bound to start the merge, much as it is bound in the
main window to activate the commit.

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

git-gui: Include commit id/subject in merge choicesShawn O. Pearce Thu, 3 May 2007 22:21:39 +0000 (18:21 -0400)

git-gui: Include commit id/subject in merge choices

When merging branches using our local merge feature it can be
handy to know the first few digits of the commit the ref points
at as well as the short description of the branch name.

Unfortunately I'm unable to use three listboxes in a row, as Tcl
freaks out and refuses to let me have a selection in more than
one of them at any given point in time. So instead we use a
fixed width font in the existing listbox and organize the data
into three columns. Not nearly as nice looking, but users can
continue to use the listbox's features.

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

git-gui: Show all possible branches for mergeShawn O. Pearce Wed, 2 May 2007 18:25:22 +0000 (14:25 -0400)

git-gui: Show all possible branches for merge

Johannes Sixt pointed out that git-gui was randomly selecting
which branch (or tag!) it will show in the merge dialog when
more than one ref points at the same commit. This can be a
problem for the user if they want to merge a branch, but the
ref that git-gui selected to display was actually a tag that
points at the commit at the tip of that branch. Since the
user is looking for the branch, and not the tag, its confusing
to not find it, and worse, merging the tag causes git-merge to
generate a different message than if the branch was selected.

While I am in here and am messing around I have changed the
for-each-ref usage to take advantage of its --tcl formatting,
and to fetch the subject line of the commit (or tag) we are
looking at. This way we could present the subject line in the
UI to the user, given them an even better chance to select
the correct branch.

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

git-gui: Move merge support into a namespaceShawn O. Pearce Wed, 2 May 2007 17:56:27 +0000 (13:56 -0400)

git-gui: Move merge support into a namespace

Like the console procs I have moved the code related to merge
support into their own namespace, so that they are isolated
from the rest of the world.

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

git-gui: Allow vi keys to scroll the diff/blame regionsShawn O. Pearce Tue, 1 May 2007 19:51:09 +0000 (15:51 -0400)

git-gui: Allow vi keys to scroll the diff/blame regions

Users who are used to vi and recent versions of gitk may want
to scroll the diff region using vi style keybindings. Since
these aren't bound to anything else and that widget does not
accept focus for data input, we can easily support that too.

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

git-gui: Move console procs into their own namespaceShawn O. Pearce Tue, 1 May 2007 06:59:53 +0000 (02:59 -0400)

git-gui: Move console procs into their own namespace

To help modularize git-gui better I'm isolating the code and
variables required to handle our little console windows into
their own namespace. This way we can say console::new rather
than new_console, and the hidden internal procs to create the
window and read data from our filehandle are off in their own
private little land, where most users don't see them.

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

git-gui: Refactor into multiple files to save my sanityShawn O. Pearce Tue, 8 May 2007 03:35:48 +0000 (23:35 -0400)

git-gui: Refactor into multiple files to save my sanity

I'm finding it difficult to work with a 6,000+ line Tcl script
and not go insane while looking for a particular block of code.
Since most of the program is organized into different units of
functionality and not all users will need all units immediately
on startup we can improve things by splitting procs out into
multiple files and let auto_load handle things for us.

This should help not only to better organize the source, but
it may also improve startup times for some users as the Tcl
parser does not need to read as much script before it can show
the UI. In many cases the user can avoid reading at least half
of git-gui now.

Unfortunately we now need a library directory in our runtime
location. This is currently assumed to be $(sharedir)/git-gui/lib
and its expected that the Makefile invoker will setup some sort of
reasonable sharedir value for us, or let us assume its going to be
$(gitexecdir)/../share.

We now also require a tclsh (in TCL_PATH) to just run the Makefile,
as we use tclsh to generate the tclIndex for our lib directory. I'm
hoping this is not an unncessary burden on end-users who are building
from source.

I haven't really made any functionality changes here, this is just a
huge migration of code from one file to many smaller files. All of
the new changes are to setup the library path and install the library
files.

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

Use GIT_OBJECT_DIR for temporary files of pack-objectsAlex Riesen Mon, 7 May 2007 17:33:24 +0000 (19:33 +0200)

Use GIT_OBJECT_DIR for temporary files of pack-objects

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

Fix minor documentation errorsMichael Spang Sun, 6 May 2007 18:09:34 +0000 (14:09 -0400)

Fix minor documentation errors

- git-ls-files.txt: typo in description of --ignored
- git-clean.txt: s/forceRequire/requireForce/

Signed-off-by: Michael Spang <mspang@uwaterloo.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>

t7300: Basic tests for git-cleanMichael Spang Sun, 6 May 2007 19:50:54 +0000 (15:50 -0400)

t7300: Basic tests for git-clean

This tests the -d, -n, -f, -x, and -X options to git-clean.

Signed-off-by: Michael Spang <mspang@uwaterloo.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>

dir.c: Omit non-excluded directories with dir->show_ignoredMichael Spang Mon, 7 May 2007 02:35:04 +0000 (22:35 -0400)

dir.c: Omit non-excluded directories with dir->show_ignored

This makes "git-ls-files --others --directory --ignored" behave
as documented and consequently also fixes "git-clean -d -X".
Previously, git-clean would remove non-excluded directories
even when using the -X option.

Signed-off-by: Michael Spang <mspang@uwaterloo.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'master' of git://repo.or.cz/git-guiJunio C Hamano Mon, 7 May 2007 21:47:14 +0000 (14:47 -0700)

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

* 'master' of git://repo.or.cz/git-gui:
git-gui: Correctly handle UTF-8 encoded commit messages

Merge branch 'maint'Junio C Hamano Mon, 7 May 2007 21:46:48 +0000 (14:46 -0700)

Merge branch 'maint'

* maint:
Documentation: don't reference non-existent 'git-cvsapplycommit'
user-manual: stop deprecating the manual
user-manual: miscellaneous editing
user-manual: fix .gitconfig editing examples
user-manual: clean up fast-forward and dangling-objects sections
user-manual: add section ID's
user-manual: more discussion of detached heads, fix typos
git-gui: Allow spaces in path to 'wish'
gitk: Allow user to choose whether to see the diff, old file, or new file

Merge branch 'maint' of git://repo.or.cz/git-gui into... Junio C Hamano Mon, 7 May 2007 21:46:15 +0000 (14:46 -0700)

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

* 'maint' of git://repo.or.cz/git-gui:
git-gui: Allow spaces in path to 'wish'

Merge git://git2./pub/scm/gitk/gitk into maintJunio C Hamano Mon, 7 May 2007 21:40:41 +0000 (14:40 -0700)

Merge git://git2./pub/scm/gitk/gitk into maint

* git://git2.kernel.org/pub/scm/gitk/gitk:
gitk: Allow user to choose whether to see the diff, old file, or new file

Added a reference to git-add in the documentation for... Matthieu Moy Sun, 6 May 2007 21:11:56 +0000 (23:11 +0200)

Added a reference to git-add in the documentation for git-update-index

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document git add -u introduced earlier.Matthieu Moy Sun, 6 May 2007 21:11:55 +0000 (23:11 +0200)

Document git add -u introduced earlier.

This command was implemented, but not documented in
dfdac5d9b877641d3aad8ec49f64c2730a3487e3.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: don't reference non-existent 'git-cvsapp... Jeff King Mon, 7 May 2007 05:28:34 +0000 (01:28 -0400)

Documentation: don't reference non-existent 'git-cvsapplycommit'

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

user-manual: stop deprecating the manualJ. Bruce Fields Mon, 7 May 2007 05:01:42 +0000 (01:01 -0400)

user-manual: stop deprecating the manual

It's just as much a work-in-progress, but at least now it's gotten
enough technical review to shake out most of the really bad lies, so
hopefully it doesn't do any actual damage. And if we encourage people
to read it, they'll be more likely to whine about it, which will help
get it fixed faster.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>

user-manual: miscellaneous editingJ. Bruce Fields Mon, 7 May 2007 04:56:45 +0000 (00:56 -0400)

user-manual: miscellaneous editing

I cherry-picked some additional miscellaneous fixes from those suggested
by Santi Béjar, including fixes to:

- correct discussion of repository/HEAD->repository shortcut
- add mention of git-mergetool
- add mention of --track
- mention "-f" as well as "+" for fetch

Cc: Santi Béjar <sbejar@gmail.com>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>

user-manual: fix .gitconfig editing examplesJ. Bruce Fields Mon, 7 May 2007 04:16:33 +0000 (00:16 -0400)

user-manual: fix .gitconfig editing examples

Santi Béjar points out that when telling people how to "introduce
themselves" to git we're advising them to replace their entire
.gitconfig file. Fix that.

Cc: "Santi Béjar <sbejar@gmail.com>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>

user-manual: clean up fast-forward and dangling-objects... J. Bruce Fields Mon, 30 Apr 2007 15:11:02 +0000 (11:11 -0400)

user-manual: clean up fast-forward and dangling-objects sections

The previous commit calls attention to the fact that we have two
sections each devoted to fast-forwards and to dangling objects. Revise
and attempt to differentiate them a bit. Some more reorganization may
be required later....

Signed-off-by: J. Bruce Fields

user-manual: add section ID'sJ. Bruce Fields Wed, 18 Apr 2007 04:46:19 +0000 (00:46 -0400)

user-manual: add section ID's

Any section lacking an id gets an annoying warning when you build
the manual. More seriously, the table of contents then generates
volatile id's which change with every build, with the effect that
we get URL's that change all the time.

The ID's are manually generated and sometimes inconsistent, but
that's OK.

XXX: what to do about the preface?

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>

user-manual: more discussion of detached heads, fix... J. Bruce Fields Wed, 18 Apr 2007 04:20:46 +0000 (00:20 -0400)

user-manual: more discussion of detached heads, fix typos

Nicolas Pitre pointed out a couple typos and some room for improvement
in the discussion of detached heads.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Cc: Nicolas Pitre <nico@cam.org>

GIT v1.5.2-rc2 v1.5.2-rc2Junio C Hamano Sun, 6 May 2007 08:07:04 +0000 (01:07 -0700)

GIT v1.5.2-rc2

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

Merge branch 'maint'Junio C Hamano Sun, 6 May 2007 07:21:03 +0000 (00:21 -0700)

Merge branch 'maint'

* maint:
Small correction in reading of commit headers
Documentation: fix typo in git-remote.txt
Add test for blame corner cases.
blame: -C -C -C
blame: Notice a wholesale incorporation of an existing file.
Fix --boundary output
diff format documentation: describe raw combined diff format
Mention version 1.5.1 in tutorial and user-manual
Add --no-rebase option to git-svn dcommit
Fix markup in git-svn man page

Handle return code of parse_commit in revision machineryAlex Riesen Fri, 4 May 2007 21:54:57 +0000 (23:54 +0200)

Handle return code of parse_commit in revision machinery

This fixes a crash in broken repositories where random commits
suddenly disappear.

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

Small correction in reading of commit headersAlex Riesen Fri, 4 May 2007 21:51:32 +0000 (23:51 +0200)

Small correction in reading of commit headers

Check if a line of the header has enough characters to possibly
contain the requested prefix.

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

Documentation: fix typo in git-remote.txtJames Bowes Sat, 5 May 2007 18:23:12 +0000 (14:23 -0400)

Documentation: fix typo in git-remote.txt

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add test for blame corner cases.Junio C Hamano Sun, 6 May 2007 05:36:19 +0000 (22:36 -0700)

Add test for blame corner cases.

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

blame: -C -C -CJunio C Hamano Sun, 6 May 2007 04:18:57 +0000 (21:18 -0700)

blame: -C -C -C

When you do this, existing "blame -C -C" would not find that the
latter half of the file2 came from the existing file1:

... both file1 and file2 are tracked ...
$ cat file1 >>file2
$ git add file1 file2
$ git commit

This is because we avoid the expensive find-copies-harder code
that makes unchanged file (in this case, file1) as a candidate
for copy & paste source when annotating an existing file
(file2). The third -C now allows it. However, this obviously
makes the process very expensive. We've actually seen this
patch before, but I dismissed it because it covers such a narrow
(and arguably stupid) corner case.

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

blame: Notice a wholesale incorporation of an existing... Junio C Hamano Sat, 5 May 2007 16:13:26 +0000 (09:13 -0700)

blame: Notice a wholesale incorporation of an existing file.

The -C option to blame tries to find a section of a preimage
file by running diff against the lines whose origin is still
unknown, and excluding the different parts. The code however
did not cover the case where the tail part of the section
matched, which we handle for the normal non-move/copy codepath.

This breakage was most visible when preimage file matches in its
entirety and failed to pass blame in such a case.

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

Fix --boundary outputLinus Torvalds Sat, 5 May 2007 22:18:03 +0000 (15:18 -0700)

Fix --boundary output

"git log --boundary" incorrectly honoured the option only when
"left-right" was enabled.

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

diff format documentation: describe raw combined diff... Jakub Narebski Fri, 4 May 2007 22:48:35 +0000 (00:48 +0200)

diff format documentation: describe raw combined diff format

Add description of raw combined diff format to diff-formats.txt,
as "diff format for merges" section, before "Generating patches..."
section.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Mention version 1.5.1 in tutorial and user-manualCarl Worth Fri, 4 May 2007 18:27:10 +0000 (11:27 -0700)

Mention version 1.5.1 in tutorial and user-manual

Most other documentation will frequently be read from an installation
of git so will naturally be associated with the installed version.
But these two documents in particular are often read from web pages
while users are still exploring git. It's important to mention
version 1.5.1 since these documents provide example commands that
won't work with previous versions of git.

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

Add --no-rebase option to git-svn dcommitKarl Hasselström Thu, 3 May 2007 05:51:35 +0000 (07:51 +0200)

Add --no-rebase option to git-svn dcommit

git-svn dcommit exports commits to Subversion, then imports them back
to git again, and last but not least rebases or resets HEAD to the
last of the new commits. I guess this rebasing is convenient when
using just git, but when the commits to be exported are managed by
StGIT, it's really annoying. So add an option to disable this
behavior. And document it, too!

Signed-off-by: Karl Hasselström <kha@treskal.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix markup in git-svn man pageKarl Hasselström Fri, 4 May 2007 07:03:22 +0000 (09:03 +0200)

Fix markup in git-svn man page

Some of the existing markup was just plain broken, and some subcommand
options weren't indented properly.

Signed-off-by: Karl Hasselström <kha@treskal.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-tag(1): -v option is a subcommand; fix code blockJonas Fonseca Tue, 1 May 2007 07:24:59 +0000 (09:24 +0200)

git-tag(1): -v option is a subcommand; fix code block

When the -v is passed, git-tag will exit after it is processed like it
does with the -d and -l options. Additionally, missing code block caused
wrong rendering of an option example.

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

Improve request-pull to handle non-rebased branchesShawn O. Pearce Tue, 1 May 2007 06:08:23 +0000 (02:08 -0400)

Improve request-pull to handle non-rebased branches

This is actually a few different changes to request-pull,
making it slightly smarter:

1) Minor cleanup of revision->base variable names, making it
follow the head/headrev naming convention that is already
in use.

2) Compute the merge-base between the two revisions upfront
and reuse that selected merge-base to create the diffstat.

3) Refuse to generate a pull request for branches that have no
existing relationship. These aren't very common and would mess
up our diffstat generation.

4) Disable the PAGER when running shortlog and diff, as these
would otherwise activate the pager for each command when
git-request-pull is run on a tty. Instead users can get the
entire output paged (if desired) using `git -p request-pull`.

5) Use shortlog rather than `git log | git shortlog` now that
recent shortlog versions are able to run the revision listing
internally.

6) Attempt to resolve the input URL using the user's configured
remotes. This is useful if the URL you want the recipient to
see is also the one you used to push your changes. If not a
config-file remote could easily be setup for the public URL
and request-pull could be passed that name instead.

7) Automatically guess and include the remote branch name in the
body of the message. We list the branch name immediately after
the URL, making it easy for the recipient to copy and paste
the entire line onto a `git pull` command line. Rumor has it
Linus likes this format, for exactly that reason.

If multiple branches at the remote match $headrev we take the
first one returned by peek-remote and assume it is suitable.

If no branches are available we warn the user about the problem,
but insert a static string that is not a valid branch name
and would be obvious to anyone reading the message as being
totally incorrect. This allows users to still generate a
template message without network access (for example) and
hand-correct the bits that cannot be verified.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Fri, 4 May 2007 06:26:54 +0000 (23:26 -0700)

Merge branch 'maint'

* maint:
gitweb: use decode_utf8 directly
posix compatibility for t4200
Document 'opendiff' value in config.txt and git-mergetool.txt
Allow PERL_PATH="/usr/bin/env perl"
Make xstrndup common
diff.c: fix "size cache" handling.
http-fetch: Disable use of curl multi support for libcurl < 7.16.

gitweb: use decode_utf8 directlyIsmail Dönmez Tue, 1 May 2007 21:12:13 +0000 (00:12 +0300)

gitweb: use decode_utf8 directly

Using decode() tries to decode data that is already UTF-8 and
borks, but decode_utf8 from Encode.pm has a built-in safety
against that.

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

posix compatibility for t4200Bryan Larsen Wed, 2 May 2007 21:53:23 +0000 (17:53 -0400)

posix compatibility for t4200

Fix t4200 so that it also works on OS X by not relying on gnu
extensions to sed.

Signed-off-by: Bryan Larsen <bryan@larsen.st>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document 'opendiff' value in config.txt and git-mergeto... Arjen Laarhoven Thu, 3 May 2007 18:29:15 +0000 (20:29 +0200)

Document 'opendiff' value in config.txt and git-mergetool.txt

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Allow PERL_PATH="/usr/bin/env perl"Bryan Larsen Thu, 3 May 2007 22:58:56 +0000 (18:58 -0400)

Allow PERL_PATH="/usr/bin/env perl"

There is a mechanism PERL_PATH in the Makefile to specify path to
Perl binary, but sometimes it is convenient to let 'env' figure
out where Perl comes from, with PERL_PATH="/usr/bin/env perl".

Allowing this would make things easier to MacPorts, where we wish
to work with the MacPorts perl if it is installed, but fall back
to the system perl if it isn't.

Signed-off-by: Bryan Larsen <bryan@larsen.st>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Make xstrndup commonDaniel Barkalow Thu, 3 May 2007 02:49:41 +0000 (22:49 -0400)

Make xstrndup common

This also improves the implementation to match how strndup is
specified (by GNU): if the length given is longer than the string,
only the string's length is allocated and copied, but the string need
not be null-terminated if it is at least as long as the given length.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

diff.c: fix "size cache" handling.Junio C Hamano Thu, 3 May 2007 20:00:43 +0000 (13:00 -0700)

diff.c: fix "size cache" handling.

We broke the size-cache handling when we changed the function
signature of sha1_object_info() in 21666f1a. We obviously
wanted to cache the size we obtained when sha1_object_info()
succeeded, not when it failed.

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

http-fetch: Disable use of curl multi support for libcu... Alexandre Julliard Wed, 2 May 2007 12:53:23 +0000 (14:53 +0200)

http-fetch: Disable use of curl multi support for libcurl < 7.16.

curl_multi_remove_handle() is broken in libcurl < 7.16, in that it
doesn't correctly update the active handles count when a request is
aborted. This causes the transfer to hang forever waiting for the
handle count to become less than the number of active requests.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

blame: use .mailmap unconditionallyJunio C Hamano Thu, 3 May 2007 06:58:14 +0000 (23:58 -0700)

blame: use .mailmap unconditionally

There really isn't any point in turning off .mailmap. The
number of mailmap lookups are bounded by number of lines in the
target file, and the real blame processing is much more
expensive. If it turns out to be too costly, we should optimize
the mailmap lookup itself, instead of avoiding the call.

If the author information of commits of the project are
relatively clean, .mailmap would have only small number of
entries, and the overhead of looking it up will not be high. On
the other hand, if the author information is really screwed up
that a good .mailmap needs to be maintained to run shortlog,
giving uncleaned names in blame output is not helpful at all
either.

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

Merge branch 'maint'Junio C Hamano Wed, 2 May 2007 18:27:31 +0000 (11:27 -0700)

Merge branch 'maint'

* maint:
cvsserver: Handle re-added files correctly
Fix compilation of test-delta

Merge branch 'maint' of git://repo.or.cz/git/fastimport... Junio C Hamano Wed, 2 May 2007 18:00:16 +0000 (11:00 -0700)

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

* 'maint' of git://repo.or.cz/git/fastimport:
Teach import-tars about GNU tar's @LongLink extension.

cvsserver: Handle re-added files correctlyFrank Lichtenheld Wed, 2 May 2007 00:43:14 +0000 (02:43 +0200)

cvsserver: Handle re-added files correctly

We can't unconditionally assign revision 1.1 to
newly added files. In case the file did exist in the
past and was deleted we need to honor the old
revision number.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Don't use seq in tests, not everyone has itShawn O. Pearce Wed, 2 May 2007 16:59:55 +0000 (12:59 -0400)

Don't use seq in tests, not everyone has it

For example Mac OS X lacks the seq command. So we cannot use it
there. A good old while loop works just as good.

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

Reuse fixup_pack_header_footer in index-packShawn O. Pearce Wed, 2 May 2007 16:14:15 +0000 (12:14 -0400)

Reuse fixup_pack_header_footer in index-pack

Now that fast-import is using a "library function" to handle
correcting its packfile's object count and trailing SHA-1 we
should reuse the same function in index-pack, to reduce the
size of the code we must maintain.

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

Create pack-write.c for common pack writing codeDana L. How Wed, 2 May 2007 16:13:14 +0000 (12:13 -0400)

Create pack-write.c for common pack writing code

Include a generalized fixup_pack_header_footer() in this new file.
Needed by git-repack --max-pack-size feature in a later patchset.

[sp: Moved close(pack_fd) to callers, to support index-pack, and
changed name to better indicate it is for packfiles.]

Signed-off-by: Dana L. How <danahow@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'gfi-maint' into gfi-masterShawn O. Pearce Wed, 2 May 2007 17:24:10 +0000 (13:24 -0400)

Merge branch 'gfi-maint' into gfi-master

* gfi-maint:
Teach import-tars about GNU tar's @LongLink extension.

Teach import-tars about GNU tar's @LongLink extension.Johannes Schindelin Tue, 1 May 2007 21:42:44 +0000 (23:42 +0200)

Teach import-tars about GNU tar's @LongLink extension.

This extension allows GNU tar to process file names in excess of the 100
characters defined by the original tar standard. It does this by faking a
file, named '././@LongLink' containing the true file name, and then adding
the file with a truncated name. The idea is that tar without this
extension will write out a file with the long file name, and write the
contents into a file with truncated name.

Unfortunately, GNU tar does a lousy job at times. When truncating results
in a _directory_ name, it will happily use _that_ as a truncated name for
the file.

An example where this actually happens is gcc-4.1.2, where the full path
of the file WeThrowThisExceptionHelper.java truncates _exactly_ before the
basename. So, we have to support that ad-hoc extension.

This bug was noticed by Chris Riddoch on IRC.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Track our own embedded values and rebuild... Shawn O. Pearce Sun, 29 Apr 2007 07:02:10 +0000 (03:02 -0400)

git-gui: Track our own embedded values and rebuild when they change

Like core-Git we now track the values that we embed into our shell
script wrapper, and we "recompile" that wrapper if they are changed.
This concept was lifted from git.git's Makefile, where a similar
thing was done by Eygene Ryabinkin. Too bad it wasn't just done
here in git-gui from the beginning, as the git.git Makefile support
for GIT-GUI-VARS was really just because git-gui doesn't do it on
its own.

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

git-gui: Refactor to use our git proc more oftenShawn O. Pearce Sun, 29 Apr 2007 05:54:57 +0000 (01:54 -0400)

git-gui: Refactor to use our git proc more often

Whenever we want to execute a git subcommand from the plumbing
layer (and on rare occasion, the more porcelain-ish layer) we
tend to use our proc wrapper, just to make the code slightly
cleaner at the call sites. I wasn't doing that in a couple of
places, so this is a simple cleanup to correct that.

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

git-gui: Use option database defaults to set the fontShawn O. Pearce Sun, 29 Apr 2007 03:14:08 +0000 (23:14 -0400)

git-gui: Use option database defaults to set the font

Rather than passing "-font font_ui" to every widget that we
create we can instead reconfigure the option database for
all widget classes to use our font_ui as the default widget
font. This way Tk will automatically setup their defaults
for us, and we can reduce the size of the application.

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

git-gui: Cleanup common font handling for font_uiShawn O. Pearce Sun, 29 Apr 2007 02:00:02 +0000 (22:00 -0400)

git-gui: Cleanup common font handling for font_ui

An earlier change tossed these optionMenu font configurations
all over the code, when really we can just rename the proc to
a hidden internal name and provide our own wrapper to install
the font configuration we really want.

We also don't need to set these option database entries in all
of the procedures that open dialogs; instead we should just set
one time, them after we have the font configuration ready for use.

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

git-gui: Correct line wrapping for too many branch... Shawn O. Pearce Sun, 29 Apr 2007 01:32:27 +0000 (21:32 -0400)

git-gui: Correct line wrapping for too many branch message

Since Tk automatically wraps lines for us in tk_messageBox
widgets we don't need to try to wrap them ourselves. Its
actually worse that we linewrapped this here in the script,
as not all fonts will render this dialog nicely.

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

git-gui: Warn users before making an octopus mergeShawn O. Pearce Sun, 29 Apr 2007 01:26:27 +0000 (21:26 -0400)

git-gui: Warn users before making an octopus merge

A coworker who was new to git-gui recently tried to make an octopus
merge when he did not quite mean to. Unfortunately in his case the
branches had file level conflicts and failed to merge with the octopus
strategy, and he didn't quite know why this happened. Since most users
really don't want to perform an octopus merge this additional safety
valve in front of the merge process is a good thing.

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

git-gui: Include the subject in the status bar after... Shawn O. Pearce Sun, 29 Apr 2007 00:49:22 +0000 (20:49 -0400)

git-gui: Include the subject in the status bar after commit

Now that the command line git-commit has made displaying
the subject (first line) of the newly created commit popular
we can easily do the same thing here in git-gui, without the
ugly part of forking off a child process to obtain that first
line.

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

Merge branch 'maint'Shawn O. Pearce Wed, 2 May 2007 16:45:31 +0000 (12:45 -0400)

Merge branch 'maint'

* maint:
git-gui: Allow spaces in path to 'wish'

git-gui: Allow spaces in path to 'wish'Shawn O. Pearce Wed, 2 May 2007 16:44:44 +0000 (12:44 -0400)

git-gui: Allow spaces in path to 'wish'

If the path of our wish executable that are running under
contains spaces we need to make sure they are escaped in
a proper Tcl list, otherwise we are unable to start gitk.

Reported by Randal L. Schwartz on #git.

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

Fix compilation of test-deltaMartin Koegler Tue, 1 May 2007 09:47:55 +0000 (11:47 +0200)

Fix compilation of test-delta

The code used write_in_full() without pulling its declarations from the
header file. When header is included, usage[] collides with usage()
function.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>

GIT v1.5.2-rc1 v1.5.2-rc1Junio C Hamano Tue, 1 May 2007 00:30:02 +0000 (17:30 -0700)

GIT v1.5.2-rc1

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

Merge branch 'maint'Junio C Hamano Tue, 1 May 2007 00:16:19 +0000 (17:16 -0700)

Merge branch 'maint'

* maint:
GIT v1.5.1.3
send-email documentation: clarify --smtp-server
git.7: Mention preformatted html doc location
Clarify SubmittingPatches Checklist
git-svn: Add 'find-rev' command
Fix symlink handling in git-svn, related to PerlIO

GIT v1.5.1.3 v1.5.1.3Junio C Hamano Tue, 1 May 2007 00:09:48 +0000 (17:09 -0700)

GIT v1.5.1.3

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

Include mailmap.h in mailmap.c to catch mailmap interfa... Alex Riesen Mon, 30 Apr 2007 22:31:52 +0000 (00:31 +0200)

Include mailmap.h in mailmap.c to catch mailmap interface changes

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

Remove pointless calls to access(2) when checking for... Alex Riesen Mon, 30 Apr 2007 22:27:05 +0000 (00:27 +0200)

Remove pointless calls to access(2) when checking for .mailmap

read_mailmap already returns not 0 in case of error, and nothing
seem to be interested in it. It also is silent about the fact
(read_mailmap being to chatty would justify the call to access,
but there is no point for it to be and it isn't).

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

Fix read_mailmap to handle a caller uninterested in... Alex Riesen Mon, 30 Apr 2007 22:26:36 +0000 (00:26 +0200)

Fix read_mailmap to handle a caller uninterested in repo abbreviation

The only such a caller builtin-blame.c would pass NULL as the place
where to store the abbreviation.

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

Use strlcpy instead of strncpy in mailmap.cAlex Riesen Mon, 30 Apr 2007 22:22:53 +0000 (00:22 +0200)

Use strlcpy instead of strncpy in mailmap.c

strncpy does not NUL-terminate output in case of output buffer too short,
and map_email prototype (and usage) does not allow for figuring out
what the length of the name is.

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

send-email documentation: clarify --smtp-serverJari Aalto Mon, 30 Apr 2007 12:37:28 +0000 (15:37 +0300)

send-email documentation: clarify --smtp-server

It can be either hostname/address, or a full path to a
local executable.

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git.7: Mention preformatted html doc locationJari Aalto Mon, 30 Apr 2007 11:21:38 +0000 (14:21 +0300)

git.7: Mention preformatted html doc location

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Clarify SubmittingPatches ChecklistJari Aalto Mon, 30 Apr 2007 16:04:25 +0000 (19:04 +0300)

Clarify SubmittingPatches Checklist

Separate things to be checked when making commits, and things
to be checked when sending patches.

Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-svn: Add 'find-rev' commandAdam Roben Sun, 29 Apr 2007 08:35:27 +0000 (01:35 -0700)

git-svn: Add 'find-rev' command

This patch adds a new 'find-rev' command to git-svn that lets you easily
translate between SVN revision numbers and git tree-ish.

Signed-off-by: Adam Roben <aroben@apple.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix symlink handling in git-svn, related to PerlIOJunio C Hamano Sun, 29 Apr 2007 21:05:54 +0000 (14:05 -0700)

Fix symlink handling in git-svn, related to PerlIO

After reading the leading contents from a symlink data obtained
from subversion, which we expect to begin with 'link ', the code
forked to hash the remainder (which should match readlink()
result) using git-hash-objects, by redirecting its STDIN from
the filehandle we read that 'link ' from. This was Ok with Perl
on modern Linux, but on Mac OS, the read in the parent process
slurped more than we asked for in stdio buffer, and the child
did not correctly see the "remainder".

This attempts to fix the issue by using lower level sysseek and
sysread instead of seek and read to bypass the stdio buffer.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Acked-by: Seth Falcon <sethfalcon@gmail.com>

Merge branch 'jc/attr'Junio C Hamano Sun, 29 Apr 2007 18:01:27 +0000 (11:01 -0700)

Merge branch 'jc/attr'

* jc/attr:
Add 'filter' attribute and external filter driver definition.
Add 'ident' conversion.

Make sure test-genrandom and test-chmtime are builtas... Junio C Hamano Sat, 28 Apr 2007 22:32:49 +0000 (15:32 -0700)

Make sure test-genrandom and test-chmtime are builtas part of the main build.

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

Make macros to prevent double-inclusion in headers... Junio C Hamano Sun, 29 Apr 2007 06:38:52 +0000 (23:38 -0700)

Make macros to prevent double-inclusion in headers consistent.

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

Apply mailmap in git-blame output.Junio C Hamano Fri, 27 Apr 2007 07:42:15 +0000 (00:42 -0700)

Apply mailmap in git-blame output.

This makes git-blame to use the same mailmap used by
git-shortlog.

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

Split out mailmap handling out of shortlogJunio C Hamano Fri, 27 Apr 2007 07:41:15 +0000 (00:41 -0700)

Split out mailmap handling out of shortlog

This splits out a few functions to deal with mailmap from
shortlog and makes it a bit more usable from other programs.
Most notably, it does not clobber input e-mail address anymore.

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

blame -s: suppress author name and time.Junio C Hamano Thu, 12 Apr 2007 22:50:45 +0000 (15:50 -0700)

blame -s: suppress author name and time.

With this "git blame -b -s HEAD~n..HEAD" becomes a nicer way to
review the result of recent changes in context.

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

Fall back to $EMAIL for missing GIT_AUTHOR_EMAIL and... Josh Triplett Sun, 29 Apr 2007 01:40:28 +0000 (18:40 -0700)

Fall back to $EMAIL for missing GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAIL

Some other programs get the user's email address from $EMAIL, so fall back to
that if we don't have a Git-specific email address.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge commit 'gfi/master'Junio C Hamano Sun, 29 Apr 2007 08:54:28 +0000 (01:54 -0700)

Merge commit 'gfi/master'

* commit 'gfi/master':

Merge branch 'maint'Junio C Hamano Sun, 29 Apr 2007 08:52:43 +0000 (01:52 -0700)

Merge branch 'maint'

* maint:
http.c: Fix problem with repeated calls of http_init
Add missing reference to GIT_COMMITTER_DATE in git-commit-tree documentation
Fix import-tars fix.
Update .mailmap with "Michael"
Do not barf on too long action description
Catch empty pathnames in trees during fsck
Don't allow empty pathnames in fast-import
import-tars: be nice to wrong directory modes
git-svn: Added 'find-rev' command
git shortlog documentation: add long options and fix a typo

http.c: Fix problem with repeated calls of http_initJulian Phillips Sun, 29 Apr 2007 02:46:42 +0000 (03:46 +0100)

http.c: Fix problem with repeated calls of http_init

Calling http_init after calling http_cleanup causes a segfault. This
is due to the pragma_header curl_slist being freed but not being set
to NULL. The subsequent call to http_init tries to setup the slist
again, but it now points to an invalid memory location.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add missing reference to GIT_COMMITTER_DATE in git... Josh Triplett Sun, 29 Apr 2007 01:40:12 +0000 (18:40 -0700)

Add missing reference to GIT_COMMITTER_DATE in git-commit-tree documentation

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix import-tars fix.Junio C Hamano Sun, 29 Apr 2007 07:31:14 +0000 (00:31 -0700)

Fix import-tars fix.

This heeds advice from our resident Perl expert to make sure
the script is not confused with a string that ends with /\n

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