gitweb.git
git-gui: Allow double-click in checkout dialog to start... Shawn O. Pearce Mon, 9 Jul 2007 01:34:28 +0000 (21:34 -0400)

git-gui: Allow double-click in checkout dialog to start checkout

If the user double clicks a branch in the checkout dialog then they
probably want to start the checkout process on that branch. I found
myself doing this without realizing it, and of course it did nothing
as there was no action bound to the listbox's Double-Button-1 event
handler. Since I did it without thinking, others will probably also
try, and expect the same behavior.

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

git-gui: Default selection to first matching refShawn O. Pearce Mon, 9 Jul 2007 01:29:54 +0000 (21:29 -0400)

git-gui: Default selection to first matching ref

If we have specifications listed in our revision picker mega-widget
then we should default the selection within that widget to the first
ref available. This way the user does not need to use the spacebar
to activate the selection of a ref within the box; instead they can
navigate up/down with the arrow keys and be done with it.

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

git-gui: Unabbreviate commit SHA-1s prior to displayShawn O. Pearce Mon, 9 Jul 2007 01:19:59 +0000 (21:19 -0400)

git-gui: Unabbreviate commit SHA-1s prior to display

If the end-user feeds us an abbreviated SHA-1 on the command line for
`git gui browser` or `git gui blame` we now unabbreviate the value
through `git rev-parse` so that the title section of the blame or
browser window shows the user the complete SHA-1 as Git determined
it to be.

If the abbreviated value was ambiguous we now complain with the
standard error message(s) as reported by git-rev-parse --verify,
so that the user can understand what might be wrong and correct
their command line.

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

git-gui: Refactor branch switch to support detached... Shawn O. Pearce Sun, 8 Jul 2007 22:40:56 +0000 (18:40 -0400)

git-gui: Refactor branch switch to support detached head

This is a major rewrite of the way we perform switching between
branches and the subsequent update of the working directory. Like
core Git we now use a single code path to perform all changes: our
new checkout_op class. We also use it for branch creation/update
as it integrates the tracking branch fetch process along with a
very basic merge (fast-forward and reset only currently).

Because some users have literally hundreds of local branches we
use the standard revision picker (with its branch filtering tool)
to select the local branch, rather than keeping all of the local
branches in the Branch menu. The branch menu listing out all of
the available branches is simply not sane for those types of huge
repositories.

Users can now checkout a detached head by ticking off the option
in the checkout dialog. This option is off by default for the
obvious reason, but it can be easily enabled for any local branch
by simply checking it. We also detach the head if any non local
branch was selected, or if a revision expression was entered.

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

Document custom hunk header selectionJunio C Hamano Mon, 9 Jul 2007 00:15:09 +0000 (17:15 -0700)

Document custom hunk header selection

Since the external interface seems to have stabilized for this
new feature, let's document it properly.

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

Merge branch 'maint'Junio C Hamano Mon, 9 Jul 2007 01:28:31 +0000 (18:28 -0700)

Merge branch 'maint'

* maint:
user-manual: fix directory name in git-archive example
user-manual: more explanation of push and pull usage
tutorial: Fix typo
user-manual: grammar and style fixes

rebase -i: put a nice warning into the todo listJohannes Schindelin Sun, 8 Jul 2007 20:32:22 +0000 (21:32 +0100)

rebase -i: put a nice warning into the todo list

It seems that not everybody expects a difference between keeping a "pick"
line, and deleting it. So be a bit more explicit about that, with all
capitals to get the attention.

Noticed by vmiklos on IRC.

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

rebase -i: remember the settings of -v, -s and -p when... Johannes Schindelin Sun, 8 Jul 2007 02:02:47 +0000 (03:02 +0100)

rebase -i: remember the settings of -v, -s and -p when interrupted

After interruption, be that an edit, or a conflicting commit, reset
the variables VERBOSE, STRATEGY and PRESERVE_MERGES, so that the
user does not have to respecify them with "rebase --continue".

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

rebase -i: actually show the diffstat when being verboseJohannes Schindelin Sun, 8 Jul 2007 02:02:13 +0000 (03:02 +0100)

rebase -i: actually show the diffstat when being verbose

The "while" loop in the function do_rest is not supposed to ever be
exited. Instead, the function do_one checks if there is nothing left,
and cleans up and exits if that is the case. So the diffstat code
belongs there.

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

rebase -i: handle --continue more like non-interactive... Johannes Schindelin Sun, 8 Jul 2007 02:01:29 +0000 (03:01 +0100)

rebase -i: handle --continue more like non-interactive rebase

Non-interactive rebase requires the working tree to be clean, but
applies what is in the index without requiring the user to do it
herself. Imitate that, but (since we are interactive, after all)
fire up an editor with the commit message.

It also fixes a subtle bug: a forgotten "continue" was removed, which
led to an infinite loop when continuing without remaining patches.

Both issues noticed by Frank Lichtenheld.

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

t7004: Skip tests for signed tags in an old version... Carlos Rica Sun, 8 Jul 2007 19:36:34 +0000 (21:36 +0200)

t7004: Skip tests for signed tags in an old version of gpg.

As said here: http://www.gnupg.org/documentation/faqs.html#q6.19
the gpg version 1.0.6 didn't parse trust packets correctly, so for
that version, creation of signed tags using the generated key fails.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
Acked-by: Sven Verdoolaege <skimo@kotnet.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix merge-one-file for our-side-added/our-side-removed... Junio C Hamano Sun, 8 Jul 2007 21:42:05 +0000 (14:42 -0700)

Fix merge-one-file for our-side-added/our-side-removed cases

When commit ed93b449 changed the script so that it does not
touch untracked working tree file, we forgot that we still
needed to resolve the index entry (otherwise they are left
unmerged).

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

