1. 04 9月, 2015 18 次提交
  2. 31 8月, 2015 1 次提交
    • D
      commit: don't rewrite shared index unnecessarily · 475a3445
      David Turner 提交于
      Remove a cache invalidation which would cause the shared index to be
      rewritten on as-is commits.
      
      When the cache-tree has changed, we need to update it.  But we don't
      necessarily need to update the shared index.  So setting
      active_cache_changed to SOMETHING_CHANGED is unnecessary.  Instead, we
      let update_main_cache_tree just update the CACHE_TREE_CHANGED bit.
      
      In order to test this, make test-dump-split-index not segfault on
      missing replace_bitmap/delete_bitmap.  This new codepath is not called
      now that the test passes, but is necessary to avoid a segfault when the
      new test is run with the old builtin/commit.c code.
      Signed-off-by: NDavid Turner <dturner@twopensource.com>
      Acked-by: NNguyễn Thái Ngọc Duy <pclouds@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      475a3445
  3. 29 8月, 2015 2 次提交
  4. 28 8月, 2015 3 次提交
    • R
      archive-zip: support more than 65535 entries · 88329ca8
      René Scharfe 提交于
      Support more than 65535 entries cleanly by writing a "zip64 end of
      central directory record" (with a 64-bit field for the number of
      entries) before the usual "end of central directory record" (which
      contains only a 16-bit field).  InfoZIP's zip does the same.
      Archives with 65535 or less entries are not affected.
      
      Programs that extract all files like InfoZIP's zip and 7-Zip
      ignored the field and could extract all files already.  Software
      that relies on the ZIP file directory to show a list of contained
      files quickly to simulate to normal directory like Windows'
      built-in ZIP functionality only saw a subset of the included files.
      
      Windows supports ZIP64 since Vista according to
      https://en.wikipedia.org/wiki/Zip_%28file_format%29#ZIP64.
      Suggested-by: NJohannes Schauer <josch@debian.org>
      Signed-off-by: NRene Scharfe <l.s.r@web.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      88329ca8
    • R
      archive-zip: use a local variable to store the creator version · 0f747f9d
      René Scharfe 提交于
      Use a simpler conditional right next to the code which makes a higher
      creator version necessary -- namely symlink handling and support for
      executable files -- instead of a long line with a ternary operator.
      The resulting code has more lines but is simpler and allows reuse of
      the value easily.
      Signed-off-by: NRene Scharfe <l.s.r@web.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0f747f9d
    • R
      t5004: test ZIP archives with many entries · 19ee2940
      René Scharfe 提交于
      A ZIP file directory has a 16-bit field for the number of entries it
      contains.  There are 64-bit extensions to deal with that.  Demonstrate
      that git archive --format=zip currently doesn't use them and instead
      overflows the field.
      
      InfoZIP's unzip doesn't care about this field and extracts all files
      anyway.  Software that uses the directory for presenting a filesystem
      like view quickly -- notably Windows -- depends on it, but doesn't
      lend itself to an automatic test case easily.  Use InfoZIP's zipinfo,
      which probably isn't available everywhere but at least can provides
      *some* way to check this field.
      
      To speed things up a bit create and commit only a subset of the files
      and build a fake tree out of duplicates and pass that to git archive.
      Signed-off-by: NRene Scharfe <l.s.r@web.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      19ee2940
  5. 26 8月, 2015 7 次提交
    • J
      Merge branch 'jk/guess-repo-name-regression-fix' into maint · 52f6893d
      Junio C Hamano 提交于
      "git clone $URL" in recent releases of Git contains a regression in
      the code that invents a new repository name incorrectly based on
      the $URL.  This has been corrected.
      
      * jk/guess-repo-name-regression-fix:
        clone: use computed length in guess_dir_name
        clone: add tests for output directory
      52f6893d
    • J
      Merge branch 'jk/test-with-x' into maint · 84deb3ea
      Junio C Hamano 提交于
      Running tests with the "-x" option to make them verbose had some
      unpleasant interactions with other features of the test suite.
      
      * jk/test-with-x:
        test-lib: disable trace when test is not verbose
        test-lib: turn off "-x" tracing during chain-lint check
      84deb3ea
    • J
      Merge branch 'sb/check-return-from-read-ref' into maint · 7a238074
      Junio C Hamano 提交于
      * sb/check-return-from-read-ref:
        transport-helper: die on errors reading refs.
      7a238074
    • J
      Merge branch 'mm/pull-upload-pack' into maint · 425a4c77
      Junio C Hamano 提交于
      "git pull" in recent releases of Git has a regression in the code
      that allows custom path to the --upload-pack=<program>.  This has
      been corrected.
      
      Note that this is irrelevant for 'master' with "git pull" rewritten
      in C.
      
      * mm/pull-upload-pack:
        pull: pass upload_pack only when it was given
        pull.sh: quote $upload_pack when passing it to git-fetch
      425a4c77
    • J
      pull: pass upload_pack only when it was given · 13e0e28f
      Junio C Hamano 提交于
      The upload_pack shell variable is initialized to an empty string, so
      conditional expansion with ${upload_pack+"$upload_pack"} would not
      work very well.  You need a colon there.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      13e0e28f
    • E
      generate-cmdlist: re-implement as shell script · 82aec45b
      Eric Sunshine 提交于
      527ec398 (generate-cmdlist: parse common group commands, 2015-05-21)
      replaced generate-cmdlist.sh with a more functional Perl version,
      generate-cmdlist.perl. The Perl version gleans named tags from a new
      "common groups" section in command-list.txt and recognizes those
      tags in "command list" section entries in place of the old 'common'
      tag. This allows git-help to, not only recognize, but also group
      common commands.
      
      Although the tests require Perl, 527ec398 creates an unconditional
      dependence upon Perl in the build system itself, which can not be
      overridden with NO_PERL. Such a dependency may be undesirable; for
      instance, the 'git-lite' package in the FreeBSD ports tree is
      intended as a minimal Git installation (which may, for example, be
      useful on servers needing only local clone and update capability),
      which, historically, has not depended upon Perl[1].
      
      Therefore, revive generate-cmdlist.sh and extend it to recognize
      "common groups" and its named tags. Retire generate-cmdlist.perl.
      
      [1]: http://thread.gmane.org/gmane.comp.version-control.git/275905/focus=276132Signed-off-by: NEric Sunshine <sunshine@sunshineco.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      82aec45b
    • N
      setup: update the right file in multiple checkouts · 82fde87f
      Nguyễn Thái Ngọc Duy 提交于
      This code is introduced in 23af91d1 (prune: strategies for linked
      checkouts - 2014-11-30), and it's supposed to implement this rule from
      that commit's message:
      
       - linked checkouts are supposed to keep its location in $R/gitdir up
         to date. The use case is auto fixup after a manual checkout move.
      
      Note the name, "$R/gitdir", not "$R/gitfile". Correct the path to be
      updated accordingly.
      
      While at there, make sure I/O errors are not silently dropped.
      Signed-off-by: NNguyễn Thái Ngọc Duy <pclouds@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      82fde87f
  6. 25 8月, 2015 1 次提交
    • J
      rev-list: make it obvious that we do not support notes · 2aea7a51
      Jeff King 提交于
      The rev-list command does not have the internal
      infrastructure to display notes. Running:
      
        git rev-list --notes HEAD
      
      will silently ignore the "--notes" option. Running:
      
        git rev-list --notes --grep=. HEAD
      
      will crash on an assert. Running:
      
        git rev-list --format=%N HEAD
      
      will place a literal "%N" in the output (it does not even
      expand to an empty string).
      
      Let's have rev-list tell the user that it cannot fill the
      user's request, rather than silently producing wrong data.
      Likewise, let's remove mention of the notes options from the
      rev-list documentation.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2aea7a51
  7. 24 8月, 2015 1 次提交
    • J
      config: silence warnings for command names with invalid keys · 9e9de18f
      Jeff King 提交于
      When we are running the git command "foo", we may have to
      look up the config keys "pager.foo" and "alias.foo". These
      config schemes are mis-designed, as the command names can be
      anything, but the config syntax has some restrictions. For
      example:
      
        $ git foo_bar
        error: invalid key: pager.foo_bar
        error: invalid key: alias.foo_bar
        git: 'foo_bar' is not a git command. See 'git --help'.
      
      You cannot name an alias with an underscore. And if you have
      an external command with one, you cannot configure its
      pager.
      
      In the long run, we may develop a different config scheme
      for these features. But in the near term (and because we'll
      need to support the existing scheme indefinitely), we should
      at least squelch the error messages shown above.
      
      These errors come from git_config_parse_key. Ideally we
      would pass a "quiet" flag to the config machinery, but there
      are many layers between the pager code and the key parsing.
      Passing a flag through all of those would be an invasive
      change.
      
      Instead, let's provide a config function to report on
      whether a key is syntactically valid, and have the pager and
      alias code skip lookup for bogus keys. We can build this
      easily around the existing git_config_parse_key, with two
      minor modifications:
      
        1. We now handle a NULL store_key, to validate but not
           write out the normalized key.
      
        2. We accept a "quiet" flag to avoid writing to stderr.
           This doesn't need to be a full-blown public "flags"
           field, because we can make the existing implementation
           a static helper function, keeping the mess contained
           inside config.c.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9e9de18f
  8. 22 8月, 2015 2 次提交
  9. 21 8月, 2015 2 次提交
  10. 20 8月, 2015 3 次提交