Code

git.git
17 years agogit-gui: Show original filename in blame tooltip
Shawn O. Pearce [Sat, 2 Jun 2007 01:59:29 +0000 (21:59 -0400)]
git-gui: Show original filename in blame tooltip

If we have two commits right next to each other in the final
file and they were kept as different blocks in the leftmost
column then its probably because the original filename was
different.  To help the user know where they are digging into
when they click on that link we now show the original file in
the tooltip, but to save space we do so only if the original
file is not the same as the file we are currently viewing.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Combine blame groups only if commit and filename match
Shawn O. Pearce [Sat, 2 Jun 2007 01:54:06 +0000 (21:54 -0400)]
git-gui: Combine blame groups only if commit and filename match

Consecutive chunks of a file could come from the same commit, but
have different original file names.  Previously we would have put
them into a single group, but then the hyperlink would jump to only
one of the files, and the other would not be accessible.  Now we can
get to the other file too.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Allow digging through history in blame viewer
Shawn O. Pearce [Sat, 2 Jun 2007 01:47:12 +0000 (21:47 -0400)]
git-gui: Allow digging through history in blame viewer

gitweb has long had a feature where the user can click on any
commit the blame display and go visit that commit's information
page.  From the user could go get the blame display for the file
they are tracking, and try to digg through the history of any
part of the code they are interested in seeing.

We now offer somewhat similiar functionality in git-gui.  The 4
digit commit abreviation in the first column of our blame view is
now offered as a hyperlink if the commit isn't the one we are now
viewing the blame output for (as there is no point in linking back
to yourself).  Clicking on that link will stop the current blame
engine (if still running), push the new target commit onto the
history stack, and restart the blame viewer at that commit, using
the "original file name" as supplied by git-blame for that chunk
of the output.

Users can navigate back to a version they had been viewing before
by way of a back button, which offers the prior commits in a popup
menu displayed right below the back button.  I'm always showing the
menu here as the cost of switching between views is very high; you
don't want to jump to a commit you are not interested in looking at
again.

During switches we throw away all data except the cached commit data,
as that is relatively small compared to most source files and their
annotation marks.  Unfortunately throwing this per-file data away in
Tcl seems to take some time; I probably should move the line indexed
arrays to proper lists and use [lindex] rather than the array lookup
(usually lists are faster).

We now start the git-blame process using "nice", so that its priority
will drop hopefully below our own.  If I don't do this the blame engine
gets a lot of CPU under Windows 2000 and the git-gui user interface is
almost non-responsive, even though Tcl is just sitting there waiting
for events.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Display a progress bar during blame annotation gathering
Shawn O. Pearce [Fri, 1 Jun 2007 22:29:20 +0000 (18:29 -0400)]
git-gui: Display a progress bar during blame annotation gathering

Computing the blame records for a large file with a long project
history can take git a while to run; traditionally we have shown
a little meter in the status area of our blame viewer that lets
the user know how many lines have been finished, and how far we
are through the process.

Usually such progress indicators are drawn with a little progress
bar in the window, where the bar shows how much has been completed
and hides itself when the process is complete.  I'm using a very
simple hack to do that: draw a canvas with a filled rectangle.

Of course the time remaining has absolutely no relationship to the
progress meter.  It could take very little time for git-blame to get
the first 90% of the file, and then it could take many times that to
get the remaining 10%.  So the progress meter doesn't really have any
sort of assurances that it relates to the true progress of the work.
But in practice on some ugly history it does seem to hold a reasonable
indicator to the completion status.  Besides, its amusing to watch and
that keeps the user from realizing git is being somewhat slow.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Allow the user to control the blame/commit split point
Shawn O. Pearce [Fri, 1 Jun 2007 21:55:43 +0000 (17:55 -0400)]
git-gui: Allow the user to control the blame/commit split point

At one point I tried to present the blame viewer to an audience of
people on a 640 by 480 pixel LCD projector.  This did not work at
all as the top area (the file data) was taking up all of the screen
realestate and the split point was not adjustable by the user.  In
general locking the user into a specific ratio of display is just
not user friendly.

So we now place a split pane control into the middle of our blame
window, so the user can adjust it to their current needs.  If the
window increases (or decreases) in height we assign the difference
to the file data area, as that is generally the area of the window
that users are trying to see more of when they grow the window.

Unfortunately there appears to be a bug in the "pack" layout manager
in Tcl/Tk 8.4.1.  The status bar and the lower commit pane was being
squashed if the window decreased in height.  I think the pack manager
was just not decreasing the size of the panedwindow slave properly if
the main window shrank.  Switching to the "grid" layout manager fixes
the problem, but is slightly uglier setup code.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Show author initials in blame groups
Shawn O. Pearce [Fri, 1 Jun 2007 20:10:56 +0000 (16:10 -0400)]
git-gui: Show author initials in blame groups

Frequently when I'm looking at blocks of code in the blame
viewer I want to know who is the culprit, or who I should
be praising for a job well done.  The tooltips nicely show
this if I mouse over a block, but it doesn't work to get
this detail at a glance.

Since we don't use the leftmost commit column for anything
after the first line within a commit group I'm now tossing
the author's initials into that field, right justified.  It
is quite clearly not a SHA-1 number as we always show the
SHA-1 in lowercase, while we explicitly select only the
uppercase characters from an author's name field, and only
those that are following whitespace.

