git
18 years agogit-svn: -h(elp) message formatting fixes
Eric Wong [Wed, 11 Oct 2006 21:53:36 +0000 (14:53 -0700)] 
git-svn: -h(elp) message formatting fixes

'graft-branches' is slightly longer than the rest of the
commands, so the text was squished together in the formatted
output.  This patch just adds some more whitespace to make
the text look more pleasant.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoDocumentation/git-svn: document some of the newer features
Eric Wong [Wed, 11 Oct 2006 21:53:35 +0000 (14:53 -0700)] 
Documentation/git-svn: document some of the newer features

I've forgotten to document many of the features added along the
way in the manpages.  This fills in some holes in the
documentation and adds updates some outdated information.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Fix search form when PATH_INFO is enabled
Petr Baudis [Wed, 11 Oct 2006 20:31:15 +0000 (22:31 +0200)] 
gitweb: Fix search form when PATH_INFO is enabled

Currently that was broken. Ideal fix would make the search form use
PATH_INFO too, but it's just one insignificant place so it's no big deal if
we don't for now... This at least makes it work.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-svn: log command fixes
Eric Wong [Wed, 11 Oct 2006 18:53:22 +0000 (11:53 -0700)] 
git-svn: log command fixes

Change the --verbose flag to more closely match svn.  I was
somehow under the impression that --summary included --raw diff
output, but I was wrong.  We now pass -r --raw --name-status as
arguments if passed -v/--verbose.

-r (recursive) is passed by default, since users usually want
it, and accepting it causes difficulty with the -r<revision>
option used by svn users.  A --non-recursive switch has been
added to disable this.

Of course, --summary, --raw, -p and any other git-log options
can still be passed directly (without --name-status).

Also, several warnings about referencing undefined variables
have been fixed.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-svn: multi-init saves and reuses --tags and --branches arguments
Eric Wong [Wed, 11 Oct 2006 18:53:21 +0000 (11:53 -0700)] 
git-svn: multi-init saves and reuses --tags and --branches arguments

This should make it much easier to track newly added tags and
branches.  Re-running multi-init without command-line arguments
should now detect new-tags and branches.

--trunk shouldn't change often, but running multi-init on it
is now idempotent.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoatomic write for sideband remote messages
Nicolas Pitre [Wed, 11 Oct 2006 15:49:15 +0000 (11:49 -0400)] 
atomic write for sideband remote messages

It has been a few times that I ended up with such a confusing display:

|remote: Generating pack...
|remote: Done counting 17 objects.
|remote: Result has 9 objects.
|remote: Deltifying 9 objects.
|remote:  100% (9/9) done
|remote: Unpacking 9 objects
|Total 9, written 9 (delta 8), reused 0 (delta 0)
| 100% (9/9) done

The confusion can be avoided in most cases by writing the remote message
in one go to prevent interleacing with local messages.  The buffer
declaration has been moved inside recv_sideband() to avoid extra string
copies.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoAdd --dry-run option to git-send-email
Matthew Wilcox [Tue, 10 Oct 2006 14:58:23 +0000 (08:58 -0600)] 
Add --dry-run option to git-send-email

Add a --dry-run option to git-send-email due to having made too many
mistakes with it in the past week.  I like having a safety catch on my
machine gun.

Signed-off-by: Matthew @ilcox <matthew@wil.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: blame porcelain: lineno and orig lineno swapped
Luben Tuikov [Wed, 11 Oct 2006 07:30:05 +0000 (00:30 -0700)] 
gitweb: blame porcelain: lineno and orig lineno swapped

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit.spec.in: perl subpackage is installed in perl_vendorlib not vendorarch
Junio C Hamano [Wed, 11 Oct 2006 07:57:17 +0000 (07:57 +0000)] 
git.spec.in: perl subpackage is installed in perl_vendorlib not vendorarch

Signed-off-by: Junio C Hamano <junio@hera.kernel.org>
18 years agogit-pull: we say commit X, not X commit.
Junio C Hamano [Wed, 11 Oct 2006 06:00:29 +0000 (23:00 -0700)] 
git-pull: we say commit X, not X commit.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-fetch --update-head-ok typofix
Junio C Hamano [Wed, 11 Oct 2006 05:29:02 +0000 (22:29 -0700)] 
git-fetch --update-head-ok typofix

Martin Waitz noticed that one of the case arms had an impossible
choice.  It turns out that what it was checking was redundant and
the typo did not have any effect.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agopaginate git-diff by default
Martin Waitz [Tue, 10 Oct 2006 19:16:25 +0000 (21:16 +0200)] 
paginate git-diff by default

18 years agopack-objects: document --delta-base-offset option
Junio C Hamano [Tue, 10 Oct 2006 08:06:20 +0000 (01:06 -0700)] 
pack-objects: document --delta-base-offset option

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoRemove git-annotate.perl and create a builtin-alias for git-blame
Ryan Anderson [Mon, 9 Oct 2006 10:32:05 +0000 (03:32 -0700)] 
Remove git-annotate.perl and create a builtin-alias for git-blame

Signed-off-by: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoadd commit count options to git-shortlog v1.4.3-rc2
Nicolas Pitre [Fri, 6 Oct 2006 19:39:09 +0000 (15:39 -0400)] 
add commit count options to git-shortlog

This patch does 3 things:

1) Output the number of commits along with the name for each author
   (nice to know for long lists spending more than a screen worth of
   commit lines).

2) Provide a switch (-n) to sort authors according to their number of
   commits instead of author alphabetic order.

3) Provide a switch (-s) to supress commit lines and only keep a
   summary of authors and the number of commits for each of them.

And for good measure a short usage is displayed with -h.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoFix git-revert
Junio C Hamano [Tue, 10 Oct 2006 02:19:45 +0000 (19:19 -0700)] 
Fix git-revert

