gitweb.git
Revert "send-pack --keep: do not explode into loose... Junio C Hamano Tue, 31 Oct 2006 00:02:07 +0000 (16:02 -0800)

Revert "send-pack --keep: do not explode into loose objects on the receiving end."

This reverts commit c7740a943ec896247ebc5514b6be02710caf3c53. There should
be a way to make this controllable from the receiver end.

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-pickaxe: tighten sanity checks.Junio C Hamano Mon, 30 Oct 2006 22:27:52 +0000 (14:27 -0800)

git-pickaxe: tighten sanity checks.

When compiled for debugging, make sure that refcnt sanity check
code detects underflows in origin reference counting.

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

git-pickaxe: refcount origin correctly in find_copy_in_... Junio C Hamano Mon, 30 Oct 2006 07:56:12 +0000 (23:56 -0800)

git-pickaxe: refcount origin correctly in find_copy_in_parent()

This makes "git-pickaxe -C master -- revision.c" to finish with
proper refcounts for all origins. I am reasonably happy with
it.

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

git-pickaxe: allow -Ln,m as well as -L n,mJunio C Hamano Mon, 30 Oct 2006 07:50:38 +0000 (23:50 -0800)

git-pickaxe: allow -Ln,m as well as -L n,m

The command rejects -L1,10 as an invalid line range specifier
and I got frustrated enough by it, so this makes it allow both
forms of input.

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

missing small substitutionNicolas Pitre Mon, 30 Oct 2006 02:33:22 +0000 (21:33 -0500)

missing small substitution

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

git-pickaxe: WIP to refcount origin structure.Junio C Hamano Sun, 29 Oct 2006 11:07:40 +0000 (03:07 -0800)

git-pickaxe: WIP to refcount origin structure.

The origin structure is allocated for each commit and path while
the code traverse down it is copied into different blame entries.
To avoid leaks, try refcounting them.

This still seems to leak, which I haven't tracked down fully yet.

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

Teach git-index-pack how to keep a pack file.Shawn Pearce Sun, 29 Oct 2006 09:41:59 +0000 (04:41 -0500)

Teach git-index-pack how to keep a pack file.

To prevent a race condition between `index-pack --stdin` and
`repack -a -d` where the repack deletes the newly created pack
file before any refs are updated to reference objects contained
within it we mark the pack file as one that should be kept. This
removes it from the list of packs that `repack -a -d` will consider
for removal.

Callers such as `receive-pack` which want to invoke `index-pack`
should use this new --keep option to prevent the newly created pack
and index file pair from being deleted before they have finished any
related ref updates. Only after all ref updates have been finished
should the associated .keep file be removed.

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

Merge early part of branch 'np/index-pack' into sp... Junio C Hamano Sun, 29 Oct 2006 21:44:54 +0000 (13:44 -0800)

Merge early part of branch 'np/index-pack' into sp/keep-pack

Only repack active packs by skipping over kept packs.Shawn Pearce Sun, 29 Oct 2006 09:37:54 +0000 (04:37 -0500)

Only repack active packs by skipping over kept packs.

During `git repack -a -d` only repack objects which are loose or
which reside in an active (a non-kept) pack. This allows the user
to keep large packs as-is without continuous repacking and can be
very helpful on large repositories. It should also help us resolve
a race condition between `git repack -a -d` and the new pack store
functionality in `git-receive-pack`.

Kept packs are those which have a corresponding .keep file in
$GIT_OBJECT_DIRECTORY/pack. That is pack-X.pack will be kept
(not repacked and not deleted) if pack-X.keep exists in the same
directory when `git repack -a -d` starts.

Currently this feature is not documented and there is no user
interface to keep an existing pack.

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

Allow short pack names to git-pack-objects --unpacked=.Shawn Pearce Sun, 29 Oct 2006 09:37:11 +0000 (04:37 -0500)

Allow short pack names to git-pack-objects --unpacked=.

This allows us to pass just the file name of a pack rather than
the complete path when we want pack-objects to consider its
contents as though they were loose objects. This can be helpful
if $GIT_OBJECT_DIRECTORY contains shell metacharacters which make
it cumbersome to pass complete paths safely in a shell script.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
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>

send-pack --keep: do not explode into loose objects... Junio C Hamano Sun, 29 Oct 2006 07:47:56 +0000 (00:47 -0700)

send-pack --keep: do not explode into loose objects on the receiving end.

This adds "keep-pack" extension to send-pack vs receive pack protocol,
and makes the receiver invoke "index-pack --stdin --fix-thin".

With this, you can ask send-pack not to explode the result into
loose objects on the receiving end.