I'm using initials here over anything else as they are quite
commonly unique within small development teams.  The leading
part of the email address field was out for some of the teams
I work with, as there the email addresses are all of the form
"Givenname.Surname@initech.com".  That will never fit into the
4 characters available.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Space the commit group continuation out in blame view
Shawn O. Pearce [Fri, 1 Jun 2007 19:31:01 +0000 (15:31 -0400)]
git-gui: Space the commit group continuation out in blame view

The | in the continued lines of the same commit group as not
easily seen on the left edge; putting a single space in front
of the pipe makes it slightly more visually appealing to me as
I can follow the line down through the group to the next commit
marker.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Cleanup minor style nit
Shawn O. Pearce [Fri, 1 Jun 2007 07:34:00 +0000 (03:34 -0400)]
git-gui: Cleanup minor style nit

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Remove unnecessary reshow of blamed commit
Shawn O. Pearce [Fri, 1 Jun 2007 07:33:28 +0000 (03:33 -0400)]
git-gui: Remove unnecessary reshow of blamed commit

Because we no longer redraw colors every time we select a particular
commit there is no need to redraw the screen after we get a new commit
in from blame --incremental.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Highlight the blame commit header from everything else
Shawn O. Pearce [Fri, 1 Jun 2007 07:19:27 +0000 (03:19 -0400)]
git-gui: Highlight the blame commit header from everything else

The selected commit's blame header is now drawn in green, using
the same background color that is shown in the main file content
viewer.  The result is a much better looking commit pane, as we
use bold for header "keys" and proportional width fonts for the
stuff that doesn't need to be fixed width to maintain its formatting.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Display tooltips in blame viewer
Shawn O. Pearce [Fri, 1 Jun 2007 07:01:45 +0000 (03:01 -0400)]
git-gui: Display tooltips in blame viewer

When the mouse is over a particular line and we have blame data
for that line, but its not the active commit, we should show the
user information about that commit like who the author was and
what the subject (first line) was.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Use arror cursor in blame viewer file data
Shawn O. Pearce [Fri, 1 Jun 2007 06:59:21 +0000 (02:59 -0400)]
git-gui: Use arror cursor in blame viewer file data

Since we don't allow the user to select text from the file
viewer right now I'm disabling the normal text cursor and
putting in a plain arror instead.  This way users don't
think they can select and copy text, because they can't.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Simplify consecutive lines that come from the same commit
Shawn O. Pearce [Fri, 1 Jun 2007 05:04:46 +0000 (01:04 -0400)]
git-gui: Simplify consecutive lines that come from the same commit

If two consecutive lines in the final file came from the same commit
then we store a "|" in the first column rather than the commit id,
for the second and subsequent lines in that block.  This cleans up
the interface so runs associated with the same commit can be more
easily seen visually.

We also now use the abbreviation "work" for the uncommitted stuff in
your working directory, rather than "0000".  This looks nicer to the
eyes and explains pretty quickly what is going on.

There was also a minor bug in the commit abbreviation column for the
last line of the file.  This is now also fixed.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Improve the coloring in blame viewer
Shawn O. Pearce [Fri, 1 Jun 2007 04:38:31 +0000 (00:38 -0400)]
git-gui: Improve the coloring in blame viewer

The git-gui blame viewer has always been ugly as s**t.  Linus Torvalds
suggested the coloring scheme I'm using here, which is two different
shades of grey for the background colors, and black text on a pale green
background for the currently selected/focused commit.

The difference is a massive improvement.  The interface no longer will
cause seizures in people who are prone to that sort of thing.  It no
longer uses a very offensive hot pink.  The green being current actually
makes sense.  And not having the background of the other non-current
lines change when you change the current commit is really a big deal.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Remove empty blank line at end of blame
Shawn O. Pearce [Fri, 1 Jun 2007 04:08:58 +0000 (00:08 -0400)]
git-gui: Remove empty blank line at end of blame

