summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-01-21make "git hash-object" a built-inLibravatar Linus Torvalds4-5/+4
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-21make "git merge-tree" a built-inLibravatar Linus Torvalds4-4/+4
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-21slim down "git show-index"Libravatar Linus Torvalds4-67/+69
As the documentation says, this is primarily for debugging, and in the longer term we should rename it to test-show-index or something. In the meantime, just avoid xmalloc (which slurps in the rest of git), and separating out the trivial hex functions into "hex.o". This results in [torvalds@nehalem git]$ size git-show-index text data bss dec hex filename 222818 2276 112688 337782 52776 git-show-index (before) 5696 624 1264 7584 1da0 git-show-index (after) which is a whole lot better. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-21Remove diff machinery dependency from read-cacheLibravatar Linus Torvalds2-78/+76
Exal Sibeaz pointed out that some git files are way too big, and that add_files_to_cache() brings in all the diff machinery to any git binary that needs the basic git SHA1 object operations from read-cache.c. Which is pretty much all of them. It's doubly silly, since add_files_to_cache() is only used by builtin programs (add, checkout and commit), so it's fairly easily fixed by just moving the thing to builtin-add.c, and avoiding the dependency entirely. I initially argued to Exal that it would probably be best to try to depend on smart compilers and linkers, but after spending some time trying to make -ffunction-sections work and giving up, I think Exal was right, and the fix is to just do some trivial cleanups like this. This trivial cleanup results in pretty stunning file size differences. The diff machinery really is mostly used by just the builtin programs, and you have things like these trivial before-and-after numbers: -rwxr-xr-x 1 torvalds torvalds 1727420 2010-01-21 10:53 git-hash-object -rwxrwxr-x 1 torvalds torvalds 940265 2010-01-21 11:16 git-hash-object Now, I'm not saying that 940kB is good either, but that's mostly all the debug information - you can see the real code with 'size': text data bss dec hex filename 418675 3920 127408 550003 86473 git-hash-object (before) 230650 2288 111728 344666 5425a git-hash-object (after) ie we have a nice 24% size reduction from this trivial cleanup. It's not just that one file either. I get: [torvalds@nehalem git]$ du -s /home/torvalds/libexec/git-core 45640 /home/torvalds/libexec/git-core (before) 33508 /home/torvalds/libexec/git-core (after) so we're talking 12MB of diskspace here. (Of course, stripping all the binaries brings the 33MB down to 9MB, so the whole debug information thing is still the bulk of it all, but that's a separate issue entirely) Now, I'm sure there are other things we should do, and changing our compiler flags from -O2 to -Os would bring the text size down by an additional almost 20%, but this thing Exal pointed out seems to be some good low-hanging fruit. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-21git-rebase.txt: Fix spellingLibravatar Horst H. von Brand1-1/+1
Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-21Make 'rerere forget' work from a subdirectory.Libravatar Johannes Sixt2-24/+53
It forgot to apply the prefix to the paths given on the command line. [jc: added test] Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-21Make test case numbers uniqueLibravatar Johannes Sixt2-0/+0
Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20conflict-marker-size: add test and docsLibravatar Junio C Hamano2-0/+29
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20Update draft release notes to 1.7.0Libravatar Junio C Hamano1-1/+45
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20Merge branch 'bw/cvsimport'Libravatar Junio C Hamano1-35/+35
* bw/cvsimport: cvsimport: standarize system() calls to external git tools cvsimport: standarize open() calls to external git tools cvsimport: modernize callouts to git subcommands
2010-01-20Merge branch 'jc/checkout-merge-base'Libravatar Junio C Hamano1-2/+4
* jc/checkout-merge-base: Fix "checkout A..." synonym for "checkout A...HEAD" on Windows
2010-01-20Merge branch 'ag/patch-header-verify'Libravatar Junio C Hamano2-1/+39
* ag/patch-header-verify: builtin-apply.c: fix the --- and +++ header filename consistency check
2010-01-20Merge branch 'jc/conflict-marker-size'Libravatar Junio C Hamano16-78/+155
* jc/conflict-marker-size: rerere: honor conflict-marker-size attribute rerere: prepare for customizable conflict marker length conflict-marker-size: new attribute rerere: use ll_merge() instead of using xdl_merge() merge-tree: use ll_merge() not xdl_merge() xdl_merge(): allow passing down marker_size in xmparam_t xdl_merge(): introduce xmparam_t for merge specific parameters git_attr(): fix function signature Conflicts: builtin-merge-file.c ll-merge.c xdiff/xdiff.h xdiff/xmerge.c
2010-01-20Merge branch 'ag/maint-apply-too-large-p'Libravatar Junio C Hamano2-2/+14
* ag/maint-apply-too-large-p: builtin-apply.c: Skip filenames without enough components
2010-01-20Merge branch 'ap/merge-backend-opts'Libravatar Junio C Hamano21-54/+392
* ap/merge-backend-opts: Document that merge strategies can now take their own options Extend merge-subtree tests to test -Xsubtree=dir. Make "subtree" part more orthogonal to the rest of merge-recursive. pull: Fix parsing of -X<option> Teach git-pull to pass -X<option> to git-merge git merge -X<option> git-merge-file --ours, --theirs Conflicts: git-compat-util.h
2010-01-20Merge branch 'nd/status-partial-refresh'Libravatar Junio C Hamano3-3/+4
* nd/status-partial-refresh: rm: only refresh entries that we may touch status: only touch path we may need to check
2010-01-20Merge remote branch 'remotes/trast-doc/for-next'Libravatar Junio C Hamano116-685/+693
* remotes/trast-doc/for-next: Documentation: spell 'git cmd' without dash throughout Documentation: format full commands in typewriter font Documentation: warn prominently against merging with dirty trees Documentation/git-merge: reword references to "remote" and "pull" Conflicts: Documentation/config.txt Documentation/git-config.txt Documentation/git-merge.txt
2010-01-20Merge branch 'jh/notes' (early part)Libravatar Junio C Hamano4-18/+895
* 'jh/notes' (early part): Add more testcases to test fast-import of notes Rename t9301 to t9350, to make room for more fast-import tests fast-import: Proper notes tree manipulation
2010-01-20Merge branch 'maint'Libravatar Junio C Hamano0-0/+0
* maint: status: don't require the repository to be writable Conflicts: builtin-commit.c
2010-01-20Merge branch 'jc/maint-refresh-index-is-optional-for-status' into maintLibravatar Junio C Hamano1-4/+6
* jc/maint-refresh-index-is-optional-for-status: status: don't require the repository to be writable
2010-01-20Merge branch 'rr/core-tutorial'Libravatar Junio C Hamano1-0/+8
* rr/core-tutorial: Documentation: Update git core tutorial clarifying reference to scripts
2010-01-20Merge branch 'jc/cache-unmerge'Libravatar Junio C Hamano14-47/+652
* jc/cache-unmerge: rerere forget path: forget recorded resolution rerere: refactor rerere logic to make it independent from I/O rerere: remove silly 1024-byte line limit resolve-undo: teach "update-index --unresolve" to use resolve-undo info resolve-undo: "checkout -m path" uses resolve-undo information resolve-undo: allow plumbing to clear the information resolve-undo: basic tests resolve-undo: record resolved conflicts in a new index extension section builtin-merge.c: use standard active_cache macros Conflicts: builtin-ls-files.c builtin-merge.c builtin-rerere.c
2010-01-20Merge branch 'js/exec-error-report'Libravatar Junio C Hamano5-50/+191
* js/exec-error-report: Improve error message when a transport helper was not found start_command: detect execvp failures early run-command: move wait_or_whine earlier start_command: report child process setup errors to the parent's stderr Conflicts: Makefile
2010-01-20Merge branch 'jc/ls-files-ignored-pathspec'Libravatar Junio C Hamano2-64/+174
* jc/ls-files-ignored-pathspec: ls-files: fix overeager pathspec optimization read_directory(): further split treat_path() read_directory_recursive(): refactor handling of a single path into a separate function t3001: test ls-files -o ignored/dir
2010-01-20Merge branch 'jc/grep-lookahead'Libravatar Junio C Hamano7-370/+166
* jc/grep-lookahead: grep --no-index: allow use of "git grep" outside a git repository grep: prepare to run outside of a work tree grep: rip out pessimization to use fixmatch() grep: rip out support for external grep grep: optimize built-in grep by skipping lines that do not hit Conflicts: builtin-grep.c t/t7002-grep.sh
2010-01-20Merge branch 'jc/maint-strbuf-add-fix-doubling'Libravatar Junio C Hamano1-0/+1
* jc/maint-strbuf-add-fix-doubling: strbuf_addbuf(): allow passing the same buf to dst and src
2010-01-20Merge branch 'mm/conflict-advice'Libravatar Junio C Hamano9-13/+93
* mm/conflict-advice: Be more user-friendly when refusing to do something because of conflict. Conflicts: Documentation/config.txt advice.c advice.h
2010-01-20Merge branch 'da/difftool'Libravatar Junio C Hamano5-27/+118
* da/difftool: difftool: Update copyright notices to list each year separately difftool: Use eval to expand '--extcmd' expressions difftool: Add '-x' and as an alias for '--extcmd' t7800-difftool.sh: Simplify the --extcmd test git-diff.txt: Link to git-difftool difftool: Allow specifying unconfigured commands with --extcmd difftool--helper: Remove use of the GIT_MERGE_TOOL variable difftool--helper: Update copyright and remove distracting comments git-difftool: Add '--gui' for selecting a GUI tool t7800-difftool: Set a bogus tool for use by tests
2010-01-20Merge branch 'mh/rebase-fixup'Libravatar Junio C Hamano3-112/+219
* mh/rebase-fixup: rebase -i: Retain user-edited commit messages after squash/fixup conflicts t3404: Set up more of the test repo in the "setup" step rebase -i: For fixup commands without squashes, do not start editor rebase -i: Change function make_squash_message into update_squash_message rebase -i: Extract function do_with_author rebase -i: Handle the author script all in one place in do_next rebase -i: Extract a function "commit_message" rebase -i: Simplify commit counting for generated commit messages rebase -i: Improve consistency of commit count in generated commit messages t3404: Test the commit count in commit messages generated by "rebase -i" rebase -i: Introduce a constant AMEND rebase -i: Introduce a constant AUTHOR_SCRIPT rebase -i: Document how temporary files are used rebase -i: Use symbolic constant $MSG consistently rebase -i: Use "test -n" instead of "test ! -z" rebase -i: Inline expression rebase -i: Remove dead code rebase -i: Make the condition for an "if" more transparent
2010-01-20Merge branch 'ns/rebase-auto-squash'Libravatar Junio C Hamano3-0/+120
* ns/rebase-auto-squash: rebase -i --autosquash: auto-squash commits Conflicts: git-rebase--interactive.sh
2010-01-20Merge branch 'mh/rebase-fixup' (early part)Libravatar Junio C Hamano4-68/+137
* 'mh/rebase-fixup' (early part): rebase-i: Ignore comments and blank lines in peek_next_command lib-rebase: Allow comments and blank lines to be added to the rebase script lib-rebase: Provide clearer debugging info about what the editor did Add a command "fixup" to rebase --interactive t3404: Use test_commit to set up test repository
2010-01-20Merge branch 'il/push-set-upstream'Libravatar Junio C Hamano5-1/+136
* il/push-set-upstream: Add push --set-upstream Conflicts: transport.c
2010-01-20Merge branch 'jk/warn-author-committer-after-commit'Libravatar Junio C Hamano11-5/+88
* jk/warn-author-committer-after-commit: user_ident_sufficiently_given(): refactor the logic to be usable from elsewhere commit.c::print_summary: do not release the format string too early commit: allow suppression of implicit identity advice commit: show interesting ident information in summary strbuf: add strbuf_addbuf_percentquote strbuf_expand: convert "%%" to "%" Conflicts: builtin-commit.c ident.c
2010-01-20Merge branch 'jc/ident'Libravatar Junio C Hamano4-13/+24
* jc/ident: ident.c: replace fprintf with fputs to suppress compiler warning user_ident_sufficiently_given(): refactor the logic to be usable from elsewhere ident.c: treat $EMAIL as giving user.email identity explicitly ident.c: check explicit identity for name and email separately ident.c: remove unused variables
2010-01-20Merge branch 'tr/http-push-ref-status'Libravatar Junio C Hamano6-49/+137
* tr/http-push-ref-status: transport-helper.c::push_refs(): emit "no refs" error message transport-helper.c::push_refs(): ignore helper-reported status if ref is not to be pushed transport.c::transport_push(): make ref status affect return value refactor ref status logic for pushing t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs t5541-http-push.sh: add tests for non-fast-forward pushes Conflicts: transport-helper.c
2010-01-20Merge branch 'bk/fix-relative-gitdir-file'Libravatar Junio C Hamano2-3/+57
* bk/fix-relative-gitdir-file: Handle relative paths in submodule .git files Test update-index for a gitlink to a .git file
2010-01-20Merge branch 'sd/cd-p-show-toplevel'Libravatar Junio C Hamano3-14/+14
* sd/cd-p-show-toplevel: Use $(git rev-parse --show-toplevel) in cd_to_toplevel(). Add 'git rev-parse --show-toplevel' option.
2010-01-20Merge branch 'jc/symbol-static'Libravatar Junio C Hamano30-142/+34
* jc/symbol-static: date.c: mark file-local function static Replace parse_blob() with an explanatory comment symlinks.c: remove unused functions object.c: remove unused functions strbuf.c: remove unused function sha1_file.c: remove unused function mailmap.c: remove unused function utf8.c: mark file-local function static submodule.c: mark file-local function static quote.c: mark file-local function static remote-curl.c: mark file-local function static read-cache.c: mark file-local functions static parse-options.c: mark file-local function static entry.c: mark file-local function static http.c: mark file-local functions static pretty.c: mark file-local function static builtin-rev-list.c: mark file-local function static bisect.c: mark file-local function static
2010-01-20date.c: mark file-local function staticLibravatar Junio C Hamano2-2/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20Sync with 1.6.6.1Libravatar Junio C Hamano3-8/+45
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20Git 1.6.6.1Libravatar Junio C Hamano3-8/+16
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20Merge branch 'bg/maint-remote-update-default' into maintLibravatar Junio C Hamano2-6/+18
* bg/maint-remote-update-default: Fix "git remote update" with remotes.defalt set
2010-01-20Merge branch 'sb/maint-octopus' into maintLibravatar Junio C Hamano2-9/+57
* sb/maint-octopus: octopus: remove dead code octopus: reenable fast-forward merges octopus: make merge process simpler to follow Conflicts: git-merge-octopus.sh
2010-01-20Merge branch 'bg/maint-add-all-doc' into maintLibravatar Junio C Hamano2-29/+88
* bg/maint-add-all-doc: git-rm doc: Describe how to sync index & work tree git-add/rm doc: Consistently back-quote Documentation: 'git add -A' can remove files
2010-01-20Merge branch 'maint-1.6.5' into maintLibravatar Junio C Hamano5-9/+40
* maint-1.6.5: Git 1.6.5.8 Fix mis-backport of t7002 bash completion: factor submodules into dirty state reset: unbreak hard resets with GIT_WORK_TREE Conflicts: Documentation/git.txt GIT-VERSION-GEN RelNotes
2010-01-20Git 1.6.5.8Libravatar Junio C Hamano4-3/+32
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-20Merge branch 'jk/maint-1.6.5-reset-hard' into maint-1.6.5Libravatar Junio C Hamano2-4/+8
* jk/maint-1.6.5-reset-hard: reset: unbreak hard resets with GIT_WORK_TREE
2010-01-20Merge branch 'tr/maint-1.6.5-bash-prompt-show-submodule-changes' into ↵Libravatar Junio C Hamano1-4/+2
maint-1.6.5 * tr/maint-1.6.5-bash-prompt-show-submodule-changes: bash completion: factor submodules into dirty state
2010-01-20Merge branch 'dp/maint-1.6.5-fast-import-non-commit-tag' into maint-1.6.5Libravatar Junio C Hamano1-5/+5
* dp/maint-1.6.5-fast-import-non-commit-tag: fast-import: tag may point to any object type
2010-01-20Merge branch 'jm/maint-1.6.5-grep-NUL-terminate' into maint-1.6.5Libravatar Junio C Hamano1-0/+1
* jm/maint-1.6.5-grep-NUL-terminate: grep: NUL terminate input from a file