git-commit: don't add multiple Signed-off-by: from... Gerrit Pape Fri, 6 Jul 2007 14:42:27 +0000 (14:42 +0000)

git-commit: don't add multiple Signed-off-by: from the same identity

If requested to signoff a commit, don't add another Signed-off-by: line
to the commit message if the exact same line is already there.

This was noticed and requested by Josh Triplett through
http://bugs.debian.org/430851

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

branch.autosetupmerge: allow boolean values, or "all"Johannes Schindelin Sun, 8 Jul 2007 12:41:21 +0000 (13:41 +0100)

branch.autosetupmerge: allow boolean values, or "all"

Junio noticed that switching on autosetupmerge unilaterally started
cluttering the config for local branches. That is not the original
intention of branch.autosetupmerge, which was meant purely for
convenience when branching off of remote branches, but that semantics
got lost somewhere.

If you still want that "new" behavior, you can switch
branch.autosetupmerge to the value "all". Otherwise, it is interpreted
as a boolean, which triggers setting up defaults _only_ when branching
off of a remote branch, i.e. the originally intended behavior.

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

git-stash: try reusing cached stat info as much as... Junio C Hamano Sun, 8 Jul 2007 08:28:18 +0000 (01:28 -0700)

git-stash: try reusing cached stat info as much as possible

Earlier when we read a tree into a temporary index, we read it
from scratch. Start from the current index and use read-tree -m
to preserve cached stat information as much as possible, in
order to speed up "git add -u". This makes "git stash" usable
in a source tree of nontrivial size.

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

git-gui: Refactor our ui_status_value update techniqueShawn O. Pearce Fri, 6 Jul 2007 03:16:13 +0000 (23:16 -0400)

git-gui: Refactor our ui_status_value update technique

I'm really starting to dislike global variables. The ui_status_value
global varible is just one of those that seems to appear in a lot of
code and in many cases we didn't even declare it "global" within the
proc that updates it so we haven't always been getting all of the
updates we expected to see.

This change introduces two new global procs:

ui_status $msg; # Sets the status bar to show $msg.
ui_ready; # Changes the status bar to show "Ready."

The second (special) form is used because we often update the area
with this message once we are done processing a block of work and
want the user to know we have completed it.

I'm not fixing the cases that appear in lib/branch.tcl right now
as I'm actually in the middle of a huge refactoring of that code
to support making a detached HEAD checkout.

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

git-gui: Better handling of detached HEADShawn O. Pearce Thu, 5 Jul 2007 23:19:37 +0000 (19:19 -0400)

git-gui: Better handling of detached HEAD

If the current branch is not a symbolic-ref that points to a
name in the refs/heads/ namespace we now just assume that the
head is a detached head. In this case we return the special
branch name of HEAD rather than empty string, as HEAD is a
valid revision specification and the empty string is not.

I have also slightly improved the current-branch function by
using string functions to parse the symbolic-ref data. This
should be slightly faster than using a regsub. I think the
code is clearer too.

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

git-gui: Automatically refresh tracking branches when... Shawn O. Pearce Thu, 5 Jul 2007 06:23:53 +0000 (02:23 -0400)

git-gui: Automatically refresh tracking branches when needed

If the user is creating a new local branch and has selected to use
a tracking branch as the starting revision they probably want to
make sure they are using the absolute latest version available of
that branch.

We now offer a checkbox "Fetch Tracking Branch" (on by default)
that instructs git-gui to run git-fetch on just that one branch
before resolving the branch name into a commit SHA-1 and making
(or updating) the local branch.

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

git-gui: Option to default new branches to match tracki... Shawn O. Pearce Thu, 5 Jul 2007 05:07:06 +0000 (01:07 -0400)

git-gui: Option to default new branches to match tracking branches

In some workflows users will want to almost always just create a new
local branch that matches a remote branch. In this type of workflow
it is handy to have the new branch dialog default to "Match Tracking
Branch" and "Starting Revision"-Tracking Branch", with the focus in
the branch filter field. This can save users working on this type
of workflow at least two mouse clicks every time they create a new
local branch or switch to one with a fast-forward.

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

git-gui: Sort tags descending by tagger dateShawn O. Pearce Thu, 5 Jul 2007 04:07:11 +0000 (00:07 -0400)

git-gui: Sort tags descending by tagger date

When trying to create a branch from a tag most people are looking
for a recent tag, not one that is ancient history. Rather than
sorting tags by their string we now sort them by taggerdate, as
this places the recent tags at the top of the list and the very
old ones at the end. Tag date works nicely as an approximation
of the actual history order of commits.

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

git-gui: Enhance choose_rev to handle hundreds of branchesShawn O. Pearce Wed, 4 Jul 2007 20:38:13 +0000 (16:38 -0400)

git-gui: Enhance choose_rev to handle hundreds of branches

One of my production repositories has hundreds of remote tracking
branches. Trying to navigate these through a popup menu is just
not possible. The list is far larger than the screen and it does
not scroll fast enough to efficiently select a branch name when
trying to create a branch or delete a branch.

This is major rewrite of the revision chooser mega-widget. We
now use a single listbox for all three major types of named refs
(heads, tracking branches, tags) and a radio button group to pick
which of those namespaces should be shown in the listbox. A filter
field is shown to the right allowing the end-user to key in a glob
specification to filter the list they are viewing. The filter is
always taken as substring, so we assume * both starts and ends the
pattern the user wanted but otherwise treat it as a glob pattern.

This new picker works out really nicely. What used to take me at
least a minute to find and select a branch now takes mere seconds.

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

git-gui: Fast-forward existing branch in branch create... Shawn O. Pearce Wed, 4 Jul 2007 08:21:57 +0000 (04:21 -0400)

