gitweb.git
Merge branch 'lt/push-config'Junio C Hamano Sun, 5 Nov 2006 01:18:29 +0000 (17:18 -0800)

Merge branch 'lt/push-config'

* lt/push-config:
git push: add verbose flag and allow overriding of default target repository
Allow '-' in config variable names

Added bash completion support for git-reset.Shawn O. Pearce Sat, 4 Nov 2006 18:57:44 +0000 (13:57 -0500)

Added bash completion support for git-reset.

Completion for the --hard/--soft/--mixed modes of operation as
well as a ref name for <commit-ish> can be very useful and save
some fingers.

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

Added completion support for git-branch.exe.Shawn O. Pearce Sat, 4 Nov 2006 18:57:18 +0000 (13:57 -0500)

Added completion support for git-branch.exe.

On Cygwin a user might complete the new git-branch builtin as
git-branch.exe, at which point bash requires a new completion
registration for the command.

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

Merge branch 'pb/web'Junio C Hamano Sun, 5 Nov 2006 01:13:38 +0000 (17:13 -0800)

Merge branch 'pb/web'

* pb/web:
gitweb: Support for 'forks'

Merge branch 'maint'Junio C Hamano Sat, 4 Nov 2006 11:54:20 +0000 (03:54 -0800)

Merge branch 'maint'

* maint:
apply: handle "traditional" creation/deletion diff correctly.

apply: handle "traditional" creation/deletion diff... Junio C Hamano Sat, 4 Nov 2006 10:28:53 +0000 (02:28 -0800)

apply: handle "traditional" creation/deletion diff correctly.

We deduced a GNU diff output that does not use /dev/null convention
as creation (deletion) diff correctly by looking at the lack of context
and deleted lines (added lines), but forgot to reset the new (old) name
field properly.

This was a regression when we added a workaround for --unified=0 insanity.

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

gitweb: Remove extra "/" in path names for git_get_proj... Aneesh Kumar K.V Fri, 3 Nov 2006 05:11:45 +0000 (10:41 +0530)

gitweb: Remove extra "/" in path names for git_get_project_list

Without this change we get a wrong $pfxlen value and the check_export_ok()
checks with with a wrong directory name. Without this patch the below
$projects_list fails with gitweb

$projects_list = "/tmp/a/b/";

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

git.el: Include MERGE_MSG in the log-edit buffer even... Alexandre Julliard Fri, 3 Nov 2006 16:42:43 +0000 (17:42 +0100)

git.el: Include MERGE_MSG in the log-edit buffer even when not committing a merge.

This lets us take advantage of the fact that git-cherry-pick now saves
the message in MERGE_MSG too.

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

git.el: Move point after the log message header when... Alexandre Julliard Fri, 3 Nov 2006 16:42:17 +0000 (17:42 +0100)

git.el: Move point after the log message header when entering log-edit mode.

Suggested by Han-Wen Nienhuys.

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

git.el: Added a function to open the current file in... Alexandre Julliard Fri, 3 Nov 2006 16:41:46 +0000 (17:41 +0100)

git.el: Added a function to open the current file in another window.

Bound to 'o' by default, compatible with pcl-cvs and
buffer-mode. Suggested by Han-Wen Nienhuys.

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

git.el: Added functions for moving to the next/prev... Alexandre Julliard Fri, 3 Nov 2006 16:41:23 +0000 (17:41 +0100)

git.el: Added functions for moving to the next/prev unmerged file.

This is useful when doing a merge that changes many files with only a
few conflicts here and there.

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

gitweb: Better support for non-CSS aware web browsersJakub Narebski Wed, 1 Nov 2006 13:33:21 +0000 (14:33 +0100)

gitweb: Better support for non-CSS aware web browsers

Add option to replace SPC (' ') with hard (non-breakable) space HTML
entity '&nbsp;' in esc_html subroutine.

Replace ' ' with '&nbsp;' for the code/diff display part in git_blob
and git_patchset_body; this is to be able to view code and diffs in
web browsers which doesn't understand "white-space: pre;" CSS
declaration.

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

gitweb: Output also empty patches in "commitdiff" viewJakub Narebski Tue, 31 Oct 2006 16:36:27 +0000 (17:36 +0100)

gitweb: Output also empty patches in "commitdiff" view

Remove skipping over empty patches (i.e. patches which consist solely
of extended headers) in git_patchset_body, and add links to those
header-only patches in git_difftree_body (but not generate blobdiff
links when there were no change in file contents).

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

Merge branch 'maint'Junio C Hamano Fri, 3 Nov 2006 02:05:33 +0000 (18:05 -0800)

Merge branch 'maint'

* maint:
git-clone documentation didn't mention --origin as equivalent of -o
Minor grammar fixes for git-diff-index.txt
link_temp_to_file: call adjust_shared_perm() only when we created the directory

gitweb: Use git-for-each-ref to generate list of heads... Jakub Narebski Thu, 2 Nov 2006 19:23:11 +0000 (20:23 +0100)

