2006-10-18 23:53:28

by Junio C Hamano

[permalink] [raw]
Subject: [ANNOUNCE] GIT 1.4.3

The latest feature release GIT 1.4.3 is available at the usual
places:

http://www.kernel.org/pub/software/scm/git/

git-1.4.3.tar.{gz,bz2} (tarball)
git-htmldocs-1.4.3.tar.{gz,bz2} (preformatted docs)
git-manpages-1.4.3.tar.{gz,bz2} (preformatted docs)
RPMS/$arch/git-*-1.4.3-1.$arch.rpm (RPM)

Please holler if i386 RPMs are broken, since they are not cut on
the machine I am used to use (I ended up burning half a day
installing and futzing with FC5 on my older laptop resurrected
from the boneyard).

User visible changes, other than bugfixes, since v1.4.2.4 are:

- upload-tar is deprecated but not removed; we now have
upload-archive --format=tar and --format=zip instead.

- ftp:// protocol is supported the same way as http:// and
https://

- git-diff paginates its output to the tty by default. If this
irritates you, using LESS=RF might help.

- git-cherry-pick does not leave often useless "cherry-picked
from" message.

- git-merge-recursive was replaced by a rewritten implemention
in C. The original Python implementation is available as
"recursive-old" strategy for now, but hopefully we can remove
it in the next cycle.

- git-daemon can do name based virtual hosting.

- git-daemon can serve tar and zip snapshots.

- many gitweb tweaks and cleanups.

- git-apply --reverse, --reject.

- git-diff --color highlights whitespace errors.

- git-diff --stat can be taught to use non-default widths.

- git-status can use colors.

- many more commands are built-in.

----------------------------------------------------------------