git-gui: Fast-forward existing branch in branch create dialog

If the user elects to create a local branch that has the same name
as an existing branch and we can fast-forward the local branch to
the selected revision we might as well do the fast-forward for the
user, rather than making them first switch to the branch then merge
the selected revision into it. After all, its really just a fast
forward. No history is lost. The resulting branch checkout may
also be faster if the branch we are switching from is closer to
the new revision.

Likewise we also now allow the user to reset the local branch if
it already exists but would not fast-forward. However before we
do the actual reset we tell the user what commits they are going to
lose by showing the oneline subject and abbreviated sha1, and we also
let them inspect the range of commits in gitk.

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

git-gui: Allow users to match remote branch names locallyShawn O. Pearce Wed, 4 Jul 2007 06:19:53 +0000 (02:19 -0400)

git-gui: Allow users to match remote branch names locally

Some workflows have users create a local branch that matches a remote
branch they have fetched from another repository. If the user wants
to push their changes back to that remote repository then they probably
want to use the same branch name locally so that git-gui's push dialog
can setup the push refspec automatically.

To prevent typos with the local branch name we now offer an option to
use the remote tracking branch name as the new local branch name.

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

git-gui: Maintain remote and source ref for tracking... Shawn O. Pearce Wed, 4 Jul 2007 05:10:41 +0000 (01:10 -0400)

git-gui: Maintain remote and source ref for tracking branches

In the next change I want to let the user create their local branch
name to match the remote branch name, so that the existing push
dialog can push the branch back up to the remote repository without
needing to do any sort of remapping. To do that we need to know
exactly what branch name the remote system is using.

So all_tracking_branches returns a list of specifications, where
each specification is itself a list of:

- local ref name (destination we fetch into)
- remote name (repository we fetch from)
- remote ref name (source ref we fetch from)

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

git-gui: Optimize for newstyle refs/remotes layoutShawn O. Pearce Wed, 4 Jul 2007 04:15:41 +0000 (00:15 -0400)

git-gui: Optimize for newstyle refs/remotes layout

Most people using Git 1.5.x and later are using the newer style
of remotes layout where all of their tracking branches are in
refs/remotes and refs/heads contains only the user's own local
branches.

In such a situation we can avoid calling is_tracking_branch
for each head we are considering because we know that all of
the heads must be local branches if no fetch option or Pull:
line maps a branch into that namespace.

If however any remote maps a remote branch into a local
tracking branch that resides in refs/heads we do exactly
what we did before, which requires scanning through all
fetch lines in case any patterns are matched.

I also switched some regexp/regsub calls to string match
as this can be a faster operation for prefix matching.

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

git-gui: Refactor the delete branch dialog to use class... Shawn O. Pearce Wed, 4 Jul 2007 03:33:59 +0000 (23:33 -0400)

git-gui: Refactor the delete branch dialog to use class system

A simple refactoring of the delete branch dialog to allow use of
the class construct to better organize the code and to reuse the
revision selection code of our new choose_rev mega-widget.

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

git-gui: Abstract the revision picker into a mega widgetShawn O. Pearce Wed, 4 Jul 2007 02:57:18 +0000 (22:57 -0400)

git-gui: Abstract the revision picker into a mega widget

This rather large change pulls the "Starting Revision" part of the
new branch dialog into a mega widget that we can use anytime we
need to select a commit SHA-1. To make use of the mega widget I
have also refactored the branch dialog to use the class system,
much like the delete remote branch dialog already does.

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

git-gui: Teach class system to support [$this cmd]... Shawn O. Pearce Sat, 30 Jun 2007 08:34:59 +0000 (04:34 -0400)

git-gui: Teach class system to support [$this cmd] syntax

Its handy to be able to ask an object to do something for you by
handing it a subcommand. For example if we want to get the value
of an object's private field the object could expose a method that
would return that value. Application level code can then invoke
"$inst get" to perform the method call.

Tk uses this pattern for all of its widgets, so we'd certainly
like to use it for our own mega-widgets that we might develop.
Up until now we haven't needed such functionality, but I'm working
on a new revision picker mega-widget that would benefit from it.

To make this work we have to change the definition of $this to
actually be a procedure within the namespace. By making $this a
procedure any caller that has $this can call subcommands by passing
them as the first argument to $this. That subcommand then needs
to call the proper subroutine.

Placing the dispatch procedure into the object's variable namespace
ensures that it will always be deleted when the object is deleted.

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

Merge branch 'maint'Shawn O. Pearce Mon, 9 Jul 2007 01:10:03 +0000 (21:10 -0400)

Merge branch 'maint'

* maint:
git-gui: Skip nicknames when selecting author initials

git-gui: Skip nicknames when selecting author initialsShawn O. Pearce Mon, 9 Jul 2007 01:06:43 +0000 (21:06 -0400)

git-gui: Skip nicknames when selecting author initials

Our blame viewer only grabbed the first initial of the git.git
author string "Simon 'corecode' Schubert". Here the problem was we
looked at Simon, pulled the S into the author initials, then saw
the single quote as the start of the next name and did not like
this character as it was not an uppercase letter.

We now skip over single quoted nicknames placed within the author
name field and grab the initials following it. So the above name
will get the initials SS, rather than just S.

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

git-gui: use "blame -w -C -C" for "where did it come... Junio C Hamano Thu, 21 Jun 2007 04:44:16 +0000 (21:44 -0700)

git-gui: use "blame -w -C -C" for "where did it come from, originally?"

The blame window shows "who wrote the piece originally" and "who
moved it there" in two columns. In order to identify the former
more correctly, it helps to use the new -w option.

[sp: Minor change to only enable -w if underlying git >= 1.5.3]

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

