* [ANNOUNCE] GIT 1.4.0
@ 2006-06-10 21:16 2% Junio C Hamano
0 siblings, 0 replies; 2+ results
From: Junio C Hamano @ 2006-06-10 21:16 UTC (permalink / raw)
To: git; +Cc: linux-kernel
The latest feature release GIT 1.4.0 is available at the
usual places:
http://www.kernel.org/pub/software/scm/git/
git-1.4.0.tar.{gz,bz2} (tarball)
git-htmldocs-1.4.0.tar.{gz,bz2} (preformatted documentation)
git-manpages-1.4.0.tar.{gz,bz2} (preformatted documentation)
RPMS/$arch/git-*-1.4.0-1.$arch.rpm (RPM)
This is a significant update since v1.3.0 (and v1.3.3 which is
the same codebase with bugfixes-only). User visible changes
are:
- Many commands are now coded in C instead of implemented as
shell scripts.
- Checkout is more careful not to clobber untracked files.
- You can "alias" git commands with leading arguments in your
configuration file.
- Documentation set, especially the tutorial, has been reworked.
- Comes with the latest gitk, gitweb, and contributed software.
----------------------------------------------------------------
Changes since v1.3.0 are as follows:
Alex Riesen:
make update-index --chmod work with multiple files and --stdin
remove superflous "const"
Aneesh Kumar K.V:
gitview: Add key binding for F5.
gitview: Move the console error messages to message dialog
gitview: Add some useful keybindings.
Ben Clifford:
include header to define uint32_t, necessary on Mac OS X
Björn Engelmann:
remove the artificial restriction tagsize < 8kb
add more informative error messages to git-mktag
Catalin Marinas:
Add a test-case for git-apply trying to add an ending line
Christian Couder:
Builtin git-rev-parse.
Dennis Stosberg:
Fix git-pack-objects for 64-bit platforms
Fix compilation on newer NetBSD systems
git-write-tree writes garbage on sparc64
git-clean fails on files beginning with a dash
Update documentation for git-format-patch
Dmitry V. Levin:
Separate object name errors from usage errors
execv_git_cmd: Fix stack buffer overflow.
git_exec_path, execv_git_cmd: ignore empty environment variables
Elrond:
git-cvsimport: Handle "Removed" from pserver
Eric W. Biederman:
Implement git-quiltimport
Implement a --dry-run option to git-quiltimport
Make read_one_header_line return a flag not a length.
Move B and Q decoding into check header.
Refactor commit messge handling.
In handle_body only read a line if we don't already have one.
More accurately detect header lines in read_one_header_line
Allow in body headers beyond the in body header prefix.
Eric Wong:
git-svn: documentation updates
git-svn 1.0.0
apply: fix infinite loop with multiple patches with --index
send-email: address expansion for common mailers
Install git-send-email by default
send-email: allow sendmail binary to be used instead of SMTP
send-email: quiet some warnings, reject invalid addresses
Install git-send-email by default
commit: allow --pretty= args to be abbreviated
git-svn: starting a 1.1.0-pre development version
git-svn: ignore expansion of svn:keywords
t3300-funny-names: shell portability fixes
tests: Remove heredoc usage inside quotes
t5500-fetch-pack: remove local (bashism) usage.
t6000lib: workaround a possible dash bug
git-svn: t0001: workaround a heredoc bug in old versions of dash
git-svn: remove assertion that broke with older versions of svn
Florian Forster:
git-svnimport: Improved detection of merges.
Francis Daly:
Some doc typo fixes
config.txt grammar, typo, and asciidoc fixes
git-cvsserver asciidoc formatting tweaks
Fredrik Kuivinen:
blame: Fix path pruning
Update the documentation for git-merge-base
Horst H. von Brand:
Documentation: Spelling fixes
Cleanup git-send-email.perl:extract_valid_email
Add example xinetd(8) configuration to Documentation/everyday.txt
Fix Documentation/everyday.txt: Junio's workflow
Fix formatting of Documentation/git-clone.txt
Horst von Brand:
Fix some documentation typoes
Huw Davies:
git-format-patch: Use rfc2822 compliant date.
J. Bruce Fields:
tutorial: replace "whatchanged" by "log"
tutorial: expanded discussion of commit history
tutorial: add discussion of index file, object database
documentation: mention gitk font adjustment in tutorial
documentation: add brief mention of cat-file to tutorial part I
Documentation: retitle the git-core tutorial
Documentation: fix a tutorial-2 typo
Jeff King:
cvsimport: use git-update-index --index-info
cvsimport: cleanup commit function
cvsimport: set up commit environment in perl instead of using env
cat-file: document -p option
cvsimport: avoid "use" with :tag
handle concurrent pruning of packed objects
sha1_file: avoid re-preparing duplicate packs
Jim Meyering:
Don't write directly to a make target ($@).
Johannes Schindelin:
builtin-push: resurrect parsing of Push: lines
cache-tree: replace a sscanf() by two strtol() calls
builtin-push: also ask config for remote information
fetch, pull: ask config for remote information
repo-config: fix segfault with no argument.
repo-config: trim white-space before comment
repo-config: support --get-regexp
repo-config: deconvolute logics
fetch, pull: ask config for remote information
Add a conversion tool to migrate remote information into the config
builtin-push: --all and --tags _are_ explicit refspecs
Teach fmt-patch to write individual files.
fmt-patch: output file names to stdout
fmt-patch: implement -o <dir>
Teach fmt-patch about --numbered
Teach fmt-patch about --keep-subject
repo-config: trim white-space before comment
fmt-patch: understand old <his> notation
Fix users of prefix_path() to free() only when necessary
Fix users of prefix_path() to free() only when necessary
Fix crash when reading the empty tree
diff family: add --check option
fmt-patch: Support --attach
git-format-patch --start-number <n>
send-email: only 'require' instead of 'use' Net::SMTP
format-patch: resurrect extra headers from config
If you have a config containing something like this:
Jon Loeliger:
Alphabetize the glossary.
Added definitions for a few words:
Add a few more words to the glossary.
Refactor git_tcp_connect() functions a little.
Jonas Fonseca:
Fix filename scaling for binary files
Misc doc improvements
Document git-ls-tree --fullname
Josef Weidendorfer:
gitk: Add a visual tag for remote refs
Junio C Hamano:
Fix up default abbrev in setup_revisions() argument parser.
Fix up rev-list option parsing.
Split init_revisions() out of setup_revisions()
rev-list option parser fix.
Built-in git-whatchanged.
Do not fork PAGER=cat
Simplify common default options setup for built-in log family.
log/whatchanged/show - log formatting cleanup.
rev-list --header: output format fix
git.c: LOGSIZE is unused after log printing cleanup.
combine-diff: show diffstat with the first parent.
Fix "git log --stat": make sure to set recursive with --stat.
Tentative built-in format-patch.
sha1_name.c: prepare to make get_tree_entry() reusable from others.
sha1_name.c: no need to include diff.h; tree-walk.h will do.
get_tree_entry(): make it available from tree-walk
Minor tweak on subject line in --pretty=email
git-merge: a bit more readable user guidance.
pre-commit hook: complain about conflict markers.
diff: move diff.c to diff-lib.c to make room.
Add git-unresolve <paths>...
diff --stat: do not drop rename information.
git-update-index --unresolve
git-commit --amend: two fixes.
rename internal format-patch wip
pack-objects: do not stop at object that is "too small"
mailinfo: decode underscore used in "Q" encoding properly.
Makefile: dependency for builtin-help.o
Add colordiff for git to contrib/colordiff.
Fix "git show --stat"
Libify diff-files.
Libify diff-index.
git-fmt-patch: thinkofix to show properly.
Libified diff-index: backward compatibility fix.
read-cache/write-cache: optionally return cache checksum SHA1.
Add cache-tree.
Update write-tree to use cache-tree.
Invalidate cache-tree entries for touched paths in git-apply.
Use cache-tree in update-index.
Add test-dump-cache-tree
cache-tree: protect against "git prune".
index: make the index file format extensible.
Teach fsck-objects about cache-tree.
cache-tree: sort the subtree entries.
test-dump-cache-tree: report number of subtrees.
Makefile: remove and create libgit.a from scratch.
diff --stat: show complete rewrites consistently.
git-cvsserver: typofixes
t0000-basic: Add ls-tree recursive test back.
Makefile: remove and create xdiff library from scratch.
commit-tree: allow generic object name for the tree as well.
rebase: typofix.
commit-tree.c: check_valid() microoptimization.
revision parsing: make "rev -- paths" checks stronger.
t0000-basic: more commit-tree tests.
update-index: when --unresolve, smudge the relevant cache-tree entries.
read-tree: teach 1 and 2 way merges about cache-tree.
read-tree: teach 1-way merege and plain read to prime cache-tree.
diff-index: fix compilation warnings.
verify-pack: check integrity in a saner order.
cache_tree_update: give an option to update cache-tree only.
test-dump-cache-tree: validate the cached data as well.
pack-objects: update size heuristucs.
built-in count-objects.
cache-tree.c: typefix
git-am --resolved: more usable error message.
built-in diff.
built-in diff: assorted updates.
builtin-diff.c: die() formatting type fix.
Fix builtin-push to honor Push: lines in remotes file.
Extended SHA1 -- "rev^@" syntax to mean "all parents"
get_sha1(): :path and :[0-3]:path to extract from index.
built-in "git grep"
Use RFC2822 dates from "git fmt-patch".
builtin-grep: wildcard pathspec fixes
builtin-grep: support '-l' option.
builtin-grep: do not use setup_revisions()
fsck-objects: mark objects reachable from cache-tree
builtin-count-objects: make it official.
builtin-diff: call it "git-diff", really.
builtin-log/whatchanged/show: make them official.
show-branch: omit uninteresting merges.
builtin-push: make it official.
builtin-grep: printf %.*s length is int, not ptrdiff_t.
Revert "fetch, pull: ask config for remote information"
builtin-grep: allow -<n> and -[ABC]<n> notation for context lines.
builtin-grep: allow more than one patterns.
builtin-grep: support -c (--count).
builtin-grep: support -w (--word-regexp).
builtin-grep: tighten path wildcard vs tree traversal.
core.prefersymlinkrefs: use symlinks for .git/HEAD
repo-config: readability fixups.
builtin-count-objects: open packs when running -v
Fix test-dump-cache-tree in one-tree disappeared case.
read-tree: invalidate cache-tree entry when a new index entry is added.
cache-tree: a bit more debugging support.
builtin-grep: terminate correctly at EOF
builtin-grep: binary files -a and -I
fsck-objects: do not segfault on missing tree in cache-tree
builtin-grep: -L (--files-without-match).
Makefile: do not link rev-list any specially.
delta: stricter constness
core.prefersymlinkrefs: use symlinks for .git/HEAD
pack-object: squelch eye-candy on non-tty
binary patch.
binary diff: further updates.
update-index --unresolve: work from a subdirectory.
checkout-index: plug memory leak from prefix_path()
update-index: plug memory leak from prefix_path()
update-index --again
update-index --again: take optional pathspecs
binary diff and apply: testsuite.
repo-config: document what value_regexp does a bit more clearly.
Fix repo-config set-multivar error return path.
Teach -f <file> option to builtin-grep.
builtin-grep: documentation
Documentation: {caret} fixes (git-rev-list.txt)
get_sha1() - fix infinite loop on nonexistent stage.
Teach git-clean optional <paths>... parameters.
builtin-grep: tighten argument parsing.
builtin-grep: typofix
builtin-grep: -w fix
builtin-grep: -F (--fixed-strings)
checkout: use --aggressive when running a 3-way merge (-m).
checkout: use --aggressive when running a 3-way merge (-m).
diffstat rename squashing fix.
read-tree -u one-way merge fix to check out locally modified paths.
apply --numstat: show new name, not old name.
Fix pack-index issue on 64-bit platforms a bit more portably.
builtin-grep: unparse more command line options.
apply --cached: apply a patch without using working tree.
git-am: use apply --cached
builtin-diff: fix comparison between two blobs.
merge-base: Clarify the comments on post processing.
read-tree -m -u: do not overwrite or remove untracked working tree files.
builtin-grep: workaround for non GNU grep.
Revert "builtin-grep: workaround for non GNU grep."
apply --cached: do not check newly added file in the working tree
builtin-add: fix unmatched pathspec warnings.
builtin-diff: do not say files are renamed when blob and file are given
Fix build procedure for builtin-init-db
built-in tar-tree and remote tar-tree
git-format-patch: now built-in.
checkdiff_consume: strtol parameter fix.
git-rebase: use canonical A..B syntax to format-patch
tutorial-2: typofix in examples.
mailinfo: skip bogus UNIX From line inside body
CMIT_FMT_EMAIL: Q-encode Subject: and display-name part of From: fields.
builtin format-patch: squelch content-type for 7-bit ASCII
diff: minor option combination fix.
fetch-pack: output refs in the order they were given on the command line.
Tutorial #2: broken link fix.
builtin-rm: squelch compiler warnings.
cvsimport: do not barf on creation of an empty file.
apply: force matching at the beginning.
fetch.c: remove an unused variable and dead code.
ls-remote: fix rsync:// to report HEAD
mailinfo: More carefully parse header lines in read_one_header_line()
gitk: start-up bugfix
built-in format-patch: various fixups.
format-patch: -n and -k are mutually exclusive.
Let git-clone to pass --template=dir option to git-init-db.
git-fetch: avoid using "case ... in (arm)"
adjust to the rebased series by Linus.
send-email: do not pass bogus address to local sendmail binary
format-patch --signoff
fetch.c: do not pass uninitialized lock to unlock_ref().
fetch.c: do not call process_tree() from process_tree().
fetch: do not report "same" unless -verbose.
read-tree --reset: update working tree file for conflicted paths.
git alias: try alias last.
rev-parse: tighten constness properly.
send-email: be more lenient and just catch obvious mistakes.
send-email: a bit more careful domain regexp.
git-format-patch: add --output-directory long option again
HTTP cleanup
Make index file locking code reusable to others.
refs.c: convert it to use lockfile interface.
ref-log: style fixes.
Documentation: add missing docs make check-docs found.
make clean: remove dist-doc targets.
Documentation: git-ls-tree (typofix)
Documentation: add another example to git-ls-files
git-clone: fix duplicated "master" in $GIT_DIR/remotes/origin
git-rm: honor -n flag.
builtin-init-db: spell the in-program configuration variable in lowercase.
shared repository - add a few missing calls to adjust_shared_perm().
git-clone: fix --bare over dumb-http
GIT 1.4.0
Linus Torvalds:
Common option parsing for "git log --diff" and friends
Tentative built-in "git show"
Fixes for option parsing
Log message printout cleanups
Log message printout cleanups (#2)
Log message printout cleanups (#3): fix --pretty=oneline
Fix uninteresting tags in new revision parsing
get_sha1() shorthands for blob/tree objects
Allow "git repack" users to specify repacking window/depth
git log: don't do merge diffs by default
git-log produces no output
Split up builtin commands into separate files from git.c
Fix filename verification when in a subdirectory
Fix "git help -a" terminal autosizing
git builtin "push"
Fix "git-log --parents" breakage post v1.3.0
sha1_to_hex() usage cleanup
Fix "git diff --stat" with long filenames
revert/cherry-pick: use aggressive merge.
git config syntax updates
git diff: support "-U" and "--unified" options properly
Allow one-way tree merge to remove old files
Simplify "git reset --hard"
builtin-grep: use external grep when we can take advantage of it
read-tree --reset -u fix.
Fix silly typo in new builtin grep
Remove old "git-grep.sh" remnants
libify git-ls-files directory traversal
Clean up git-ls-file directory walking library interface
Do "git add" as a builtin
builtin-add: warn on unmatched pathspecs
builtin-grep: workaround for non GNU grep.
Remove old "git-add.sh" remnants
Prevent bogus paths from being added to the index.
Make "git rev-list" be a builtin
Libify the index refresh logic
Move pathspec matching from builtin-add.c into dir.c
Add builtin "git rm" command
cvsimport: repack every kilo-commits.
apply: treat EOF as proper context.
Clean up sha1 file writing
bogus "fatal: Not a git repository"
t1002: use -U0 instead of --unified=0
Fix "--abbrev=xyz" for revision listing
Fix memory leak in "git rev-list --objects"
Don't use "sscanf()" for tree mode scanning
Add raw tree buffer info to "struct tree"
Make "tree_entry" have a SHA1 instead of a union of object pointers
Switch "read_tree_recursive()" over to tree-walk functionality
Remove "tree->entries" tree-entry list from tree parser
Make "struct tree" contain the pointer to the tree buffer
Make "tree_entry" have a SHA1 instead of a union of object pointers
Switch "read_tree_recursive()" over to tree-walk functionality
builtin-read-tree.c: avoid tree_entry_list in prime_cache_tree_rec()
Remove "tree->entries" tree-entry list from tree parser
fsck-objects: avoid unnecessary tree_entry_list usage
Remove unused "zeropad" entry from tree_list_entry
Convert "mark_tree_uninteresting()" to raw tree walker
Convert fetch.c: process_tree() to raw tree walker
Remove last vestiges of generic tree_entry_list
tree_entry(): new tree-walking helper function
read-tree: fix eye-candy.
Fix typo in tutorial-2.txt
rev-list: fix process_tree() conversion.
pack-objects: improve path grouping heuristics.
Lukas Sandström:
Make git-check-format-ref a builtin.
SubmittingPatches: The download location of External Editor has moved
Martin Langhoff:
git-cvsexportcommit: Add -f(orce) and -m(essage prefix) flags, small cleanups.
git-send-email: fix version string to be valid perl
cvsserver: use git-rev-list instead of git-log
cvsserver: use git-rev-list instead of git-log
cvsimport: minor fixups
cvsimport: replace anonymous sub ref with a normal sub
cvsimport: introduce -L<imit> option to workaround memory leaks
cvsimport: introduce _fetchfile() method and used a 1M buffer to read()
Martin Waitz:
clone: keep --reference even with -l -s
repack: honor -d even when no new pack was created
Transitively read alternatives
test case for transitive info/alternates
clone: don't clone the info/alternates file
git help: remove whatchanged from list of common commands
Documentation/Makefile: remove extra /
Add instructions to commit template.
Martyn Smith:
Added logged warnings for CVS error returns
Many fixes for most operations in Eclipse.
Change to allow subdir updates from Eclipse
Matthias Kestenholz:
annotate: fix warning about uninitialized scalar
annotate: display usage information if no filename was given
fix various typos in documentation
add documentation for update-index --unresolve
Matthias Lederhofer:
core-tutorial.txt: escape asterisk
git status: skip empty directories, and add -u to show all untracked files
Nick Hengeveld:
git-fetch: resolve remote symrefs for HTTP transport
http: prevent segfault during curl handle reuse
builtin-push: don't pass --thin to HTTP transport
HTTP cleanup
http-fetch: fix possible segfault
Nicolas Pitre:
fix pack-object buffer size
split the diff-delta interface
use delta index data when finding best delta matches
replace adler32 with Rabin's polynomial in diff-delta
tiny optimization to diff-delta
improve diff-delta with sparse and/or repetitive data
improve base85 generated assembly code
fix diff-delta bad memory access
simple euristic for further free packing improvements
pack-object: slightly more efficient
improve depth heuristic for maximum delta size
Paul Mackerras:
gitk: Implement multiple views
gitk: Make File->Update work properly again
gitk: Fix various bugs in the view support
gitk: Don't reread git-rev-list output from scratch on view switch
gitk: Remember the view in the history list
gitk: Let git-rev-list do the argument list parsing
gitk: Use git-rev-parse only to identify file/dir names on cmd line
rev-parse: better error message for ambiguous arguments
gitk: Implement "permanent" views (stored in ~/.gitk)
gitk: add menu item for editing the current view
gitk: Use a text widget for the file list
gitk: Add a tree-browsing mode
gitk: Basic support for highlighting one view within another
gitk: Fix file list display when files are renamed
gitk: Allow view to specify arbitrary arguments to git-rev-list
gitk: Fix display of "(...)" for parents/children we haven't drawn
Provide a way to flush git-diff-tree's output
gitk: Make a row of controls for controlling highlighting
gitk: Fix bug where page-up/down wouldn't always work properly
gitk: Highlight entries in the file list as well
gitk: Highlight paths of interest in tree view as well
gitk: First cut at a search function in the patch/file display window
gitk: Improve the text window search function
gitk: Move "pickaxe" find function to highlight facility
gitk: Fix bug in highlight stuff when no line is selected
gitk: show_error fix
gitk: Provide ability to highlight based on relationship to selected commit
Make git-diff-tree indicate when it flushes
gitk: Add a goto next/previous highlighted commit function
gitk: Show nearby tags
gitk: Show branch name(s) as well, if "show nearby tags" is enabled
gitk: Re-read the descendent/ancestor tag & head info on update
Paul T Darga:
check for error return from fork()
Pavel Roskin:
Release config lock if the regex is invalid
Peter Eriksen:
Add git-quiltimport to .gitignore.
Builtin git-ls-files.
Builtin git-ls-tree.
Builtin git-tar-tree.
Builtin git-read-tree.
Builtin git-commit-tree.
Builtin git-apply.
Builtin git-show-branch.
Builtin git-diff-files, git-diff-index, git-diff-stages, and git-diff-tree.
Peter Hagervall:
Sparse fix for builtin-diff
Petr Baudis:
Document git-var -l listing also configuration variables
Document the configuration file
git-repo-config --list support
Deprecate usage of git-var -l for getting config vars list
Call builtin ls-tree in git-cat-file -p
Document git aliases support
Documentation: git aliases
Rene Scharfe:
Off-by-one error in get_path_prefix(), found by Valgrind
Built-in git-get-tar-commit-id
Robert Fitzsimons:
builtin-grep: pass ignore case option to external grep
Robert Shearman:
Give the user a hint for how to continue in the case that git-am fails because it requires user intervention
Ryan Anderson:
git-send-email: Add References: headers to emails, in addition to In-Reply-To:
Add support for --bcc to git-send-email.
Fix a bug in email extraction used in git-send-email.
Add a basic test case for git send-email, and fix some real bugs discovered.
Salikh Zakirov:
Fixed Cygwin CR-munging problem in mailsplit
Santi:
Document that "git add" only adds non-ignored files.
Santi_Béjar:
Reintroduce svn pools to solve the memory leak.
Sean Estabrooks:
Add --continue and --abort options to git-rebase.
Update the git-branch man page to include the "-r" option,
Fix up remaining man pages that use asciidoc "callouts".
Properly render asciidoc "callouts" in git man pages.
Fix trivial typo in git-log man page.
Several trivial documentation touch ups.
Fix up docs where "--" isn't displayed correctly.
Update git-unpack-objects documentation.
Clarify git-cherry documentation.
Fix for config file section parsing.
Another config file parsing fix.
t1300-repo-config: two new config parsing tests.
Another config file parsing fix.
Add "--branches", "--tags" and "--remotes" options to git-rev-parse.
Ensure author & committer before asking for commit message.
Make git rebase interactive help match documentation.
Add "--summary" option to git diff.
Convert some "apply --summary" users to "diff --summary".
Strip useless "tags/" prefix from git-tag -l output
Allow pickaxe and diff-filter options to be used by git log.
Avoid segfault in diff --stat rename output.
Change GIT-VERSION-GEN to call git commands with "git" not "git-".
Install git builtins into gitexecdir rather than bindir.
Remove possible segfault in http-fetch.
--summary output should print immediately after stats.
A Perforce importer for git.
Serge E. Hallyn:
socksetup: don't return on set_reuse_addr() error
socksetup: don't return on set_reuse_addr() error
Sergey Vlasov:
gitk: Display commit messages with word wrap
Shawn Pearce:
Document git-clone --reference
Remove unnecessary local in get_ref_sha1.
Improve abstraction of ref lock/write.
Convert update-ref to use ref_lock API.
Log ref updates to logs/refs/<ref>
Support 'master@2 hours ago' syntax
Fix ref log parsing so it works properly.
General ref log reading improvements.
Added logs/ directory to repository layout.
Force writing ref if it doesn't exist.
Log ref updates made by fetch.
Change 'master@noon' syntax to 'master@{noon}'.
Correct force_write bug in refs.c
Change order of -m option to update-ref.
Include ref log detail in commit, reset, etc.
Create/delete branch ref logs.
Enable ref log creation in git checkout -b.
Reference git-check-ref-format in git-branch.
Elaborate on why ':' is a bad idea in a ref name.
Built git-upload-tar should be ignored.
Verify git-commit provides a reflog message.
Test that git-branch -l works.
Remove unnecessary output from t3600-rm.
Improved pack format documentation.
Allow multiple -m options to git-commit.
Tilman Sauerbeck:
Documentation/Makefile: create tarballs for the man pages and html files
Timo Hirvonen:
Builtin git-init-db
Builtin git-cat-file
gitk: Replace "git-" commands with "git "
Uwe Zeisberger:
Document git-clone --use-separate-remote
Yakov Lerner:
read-cache.c: use xcalloc() not calloc()
NO_INET_NTOP and compat/inet_ntop.c for some systems (e.g. old Cygwin).
Problem: 'trap...exit' causes error message when /bin/sh is ash.
Yann Dirson:
Do not call 'cmp' with non-existant -q flag.
Document current cvsexportcommit limitations.
Make cvsexportcommit create parent directories as needed.
^ permalink raw reply [relevance 2%]
* [PATCH] pack-object: slightly more efficient
@ 2006-05-15 17:47 7% Nicolas Pitre
0 siblings, 0 replies; 2+ results
From: Nicolas Pitre @ 2006-05-15 17:47 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Avoid creating a delta index for objects with maximum depth since they
are not going to be used as delta base anyway. This also reduce peak
memory usage slightly as the current object's delta index is not useful
until the next object in the loop is considered for deltification. This
saves a bit more than 1% on CPU usage.
Signed-off-by: Nicolas Pitre <nico@cam.org>
---
diff --git a/delta.h b/delta.h
index 727ae30..7b3f86d 100644
--- a/delta.h
+++ b/delta.h
@@ -18,6 +18,8 @@ create_delta_index(const void *buf, unsi
/*
* free_delta_index: free the index created by create_delta_index()
+ *
+ * Given pointer must be what create_delta_index() returned, or NULL.
*/
extern void free_delta_index(struct delta_index *index);
diff --git a/pack-objects.c b/pack-objects.c
index b0388d7..9daf1c1 100644
--- a/pack-objects.c
+++ b/pack-objects.c
@@ -1104,17 +1104,14 @@ static void find_deltas(struct object_en
if (entry->size < 50)
continue;
- if (n->index)
- free_delta_index(n->index);
+ free_delta_index(n->index);
+ n->index = NULL;
free(n->data);
n->entry = entry;
n->data = read_sha1_file(entry->sha1, type, &size);
if (size != entry->size)
die("object %s inconsistent object length (%lu vs %lu)",
sha1_to_hex(entry->sha1), size, entry->size);
- n->index = create_delta_index(n->data, size);
- if (!n->index)
- die("out of memory");
j = window;
while (--j > 0) {
@@ -1134,6 +1131,11 @@ static void find_deltas(struct object_en
*/
if (entry->delta && depth <= entry->depth)
continue;
+
+ n->index = create_delta_index(n->data, size);
+ if (!n->index)
+ die("out of memory");
+
idx++;
if (idx >= window)
idx = 0;
@@ -1143,8 +1145,7 @@ static void find_deltas(struct object_en
fputc('\n', stderr);
for (i = 0; i < window; ++i) {
- if (array[i].index)
- free_delta_index(array[i].index);
+ free_delta_index(array[i].index);
free(array[i].data);
}
free(array);
^ permalink raw reply related [relevance 7%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2006-05-15 17:47 7% [PATCH] pack-object: slightly more efficient Nicolas Pitre
2006-06-10 21:16 2% [ANNOUNCE] GIT 1.4.0 Junio C Hamano
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).