.gitignore | 10 +-
Documentation/Makefile | 4 +-
Documentation/asciidoc.conf | 1 +
Documentation/config.txt | 34 +
Documentation/core-tutorial.txt | 2 +-
Documentation/cvs-migration.txt | 2 +-
Documentation/diff-options.txt | 10 +-
Documentation/git-apply.txt | 69 +-
.../{git-tar-tree.txt => git-archive.txt} | 93 +-
Documentation/git-blame.txt | 29 +-
Documentation/git-cherry-pick.txt | 23 +-
Documentation/git-daemon.txt | 135 +-
Documentation/git-grep.txt | 15 +-
Documentation/git-http-push.txt | 2 +-
Documentation/git-init-db.txt | 4 +
Documentation/git-ls-remote.txt | 18 +-
Documentation/git-pack-objects.txt | 26 +-
Documentation/git-receive-pack.txt | 2 +
Documentation/git-repack.txt | 13 +-
Documentation/git-repo-config.txt | 3 +-
Documentation/git-rev-list.txt | 428 ++-
Documentation/git-rev-parse.txt | 2 +-
Documentation/git-send-pack.txt | 2 +-
Documentation/git-shortlog.txt | 17 +-
Documentation/git-svn.txt | 399 ++-
Documentation/git-tar-tree.txt | 3 +
Documentation/git-unpack-objects.txt | 8 +-
Documentation/git-update-index.txt | 4 +-
.../{git-upload-tar.txt => git-upload-archive.txt} | 24 +-
Documentation/git.txt | 37 +-
Documentation/gitk.txt | 151 +-
Documentation/glossary.txt | 4 +-
Documentation/hooks.txt | 56 +-
Documentation/technical/racy-git.txt | 193 +
Documentation/tutorial-2.txt | 2 +-
GIT-VERSION-GEN | 2 +-
INSTALL | 15 +-
Makefile | 297 +-
builtin-tar-tree.c => archive-tar.c | 229 +-
archive-zip.c | 333 ++
archive.h | 47 +
blame.c | 19 +-
builtin-apply.c | 708 +++-
builtin-archive.c | 263 ++
builtin-cat-file.c | 40 +-
checkout-index.c => builtin-checkout-index.c | 29 +-
builtin-commit-tree.c | 2 +-
builtin-count.c => builtin-count-objects.c | 2 +-
builtin-diff-files.c | 7 -
builtin-diff-stages.c | 2 +-
builtin-diff.c | 16 +-
builtin-fmt-merge-msg.c | 39 +-
builtin-grep.c | 650 +---
builtin-init-db.c | 1 +
builtin-log.c | 7 +-
builtin-ls-files.c | 27 +-
builtin-ls-tree.c | 6 +-
builtin-mailinfo.c | 17 +-
builtin-mv.c | 12 +-
name-rev.c => builtin-name-rev.c | 8 +-
pack-objects.c => builtin-pack-objects.c | 439 ++-
builtin-prune-packed.c | 2 +-
builtin-prune.c | 4 +-
builtin-push.c | 32 +-
builtin-read-tree.c | 865 +----
builtin-repo-config.c | 34 +-
builtin-rev-list.c | 171 +-
builtin-rev-parse.c | 10 +-
builtin-rm.c | 2 +-
builtin-runstatus.c | 36 +
builtin-show-branch.c | 18 +-
symbolic-ref.c => builtin-symbolic-ref.c | 8 +-
builtin-tar-tree.c | 439 +--
unpack-objects.c => builtin-unpack-objects.c | 78 +-
builtin-update-index.c | 18 +-
builtin-update-ref.c | 2 +-
builtin-upload-archive.c | 175 +
builtin-upload-tar.c | 74 -
verify-pack.c => builtin-verify-pack.c | 15 +-
builtin-write-tree.c | 4 +-
builtin.h | 86 +-
cache-tree.c | 14 +-
cache.h | 68 +-
check-racy.c | 28 +
color.c | 176 +
color.h | 12 +
combine-diff.c | 41 +-
commit.c | 51 +-
commit.h | 2 +-
compat/inet_pton.c | 220 +
config.c | 18 +-
config.mak.in | 18 +
configure.ac | 561 ++-
connect.c | 50 +-
contrib/completion/git-completion.bash | 324 ++
contrib/emacs/git.el | 4 +-
contrib/emacs/vc-git.el | 6 +-
contrib/gitview/gitview.txt | 56 +-
contrib/vim/README | 8 +
contrib/vim/syntax/gitcommit.vim | 18 +
convert-objects.c | 8 +-
csum-file.c | 6 +-
daemon.c | 431 ++-
date.c | 132 +-
describe.c | 14 +-
diff-delta.c | 4 +-
diff-lib.c | 32 +-
diff.c | 666 ++-
diff.h | 15 +-
diffcore-break.c | 2 +-
diffcore-rename.c | 2 +-
dir.c | 48 +-
dir.h | 1 +
dump-cache-tree.c | 2 +-
entry.c | 4 +-
environment.c | 20 +-
exec_cmd.c | 20 +-
fetch-clone.c | 33 +-
fetch-pack.c | 24 +-
fetch.c | 9 +-
fsck-objects.c | 44 +-
generate-cmdlist.sh | 1 +
git-branch.sh | 10 +
git-checkout.sh | 9 +-
git-cherry.sh | 3 -
git-clone.sh | 8 +-
git-commit.sh | 582 +--
git-compat-util.h | 18 +-
git-cvsexportcommit.perl | 2 +-
git-cvsserver.perl | 65 +-
git-fetch.sh | 26 +-
git-ls-remote.sh | 6 +-
...erge-recursive.py => git-merge-recursive-old.py | 0
git-merge.sh | 5 +-
git-parse-remote.sh | 43 +-
git-pull.sh | 2 +-
git-rebase.sh | 6 +-
git-repack.sh | 25 +-
git-reset.sh | 3 -
git-resolve.sh | 4 +
git-revert.sh | 14 +-
git-send-email.perl | 42 +-
git-shortlog.perl | 44 +-
git-svn.perl | 122 +-
git-svnimport.perl | 35 +-
git.c | 131 +-
git.spec.in | 23 +-
gitk | 682 +++-
gitweb/README | 61 +-
gitweb/git-favicon.png | Bin
gitweb/git-logo.png | Bin
gitweb/gitweb.css | 80 +-
gitweb/{gitweb.cgi => gitweb.perl} | 4459 ++++++++++++--------
grep.c | 498 +++
grep.h | 79 +
builtin-help.c => help.c | 4 +-
http-fetch.c | 303 +--
http-push.c | 95 +-
http.c | 12 +
http.h | 4 +
imap-send.c | 45 +-
index-pack.c | 16 +-
interpolate.c | 108 +
interpolate.h | 26 +
builtin-prune.c => list-objects.c | 255 +-
list-objects.h | 12 +
local-fetch.c | 8 +-
log-tree.c | 82 +-
merge-base.c | 2 +-
merge-file.c | 2 +-
merge-index.c | 5 +-
merge-recursive.c | 1351 ++++++
merge-tree.c | 10 +-
mktag.c | 2 +-
mktree.c | 5 +-
object-refs.c | 11 +-
object.c | 6 +-
object.h | 11 -
pack-check.c | 25 +-
pack-redundant.c | 18 +-
pager.c | 4 +-
patch-id.c | 2 +-
path-list.c | 5 +-
path.c | 10 +-
peek-remote.c | 5 +-
perl/.gitignore | 4 +
perl/Git.pm | 837 ++++
perl/Makefile.PL | 28 +
perl/private-Error.pm | 827 ++++
quote.c | 61 +
quote.h | 7 +
read-cache.c | 77 +-
receive-pack.c | 28 +-
refs.c | 26 +-
revision.c | 258 +-
revision.h | 14 +-
rsh.c | 31 +-
run-command.c | 8 +-
send-pack.c | 126 +-
server-info.c | 2 +-
setup.c | 2 +
sha1_file.c | 596 ++--
sha1_name.c | 60 +-
sideband.c | 78 +
sideband.h | 13 +
ssh-fetch.c | 10 +-
ssh-upload.c | 4 +-
t/t1200-tutorial.sh | 2 +-
t/t1400-update-ref.sh | 86 +-
t/t3200-branch.sh | 12 +
t/t3403-rebase-skip.sh | 4 +-
t/t3700-add.sh | 22 +
t/t4015-diff-whitespace.sh | 122 +
t/t4103-apply-binary.sh | 4 +-
t/t4104-apply-boundary.sh | 115 +
t/t4116-apply-reverse.sh | 85 +
t/t4117-apply-reject.sh | 157 +
t/t5400-send-pack.sh | 14 +
t/t5510-fetch.sh | 69 +
t/t5600-clone-fail-cleanup.sh | 6 +
t/t5710-info-alternate.sh | 2 +
t/t6001-rev-list-graft.sh | 113 +
t/t7002-grep.sh | 31 +-
t/t7201-co.sh | 9 +
t/test-lib.sh | 17 +-
trace.c | 150 +
tree-diff.c | 15 +-
tree-walk.c | 4 +-
tree.c | 5 +-
builtin-read-tree.c => unpack-trees.c | 474 +--
unpack-trees.h | 35 +
upload-pack.c | 190 +-
write_or_die.c | 45 +
wt-status.c | 276 ++
wt-status.h | 25 +
xdiff-interface.c | 12 +-
xdiff/xutils.c | 29 +-
237 files changed, 16898 insertions(+), 8168 deletions(-)
copy Documentation/{git-tar-tree.txt => git-archive.txt} (29%)
rewrite Documentation/git-rev-list.txt (61%)
rename Documentation/{git-upload-tar.txt => git-upload-archive.txt} (30%)
rewrite Documentation/gitk.txt (37%)
create mode 100644 Documentation/technical/racy-git.txt
copy builtin-tar-tree.c => archive-tar.c (59%)
create mode 100644 archive-zip.c
create mode 100644 archive.h
create mode 100644 builtin-archive.c
rename builtin-cat-file.c => builtin-cat-file.c (0%)
rename checkout-index.c => builtin-checkout-index.c (92%)
rename builtin-count.c => builtin-count-objects.c (99%)
rename name-rev.c => builtin-name-rev.c (97%)
rename pack-objects.c => builtin-pack-objects.c (81%)
create mode 100644 builtin-runstatus.c
rename symbolic-ref.c => builtin-symbolic-ref.c (75%)
rename unpack-objects.c => builtin-unpack-objects.c (82%)
create mode 100644 builtin-upload-archive.c
delete mode 100644 builtin-upload-tar.c
rename verify-pack.c => builtin-verify-pack.c (83%)
create mode 100644 check-racy.c
create mode 100644 color.c
create mode 100644 color.h
create mode 100644 compat/inet_pton.c
rewrite configure.ac (21%)
create mode 100755 contrib/completion/git-completion.bash
rename contrib/gitview/{gitview.txt => gitview.txt} (74%)
create mode 100644 contrib/vim/README
create mode 100644 contrib/vim/syntax/gitcommit.vim
rename git-merge-recursive.py => git-merge-recursive-old.py (100%)
create mode 100644 gitweb/git-favicon.png
create mode 100644 gitweb/git-logo.png
rename gitweb/{gitweb.cgi => gitweb.perl} (30%)
create mode 100644 grep.c
create mode 100644 grep.h
rename builtin-help.c => help.c (99%)
create mode 100644 interpolate.c
create mode 100644 interpolate.h
copy builtin-prune.c => list-objects.c (24%)
create mode 100644 list-objects.h
create mode 100644 merge-recursive.c
create mode 100644 perl/.gitignore
create mode 100644 perl/Git.pm
create mode 100644 perl/Makefile.PL
create mode 100644 perl/private-Error.pm
create mode 100644 sideband.c
create mode 100644 sideband.h
create mode 100755 t/t4015-diff-whitespace.sh
create mode 100755 t/t4104-apply-boundary.sh
create mode 100755 t/t4116-apply-reverse.sh
create mode 100755 t/t4117-apply-reject.sh
create mode 100755 t/t5510-fetch.sh
create mode 100755 t/t6001-rev-list-graft.sh
create mode 100644 trace.c
copy builtin-read-tree.c => unpack-trees.c (62%)
create mode 100644 unpack-trees.h
create mode 100644 write_or_die.c
create mode 100644 wt-status.c
create mode 100644 wt-status.h