git-gui: New Git version check support routineShawn O. Pearce Sun, 8 Jul 2007 22:48:08 +0000 (18:48 -0400)

git-gui: New Git version check support routine

Some newer features of git-gui want to rely on features that are
new to Git 1.5.3. Since they were added as part of the 1.5.3
development series we cannot use those features with versions of
Git that are older than 1.5.3, such as from the stable 1.5.2 series.

We introduce [git-version >= 1.5.3] to allow the caller to get a
response of 0 if the current version of git is < 1.5.3 and 1 if
the current version of git is >= 1.5.3. This makes it easy to
setup conditional code based upon the version of Git available to
us at runtime.

Instead of parsing the version text by hand we now use the Tcl
[package vcompare] subcommand to compare the two version strings.
This works nicely, as Tcl as already done all of the hard work
of doing version comparsions. But we do have to remove the Git
specific components such as the Git commit SHA-1, commit count and
release candidate suffix (rc) as we want only the final release
version number.

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

user-manual: fix directory name in git-archive exampleWilliam Pursell Fri, 29 Jun 2007 13:08:29 +0000 (14:08 +0100)

user-manual: fix directory name in git-archive example

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

user-manual: more explanation of push and pull usageJ. Bruce Fields Mon, 18 Jun 2007 20:38:22 +0000 (16:38 -0400)

user-manual: more explanation of push and pull usage

Recently a user on the mailing list complained that they'd read the
manual but couldn't figure out how to keep a couple private repositories
in sync. They'd tried using push, and were surprised by the effect.

Add a little text in an attempt to make it clear that:
- Pushing to a branch that is checked out will have odd results.
- It's OK to synchronize just using pull if that's simpler.

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

tutorial: Fix typoJ. Bruce Fields Fri, 22 Jun 2007 03:17:40 +0000 (23:17 -0400)

tutorial: Fix typo

"You" should be "Alice" here.

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

user-manual: grammar and style fixesAndy Parkins Tue, 12 Jun 2007 15:43:19 +0000 (16:43 +0100)

user-manual: grammar and style fixes

- "method of" is vulgar, "method for" is nicer
- "recovery" becomes "recovering" from Steve Hoelzer's original version
of this patch
- "if you want" is nicer as "if you wish"
- "you may" should be "you can"; "you may" is "you have permission to"
rather than "you can"'s "it is possible to"

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>

git-gui: Honor rerere.enabled configuration optionShawn O. Pearce Sun, 8 Jul 2007 21:41:24 +0000 (17:41 -0400)

git-gui: Honor rerere.enabled configuration option

Recently in git.git change b4372ef136 Johannes Schindelin taught
git-commit.sh to invoke (or skip) calling git-rerere based upon
the rerere.enabled configuration setting:

So, check the config variable "rerere.enabled". If it is set
to "false" explicitely, do not activate rerere, even if
.git/rr-cache exists. This should help when you want to disable
rerere temporarily.

If "rerere.enabled" is not set at all, fall back to detection
of the directory .git/rr-cache.

We now do the same logic in git-gui's own commit implementation.

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

diff.c: make built-in hunk header pattern a separate... Junio C Hamano Sun, 8 Jul 2007 07:25:59 +0000 (00:25 -0700)

diff.c: make built-in hunk header pattern a separate table

This would hopefully make it easier to maintain. Initially we
would have "java" and "tex" defined, as they are the only ones
we already have.

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

gitweb: make "No commits" in project list gray, not... Matt McCutchen Thu, 28 Jun 2007 22:15:22 +0000 (18:15 -0400)

gitweb: make "No commits" in project list gray, not bold green

A missing return statement in git_get_last_activity made gitweb think
a project with no commits was in age class "age0", so the "No commits"
appeared in bold green, which was ridiculous. I added the return so
those projects get "noage" and added a block to gitweb.css to format
the "No commits" text gray.

Signed-off-by: Matt McCutchen <hashproduct@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: make search form generate pathinfo-style URLsMatt McCutchen Thu, 28 Jun 2007 18:57:07 +0000 (14:57 -0400)

gitweb: make search form generate pathinfo-style URLs

The search form generated traditional-style URLs with a "p=" parameter
even when the pathinfo feature was on. This patch makes it generate
pathinfo-style URLs when appropriate.

Signed-off-by: Matt McCutchen <hashproduct@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: prefer git_get_project_owner() over get_file_ow... Miklos Vajna Tue, 3 Jul 2007 22:11:23 +0000 (00:11 +0200)

gitweb: prefer git_get_project_owner() over get_file_owner()

This way if $projects_list exists, it'll be used, otherwise get_file_owner()
will be used as before.

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

gitweb: make repeated calls to git_get_project_owner... Junio C Hamano Wed, 4 Jul 2007 05:10:42 +0000 (22:10 -0700)

gitweb: make repeated calls to git_get_project_owner() bearable

If repeated calls to git_get_project_owner() are made, we would have read the
same file over and over again.

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

Merge branch 'js/stash'Junio C Hamano Sat, 7 Jul 2007 20:38:06 +0000 (13:38 -0700)

Merge branch 'js/stash'

* js/stash:
Teach git-stash to "apply --index"

Merge branch 'jc/diff-mark'Junio C Hamano Sat, 7 Jul 2007 20:37:32 +0000 (13:37 -0700)

Merge branch 'jc/diff-mark'

* jc/diff-mark:
diff: honor binariness specified in attributes
Fix configuration syntax to specify customized hunk header patterns.
Per-path attribute based hunk header selection.
Future-proof source for changes in xdemitconf_t
Introduce diff_filespec_is_binary()

Merge branch 'maint'Junio C Hamano Sat, 7 Jul 2007 19:29:09 +0000 (12:29 -0700)

Merge branch 'maint'