The blame viewer has this silly blank line at the bottom of it;
we really don't want to see it displayed as we will never get
any blame data for that line (it doesn't exist in the source).

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Cleanup blame::new widget initialization
Shawn O. Pearce [Fri, 1 Jun 2007 04:05:49 +0000 (00:05 -0400)]
git-gui: Cleanup blame::new widget initialization

A lot of this code was pre-class, which meant that I just sort of
copied and pasted my way through it, rather than being really smart
and using a variable for each widget's path name.  Since we have a
field for each path, we can use those throughout the constructor
and make things a lot neater.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Add a 4 digit commit abbreviation to the blame viewer
Shawn O. Pearce [Fri, 1 Jun 2007 03:58:55 +0000 (23:58 -0400)]
git-gui: Add a 4 digit commit abbreviation to the blame viewer

We now show the first 4 digits of each commit in the left most
column of our blame viewer, before the line numbers.  These are
drawn as the data becomes available from git-blame --incremental,
and helps the user to visually group lines together.

I'm using only the first 4 digits because within a given cluster
of lines its unlikely that two neighboring commits will have the
same 4 digit prefix.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoMerge branch 'maint'
Shawn O. Pearce [Wed, 6 Jun 2007 05:22:47 +0000 (01:22 -0400)]
Merge branch 'maint'

* maint:
  New selection indication and softer colors

17 years agoNew selection indication and softer colors
Matthijs Melchior [Tue, 5 Jun 2007 21:50:02 +0000 (23:50 +0200)]
New selection indication and softer colors

The default font was already bold, so marking the selected file with bold
font did not work.  Change that to lightgray background.
Also, the header colors are now softer, giving better readability.

Signed-off-by: Matthijs Melchior <mmelchior@xs4all.nl>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoMerge branch 'gb/idx'
Junio C Hamano [Wed, 6 Jun 2007 04:36:51 +0000 (21:36 -0700)]
Merge branch 'gb/idx'

* gb/idx:
  Unify write_index_file functions

17 years agogit-merge-file: refuse to merge binary files
Johannes Schindelin [Tue, 5 Jun 2007 02:37:13 +0000 (03:37 +0100)]
git-merge-file: refuse to merge binary files

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agomerge-recursive: refuse to merge binary files
Johannes Schindelin [Tue, 5 Jun 2007 02:36:49 +0000 (03:36 +0100)]
merge-recursive: refuse to merge binary files

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agoMove buffer_is_binary() to xdiff-interface.h
Johannes Schindelin [Tue, 5 Jun 2007 02:36:11 +0000 (03:36 +0100)]
Move buffer_is_binary() to xdiff-interface.h

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

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agogit-fsck: learn about --verbose
Johannes Schindelin [Tue, 5 Jun 2007 02:44:00 +0000 (03:44 +0100)]
git-fsck: learn about --verbose

With --verbose, it gets really chatty now.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agogitweb: Handle non UTF-8 text better
Martin Koegler [Sun, 3 Jun 2007 15:42:44 +0000 (17:42 +0200)]
gitweb: Handle non UTF-8 text better

gitweb assumes that everything is in UTF-8. If a text contains invalid
UTF-8 character sequences, the text must be in a different encoding.

This commit introduces $fallback_encoding which would be used as input
encoding if gitweb encounters text with is not valid UTF-8.

Add basic test for this in t/t9500-gitweb-standalone-no-errors.sh

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Tested-by: Alexandre Julliard <julliard@winehq.org>
Tested-by: Ismail Dönmez <ismail@pardus.org.tr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agoAdd test-sha1 to .gitignore.
Randal L. Schwartz [Sun, 3 Jun 2007 15:27:52 +0000 (08:27 -0700)]
Add test-sha1 to .gitignore.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 years agoTeach git-tag about showing tag annotations.
Matthijs Melchior [Sun, 3 Jun 2007 00:05:39 +0000 (02:05 +0200)]
Teach git-tag about showing tag annotations.

The <pattern> for -l is now a shell pattern, not a list of grep parameters.
Option -l may be repeated with another <pattern>.

The new -n [<num>] option specifies how many lines from
the annotation are to be printed.
Not specifieing -n or -n 0 will just produce the tag names
Just -n or -n 1 will show the first line of the annotation on
the tag line.
Other valuse for -n will show that number of lines from the annotation.

The exit code used to indicate if any tag was found.
This is changed due to a different implementation.

A good way to test a tag for existence is to use:
git show-ref --quiet --verify refs/tags/$TAGNAME

Signed-off-by: Matthijs Melchior <mmelchior@xs4all.nl>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-apply: what is detected and fixed is not just trailing spaces.
Junio C Hamano [Sun, 3 Jun 2007 02:55:54 +0000 (19:55 -0700)]
git-apply: what is detected and fixed is not just trailing spaces.

But we kept saying "trailing whitespace" all the same.  Reword the
error messages a bit.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoUpdate to SubmittingPatches
Johannes Schindelin [Sun, 3 Jun 2007 00:46:47 +0000 (01:46 +0100)]
Update to SubmittingPatches

Make people aware of our testsuite, and of non-ASCII encodings.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' to sync with 1.5.2.1
Junio C Hamano [Sun, 3 Jun 2007 02:36:20 +0000 (19:36 -0700)]
Merge branch 'maint' to sync with 1.5.2.1

17 years agoRelease Notes: start preparing for 1.5.3
Junio C Hamano [Sun, 3 Jun 2007 02:32:48 +0000 (19:32 -0700)]
Release Notes: start preparing for 1.5.3

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branches 'lh/submodules' and 'pb/am'
Junio C Hamano [Sun, 3 Jun 2007 02:04:54 +0000 (19:04 -0700)]
Merge branches 'lh/submodules' and 'pb/am'

* lh/submodules:
  Add basic test-script for git-submodule
  Add git-submodule command

* pb/am:
  Remove git-applypatch
  git-applymbox: Remove command

17 years agoMerge branch 'maint'
Shawn O. Pearce [Sun, 3 Jun 2007 01:05:13 +0000 (21:05 -0400)]
Merge branch 'maint'

* maint:
  Revert "Make the installation target of git-gui a little less chatty"
  git-gui: Verify Tcl/Tk is new enough for our needs
  git-gui: Attach font_ui to all spinbox widgets

17 years agoRevert "Make the installation target of git-gui a little less chatty"
Shawn O. Pearce [Sun, 3 Jun 2007 00:09:00 +0000 (20:09 -0400)]
Revert "Make the installation target of git-gui a little less chatty"

This reverts commit c289f6fa1f8642a5caf728ef8ff87afd5718cd99.

Junio pointed out that Alex's change breaks in some cases, like
when V=1, and is more verbose than it should be even if that worked.
I'm backing it out and redoing it.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Verify Tcl/Tk is new enough for our needs
Shawn O. Pearce [Sat, 2 Jun 2007 20:11:26 +0000 (16:11 -0400)]
git-gui: Verify Tcl/Tk is new enough for our needs

For quite a while we have been assuming the user is running on
a Tcl/Tk 8.4 or later platform.  This may not be the case on
some very old systems.  Unfortunately I am pretty far down the
path of using the Tcl/Tk 8.4 commands and options and cannot
easily work around them to support earlier versions of Tcl/Tk.
So we'll check that we are using the correct version up front,
and if not we'll stop with a related error message.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Attach font_ui to all spinbox widgets
Shawn O. Pearce [Sat, 2 Jun 2007 21:18:46 +0000 (17:18 -0400)]
git-gui: Attach font_ui to all spinbox widgets

Earlier I missed making sure our spinbox widgets used the same font
as the other widgets around them.  This meant that using a main font
with a size of 20 would make every widget in the options dialog huge,
but the spinboxes would be left with whatever the OS native font is.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoGIT 1.5.2.1 v1.5.2.1
Junio C Hamano [Sat, 2 Jun 2007 22:01:33 +0000 (15:01 -0700)]
GIT 1.5.2.1

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoUnify write_index_file functions
Geert Bosch [Fri, 1 Jun 2007 19:18:05 +0000 (15:18 -0400)]
Unify write_index_file functions

This patch unifies the write_index_file functions in
builtin-pack-objects.c and index-pack.c.  As the name
"index" is overloaded in git, move in the direction of
using "idx" and "pack idx" when refering to the pack index.
There should be no change in functionality.

Signed-off-by: Geert Bosch <bosch@gnat.com>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd basic test-script for git-submodule
Lars Hjemli [Sat, 2 Jun 2007 01:27:42 +0000 (03:27 +0200)]
Add basic test-script for git-submodule

This test tries to verify basic sanity of git-submodule, i.e. that it is
able to clone and update a submodule repository, that its status output is
sane, and that it barfs when the submodule path is occupied during init.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'np/pack'
Junio C Hamano [Sat, 2 Jun 2007 19:18:56 +0000 (12:18 -0700)]
Merge branch 'np/pack'

* np/pack:
  fix repack with --max-pack-size
  builtin-pack-object: cache small deltas
  git-pack-objects: cache small deltas between big objects
  builtin-pack-objects: don't fail, if delta is not possible

17 years agoMerge branch 'sp/pack'
Junio C Hamano [Sat, 2 Jun 2007 19:18:51 +0000 (12:18 -0700)]
Merge branch 'sp/pack'

* sp/pack:
  Style nit - don't put space after function names
  Ensure the pack index is opened before access
  Simplify index access condition in count-objects, pack-redundant
  Test for recent rev-parse $abbrev_sha1 regression
  rev-parse: Identify short sha1 sums correctly.
  Attempt to delay prepare_alt_odb during get_sha1
  Micro-optimize prepare_alt_odb
  Lazily open pack index files on demand

17 years agogit-rebase: suggest to use git-add instead of git-update-index
Jonas Fonseca [Sat, 2 Jun 2007 17:59:49 +0000 (19:59 +0200)]
git-rebase: suggest to use git-add instead of git-update-index

The command is part of the main porcelain making git-add more
appropriate.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Junio C Hamano [Sat, 2 Jun 2007 19:05:08 +0000 (12:05 -0700)]
Merge branch 'maint'

* maint:
  Use =20 when rfc2047 encoding spaces.
  Create a new manpage for the gitignore format, and reference it elsewhere
  Documentation: robustify asciidoc GIT_VERSION replacement

17 years agoUse =20 when rfc2047 encoding spaces.
Kristian Høgsberg [Fri, 1 Jun 2007 21:08:12 +0000 (17:08 -0400)]
Use =20 when rfc2047 encoding spaces.

Encode ' ' using '=20' even though rfc2047 allows using '_' for
readability.  Unfortunately, many programs do not understand this and
just leave the underscore in place.  Using '=20' seems to work better.

[jc: with adjustment to t3901]

Signed-off-by: Kristian Høgsberg <hoegsberg@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoCreate a new manpage for the gitignore format, and reference it elsewhere
Josh Triplett [Sat, 2 Jun 2007 17:08:54 +0000 (10:08 -0700)]
Create a new manpage for the gitignore format, and reference it elsewhere

Only git-ls-files(1) describes the gitignore format in detail, and it does so
with reference to git-ls-files options.  Most users don't use the plumbing
command git-ls-files directly, and shouldn't have to look in its manpage for
information on the gitignore format.

Create a new manpage gitignore(5) (Documentation/gitignore.txt), and factor
out the gitignore documentation into that file, changing it to refer to
.gitignore and $GIT_DIR/info/exclude as used by porcelain commands.  Reference
gitignore(5) from other relevant manpages and documentation.  Remove
now-redundant information on exclude patterns from git-ls-files(1), leaving
only information on how git-ls-files options specify exclude patterns and what
precedence they have.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation: robustify asciidoc GIT_VERSION replacement
Jeff King [Fri, 1 Jun 2007 09:10:30 +0000 (05:10 -0400)]
Documentation: robustify asciidoc GIT_VERSION replacement

Instead of using sed on the resulting file, we now have a
git_version asciidoc attribute. This means that we don't
pipe the output of asciidoc, which means we can detect build
failures.

Problem reported by Scott Lamb, solution suggested by Jonas Fonseca.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix git-am(1) synopsis formatting
Jonas Fonseca [Sat, 2 Jun 2007 17:56:44 +0000 (19:56 +0200)]
Fix git-am(1) synopsis formatting

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Shawn O. Pearce [Sat, 2 Jun 2007 03:28:15 +0000 (23:28 -0400)]
Merge branch 'maint'

* maint:
  git-gui: Don't quit when we destroy a child widget
  Make the installation target of git-gui a little less chatty

17 years agogit-gui: Don't quit when we destroy a child widget
Shawn O. Pearce [Fri, 1 Jun 2007 22:20:30 +0000 (18:20 -0400)]
git-gui: Don't quit when we destroy a child widget

Its wrong to exit the application if we destroy a random widget
contained withing something else; especially if its some small
trivial thing that has no impact on the overall operation.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoMake the installation target of git-gui a little less chatty
Alex Riesen [Fri, 1 Jun 2007 23:09:56 +0000 (01:09 +0200)]
Make the installation target of git-gui a little less chatty

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Internalize symbolic-ref HEAD reading logic
Shawn O. Pearce [Thu, 31 May 2007 00:39:46 +0000 (20:39 -0400)]
git-gui: Internalize symbolic-ref HEAD reading logic

To improve performance on fork+exec impoverished systems (such as
Windows) we want to avoid running git-symbolic-ref on every rescan
if we can do so.  A quick way to implement such an avoidance is to
just read the HEAD ref ourselves; we'll either see it as a symref
(starts with "ref: ") or we'll see it as a detached head (40 hex
digits).  In either case we can treat that as our current branch.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoMerge branch 'maint'
Shawn O. Pearce [Fri, 1 Jun 2007 03:34:24 +0000 (23:34 -0400)]
Merge branch 'maint'