Alan Chandler (2):
Update the gitweb/README file to include setting the GITWEB_CONFIG environment
Fix usage string to match that given in the man page

Alex Riesen (3):
Use const for interpolate arguments
fix daemon.c compilation for NO_IPV6=1
do not discard constness in interp_set_entry value argument

Alexandre Julliard (2):
git.el: Fixed inverted "renamed from/to" message.
vc-git.el: Switch to using git-blame instead of git-annotate.

Andy Whitcroft (4):
send-pack: remove remote reference limit
send-pack: switch to using git-rev-list --stdin
svnimport: add support for parsing From: lines for author
add proper dependancies on the xdiff source

Aneesh Kumar K.V (4):
gitweb: Support for snapshot
gitweb: fix snapshot support
gitweb: Make blame and snapshot a feature.
gitweb: Fix git_blame

Art Haas (1):
Patch for http-fetch.c and older curl releases

Christian Couder (9):
Trace into open fd and refactor tracing code.
Trace into a file or an open fd and refactor tracing code.
Update GIT_TRACE documentation.
Fix memory leak in prepend_to_path (git.c).
Move add_to_string to "quote.c" and make it extern.
Fix a memory leak in "connect.c" and die if command too long.
Fix space in string " false" problem in "trace.c".
Remove empty ref directories that prevent creating a ref.
Fix tracing when GIT_TRACE is set to an empty string.

David Rientjes (18):
blame.c return cleanup
builtin-grep.c cleanup
builtin-push.c cleanup
diff.c cleanup
http-push.c cleanup
read-cache.c cleanup
Make pprint_tag void and cleans up call in cmd_cat_file.
Make show_entry void
Make checkout_all void.
Make fsck_dir void.
Make pack_objects void.
Make track_tree_refs void.
Make upload_pack void and remove conditional return.
Make sha1flush void and remove conditional return.
make inline is_null_sha1 global
use appropriate typedefs
remove unnecessary initializations
Do not use memcmp(sha1_1, sha1_2, 20) with hardcoded length.

Dennis Stosberg (12):
"test" in Solaris' /bin/sh does not support -e
Makefile fix for Solaris
Add possibility to pass CFLAGS and LDFLAGS specific to the perl subdir
Solaris has strlcpy() at least since version 8
Look for sockaddr_storage in sys/socket.h
Fix detection of ipv6 on Solaris
Fix compilation with Sun CC
gitweb: Use --git-dir parameter instead of setting $ENV{'GIT_DIR'}
gitweb: Remove forgotten call to git_to_hash
use do() instead of require() to include configuration
lock_ref_sha1_basic does not remove empty directories on BSD
Add default values for --window and --depth to the docs

Dmitry V. Levin (3):
Make count-objects, describe and merge-tree work in subdirectory
Documentation: Fix broken links
Handle invalid argc gently

Eric Wong (13):
pass DESTDIR to the generated perl/Makefile
git-svn: establish new connections on commit after fork
git-svn: recommend rebase for syncing against an SVN repo
git-svn: add the 'dcommit' command
git-svn: stop repeatedly reusing the first commit message with dcommit
git-svn: multi-init saves and reuses --tags and --branches arguments
git-svn: log command fixes
Documentation/git-svn: document some of the newer features
git-svn: -h(elp) message formatting fixes
commit: fix a segfault when displaying a commit with unreachable parents
git-svn: add a message encouraging use of SVN::* libraries
git-svn: fix commits over svn+ssh://
git-svn: reduce memory usage for large commits

Franck Bui-Huu (11):
Add a newline before appending "Signed-off-by: " line
log-tree.c: cleanup a bit append_signoff()
Add git-archive
git-archive: wire up TAR format.
git-archive: wire up ZIP format.
Add git-upload-archive
connect.c: finish_connect(): allow null pid parameter
Test return value of finish_connect()
upload-archive: monitor child communication even more carefully.
git-archive: update documentation
Add git-upload-archive to the main git man page

Haavard Skinnemoen (1):
git-send-email: Don't set author_not_sender from Cc: lines

