gitweb.git
Merge branch 'maint'Junio C Hamano Fri, 2 Nov 2007 23:56:42 +0000 (16:56 -0700)

Merge branch 'maint'

* maint:
Fixing path quoting in git-rebase
Remove unecessary hard-coding of EDITOR=':' VISUAL=':' in some test suites.
Documentation: quote commit messages consistently.
Remove escaping of '|' in manpage option sections

Merge branch 'ph/parseopt'Junio C Hamano Fri, 2 Nov 2007 23:42:23 +0000 (16:42 -0700)

Merge branch 'ph/parseopt'

* ph/parseopt: (24 commits)
gc: use parse_options
Fixed a command line option type for builtin-fsck.c
Make builtin-pack-refs.c use parse_options.
Make builtin-name-rev.c use parse_options.
Make builtin-count-objects.c use parse_options.
Make builtin-fsck.c use parse_options.
Update manpages to reflect new short and long option aliases
Make builtin-for-each-ref.c use parse-opts.
Make builtin-symbolic-ref.c use parse_options.
Make builtin-update-ref.c use parse_options
Make builtin-revert.c use parse_options.
Make builtin-describe.c use parse_options
Make builtin-branch.c use parse_options.
Make builtin-mv.c use parse-options
Make builtin-rm.c use parse_options.
Port builtin-add.c to use the new option parser.
parse-options: allow callbacks to take no arguments at all.
parse-options: Allow abbreviated options when unambiguous
Add shortcuts for very often used options.
parse-options: make some arguments optional, add callbacks.
...

Conflicts:

Makefile
builtin-add.c

Merge branch 'np/progress'Junio C Hamano Fri, 2 Nov 2007 23:27:37 +0000 (16:27 -0700)

Merge branch 'np/progress'

* np/progress:
Show total transferred as part of throughput progress
make sure throughput display gets updated even if progress doesn't move
return the prune-packed progress display to the inner loop
add throughput display to git-push
add some copyright notice to the progress display code
add throughput display to index-pack
add throughput to progress display
relax usage of the progress API
make struct progress an opaque type
prune-packed: don't call display_progress() for every file
Stop displaying "Pack pack-$ID created." during git-gc
Teach prune-packed to use the standard progress meter
Change 'Deltifying objects' to 'Compressing objects'
fix for more minor memory leaks
fix const issues with some functions
pack-objects.c: fix some global variable abuse and memory leaks
pack-objects: no delta possible with only one object in the list
cope with multiple line breaks within sideband progress messages
more compact progress display

Fixing path quoting in git-rebaseJonathan del Strother Wed, 17 Oct 2007 09:31:35 +0000 (10:31 +0100)

Fixing path quoting in git-rebase

git-rebase used to fail when run from a path containing a space.

Signed-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'br/gccfix'Junio C Hamano Fri, 2 Nov 2007 23:14:00 +0000 (16:14 -0700)

Merge branch 'br/gccfix'

* br/gccfix:
transport.c: squelch a gcc 4.0.1 complaint about an uninitialized variable

Merge branch 'gp/maint-diffdoc'Junio C Hamano Fri, 2 Nov 2007 23:12:04 +0000 (16:12 -0700)

Merge branch 'gp/maint-diffdoc'

* gp/maint-diffdoc:
git-diff.txt: add section "output format" describing the diff formats

Merge branch 'bk/maint-cvsexportcommit' into maintJunio C Hamano Fri, 2 Nov 2007 22:40:54 +0000 (15:40 -0700)

Merge branch 'bk/maint-cvsexportcommit' into maint

* bk/maint-cvsexportcommit:
cvsexportcommit: fix for commits that do not have parents

Remove unecessary hard-coding of EDITOR=':' VISUAL... Kristian Høgsberg Fri, 2 Nov 2007 15:33:07 +0000 (11:33 -0400)

Remove unecessary hard-coding of EDITOR=':' VISUAL=':' in some test suites.

They are already set and exoprted by sourcing ./test-lib.sh
in all test scripts.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: quote commit messages consistently.Sergei Organov Fri, 2 Nov 2007 17:12:57 +0000 (20:12 +0300)

Documentation: quote commit messages consistently.

Documentation quotes commit messages 14 times with double-quotes, and 7
times with single-quotes. The patch turns everything to double-quotes.

A nice side effect is that documentation becomes more Windoze-friendly
as AFAIK single quotes won't work there.

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Remove escaping of '|' in manpage option sectionsJonas Fonseca Fri, 2 Nov 2007 09:10:11 +0000 (10:10 +0100)

Remove escaping of '|' in manpage option sections

The escaped were ending up verbatim in the generated documentation.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

transport.c: squelch a gcc 4.0.1 complaint about an... Blake Ramsdell Fri, 2 Nov 2007 02:38:22 +0000 (19:38 -0700)

transport.c: squelch a gcc 4.0.1 complaint about an uninitialized variable