* maint:
  git-gui: Allow as few as 0 lines of diff context

17 years agogit-gui: Allow as few as 0 lines of diff context
Shawn O. Pearce [Fri, 1 Jun 2007 03:32:54 +0000 (23:32 -0400)]
git-gui: Allow as few as 0 lines of diff context

Johannes Sixt pointed out that dropping to 0 lines of context
does allow the user to get more fine-grained hunk selection,
especially since we don't currently support "highlight and
apply (or revert)".

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agoFix minor grammatical typos in the git-gc man page
Theodore Ts'o [Thu, 31 May 2007 23:00:48 +0000 (19:00 -0400)]
Fix minor grammatical typos in the git-gc man page

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agodiff-delta: use realloc instead of xrealloc
Martin Koegler [Tue, 29 May 2007 19:08:35 +0000 (21:08 +0200)]
diff-delta: use realloc instead of xrealloc

Commit 83572c1a914d3f7a8dd66d954c11bbc665b7b923 changed many
realloc to xrealloc. This change was made in diff-delta.c too,
although the code can handle an out of memory failure.

This patch reverts this change in diff-delta.c.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Junio C Hamano [Thu, 31 May 2007 07:15:14 +0000 (00:15 -0700)]
Merge branch 'maint'

* maint:
  git-config: Improve documentation of git-config file handling
  git-config: Various small fixes to asciidoc documentation
  decode_85(): fix missing return.
  fix signed range problems with hex conversions