Defaulting to $replay for the sake of fixing cherry-pick was not
done conditionally, which broke git-revert.

Noticed by Luben.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-svnimport.perl: copying directory from original SVN place
Sasha Khapyorsky [Sun, 8 Oct 2006 21:31:18 +0000 (23:31 +0200)] 
git-svnimport.perl: copying directory from original SVN place

When copying whole directory, if source directory is not in already
imported tree, try to get it from original SVN location. This happens
when source directory is not matched by provided 'trunk' and/or
'tags/branches' templates or when it is not part of specified SVN
sub-project.

Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoAdd WEBDAV timeout to http-fetch.
Junio C Hamano [Sun, 8 Oct 2006 19:56:19 +0000 (12:56 -0700)] 
Add WEBDAV timeout to http-fetch.

Sean <seanlkml@sympatico.ca> writes:

> On Sat, 07 Oct 2006 21:52:02 -0700
> Junio C Hamano <junkio@cox.net> wrote:
>
>> Using DAV, if it works with the server, has the advantage of not
>> having to keep objects/info/packs up-to-date from repository
>> owner's point of view.  But the repository owner ends up keeping
>> up-to-date as a side effect of keeping info/refs up-to-date
>> anyway (as I do not see a code to read that information over
>> DAV), so there is no point doing this over DAV in practice.
>>
>> Perhaps we should remove call to remote_ls() from
>> fetch_indices() unconditionally, not just protected with
>> NO_EXPAT and be done with it?
>
> That makes a lot of sense.  A server really has to always provide
> a objects/info/packs anyway, just to be fetchable today by clients
> that are compiled with NO_EXPAT.

And even for an isolated group where everybody knows that
everybody else runs DAV-enabled clients, they need info/refs
prepared for ls-remote and git-fetch script, which means you
will run update-server-info to keep objects/info/packs up to
date.

Nick, do you see holes in my logic?

-- >8 --
http-fetch.c: drop remote_ls()

While doing remote_ls() over DAV potentially allows the server
side not to keep objects/info/pack up-to-date, misconfigured or
buggy servers can silently ignore or not to respond to DAV
requests and makes the client hang.

The server side (unfortunately) needs to run git-update-server-info
even if remote_ls() removes the need to keep objects/info/pack file
up-to-date, because the caller of git-http-fetch (git-fetch) and other
clients that interact with the repository (e.g. git-ls-remote) need to
read from info/refs file (there is no code to make that unnecessary by
using DAV yet).

Perhaps the right solution in the longer-term is to make info/refs
also unnecessary by using DAV, and we would want to resurrect the
code this patch removes when we do so, but let's drop remote_ls()
implementation for now.  It is causing problems without really
helping anything yet.

git will keep it for us until we need it next time.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Cleanup Git logo and Git logo target generation
Jakub Narebski [Fri, 6 Oct 2006 10:31:05 +0000 (12:31 +0200)] 
gitweb: Cleanup Git logo and Git logo target generation

Rename $githelp_url and $githelp_label to $logo_url and $logo_label to
be more obvious what they refer to; while at it add commented out
previous contents (git documentation at kernel.org). Add comment about
logo size.

Use $cgi->a(...) to generate Git logo link; it automatically escapes
attribute values when it is needed.  Escape href attribute using
esc_url instead of (incorrect!) esc_html.

Move styling of git logo <img> element from "style" attribute to CSS
via setting class to "logo".  Perhaps we should set it by id rather
than by class.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-tar-tree: don't RUN_SETUP
Rene Scharfe [Sun, 8 Oct 2006 13:44:50 +0000 (15:44 +0200)] 
git-tar-tree: don't RUN_SETUP

Noted by Jiri Slaby, git-tar-tree --remote doesn't need to be run
from inside of a git archive.  Since git-tar-tree is now only a
wrapper for git-archive, which calls setup_git_directory() as
needed, we should drop the flag RUN_SETUP.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoMake git-send-email detect mbox-style patches more readily
Junio C Hamano [Sat, 7 Oct 2006 10:09:05 +0000 (03:09 -0700)] 
Make git-send-email detect mbox-style patches more readily

Earlier we insisted that mbox file to begin with "From ".  That
is fine as long as you feed format-patch output, but if you
handcraft the input file, this is unnecessary burden.  We should
detect lines that look like e-mail headers and say that is also
a mbox file.

The other input file format is traditional "send lots of email",
whose first line would never look like e-mail headers, so this
is a safe change.

The original patch was done by Matthew Wilcox, which checked
explicitly for headers the script pays attention to.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-archive --format=zip: add symlink support
Rene Scharfe [Fri, 6 Oct 2006 23:47:35 +0000 (01:47 +0200)] 
git-archive --format=zip: add symlink support

Add symlink support to ZIP file creation, and a few tests.

This implementation sets the "version made by" field
(creator_version) to Unix for symlinks, only; regular files and
directories are still marked as originating from FAT/VFAT/NTFS.

Also set "external file attributes" (attr2) to 0 for regular
files and 16 for directories (FAT attribute), and to the file
mode for symlinks.

We could always set the creator_version to Unix and include the
mode, but then Info-ZIP unzip would set the mode of the extracted
files to *exactly* the value stored in attr2.  The FAT trick
makes it apply the umask instead.  Note: FAT has no executable
bit, so this information is not stored in the ZIP file.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-archive --format=zip: use default version ID
Rene Scharfe [Fri, 6 Oct 2006 23:47:24 +0000 (01:47 +0200)] 
git-archive --format=zip: use default version ID

Use 10 for the "version needed to extract" field.  This is the
default value, and we want to use it because we don't do anything
special.  Info-ZIP's zip uses it, too.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Document features better
Petr Baudis [Sat, 7 Oct 2006 13:17:47 +0000 (15:17 +0200)] 
gitweb: Document features better