The variable is always set if it is going to be used; gcc just does
not notice it.

Signed-off-by: Blake Ramsdell <blaker@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gc: use parse_optionsJames Bowes Fri, 2 Nov 2007 01:02:27 +0000 (21:02 -0400)

gc: use parse_options

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

Merge branch 'maint'Junio C Hamano Fri, 2 Nov 2007 00:09:08 +0000 (17:09 -0700)

Merge branch 'maint'

* maint:
git-format-patch.txt: fix explanation of an example.
git-filter-branch.txt: fix a typo.
git-clone.txt: Improve --depth description.
gitweb: Update config file example for snapshot feature in gitweb/INSTALL

git-diff.txt: add section "output format" describing... Gerrit Pape Wed, 31 Oct 2007 13:59:16 +0000 (13:59 +0000)

git-diff.txt: add section "output format" describing the diff formats

git-diff.txt includes diff-options.txt which for the -p option refers
to a section "generating patches.." which is missing from the git-diff
documentation. This patch adapts diff-format.txt to additionally
mention the git-diff program, and includes diff-format.txt into
git-diff.txt.

Tino Keitel noticed this problem.

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

Merge branch 'bk/maint-cvsexportcommit'Junio C Hamano Thu, 1 Nov 2007 22:39:59 +0000 (15:39 -0700)

Merge branch 'bk/maint-cvsexportcommit'

* bk/maint-cvsexportcommit:
cvsexportcommit: fix for commits that do not have parents

Do no colorify test output if stdout is not a terminalAlex Riesen Thu, 1 Nov 2007 14:01:58 +0000 (15:01 +0100)

Do no colorify test output if stdout is not a terminal

like when the output is redirected into a file in a cron job.

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

Show total transferred as part of throughput progressNicolas Pitre Thu, 1 Nov 2007 20:59:57 +0000 (16:59 -0400)

Show total transferred as part of throughput progress

Right now it is infeasible to offer to the user a reasonable concept
of when a clone will be complete as we aren't able to come up with
the final pack size until after we have actually transferred the
entire thing to the client. However in many cases users can work
with a rough rule-of-thumb; for example it is somewhat well known
that git.git is about 16 MiB today and that linux-2.6.git is over
120 MiB.

We now show the total amount of data we have transferred over
the network as part of the throughput meter, organizing it in
"human friendly" terms like `ls -h` would do. Users can glance at
this, see that the total transferred size is about 3 MiB, see the
throughput of X KiB/sec, and determine a reasonable figure of about
when the clone will be complete, assuming they know the rough size
of the source repository or are able to obtain it.

This is also a helpful indicator that there is progress being made
even if we stall on a very large object. The thoughput meter may
remain relatively constant and the percentage complete and object
count won't be changing, but the total transferred will be increasing
as additional data is received for this object.

[from an initial proposal from Shawn O. Pearce]

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make sure throughput display gets updated even if progr... Nicolas Pitre Thu, 1 Nov 2007 20:59:56 +0000 (16:59 -0400)

make sure throughput display gets updated even if progress doesn't move

Currently the progress/throughput display update happens only through
display_progress(). If the progress based on object count remains
unchanged because a large object is being received, the latest throughput
won't be displayed. The display update should occur through
display_throughput() as well.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

return the prune-packed progress display to the inner... Nicolas Pitre Thu, 1 Nov 2007 20:59:55 +0000 (16:59 -0400)

return the prune-packed progress display to the inner loop

This reverts commit 0e549137966feb016927a827fb6e359aec8264a3 so to return
to the same state as commit b5d72f0a4cd3cce945ca0d37e4fa0ebbfcdcdb52.

On Wed, 31 Oct 2007, Shawn O. Pearce wrote:
> During my testing with a 40,000 loose object case (yea, I fully
> unpacked a git.git clone I had laying around) my system stalled
> hard in the first object directory. A *lot* longer than 1 second.
> So I got no progress meter for a long time, and then a progress
> meter appeared on the second directory.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-format-patch.txt: fix explanation of an example.Sergei Organov Thu, 1 Nov 2007 14:21:39 +0000 (17:21 +0300)

git-format-patch.txt: fix explanation of an example.

Signed-off-by: Sergei Organov <osv@javad.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-filter-branch.txt: fix a typo.Sergei Organov Thu, 1 Nov 2007 13:24:11 +0000 (16:24 +0300)

git-filter-branch.txt: fix a typo.

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

git-clone.txt: Improve --depth description.Ralf Wildenhues Thu, 1 Nov 2007 08:46:02 +0000 (09:46 +0100)

git-clone.txt: Improve --depth description.

Avoid abbreviation 'revs', improve the language a bit.

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

gitweb: Update config file example for snapshot feature... Jakub Narebski Thu, 1 Nov 2007 12:45:33 +0000 (13:45 +0100)

