1. 22 1月, 2010 3 次提交
    • L
      slim down "git show-index" · a5031214
      Linus Torvalds 提交于
      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: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a5031214
    • L
      Remove diff machinery dependency from read-cache · fb7d3f32
      Linus Torvalds 提交于
      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: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      fb7d3f32
    • H
      git-rebase.txt: Fix spelling · 42cfcd20
      Horst H. von Brand 提交于
      Signed-off-by: NHorst H. von Brand <vonbrand@inf.utfsm.cl>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      42cfcd20
  2. 21 1月, 2010 37 次提交
    • J
      Make 'rerere forget' work from a subdirectory. · 5a9f0395
      Johannes Sixt 提交于
      It forgot to apply the prefix to the paths given on the command line.
      
      [jc: added test]
      Signed-off-by: NJohannes Sixt <j6t@kdbg.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5a9f0395
    • J
      Make test case numbers unique · 28414b6b
      Johannes Sixt 提交于
      Signed-off-by: NJohannes Sixt <j6t@kdbg.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      28414b6b
    • J
      conflict-marker-size: add test and docs · 4c734803
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4c734803
    • J
      Update draft release notes to 1.7.0 · 2eb41d72
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2eb41d72
    • J
      Merge branch 'bw/cvsimport' · d4556c49
      Junio C Hamano 提交于
      * bw/cvsimport:
        cvsimport: standarize system() calls to external git tools
        cvsimport: standarize open() calls to external git tools
        cvsimport: modernize callouts to git subcommands
      d4556c49
    • J
      Merge branch 'jc/checkout-merge-base' · b3ce9a08
      Junio C Hamano 提交于
      * jc/checkout-merge-base:
        Fix "checkout A..." synonym for "checkout A...HEAD" on Windows
      b3ce9a08
    • J
      Merge branch 'ag/patch-header-verify' · 41905647
      Junio C Hamano 提交于
      * ag/patch-header-verify:
        builtin-apply.c: fix the --- and +++ header filename consistency check
      41905647
    • J
      Merge branch 'jc/conflict-marker-size' · 06dbc1ea
      Junio C Hamano 提交于
      * 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
      06dbc1ea
    • J
      Merge branch 'ag/maint-apply-too-large-p' · df91d0e4
      Junio C Hamano 提交于
      * ag/maint-apply-too-large-p:
        builtin-apply.c: Skip filenames without enough components
      df91d0e4
    • J
      Merge branch 'ap/merge-backend-opts' · fcb2a7e4
      Junio C Hamano 提交于
      * 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
      fcb2a7e4
    • J
      Merge branch 'nd/status-partial-refresh' · e98f80f5
      Junio C Hamano 提交于
      * nd/status-partial-refresh:
        rm: only refresh entries that we may touch
        status: only touch path we may need to check
      e98f80f5
    • J
      Merge remote branch 'remotes/trast-doc/for-next' · add0951a
      Junio C Hamano 提交于
      * 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
      add0951a
    • J
      Merge branch 'jh/notes' (early part) · 5fc9df08
      Junio C Hamano 提交于
      * '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
      5fc9df08
    • J
      Merge branch 'maint' · 9ca8f834
      Junio C Hamano 提交于
      * maint:
        status: don't require the repository to be writable
      
      Conflicts:
      	builtin-commit.c
      9ca8f834
    • J
      Merge branch 'jc/maint-refresh-index-is-optional-for-status' into maint · 8f376a50
      Junio C Hamano 提交于
      * jc/maint-refresh-index-is-optional-for-status:
        status: don't require the repository to be writable
      8f376a50
    • J
      Merge branch 'rr/core-tutorial' · 19c61a58
      Junio C Hamano 提交于
      * rr/core-tutorial:
        Documentation: Update git core tutorial clarifying reference to scripts
      19c61a58
    • J
      Merge branch 'jc/cache-unmerge' · 6751e047
      Junio C Hamano 提交于
      * 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
      6751e047
    • J
      Merge branch 'js/exec-error-report' · 030b1a77
      Junio C Hamano 提交于
      * 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
      030b1a77
    • J
      Merge branch 'jc/ls-files-ignored-pathspec' · 3af59e6f
      Junio C Hamano 提交于
      * 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
      3af59e6f
    • J
      Merge branch 'jc/grep-lookahead' · 34349bea
      Junio C Hamano 提交于
      * 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
      34349bea
    • J
      Merge branch 'jc/maint-strbuf-add-fix-doubling' · 886932e2
      Junio C Hamano 提交于
      * jc/maint-strbuf-add-fix-doubling:
        strbuf_addbuf(): allow passing the same buf to dst and src
      886932e2
    • J
      Merge branch 'mm/conflict-advice' · 71b3ef11
      Junio C Hamano 提交于
      * mm/conflict-advice:
        Be more user-friendly when refusing to do something because of conflict.
      
      Conflicts:
      	Documentation/config.txt
      	advice.c
      	advice.h
      71b3ef11
    • J
      Merge branch 'da/difftool' · f922df86
      Junio C Hamano 提交于
      * 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
      f922df86
    • J
      Merge branch 'mh/rebase-fixup' · 668993ff
      Junio C Hamano 提交于
      * 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
      668993ff
    • J
      Merge branch 'ns/rebase-auto-squash' · cea20f24
      Junio C Hamano 提交于
      * ns/rebase-auto-squash:
        rebase -i --autosquash: auto-squash commits
      
      Conflicts:
      	git-rebase--interactive.sh
      cea20f24
    • J
      Merge branch 'mh/rebase-fixup' (early part) · cc6b41cc
      Junio C Hamano 提交于
      * '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
      cc6b41cc
    • J
      Merge branch 'il/push-set-upstream' · 533e8af5
      Junio C Hamano 提交于
      * il/push-set-upstream:
        Add push --set-upstream
      
      Conflicts:
      	transport.c
      533e8af5
    • J
      Merge branch 'jk/warn-author-committer-after-commit' · 0877510a
      Junio C Hamano 提交于
      * 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
      0877510a
    • J
      Merge branch 'jc/ident' · 15a873d6
      Junio C Hamano 提交于
      * 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
      15a873d6
    • J
      Merge branch 'tr/http-push-ref-status' · 07301eaa
      Junio C Hamano 提交于
      * 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
      07301eaa
    • J
      Merge branch 'bk/fix-relative-gitdir-file' · bd0d1916
      Junio C Hamano 提交于
      * bk/fix-relative-gitdir-file:
        Handle relative paths in submodule .git files
        Test update-index for a gitlink to a .git file
      bd0d1916
    • J
      Merge branch 'sd/cd-p-show-toplevel' · c757c52f
      Junio C Hamano 提交于
      * sd/cd-p-show-toplevel:
        Use $(git rev-parse --show-toplevel) in cd_to_toplevel().
        Add 'git rev-parse --show-toplevel' option.
      c757c52f
    • J
      Merge branch 'jc/symbol-static' · 56eb8b43
      Junio C Hamano 提交于
      * 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
      56eb8b43
    • J
      date.c: mark file-local function static · 23418ea9
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      23418ea9
    • J
      Sync with 1.6.6.1 · c216830f
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c216830f
    • J
      Git 1.6.6.1 · 9504f3d3
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9504f3d3
    • J
      Merge branch 'bg/maint-remote-update-default' into maint · 66276d97
      Junio C Hamano 提交于
      * bg/maint-remote-update-default:
        Fix "git remote update" with remotes.defalt set
      66276d97