gitweb: Use git-for-each-ref to generate list of heads and/or tags

Add two subroutines: git_get_heads_list and git_get_refs_list, which
fill out needed parts of refs info (heads and tags respectively) info
using single call to git-for-each-ref, instead of using
git-peek-remote to get list of references and using parse_ref for each
ref to get ref info, which in turn uses at least one call of git
command.

Replace call to git_get_refs_list in git_summary by call to
git_get_references, git_get_heads_list and git_get_tags_list
(simplifying this subroutine a bit). Use git_get_heads_list in
git_heads and git_get_tags_list in git_tags. Modify git_tags_body
slightly to accept output from git_get_tags_list.

Remove no longer used, and a bit hackish, git_get_refs_list.
parse_ref is no longer used, but is left for now.

Generating "summary" and "tags" views should be much faster for
projects which have large number of tags.

CHANGES IN OUTPUT: Before, if ref in refs/tags was tag pointing to
commit we used committer epoch as epoch for ref, and used tagger epoch
as epoch only for tag pointing to object of other type. If ref in
refs/tags was commit, we used committer epoch as epoch for ref (see
parse_ref; we sorted in gitweb by 'epoch' field).

Currently we use committer epoch for refs pointing to commit objects,
and tagger epoch for refs pointing to tag object, even if tag points
to commit.

Simple ab benchmark before and after this patch for my git.git
repository (git/jnareb-git.git) with some heads and tags added
as compared to git.git repository, shows around 2.4-3.0 times speedup
for "summary" and "tags" views:

summary 3134 +/- 24.2 ms --> 1081 +/- 30.2 ms
tags 2886 +/- 18.9 ms --> 1196 +/- 15.6 ms

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

for-each-ref: "creator" and "creatordate" fieldsJunio C Hamano Sat, 28 Oct 2006 20:33:46 +0000 (13:33 -0700)

for-each-ref: "creator" and "creatordate" fields

This adds "creator" (which is parallel to "tagger" or "committer")
and "creatordate" (corresponds to "taggerdate" and
"committerdate").

As other "date" fields, "creatordate" sorts numerically
and displays human readably. This allows for example for
sorting together heavyweigth and lightweight tags.

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

Add --global option to git-repo-config.Sean Thu, 2 Nov 2006 15:44:20 +0000 (10:44 -0500)

Add --global option to git-repo-config.

Allow user to set variables in global ~/.gitconfig file
using command line.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>

pack-refs: Store the full name of the ref even when... Alexandre Julliard Thu, 2 Nov 2006 11:13:32 +0000 (12:13 +0100)

pack-refs: Store the full name of the ref even when packing only tags.

Using for_each_tag_ref() to enumerate tags is wrong since it removes
the refs/tags/ prefix, we need to always use for_each_ref() and filter
out non-tag references in the callback.

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

git-clone documentation didn't mention --origin as... Andy Parkins Thu, 2 Nov 2006 11:11:56 +0000 (12:11 +0100)

git-clone documentation didn't mention --origin as equivalent of -o

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Minor grammar fixes for git-diff-index.txtAndy Parkins Thu, 2 Nov 2006 11:12:44 +0000 (12:12 +0100)

Minor grammar fixes for git-diff-index.txt

"what you are going to commit is" doesn't need the "is" and does need a comma.

"can trivially see" is an unecessary split infinitive and "easily" is a more
appropriate adverb.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

link_temp_to_file: call adjust_shared_perm() only when... Johannes Schindelin Fri, 3 Nov 2006 02:02:17 +0000 (18:02 -0800)

link_temp_to_file: call adjust_shared_perm() only when we created the directory

Remove uneccessarily similar printf() from print_ref_li... Andy Parkins Thu, 2 Nov 2006 11:10:52 +0000 (11:10 +0000)

Remove uneccessarily similar printf() from print_ref_list() in builtin-branch

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Wed, 1 Nov 2006 23:09:55 +0000 (15:09 -0800)

Merge branch 'maint'

* maint:
pack-objects doesn't create random pack names
link_temp_to_file: don't leave the path truncated on adjust_shared_perm failure

pack-objects doesn't create random pack namesNicolas Pitre Wed, 1 Nov 2006 22:34:47 +0000 (17:34 -0500)

pack-objects doesn't create random pack names

Documentation for pack-objects seems to be out of date in this regard.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

branch: work in subdirectories.Junio C Hamano Wed, 1 Nov 2006 20:53:13 +0000 (12:53 -0800)

branch: work in subdirectories.

Noticed by Andy Whitcroft

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

gitweb: Use 's' regexp modifier to secure against filen... Jakub Narebski Mon, 30 Oct 2006 21:25:11 +0000 (22:25 +0100)

gitweb: Use 's' regexp modifier to secure against filenames with LF

Use 's' (treat string as single line) regexp modifier in
git_get_hash_by_path (against future changes, probably unnecessary)
and in parse_ls_tree_line (when called with '-z'=>1 option) to secure
against filenames containing newline.