gitweb: Update config file example for snapshot feature in gitweb/INSTALL

Commit a3c8ab30a54c30a6a434760bedf04548425416ef by Matt McCutchen
"gitweb: snapshot cleanups & support for offering multiple formats"
introduced new format of $feature{'snapshot'}{'default'} value. Update
"Config file example" in gitweb/INSTALL accordingly.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/forkexec'Junio C Hamano Thu, 1 Nov 2007 20:47:47 +0000 (13:47 -0700)

Merge branch 'js/forkexec'

* js/forkexec:
Use the asyncronous function infrastructure to run the content filter.
Avoid a dup2(2) in apply_filter() - start_command() can do it for us.
t0021-conversion.sh: Test that the clean filter really cleans content.
upload-pack: Run rev-list in an asynchronous function.
upload-pack: Move the revision walker into a separate function.
Use the asyncronous function infrastructure in builtin-fetch-pack.c.
Add infrastructure to run a function asynchronously.
upload-pack: Use start_command() to run pack-objects in create_pack_file().
Have start_command() create a pipe to read the stderr of the child.
Use start_comand() in builtin-fetch-pack.c instead of explicit fork/exec.
Use run_command() to spawn external diff programs instead of fork/exec.
Use start_command() to run content filters instead of explicit fork/exec.
Use start_command() in git_connect() instead of explicit fork/exec.
Change git_connect() to return a struct child_process instead of a pid_t.

Conflicts:

builtin-fetch-pack.c

Merge branch 'sp/mergetool'Junio C Hamano Thu, 1 Nov 2007 06:53:55 +0000 (23:53 -0700)

Merge branch 'sp/mergetool'

* sp/mergetool:
mergetool: avoid misleading message "Resetting to default..."
mergetool: add support for ECMerge
mergetool: use path to mergetool in config var mergetool.<tool>.path

Merge branch 'sp/help'Junio C Hamano Thu, 1 Nov 2007 06:53:51 +0000 (23:53 -0700)

Merge branch 'sp/help'

* sp/help:
shell should call the new setup_path() to setup $PATH
include $PATH in generating list of commands for "help -a"
use only the $PATH for exec'ing git commands
list_commands(): simplify code by using chdir()
"current_exec_path" is a misleading name, use "argv_exec_path"
remove unused/unneeded "pattern" argument of list_commands
"git" returns 1; "git help" and "git help -a" return 0

Merge branch 'kh/commit'Junio C Hamano Thu, 1 Nov 2007 06:53:22 +0000 (23:53 -0700)

Merge branch 'kh/commit'

* kh/commit:
Export rerere() and launch_editor().
Introduce entry point add_interactive and add_files_to_cache
Enable wt-status to run against non-standard index file.
Enable wt-status output to a given FILE pointer.

cvsexportcommit: fix for commits that do not have parentsBrad King Wed, 31 Oct 2007 20:55:13 +0000 (16:55 -0400)

cvsexportcommit: fix for commits that do not have parents

Previously commits without parents would fail to export with a
message indicating that the commits had more than one parent.
Instead we should use the --root option for git-diff-tree in
place of a parent.

Signed-off-by: Brad King <brad.king@kitware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' to catch up with 1.5.3.5Junio C Hamano Wed, 31 Oct 2007 21:13:25 +0000 (14:13 -0700)

Merge branch 'maint' to catch up with 1.5.3.5

GIT 1.5.3.5 v1.5.3.5Junio C Hamano Wed, 31 Oct 2007 19:20:05 +0000 (12:20 -0700)

GIT 1.5.3.5

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

Merge branch 'maint' into HEADJunio C Hamano Wed, 31 Oct 2007 04:44:43 +0000 (21:44 -0700)

Merge branch 'maint' into HEAD

* maint:
Update GIT 1.5.3.5 Release Notes
git-rebase--interactive.sh: Make 3-way merge strategies work for -p.
git-rebase--interactive.sh: Don't pass a strategy to git-cherry-pick.
Fix --strategy parsing in git-rebase--interactive.sh
Make merge-recursive honor diff.renamelimit
cherry-pick/revert: more compact user direction message
core-tutorial: Use new syntax for git-merge.
git-merge: document but discourage the historical syntax
Prevent send-pack from segfaulting (backport from 'master')
Documentation/git-cvsexportcommit.txt: s/mgs/msg/ in example

Conflicts:

git-rebase--interactive.sh

Merge branch 'nd/worktree' into HEADJunio C Hamano Wed, 31 Oct 2007 04:38:11 +0000 (21:38 -0700)

Merge branch 'nd/worktree' into HEAD

* nd/worktree:
git-sh-setup.sh: use "git rev-parse --show-cdup" to check for SUBDIRECTORY_OK

Merge branch 'cc/skip' into HEADJunio C Hamano Wed, 31 Oct 2007 04:38:07 +0000 (21:38 -0700)