Jakub Narebski (139):
gitweb: whitespace cleanup
gitweb: Use list for of open for running git commands, thorougly.
gitweb: simplify git_get_hash_by_path
gitweb: More explicit error messages for open "-|"
gitweb: Cleanup - chomp $line in consistent style
gitweb: Cleanup - chomp @lines in consistent style
gitweb: Add git_page_nav for later use
gitweb: Navbar refactoring - use git_page_nav to generate navigation bar
gitweb: Replace form-feed character by ^L
gitweb: Show project descriptions with utf-8 characters in project list correctly
gitweb: Add "\n" after <br/> in git_page_nav
gitweb: Pager refactoring - use git_get_paging_nav for pagination
gitweb: Remove $project from git_get_paging_nav arguments
gitweb: Headers refactoring - use git_header_div for header divs
gitweb: Remove characters entities entirely when shortening string
gitweb: Ref refactoring - use git_get_referencing for marking tagged/head commits
gitweb: Refactor generation of shortlog, tags and heads body
gitweb: do not quote path for list version of open "-|"
gitweb: Remove characters entities entirely when shortening string -- correction
gitweb: Reordering code and dividing it into categories
gitweb: Refactoring git_project_list
autoconf: Add support for setting SHELL_PATH and PERL_PATH
autoconf: Move site configuration section earlier in configure.ac
autoconf: Add support for setting PYTHON_PATH or NO_PYTHON
autoconf: Check for ll hh j z t size specifiers introduced by C99
autoconf: Typo cleanup, reordering etc.
Copy description of new build configuration variables to configure.ac
autoconf: Set NEEDS_LIBICONV unconditionally if there is no iconv in libc
gitweb: Separate input validation and dispatch, add comment about opml action
gitweb: die_error first (optional) parameter is HTTP status
gitweb: Use undef for die_error to use default first (status) parameter value
gitweb: Don't undefine query parameter related variables before die_error
gitweb: Cleanup and uniquify error messages
gitweb: No periods for error messages
gitweb: No error messages with unescaped/unprotected user input
gitweb: PATH_INFO=/ means no project
gitweb: Inline $rss_link
gitweb: Refactor untabifying - converting tabs to spaces
gitweb: fix commitdiff for root commits
gitweb: Skip nonmatching lines in difftree output, consistently
autoconf: Unset NO_STH and NEED_STH when it is detected not needed
gitweb: Remove unused variables in git_shortlog_body and git_heads
autoconf: Add configure target to main Makefile
autoconf: Error out on --without-shell and --without-perl
autoconf: Improvements in NO_PYTHON/PYTHON_PATH handling
autoconf: Move variables which we always set to config.mak.in
autoconf: It is --without-python, not --no-python
autoconf: Add support for setting CURLDIR, OPENSSLDIR, EXPATDIR
gitweb: Whitespace cleanup - tabs are for indent, spaces are for align
gitweb: Great subroutines renaming
gitweb: Separate ref parsing in git_get_refs_list into parse_ref
gitweb: Refactor printing shortened title in git_shortlog_body and git_tags_body
gitweb: Separate main part of git_history into git_history_body
gitweb: Separate finding project owner into git_get_project_owner
gitweb: Change appereance of marker of refs pointing to given object
gitweb: Skip comments in mime.types like file
gitweb: True fix: Support for the standard mime.types map in gitweb
gitweb: Separate printing difftree in git_commit into git_difftree_body
gitweb: Show project's git URL on summary page
gitweb: Add support for per project git URLs
gitweb: Uniquify version info output, add meta generator in page header
gitweb: Refactor printing commit message
gitweb: Added parse_difftree_raw_line function for later use
gitweb: Use parse_difftree_raw_line in git_difftree_body
gitweb: bugfix: a.list formatting regression
gitweb: Replace some presentational HTML by CSS
gitweb: Whitespace cleanup: realign, reindent
gitweb: Use underscore instead of hyphen to separate words in HTTP headers names
gitweb: Route rest of action subroutines through %actions
gitweb: Use here-doc
gitweb: Drop the href() params which keys are not in %mapping
gitweb: Sort CGI parameters returned by href()
gitweb: Use git-diff-tree patch output for commitdiff
gitweb: Show information about incomplete lines in commitdiff
gitweb: Remove invalid comment in format_diff_line
gitweb: Streamify patch output in git_commitdiff
gitweb: Add git_get_{following,preceding}_references functions
gitweb: Faster return from git_get_preceding_references if possible
gitweb: Add git_get_rev_name_tags function
gitweb: Use git_get_name_rev_tags for commitdiff_plain X-Git-Tag: header
gitweb: Add support for hash_parent_base parameter for blobdiffs
gitweb: Allow for pre-parsed difftree info in git_patchset_body
gitweb: Parse two-line from-file/to-file diff header in git_patchset_body
gitweb: Add invisible hyperlink to from-file/to-file diff header
gitweb: Always display link to blobdiff_plain in git_blobdiff
gitweb: Change here-doc back for style consistency in git_blobdiff
gitweb: Use git-diff-tree or git-diff patch output for blobdiff
gitweb: git_blobdiff_plain is git_blobdiff('plain')
gitweb: Remove git_diff_print subroutine
gitweb: Remove creating directory for temporary files
gitweb: git_annotate didn't expect negative numeric timezone
gitweb: Remove workaround for git-diff bug fixed in f82cd3c
gitweb: Improve comments about gitweb features configuration
gitweb: blobs defined by non-textual hash ids can be cached
gitweb: Fix typo in git_difftree_body
gitweb: Fix typo in git_patchset_body
gitweb: Remove unused git_get_{preceding,following}_references
gitweb: Remove git_to_hash function
gitweb: Use @diff_opts, default ('M'), as git-diff and git-diff-tree paramete
gitweb: Make git_print_log generic; git_print_simplified_log uses it
gitweb: Do not remove signoff lines in git_print_simplified_log
gitweb: Add author information to commitdiff view
gitweb: git_print_log: signoff line is non-empty line
gitweb: Add diff tree, with links to patches, to commitdiff view
gitweb: Add local time and timezone to git_print_authorship
gitweb: Move git-ls-tree output parsing to parse_ls_tree_line
gitweb: Separate printing of git_tree row into git_print_tree_entry
gitweb: Extend parse_difftree_raw_line to save commit info
gitweb: Change the name of diff to parent link in "commit" view to "diff
gitweb: Add GIT favicon, assuming image/png type
gitweb: Correct typo: '==' instead of 'eq' in git_difftree_body
gitweb: Divide page path into directories -- path's "breadcrumbs"
autoconf: Add -liconv to LIBS when NEEDS_LIBICONV
autoconf: Check for subprocess.py
autoconf: Quote AC_CACHE_CHECK arguments
autoconf: Fix copy'n'paste error
autoconf: Set NO_ICONV if iconv is found neither in libc, nor in libiconv
autoconf: Add support for setting NO_ICONV and ICONVDIR
autoconf: Add config.cache to .gitignore
gitweb: Make pickaxe search a feature
gitweb: Paginate history output
gitweb: Use File::Find::find in git_get_projects_list
gitweb: Do not parse refs by hand, use git-peek-remote instead
gitweb: Add git_project_index for generating index.aux
gitweb: Allow for href() to be used for links without project param
gitweb: Add link to "project_index" view to "project_list" page
gitweb: Fix mimetype_guess_file for files with multiple extensions
gitweb: Even more support for PATH_INFO based URLs
gitweb: Require project for almost all actions
gitweb: Always use git-peek-remote in git_get_references
gitweb: Make git_get_refs_list do work of git_get_references
gitweb: Fix thinko in git_tags and git_heads
gitweb: Make git_get_hash_by_path check type if provided
gitweb: Strip trailing slashes from $path in git_get_hash_by_path
gitweb: Use "return" instead of "return undef" for some subs
gitweb: Split validate_input into validate_pathname and validate_refname
gitweb: Add git_url subroutine, and use it to quote full URLs
gitweb: Quote filename in HTTP Content-Disposition: header
gitweb: Cleanup Git logo and Git logo target generation

Jeff King (9):
gitweb: optionally read config from GITWEB_CONFIG
diff: support custom callbacks for output
Move color option parsing out of diff.c and into color.[ch]
git-commit.sh: convert run_status to a C builtin
git-status: document colorization config options
contrib/vim: add syntax highlighting file for commits
wt-status: remove extraneous newline from 'deleted:' output
rev-list: fix segfault with --{author,committer,grep}
git-repack: allow git-repack to run in subdirectory