17 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Thu, 31 May 2007 07:09:26 +0000 (00:09 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  git-config: Improve documentation of git-config file handling
  git-config: Various small fixes to asciidoc documentation
  decode_85(): fix missing return.
  fix signed range problems with hex conversions

17 years agogit-config: Improve documentation of git-config file handling
Frank Lichtenheld [Thu, 31 May 2007 00:35:37 +0000 (02:35 +0200)]
git-config: Improve documentation of git-config file handling

The description which files git-config uses and how the various
command line options and environment variables affect its
behaviour was incomplete, outdated and confusing.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-config: Various small fixes to asciidoc documentation
Frank Lichtenheld [Thu, 31 May 2007 00:35:36 +0000 (02:35 +0200)]
git-config: Various small fixes to asciidoc documentation

Add '' around the only mentioned commandline option that didn't
have it.

Make reference to section EXAMPLE a link and rename it to
EXAMPLES because it actually contains a lot of examples.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoalways start looking up objects in the last used pack first
Nicolas Pitre [Thu, 31 May 2007 02:48:13 +0000 (22:48 -0400)]
always start looking up objects in the last used pack first

Jon Smirl said:

| Once an object reference hits a pack file it is very likely that
| following references will hit the same pack file. So first place to
| look for an object is the same place the previous object was found.

This is indeed a good heuristic so here it is.  The search always start
with the pack where the last object lookup succeeded.  If the wanted
object is not available there then the search continues with the normal
pack ordering.

To test this I split the Linux repository into 66 packs and performed a
"time git-rev-list --objects --all > /dev/null".  Best results are as
follows:

Pack Sort w/o this patch w/ this patch
-------------------------------------------------------------
recent objects last 26.4s 20.9s
recent objects first 24.9s 18.4s

This shows that the pack order based on object age has some influence,
but that the last-used-pack heuristic is even more significant in
reducing object lookup.

Signed-off-by: Nicolas Pitre <nico@cam.org> --- Note: the
--max-pack-size to git-repack currently produces packs with old objects
after those containing recent objects.  The pack sort based on
filesystem timestamp is therefore backward for those.  This needs to be
fixed of course, but at least it made me think about this variable for
the test.
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agofix repack with --max-pack-size
Nicolas Pitre [Thu, 31 May 2007 01:43:12 +0000 (21:43 -0400)]
fix repack with --max-pack-size

Two issues here:

1) git-repack -a --max-pack-size=10 on the GIT repo dies pretty quick.
   There is a lot of confusion about deltas that were suposed to be
   reused from another pack but that get stored undeltified due to pack
   limit and object size doesn't match entry->size anymore.  This test
   is not really worth the complexity for determining when it is valid
   so get rid of it.

2) If pack limit is reached, the object buffer is freed, including when
   it comes from a cached delta data.  In practice the object will be
   stored in a subsequent pack undeltified, but let's make sure no
   pointer to freed data subsists by clearing entry->delta_data.