This expands gitweb/README to talk some more about GITWEB_CONFIG, moves
feature-specific documentation in gitweb.cgi to the inside of the %features
array, and adds some short description of all the features.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agotest-lib: separate individual test better in verbose mode.
Martin Waitz [Sat, 7 Oct 2006 19:27:46 +0000 (21:27 +0200)] 
test-lib: separate individual test better in verbose mode.

When running tests with --verbose it is difficult to see where
one test starts and where it ends because everything is printed
in one big lump.
Fix that by printing one single newline between each test.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-commit: fix coding style.
Martin Waitz [Sat, 7 Oct 2006 19:07:40 +0000 (21:07 +0200)] 
git-commit: fix coding style.

git-commit.sh was using a mixture of spaces and tabs for indentation.
This is changed to one tab per indentation level.
No code changes.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: [commit view] Do not suppress commitdiff link in root commit
Petr Baudis [Fri, 6 Oct 2006 16:59:33 +0000 (18:59 +0200)] 
gitweb: [commit view] Do not suppress commitdiff link in root commit

There's no reason for that, the commitdiff view is meaningful for the
root commit as well and we link to it everywhere else.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Handle commits with empty commit messages more reasonably
Petr Baudis [Fri, 6 Oct 2006 16:55:04 +0000 (18:55 +0200)] 
gitweb: Handle commits with empty commit messages more reasonably

Currently those look very weird, you can't get easily at the commit view
etc. This patch makes their title '(no commit message)'.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Separate (new) and (deleted) in commitdiff by a space
Petr Baudis [Fri, 6 Oct 2006 16:00:17 +0000 (18:00 +0200)] 
gitweb: Separate (new) and (deleted) in commitdiff by a space

Currently it's pasted to the sha1 of the blob and looks ugly.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoShow snapshot link in shortlog only if have_snapsho
Petr Baudis [Fri, 6 Oct 2006 13:57:52 +0000 (15:57 +0200)] 
Show snapshot link in shortlog only if have_snapsho

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: refactor decode() for utf8 conversion
Yasushi SHOJI [Sun, 1 Oct 2006 21:21:33 +0000 (06:21 +0900)] 
gitweb: refactor decode() for utf8 conversion

we already had a few place using decode() to convert perl internal
encode to utf8.  added a new thin wrapper to do just that.

Signed-off-by: Yasushi SHOJI <yashi@atmark-techno.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoAdd default values for --window and --depth to the docs
Dennis Stosberg [Fri, 6 Oct 2006 09:15:03 +0000 (11:15 +0200)] 
Add default values for --window and --depth to the docs

Currently, you actually have to read the source to find out the
default values. While at it, fix two typos and suggest that these
options actually take a parameter in git-pack-objects.txt.

Signed-off-by: Dennis Stosberg <dennis@stosberg.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: use blame --porcelain
Junio C Hamano [Thu, 5 Oct 2006 20:55:58 +0000 (13:55 -0700)] 
gitweb: use blame --porcelain

This makes gitweb (git_blame2) use "blame --porcelain", which
lets the caller to figure out which line in the original version
each line comes from.  Using this information, change the
behaviour of clicking the line number to go to the line of the
blame output for the original commit.

Before, clicking the line number meant "scoll up to show this
line at the beginning of the page", which was not all that
useful.  The new behaviour lets you click on the line you are
interested in to view the line in the context it was introduced,
and keep digging deeper as you examine it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoMerge branch 'jc/blame' into jc/web-blame
Junio C Hamano [Fri, 6 Oct 2006 07:16:05 +0000 (00:16 -0700)] 
Merge branch 'jc/blame' into jc/web-blame

* jc/blame:
  git-blame --porcelain
  blame.c: move code to output metainfo into a separate function.
  git-blame: --show-number (and -n)
  git-blame: --show-name (and -f)
  blame.c: whitespace and formatting clean-up.
  gitweb: Make the Git logo link target to point to the homepage
  gitweb: blame: Minimize vertical table row padding
  gitweb: Do not print "log" and "shortlog" redundantly in commit view
  vc-git.el: Switch to using git-blame instead of git-annotate.
  git.el: Fixed inverted "renamed from/to" message.
  tar-tree deprecation: we eat our own dog food.
  Add git-upload-archive to the main git man page
  git-commit: cleanup unused function.
  Fix usage string to match that given in the man page
  Update the gitweb/README file to include setting the GITWEB_CONFIG environment

Conflicts:

gitweb/gitweb.perl

18 years agogit-blame --porcelain
Junio C Hamano [Thu, 5 Oct 2006 21:07:42 +0000 (14:07 -0700)] 
git-blame --porcelain

The new option makes the command's native output format to emit
output that is easier to handle by Porcelain.

Each line is output after a header.  The header at the minimum
has the first line which has:

 - 40-byte SHA-1 of the commit the line is attributed to;

 - the line number of the line in the original file;

 - the line number of the line in the final file;

 - on a line that starts a group of line from a different commit
   than the previous one, the number of lines in this group.  On
   subsequent lines this field is absent.

This header line is followed by the following information once
for each commit:

 - author name ("author"), email ("author-mail"), time
   ("author-time"), and timezone ("author-tz"); similarly for
   committer.

 - filename in the commit the line is attributed to.

 - the first line of the commit log message ("summary").

The contents of the actual line is output after the above
header, prefixed by a TAB. This is to allow adding more header
elements later.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-send-email: real name with period need to be dq-quoted on From: line
Junio C Hamano [Fri, 6 Oct 2006 06:40:15 +0000 (23:40 -0700)] 
git-send-email: real name with period need to be dq-quoted on From: line

An author name like 'A. U. Thor <a.u.thor@example.com>" is not a
valid RFC 2822 address; when placing it on From: line, we would
need to quote it, like this:

Signed-off-by: "Junio C. Hamano" <junkio@cox.net>
18 years agogit-send-email: do not drop custom headers the user prepared
Junio C Hamano [Thu, 5 Oct 2006 23:36:49 +0000 (16:36 -0700)] 
git-send-email: do not drop custom headers the user prepared

The command picked up only Subject, CC, and From headers in the
incoming mbox text.  Sending out patches prepared by
git-format-patch with user's custom headers was impossible with
that.

Just keep the ones it does not need to look at and add them to
the header of the message when sending it out.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agocherry-pick: make -r the default
Junio C Hamano [Fri, 6 Oct 2006 00:54:14 +0000 (17:54 -0700)] 
cherry-pick: make -r the default

And introduce -x to expose (possibly) private commit object name
for people who cherry-pick between public branches.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-send-email: avoid uninitialized variable warning.
Junio C Hamano [Thu, 5 Oct 2006 23:36:15 +0000 (16:36 -0700)] 
git-send-email: avoid uninitialized variable warning.

The code took length of $reply_to when it was not even defined,
causing -w to warn.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoTurn on recursive with --summary
Johannes Schindelin [Tue, 3 Oct 2006 21:09:56 +0000 (23:09 +0200)] 
Turn on recursive with --summary

This makes "git log/diff --summary" imply recursive behaviour,
whose effect is summarized in one test output:

    --- a/t/t4013/diff.diff-tree_--pretty_--root_--summary_initial
    +++ b/t/t4013/diff.diff-tree_--pretty_--root_--summary_initial
    @@ -5,7 +5,7 @@ Date:   Mon Jun 26 00:00:00 2006 +0000

 Initial

    - create mode 040000 dir
    + create mode 100644 dir/sub
      create mode 100644 file0
      create mode 100644 file2
     $

When a file is created in a subdirectory, we used to say just
the directory name only when that directory also was created,
which did not make sense from two reasons.  It is not any more
significant to create a new file in a new directory than to
create a new file in an existing directory, and even if it were,
reportinging the new directory name without saying the actual
filename is not useful.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoblame.c: move code to output metainfo into a separate function.
Junio C Hamano [Thu, 5 Oct 2006 21:06:42 +0000 (14:06 -0700)] 
blame.c: move code to output metainfo into a separate function.

This does not change any behaviour, but just separates out the
code to emit the initial part of the output of each line into a
separate function, since I'll be mucking with it further.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-blame: --show-number (and -n)
Junio C Hamano [Thu, 5 Oct 2006 21:06:26 +0000 (14:06 -0700)] 
git-blame: --show-number (and -n)

The new option makes the command's native output format show the
original line number in the blamed revision.

Note: the current implementation of find_orig_linenum involves
linear search through the line_map array every time.  It should
probably build a reverse map upfront and do a simple look-up to
speed things up, but I'll leave it to more clever and beautiful
people ;-).

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-blame: --show-name (and -f)
Junio C Hamano [Thu, 5 Oct 2006 21:06:22 +0000 (14:06 -0700)] 
git-blame: --show-name (and -f)

The new option makes the command's native output format show the
filename even when there were no renames in its history, to make
it simpler for Porcelains to parse its output.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoblame.c: whitespace and formatting clean-up.
Junio C Hamano [Thu, 5 Oct 2006 21:00:55 +0000 (14:00 -0700)] 
blame.c: whitespace and formatting clean-up.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Make the Git logo link target to point to the homepage
Junio C Hamano [Sat, 23 Sep 2006 19:36:01 +0000 (12:36 -0700)] 
gitweb: Make the Git logo link target to point to the homepage

It provides more useful information for causual Git users than the Git docs
(especially about where to get Git and such).

People can override with GITWEB_CONFIG if they want to.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Acked-by: Petr Baudis <pasky@suse.cz>
18 years agogitweb: blame: Minimize vertical table row padding
Luben Tuikov [Thu, 5 Oct 2006 20:30:31 +0000 (13:30 -0700)] 
gitweb: blame: Minimize vertical table row padding

Minimize vertical table row padding for blame only.  I
discovered this while having the browser's blame output
right next to my editor's window, only to notice how much
vertically stretched the blame output was.

Blame most likely shows source code and is in this way
more "spartan" than the rest of the tables gitweb shows.

This patch makes the blame table more vertically compact,
thus being closer to what you'd see in your editor's window,
as well as reusing more window estate to show more
information (which in turn minimizes scrolling).

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Do not print "log" and "shortlog" redundantly in commit view
Luben Tuikov [Thu, 5 Oct 2006 19:22:57 +0000 (12:22 -0700)] 
gitweb: Do not print "log" and "shortlog" redundantly in commit view

Do not print "log" and "shortlog" redundantly in commit
view.  This is passed into the $extra argument of
git_print_page_nav from git_commit, but git_print_page_nav
prints "log" and "shortlog" already with the same head.

Noticed by Junio.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agovc-git.el: Switch to using git-blame instead of git-annotate.
Alexandre Julliard [Thu, 5 Oct 2006 09:30:44 +0000 (11:30 +0200)] 
vc-git.el: Switch to using git-blame instead of git-annotate.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit.el: Fixed inverted "renamed from/to" message.
Alexandre Julliard [Thu, 5 Oct 2006 09:29:57 +0000 (11:29 +0200)] 
git.el: Fixed inverted "renamed from/to" message.

The deleted file should be labeled "renamed to" and the added file
"renamed from", not the other way around (duh!)

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agotar-tree deprecation: we eat our own dog food.
Junio C Hamano [Thu, 5 Oct 2006 09:26:12 +0000 (02:26 -0700)] 
tar-tree deprecation: we eat our own dog food.