Merge branch 'cc/skip' into HEAD

* cc/skip:
Bisect: add "skip" to the short usage string.
Bisect run: "skip" current commit if script exit code is 125.
Bisect: add a "bisect replay" test case.
Bisect: add "bisect skip" to the documentation.
Bisect: refactor "bisect_{bad,good,skip}" into "bisect_state".
Bisect: refactor some logging into "bisect_write".
Bisect: refactor "bisect_write_*" functions.
Bisect: implement "bisect skip" to mark untestable revisions.
Bisect: fix some white spaces and empty lines breakages.
rev-list documentation: add "--bisect-all".
rev-list: implement --bisect-all

Merge branch 'jk/send-pack' into HEADJunio C Hamano Wed, 31 Oct 2007 04:38:04 +0000 (21:38 -0700)

Merge branch 'jk/send-pack' into HEAD

* jk/send-pack:
t5516: test update of local refs on push
send-pack: don't update tracking refs on error

Merge branch 'lt/rename' into HEADJunio C Hamano Wed, 31 Oct 2007 04:38:00 +0000 (21:38 -0700)

Merge branch 'lt/rename' into HEAD

* lt/rename:
Do the fuzzy rename detection limits with the exact renames removed
Fix ugly magic special case in exact rename detection
Do exact rename detection regardless of rename limits
Do linear-time/space rename logic for exact renames
copy vs rename detection: avoid unnecessary O(n*m) loops
Ref-count the filespecs used by diffcore
Split out "exact content match" phase of rename detection
Add 'diffcore.h' to LIB_H

Merge branch 'jn/web' into HEADJunio C Hamano Wed, 31 Oct 2007 04:37:58 +0000 (21:37 -0700)

Merge branch 'jn/web' into HEAD

* jn/web:
gitweb: Fix and simplify "split patch" detection

Merge branch 'ds/gitweb' into HEADJunio C Hamano Wed, 31 Oct 2007 04:37:55 +0000 (21:37 -0700)

Merge branch 'ds/gitweb' into HEAD

* ds/gitweb:
gitweb: Use chop_and_escape_str in more places.
gitweb: Refactor abbreviation-with-title-attribute code.
gitweb: Provide title attributes for abbreviated author names.

Merge branch 'js/rebase' into HEADJunio C Hamano Wed, 31 Oct 2007 04:37:51 +0000 (21:37 -0700)

Merge branch 'js/rebase' into HEAD

* js/rebase:
Fixing path quoting in git-rebase

No longer install git-svnimport, move to contrib/examplesGerrit Pape Tue, 30 Oct 2007 14:24:27 +0000 (14:24 +0000)

No longer install git-svnimport, move to contrib/examples

This has been proposed for a few times without much reaction
from the list. Actually remove it to see who screams.

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

Update GIT 1.5.3.5 Release NotesJunio C Hamano Wed, 31 Oct 2007 04:32:49 +0000 (21:32 -0700)

Update GIT 1.5.3.5 Release Notes

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

git-rebase--interactive.sh: Make 3-way merge strategies... Björn Steinbrink Wed, 31 Oct 2007 02:20:32 +0000 (03:20 +0100)

git-rebase--interactive.sh: Make 3-way merge strategies work for -p.

git-rebase--interactive.sh used to pass all parents of a merge commit to
git-merge, which means that we have at least 3 heads to merge: HEAD,
first parent and second parent. So 3-way merge strategies like recursive
wouldn't work.

Fortunately, we have checked out the first parent right before the merge
anyway, so that is HEAD. Therefore we can drop simply it from the list
of parents, making 3-way strategies work for merge commits with only
two parents.

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

git-rebase--interactive.sh: Don't pass a strategy to... Björn Steinbrink Wed, 31 Oct 2007 02:20:31 +0000 (03:20 +0100)

git-rebase--interactive.sh: Don't pass a strategy to git-cherry-pick.

git-cherry-pick doesn't support a strategy paramter, so don't pass one.
This means that --strategy for interactive rebases is a no-op for
anything but merge commits, but that's still better than being broken. A
correct fix would probably need to port the --merge behaviour from plain
git-rebase.sh, but I have no clue how to integrate that cleanly.

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

Fix --strategy parsing in git-rebase--interactive.shBjörn Steinbrink Wed, 31 Oct 2007 02:20:30 +0000 (03:20 +0100)

Fix --strategy parsing in git-rebase--interactive.sh

For the --strategy/-s option, git-rebase--interactive.sh dropped the
parameter which it was trying to parse.

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

Make merge-recursive honor diff.renamelimitLars Hjemli Tue, 25 Sep 2007 06:36:38 +0000 (08:36 +0200)

Make merge-recursive honor diff.renamelimit

It might be a sign of source code management gone bad, but when two branches
has diverged almost beyond recognition and time has come for the branches to
merge, the user is going to need all the help his tool can give him. Honoring
diff.renamelimit has great potential as a painkiller in such situations.