[jc: the hunk on git_get_hash_by_path was unneeded, and I noticed the
regexp was doing unnecessary capture, so fixed it up while I was at it.]

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

gitweb: Secure against commit-ish/tree-ish with the... Jakub Narebski Mon, 30 Oct 2006 21:29:06 +0000 (22:29 +0100)

gitweb: Secure against commit-ish/tree-ish with the same name as path

Add "--" after <commit-ish> or <tree-ish> argument to clearly mark it
as <commit-ish> or <tree-ish> and not pathspec, securing against refs
with the same names as files or directories in [live] repository.

Some wrapping to reduce line length as well.

[jc: with "oops, ls-tree does not want --" fix-up manually applied.]

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

gitweb: esc_html() author in blameLuben Tuikov Mon, 30 Oct 2006 20:37:54 +0000 (12:37 -0800)

gitweb: esc_html() author in blame

Blame fails for example on
block/ll_rw_blk.c at v2.6.19-rc3.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'rs/cherry'Junio C Hamano Wed, 1 Nov 2006 17:17:37 +0000 (09:17 -0800)

Merge branch 'rs/cherry'

* rs/cherry:
Make git-cherry handle root trees
Built-in cherry

Merge branch 'jc/refs-and-fetch'Junio C Hamano Wed, 1 Nov 2006 16:49:19 +0000 (08:49 -0800)

Merge branch 'jc/refs-and-fetch'

* jc/refs-and-fetch:
git-fetch: adjust to packed-refs.

Merge branch 'lj/refs'Junio C Hamano Wed, 1 Nov 2006 16:48:50 +0000 (08:48 -0800)

Merge branch 'lj/refs'

* lj/refs: (63 commits)
Fix show-ref usagestring
t3200: git-branch testsuite update
sha1_name.c: avoid compilation warnings.
Make git-branch a builtin
ref-log: fix D/F conflict coming from deleted refs.
git-revert with conflicts to behave as git-merge with conflicts
core.logallrefupdates thinko-fix
git-pack-refs --all
core.logallrefupdates create new log file only for branch heads.
Remove bashism from t3210-pack-refs.sh
ref-log: allow ref@{count} syntax.
pack-refs: call fflush before fsync.
pack-refs: use lockfile as everybody else does.
git-fetch: do not look into $GIT_DIR/refs to see if a tag exists.
lock_ref_sha1_basic does not remove empty directories on BSD
Do not create tag leading directories since git update-ref does it.
Check that a tag exists using show-ref instead of looking for the ref file.
Use git-update-ref to delete a tag instead of rm()ing the ref file.
Fix refs.c;:repack_without_ref() clean-up path
Clean up "git-branch.sh" and add remove recursive dir test cases.
...

git-svnimport: support for partial importsSasha Khapyorsky Wed, 25 Oct 2006 22:50:26 +0000 (00:50 +0200)

git-svnimport: support for partial imports

This adds support for partial svn imports. Let's assume that SVN
repository layout looks like:

$trunk/path/to/our/project
$branches/path/to/our/project
$tags/path/to/our/project

, and we would like to import only tree under this specific
'path/to/our/project' and not whole tree under $trunk, $branches, etc..
Now we will be be able to do it by using '-P path/to/our/project' option
with git-svnimport.

Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

link_temp_to_file: don't leave the path truncated on... Junio C Hamano Tue, 31 Oct 2006 23:56:58 +0000 (15:56 -0800)

link_temp_to_file: don't leave the path truncated on adjust_shared_perm failure

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

git push: add verbose flag and allow overriding of... Linus Torvalds Mon, 30 Oct 2006 16:28:59 +0000 (08:28 -0800)

git push: add verbose flag and allow overriding of default target repository

This adds a command line flag "-v" to enable a more verbose mode, and
"--repo=" to override the default target repository for "git push" (which
otherwise always defaults to "origin").

This, together with the patch to allow dashes in config variable names,
allows me to do

[alias]
push-all = push -v --repo=all

in my user-global config file, and then I can (for any project I maintain)
add to the project-local config file

[remote "all"]
url=one.target.repo:/directory
url=another.target:/pub/somewhere/else

and now "git push-all" just updates all the target repositories, and shows
me what it does - regardless of which repo I am in.

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

Allow '-' in config variable namesLinus Torvalds Mon, 30 Oct 2006 16:25:36 +0000 (08:25 -0800)

Allow '-' in config variable names

I need this in order to allow aliases of the same form as "ls-tree",
"rev-parse" etc, so that I can use

[alias]
my-cat=--paginate cat-file -p

to add a "git my-cat" command.

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

Merge branch 'maint'Junio C Hamano Tue, 31 Oct 2006 03:38:50 +0000 (19:38 -0800)

Merge branch 'maint'

* maint:
revision traversal: --unpacked does not limit commit list anymore.
Continue traversal when rev-list --unpacked finds a packed commit.
Use memmove instead of memcpy for overlapping areas
quote.c: ensure the same quoting across platforms.
Surround "#define DEBUG 0" with "#ifndef DEBUG..#endif"