It is silly to keep using git-tar-tree in dist target when the
command gives a big deprecation warning when called.  Instead,
use "git-archive --format=tar" which we recommend to our users.

Update gitweb's snapshot feature to use git-archive for the same
reason.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoAdd git-upload-archive to the main git man page
Franck Bui-Huu [Thu, 5 Oct 2006 08:42:16 +0000 (10:42 +0200)] 
Add git-upload-archive to the main git man page

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: warn if feature cannot be overridden.
Martin Waitz [Tue, 3 Oct 2006 18:07:43 +0000 (20:07 +0200)] 
gitweb: warn if feature cannot be overridden.

If the administrator configures pathinfo to be overrideable by the
local repository a warning is shown.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-rebase: Add a -v option to show a diffstat of the changes upstream at the start...
Robert Shearman [Tue, 3 Oct 2006 16:29:31 +0000 (17:29 +0100)] 
git-rebase: Add a -v option to show a diffstat of the changes upstream at the start of a rebase.

Signed-off-by: Robert Shearman <rob@codeweavers.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-rebase: Use --ignore-if-in-upstream option when executing git-format-patch.
Robert Shearman [Tue, 3 Oct 2006 16:29:26 +0000 (17:29 +0100)] 
git-rebase: Use --ignore-if-in-upstream option when executing git-format-patch.

This reduces the number of conflicts when rebasing after a series of
patches to the same piece of code is committed upstream.

Signed-off-by: Robert Shearman <rob@codeweavers.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoGitweb - provide site headers and footers
Alan Chandler [Tue, 3 Oct 2006 12:49:03 +0000 (13:49 +0100)] 
Gitweb - provide site headers and footers

This allows web sites with a header and footer standard for each page
to add them to the pages produced by gitweb.

Two new variables $site_header and $site_footer are defined (default
to null) each of which can specify a file containing the header and
footer html.

In addition, if the $stylesheet variable is undefined, a new array
@stylesheets (which defaults to a single element of gitweb.css) can be
used to specify more than one style sheet.  This allows the clasical
gitweb.css styles to be retained, but a site wide style sheet used
within the header and footer areas.

Signed-off-by: Alan Chandler <alan@chandlerfamily.org.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: blame: Mouse-over commit-8 shows author and date
Luben Tuikov [Wed, 4 Oct 2006 07:13:38 +0000 (00:13 -0700)] 
gitweb: blame: Mouse-over commit-8 shows author and date

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: blame: print commit-8 on the leading row of a commit-block
Luben Tuikov [Wed, 4 Oct 2006 07:12:17 +0000 (00:12 -0700)] 
gitweb: blame: print commit-8 on the leading row of a commit-block

Print commit-8 only on the first, leading row of
a commit block, to complement the per-commit block coloring.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoRevert 954a6183756a073723a7c9fd8d2feb13132876b0
Junio C Hamano [Wed, 4 Oct 2006 21:54:32 +0000 (14:54 -0700)] 
Revert 954a6183756a073723a7c9fd8d2feb13132876b0

Luben makes a good argument against it, and I agree with him in general.
The clickable handle that appear at seemingly random places makes them
look as if they are separating groups when it is not.

This also restores the executable bit I lost by mistake.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-commit: cleanup unused function.
Martin Waitz [Tue, 3 Oct 2006 16:38:25 +0000 (18:38 +0200)] 
git-commit: cleanup unused function.

The report() function is not used anymore. Kill it.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoFix usage string to match that given in the man page
Alan Chandler [Tue, 3 Oct 2006 20:11:25 +0000 (21:11 +0100)] 
Fix usage string to match that given in the man page

Still not managed to understand git-send-mail sufficiently well to  not
accidently miss of this list when I sending it to Junio

Signed-off-by: Alan Chandler <alan@chandlerfamily.org.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoUpdate the gitweb/README file to include setting the GITWEB_CONFIG environment
Alan Chandler [Tue, 3 Oct 2006 21:48:46 +0000 (22:48 +0100)] 
Update the gitweb/README file to include setting the GITWEB_CONFIG environment

Signed-off-by: Alan Chandler <alan@chandlerfamily.org.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: prepare for repositories with packed refs.
Junio C Hamano [Tue, 3 Oct 2006 09:30:47 +0000 (02:30 -0700)] 
gitweb: prepare for repositories with packed refs.

When a repository is initialized long time ago with symbolic
HEAD, and "git-pack-refs --prune" is run, HEAD will be a
dangling symlink to refs/heads/ somewhere.

Running -e "$dir/HEAD" to guess if $dir is a git repository does
not give us the right answer anymore in such a case.

Also factor out two places that checked if the repository can be
exported with similar code into a call to a new function,
check_export_ok.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: make leftmost column of blame less cluttered.
Junio C Hamano [Sun, 1 Oct 2006 09:16:11 +0000 (02:16 -0700)] 
gitweb: make leftmost column of blame less cluttered.

Instead of labelling each and every line with clickable commit
object name, this makes the blame output to show them only on
the first line of each group of lines from the same revision.
Placing too many lines in one group would make the commit object
name to appear too widely separated and also makes it consume
more memory, the number of lines in one group is capped to 20
lines or so.

Also it makes mouse-over to show the minimum authorship and
authordate information for extra cuteness ;-).

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: document webserver configuration for common gitweb/repo URLs.
Martin Waitz [Tue, 3 Oct 2006 08:03:28 +0000 (10:03 +0200)] 
gitweb: document webserver configuration for common gitweb/repo URLs.

Add a small apache configuration which shows how to use apache
to put gitweb and GIT repositories at the same URL.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Escape ESCAPE (\e) character
Luben Tuikov [Mon, 2 Oct 2006 21:54:53 +0000 (14:54 -0700)] 
gitweb: Escape ESCAPE (\e) character

