1. 14 9月, 2013 1 次提交
  2. 10 9月, 2013 18 次提交
    • J
    • J
      Merge branch 'nd/magic-pathspec' · fadf96ab
      Junio C Hamano 提交于
      Use "struct pathspec" interface in more places, instead of array of
      characters, the latter of which cannot express magic pathspecs
      (e.g. ":(icase)makefile" that matches both Makefile and makefile).
      
      * nd/magic-pathspec:
        add: lift the pathspec magic restriction on "add -p"
        pathspec: catch prepending :(prefix) on pathspec with short magic
      fadf96ab
    • J
      Merge branch 'jk/mailmap-incomplete-line' · af226bf0
      Junio C Hamano 提交于
      * jk/mailmap-incomplete-line:
        mailmap: handle mailmap blobs without trailing newlines
      af226bf0
    • J
      Merge branch 'sp/clip-read-write-to-8mb' · a23274e1
      Junio C Hamano 提交于
      Send a large request to read(2)/write(2) as a smaller but still
      reasonably large chunks, which would improve the latency when the
      operation needs to be killed and incidentally works around broken
      64-bit systems that cannot take a 2GB write or read in one go.
      
      * sp/clip-read-write-to-8mb:
        Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
        xread, xwrite: limit size of IO to 8MB
      a23274e1
    • J
      Merge branch 'tg/index-struct-sizes' · b0d974d6
      Junio C Hamano 提交于
      The code that reads from a region that mmaps an on-disk index
      assumed that "int"/"short" are always 32/16 bits.
      
      * tg/index-struct-sizes:
        read-cache: use fixed width integer types
      b0d974d6
    • J
      Merge branch 'jc/transport-do-not-use-connect-twice-in-fetch' · 20419de9
      Junio C Hamano 提交于
      The auto-tag-following code in "git fetch" tries to reuse the same
      transport twice when the serving end does not cooperate and does
      not give tags that point to commits that are asked for as part of
      the primary transfer.  Unfortunately, Git-aware transport helper
      interface is not designed to be used more than once, hence this
      does not work over smart-http transfer.
      
      * jc/transport-do-not-use-connect-twice-in-fetch:
        builtin/fetch.c: Fix a sparse warning
        fetch: work around "transport-take-over" hack
        fetch: refactor code that fetches leftover tags
        fetch: refactor code that prepares a transport
        fetch: rename file-scope global "transport" to "gtransport"
        t5802: add test for connect helper
      20419de9
    • J
      Merge branch 'es/contacts-blame-L-multi' · 3b30ba55
      Junio C Hamano 提交于
      * es/contacts-blame-L-multi:
        contacts: reduce git-blame invocations
        contacts: gather all blame sources prior to invoking git-blame
        contacts: validate hunk length earlier
      3b30ba55
    • J
      Merge branch 'jc/url-match' · a0a08d48
      Junio C Hamano 提交于
      Allow section.<urlpattern>.var configuration variables to be
      treated as a "virtual" section.var given a URL, and use the
      mechanism to enhance http.* configuration variables.
      
      This is a reroll of Kyle J. McKay's work.
      
      * jc/url-match:
        builtin/config.c: compilation fix
        config: "git config --get-urlmatch" parses section.<url>.key
        builtin/config: refactor collect_config()
        config: parse http.<url>.<variable> using urlmatch
        config: add generic callback wrapper to parse section.<url>.key
        config: add helper to normalize and match URLs
        http.c: fix parsing of http.sslCertPasswordProtected variable
      a0a08d48
    • J
      Merge branch 'jl/submodule-mv' · b02f5aed
      Junio C Hamano 提交于
      "git mv A B" when moving a submodule A does "the right thing",
      inclusing relocating its working tree and adjusting the paths in
      the .gitmodules file.
      
      * jl/submodule-mv: (53 commits)
        rm: delete .gitmodules entry of submodules removed from the work tree
        mv: update the path entry in .gitmodules for moved submodules
        submodule.c: add .gitmodules staging helper functions
        mv: move submodules using a gitfile
        mv: move submodules together with their work trees
        rm: do not set a variable twice without intermediate reading.
        t6131 - skip tests if on case-insensitive file system
        parse_pathspec: accept :(icase)path syntax
        pathspec: support :(glob) syntax
        pathspec: make --literal-pathspecs disable pathspec magic
        pathspec: support :(literal) syntax for noglob pathspec
        kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
        parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
        parse_pathspec: make sure the prefix part is wildcard-free
        rename field "raw" to "_raw" in struct pathspec
        tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
        remove match_pathspec() in favor of match_pathspec_depth()
        remove init_pathspec() in favor of parse_pathspec()
        remove diff_tree_{setup,release}_paths
        convert common_prefix() to use struct pathspec
        ...
      b02f5aed
    • J
      Merge branch 'es/blame-L-twice' · de9a2535
      Junio C Hamano 提交于
      Teaches "git blame" to take more than one -L ranges.
      
      * es/blame-L-twice:
        line-range: reject -L line numbers less than 1
        t8001/t8002: blame: add tests of -L line numbers less than 1
        line-range: teach -L^:RE to search from start of file
        line-range: teach -L:RE to search from end of previous -L range
        line-range: teach -L^/RE/ to search from start of file
        line-range-format.txt: document -L/RE/ relative search
        log: teach -L/RE/ to search from end of previous -L range
        blame: teach -L/RE/ to search from end of previous -L range
        line-range: teach -L/RE/ to search relative to anchor point
        blame: document multiple -L support
        t8001/t8002: blame: add tests of multiple -L options
        blame: accept multiple -L ranges
        blame: inline one-line function into its lone caller
        range-set: publish API for re-use by git-blame -L
        line-range-format.txt: clarify -L:regex usage form
        git-log.txt: place each -L option variation on its own line
      de9a2535
    • J
      Merge branch 'tr/log-full-diff-keep-true-parents' · 4ab4a6df
      Junio C Hamano 提交于
      Output from "git log --full-diff -- <pathspec>" looked strange,
      because comparison was done with the previous ancestor that touched
      the specified <pathspec>, causing the patches for paths outside the
      pathspec to show more than the single commit has changed.
      
      Tweak "git reflog -p" for the same reason using the same mechanism.
      
      * tr/log-full-diff-keep-true-parents:
        log: use true parents for diff when walking reflogs
        log: use true parents for diff even when rewriting
      4ab4a6df
    • J
      Merge branch 'jk/cat-file-batch-optim' · 24703ead
      Junio C Hamano 提交于
      Rework the reverted change to `cat-file --batch-check`.
      
      * jk/cat-file-batch-optim:
        cat-file: only split on whitespace when %(rest) is used
      24703ead
    • J
      Merge branch 'es/blame-L-more' · 118b9d58
      Junio C Hamano 提交于
      More fixes to the code to parse the "-L" option in "log" and "blame".
      
      * es/blame-L-more:
        blame: reject empty ranges -L,+0 and -L,-0
        t8001/t8002: blame: demonstrate acceptance of bogus -L,+0 and -L,-0
        blame: reject empty ranges -LX,+0 and -LX,-0
        t8001/t8002: blame: demonstrate acceptance of bogus -LX,+0 and -LX,-0
        log: fix -L bounds checking bug
        t4211: retire soon-to-be unimplementable tests
        t4211: log: demonstrate -L bounds checking bug
        blame: fix -L bounds checking bug
        t8001/t8002: blame: add empty file & partial-line tests
        t8001/t8002: blame: demonstrate -L bounds checking bug
        t8001/t8002: blame: decompose overly-large test
      118b9d58
    • J
      Merge branch 'db/http-savecookies' · 43012626
      Junio C Hamano 提交于
      * db/http-savecookies:
        t5551: Remove header from curl cookie file
        http: add http.savecookies option to write out HTTP cookies
      43012626
    • J
      Merge branch 'jc/push-cas' · 2233ad45
      Junio C Hamano 提交于
      Allow a safer "rewind of the remote tip" push than blind "--force",
      by requiring that the overwritten remote ref to be unchanged since
      the new history to replace it was prepared.
      
      The machinery is more or less ready.  The "--force" option is again
      the big red button to override any safety, thanks to J6t's sanity
      (the original round allowed --lockref to defeat --force).
      
      The logic to choose the default implemented here is fragile
      (e.g. "git fetch" after seeing a failure will update the
      remote-tracking branch and will make the next "push" pass,
      defeating the safety pretty easily).  It is suitable only for the
      simplest workflows, and it may hurt users more than it helps them.
      
      * jc/push-cas:
        push: teach --force-with-lease to smart-http transport
        send-pack: fix parsing of --force-with-lease option
        t5540/5541: smart-http does not support "--force-with-lease"
        t5533: test "push --force-with-lease"
        push --force-with-lease: tie it all together
        push --force-with-lease: implement logic to populate old_sha1_expect[]
        remote.c: add command line option parser for "--force-with-lease"
        builtin/push.c: use OPT_BOOL, not OPT_BOOLEAN
        cache.h: move remote/connect API out of it
      2233ad45
    • J
      Merge branch 'nd/clone-connectivity-shortcut' · 711b2769
      Junio C Hamano 提交于
      * nd/clone-connectivity-shortcut:
        smart http: use the same connectivity check on cloning
      711b2769
    • J
      Merge branch 'jc/diff-filter-negation' · 01a2a03c
      Junio C Hamano 提交于
      Teach "git diff --diff-filter" to express "I do not want to see
      these classes of changes" more directly by listing only the
      unwanted ones in lowercase (e.g. "--diff-filter=d" will show
      everything but deletion) and deprecate "diff-files -q" which did
      the same thing as "--diff-filter=d".
      
      * jc/diff-filter-negation:
        diff: deprecate -q option to diff-files
        diff: allow lowercase letter to specify what change class to exclude
        diff: reject unknown change class given to --diff-filter
        diff: preparse --diff-filter string argument
        diff: factor out match_filter()
        diff: pass the whole diff_options to diffcore_apply_filter()
      01a2a03c
    • J
      Merge branch 'ms/fetch-prune-configuration' · a5e10f8b
      Junio C Hamano 提交于
      Allow fetch.prune and remote.*.prune configuration variables to be set,
      and "git fetch" to behave as if "--prune" is given.
      
      "git fetch" that honors remote.*.prune is fine, but I wonder if we
      should somehow make "git push" aware of it as well.  Perhaps
      remote.*.prune should not be just a boolean, but a 4-way "none",
      "push", "fetch", "both"?
      
      * ms/fetch-prune-configuration:
        fetch: make --prune configurable
      a5e10f8b
  3. 09 9月, 2013 1 次提交
    • R
      remote-bzr: reuse bzrlib transports when possible · bd5424f0
      Richard Hansen 提交于
      Pass a list of open bzrlib.transport.Transport objects to each bzrlib
      function that might create a transport.  This enables bzrlib to reuse
      existing transports when possible, avoiding multiple concurrent
      connections to the same remote server.
      
      If the remote server is accessed via ssh, this fixes a couple of
      problems:
        * If the user does not have keys loaded into an ssh agent, the user
          may be prompted for a password multiple times.
        * If the user is using OpenSSH and the ControlMaster setting is set
          to auto, git-remote-bzr might hang.  This is because bzrlib closes
          the multiple ssh sessions in an undefined order and might try to
          close the master ssh session before the other sessions.  The
          master ssh process will not exit until the other sessions have
          exited, causing a deadlock.  (The ssh sessions are closed in an
          undefined order because bzrlib relies on the Python garbage
          collector to trigger ssh session termination.)
      Signed-off-by: NRichard Hansen <rhansen@bbn.com>
      Acked-by: NFelipe Contreras <felipe.contreras@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      bd5424f0
  4. 06 9月, 2013 8 次提交
  5. 05 9月, 2013 12 次提交