Move deny_non_fast_forwards handling completely into... Shawn Pearce Mon, 30 Oct 2006 22:35:18 +0000 (17:35 -0500)

Move deny_non_fast_forwards handling completely into receive-pack.

The 'receive.denynonfastforwards' option has nothing to do with
the repository format version. Since receive-pack already uses
git_config to initialize itself before executing any updates we
can use the normal configuration strategy and isolate the receive
specific variables away from the core variables.

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

revision traversal: --unpacked does not limit commit... Junio C Hamano Tue, 31 Oct 2006 02:58:03 +0000 (18:58 -0800)

revision traversal: --unpacked does not limit commit list anymore.

This is needed to gain smaller latency back.

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

Continue traversal when rev-list --unpacked finds a... Jan Harkes Tue, 31 Oct 2006 01:37:49 +0000 (20:37 -0500)

Continue traversal when rev-list --unpacked finds a packed commit.

When getting the list of all unpacked objects by walking the commit history,
we would stop traversal whenever we hit a packed commit. However the fact
that we found a packed commit does not guarantee that all previous commits
are also packed. As a result the commit walkers did not show all reachable
unpacked objects.

Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Use memmove instead of memcpy for overlapping areasEdgar Toernig Tue, 31 Oct 2006 01:44:27 +0000 (17:44 -0800)

Use memmove instead of memcpy for overlapping areas

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

Use memmove instead of memcpy for overlapping areasEdgar Toernig Tue, 31 Oct 2006 01:39:17 +0000 (17:39 -0800)

Use memmove instead of memcpy for overlapping areas

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

quote.c: ensure the same quoting across platforms.Junio C Hamano Tue, 31 Oct 2006 00:07:54 +0000 (16:07 -0800)

quote.c: ensure the same quoting across platforms.

We read a byte from "char *" and compared it with ' ' to decide
if it needs quoting to protect textual output. With a platform
where char is unsigned char that would give different result.

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

Surround "#define DEBUG 0" with "#ifndef DEBUG..#endif"Junio C Hamano Mon, 30 Oct 2006 23:29:53 +0000 (15:29 -0800)

Surround "#define DEBUG 0" with "#ifndef DEBUG..#endif"

Otherwise "make CFLAGS=-DDEBUG=1" is cumbersome to run.

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

git-send-email: Read the default SMTP server from the... Sergey Vlasov Sun, 29 Oct 2006 19:31:39 +0000 (22:31 +0300)

git-send-email: Read the default SMTP server from the GIT config file

Make the default value for --smtp-server configurable through the
'sendemail.smtpserver' option in .git/config (or $HOME/.gitconfig).

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Acked-by: Ryan Anderson <rda@google.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-send-email: Document support for local sendmail... Sergey Vlasov Sun, 29 Oct 2006 19:31:38 +0000 (22:31 +0300)

git-send-email: Document support for local sendmail instead of SMTP server

Fix the --smtp-server option description to match reality.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Swap the porcelain and plumbing commands in the git... Robin Rosenberg Sun, 29 Oct 2006 20:09:48 +0000 (21:09 +0100)

Swap the porcelain and plumbing commands in the git man page

This makes the documentation less confusing to newcomers.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Mention that pull can work locally in the synopsisRobin Rosenberg Sun, 29 Oct 2006 20:09:40 +0000 (21:09 +0100)

Mention that pull can work locally in the synopsis

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Add "next" link to commitdiff viewJakub Narebski Sun, 22 Oct 2006 22:37:56 +0000 (00:37 +0200)

gitweb: Add "next" link to commitdiff view

Add a kind of "next" view in the bottom part of navigation bar for
"commitdiff" view.

For commitdiff between two commits:
(from: _commit_)
For commitdiff for one single parent commit:
(parent: _commit_)
For commitdiff for one merge commit
(merge: _commit_ _commit_ ...)
For commitdiff for root (parentless) commit
(initial)
where _link_ denotes hyperlink. SHA1 is shortened to 7 characters on
display, everything is perhaps unnecessary esc_html on display.

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

gitweb: Move git_get_last_activity subroutine earlierJakub Narebski Sat, 28 Oct 2006 17:43:40 +0000 (19:43 +0200)

gitweb: Move git_get_last_activity subroutine earlier

This is purely cosmetic. Having git_get_* between two parse_* subroutines
violated a good convention to group related things together.

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

Documentation: fix git-format-patch mark-up and link... Junio C Hamano Sat, 28 Oct 2006 21:25:41 +0000 (14:25 -0700)

Documentation: fix git-format-patch mark-up and link it from git.txt

Two asterisks the SYNOPSIS section were mistaken as emphasis,
and the latter backtick in "`<key>`s" were not recognized as
closing backtick.

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

Documentation: Update information about <format> in... Jakub Narebski Sat, 28 Oct 2006 17:30:05 +0000 (19:30 +0200)