* maint:
Fix "apply --reverse" with regard to whitespace

diff: honor binariness specified in attributesJunio C Hamano Sat, 7 Jul 2007 19:25:11 +0000 (12:25 -0700)

diff: honor binariness specified in attributes

The code shuffling mistakenly lost binariness specified with the
attribute mecahnism and made it always guess from the data.

Noticed by Johannes, with two test cases to t4020.

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

Fix "apply --reverse" with regard to whitespaceJohannes Schindelin Sat, 7 Jul 2007 17:50:39 +0000 (18:50 +0100)

Fix "apply --reverse" with regard to whitespace

"git apply" used to take check the whitespace in the wrong
direction.

Noticed by Daniel Barkalow.

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

diff-lib.c: don't strdup twiceRené Scharfe Sat, 7 Jul 2007 18:19:08 +0000 (20:19 +0200)

diff-lib.c: don't strdup twice

The static function read_directory in diff-lib.c is only ever called
with struct path_list lists with .strdup_paths turned on, i.e.
path_list_insert will strdup the paths for us (again). Let's take
advantage of that and stop doing it twice.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix configuration syntax to specify customized hunk... Junio C Hamano Sat, 7 Jul 2007 08:49:58 +0000 (01:49 -0700)

Fix configuration syntax to specify customized hunk header patterns.

This updates the hunk header customization syntax. The special
case 'funcname' attribute is gone.

You assign the name of the type of contents to path's "diff"
attribute as a string value in .gitattributes like this:

*.java diff=java
*.perl diff=perl
*.doc diff=doc

If you supply "diff.<name>.funcname" variable via the
configuration mechanism (e.g. in $HOME/.gitconfig), the value is
used as the regexp set to find the line to use for the hunk
header (the variable is called "funcname" because such a line
typically is the one that has the name of the function in
programming language source text).

If there is no such configuration, built-in default is used, if
any. Currently there are two default patterns: default and java.

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

git-branch: default to --trackJohannes Schindelin Fri, 6 Jul 2007 21:54:09 +0000 (22:54 +0100)

git-branch: default to --track

"git branch --track" will setup config variables when branching from
a remote branch, so that if you say "git pull" while being on that
branch, it automatically fetches the correct remote, and merges the
correct branch.

Often people complain that this is not the default for "git branch".
Make it so.

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

git-send-email: allow an email alias for --fromMichael Hendricks Thu, 5 Jul 2007 01:11:36 +0000 (19:11 -0600)

git-send-email: allow an email alias for --from

Signed-off-by: Michael Hendricks <michael@ndrix.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

cvsserver: always initialize state in argsplit()Frank Lichtenheld Sun, 17 Jun 2007 08:31:02 +0000 (10:31 +0200)

cvsserver: always initialize state in argsplit()

Other code assumes that this is initialized, so do it
even if there were no arguments given.

Signed-off-by: Dirk Koopman <djk@tobit.co.uk>
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

stash: allow running from a subdirectoryJames Bowes Fri, 6 Jul 2007 19:57:47 +0000 (15:57 -0400)

stash: allow running from a subdirectory

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule(1): update description and key namesLars Hjemli Fri, 6 Jul 2007 17:38:38 +0000 (19:38 +0200)

git-submodule(1): update description and key names

When git-submodule was updated to allow mapping between submodule name and
submodule path, the documentation was left untouched.

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

Enable "git rerere" by the config variable rerere.enabledJohannes Schindelin Fri, 6 Jul 2007 12:05:59 +0000 (13:05 +0100)

Enable "git rerere" by the config variable rerere.enabled

Earlier, "git rerere" was enabled by creating the directory
.git/rr-cache. That is definitely not in line with most other
features, which are enabled by a config variable.

So, check the config variable "rerere.enabled". If it is set
to "false" explicitely, do not activate rerere, even if
.git/rr-cache exists. This should help when you want to disable
rerere temporarily.

If "rerere.enabled" is not set at all, fall back to detection
of the directory .git/rr-cache.

[jc: with minimum tweaks]

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

Add [verse] to the SYNOPSIS section of git-submodule... Matt Kraai Sat, 7 Jul 2007 00:56:31 +0000 (17:56 -0700)

Add [verse] to the SYNOPSIS section of git-submodule.txt.

The SYNOPSIS section of git-submodule.txt contains two forms. Since
it doesn't use the verse style, the line boundary between them is not
preserved and the second form can appear on the same line as the first
form. Adding [verse] enables the verse style, which preserves the
line boundary between them.

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Change "added.moved or removed" to "added, moved or... Matt Kraai Sat, 7 Jul 2007 01:23:54 +0000 (18:23 -0700)

Change "added.moved or removed" to "added, moved or removed" in

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fixed a formulation mistake in Documentation/user-manua... Marcus Fritzsch Fri, 6 Jul 2007 07:02:20 +0000 (09:02 +0200)

Fixed a formulation mistake in Documentation/user-manual.txt

This one fixes a small formulation weirdness in
Documentation/user-manual.txt

Signed-off-by: Marcus Fritzsch <m@fritschy.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Teach git-stash to "apply --index"Johannes Schindelin Mon, 2 Jul 2007 11:14:49 +0000 (12:14 +0100)

Teach git-stash to "apply --index"

When given this subcommand, git-stash will try to merge the stashed
index into the current one. Only trivial merges are possible, since
we have no index for the index ;-) If a trivial merge is not possible,
git-stash will bail out with a hint to skip the --index option.

For good measure, finally include a test case.

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

Per-path attribute based hunk header selection.Junio C Hamano Fri, 6 Jul 2007 07:45:10 +0000 (00:45 -0700)

Per-path attribute based hunk header selection.