I also reorganized that code a bit to make it more readable.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMakefile: Use generic rule to build test programs
Julian Phillips [Wed, 30 May 2007 23:18:24 +0000 (00:18 +0100)]
Makefile: Use generic rule to build test programs

Use a generic make rule to build all the test programs, rather than
specifically mentioning each one.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint'
Shawn O. Pearce [Wed, 30 May 2007 23:34:49 +0000 (19:34 -0400)]
Merge branch 'maint'

* maint:
  git-gui: Allow creating a branch when none exists

17 years agogit-gui: Allow creating a branch when none exists
Shawn O. Pearce [Wed, 30 May 2007 15:27:49 +0000 (11:27 -0400)]
git-gui: Allow creating a branch when none exists

If the user has no branches at all (their refs/heads/ is empty)
and they are on a detached HEAD we have a valid repository but
there are no branches to populate into the branch pulldown in
the create branch dialog.  Instead of erroring out we can skip
that part of the dialog, much like we do with tracking branches
or tags when the user doesn't have any.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agodecode_85(): fix missing return.
Jerald Fitzjerald [Wed, 30 May 2007 12:39:58 +0000 (05:39 -0700)]
decode_85(): fix missing return.

When the function detected an invalid base85 sequence, it issued
an error message but forgot to return error status at that point
and kept going.

Signed-off-by: Jerald Fitzjerald <jfj@freemail.gr>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agofix signed range problems with hex conversions
Linus Torvalds [Wed, 30 May 2007 17:32:19 +0000 (10:32 -0700)]
fix signed range problems with hex conversions

Make hexval_table[] "const".  Also make sure that the accessor
function hexval() does not access the table with out-of-range
values by declaring its parameter "unsigned char", instead of
"unsigned int".

With this, gcc can just generate:

movzbl  (%rdi), %eax
movsbl  hexval_table(%rax),%edx
movzbl  1(%rdi), %eax
movsbl  hexval_table(%rax),%eax
sall    $4, %edx
orl     %eax, %edx

for the code to generate a byte from two hex characters.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd DLH to .mailmap
Junio C Hamano [Wed, 30 May 2007 00:55:47 +0000 (17:55 -0700)]
Add DLH to .mailmap

... and make the entries sorted.

17 years agoStyle nit - don't put space after function names
Shawn O. Pearce [Wed, 30 May 2007 06:13:42 +0000 (02:13 -0400)]
Style nit - don't put space after function names

Our style is to not put a space after a function name.  I did here,
and Junio applied the patch with the incorrect formatting.  So I'm
cleaning up after myself since I noticed it upon review.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoEnsure the pack index is opened before access
Shawn O. Pearce [Wed, 30 May 2007 06:13:14 +0000 (02:13 -0400)]
Ensure the pack index is opened before access

In this particular location of fsck the index should have already
been opened by verify_pack, which is called just before we get
here and loop through the object names.  However, just in case a
future version of that function does not use the index file we'll
double-check its open before we access the num_objects field.

Better safe now than sorry later.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoSimplify index access condition in count-objects, pack-redundant
Shawn O. Pearce [Wed, 30 May 2007 06:12:28 +0000 (02:12 -0400)]
Simplify index access condition in count-objects, pack-redundant

My earlier lazy index opening patch changed this condition to check
index_data and call open_pack_index if it was NULL. In truth we only
care about num_objects.  Since open_pack_index does no harm if the
index is already open, and all indexes are likely to be closed in
this application, the "performance optimization" of inlining the
index_data check here was wrong.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoTest for recent rev-parse $abbrev_sha1 regression
Shawn O. Pearce [Wed, 30 May 2007 04:50:26 +0000 (00:50 -0400)]
Test for recent rev-parse $abbrev_sha1 regression

My recent patch "Lazily open pack index files on demand" caused a
regression in the case of parsing abbreviated SHA-1 object names.
Git was unable to translate the abbreviated name into the full name
if the object was packed, as the pack .idx files were not opened
before being accessed.

This is a simple test to repack a repository then test for an
abbreviated SHA-1 within the packfile.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agorev-parse: Identify short sha1 sums correctly.
James Bowes [Tue, 29 May 2007 23:29:51 +0000 (19:29 -0400)]
rev-parse: Identify short sha1 sums correctly.

find_short_packed_object was not loading the pack index files.
Teach it to do so.

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agobuiltin-pack-object: cache small deltas
Martin Koegler [Mon, 28 May 2007 21:20:59 +0000 (23:20 +0200)]
builtin-pack-object: cache small deltas

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-pack-objects: cache small deltas between big objects
Martin Koegler [Mon, 28 May 2007 21:20:58 +0000 (23:20 +0200)]
git-pack-objects: cache small deltas between big objects

Creating deltas between big blobs is a CPU and memory intensive task.
In the writing phase, all (not reused) deltas are redone.

This patch adds support for caching deltas from the deltifing phase, so
that that the writing phase is faster.

The caching is limited to small deltas to avoid increasing memory usage very much.
The implemented limit is (memory needed to create the delta)/1024.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agobuiltin-pack-objects: don't fail, if delta is not possible
Martin Koegler [Mon, 28 May 2007 21:20:57 +0000 (23:20 +0200)]
builtin-pack-objects: don't fail, if delta is not possible

If builtin-pack-objects runs out of memory while finding
the best deltas, it bails out with an error.

If the delta index creation fails (because there is not enough memory),
we can downgrade the error message to a warning and continue with the
next object.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'db/remote'
Junio C Hamano [Tue, 29 May 2007 08:24:20 +0000 (01:24 -0700)]
Merge branch 'db/remote'