Documentation: Update information about <format> in git-for-each-ref

Update information about value of <format> used when it is left
unspecified. Add information about `%%` and `%xx` interpolation
(URL encoding).

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

Bash completion support for aliasesDennis Stosberg Sat, 28 Oct 2006 12:12:20 +0000 (14:12 +0200)

Bash completion support for aliases

- Add aliases to the list of available git commands.
- Make completion work for aliased commands.

Signed-off-by: Dennis Stosberg <dennis@stosberg.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Fix up bogus $stylesheet declarationsPetr Baudis Thu, 26 Oct 2006 12:41:25 +0000 (14:41 +0200)

gitweb: Fix up bogus $stylesheet declarations

This seems to be a pre-++ residual declaration and it wasn't good for
anything at all besides flooding the webserver errorlog with "omg, our in
the same scope!!" warnings.

[jc: the patch was bogus by defining the variable which defeated a
later test that checked it with "defined", which I fixed up.]

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

tests: merge-recursive is usable without PythonJunio C Hamano Fri, 27 Oct 2006 21:29:55 +0000 (14:29 -0700)

tests: merge-recursive is usable without Python

Many tests still protected themselves with $no_python; there is no need
to do so anymore.

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

Merge branch 'maint'Junio C Hamano Fri, 27 Oct 2006 09:16:18 +0000 (02:16 -0700)

Merge branch 'maint'

* maint:
gitweb: Check git base URLs before generating URL from it
Documentation: add git in /etc/services.
Documentation: add upload-archive service to git-daemon.
git-cherry: document limit and add diagram
diff-format.txt: Correct information about pathnames quoting in patch format

gitweb: Check git base URLs before generating URL from itJakub Narebski Thu, 26 Oct 2006 10:26:44 +0000 (12:26 +0200)

gitweb: Check git base URLs before generating URL from it

Check if each of git base URLs in @git_base_url_list is true before
appending "/$project" to it to generate project URL.

This fixes the error that for default configuration for gitweb in
Makefile, with GITWEB_BASE_URL empty (and "++GITWEB_BASE_URL++" being
"" in gitweb.cgi), we had URL of "/$project" in the summary view.

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

Documentation: add git in /etc/services.Christian Couder Fri, 27 Oct 2006 05:00:57 +0000 (07:00 +0200)

Documentation: add git in /etc/services.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: add upload-archive service to git-daemon.Christian Couder Fri, 27 Oct 2006 04:59:18 +0000 (06:59 +0200)

Documentation: add upload-archive service to git-daemon.

This patch minimaly documents the upload-archive service,
hoping that someone with better knowledge will improve upon.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-cherry: document limit and add diagramRene Scharfe Thu, 26 Oct 2006 21:32:41 +0000 (23:32 +0200)

git-cherry: document limit and add diagram

This patch adds the diagram from the long usage string of git-cherry to
its documentation, and documents the third option. I changed some of
the + to - in order to save the reader from wondering where they might
fit into the picture.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'jc/reflog' into lj/refsJunio C Hamano Fri, 27 Oct 2006 01:48:30 +0000 (18:48 -0700)

Merge branch 'jc/reflog' into lj/refs

* jc/reflog:
sha1_name.c: avoid compilation warnings.
ref-log: allow ref@{count} syntax.

Merge branch 'jc/combined' into maintJunio C Hamano Fri, 27 Oct 2006 01:45:52 +0000 (18:45 -0700)

Merge branch 'jc/combined' into maint

* jc/combined:
combine-diff: honour --no-commit-id
combine-diff: fix hunk_comment_line logic.
combine-diff: a few more finishing touches.

Fix show-ref usagestringLars Hjemli Thu, 26 Oct 2006 19:39:05 +0000 (21:39 +0200)

Fix show-ref usagestring

This describes the abbreviation possibilities for git-show-ref

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

diff-format.txt: Correct information about pathnames... Jakub Narebski Thu, 26 Oct 2006 20:21:02 +0000 (22:21 +0200)

diff-format.txt: Correct information about pathnames quoting in patch format

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

Make git-cherry handle root treesRene Scharfe Thu, 26 Oct 2006 16:52:39 +0000 (18:52 +0200)

Make git-cherry handle root trees

This patch on top of 'next' makes built-in git-cherry handle root
commits.

It moves the static function log-tree.c::diff_root_tree() to
tree-diff.c and makes it more similar to diff_tree_sha1() by
shuffling around arguments and factoring out the call to
log_tree_diff_flush(). Consequently the name is changed to
diff_root_tree_sha1(). It is a version of diff_tree_sha1() that
compares the empty tree (= root tree) against a single 'real' tree.

This function is then used in get_patch_id() to compute patch IDs
for initial commits instead of SEGFAULTing, as the current code
does if confronted with parentless commits.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Make filenames line up in git-status outputAndy Parkins Thu, 26 Oct 2006 14:17:24 +0000 (15:17 +0100)

Make filenames line up in git-status output

