1. 12 6月, 2018 1 次提交
  2. 01 6月, 2018 14 次提交
    • J
      A bit more topics before -rc1 · c2c7d17b
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c2c7d17b
    • J
      Merge branch 'bw/ref-prefix-for-configured-refspec' · 026b8ef9
      Junio C Hamano 提交于
      * bw/ref-prefix-for-configured-refspec:
        fetch: do not pass ref-prefixes for fetch by exact SHA1
      026b8ef9
    • J
      fetch: do not pass ref-prefixes for fetch by exact SHA1 · 6c301adb
      Jonathan Nieder 提交于
      When v2.18.0-rc0~10^2~1 (refspec: consolidate ref-prefix generation
      logic, 2018-05-16) factored out the ref-prefix generation code for
      reuse, it left out the 'if (!item->exact_sha1)' test in the original
      ref-prefix generation code. As a result, fetches by SHA-1 generate
      ref-prefixes as though the SHA-1 being fetched were an abbreviated ref
      name:
      
       $ GIT_TRACE_PACKET=1 bin-wrappers/git -c protocol.version=2 \
      	fetch origin 12039e00
      [...]
       packet:        fetch> ref-prefix 12039e00
       packet:        fetch> ref-prefix refs/12039e00
       packet:        fetch> ref-prefix refs/tags/12039e00
       packet:        fetch> ref-prefix refs/heads/12039e00
       packet:        fetch> ref-prefix refs/remotes/12039e00
       packet:        fetch> ref-prefix refs/remotes/12039e00/HEAD
       packet:        fetch> 0000
      
      If there is another ref name on the command line or the object being
      fetched is already available locally, then that's mostly harmless.
      But otherwise, we error out with
      
       fatal: no matching remote head
      
      since the server did not send any refs we are interested in.  Filter
      out the exact_sha1 refspecs to avoid this.
      
      This patch adds a test to check this behavior that notices another
      behavior difference between protocol v0 and v2 in the process.  Add a
      NEEDSWORK comment to clear it up.
      Signed-off-by: NJonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      6c301adb
    • J
      Merge branch 'cc/tests-without-assuming-ref-files-backend' · d6e54842
      Junio C Hamano 提交于
      Quite a many tests assumed that newly created refs are made as
      loose refs using the files backend, which have been updated to use
      proper plumbing like rev-parse and update-ref, to avoid breakage
      once we start using different ref backends.
      
      * cc/tests-without-assuming-ref-files-backend:
        t990X: use '.git/objects' as 'deep inside .git' path
        t: make many tests depend less on the refs being files
      d6e54842
    • J
      Merge branch 'rd/init-typo' · ba928e97
      Junio C Hamano 提交于
      Message fix.
      
      * rd/init-typo:
        init: fix grammar in "templates not found" msg
      ba928e97
    • J
      Merge branch 'js/rebase-recreate-merge' · 95dd4b2b
      Junio C Hamano 提交于
      Hotfixes.
      
      * js/rebase-recreate-merge:
        sequencer: ensure labels that are object IDs are rewritten
        git-rebase--interactive: fix copy-paste mistake
      95dd4b2b
    • J
      Merge branch 'rd/tag-doc-lightweight' · cbb408e6
      Junio C Hamano 提交于
      Docfix.
      
      * rd/tag-doc-lightweight:
        tag: clarify in the doc that a tag can refer to a non-commit object
      cbb408e6
    • J
      Merge branch 'rd/doc-options-placeholder' · 7659bda0
      Junio C Hamano 提交于
      Docfix.
      
      * rd/doc-options-placeholder:
        Use proper syntax for replaceables in command docs
      7659bda0
    • J
      Merge branch 'en/rev-parse-invalid-range' · 7cb4a974
      Junio C Hamano 提交于
      "git rev-parse Y..." etc. misbehaved when given endpoints were
      not committishes.
      
      * en/rev-parse-invalid-range:
        rev-parse: check lookup'ed commit references for NULL
      7cb4a974
    • J
      Merge branch 'ld/p4-unshelve' · caf0c98c
      Junio C Hamano 提交于
      "git p4" learned to "unshelve" shelved commit from P4.
      
      * ld/p4-unshelve:
        git-p4: add unshelve command
      caf0c98c
    • J
      Merge branch 'nd/use-opt-int-set-f' · e1149fd7
      Junio C Hamano 提交于
      Code simplification.
      
      * nd/use-opt-int-set-f:
        Use OPT_SET_INT_F() for cmdline option specification
      e1149fd7
    • J
      Merge branch 'pa/import-tars-long-names' · 2bd108ff
      Junio C Hamano 提交于
      The import-tars script (in contrib/) has been taught to handle
      tarballs with overly long paths that use PAX extended headers.
      
      * pa/import-tars-long-names:
        import-tars: read overlong names from pax extended header
      2bd108ff
    • J
      Merge branch 'nd/command-list' · 2289880f
      Junio C Hamano 提交于
      The list of commands with their various attributes were spread
      across a few places in the build procedure, but it now is getting a
      bit more consolidated to allow more automation.
      
      * nd/command-list:
        completion: allow to customize the completable command list
        completion: add and use --list-cmds=alias
        completion: add and use --list-cmds=nohelpers
        Move declaration for alias.c to alias.h
        completion: reduce completable command list
        completion: let git provide the completable command list
        command-list.txt: documentation and guide line
        help: use command-list.txt for the source of guides
        help: add "-a --verbose" to list all commands with synopsis
        git: support --list-cmds=list-<category>
        completion: implement and use --list-cmds=main,others
        git --list-cmds: collect command list in a string_list
        git.c: convert --list-* to --list-cmds=*
        Remove common-cmds.h
        help: use command-list.h for common command list
        generate-cmds.sh: export all commands to command-list.h
        generate-cmds.sh: factor out synopsis extract code
      2289880f
    • E
      RelNotes: remove duplicate release note · 2161ed80
      Elijah Newren 提交于
      In the 2.18 cycle, directory rename detection was merged, then reverted,
      then reworked in such a way to fix another prominent bug in addition to
      the original problem causing it to be reverted.  When the reworked series
      was merged, we ended up with two nearly duplicate release notes.  Remove
      the second copy, but preserve the information about the extra bug fix.
      Signed-off-by: NElijah Newren <newren@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2161ed80
  3. 30 5月, 2018 25 次提交
    • J
      Git 2.18-rc0 · 12039e00
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      12039e00
    • J
      Merge branch 'bw/remote-curl-compressed-responses' · 13e8be95
      Junio C Hamano 提交于
      Our HTTP client code used to advertise that we accept gzip encoding
      from the other side; instead, just let cURL library to advertise
      and negotiate the best one.
      
      * bw/remote-curl-compressed-responses:
        remote-curl: accept compressed responses with protocol v2
        remote-curl: accept all encodings supported by curl
      13e8be95
    • J
      Merge branch 'ma/unpack-trees-free-msgs' · e47dbece
      Junio C Hamano 提交于
      Leak plugging.
      
      * ma/unpack-trees-free-msgs:
        unpack_trees_options: free messages when done
        argv-array: return the pushed string from argv_push*()
        merge-recursive: provide pair of `unpack_trees_{start,finish}()`
        merge: setup `opts` later in `checkout_fast_forward()`
      e47dbece
    • J
      Merge branch 'bc/hash-independent-tests' · 9472b132
      Junio C Hamano 提交于
      Many tests hardcode the raw object names, which would change once
      we migrate away from SHA-1.  While some of them must test against
      exact object names, most of them do not have to use hardcoded
      constants in the test.  The latter kind of tests have been updated
      to test the moral equivalent of the original without hardcoding the
      actual object names.
      
      * bc/hash-independent-tests: (28 commits)
        t5300: abstract away SHA-1-specific constants
        t4208: abstract away SHA-1-specific constants
        t4045: abstract away SHA-1-specific constants
        t4042: abstract away SHA-1-specific constants
        t4205: sort log output in a hash-independent way
        t/lib-diff-alternative: abstract away SHA-1-specific constants
        t4030: abstract away SHA-1-specific constants
        t4029: abstract away SHA-1-specific constants
        t4029: fix test indentation
        t4022: abstract away SHA-1-specific constants
        t4020: abstract away SHA-1-specific constants
        t4014: abstract away SHA-1-specific constants
        t4008: abstract away SHA-1-specific constants
        t4007: abstract away SHA-1-specific constants
        t3905: abstract away SHA-1-specific constants
        t3702: abstract away SHA-1-specific constants
        t3103: abstract away SHA-1-specific constants
        t2203: abstract away SHA-1-specific constants
        t: skip pack tests if not using SHA-1
        t4044: skip test if not using SHA-1
        ...
      9472b132
    • J
      Merge branch 'ma/regex-no-regfree-after-comp-fail' · d89f1248
      Junio C Hamano 提交于
      We used to call regfree() after regcomp() failed in some codepaths,
      which have been corrected.
      
      * ma/regex-no-regfree-after-comp-fail:
        regex: do not call `regfree()` if compilation fails
      d89f1248
    • J
      Merge branch 'ma/config-store-data-clear' · 3f384aaa
      Junio C Hamano 提交于
      Leak plugging.
      
      * ma/config-store-data-clear:
        config: let `config_store_data_clear()` handle `key`
        config: let `config_store_data_clear()` handle `value_regex`
        config: free resources of `struct config_store_data`
      3f384aaa
    • J
      Merge branch 'jk/snprintf-truncation' · 7c3d15fe
      Junio C Hamano 提交于
      Avoid unchecked snprintf() to make future code auditing easier.
      
      * jk/snprintf-truncation:
        fmt_with_err: add a comment that truncation is OK
        shorten_unambiguous_ref: use xsnprintf
        fsmonitor: use internal argv_array of struct child_process
        log_write_email_headers: use strbufs
        http: use strbufs instead of fixed buffers
      7c3d15fe
    • J
      Merge branch 'jk/config-blob-sans-repo' · b2fd6592
      Junio C Hamano 提交于
      Error codepath fix.
      
      * jk/config-blob-sans-repo:
        config: die when --blob is used outside a repository
      b2fd6592
    • J
      Merge branch 'sb/submodule-merge-in-merge-recursive' · 0821b730
      Junio C Hamano 提交于
      By code restructuring of submodule merge in merge-recursive,
      informational messages from the codepath are now given using the
      same mechanism as other output, and honor the merge.verbosity
      configuration.  The code also learned to give a few new messages
      when a submodule three-way merge resolves cleanly when one side
      records a descendant of the commit chosen by the other side.
      
      * sb/submodule-merge-in-merge-recursive:
        merge-recursive: give notice when submodule commit gets fast-forwarded
        merge-recursive: i18n submodule merge output and respect verbosity
        submodule.c: move submodule merging to merge-recursive.c
      0821b730
    • J
      Merge branch 'js/empty-config-section-fix' · 23057708
      Junio C Hamano 提交于
      Error codepath fix.
      
      * js/empty-config-section-fix:
        config: a user-provided invalid section is not a BUG
      23057708
    • J
      Merge branch 'bw/ref-prefix-for-configured-refspec' · e12cbeaa
      Junio C Hamano 提交于
      "git fetch $there $refspec" that talks over protocol v2 can take
      advantage of server-side ref filtering; the code has been extended
      so that this mechanism triggers also when fetching with configured
      refspec.
      
      * bw/ref-prefix-for-configured-refspec: (38 commits)
        fetch: generate ref-prefixes when using a configured refspec
        refspec: consolidate ref-prefix generation logic
        submodule: convert push_unpushed_submodules to take a struct refspec
        remote: convert check_push_refs to take a struct refspec
        remote: convert match_push_refs to take a struct refspec
        http-push: store refspecs in a struct refspec
        transport: remove transport_verify_remote_names
        send-pack: store refspecs in a struct refspec
        transport: convert transport_push to take a struct refspec
        push: convert to use struct refspec
        push: check for errors earlier
        remote: convert match_explicit_refs to take a struct refspec
        remote: convert get_ref_match to take a struct refspec
        remote: convert query_refspecs to take a struct refspec
        remote: convert apply_refspecs to take a struct refspec
        remote: convert get_stale_heads to take a struct refspec
        fetch: convert prune_refs to take a struct refspec
        fetch: convert get_ref_map to take a struct refspec
        fetch: convert do_fetch to take a struct refspec
        refspec: remove the deprecated functions
        ...
      e12cbeaa
    • J
      Merge branch 'sb/grep-die-on-unreadable-index' · 6ac5acae
      Junio C Hamano 提交于
      Error behaviour of "git grep" when it cannot read the index was
      inconsistent with other commands that uses the index, which has
      been corrected to error out early.
      
      * sb/grep-die-on-unreadable-index:
        grep: handle corrupt index files early
      6ac5acae
    • J
      The seventh batch for 2.18 · f15a486c
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f15a486c
    • J
      Merge branch 'sb/submodule-update-try-harder' · a173dddf
      Junio C Hamano 提交于
      "git submodule update" attempts two different kinds of "git fetch"
      against the upstream repository to grab a commit bound at the
      submodule's path, but it incorrectly gave up if the first kind
      (i.e. a normal fetch) failed, making the second "last resort" one
      (i.e. fetching an exact commit object by object name) ineffective.
      This has been corrected.
      
      * sb/submodule-update-try-harder:
        git-submodule.sh: try harder to fetch a submodule
      a173dddf
    • J
      Merge branch 'lm/credential-netrc' · 017b7c52
      Junio C Hamano 提交于
      Update credential-netrc helper (in contrib/) to allow customizing
      the GPG used to decrypt the encrypted .netrc file.
      
      * lm/credential-netrc:
        git-credential-netrc: accept gpg option
        git-credential-netrc: adapt to test framework for git
      017b7c52
    • J
      Merge branch 'ab/get-short-oid' · ab48bc0a
      Junio C Hamano 提交于
      When a short hexadecimal string is used to name an object but there
      are multiple objects that share the string as the prefix of their
      names, the code lists these ambiguous candidates in a help message.
      These object names are now sorted according to their types for
      easier eyeballing.
      
      * ab/get-short-oid:
        get_short_oid: sort ambiguous objects by type, then SHA-1
        sha1-name.c: move around the collect_ambiguous() function
        git-p4: change "commitish" typo to "committish"
        sha1-array.h: align function arguments
        sha1-name.c: remove stray newline
      ab48bc0a
    • J
      Merge branch 'jt/partial-clone-proto-v2' · 54db5c0e
      Junio C Hamano 提交于
      Transfer protocol v2 learned to support the partial clone.
      
      * jt/partial-clone-proto-v2:
        {fetch,upload}-pack: support filter in protocol v2
        upload-pack: read config when serving protocol v2
        upload-pack: fix error message typo
      54db5c0e
    • J
      Merge branch 'bc/object-id' · 42c8ce1c
      Junio C Hamano 提交于
      Conversion from uchar[20] to struct object_id continues.
      
      * bc/object-id: (42 commits)
        merge-one-file: compute empty blob object ID
        add--interactive: compute the empty tree value
        Update shell scripts to compute empty tree object ID
        sha1_file: only expose empty object constants through git_hash_algo
        dir: use the_hash_algo for empty blob object ID
        sequencer: use the_hash_algo for empty tree object ID
        cache-tree: use is_empty_tree_oid
        sha1_file: convert cached object code to struct object_id
        builtin/reset: convert use of EMPTY_TREE_SHA1_BIN
        builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEX
        wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
        submodule: convert several uses of EMPTY_TREE_SHA1_HEX
        sequencer: convert one use of EMPTY_TREE_SHA1_HEX
        merge: convert empty tree constant to the_hash_algo
        builtin/merge: switch tree functions to use object_id
        builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algo
        sha1-file: add functions for hex empty tree and blob OIDs
        builtin/receive-pack: avoid hard-coded constants for push certs
        diff: specify abbreviation size in terms of the_hash_algo
        upload-pack: replace use of several hard-coded constants
        ...
      42c8ce1c
    • J
      Merge branch 'sb/blame-color' · 3d241297
      Junio C Hamano 提交于
      "git blame" learns to unhighlight uninteresting metadata from the
      originating commit on lines that are the same as the previous one,
      and also paint lines in different colors depending on the age of
      the commit.
      
      * sb/blame-color:
        builtin/blame: add new coloring scheme config
        builtin/blame: highlight recently changed lines
        builtin/blame: dim uninteresting metadata lines
      3d241297
    • J
      Merge branch 'cf/submodule-progress-dissociate' · 2a98a879
      Junio C Hamano 提交于
      "git submodule update" and "git submodule add" supported the
      "--reference" option to borrow objects from a neighbouring local
      repository like "git clone" does, but lacked the more recent
      invention "--dissociate".  Also "git submodule add" has been taught
      to take the "--progress" option.
      
      * cf/submodule-progress-dissociate:
        submodule: add --dissociate option to add/update commands
        submodule: add --progress option to add command
        submodule: clean up substitutions in script
      2a98a879
    • J
      Merge branch 'sg/complete-paths' · 4ce72180
      Junio C Hamano 提交于
      Command line completion (in contrib/) learned to complete pathnames
      for various commands better.
      
      * sg/complete-paths:
        t9902-completion: exercise __git_complete_index_file() directly
        completion: don't return with error from __gitcomp_file_direct()
        completion: fill COMPREPLY directly when completing paths
        completion: improve handling quoted paths in 'git ls-files's output
        completion: remove repeated dirnames with 'awk' during path completion
        t9902-completion: ignore COMPREPLY element order in some tests
        completion: use 'awk' to strip trailing path components
        completion: let 'ls-files' and 'diff-index' filter matching paths
        completion: improve handling quoted paths on the command line
        completion: support completing non-ASCII pathnames
        completion: simplify prefix path component handling during path completion
        completion: move __git_complete_index_file() next to its helpers
        t9902-completion: add tests demonstrating issues with quoted pathnames
      4ce72180
    • J
      Merge branch 'nd/travis-gcc-8' · 6105fee3
      Junio C Hamano 提交于
      Developer support.  Use newer GCC on one of the builds done at
      TravisCI.org to get more warnings and errors diagnosed.
      
      * nd/travis-gcc-8:
        travis-ci: run gcc-8 on linux-gcc jobs
      6105fee3
    • J
      Merge branch 'nd/pack-struct-commit' · a4eae17c
      Junio C Hamano 提交于
      Memory optimization.
      
      * nd/pack-struct-commit:
        commit.h: rearrange 'index' to shrink struct commit
      a4eae17c
    • J
      Merge branch 'ma/create-pseudoref-with-null-old-oid' · 26597cb0
      Junio C Hamano 提交于
      "git update-ref A B" is supposed to ensure that ref A does not yet
      exist when B is a NULL OID, but this check was not done correctly
      for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
      
      * ma/create-pseudoref-with-null-old-oid:
        refs: handle zero oid for pseudorefs
        t1400: add tests around adding/deleting pseudorefs
        refs.c: refer to "object ID", not "sha1", in error messages
      26597cb0
    • J
      Merge branch 'jk/unavailable-can-be-missing' · cf315793
      Junio C Hamano 提交于
      Code clean-up to turn history traversal more robust in a
      semi-corrupt repository.
      
      * jk/unavailable-can-be-missing:
        mark_parents_uninteresting(): avoid most allocation
        mark_parents_uninteresting(): replace list with stack
        mark_parents_uninteresting(): drop missing object check
        mark_tree_contents_uninteresting(): drop missing object check
      cf315793