* db/remote:
  Move refspec pattern matching to match_refs().
  Update local tracking refs when pushing
  Add handlers for fetch-side configuration of remotes.
  Move refspec parser from connect.c and cache.h to remote.{c,h}
  Move remote parsing into a library file out of builtin-push.

17 years agoMerge branch 'dh/repack' (early part)
Junio C Hamano [Tue, 29 May 2007 08:16:28 +0000 (01:16 -0700)]
Merge branch 'dh/repack' (early part)

* 'dh/repack' (early part):
  Ensure git-repack -a -d --max-pack-size=N deletes correct packs
  pack-objects: clarification & option checks for --max-pack-size
  git-repack --max-pack-size: add option parsing to enable feature
  git-repack --max-pack-size: split packs as asked by write_{object,one}()
  git-repack --max-pack-size: write_{object,one}() respect pack limit
  git-repack --max-pack-size: new file statics and code restructuring
  Alter sha1close() 3rd argument to request flush only

17 years agoMerge branch 'np/delta'
Junio C Hamano [Tue, 29 May 2007 07:49:23 +0000 (00:49 -0700)]
Merge branch 'np/delta'

* np/delta:
  update diff-delta.c copyright
  improve delta long block matching with big files

17 years agoMerge branch 'jc/nodelta'
Junio C Hamano [Tue, 29 May 2007 07:41:50 +0000 (00:41 -0700)]
Merge branch 'jc/nodelta'

* jc/nodelta:
  builtin-pack-objects: remove unnecessary code for no-delta
  Teach "delta" attribute to pack-objects.
  pack-objects: pass fullname down to add_object_entry()

17 years agoMerge branch 'ar/verbose'
Junio C Hamano [Tue, 29 May 2007 07:41:36 +0000 (00:41 -0700)]
Merge branch 'ar/verbose'

* ar/verbose:
  Add another verbosity level to git-fetch
  Verbose connect messages to show the IP addresses used

17 years agoMerge branch 'ar/run'
Junio C Hamano [Tue, 29 May 2007 07:41:22 +0000 (00:41 -0700)]
Merge branch 'ar/run'

* ar/run:
  Allow environment variables to be unset in the processes started by run_command
  Add ability to specify environment extension to run_command
  Add run_command_v_opt_cd: chdir into a directory before exec

17 years agoMerge branch 'ar/mergestat'
Junio C Hamano [Tue, 29 May 2007 07:38:52 +0000 (00:38 -0700)]
Merge branch 'ar/mergestat'

* ar/mergestat:
  Add a configuration option to control diffstat after merge

17 years agoMerge branch 'rr/cvsexport'
Junio C Hamano [Tue, 29 May 2007 07:37:23 +0000 (00:37 -0700)]
Merge branch 'rr/cvsexport'

* rr/cvsexport:
  Add option to cvs update before export

17 years agoMerge branch 'maint'
Junio C Hamano [Tue, 29 May 2007 07:27:24 +0000 (00:27 -0700)]
Merge branch 'maint'

* maint:
  cvsserver: Fix some typos in asciidoc documentation
  cvsserver: Note that CVS_SERVER can also be specified as method variable
  cvsserver: Correct inetd.conf example in asciidoc documentation
  user-manual: fixed typo in example
  Add test case for $Id$ expanded in the repository
  git-svn: avoid md5 calculation entirely if SVN doesn't provide one
  Makefile: Remove git-fsck and git-verify-pack from PROGRAMS
  Fix stupid typo in lookup_tag()
  git-gui: Guess our share/git-gui/lib path at runtime if possible
  Correct key bindings to Control-<foo>
  git-gui: Tighten internal pattern match for lib/ directory

17 years agocvsserver: Handle 'cvs login'
Frank Lichtenheld [Sun, 27 May 2007 12:33:10 +0000 (14:33 +0200)]
cvsserver: Handle 'cvs login'

Since this is a trivial variation of the general pserver
authentication, there is really no reason not to support
it.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agot9400: Work around CVS' deficiencies
Frank Lichtenheld [Sun, 27 May 2007 12:33:09 +0000 (14:33 +0200)]
t9400: Work around CVS' deficiencies

If we are too fast with our changes, the file in
the working copy might still have the same mtime
as noted in the CVS/Entries. This will cause CVS
to happily report to the server that the file is
unmodified which can lead to data loss (and in
our case test failure).

CVS sucks!

Work around that by sleeping for a second.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAllow contrib new-workdir to link into bare repositories
Shawn O. Pearce [Sun, 27 May 2007 03:09:27 +0000 (23:09 -0400)]
Allow contrib new-workdir to link into bare repositories

On one particular system I like to keep a cluster of bare Git
repositories and spawn new-workdirs off of them.  Since the bare
repositories don't have working directories associated with them
they don't have a .git/ subdirectory that hosts the repository we
are linking to.

Using a bare repository as the backing repository for a workdir
created by this script does require that the user delete core.bare
from the repository's configuration file, so that Git auto-senses
the bareness of a repository based on pathname information, and
not based on the config file.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agomailsplit: fix for more than one input files
Junio C Hamano [Mon, 28 May 2007 22:48:07 +0000 (15:48 -0700)]
mailsplit: fix for more than one input files

Earlier commit d63bd9a broke the case where more than one input
files are fed to mailsplit by not incrementing the base counter
when splitting second and subsequent input files.  This should
fix it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Fix some typos in asciidoc documentation
Frank Lichtenheld [Sun, 27 May 2007 12:33:08 +0000 (14:33 +0200)]
cvsserver: Fix some typos in asciidoc documentation

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Note that CVS_SERVER can also be specified as method variable
Frank Lichtenheld [Sun, 27 May 2007 12:33:07 +0000 (14:33 +0200)]
cvsserver: Note that CVS_SERVER can also be specified as method variable