The painkiller effect could have been achieved by e.g. 'merge.renamelimit',
but the flexibility gained by a separate option is questionable: our user
would probably expect git to detect renames equally good when merging as
when diffing (I known I did).

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

cherry-pick/revert: more compact user direction messageNicolas Pitre Tue, 30 Oct 2007 19:59:24 +0000 (15:59 -0400)

cherry-pick/revert: more compact user direction message

A failed cherry-pick (and friend) currently says:

|Automatic cherry-pick failed. After resolving the conflicts,
|mark the corrected paths with 'git-add <paths>'
|and commit the result.

This can obviously be displayed on two lines only.
While at it, change "git-add" to "git add".

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

core-tutorial: Use new syntax for git-merge.Sergei Organov Tue, 30 Oct 2007 19:54:02 +0000 (22:54 +0300)

core-tutorial: Use new syntax for git-merge.

"git-merge <msg> HEAD <other branches>" is still supported but
we shouldn't encourage its use.

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

git-merge: document but discourage the historical syntaxJunio C Hamano Tue, 30 Oct 2007 18:54:11 +0000 (11:54 -0700)

git-merge: document but discourage the historical syntax

Historically "git merge" took its command line arguments in a
rather strange order. Document the historical syntax, and also
document clearly that it is not encouraged in new scripts.

There is no reason to deprecate the historical syntax, as the
current code can sanely tell which syntax the caller is using,
and existing scripts by people do use the historical syntax.

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