I've patched has_sha1_file() to re-check for added packs just
like is done in read_sha1_file() for now, but I think the static
"re-prepare" interface for packs was a mistake. Creation of a
new pack inside a process that needs to read objects in them
back ought to be a rare event, so we are better off making the
callers (such as receive-pack that calls "index-pack --stdin
--fix-thin") explicitly call re-prepare. That way we do not
have to penalize ordinary users of read_sha1_file() and
has_sha1_file().

We would need to fix this someday.

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>

t6022: ignoring untracked files by merge-recursive... Junio C Hamano Fri, 27 Oct 2006 23:07:02 +0000 (16:07 -0700)

t6022: ignoring untracked files by merge-recursive when they do not matter

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

merge-recursive: adjust to loosened "working file clobb... Junio C Hamano Fri, 27 Oct 2006 21:08:14 +0000 (14:08 -0700)

merge-recursive: adjust to loosened "working file clobbered" check

The three-way merge by git-read-tree does not complain about
presense of the file in the working tree that is involved in a
merge when the merge result needs to be determined by the
caller. Adjust merge-recursive so that it makes sure that an
untracked file is not touched when the merge decides the path
should not be included in the final result.

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

merge-recursive: make a few functions static.Junio C Hamano Mon, 23 Oct 2006 07:46:15 +0000 (00:46 -0700)

merge-recursive: make a few functions static.

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

merge-recursive: use abbreviated commit object name.Junio C Hamano Mon, 23 Oct 2006 07:36:22 +0000 (00:36 -0700)

merge-recursive: use abbreviated commit object name.

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

merge: loosen overcautious "working file will be lost... Junio C Hamano Mon, 9 Oct 2006 05:48:06 +0000 (22:48 -0700)

merge: loosen overcautious "working file will be lost" check.

The three-way merge complained unconditionally when a path that
does not exist in the index is involved in a merge when it
existed in the working tree. If we are merging an old version
that had that path tracked, but the path is not tracked anymore,
and if we are merging that old version in, the result will be
that the path is not tracked. In that case we should not
complain.

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>

index-pack: minor fixes to comment and function nameNicolas Pitre Fri, 27 Oct 2006 20:14:23 +0000 (16:14 -0400)

index-pack: minor fixes to comment and function name

Use proper english. Be more exact in one comment.

[jc: I threw in a bit of style clean-up as well]

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

enhance clone and fetch -k experienceNicolas Pitre Fri, 27 Oct 2006 19:42:17 +0000 (15:42 -0400)

enhance clone and fetch -k experience

Now that index-pack can be streamed with a pack, it is probably a good
idea to use it directly instead of creating a temporary file and running
index-pack afterwards. This way index-pack can abort early whenever a
corruption is encountered even if the pack has not been fully
downloaded, it can display a progress percentage as it knows how much to
expects, and it is a bit faster since the pack indexing is partially
done as data is received. Using fetch -k doesn't need to disable thin
pack generation on the remote end either.

Signed-off-by: Nicolas Pitre <nico@cam.org>
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>

mimic unpack-objects when --stdin is used with index... Nicolas Pitre Thu, 26 Oct 2006 03:31:53 +0000 (23:31 -0400)

mimic unpack-objects when --stdin is used with index-pack

It appears that git-unpack-objects writes the last part of the input
buffer to stdout after the pack has been parsed. This looks a bit
suspicious since the last fill() might have filled the buffer up to
the 4096 byte limit and more data might still be pending on stdin,
but since this is about being a drop-in replacement for unpack-objects
let's simply duplicate the same behavior for now.

[jc: with fix-up appeared in Nico's sleep]

Signed-off-by: Nicolas Pitre <nico@cam.org>
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>

add progress status to index-packNicolas Pitre Thu, 26 Oct 2006 03:32:59 +0000 (23:32 -0400)

add progress status to index-pack

This is more interesting to look at when performing a big fetch.

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

make index-pack able to complete thin packs.Nicolas Pitre Thu, 26 Oct 2006 03:28:17 +0000 (23:28 -0400)

make index-pack able to complete thin packs.

A new flag, --fix-thin, instructs git-index-pack to append any missing
objects to a thin pack to make it self contained and indexable. Of course
objects missing from the pack must be present elsewhere in the local
repository.

Signed-off-by: Nicolas Pitre <nico@cam.org>
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>

enable index-pack streaming capabilityNicolas Pitre Mon, 23 Oct 2006 18:50:18 +0000 (14:50 -0400)

enable index-pack streaming capability

A new flag, --stdin, allows for a pack to be received over a stream.
When this flag is provided, the pack content is written to either
the named pack file or directly to the object repository under the
same name as produced by git-repack. The pack index is written as
well with the corresponding base name, unless the index name is
overriden with -o.

With this patch, git-index-pack could be used instead of
git-unpack-objects when fetching remote objects but only with
non "thin" packs for now.

Signed-off-by: Nicolas Pitre <nico@cam.org>
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>

Merge branch 'master' into jc/webJunio C Hamano Tue, 24 Oct 2006 03:53:38 +0000 (20:53 -0700)

Merge branch 'master' into jc/web

* master: (114 commits)
gitweb: Fix setting $/ in parse_commit()
daemon: do not die on older clients.
xdiff/xemit.c (xdl_find_func): Elide trailing white space in a context header.
git-clone: honor --quiet
Documentation for the [remote] config
prune-packed: Fix uninitialized variable.
ignore-errors requires cl
git-send-email: do not pass custom Date: header
Use column indexes in git-cvsserver where necessary.
gitweb: Add '..' (up directory) to tree view if applicable
gitweb: Improve git_print_page_path
pager: default to LESS=FRSX not LESS=FRS
Make prune also run prune-packed
git-vc: better installation instructions
gitweb: Do not esc_html $basedir argument to git_print_tree_entry
gitweb: Whitespace cleanup - tabs are for indent, spaces are for align (2)
Fix usagestring for git-branch
git-merge: show usage if run without arguments
add the capability for index-pack to read from a stream
git-clone: define die() and use it.
...

Make git-branch a builtinLars Hjemli Mon, 23 Oct 2006 21:27:45 +0000 (23:27 +0200)

Make git-branch a builtin

This replaces git-branch.sh with builtin-branch.c

The changes is basically a patch from Kristian Høgsberg, updated
to apply onto current 'next'

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

Built-in cherryRene Scharfe Mon, 23 Oct 2006 23:01:57 +0000 (01:01 +0200)

Built-in cherry

This replaces the shell script git-cherry with a version written in C.

The behaviour of the new version differs from the original in two
points: it has no long help any more, and it is handling the (optional)
third parameter a bit differently. Basically, it does the equivalent
of

ours=`git-rev-list $ours ^$limit ^$upstream`

instead of

ours=`git-rev-list $ours ^$limit`

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

Merge branch 'maint'Junio C Hamano Tue, 24 Oct 2006 02:29:05 +0000 (19:29 -0700)

Merge branch 'maint'

* maint:
gitweb: Fix setting $/ in parse_commit()
daemon: do not die on older clients.
xdiff/xemit.c (xdl_find_func): Elide trailing white space in a context header.
git-clone: honor --quiet
Documentation for the [remote] config
prune-packed: Fix uninitialized variable.

gitweb: Fix setting $/ in parse_commit() v1.4.3.2Petr Baudis Tue, 24 Oct 2006 00:39:14 +0000 (02:39 +0200)

gitweb: Fix setting $/ in parse_commit()

If the commit couldn't have been read, $/ wasn't restored to \n properly,
causing random havoc like git_get_ref_list() returning the ref names with
trailing \n.

Aside of potential confusion in the body of git_search(), no other $/
surprises are hopefully hidden in the code.

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

daemon: do not die on older clients.Junio C Hamano Tue, 24 Oct 2006 01:26:05 +0000 (18:26 -0700)

daemon: do not die on older clients.

In the older times, the clients did not say which host they were trying
to connect, and the code we recently added did not quite handle the
older clients correctly.

Noticed by Simon Arlott.

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

xdiff/xemit.c (xdl_find_func): Elide trailing white... Jim Meyering Mon, 23 Oct 2006 20:22:25 +0000 (22:22 +0200)

xdiff/xemit.c (xdl_find_func): Elide trailing white space in a context header.

This removes trailing blanks from git-generated diff headers
the same way a similar patch did that for GNU diff:

http://article.gmane.org/gmane.comp.gnu.utils.bugs/13839

That is, it removes trailing blanks on the hunk header line that
shows the function name.

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-clone: honor --quietJim Meyering Mon, 23 Oct 2006 13:59:48 +0000 (15:59 +0200)

git-clone: honor --quiet

I noticed that a cron-launched "git-clone --quiet" was generating
progress output to standard error -- and thus always spamming me.
The offending output was due to git-clone invoking git-read-tree with
its undocumented -v option.
This change turns off "-v" for --quiet.

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation for the [remote] configSanti Béjar Mon, 23 Oct 2006 16:42:14 +0000 (18:42 +0200)

Documentation for the [remote] config

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

prune-packed: Fix uninitialized variable.Alexandre Julliard Mon, 23 Oct 2006 16:26:39 +0000 (18:26 +0200)

prune-packed: Fix uninitialized variable.

The dryrun variable was made local instead of static by the previous
commit, and local variables aren't initialized to zero.

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

ignore-errors requires clKarl Hasselström Mon, 23 Oct 2006 00:02:42 +0000 (17:02 -0700)

ignore-errors requires cl

vc-git complains that it can't find the definition of ignore-errors
unless I (require 'cl). So I guess the correct place to do that is in
the file itself.

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

git-send-email: do not pass custom Date: headerEric Wong Mon, 23 Oct 2006 07:46:37 +0000 (00:46 -0700)

git-send-email: do not pass custom Date: header

We already generate a Date: header based on when the patch was
emailed. git-format-patch includes the Date: header of the
patch. Having two Date: headers is just confusing, so we
just use the current Date:

Often the mailed patches in a patch series are created over a
series of several hours or days, so the Date: header from the
original commit is incorrect for email, and often far off enough
for spam filters to complain.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Use column indexes in git-cvsserver where necessary.Shawn Pearce Mon, 23 Oct 2006 05:09:35 +0000 (01:09 -0400)

Use column indexes in git-cvsserver where necessary.

Tonight I found a git-cvsserver instance spending a lot of time in
disk IO while trying to process operations against a Git repository
with >30,000 objects contained in it.

Blowing away my SQLLite database and rebuilding all tables with
indexes on the attributes that git-cvsserver frequently runs queries
against seems to have resolved the issue quite nicely.

Since the indexes shouldn't hurt performance on small repositories
and always helps on larger repositories we should just always create
them when creating the revision storage tables.

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

gitweb: Add '..' (up directory) to tree view if applicableJakub Narebski Sat, 21 Oct 2006 15:54:44 +0000 (17:54 +0200)

gitweb: Add '..' (up directory) to tree view if applicable

Adds '..' (up directory) link at the top of "tree" view listing,
if both $hash_base and $file_name are provided, and $file_name
is not empty string.

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

gitweb: Improve git_print_page_pathJakub Narebski Sat, 21 Oct 2006 15:53:55 +0000 (17:53 +0200)

gitweb: Improve git_print_page_path

Add link to "tree root" (root directory) also for not defined name,
for example for "tree" action without defined "file_name" which means
"tree root".

Add " / " at the end of path when $type eq "tree".

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

Merge branch 'np/pack'Junio C Hamano Mon, 23 Oct 2006 05:51:42 +0000 (22:51 -0700)

Merge branch 'np/pack'

* np/pack:
add the capability for index-pack to read from a stream
index-pack: compare only the first 20-bytes of the key.
git-repack: repo.usedeltabaseoffset
pack-objects: document --delta-base-offset option
allow delta data reuse even if base object is a preferred base
zap a debug remnant
let the GIT native protocol use offsets to delta base when possible
make pack data reuse compatible with both delta types
make git-pack-objects able to create deltas with offset to base
teach git-index-pack about deltas with offset to base
teach git-unpack-objects about deltas with offset to base
introduce delta objects with offset to base

Merge branch 'maint'Junio C Hamano Mon, 23 Oct 2006 05:40:30 +0000 (22:40 -0700)

Merge branch 'maint'

* maint:
pager: default to LESS=FRSX not LESS=FRS
Make prune also run prune-packed
git-vc: better installation instructions
gitweb: Do not esc_html $basedir argument to git_print_tree_entry
gitweb: Whitespace cleanup - tabs are for indent, spaces are for align (2)
Fix usagestring for git-branch
git-merge: show usage if run without arguments

pager: default to LESS=FRSX not LESS=FRSJunio C Hamano Mon, 23 Oct 2006 03:28:10 +0000 (20:28 -0700)

pager: default to LESS=FRSX not LESS=FRS

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

Make prune also run prune-packedJ. Bruce Fields Sun, 22 Oct 2006 23:01:23 +0000 (19:01 -0400)

Make prune also run prune-packed

Both the git-prune manpage and everday.txt say that git-prune should also prune
unpacked objects that are also found in packs, by running git prune-packed.

Junio thought this was "a regression when prune was rewritten as a built-in."

So modify prune to call prune-packed again.

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

git-vc: better installation instructionsKarl Hasselström Sun, 22 Oct 2006 18:46:36 +0000 (20:46 +0200)

git-vc: better installation instructions

Provide some more detailed installation instructions, for the
elisp-challenged among us.

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