Reasonably new versions of the cvs CLI client allow one to
specifiy CVS_SERVER as a method variable directly in
CVSROOT. This is way more convinient than using an
environment variable since it gets saved in CVS/Root.

Since I only discovered this by accident I guess there
might be others out there that learnt CVS on the 1.11
series (or even earlier) and profit from such a note
about cvs improvements in the last couple years.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agocvsserver: Correct inetd.conf example in asciidoc documentation
Frank Lichtenheld [Sun, 27 May 2007 12:33:06 +0000 (14:33 +0200)]
cvsserver: Correct inetd.conf example in asciidoc documentation

While the given example worked, it made us look rather
incompetent. Give the correct reason why one needs the
more complex syntax and change the example to reflect
that.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agouser-manual: fixed typo in example
Steffen Prohaska [Sat, 26 May 2007 19:16:27 +0000 (21:16 +0200)]
user-manual: fixed typo in example

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoAdd test case for $Id$ expanded in the repository
Andy Parkins [Sun, 27 May 2007 10:52:11 +0000 (11:52 +0100)]
Add test case for $Id$ expanded in the repository

This test case would have caught the bug fixed by revision
c23290d5.

It puts various forms of $Id$ into a file in the repository,
without allowing git to collapse them to uniformity.  Then enables the
$Id$ expansion on checkout, and checks that what is checked out has
coped with the various forms.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint-1.5.1' into maint
Junio C Hamano [Tue, 29 May 2007 06:54:26 +0000 (23:54 -0700)]
Merge branch 'maint-1.5.1' into maint

* maint-1.5.1:
  git-svn: avoid md5 calculation entirely if SVN doesn't provide one
  Fix stupid typo in lookup_tag()

17 years agogit-svn: avoid md5 calculation entirely if SVN doesn't provide one
Eric Wong [Sun, 27 May 2007 22:59:01 +0000 (15:59 -0700)]
git-svn: avoid md5 calculation entirely if SVN doesn't provide one

There's no point in calculating an MD5 if we're not going to use
it.  We'll also avoid the possibility of there being a bug in the
Perl MD5 library not being able to handle zero-sized files.

This is a followup to 20b3d206acbbb042c7ad5f42d36ff8d036a538c5,
which allows us to track repositories that do not provide MD5
checksums.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoMerge branch 'maint' of git://repo.or.cz/git-gui into maint
Junio C Hamano [Tue, 29 May 2007 03:23:10 +0000 (20:23 -0700)]
Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
  git-gui: Guess our share/git-gui/lib path at runtime if possible
  Correct key bindings to Control-<foo>
  git-gui: Tighten internal pattern match for lib/ directory

17 years agoMakefile: Remove git-fsck and git-verify-pack from PROGRAMS
Nguyen Thai Ngoc Duy [Tue, 29 May 2007 02:05:43 +0000 (22:05 -0400)]
Makefile: Remove git-fsck and git-verify-pack from PROGRAMS

Those are builtins. Remove them from PROGRAMS variable

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix stupid typo in lookup_tag()
Johan Herland [Mon, 28 May 2007 23:21:25 +0000 (01:21 +0200)]
Fix stupid typo in lookup_tag()

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-gui: Expose the merge.diffstat configuration option
Shawn O. Pearce [Mon, 28 May 2007 21:58:07 +0000 (17:58 -0400)]
git-gui: Expose the merge.diffstat configuration option

Recently git-merge learned to avoid generating the diffstat after
a merge by reading the merge.diffstat configuration option.  By
default this option is assumed to be true, as that is the old
behavior.  However we can force it to false by setting it as a
standard boolean option.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
17 years agogit-gui: Allow users to delete remote branches
Shawn O. Pearce [Mon, 28 May 2007 19:23:32 +0000 (15:23 -0400)]
git-gui: Allow users to delete remote branches

Git has supported remote branch deletion for quite some time, but
I've just never gotten around to supporting it in git-gui.  Some
workflows have users push short-term branches to some remote Git
repository, then delete them a few days/weeks later when that topic
has been fully merged into the main trunk.  Typically in that style
of workflow the user will want to remove the branches they created.

We now offer a "Delete..." option in the Push menu, right below the
generic "Push..." option.  When the user opens our generic delete
dialog they can select a preconfigured remote, or enter a random
URL.  We run `git ls-remote $url` to obtain the list of branches and
tags known there, and offer this list in a listbox for the user to
select one or more from.

Like our local branch delete dialog we offer the user a way to filter
their selected branch list down to only those branches that have been
merged into another branch.  This is a very common operation as the
user will likely want to select a range of topic branches, but only
delete them if they have been merged into some sort of common trunk.

Unfortunately our remote merge base detection is not nearly as strict
as the local branch version.  We only offer remote heads as the test
commit (not any local ones) and we require that all necessary commits
to successfully run git-merge-base are available locally.  If one or
more is missing we suggest that the user run a fetch first.

Since the Git remote protocol doesn't let us specify what the tested
commit was when we evaluated our decision to execute the remote delete
there is a race condition here.  The user could do a merge test against
the trunk, determine a topic branch was fully merged, but before they
can start pushing the delete request another user could fast-forward
the remote topic branch to a new commit that is not merged into the
trunk.  The delete will arrive after, and remove the topic, even though
it was not fully merged.

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