Prevent send-pack from segfaulting (backport from ... Junio C Hamano Tue, 30 Oct 2007 18:30:43 +0000 (11:30 -0700)

Prevent send-pack from segfaulting (backport from 'master')

4491e62ae932d5774f628d1bd3be663c11058a73 (Prevent send-pack from
segfaulting when a branch doesn't match) is hereby cherry-picked
back to 'maint'.

If we can't find a source match, and we have no destination, we
need to abort the match function early before we try to match
the destination against the remote.

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

Fixed a command line option type for builtin-fsck.cEmil Medve Tue, 30 Oct 2007 19:15:21 +0000 (14:15 -0500)

Fixed a command line option type for builtin-fsck.c

The typo was introduced by 5ac0a2063e8f824f6e8ffb4d18de74c55aae7131
(Make builtin-fsck.c use parse_options.)

Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
Acked-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add throughput display to git-pushNicolas Pitre Tue, 30 Oct 2007 21:06:21 +0000 (17:06 -0400)

add throughput display to git-push

This one triggers only when git-pack-objects is called with
--all-progress and --stdout which is the combination used by
git-push.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add some copyright notice to the progress display codeNicolas Pitre Tue, 30 Oct 2007 19:41:13 +0000 (15:41 -0400)

add some copyright notice to the progress display code

Some self patting on the back to keep my ego alive.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add throughput display to index-packNicolas Pitre Tue, 30 Oct 2007 18:57:35 +0000 (14:57 -0400)

add throughput display to index-pack

... and call it "Receiving objects" when over stdin to look clearer
to end users.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add throughput to progress displayNicolas Pitre Tue, 30 Oct 2007 18:57:34 +0000 (14:57 -0400)

add throughput to progress display

This adds the ability for the progress code to also display transfer
throughput when that makes sense.

The math was inspired by commit c548cf4ee0737a321ffe94f6a97c65baf87281be
from Linus.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

relax usage of the progress APINicolas Pitre Tue, 30 Oct 2007 18:57:33 +0000 (14:57 -0400)

relax usage of the progress API

Since it is now OK to pass a null pointer to display_progress() and
stop_progress() resulting in a no-op, then we can simplify the code
and remove a bunch of lines by not making those calls conditional all
the time.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

make struct progress an opaque typeNicolas Pitre Tue, 30 Oct 2007 18:57:32 +0000 (14:57 -0400)

make struct progress an opaque type

This allows for better management of progress "object" existence,
as well as making the progress display implementation more independent
from its callers.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

prune-packed: don't call display_progress() for every... Nicolas Pitre Tue, 30 Oct 2007 18:57:31 +0000 (14:57 -0400)

prune-packed: don't call display_progress() for every file

The progress count is per fanout directory, so it is useless to call
it for every file as the count doesn't change that often.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-cvsexportcommit.txt: s/mgs/msg/ in... Michael W. Olson Tue, 30 Oct 2007 13:53:47 +0000 (09:53 -0400)

Documentation/git-cvsexportcommit.txt: s/mgs/msg/ in example

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

gitweb: Fix and simplify "split patch" detectionJakub Narebski Tue, 30 Oct 2007 00:35:05 +0000 (01:35 +0100)

gitweb: Fix and simplify "split patch" detection

There are some cases when one line from "raw" git-diff output (raw
format) corresponds to more than one patch in the patchset git-diff
output; we call this situation "split patch". Old code misdetected
subsequent patches (for different files) with the same pre-image and
post-image as fragments of "split patch", leading to mislabeled
from-file/to-file diff header etc.

Old code used pre-image and post-image SHA-1 identifier ('from_id' and
'to_id') to check if current patch corresponds to old raw diff format
line, to find if one difftree raw line coresponds to more than one
patch in the patch format. Now we use post-image filename for that.
This assumes that post-image filename alone can be used to identify
difftree raw line. In the case this changes (which is unlikely
considering current diff engine) we can add 'from_id' and 'to_id'
to detect "patch splitting" together with 'to_file'.

Because old code got pre-image and post-image SHA-1 identifier for the
patch from the "index" line in extended diff header, diff header had
to be buffered. New code takes post-image filename from "git diff"
header, which is first line of a patch; this allows to simplify
git_patchset_body code. A side effect of resigning diff header
buffering is that there is always "diff extended_header" div, even
if extended diff header is empty.

Alternate solution would be to check when git splits patches, and do
not check if parsed info from current patch corresponds to current or
next raw diff format output line. Git splits patches only for 'T'
(typechange) status filepair, and there always two patches
corresponding to one raw diff line. It was not used because it would
tie gitweb code to minute details of git diff output.

While at it, use newly introduced parsed_difftree_line wrapper
subroutine in git_difftree_body.

Noticed-by: Yann Dirson <ydirson@altern.org>
Diagnosed-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-sh-setup.sh: use "git rev-parse --show-cdup" to... Nguyễn Thái Ngọc Duy Sat, 27 Oct 2007 07:47:21 +0000 (14:47 +0700)

git-sh-setup.sh: use "git rev-parse --show-cdup" to check for SUBDIRECTORY_OK

"git rev-parse --git-dir" trick does not play well with worktree

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make builtin-pack-refs.c use parse_options.Pierre Habouzit Mon, 15 Oct 2007 21:06:02 +0000 (23:06 +0200)

Make builtin-pack-refs.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-name-rev.c use parse_options.Pierre Habouzit Mon, 15 Oct 2007 20:57:59 +0000 (22:57 +0200)

Make builtin-name-rev.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-count-objects.c use parse_options.Pierre Habouzit Mon, 15 Oct 2007 20:38:51 +0000 (22:38 +0200)

Make builtin-count-objects.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-fsck.c use parse_options.Pierre Habouzit Mon, 15 Oct 2007 20:34:05 +0000 (22:34 +0200)

Make builtin-fsck.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Update manpages to reflect new short and long option... Jonas Fonseca Sun, 14 Oct 2007 14:10:42 +0000 (16:10 +0200)

Update manpages to reflect new short and long option aliases

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-for-each-ref.c use parse-opts.Pierre Habouzit Sat, 13 Oct 2007 18:40:46 +0000 (20:40 +0200)

Make builtin-for-each-ref.c use parse-opts.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-symbolic-ref.c use parse_options.Pierre Habouzit Sun, 7 Oct 2007 21:18:23 +0000 (23:18 +0200)

Make builtin-symbolic-ref.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-update-ref.c use parse_optionsPierre Habouzit Sun, 7 Oct 2007 21:14:43 +0000 (23:14 +0200)

Make builtin-update-ref.c use parse_options

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-revert.c use parse_options.Pierre Habouzit Sun, 7 Oct 2007 21:02:29 +0000 (23:02 +0200)

Make builtin-revert.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-describe.c use parse_optionsPierre Habouzit Sun, 7 Oct 2007 18:54:08 +0000 (20:54 +0200)

Make builtin-describe.c use parse_options

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-branch.c use parse_options.Pierre Habouzit Sun, 7 Oct 2007 16:26:21 +0000 (18:26 +0200)

Make builtin-branch.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-mv.c use parse-optionsPierre Habouzit Sun, 7 Oct 2007 12:19:33 +0000 (14:19 +0200)

Make builtin-mv.c use parse-options

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Make builtin-rm.c use parse_options.Pierre Habouzit Fri, 5 Oct 2007 19:09:19 +0000 (21:09 +0200)

Make builtin-rm.c use parse_options.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Port builtin-add.c to use the new option parser.Kristian Høgsberg Wed, 3 Oct 2007 21:45:02 +0000 (17:45 -0400)

Port builtin-add.c to use the new option parser.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

parse-options: allow callbacks to take no arguments... Pierre Habouzit Mon, 15 Oct 2007 22:32:38 +0000 (00:32 +0200)

parse-options: allow callbacks to take no arguments at all.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

parse-options: Allow abbreviated options when unambiguousJohannes Schindelin Sun, 14 Oct 2007 16:54:06 +0000 (17:54 +0100)

parse-options: Allow abbreviated options when unambiguous

When there is an option "--amend", the option parser now recognizes
"--am" for that option, provided that there is no other option beginning
with "--am".

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Add shortcuts for very often used options.Pierre Habouzit Sun, 14 Oct 2007 09:05:12 +0000 (11:05 +0200)

Add shortcuts for very often used options.

It helps with consistency of the help strings, for example.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

parse-options: make some arguments optional, add callbacks.Pierre Habouzit Sun, 14 Oct 2007 23:45:45 +0000 (01:45 +0200)

parse-options: make some arguments optional, add callbacks.

* add the possibility to use callbacks to parse some options, this can
help implementing new options kinds with great flexibility. struct option
gains a callback pointer and a `defval' where callbacks user can put
either integers or pointers. callbacks also can use the `value' pointer
for anything, preferably to the pointer to the final storage for the value
though.

* add a `flag' member to struct option to make explicit that this option may
have an optional argument. The semantics depends on the option type. For
INTEGERS, it means that if the switch is not used in its
--long-form=<value> form, and that there is no token after it or that the
token does not starts with a digit, then it's assumed that the switch has
no argument. For STRING or CALLBACK it works the same, except that the
condition is that the next atom starts with a dash. This is needed to
implement backward compatible behaviour with existing ways to parse the
command line. Its use for new options is discouraged.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Rework make_usage to print the usage message immediatelyAlex Riesen Sat, 13 Oct 2007 22:10:51 +0000 (00:10 +0200)

Rework make_usage to print the usage message immediately

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Add tests for parse-options.cJohannes Schindelin Sat, 13 Oct 2007 16:34:45 +0000 (17:34 +0100)

Add tests for parse-options.c

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

parse-options: be able to generate usages automaticallyPierre Habouzit Sun, 14 Oct 2007 23:38:30 +0000 (01:38 +0200)

parse-options: be able to generate usages automatically

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Add a simple option parser.Pierre Habouzit Sun, 14 Oct 2007 23:35:37 +0000 (01:35 +0200)

Add a simple option parser.

The option parser takes argc, argv, an array of struct option
and a usage string. Each of the struct option elements in the array
describes a valid option, its type and a pointer to the location where the
value is written. The entry point is parse_options(), which scans through
the given argv, and matches each option there against the list of valid
options. During the scan, argv is rewritten to only contain the
non-option command line arguments and the number of these is returned.

Aggregation of single switches is allowed:
-rC0 is the same as -r -C 0 (supposing that -C wants an arg).

Every long option automatically support the option with the same name,
prefixed with 'no-' to unset the switch. It assumes that initial value for
strings are "NULL" and for integers is "0".

Long options are supported either with '=' or without:
--some-option=foo is the same as --some-option foo

Acked-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

shell should call the new setup_path() to setup $PATHScott R Parish Sat, 27 Oct 2007 08:36:55 +0000 (01:36 -0700)

shell should call the new setup_path() to setup $PATH

Shell currently does its own manual thing for setting up the $PATH;
it can now call setup_path().

Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

include $PATH in generating list of commands for "help -a"Scott R Parish Mon, 29 Oct 2007 03:30:52 +0000 (20:30 -0700)

include $PATH in generating list of commands for "help -a"

Git had previously been using the $PATH for scripts--a previous
patch moved exec'ed commands to also use the $PATH. For consistency
"help -a" should also list commands in the $PATH.

The main commands are still listed from the git_exec_path(), but
the $PATH is walked and other git commands (probably extensions) are
listed.

Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

use only the $PATH for exec'ing git commandsScott R Parish Sun, 28 Oct 2007 11:17:20 +0000 (04:17 -0700)

use only the $PATH for exec'ing git commands

We need to correctly set up $PATH for non-c based git commands.
Since we already do this, we can just use that $PATH and execvp,
instead of looping over the paths with execve.

This patch adds a setup_path() function to exec_cmd.c, which sets
the $PATH order correctly for our search order. execv_git_cmd() is
stripped down to setting up argv and calling execvp(). git.c's
main() only only needs to call setup_path().

Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

list_commands(): simplify code by using chdir()Scott R Parish Sat, 27 Oct 2007 08:36:52 +0000 (01:36 -0700)

list_commands(): simplify code by using chdir()

The current code builds absolute path strings for each file to
stat(), this can easily be avoided by chdir()ing into the directory.

Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

"current_exec_path" is a misleading name, use "argv_exe... Scott R Parish Sat, 27 Oct 2007 08:36:51 +0000 (01:36 -0700)

"current_exec_path" is a misleading name, use "argv_exec_path"

Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

remove unused/unneeded "pattern" argument of list_commandsScott R Parish Sat, 27 Oct 2007 08:36:50 +0000 (01:36 -0700)

remove unused/unneeded "pattern" argument of list_commands

list_commands() currently accepts and ignores a "pattern" argument,
and then hard codes a prefix as well as some magic numbers. This
hardcodes the prefix inside of the function and removes the magic
numbers.

Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

"git" returns 1; "git help" and "git help -a" return 0Scott R Parish Sat, 27 Oct 2007 08:36:49 +0000 (01:36 -0700)

"git" returns 1; "git help" and "git help -a" return 0

Signed-off-by: Scott R Parish <srp@srparish.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Correct handling of upload-pack in builtin-fetch-packDaniel Barkalow Tue, 30 Oct 2007 02:35:08 +0000 (22:35 -0400)

Correct handling of upload-pack in builtin-fetch-pack

The field in the args was being ignored in favor of a static constant

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

Speedup scanning for excluded files.Lars Knoll Sun, 28 Oct 2007 20:27:13 +0000 (21:27 +0100)

Speedup scanning for excluded files.

Try to avoid a lot of work scanning for excluded files,
by caching some more information when setting up the exclusion
data structure.

Speeds up 'git runstatus' on a repository containing the Qt sources by 30% and
reduces the amount of instructions executed (as measured by valgrind) by a
factor of 2.

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

RelNotes-1.5.4: describe recent updatesJunio C Hamano Mon, 29 Oct 2007 20:09:01 +0000 (13:09 -0700)

RelNotes-1.5.4: describe recent updates

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

Teach git-pull about --[no-]ff, --no-squash and --commitLars Hjemli Mon, 29 Oct 2007 08:41:18 +0000 (09:41 +0100)

Teach git-pull about --[no-]ff, --no-squash and --commit

These options are supported by git-merge, but git-pull didn't know about
them.

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

Bisect: add "skip" to the short usage string.Christian Couder Mon, 29 Oct 2007 04:31:52 +0000 (05:31 +0100)

Bisect: add "skip" to the short usage string.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 29 Oct 2007 19:53:54 +0000 (12:53 -0700)

Merge branch 'maint'

* maint:
RelNotes-1.5.3.5: describe recent fixes
merge-recursive.c: mrtree in merge() is not used before set
sha1_file.c: avoid gcc signed overflow warnings
Fix a small memory leak in builtin-add
honor the http.sslVerify option in shell scripts

Remove outdated references to cogito in documentationDan McGee Sat, 27 Oct 2007 16:53:29 +0000 (11:53 -0500)

Remove outdated references to cogito in documentation

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

RelNotes-1.5.3.5: describe recent fixesJunio C Hamano Mon, 29 Oct 2007 19:02:59 +0000 (12:02 -0700)

RelNotes-1.5.3.5: describe recent fixes

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

merge-recursive.c: mrtree in merge() is not used before setJunio C Hamano Mon, 29 Oct 2007 19:00:55 +0000 (12:00 -0700)

merge-recursive.c: mrtree in merge() is not used before set

The called function merge_trees() sets its *result, to which the
address of the variable mrtree in merge() function is passed,
only when index_only is set. But that is Ok as the function
uses the value in the variable only under index_only iteration.

However, recent gcc does not realize this. Work it around by
adding a fake initializer.

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

sha1_file.c: avoid gcc signed overflow warningsJunio C Hamano Mon, 29 Oct 2007 18:53:55 +0000 (11:53 -0700)

sha1_file.c: avoid gcc signed overflow warnings

With the recent gcc, we get:

sha1_file.c: In check_packed_git_:
sha1_file.c:527: warning: assuming signed overflow does not
occur when assuming that (X + c) < X is always false
sha1_file.c:527: warning: assuming signed overflow does not
occur when assuming that (X + c) < X is always false

for a piece of code that tries to make sure that off_t is large
enough to hold more than 2^32 offset. The test tried to make
sure these do not wrap-around:

/* make sure we can deal with large pack offsets */
off_t x = 0x7fffffffUL, y = 0xffffffffUL;
if (x > (x + 1) || y > (y + 1)) {

but gcc assumes it can do whatever optimization it wants for a
signed overflow (undefined behaviour) and warns about this
construct.

Follow Linus's suggestion to check sizeof(off_t) instead to work
around the problem.

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

core-tutorial: Catch up with current GitBenoit Sigoure Mon, 29 Oct 2007 07:00:32 +0000 (08:00 +0100)

core-tutorial: Catch up with current Git

No longer talk about Cogito since it's deprecated. Some scripts (such as
git-reset or git-branch) have undergone builtinification so adjust the text
to reflect this.

Fix a typo in the description of git-show-branch (merges are indicated by a
`-', not by a `.').

git-pull/git-push do not seem to use the dumb git-ssh-fetch/git-ssh-upload
(the text was probably missing a word).

Adjust a link that wasn't rendered properly because it was wrapped.

Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix a small memory leak in builtin-addBenoit Sigoure Mon, 29 Oct 2007 07:00:33 +0000 (08:00 +0100)

Fix a small memory leak in builtin-add

prune_directory and fill_directory allocated one byte per pathspec and never
freed it.

Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>