When all the filenames line up it's much easier to copy and paste them
somewhere else, or to remove the "modified:", "copied:", etc prefix.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Use --no-commit-id in git_commit and git_commitdiffJakub Narebski Thu, 26 Oct 2006 08:50:20 +0000 (10:50 +0200)

gitweb: Use --no-commit-id in git_commit and git_commitdiff

Use --no-commit-id option to git-diff-tree command in git_commit and
git_commitdiff to filter out commit ID output that git-diff-tree adds
when called with only one <tree-ish> (not only for --stdin). Remove
filtering commit IDs from git-diff-tree output.

This option is in git since at least v1.0.0, so make use of it.

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

Merge branch 'jc/combined'Junio C Hamano Thu, 26 Oct 2006 09:07:18 +0000 (02:07 -0700)

Merge branch 'jc/combined'

* jc/combined:
combine-diff: honour --no-commit-id
combine-diff: fix hunk_comment_line logic.

combine-diff: honour --no-commit-idJunio C Hamano Thu, 26 Oct 2006 09:05:59 +0000 (02:05 -0700)

combine-diff: honour --no-commit-id

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

combine-diff: fix hunk_comment_line logic.Junio C Hamano Thu, 26 Oct 2006 09:05:05 +0000 (02:05 -0700)

combine-diff: fix hunk_comment_line logic.

We forgot that the last element of sline[] is a sentinel without
the actual line. *BLUSH*

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

Merge branch 'jc/combined'Junio C Hamano Thu, 26 Oct 2006 08:18:55 +0000 (01:18 -0700)

Merge branch 'jc/combined'

* jc/combined:
combine-diff: a few more finishing touches.
Documentation: clarify refname disambiguation rules.
diff-format.txt: Combined diff format documentation supplement
Remove --syslog in git-daemon inetd documentation examples.
Documentation: updates to "Everyday GIT"

combine-diff: a few more finishing touches.Junio C Hamano Thu, 26 Oct 2006 07:05:04 +0000 (00:05 -0700)

combine-diff: a few more finishing touches.

"new file" and "deleted file" were already reported in the
original code, but the logic was not as transparent as it could
have. This uses a few variables and more comments to clarify
the flow. The rule is: (1) if a path exists in the merge result
when no parent had it, we report "new" (otherwise it came from
the parents, as opposed to have added by the evil merge). (2) if
the path does not exist in the merge result, it is "deleted".

Since we can say "new" and "deleted", there is no reason not to
follow the /dev/null convention. This fixes it.

Appending function name after @@@ ... @@@ is trivial, so
implement it.

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

Documentation: clarify refname disambiguation rules.Junio C Hamano Thu, 26 Oct 2006 08:15:42 +0000 (01:15 -0700)

Documentation: clarify refname disambiguation rules.

Nobody should create ambiguous refs (i.e. have tag "foobar" and branch
"foobar" at the same time) that need to be disambiguated with these
rules to keep sanity, but the rules are there so document them.

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

diff-format.txt: Combined diff format documentation... Jakub Narebski Thu, 26 Oct 2006 03:44:49 +0000 (05:44 +0200)

diff-format.txt: Combined diff format documentation supplement

Update example combined diff format to the current version
$ git diff-tree -p -c fec9ebf16c948bcb4a8b88d0173ee63584bcde76
and provide complete first chunk in example.

Document combined diff format headers: how "diff header" look like,
which of "extended diff headers" are used with combined diff and how
they look like, differences in two-line from-file/to-file header from
non-combined diff format, chunk header format.

It should be noted that combined diff format was designed for quick
_content_ inspection and renames would work correctly to pick which
blobs from each tree to compare but otherwise not reflected in the
output (the pathnames are not shown).

[jc: with minimum copyediting]

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

Remove --syslog in git-daemon inetd documentation examples.Christian Couder Thu, 26 Oct 2006 04:33:07 +0000 (06:33 +0200)

Remove --syslog in git-daemon inetd documentation examples.

It is useless because --inetd implies --syslog.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: updates to "Everyday GIT"J. Bruce Fields Thu, 26 Oct 2006 02:43:47 +0000 (22:43 -0400)

Documentation: updates to "Everyday GIT"

Remove the introduction: I think it should be obvious why
we have this. (And if it isn't obvious then we've got other
problems.)

Replace reference to git whatchanged by git log.

Miscellaneous style and grammar fixes.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Support for 'forks'Petr Baudis Tue, 24 Oct 2006 03:33:17 +0000 (05:33 +0200)

gitweb: Support for 'forks'

On repo.or.cz, I want to support project 'forks', which are meant
for repositories which are spinoffs of a given project and share
its objects database through the alternates mechanism. But another
(and perhaps even greater) incentive for that is that those 'forked
projects' do not clutter the main project index but are completely
grouped inside of the project view.

A forked project is just like a normal project, but given project
$projectroot/$projname.git, the forked project resides in directory
$projectroot/$projname/$forkname.git. This is a somewhat arbitrary
naming rule, but I think that for now it's fine; if someone will need
something wildly different, let them submit a patch. The 'forked'
mode is by default off and can be turned on in runtime gitweb
configuration just like other features.

