1. 10 4月, 2018 17 次提交
    • J
      Merge branch 'nd/trace-with-env' · e8cb62f1
      Junio C Hamano 提交于
      Code cleanup.
      
      * nd/trace-with-env:
        run-command: use strbuf_addstr() for adding a string to a strbuf
      e8cb62f1
    • J
      Merge branch 'nd/parseopt-completion-more' · ef06d74b
      Junio C Hamano 提交于
      The mechanism to use parse-options API to automate the command line
      completion continues to get extended and polished.
      
      * nd/parseopt-completion-more:
        completion: use __gitcomp_builtin in _git_cherry
        completion: use __gitcomp_builtin in _git_ls_tree
        completion: delete option-only completion commands
        completion: add --option completion for most builtin commands
        completion: factor out _git_xxx calling code
        completion: mention the oldest version we need to support
        git.c: add hidden option --list-parseopt-builtins
        git.c: move cmd_struct declaration up
      ef06d74b
    • J
      Merge branch 'ds/bsearch-hash' · 51f813c6
      Junio C Hamano 提交于
      Code to find the length to uniquely abbreviate object names based
      on packfile content, which is a relatively recent addtion, has been
      optimized to use the same fan-out table.
      
      * ds/bsearch-hash:
        sha1_name: use bsearch_pack() in unique_in_pack()
        sha1_name: use bsearch_pack() for abbreviations
        packfile: define and use bsearch_pack()
        sha1_name: convert struct min_abbrev_data to object_id
      51f813c6
    • J
      Merge branch 'ws/rebase-p' · 57e4b1c6
      Junio C Hamano 提交于
      Code clean-up.
      
      * ws/rebase-p:
        rebase: remove merges_option and a blank line
        rebase: remove unused code paths from git_rebase__interactive__preserve_merges
        rebase: remove unused code paths from git_rebase__interactive
        rebase: add and use git_rebase__interactive__preserve_merges
        rebase: extract functions out of git_rebase__interactive
        rebase: reindent function git_rebase__interactive
        rebase: update invocation of rebase dot-sourced scripts
        rebase-interactive: simplify pick_on_preserving_merges
      57e4b1c6
    • J
      Merge branch 'jk/diff-highlight-graph-fix' · d19e5565
      Junio C Hamano 提交于
      "diff-highlight" filter (in contrib/) learned to undertand "git log
      --graph" output better.
      
      * jk/diff-highlight-graph-fix:
        diff-highlight: detect --graph by indent
        diff-highlight: use flush() helper consistently
        diff-highlight: test graphs with --color
        diff-highlight: test interleaved parallel lines of history
        diff-highlight: prefer "echo" to "cat" in tests
        diff-highlight: use test_tick in graph test
        diff-highlight: correct test graph diagram
      d19e5565
    • J
      Merge branch 'nd/remove-ignore-env-field' · 0873c393
      Junio C Hamano 提交于
      Code clean-up for the "repository" abstraction.
      
      * nd/remove-ignore-env-field:
        repository.h: add comment and clarify repo_set_gitdir
        repository: delete ignore_env member
        sha1_file.c: move delayed getenv(altdb) back to setup_git_env()
        repository.c: delete dead functions
        repository.c: move env-related setup code back to environment.c
        repository: initialize the_repository in main()
      0873c393
    • J
      Merge branch 'ps/contains-id-error-message' · 62c0fd46
      Junio C Hamano 提交于
      "git tag --contains no-such-commit" gave a full list of options
      after giving an error message.
      
      * ps/contains-id-error-message:
        parse-options: do not show usage upon invalid option value
      62c0fd46
    • J
      The first batch for 2.18 cycle · 69d71ec4
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      69d71ec4
    • J
      Merge branch 'tg/stash-untracked-with-pathspec-fix' · cbf03394
      Junio C Hamano 提交于
      "git stash push -u -- <pathspec>" gave an unnecessary and confusing
      error message when there was no tracked files that match the
      <pathspec>, which has been fixed.
      
      * tg/stash-untracked-with-pathspec-fix:
        stash: drop superfluos pathspec parameter
        stash push -u: don't create empty stash
        stash push: avoid printing errors
        stash: fix nonsense pipeline
      cbf03394
    • J
      Merge branch 'nd/worktree-prune' · ca923f72
      Junio C Hamano 提交于
      The way "git worktree prune" worked internally has been simplified,
      by assuming how "git worktree move" moves an existing worktree to a
      different place.
      
      * nd/worktree-prune:
        worktree prune: improve prune logic when worktree is moved
        worktree: delete dead code
        gc.txt: more details about what gc does
      ca923f72
    • J
      Merge branch 'bc/object-id' · a5bbc299
      Junio C Hamano 提交于
      Conversion from uchar[20] to struct object_id continues.
      
      * bc/object-id: (36 commits)
        convert: convert to struct object_id
        sha1_file: introduce a constant for max header length
        Convert lookup_replace_object to struct object_id
        sha1_file: convert read_sha1_file to struct object_id
        sha1_file: convert read_object_with_reference to object_id
        tree-walk: convert tree entry functions to object_id
        streaming: convert istream internals to struct object_id
        tree-walk: convert get_tree_entry_follow_symlinks internals to object_id
        builtin/notes: convert static functions to object_id
        builtin/fmt-merge-msg: convert remaining code to object_id
        sha1_file: convert sha1_object_info* to object_id
        Convert remaining callers of sha1_object_info_extended to object_id
        packfile: convert unpack_entry to struct object_id
        sha1_file: convert retry_bad_packed_offset to struct object_id
        sha1_file: convert assert_sha1_type to object_id
        builtin/mktree: convert to struct object_id
        streaming: convert open_istream to use struct object_id
        sha1_file: convert check_sha1_signature to struct object_id
        sha1_file: convert read_loose_object to use struct object_id
        builtin/index-pack: convert struct ref_delta_entry to object_id
        ...
      a5bbc299
    • J
      Merge branch 'ma/shortlog-revparse' · 78c20b8f
      Junio C Hamano 提交于
      "git shortlog cruft" aborted with a BUG message when run outside a
      Git repository.  The command has been taught to complain about
      extra and unwanted arguments on its command line instead in such a
      case.
      
      * ma/shortlog-revparse:
        shortlog: disallow left-over arguments outside repo
        shortlog: add usage-string for stdin-reading
        git-shortlog.txt: reorder usages
      78c20b8f
    • J
      Merge branch 'ab/install-symlinks' · a26e1f4b
      Junio C Hamano 提交于
      The build procedure learned to optionally use symbolic links
      (instead of hardlinks and copies) to install "git-foo" for built-in
      commands, whose binaries are all identical.
      
      * ab/install-symlinks:
        Makefile: optionally symlink libexec/git-core binaries to bin/git
        Makefile: add a gitexecdir_relative variable
        Makefile: fix broken bindir_relative variable
      a26e1f4b
    • J
      Merge branch 'ml/filter-branch-no-op-error' · cb3e97da
      Junio C Hamano 提交于
      "git filter-branch" learned to use a different exit code to allow
      the callers to tell the case where there was no new commits to
      rewrite from other error cases.
      
      * ml/filter-branch-no-op-error:
        filter-branch: return 2 when nothing to rewrite
      cb3e97da
    • J
      Merge branch 'ab/pcre-v2' · cac53513
      Junio C Hamano 提交于
      Git can be built to use either v1 or v2 of the PCRE library, and so
      far, the build-time configuration USE_LIBPCRE=YesPlease instructed
      the build procedure to use v1, but now it means v2.  USE_LIBPCRE1
      and USE_LIBPCRE2 can be used to explicitly choose which version to
      use, as before.
      
      * ab/pcre-v2:
        Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1
        configure: detect redundant --with-libpcre & --with-libpcre1
        configure: fix a regression in PCRE v1 detection
      cac53513
    • J
      Merge branch 'ti/fetch-everything-local-optim' · 5d806b74
      Junio C Hamano 提交于
      A "git fetch" from a repository with insane number of refs into a
      repository that is already up-to-date still wasted too many cycles
      making many lstat(2) calls to see if these objects at the tips
      exist as loose objects locally.  These lstat(2) calls are optimized
      away by enumerating all loose objects beforehand.
      
      It is unknown if the new strategy negatively affects existing use
      cases, fetching into a repository with many loose objects from a
      repository with small number of refs.
      
      * ti/fetch-everything-local-optim:
        fetch-pack.c: use oidset to check existence of loose object
      5d806b74
    • J
      Merge branch 'en/rename-directory-detection' · e4bb62fa
      Junio C Hamano 提交于
      Rename detection logic in "diff" family that is used in "merge" has
      learned to guess when all of x/a, x/b and x/c have moved to z/a,
      z/b and z/c, it is likely that x/d added in the meantime would also
      want to move to z/d by taking the hint that the entire directory
      'x' moved to 'z'.  A bug causing dirty files involved in a rename
      to be overwritten during merge has also been fixed as part of this
      work.
      
      * en/rename-directory-detection: (29 commits)
        merge-recursive: ensure we write updates for directory-renamed file
        merge-recursive: avoid spurious rename/rename conflict from dir renames
        directory rename detection: new testcases showcasing a pair of bugs
        merge-recursive: fix remaining directory rename + dirty overwrite cases
        merge-recursive: fix overwriting dirty files involved in renames
        merge-recursive: avoid clobbering untracked files with directory renames
        merge-recursive: apply necessary modifications for directory renames
        merge-recursive: when comparing files, don't include trees
        merge-recursive: check for file level conflicts then get new name
        merge-recursive: add computation of collisions due to dir rename & merging
        merge-recursive: check for directory level conflicts
        merge-recursive: add get_directory_renames()
        merge-recursive: make a helper function for cleanup for handle_renames
        merge-recursive: split out code for determining diff_filepairs
        merge-recursive: make !o->detect_rename codepath more obvious
        merge-recursive: fix leaks of allocated renames and diff_filepairs
        merge-recursive: introduce new functions to handle rename logic
        merge-recursive: move the get_renames() function
        directory rename detection: tests for handling overwriting dirty files
        directory rename detection: tests for handling overwriting untracked files
        ...
      e4bb62fa
  2. 03 4月, 2018 3 次提交
    • J
      Git 2.17 · 468165c1
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      468165c1
    • J
      Merge tag 'l10n-2.17.0-rnd1' of git://github.com/git-l10n/git-po · 1614dd0f
      Junio C Hamano 提交于
      l10n for Git 2.17.0 round 1
      
      * tag 'l10n-2.17.0-rnd1' of git://github.com/git-l10n/git-po:
        l10n: de.po: translate 132 new messages
        l10n: zh_CN: review for git v2.17.0 l10n round 1
        l10n: zh_CN: for git v2.17.0 l10n round 1
        l10n: ko.po: Update Korean translation
        l10n: fr.po: v2.17.0 no fuzzy
        l10n: sv.po: Update Swedish translation (3376t0f0u)
        l10n: Update Catalan translation
        l10n: fr.po v2.17.0 round 1
        l10n: vi.po(3376t): Updated Vietnamese translation for v2.17
        l10n: bg.po: Updated Bulgarian translation (3376t)
        l10n: es.po: Update Spanish translation 2.17.0
        l10n: git.pot: v2.17.0 round 1 (132 new, 44 removed)
        l10n: es.po: fixes to Spanish translation
      1614dd0f
    • J
      Merge branch 'pw/add-p-single' · 5f944176
      Junio C Hamano 提交于
      Hotfix.
      
      * pw/add-p-single:
        add -p: fix 2.17.0-rc* regression due to moved code
      5f944176
  3. 01 4月, 2018 1 次提交
    • Æ
      add -p: fix 2.17.0-rc* regression due to moved code · fd2fb4aa
      Ævar Arnfjörð Bjarmason 提交于
      Fix a regression in 88f6ffc1 ("add -p: only bind search key if
      there's more than one hunk", 2018-02-13) which is present in
      2.17.0-rc*, but not 2.16.0.
      
      In Perl, regex variables like $1 always refer to the last regex
      match. When the aforementioned change added a new regex match between
      the old match and the corresponding code that was expecting $1, the $1
      variable would always be undef, since the newly inserted regex match
      doesn't have any captures.
      
      As a result the "/" feature to search for a string in a hunk by regex
      completely broke, on git.git:
      
          $ perl -pi -e 's/Git/Tig/g' README.md
          $ ./git --exec-path=$PWD add -p
          [..]
          Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,?]? s
          Split into 4 hunks.
          [...]
          Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,?]? /Many
          Use of uninitialized value $1 in string eq at /home/avar/g/git/git-add--interactive line 1568, <STDIN> line 1.
          search for regex? Many
      
      I.e. the initial "/regex" command wouldn't work, and would always emit
      a warning and ask again for a regex, now it works as intended again.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      fd2fb4aa
  4. 31 3月, 2018 1 次提交
  5. 30 3月, 2018 2 次提交
    • J
      Merge branch 'jh/partial-clone' · c2a499e6
      Junio C Hamano 提交于
      Hotfix.
      
      * jh/partial-clone:
        upload-pack: disable object filtering when disabled by config
        unpack-trees: release oid_array after use in check_updates()
      c2a499e6
    • J
      upload-pack: disable object filtering when disabled by config · c7620bd0
      Jonathan Nieder 提交于
      When upload-pack gained partial clone support (v2.17.0-rc0~132^2~12,
      2017-12-08), it was guarded by the uploadpack.allowFilter config item
      to allow server operators to control when they start supporting it.
      
      That config item didn't go far enough, though: it controls whether the
      'filter' capability is advertised, but if a (custom) client ignores
      the capability advertisement and passes a filter specification anyway,
      the server would handle that despite allowFilter being false.
      
      This is particularly significant if a security bug is discovered in
      this new experimental partial clone code.  Installations without
      uploadpack.allowFilter ought not to be affected since they don't
      intend to support partial clone, but they would be swept up into being
      vulnerable.
      
      Simplify and limit the attack surface by making uploadpack.allowFilter
      disable the feature, not just the advertisement of it.
      Signed-off-by: NJonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c7620bd0
  6. 29 3月, 2018 6 次提交
  7. 28 3月, 2018 3 次提交
  8. 26 3月, 2018 7 次提交