Take a look at commit 20a3847d8a5032ce41f90dcc68abfb36e6fee9b1
using gitweb before this patch.  This patch fixes this.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoescape tilde in Documentation/git-rev-parse.txt
Junio C Hamano [Tue, 3 Oct 2006 05:52:57 +0000 (22:52 -0700)] 
escape tilde in Documentation/git-rev-parse.txt

Fixes a failure to build the git-rev-parse manpage, seen with
asciidoc 8.0.0

We would love to use nicer quoting $$~$$ but alas asciidoc 7
does not know about it.  So use asciidoc.conf and define {tilde}
to be &#126;.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
18 years agoError in test description of t1200-tutorial
Robin Rosenberg [Tue, 3 Oct 2006 00:02:15 +0000 (02:02 +0200)] 
Error in test description of t1200-tutorial

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agolock_ref_sha1_basic does not remove empty directories on BSD
Dennis Stosberg [Mon, 2 Oct 2006 17:23:53 +0000 (19:23 +0200)] 
lock_ref_sha1_basic does not remove empty directories on BSD

lock_ref_sha1_basic relies on errno beeing set to EISDIR by the
call to read() in resolve_ref() to detect directories.  But calling
read() on a directory under NetBSD returns EPERM, and even succeeds
for local filesystems on FreeBSD.

Signed-off-by: Dennis Stosberg <dennis@stosberg.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: start to generate PATH_INFO URLs.
Martin Waitz [Sun, 1 Oct 2006 21:57:48 +0000 (23:57 +0200)] 
gitweb: start to generate PATH_INFO URLs.

Instead of providing the project as a ?p= parameter it is simply appended to
the base URI.  All other parameters are appended to that, except for ?a=summary
which is the default and can be omitted.

The this can be enabled with the "pathinfo" feature in gitweb_config.perl.

[jc: let's introduce new features disabled by default not to
 upset too many existing installations.]

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoMerge branch 'maint'
Junio C Hamano [Mon, 2 Oct 2006 07:47:32 +0000 (00:47 -0700)] 
Merge branch 'maint'

* maint:
  git-push: .git/remotes/ file does not require SP after colon
  git-mv: invalidate the removed path properly in cache-tree

18 years agogit-push: .git/remotes/ file does not require SP after colon v1.4.2.3
Junio C Hamano [Mon, 2 Oct 2006 07:43:52 +0000 (00:43 -0700)] 
git-push: .git/remotes/ file does not require SP after colon

Although most people would have one after colon if only for
readability, we never required it in git-parse-remote, so let's
not require one only in git-push.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-mv: invalidate the removed path properly in cache-tree
Junio C Hamano [Mon, 2 Oct 2006 05:22:07 +0000 (22:22 -0700)] 
git-mv: invalidate the removed path properly in cache-tree

The command updated the cache without invalidating the cache
tree entries while removing an existing entry.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoMakefile: install and clean merge-recur, still.
Junio C Hamano [Mon, 2 Oct 2006 04:41:46 +0000 (21:41 -0700)] 
Makefile: install and clean merge-recur, still.

We advertised git-merge-recur for some time, and we planned to
support it for one release after we made it the 'recursive'.

However we forgot to install it nor have "make clean" clean it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoGIT 1.4.3-rc1 v1.4.3-rc1
Junio C Hamano [Sun, 1 Oct 2006 10:08:55 +0000 (03:08 -0700)] 
GIT 1.4.3-rc1

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoMerge branch 'maint'
Junio C Hamano [Sun, 1 Oct 2006 08:10:03 +0000 (01:10 -0700)] 
Merge branch 'maint'

* maint:
  git-diff -B output fix.
  Fix git-am safety checks
  Fix duplicate xmalloc in builtin-add

18 years agoMerge branch 'jc/gitpm'
Junio C Hamano [Sun, 1 Oct 2006 06:38:24 +0000 (23:38 -0700)] 
Merge branch 'jc/gitpm'

* jc/gitpm: (52 commits)
  Remove -fPIC which was only needed for Git.xs
  Git.pm: Kill Git.xs for now
  Revert "Make it possible to set up libgit directly (instead of from the environment)"
  Revert "Git.pm: Introduce fast get_object() method"
  Revert "Convert git-annotate to use Git.pm"
  Fix compilation with Sun CC
  pass DESTDIR to the generated perl/Makefile
  Eliminate Scalar::Util usage from private-Error.pm
  Convert git-annotate to use Git.pm
  Git.pm: Introduce fast get_object() method
  Make it possible to set up libgit directly (instead of from the environment)
  Work around sed and make interactions on the backslash at the end of line.
  Git.pm: Introduce ident() and ident_person() methods
  Convert git-send-email to use Git.pm
  Git.pm: Add config() method
  Use $GITPERLLIB instead of $RUNNING_GIT_TESTS and centralize @INC munging
  INSTALL: a tip for running after building but without installing.
  Perly Git: make sure we do test the freshly built one.
  Git.pm: Don't #define around die
  Git.xs: older perl do not know const char *
  ...

18 years agomerge and resolve: Output short hashes and .. in "Updating ..."
Santi Béjar [Sun, 1 Oct 2006 03:34:17 +0000 (05:34 +0200)] 
merge and resolve: Output short hashes and .. in "Updating ..."

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agofetch: Misc output cleanup
Santi B\e,Ai\e(Bjar [Sun, 1 Oct 2006 03:33:05 +0000 (05:33 +0200)] 
fetch: Misc output cleanup

In particular it removes duplicate information, uses short hashes (as
git-log and company) and uses .. for fast forwarding commits and ... for
not-fast-forwarding commits (shorter, easier to copy&paste). It also
reformat the output as:

1. the ones we store in our local ref (either branches or tags):

 1a) fast-forward

 * refs/heads/origin: fast forward to branch 'master' of ../git/
   old..new: 1ad7a06..bc1a580

 1b) same (only shown under -v)

 * refs/heads/next: same as branch 'origin/next' of ../git/
   commit: ce47b9f

 1c) non-fast-forward, forced

 * refs/heads/pu: forcing update to non-fast forward branch 'pu' of ../git/
   old...new: 7c733a8...5faa935

 1d) non-fast-forward, did not update because not forced

 * refs/heads/po: not updating to non-fast forward branch 'po' of ../git/
   old...new: 7c733a8...5faa935

 1e) creating a new local ref to store

 * refs/tags/v1.4.2-rc4: storing tag 'v1.4.2-rc4' of ../git/
   tag: 8c7a107
 * refs/heads/next: storing branch 'next' of ../git/
   commit: f8a20ae