Johannes Schindelin (38):
Git.xs: older perl do not know const char *
Status update on merge-recursive in C
Cumulative update of merge-recursive in C
merge-recur: Convert variable names to lower_case
merge-recur: Get rid of debug code
merge-recur: Remove dead code
merge-recur: Fix compiler warning with -pedantic
merge-recur: Cleanup last mixedCase variables...
merge-recur: Explain why sha_eq() and struct stage_data cannot go
merge-recur: fix thinko in unique_path()
read-trees: refactor the unpack_trees() part
read-tree: move merge functions to the library
merge-recur: use the unpack_trees() interface instead of exec()ing read-tree
merge-recur: virtual commits shall never be parsed
merge-recursive: fix rename handling
http-push: avoid fork() by calling merge_bases() directly
merge-recur: do not call git-write-tree
merge-recur: do not setenv("GIT_INDEX_FILE")
merge-recur: if there is no common ancestor, fake empty one
merge-recur: try to merge older merge bases first
merge-recur: do not die unnecessarily
discard_cache(): discard index, even if no file was mmap()ed
Add the --color-words option to the diff options family
builtin-mv: readability patch
unpack-objects: remove unused variable "eof"
Makefile: fix typo
Remove uneeded #include
fmt-merge-msg: fix off-by-one bug
Teach runstatus about --untracked
add receive.denyNonFastforwards config variable
receive-pack: plug memory leak in fast-forward checking code.
Document receive.denyNonFastforwards
runstatus: do not recurse into subdirectories if not needed
daemon: default to 256 for HOST_NAME_MAX if it is not defined
diff --stat: ensure at least one '-' for deletions, and one '+' for additions
diff: fix 2 whitespace issues
cvsserver: Show correct letters for modified, removed and added files
cvsserver: fix "cvs diff" in a subdirectory

Jon Loeliger (3):
Add virtualization support to git-daemon
Cleaned up git-daemon virtual hosting support.
Removed memory leaks from interpolation table uses.

Jonas Fonseca (21):
git-apply(1): document missing options and improve existing ones
git-ls-remote(1): document --upload-pack
git-blame(1): mention options in the synopsis and advertise pickaxe
gitk(1): expand the manpage to look less like a template
git(7): put the synopsis in a verse style paragraph
gitview.txt: improve asciidoc markup
git-svn(1): improve asciidoc markup
describe: fix off-by-one error in --abbrev=40 handling
Use PATH_MAX instead of MAXPATHLEN
Use xrealloc instead of realloc
Use fstat instead of fseek
Use xcalloc instead of calloc
Add --relative-date option to the revision interface
git(7): move gitk(1) to the list of porcelain commands
Use xmalloc instead of malloc
Include config.mak.autogen in the doc Makefile
git-rev-list(1): group options; reformat; document more options
git-apply(1): document --unidiff-zero
git-repack(1): document --window and --depth
Fix trivial typos and inconsistencies in hooks documentation
gitk(1): mention --all

Junio C Hamano (139):
Perl interface: add build-time configuration to allow building with -fPIC
Perl interface: make testsuite work again.
perl: fix make clean
Git.pm: tentative fix to test the freshly built Git.pm
Perly Git: arrange include path settings properly.
Makefile: Set USE_PIC on x86-64
Perly git: work around buggy make implementations.
Git.pm: clean generated files.
Perly Git: make sure we do test the freshly built one.
INSTALL: a tip for running after building but without installing.
Work around sed and make interactions on the backslash at the end of line.
upload-pack: use object pointer not copy of sha1 to keep track of has/needs.
upload-pack: lift MAX_NEEDS and MAX_HAS limitation
recur vs recursive: help testing without touching too many stuff.
sha1_file.c: expose map_sha1_file() interface.
pack-objects: reuse deflated data from new-style loose objects.
unpack-objects: read configuration data upon startup.
Makefile: git-merge-recur depends on xdiff libraries.
gitweb: There can be more than two levels of subdirectories
gitweb: an obvious cut and paste error.
gitweb: fix use of uninitialized value.
gitweb: when showing history of a tree, show tree link not blob
gitweb: avoid undefined value warning in print_page_path
gitweb/README: do not bug Kay with gitweb questions anymore
Makefile: gitweb/gitweb.cgi is now generated.
gitweb: do not use @@FOO@@ for replaced tokens
.gitignore: git-merge-recur is a built file.
Make git-checkout-index a builtin
builtins: Makefile clean-up
git.c: Rename NEEDS_PREFIX to RUN_SETUP
autoconf: fix NEEDS_SSL_WITH_CRYPTO
autoconf: NO_IPV6
Racy git: avoid having to be always too careful
read-cache: tweak racy-git delay logic
autoconf: clean temporary file mak.append
git-grep: show pathnames relative to the current directory
upload-pack: minor clean-up in multi-ack logic
Fix type of combine-diff.c::show_patch_diff()
Remove combine-diff.c::uninteresting()
t4116 apply --reverse test
git-apply --reverse: simplify reverse option.
git-apply --binary: clean up and prepare for --reverse
avoid nanosleep(2)
Documentation/technical/racy-git.txt
Add check program "git-check-racy"
Remove the "delay writing to avoid runtime penalty of racy-git avoidance"
builtin-grep: remove unused debugging cruft.
builtin-apply --reverse: two bugfixes.
diff.c: make binary patch reversible.
apply --reverse: tie it all together.
git-apply --reject
git-apply --reject: send rejects to .rej files.
git-apply --verbose
apply --reject: count hunks starting from 1, not 0
Convert memset(hash,0,20) to hashclr(hash).
hashcpy/hashcmp remaining bits.
builtin-grep.c: remove unused debugging piece.
update-index -g
git-apply --reject: finishing touches.
free(NULL) is perfectly valid.
daemon: prepare for multiple services.
daemon: add upload-tar service.
multi-service daemon: documentation
t5710: fix two thinkos.
Constness tightening for move/link_temp_to_file()
consolidate two copies of new style object header parsing code.
pack-objects: re-validate data we copy from elsewhere.
Revert "Convert git-annotate to use Git.pm"
Revert "Git.pm: Introduce fast get_object() method"
Revert "Make it possible to set up libgit directly (instead of from the environment)"
pack-objects: fix thinko in revalidate code
more lightweight revalidation while reusing deflated stream in packing
unpack-objects desperately salvages objects from a corrupt pack
revision.c: allow injecting revision parameters after setup_revisions().
Teach rev-list an option to read revs from the standard input.
Revert "daemon: add upload-tar service."
Make apply --binary a no-op.
diff --binary generates full index on binary files.
Separate object listing routines out of rev-list
pack-objects: run rev-list equivalent internally.
pack-objects: further work on internal rev-list logic.
pack-objects --unpacked=<existing pack> option.
get_sha1_hex() micro-optimization
archive: allow remote to have more formats than we understand.
Move sideband client side support into reusable form.
Move sideband server side support into reusable form.
archive: force line buffered output to stderr
Add --verbose to git-archive
Teach --exec to git-archive --remote
Prepare larger packet buffer for upload-pack protocol.
Add sideband status report to git-archive protocol
upload-archive: monitor child communication more carefully.
builtin-archive.c: rename remote_request() to extract_remote_arg()
pack-objects: document --revs, --unpacked and --all.
http-fetch: fix alternates handling.
unpack-objects -r: call it "recover".
Document git-grep -[Hh]
Define fallback PATH_MAX on systems that do not define one in <limits.h>
Fix git-am safety checks
http-fetch.c: consolidate code to detect missing fetch target
Add ftp:// protocol support for git-http-fetch
t1400: make test debuggable.
apply --unidiff-zero: loosen sanity checks for --unidiff=0 patches
builtin-grep: make pieces of it available as library.
revision traversal: prepare for commit log match.
revision traversal: --author, --committer, and --grep.
repack: use only pack-objects, not rev-list.
Update grep internal for grepping only in head/body
git log: Unify header_filter and message_filter into one.
Make hexval() available to others.
sha1_name.c: understand "describe" output as a valid object name
diff.c: second war on whitespace.
git-apply: second war on whitespace.
Add t5510 to test per branch configuration affecting git-fetch.
Remove upload-tar and make git-tar-tree a thin wrapper to git-archive
Deprecate merge-recursive.py
diff --stat: allow custom diffstat output width.
diff --stat: color output.
An illustration of rev-list --parents --pretty=raw
grep: free expressions and patterns when done.
grep: fix --fixed-strings combined with expression.
Contributed bash completion support for core Git tools.
git-diff -B output fix.
Remove -fPIC which was only needed for Git.xs
GIT 1.4.3-rc1
Makefile: install and clean merge-recur, still.
escape tilde in Documentation/git-rev-parse.txt
tar-tree deprecation: we eat our own dog food.
gitweb: Make the Git logo link target to point to the homepage
git-send-email: avoid uninitialized variable warning.
cherry-pick: make -r the default
Add WEBDAV timeout to http-fetch.
Fix git-revert
git-fetch --update-head-ok typofix
git-pull: we say commit X, not X commit.
git.spec.in: perl subpackage is installed in perl_vendorlib not vendorarch
apply --numstat -z: line termination fix.
t4015: work-around here document problem on Cygwin.
Revert "move pack creation to version 3"