This makes"diff -p" hunk headers customizable via gitattributes mechanism.
It is based on Johannes's earlier patch that allowed to define a single
regexp to be used for everything.

The mechanism to arrive at the regexp that is used to define hunk header
is the same as other use of gitattributes. You assign an attribute, funcname
(because "diff -p" typically uses the name of the function the patch is about
as the hunk header), a simple string value. This can be one of the names of
built-in pattern (currently, "java" is defined) or a custom pattern name, to
be looked up from the configuration file.

(in .gitattributes)
*.java funcname=java
*.perl funcname=perl

(in .git/config)
[funcname]
java = ... # ugly and complicated regexp to override the built-in one.
perl = ... # another ugly and complicated regexp to define a new one.

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

Merge branch 'maint'Shawn O. Pearce Fri, 6 Jul 2007 08:03:24 +0000 (04:03 -0400)

Merge branch 'maint'

* maint:
git-gui: Ensure windows shortcuts always have .bat extension
git-gui: Include a Push action on the left toolbar
git-gui: Bind M1-P to push action
git-gui: Don't bind F5/M1-R in all windows

Conflicts:

git-gui.sh

git-gui: Ensure windows shortcuts always have .bat... Shawn O. Pearce Thu, 5 Jul 2007 22:39:40 +0000 (18:39 -0400)

git-gui: Ensure windows shortcuts always have .bat extension

Apparently under some setups on Windows Tk is hiding our file
extension recommendation of ".bat" from the user and that is
allowing the user to create a shortcut file which has no file
extension. Double clicking on such a file in Windows Explorer
brings up the associate file dialog, as Windows does not know
what application to launch.

We now append the file extension ".bat" to the filename of the
shortcut file if it has no extension or if it has one but it is
not ".bat".

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

git-gui: Include a Push action on the left toolbarShawn O. Pearce Fri, 6 Jul 2007 02:19:33 +0000 (22:19 -0400)

git-gui: Include a Push action on the left toolbar

Pushing changes to a remote system is a very common action for
many users of git-gui, so much so that in some workflows a user
is supposed to push immediately after they make a local commit
so that their change(s) are immediately available for their
teammates to view and build on top of.

Including the push button right below the commit button on the
left toolbar indicates that users should probably perform this
action after they have performed the commit action.

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

git-gui: Bind M1-P to push actionShawn O. Pearce Fri, 6 Jul 2007 02:15:00 +0000 (22:15 -0400)

git-gui: Bind M1-P to push action

Users often need to be able to push the current branch so that they
can publish their recent changes to anyone they are collaborating
with on the project. Associating a keyboard action with this will
make it easier for keyboard-oriented users to quickly activate the
push features.

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

git-gui: Don't bind F5/M1-R in all windowsShawn O. Pearce Fri, 6 Jul 2007 02:16:38 +0000 (22:16 -0400)

git-gui: Don't bind F5/M1-R in all windows

We actually only want our F5/M1-R keystroke bound in the main window.
Within a browser/blame/console window pressing these keys should not
execute the rescan action.

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

Future-proof source for changes in xdemitconf_tJohannes Schindelin Wed, 4 Jul 2007 18:05:46 +0000 (19:05 +0100)

Future-proof source for changes in xdemitconf_t

The instances of xdemitconf_t were initialized member by member.
Instead, initialize them to all zero, so we do not have
to update those places each time we introduce a new member.

[jc: minimally fixed by getting rid of a new global]

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

Introduce diff_filespec_is_binary()Junio C Hamano Fri, 6 Jul 2007 07:18:54 +0000 (00:18 -0700)

Introduce diff_filespec_is_binary()

This replaces an explicit initialization of filespec->is_binary
field used for rename/break followed by direct access to that
field with a wrapper function that lazily iniaitlizes and
accesses the field. We would add more attribute accesses for
the use of diff routines, and it would be better to make this
abstraction earlier.

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

Prefer EMAIL to username@hostname.Matt Kraai Fri, 6 Jul 2007 00:29:41 +0000 (17:29 -0700)

Prefer EMAIL to username@hostname.

The environment variable $EMAIL gives a better default of user's
preferred e-mail address than the hardcoded "username@hostname",
as it is understood by many existing programs.

We still honor GIT_*_EMAIL environment variables and user.email
configuration variable give them higher precedence, so that the
user can override $EMAIL or "username@hostname", as they are
likely to be more specific to the context of working on a
particular project.

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make git-clone GIT_WORK_TREE awareMatthias Lederhofer Thu, 5 Jul 2007 23:10:44 +0000 (01:10 +0200)

make git-clone GIT_WORK_TREE aware

If GIT_WORK_TREE is set git-clone will use that path for the
working tree.

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

git-clone: split up long &&-command-chain and use a... Matthias Lederhofer Thu, 5 Jul 2007 22:54:33 +0000 (00:54 +0200)

git-clone: split up long &&-command-chain and use a function for cleanup

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

fix remote.origin.url in tutorial.txtAlecs King Thu, 5 Jul 2007 16:21:16 +0000 (00:21 +0800)

fix remote.origin.url in tutorial.txt

Bob cloned from Alice.
The origin url is actually Alice's repo.

Signed-off-by: Alecs King <alecsk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter-branch: fail gracefully when a filter failsJohannes Schindelin Wed, 4 Jul 2007 14:36:01 +0000 (15:36 +0100)

filter-branch: fail gracefully when a filter fails

A common mistake is to provide a filter which fails unwantedly. For
example, this will stop in the middle:

git filter-branch --env-filter '
test $GIT_COMMITTER_EMAIL = xyz &&
export GIT_COMMITTER_EMAIL = abc' rewritten