2. the ones we do not store in our local ref (only shown under -v):

 * fetched branch 'master' of ../git
   commit: 695dffe
 * fetched tag 'v1.4.2-rc4' of ../git
   tag: 8c7a107

Signed-off-by: Santi B\e.A\eNijar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoMerge branch 'jc/diff-stat'
Junio C Hamano [Sun, 1 Oct 2006 04:29:18 +0000 (21:29 -0700)] 
Merge branch 'jc/diff-stat'

* jc/diff-stat:
  diff --stat: ensure at least one '-' for deletions, and one '+' for additions
  diff --stat=width[,name-width]: allow custom diffstat output width.
  diff --stat: color output.
  diff --stat: allow custom diffstat output width.

18 years agoMerge branch 'lt/web'
Junio C Hamano [Sun, 1 Oct 2006 04:27:51 +0000 (21:27 -0700)] 
Merge branch 'lt/web'

* lt/web:
  gitweb: tree view: hash_base and hash are now context sensitive
  gitweb: History: blob and tree are first, then commitdiff, etc
  gitweb: Remove redundant "commit" from history
  gitweb: Don't use quotemeta on internally generated strings
  gitweb: Add snapshot to shortlog
  gitweb: Factor out gitweb_have_snapshot()
  gitweb: Remove redundant "commit" link from shortlog
  gitweb: "alternate" starts with shade (i.e. 1)
  gitweb: Add history and blame to git_difftree_body()
  gitweb: Remove excessively redundant entries from git_difftree_body
  Revert "gitweb: extend blame to show links to diff and previous"
  gitweb: Quote filename in HTTP Content-Disposition: header
  gitweb: Add git_url subroutine, and use it to quote full URLs
  gitweb: Split validate_input into validate_pathname and validate_refname
  gitweb: Use "return" instead of "return undef" for some subs
  gitweb: Strip trailing slashes from $path in git_get_hash_by_path
  gitweb: extend blame to show links to diff and previous
  gitweb: Remove redundant "tree" link
  gitweb: tree view: eliminate redundant "blob"

18 years agogitweb: tree view: hash_base and hash are now context sensitive
Luben Tuikov [Fri, 29 Sep 2006 16:57:43 +0000 (09:57 -0700)] 
gitweb: tree view: hash_base and hash are now context sensitive

In tree view, by default, hash_base is HEAD and hash is the
entry equivalent.  Else the user had selected a hash_base or
hash, say by clicking on a revision or commit, in which case
those values are used.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-diff -B output fix. v1.4.2.2
Junio C Hamano [Fri, 29 Sep 2006 09:06:24 +0000 (02:06 -0700)] 
git-diff -B output fix.

Geert noticed that complete rewrite diff missed the usual a/ and b/
leading paths.  Pickaxe says it never worked, ever.

Embarrassing.

Signed-off-by: Junio C Hamano <junkio@cox.net>
(cherry picked from bc1a5807575b2f34538d4158834da6524a4fc1f7 commit)

18 years agogit-diff/git-apply: make diff output a bit friendlier to GNU patch (part 1)
Junio C Hamano [Fri, 22 Sep 2006 23:17:58 +0000 (16:17 -0700)] 
git-diff/git-apply: make diff output a bit friendlier to GNU patch (part 1)

Somebody was wondering on #git channel why a git generated diff
does not apply with GNU patch when the filename contains a SP.
It is because GNU patch expects to find TAB (and trailing timestamp)
on ---/+++ (old_name and new_name) lines after the filenames.

The "diff --git" output format was carefully designed to be
compatible with GNU patch where it can, but whitespace
characters were always a pain.

We can make our output a bit more GNU patch friendly by adding an
extra TAB (but not trailing timestamp) to old/new name lines when
the filename as a SP in it.  This updates git-apply to prepare
ourselves to accept such a patch, but we still do not generate
output that is patch friendly yet.  That change needs to wait
until everybody has this change.

When a filename contains a real tab, "diff --git" format
always c-quotes it as discussed on the list with GNU patch
maintainer previously:

http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2

so there should be no downside.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agofetch: Reset remote refs list each time fetch_main is called
Santi Béjar [Fri, 29 Sep 2006 18:05:40 +0000 (20:05 +0200)] 
fetch: Reset remote refs list each time fetch_main is called

This prevents the fetch of the heads again in the second call of fetch_main.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoRemove -fPIC which was only needed for Git.xs
Junio C Hamano [Fri, 29 Sep 2006 07:34:51 +0000 (00:34 -0700)] 
Remove -fPIC which was only needed for Git.xs

The distinction between BASIC_ vs ALL_ is still kept, since it
is not Git.xs specific -- we could face the same issue when we
do other language bindings (e.g. Python).

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoFix approxidate() to understand 12:34 AM/PM are 00:34 and 12:34
Linus Torvalds [Fri, 29 Sep 2006 19:36:13 +0000 (12:36 -0700)] 
Fix approxidate() to understand 12:34 AM/PM are 00:34 and 12:34

It just simplifies the whole thing to say

"hour = (hour % 12) + X"