A project having forks is marked by a '+' (pointing to the list of
forks) in the project list (this could become some cutesy AJAXy
DHTML in the future), there is a forks section in the project
summary similar to the heads and tags sections, and of course
a forks view which looks the same as the root project list.

Forks can be recursive.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Wed, 25 Oct 2006 21:38:33 +0000 (14:38 -0700)

Merge branch 'maint'

* maint:
Documentation/SubmittingPatches: 3+1 != 6

Documentation/SubmittingPatches: 3+1 != 6 v1.4.3.3Junio C Hamano Wed, 25 Oct 2006 21:38:24 +0000 (14:38 -0700)

Documentation/SubmittingPatches: 3+1 != 6

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

Merge branch 'aw/cvsimport'Junio C Hamano Wed, 25 Oct 2006 21:10:50 +0000 (14:10 -0700)

Merge branch 'aw/cvsimport'

* aw/cvsimport:
cvsimport: move over to using git-for-each-ref to read refs.

Merge branch 'jc/web'Junio C Hamano Wed, 25 Oct 2006 20:30:18 +0000 (13:30 -0700)

Merge branch 'jc/web'

* jc/web:
gitweb: Print commit message without title in commitdiff only if there is any
gitweb: Filter out commit ID from @difftree in git_commit and git_commitdiff
gitweb: Get rid of git_print_simplified_log
gitweb: Show project's README.html if available
gitweb: Do not automatically append " git" to custom site name
gitweb: Make search type a popup menu
gitweb: Restore object-named links in item lists
gitweb: use for-each-ref to show the latest activity across branches

Merge for-each-ref to sync gitweb fully with 'next'Junio C Hamano Wed, 25 Oct 2006 20:29:12 +0000 (13:29 -0700)

Merge for-each-ref to sync gitweb fully with 'next'

Merge branch 'jc/web-blame'Junio C Hamano Wed, 25 Oct 2006 20:18:06 +0000 (13:18 -0700)

Merge branch 'jc/web-blame'

* jc/web-blame:
gitweb: spell "blame --porcelain" with -p
blame: Document and add help text for -f, -n, and -p
gitweb: blame porcelain: lineno and orig lineno swapped
Remove git-annotate.perl and create a builtin-alias for git-blame
gitweb: use blame --porcelain
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 - provide site headers and footers
gitweb: blame: Mouse-over commit-8 shows author and date
gitweb: blame: print commit-8 on the leading row of a commit-block
Revert 954a6183756a073723a7c9fd8d2feb13132876b0
gitweb: prepare for repositories with packed refs.
gitweb: make leftmost column of blame less cluttered.

Merge branch 'maint'Junio C Hamano Wed, 25 Oct 2006 19:57:48 +0000 (12:57 -0700)

Merge branch 'maint'

* maint:
xdiff: Match GNU diff behaviour when deciding hunk comment worthiness of lines
Update cherry documentation.
Refer to git-rev-parse:Specifying Revisions from git.txt
git-fetch.sh printed protocol fix
RPM package re-classification.
Documentation: note about contrib/.
git-svn: fix symlink-to-file changes when using command-line svn 1.4.0
Set $HOME for selftests

xdiff: Match GNU diff behaviour when deciding hunk... Petr Baudis Wed, 25 Oct 2006 00:28:55 +0000 (02:28 +0200)

xdiff: Match GNU diff behaviour when deciding hunk comment worthiness of lines

This removes the '#' and '(' tests and adds a '$' test instead although I have
no idea what it is actually good for - but hey, if that's what GNU diff does...

Pasky only went and did as Junio sayeth.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Update cherry documentation.Junio C Hamano Wed, 25 Oct 2006 06:14:30 +0000 (23:14 -0700)

Update cherry documentation.

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

Refer to git-rev-parse:Specifying Revisions from git.txtJunio C Hamano Wed, 25 Oct 2006 18:33:08 +0000 (11:33 -0700)

Refer to git-rev-parse:Specifying Revisions from git.txt

The brief list given in "Symbolic Identifiers" section of the
main documentation is good enough for overview, but help the
reader to find a more comrehensive list as needed.

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

git-fetch.sh printed protocol fixTuncer Ayaz Wed, 25 Oct 2006 10:03:06 +0000 (12:03 +0200)

git-fetch.sh printed protocol fix

We have supported https:// protocol for some time and in 1.4.3
added ftp:// protocol. The transfer were still reported to be
over http.

[jc: Tuncer used substring parameter substitution ${remote%%:*}
but I am deferring it to a later day. We should replace
colon-expr with substring substitution after everybody's shell
can grok it someday, but we are not in a hurry. ]

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

RPM package re-classification.Junio C Hamano Wed, 25 Oct 2006 06:55:46 +0000 (23:55 -0700)

RPM package re-classification.