When $GIT_COMMITTER_EMAIL is not "xyz", the test fails, and consequently
the whole filter has a non-zero exit status. However, as demonstrated
in this example, filter-branch would just stop, and the user would be
none the wiser.

Also, a failing msg-filter would not have been caught, as was the
case with one of the tests.

This patch fixes both issues, by paying attention to the exit status
of msg-filter, and by saying what failed before exiting.

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

Add -v|--verbose to git remote to show remote urlAlex Riesen Thu, 5 Jul 2007 22:06:56 +0000 (00:06 +0200)

Add -v|--verbose to git remote to show remote url

Many other commands already have such an option, and I find it
practical to see where all the remotes actually come from.

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

filter-branch documentation: clarify which filters... Johannes Schindelin Thu, 5 Jul 2007 16:07:48 +0000 (17:07 +0100)

filter-branch documentation: clarify which filters are eval'ed

All filters, except the commit filter, are evaluated.

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

git-stash: allow more descriptive reminder message... Junio C Hamano Thu, 5 Jul 2007 05:46:09 +0000 (22:46 -0700)

git-stash: allow more descriptive reminder message when saving

This allows you to say:

$ git stash starting to implement X

while creating a stash, and the resulting "stash list entry
would read as:

$ git stash list
stash@{0}: On master: starting to implement X

instead of the default message which talks about the commit the
stash happens to be based on (hence does not have much to do
with what the stashed change is trying to do).

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

Add urls.txt to git-clone man pageAndrew Ruder Wed, 4 Jul 2007 22:21:36 +0000 (17:21 -0500)

Add urls.txt to git-clone man page

Since git-clone is one of the many commands taking
URLs to remote repositories as an argument, it should include
the URL-types list from urls.txt.

Split up urls.txt into urls.txt and urls-remotes.txt. The latter
should be used by anything besides git-clone where a discussion of
using .git/config and .git/remotes/ to name URLs just doesn't make
as much sense.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix git-stash(1) markup.Junio C Hamano Thu, 5 Jul 2007 05:09:20 +0000 (22:09 -0700)

Fix git-stash(1) markup.

Noticed by Randal L. Schwartz.

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

Allow rebase to run if upstream is completely mergedJohannes Sixt Wed, 4 Jul 2007 20:09:10 +0000 (22:09 +0200)

Allow rebase to run if upstream is completely merged

Consider this history:

o--o-...-B <- origin
\ \
x--x--M--x--x <- master

In this situation, rebase considers master fully up-to-date and would
not do anything. However, if there were additional commits on origin,
the rebase would run and move the commits x on top of origin.

Here we change rebase to short-circuit out only if the history since origin
is strictly linear. Consequently, the above as well as a history like this
would be linearized:

o--o <- origin
\
x--x
\ \
x--M--x--x <- master

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

Remove USE_PAGER from git-pickaxe and git-annotateAndrew Ruder Wed, 4 Jul 2007 22:21:49 +0000 (17:21 -0500)

Remove USE_PAGER from git-pickaxe and git-annotate

git-blame (and friends) specifically leave the pager turned off
in the case that --incremental is specified as this isn't for
human consumption. git-pickaxe and git-annotate will turn it on
themselves otherwise.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: fix blocking with svn:// servers after do_switchEric Wong Wed, 4 Jul 2007 21:07:42 +0000 (14:07 -0700)

git-svn: fix blocking with svn:// servers after do_switch

We now explicitly disconnect before starting new SVN::Ra
connections. SVN::Ra objects will automatically be disconnected
from the server on DESTROY.

SVN servers seem to have problems accepting multiple connections
from one client, and the SVN library has trouble being connected
to multiple servers at once. This appears to cause opening the
second connection to block, and cause git-svn to be unusable
after using the do_switch() function.

git-svn opens another connection because a workaround is
necesary for the buggy reparent function handling on certain
versions of svn:// and svn+ssh:// servers. Instead of using the
reparent function (analogous to chdir), it will reopen a new
connection to a different URL on the SVN server.

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

git-gui: Correct resizing of remote branch delete dialogShawn O. Pearce Wed, 4 Jul 2007 18:06:28 +0000 (14:06 -0400)

git-gui: Correct resizing of remote branch delete dialog

The status field of the remote branch delete dialog was marked to
expand, which meant that if the user grew the window vertically
most of the new vertical height was given to the status field and
not to the branch list. Since the status field is just a single
line of text there is no reason for it to gain additional height,
instead we should make sure all additional height goes to the
branch list.

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

filter-branch documentation: some more touch-ups.Johannes Sixt Wed, 4 Jul 2007 07:32:47 +0000 (09:32 +0200)

filter-branch documentation: some more touch-ups.

- The map function used to fail, but no longer does (since 3520e1e8687.)
- Fix the "edge-graft" example.
- Show the same using .git/info/grafts.

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

filter-branch: added missing warn functionSteffen Prohaska Wed, 4 Jul 2007 08:36:24 +0000 (10:36 +0200)

filter-branch: added missing warn function

--tag-name-filter may have failed before because
warn is used for reporting but was not available.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Alter git-checkout reflog message to include "from... Sean Wed, 4 Jul 2007 08:33:36 +0000 (04:33 -0400)

Alter git-checkout reflog message to include "from" branch

As suggested by Junio, adding the current branch name to the
reflog message for git-checkout would be helpful. For example:

"checkout: moving from next to master"

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-init: set core.worktree if GIT_WORK_TREE is specifiedMatthias Lederhofer Tue, 3 Jul 2007 22:49:19 +0000 (00:49 +0200)

git-init: set core.worktree if GIT_WORK_TREE is specified

Now you can do the following to create a repository which
has a separate working tree:

/tmp/foo$ export GIT_DIR=/tmp/bar
/tmp/foo$ git --work-tree . init
Initialized empty Git repository in /tmp/bar/
/tmp/foo$ git config core.worktree
/tmp/foo

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