where X is 12 for PM and 0 for AM.

It also fixes the "exact date" parsing, which didn't parse AM at all, and
as such would do the same "12:30 AM" means "12:30 24-hour-format" bug. Of
course, I hope that no exact dates use AM/PM anyway, but since we support
the PM format, let's just get it right.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-diff -B output fix.
Junio C Hamano [Fri, 29 Sep 2006 09:06:24 +0000 (02:06 -0700)] 
git-diff -B output fix.

Geert noticed that complete rewrite diff missed the usual a/ and b/
leading paths.  Pickaxe says it never worked, ever.

Embarrassing.

Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agoMake cvsexportcommit remove files.
Robin Rosenberg [Thu, 28 Sep 2006 23:28:55 +0000 (01:28 +0200)] 
Make cvsexportcommit remove files.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agodiff --stat: ensure at least one '-' for deletions, and one '+' for additions
Johannes Schindelin [Thu, 28 Sep 2006 15:37:39 +0000 (17:37 +0200)] 
diff --stat: ensure at least one '-' for deletions, and one '+' for additions

The number of '-' and '+' is still linear. The idea is that
scaled-length := floor(a * length + b) with the following constraints: if
length == 1, scaled-length == 1, and the combined length of plusses
and minusses should not be larger than the width by a small margin. Thus,

a + b == 1

and
a * max_plusses + b + a * max_minusses + b = width + 1

The solution is

a * x + b = ((width - 1) * (x - 1) + max_change - 1)
 / (max_change - 1)

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agodiff --stat=width[,name-width]: allow custom diffstat output width.
Linus Torvalds [Thu, 28 Sep 2006 22:07:16 +0000 (15:07 -0700)] 
diff --stat=width[,name-width]: allow custom diffstat output width.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: History: blob and tree are first, then commitdiff, etc
Luben Tuikov [Fri, 29 Sep 2006 00:21:07 +0000 (17:21 -0700)] 
gitweb: History: blob and tree are first, then commitdiff, etc

Reorder link display in history to be consistent with other
list displays: log, shortlog, etc.  We now display:

blob | commitdiff
blob | commitdiff | diff_to_current

and

tree | commitdiff

Instead of the old history format where "blob" and "tree"
are between "commitdiff" and "diff_to_current" if present/
applicable.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Remove redundant "commit" from history
Luben Tuikov [Fri, 29 Sep 2006 00:20:23 +0000 (17:20 -0700)] 
gitweb: Remove redundant "commit" from history

Remove redundant "commit" from history -- it can be had
by clicking on the title of the commit.  This commit
makes visualization consistent with shortlog, log, etc.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agohttp/ftp: optionally ask curl to not use EPSV command
Sasha Khapyorsky [Fri, 29 Sep 2006 00:10:44 +0000 (03:10 +0300)] 
http/ftp: optionally ask curl to not use EPSV command

If http.noEPSV config variable is defined and true, or if
GIT_CURL_FTP_NO_EPSV environment variable is defined, disable using
of EPSV ftp command (PASV will be used instead). This is helpful with
some "poor" ftp servers which does not support EPSV mode.

Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Don't use quotemeta on internally generated strings
Luben Tuikov [Thu, 28 Sep 2006 23:51:43 +0000 (16:51 -0700)] 
gitweb: Don't use quotemeta on internally generated strings

Do not use quotemeta on internally generated strings
such as filenames of snapshot, blobs, etc.
quotemeta quotes any characters not matching /A-Za-z_0-9/.
Which means that we get strings like this:

before: linux\-2\.6\.git\-5c2d97cb31fb77981797fec46230ca005b865799\.tar\.gz
after:  linux-2.6.git-5c2d97cb31fb77981797fec46230ca005b865799.tar.gz

This patch fixes this.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Add snapshot to shortlog
Luben Tuikov [Thu, 28 Sep 2006 23:50:09 +0000 (16:50 -0700)] 
gitweb: Add snapshot to shortlog

Add snapshot to each commit-row of shortlog.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Factor out gitweb_have_snapshot()
Luben Tuikov [Thu, 28 Sep 2006 23:49:21 +0000 (16:49 -0700)] 
gitweb: Factor out gitweb_have_snapshot()

Create gitweb_have_snapshot() which returns true
of snapshot is available and enabled, else false.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: Remove redundant "commit" link from shortlog
Luben Tuikov [Thu, 28 Sep 2006 23:48:40 +0000 (16:48 -0700)] 
gitweb: Remove redundant "commit" link from shortlog

Remove the redundant "commit" link from shortlog.
It can be had by simply clicking on the entry title
of the row.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogitweb: "alternate" starts with shade (i.e. 1)
Luben Tuikov [Thu, 28 Sep 2006 23:47:50 +0000 (16:47 -0700)] 
gitweb: "alternate" starts with shade (i.e. 1)

When displaying a list of rows (difftree, shortlog, etc),
the first entry is now printed shaded, i.e. alternate is
initialized to 1, as opposed to non-shaded (alternate
initialized to 0).

This solves the problem when there is only one row to
display -- it is displayed shaded to visually indicate that
it is "active", part of a "list", etc.

(Compare this to the trivial case of more than one entry,
where the rows have alternating shade, thus suggesting
being part of a "list" of "active" entries, etc.)

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agogit-format-patch: fix bug using -o in subdirectories
Matthias Lederhofer [Thu, 28 Sep 2006 19:55:35 +0000 (21:55 +0200)] 
git-format-patch: fix bug using -o in subdirectories

This was introduced by me in commit v1.4.2.1-gc08e524.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
18 years agodo not discard constness in interp_set_entry value argument
Alex Riesen [Thu, 28 Sep 2006 19:12:55 +0000 (21:12 +0200)] 
do not discard constness in interp_set_entry value argument

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