Linus Torvalds (10):
Relative timestamps in git log
git-fsck-objects: lacking default references should not be fatal
Fix git-fsck-objects SIGSEGV/divide-by-zero
Add "-h/-H" parsing to "git grep"
Allow multiple "git_path()" uses
git-log --author and --committer are not left-anchored by default
Clean up approxidate() in preparation for fixes
Fix approxidate() to understand more extended numbers
diff --stat=width[,name-width]: allow custom diffstat output width.
Fix approxidate() to understand 12:34 AM/PM are 00:34 and 12:34

Liu Yubao (1):
Fix duplicate xmalloc in builtin-add

Luben Tuikov (22):
gitweb: git_tree displays blame based on repository config
gitweb: bugfix: git_commit and git_commitdiff parents
gitweb: blame table row no highlight fix
gitweb: bugfix: commitdiff regression
gitweb: bugfix: git_print_page_path() needs the hash base
gitweb: tree view: eliminate redundant "blob"
gitweb: Remove redundant "tree" link
gitweb: extend blame to show links to diff and previous
Revert "gitweb: extend blame to show links to diff and previous"
gitweb: Remove excessively redundant entries from git_difftree_body
gitweb: Add history and blame to git_difftree_body()
gitweb: "alternate" starts with shade (i.e. 1)
gitweb: Remove redundant "commit" link from shortlog
gitweb: Factor out gitweb_have_snapshot()
gitweb: Add snapshot to shortlog
gitweb: Don't use quotemeta on internally generated strings
gitweb: Remove redundant "commit" from history
gitweb: History: blob and tree are first, then commitdiff, etc
gitweb: tree view: hash_base and hash are now context sensitive
gitweb: Escape ESCAPE (\e) character
gitweb: Do not print "log" and "shortlog" redundantly in commit view
gitweb: blame: Minimize vertical table row padding

Markus Amsler (1):
git-imap-send: Strip smtp From_ header from imap message.

Martin Langhoff (1):
git-repack: create new packs inside $GIT_DIR, not cwd

Martin Waitz (16):
gitweb: fill in gitweb configuration by Makefile
gitweb: use out-of-line GIT logo.
gitweb: provide function to format the URL for an action link.
gitweb: consolidate action URL generation.
gitweb: continue consolidation of URL generation.
gitweb: support for "fp" parameter.
gitweb: support for / as home_link.
gitweb: fix project list if PATH_INFO=="/".
gitweb: more support for PATH_INFO based URLs
gitweb: fix uninitialized variable warning.
gitweb: fix display of trees via PATH_INFO.
gitweb: document webserver configuration for common gitweb/repo URLs.
git-commit: cleanup unused function.
git-commit: fix coding style.
test-lib: separate individual test better in verbose mode.
paginate git-diff by default

Matthias Kestenholz (6):
Make git-name-rev a builtin
Make git-pack-objects a builtin
Make git-unpack-objects a builtin
Make git-symbolic-ref a builtin
Add gitweb.cgi to .gitignore
Check if pack directory exists prior to descending into it

Matthias Lederhofer (12):
pager: environment variable GIT_PAGER to override PAGER
gitweb: use a hash to lookup the sub for an action
gitweb: require $ENV{'GITWEB_CONFIG'}
gitweb: check if HTTP_ACCEPT is really set
gitweb: fix commitdiff_plain for root commits
gitweb: fix $project usage
gitweb: do not use 'No such directory' error message
gitweb: export options
gitweb: fix warnings in PATH_INFO code and add export_ok/strict_export
gitweb fix validating pg (page) parameter
format-patch: use cwd as default output directory
git-format-patch: fix bug using -o in subdirectories

Nicolas Pitre (4):
move pack creation to version 3
many cleanups to sha1_file.c
add commit count options to git-shortlog
atomic write for sideband remote messages