Do not check if getcwd() result begins with a slash.Junio C Hamano Wed, 4 Jul 2007 19:45:42 +0000 (12:45 -0700)

Do not check if getcwd() result begins with a slash.

In user space, and for getcwd(), the check to see if the
resulting path begins with a '/' does not make sense. This is
merely a mistake by Linus who is so used to code for the kernel,
where a d_path() return value pathname can be either a real
path, or something like "pipe:[8003]", and the difference is the
'/' at the beginning.

Pointed out by Dscho, Matthias Lederhofer and clarified by Linus.

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

filter-branch: a few more touch ups to the man pageJohannes Schindelin Wed, 4 Jul 2007 14:50:45 +0000 (15:50 +0100)

filter-branch: a few more touch ups to the man page

All based on comments from Frank Lichtenheld.

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

filter-branch: make output nicerJohannes Schindelin Wed, 4 Jul 2007 14:33:30 +0000 (15:33 +0100)

filter-branch: make output nicer

Instead of filling the screen with progress lines, use \r so that
the progress can be seen, but warning messages are more visible.

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

Fix t5516 to create test repo without hooksAlex Riesen Wed, 4 Jul 2007 12:06:04 +0000 (14:06 +0200)

Fix t5516 to create test repo without hooks

Otherwise the hooks will be executed on cygwin and the test will fail
because of the contributed hooks.

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

filter-branch: Avoid an error message in the map function.Johannes Sixt Wed, 4 Jul 2007 12:08:17 +0000 (14:08 +0200)

filter-branch: Avoid an error message in the map function.

When the map function didn't find the rewritten commit of the passed in
original id, it printed the original id, but it still fell through to
the 'cat', which failed with an error message.

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

Handle format.subjectprefix for every command which... Alex Riesen Wed, 4 Jul 2007 10:37:27 +0000 (12:37 +0200)

Handle format.subjectprefix for every command which accepts --pretty

Because the --pretty can be given as --pretty=email which historically produced
mails with patches. IOW, exactly what git-format-patch does.

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

Handle missing prefix for "Subject:" as if no prefix... Alex Riesen Wed, 4 Jul 2007 10:33:46 +0000 (12:33 +0200)

Handle missing prefix for "Subject:" as if no prefix given

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

Update reflog message created for stashesJunio C Hamano Wed, 4 Jul 2007 19:37:17 +0000 (12:37 -0700)

Update reflog message created for stashes

A stash is about a change on top of an existing commit, and not
about that commit that happened to be on which the change was
created. Match the message we see in "git stash list" with the
commit log message to make this clear.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>

repack: don't report "Nothing new to pack." if -q is... Uwe Kleine-König Tue, 3 Jul 2007 08:47:58 +0000 (10:47 +0200)

repack: don't report "Nothing new to pack." if -q is given

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add core.pager config variable.Brian Gernhardt Tue, 3 Jul 2007 18:18:11 +0000 (14:18 -0400)

Add core.pager config variable.

This adds a configuration variable that performs the same function as,
but is overridden by, GIT_PAGER.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Acked-by: Johannes E. Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-submodule: Fix two instances of the same typoCJ van den Berg Wed, 4 Jul 2007 16:22:14 +0000 (18:22 +0200)

git-submodule: Fix two instances of the same typo

They break the output of git submodule status.

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

gitk: Remove the unused stopfindproc functionPaul Mackerras Wed, 4 Jul 2007 12:41:19 +0000 (22:41 +1000)

gitk: Remove the unused stopfindproc function

This was a hangover from before the "Files" and "Pickaxe" parts of
the Find function were moved to the highlight facility in commit
60f7a7dc4904ba4baab44b70e2675a01e6172f54. It serves no useful
purpose any more, so this removes it.

Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Fix bug in the anc_or_desc routinePaul Mackerras Wed, 4 Jul 2007 11:57:04 +0000 (21:57 +1000)

gitk: Fix bug in the anc_or_desc routine

I missed the case where both nodes have no children and therefore
have no incoming arcs. This fixes it.

Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Fix the find and highlight functionsPaul Mackerras Wed, 4 Jul 2007 09:43:51 +0000 (19:43 +1000)

gitk: Fix the find and highlight functions

This reworks the way that the "Find" button (and the /, ?, ^F, and ^G
keys) works. Previously, pressing the "Find" button would cause gitk
to go off and scan through every commit to see which commits matched,
and the user interface was completely unreponsive during that time.
Now the searching is done in chunks using the scheduler, so the UI
still responds, and the search stops as soon as a matching commit is
found.

The highlighting of matches using a yellow background is now done in
the commit-drawing code and the highlighting code. This ensures that
all the commits that are visible that match are highlighted without
the search code having to find them all.

This also fixes a bug where previously-drawn commits that need to be
highlighted were not being highlighted.

Signed-off-by: Paul Mackerras <paulus@samba.org>

git-gui: Start blame windows as tall as possibleShawn O. Pearce Fri, 22 Jun 2007 05:29:20 +0000 (01:29 -0400)

git-gui: Start blame windows as tall as possible

Most users these days are using a windowing system attached to a
monitor that has more than 600 pixels worth of vertical space
available for application use. As most files stored by Git are
longer than they are wide (have more lines than columns) we want
to dedicate as much vertical space as we can to the viewer.

Instead of always starting the window at ~600 pixels high we now
start the window 100 pixels shorter than the screen claims it has
available to it. This -100 rule is used because some popular OSen
add menu bars at the top of the monitor, and docks on the bottom
(e.g. Mac OS X, CDE, KDE). We want to avoid making our window too
big and causing the window's resize control from being out of reach
of the user.

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