Grabbing anything that had *arch* in its name into git-arch
package was a wrong idea and we lost git-archive from git-core
by mistake.

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

gitweb: Print commit message without title in commitdif... Jakub Narebski Tue, 24 Oct 2006 11:55:33 +0000 (13:55 +0200)

gitweb: Print commit message without title in commitdiff only if there is any

Print the rest of commit message (title, i.e. first line of commit
message, is printed separately) only if there is any.

In repository which uses signoffs this shouldn't happen, because
commit message should consist of at least title and signoff.

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

gitweb: Filter out commit ID from @difftree in git_comm... Jakub Narebski Tue, 24 Oct 2006 11:54:49 +0000 (13:54 +0200)

gitweb: Filter out commit ID from @difftree in git_commit and git_commitdiff

Filter out commit ID output that git-diff-tree adds when called with
only one <tree-ish> (not only for --stdin) in git_commit and
git_commitdiff.

This also works with older git versions, which doesn't have
--no-commit-id option to git-diff-tree.

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

gitweb: Get rid of git_print_simplified_logJakub Narebski Tue, 24 Oct 2006 11:52:46 +0000 (13:52 +0200)

gitweb: Get rid of git_print_simplified_log

Replace calls to git_print_simplified_log with its expansion,
i.e. with calling git_print_log with appropriate options.

Remove no longer used git_print_simplified_log subroutine.

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

Documentation: note about contrib/.Junio C Hamano Tue, 24 Oct 2006 08:29:27 +0000 (01:29 -0700)

Documentation: note about contrib/.

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

git-svn: fix symlink-to-file changes when using command... Eric Wong Tue, 24 Oct 2006 09:50:37 +0000 (02:50 -0700)

git-svn: fix symlink-to-file changes when using command-line svn 1.4.0

I incorrectly thought this was hopelessly broken in svn 1.4.0,
but now it's just broken in that the old method didn't work. It
looks like svn propdel and svn propset must be used now and the
(imho) more obvious svn rm --force && svn add no longer works.

"make -C t full-svn-test" should now work.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Acked-by: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Set $HOME for selftestsGerrit Pape Tue, 24 Oct 2006 20:00:37 +0000 (20:00 +0000)

Set $HOME for selftests

Set HOME environment variable to test trash directory and export for
selftests. This fixes the git-svn selftests with nonexistent or not
readable home, as found in at least one automated build system:

http://buildd.debian.org/fetch.cgi?&pkg=git-core&ver=1%3A1.4.2.3-2&arch=alpha&stamp=1161537466&file=log

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

t3200: git-branch testsuite updateJunio C Hamano Tue, 24 Oct 2006 05:48:45 +0000 (22:48 -0700)

t3200: git-branch testsuite update

The test expected "git branch --help" to exit successfully, but
built-ins spawn "man" when given --help, and when the test is
run, manpages may not be installed yet and "man" can legally
exit non-zero in such a case.

Also the new implementation logs "Created from master", instead
of "Created from HEAD" in the reflog, which makes a lot more
sense, so adjust the test to match that.

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

sha1_name.c: avoid compilation warnings.Junio C Hamano Tue, 24 Oct 2006 04:15:34 +0000 (21:15 -0700)

sha1_name.c: avoid compilation warnings.

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

gitweb: Show project's README.html if availablePetr Baudis Tue, 24 Oct 2006 03:23:46 +0000 (05:23 +0200)

gitweb: Show project's README.html if available

If the repository includes a README.html file, show it in the summary page.
The usual "this should be in the config file" argument does not apply here
since this can be larger and having such a big string in the config file
would be impractical.

I don't know if this is suitable upstream, but it's one of the repo.or.cz
custom modifications that I've thought could be interesting for others
as well.

Compared to the previous patch, this adds the '.html' extension to the
filename, so that it's clear it is, well, HTML.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Do not automatically append " git" to custom... Petr Baudis Tue, 24 Oct 2006 03:18:39 +0000 (05:18 +0200)

gitweb: Do not automatically append " git" to custom site name

If you customized the site name, you probably do not want the " git"
appended so that the page title is not bastardized; I want repo.or.cz pages
titled "Public Git Hosting", not "Public Git Hosting git" (what's hosting
what?).

This slightly changes the $site_name semantics but only very
insignificantly.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Make search type a popup menuPetr Baudis Tue, 24 Oct 2006 03:15:46 +0000 (05:15 +0200)

gitweb: Make search type a popup menu

This makes the multiple search types actually usable by the user;
if you don't read the gitweb source, you don't even have an idea
that you can write things like that there.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Restore object-named links in item listsPetr Baudis Tue, 24 Oct 2006 03:36:10 +0000 (05:36 +0200)

gitweb: Restore object-named links in item lists

This restores the redundant links removed earlier. It supersedes my patch
to stick slashes to tree entries.

Sorry about the previous version of the patch, an unrelated snapshot link
addition to tree entries slipped through (and it it didn't even compile);
I've dropped the idea of snapshot links in tree entries in the meantime
anyway.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>