Paul Mackerras (10):
gitk: Minor cleanups
gitk: Recompute ancestor/descendent heads/tags when rereading refs
gitk: Add a row context-menu item for creating a new branch
gitk: Add a context menu for heads
gitk: Fix a couple of buglets in the branch head menu items
gitk: Add a menu item for cherry-picking commits
gitk: Update preceding/following tag info when creating a tag
gitk: Improve responsiveness while reading and layout out the graph
gitk: Fix some bugs in the new cherry-picking code
diff-index --cc shows a 3-way diff between HEAD, index and working tree.

Pavel Roskin (3):
Fix probing for already installed Error.pm
Delete manuals if compiling without docs
Make perl interface a separate package

Petr Baudis (48):
Introduce Git.pm (v4)
Git.pm: Implement Git::exec_path()
Git.pm: Call external commands using execv_git_cmd()
Git.pm: Implement Git::version()
Add Error.pm to the distribution
Git.pm: Better error handling
Git.pm: Handle failed commands' output
Git.pm: Enhance the command_pipe() mechanism
Git.pm: Implement options for the command interface
Git.pm: Add support for subdirectories inside of working copies
Convert git-mv to use Git.pm
Git.pm: assorted build related fixes.
Git.pm: Try to support ActiveState output pipe
Git.pm: Swap hash_object() parameters
Git.pm: Fix Git->repository("/somewhere/totally/elsewhere")
Git.pm: Support for perl/ being built by a different compiler
Git.pm: Remove PerlIO usage from Git.xs
Git.pm: Avoid ppport.h
Git.pm: Don't #define around die
Use $GITPERLLIB instead of $RUNNING_GIT_TESTS and centralize @INC munging
Git.pm: Add config() method
Convert git-send-email to use Git.pm
Git.pm: Introduce ident() and ident_person() methods
Make it possible to set up libgit directly (instead of from the environment)
Git.pm: Introduce fast get_object() method
Convert git-annotate to use Git.pm
Eliminate Scalar::Util usage from private-Error.pm
Fix showing of path in tree view
gitweb: Link (HEAD) tree for each project from projects list
gitweb: More per-view navigation bar links
gitweb: Link to tree instead of snapshot in shortlog
gitweb: Link to latest tree from the head line in heads list
gitweb: Link to associated tree from a particular log item in full log view
gitweb: Rename "plain" labels to "raw"
gitweb: Relabel "head" as "HEAD"
Make path in tree view look nicer
gitweb: Fix tree link associated with each commit log entry.
gitweb: Fix @git_base_url_list usage
Fix snapshot link in tree view
Git.pm: Kill Git.xs for now
Deprecate git-resolve.sh
gitweb: Consolidate escaping/validation of query string
gitweb: fix over-eager application of esc_html().
Show snapshot link in shortlog only if have_snapsho
gitweb: Separate (new) and (deleted) in commitdiff by a space
gitweb: Handle commits with empty commit messages more reasonably
gitweb: [commit view] Do not suppress commitdiff link in root commit
svnimport: Fix broken tags being generated

Pierre Habouzit (7):
Fix a comparison bug in diff-delta.c
avoid to use error that shadows the function name, use err instead.
git_dir holds pointers to local strings, hence MUST be const.
missing 'static' keywords
remove ugly shadowing of loop indexes in subloops.
use name[len] in switch directly, instead of creating a shadowed variable.
n is in fact unused, and is later shadowed.

Randal L. Schwartz (1):
builtin-upload-archive.c broken on openbsd

Rene Scharfe (21):
git-verify-pack: make builtin
Axe the last ent
Add write_or_die(), a helper function
Add git-zip-tree
git-cherry: remove unused variable
git-reset: remove unused variable
Add git-zip-tree to .gitignore
git-archive: make compression level of ZIP archives configurable
Use xstrdup instead of strdup in builtin-{tar,zip}-tree.c
git-archive: inline default_parse_extra()
git-tar-tree: devolve git-tar-tree into a wrapper for git-archive
Remove git-zip-tree
Rename builtin-zip-tree.c to archive-zip.c
git-tar-tree: Remove duplicate git_config() call
git-tar-tree: Move code for git-archive --format=tar to archive-tar.c
git-tar-tree: don't RUN_SETUP
Documentation: add missing second colons and remove a typo
Add hash_sha1_file()
Make write_sha1_file_prepare() static
Make write_sha1_file_prepare() void
Replace open-coded version of hash_sha1_file()

Robin Rosenberg (3):
Quote arguments to tr in test-lib
Make cvsexportcommit remove files.
Error in test description of t1200-tutorial

Santi B?jar (4):
Fetch: default remote repository from branch properties
fetch: get the remote branches to merge from the branch properties
Add test for the default merges in fetch.
fetch: Reset remote refs list each time fetch_main is called

Sasha Khapyorsky (3):
Trivial support for cloning and fetching via ftp://.
git-svnimport: Parse log message for Signed-off-by: lines
http/ftp: optionally ask curl to not use EPSV command

Sergey Vlasov (2):
Documentation: Fix howto/revert-branch-rebase.html generation
git-svn: Fix fetch --no-ignore-externals with GIT_SVN_NO_LIB=1

Shawn Pearce (15):
Verify we know how to read a pack before trying to using it.
Remove unnecessary forward declaration of unpack_entry.
Convert memcpy(a,b,20) to hashcpy(a,b).
Convert memcpy(a,b,20) to hashcpy(a,b).
Reorganize/rename unpack_non_delta_entry to unpack_compressed_entry.
Reuse compression code in unpack_compressed_entry.
Cleanup unpack_entry_gently and friends to use type_name array.
Cleanup unpack_object_header to use only offsets.
Convert unpack_entry_gently and friends to use offsets.
Replace uses of strdup with xstrdup.
Allow 'svn fetch' on '(no date)' revisions in Subversion.
Allow '(no author)' in git-svn's authors file.
Ignore executable bit when adding files if filemode=0.
Allow git-checkout when on a non-existant branch.
Corrected copy-and-paste thinko in ignore executable bit test case.

Tilman Sauerbeck (2):
Indentation fix.
Added support for dropping privileges to git-daemon.

Timo Hirvonen (2):
--name-only, --name-status, --check and -s are mutually exclusive
Remove awkward compatibility warts

Ville Skytt? (1):
Be nicer if git executable is not installed

Yasushi SHOJI (4):
gitweb: configurable home link string
gitweb: Decode long title for link tooltips
gitweb: refactor decode() for utf8 conversion
clone: the given repository dir should be relative to $PWD


2006-10-20 12:31:32

by Horst H. von Brand

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

Junio C Hamano <[email protected]> wrote:
> The latest feature release GIT 1.4.3 is available at the usual
> places:

[...]

> rename builtin-cat-file.c => builtin-cat-file.c (0%)

Huh?!
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 2797513

2006-10-20 13:35:18

by Peter Eriksen

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

Junio C Hamano <[email protected]> writes:

> The latest feature release GIT 1.4.3 is available at the usual
> places:
...
> ----------------------------------------------------------------
>
> .gitignore | 10 +-
> Documentation/Makefile | 4 +-
> Documentation/asciidoc.conf | 1 +
> Documentation/config.txt | 34 +
...
> rename contrib/gitview/{gitview.txt => gitview.txt} (74%)

How does it come to the result, that this is a rename?

Peter

2006-10-20 23:35:49

by Junio C Hamano

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

Junio C Hamano <[email protected]> writes:

> - git-diff paginates its output to the tty by default. If this
> irritates you, using LESS=RF might help.

I am considering the following to address irritation some people
(including me, actually) are experiencing with this change when
viewing a small (or no) diff. Any objections?

diff --git a/pager.c b/pager.c
index dcb398d..8bd33a1 100644
--- a/pager.c
+++ b/pager.c
@@ -50,7 +50,7 @@ void setup_pager(void)
close(fd[0]);
close(fd[1]);

- setenv("LESS", "-RS", 0);
+ setenv("LESS", "FRS", 0);
run_pager(pager);
die("unable to execute pager '%s'", pager);
exit(255);

2006-10-21 00:14:46

by Linus Torvalds

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3



On Fri, 20 Oct 2006, Junio C Hamano wrote:
>
> I am considering the following to address irritation some people
> (including me, actually) are experiencing with this change when
> viewing a small (or no) diff. Any objections?

Not from me. I use "git diff" just to check that the tree is empty, and
the fact that it now throws me into an empty pager is irritating.

That said, "LESS=FRS" doesn't really help that much. It still clears the
screen. Using "LESS=FRSX" fixes that, but the alternate display sequence
is actually nice _if_ the pager is used.

Still, I think I'd prefer FRSX as the default.

Linus

2006-10-21 00:22:54

by Petr Baudis

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

> That said, "LESS=FRS" doesn't really help that much. It still clears the
> screen. Using "LESS=FRSX" fixes that, but the alternate display sequence
> is actually nice _if_ the pager is used.

Hmm, what terminal emulator do you use? The reasonable ones should
restore the original screen. At least xterm does, and I *think*
gnome-terminal does too (although I'm too lazy to boot up my notebook
and confirm).

(I personally consider alternate screen an abomination. It would be so
nice if the terminal emulators would just make it optional.)

--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)

2006-10-21 00:31:31

by Linus Torvalds

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3



On Sat, 21 Oct 2006, Petr Baudis wrote:
>
> > That said, "LESS=FRS" doesn't really help that much. It still clears the
> > screen. Using "LESS=FRSX" fixes that, but the alternate display sequence
> > is actually nice _if_ the pager is used.
>
> Hmm, what terminal emulator do you use? The reasonable ones should
> restore the original screen. At least xterm does, and I *think*
> gnome-terminal does too (although I'm too lazy to boot up my notebook
> and confirm).

Not xterm, at least.

Not gnome-terminal either, for that matter.

I just tried.

LESS=FRS git diff

clears the screen and leaves the thing at the end.

LESS=FRSX git diff

works fine, but for people who _like_ the alternate screens (and I do,
once I really use a pager) it also disables the alternate screen.

It might depend on the termcap, of course. I'm running FC5.

Linus

2006-10-21 00:47:56

by Nicolas Pitre

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

On Fri, 20 Oct 2006, Junio C Hamano wrote:

> Junio C Hamano <[email protected]> writes:
>
> > - git-diff paginates its output to the tty by default. If this
> > irritates you, using LESS=RF might help.
>
> I am considering the following to address irritation some people
> (including me, actually) are experiencing with this change when
> viewing a small (or no) diff. Any objections?

I think this is an excellent idea.


Nicolas

2006-10-21 02:12:40

by Al Viro

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

On Fri, Oct 20, 2006 at 05:14:39PM -0700, Linus Torvalds wrote:
>
>
> On Fri, 20 Oct 2006, Junio C Hamano wrote:
> >
> > I am considering the following to address irritation some people
> > (including me, actually) are experiencing with this change when
> > viewing a small (or no) diff. Any objections?
>
> Not from me. I use "git diff" just to check that the tree is empty, and
> the fact that it now throws me into an empty pager is irritating.

Speaking of irritations... There is a major (and AFAICS fixable)
suckitude in git-cherry. Basically, what it does is
* use git-rev-list to find commits on our branches
* do git-diff-tree -p for each commit
* do git-patch-id on each delta
* compare sets.
For one thing, there are better ways to do set comparison than creating
a file for each element in one set and going through another checking
if corresponding files exist (join(1) and sort(1) or just use perl hashes).
That one is annoying on journalling filesystems (a lot of files being
created, read and removed - fsckloads of disk traffic), but it's actually
not the worst problem.

Far more annoying is that we keep recalculating git-diff-tree -p | git-patch-id
again and again; try to do git cherry on a dozen short branches forked at
2.6.18 and you'll see the damn thing recalculated a dozen of times for
each commit from 2.6.18 to current. It's not cheap, to put it mildly.

git-rev-list ^v2.6.18 HEAD|while read i; do git-diff-tree -p $i; done |git-patch-id >/dev/null

out of hot cache on 2GHz amd64 box (Athlon 64 3400+) takes 3 minutes of
wall time. Repeat that for each branch and it's starting to get old very
fast.

Note that we are calculating a function of commit; it _never_ changes.
Even if we don't just calculate and memorize it at commit time, a cache
somewhere under .git would speed the things up a lot...

2006-10-21 09:53:38

by Andreas Schwab

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

Petr Baudis <[email protected]> writes:

> (I personally consider alternate screen an abomination. It would be so
> nice if the terminal emulators would just make it optional.)

$ xterm -rm "*titeInhibit: true"

Andreas.

--
Andreas Schwab, SuSE Labs, [email protected]
SuSE Linux Products GmbH, Maxfeldstra?e 5, 90409 N?rnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."

2006-10-22 21:15:09

by Anders Larsen

[permalink] [raw]
Subject: Re: [ANNOUNCE] GIT 1.4.3

On Sat, 21 Oct 2006 02:22:51 +0200, Petr Baudis wrote:

>> That said, "LESS=FRS" doesn't really help that much. It still clears the
>> screen. Using "LESS=FRSX" fixes that, but the alternate display sequence
>> is actually nice _if_ the pager is used.
>
> Hmm, what terminal emulator do you use? The reasonable ones should
> restore the original screen.

And indeed they do.
The problem is, when the original screen is restored, the diff output that
was paged through less -FRS goes poof as well.

Cheers
Anders