1. 04 4月, 2013 2 次提交
    • J
      Merge branch 'jc/directory-attrs-regression-fix' · f30366b2
      Junio C Hamano 提交于
      Fix 1.8.1.x regression that stopped matching "dir" (without
      trailing slash) to a directory "dir".
      
      * jc/directory-attrs-regression-fix:
        t: check that a pattern without trailing slash matches a directory
        dir.c::match_pathname(): pay attention to the length of string parameters
        dir.c::match_pathname(): adjust patternlen when shifting pattern
        dir.c::match_basename(): pay attention to the length of string parameters
        attr.c::path_matches(): special case paths that end with a slash
        attr.c::path_matches(): the basename is part of the pathname
      f30366b2
    • J
      Merge branch 'nd/checkout-paths-reduce-match-pathspec-calls' · 97fefaf6
      Junio C Hamano 提交于
      Consolidate repeated pathspec matches on the same paths, while
      fixing a bug in "git checkout dir/" code started from an unmerged
      index.
      
      * nd/checkout-paths-reduce-match-pathspec-calls:
        checkout: avoid unnecessary match_pathspec calls
      97fefaf6
  2. 03 4月, 2013 8 次提交
    • J
      Update draft release notes to 1.8.3 · 961c5129
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      961c5129
    • J
      Merge branch 'jk/config-with-empty-section' · 66bea733
      Junio C Hamano 提交于
      Document that "git config --unset" does not remove an empty section
      head after removing the last variable in a section, and adding a
      new variable does not try to reuse a leftover empty section head.
      
      * jk/config-with-empty-section:
        t1300: document some aesthetic failures of the config editor
      66bea733
    • J
      Merge branch 'js/log-gpg' · 68ef16b8
      Junio C Hamano 提交于
      Teach "show/log" honor gpg.program configuration just like other
      parts of the code that use GnuPG.
      
      * js/log-gpg:
        log: read gpg settings for signed commit verification
      68ef16b8
    • J
      Merge branch 'tr/log-tree-optim' · 48799d1c
      Junio C Hamano 提交于
      Optimize "log" that shows the difference between the parent and the
      child.
      
      * tr/log-tree-optim:
        Avoid loading commits twice in log with diffs
      48799d1c
    • J
      Merge branch 'tb/cygwin-shared-repository' · 76d1ab30
      Junio C Hamano 提交于
      Cygwin port has a faster-but-lying lstat(2) emulation whose
      incorrectness does not matter in practice except for a few
      codepaths, and setting permission bits to directories is a codepath
      that needs to use a more correct one.
      
      * tb/cygwin-shared-repository:
        Make core.sharedRepository work under cygwin 1.7
      76d1ab30
    • J
      Merge branch 'sw/safe-create-leading-dir-race' · 37ba4c61
      Junio C Hamano 提交于
      * sw/safe-create-leading-dir-race:
        safe_create_leading_directories: fix race that could give a false negative
      37ba4c61
    • J
      Merge branch 'bk/document-commit-tree-S' · c5f05b23
      Junio C Hamano 提交于
      * bk/document-commit-tree-S:
        commit-tree: document -S option consistently
      c5f05b23
    • J
      Merge branch 'jk/no-more-self-assignment' · 5fb7b899
      Junio C Hamano 提交于
      This started as a topic to reduce "type var = var" self assignment
      tricks that were used to squelch "variable used uninitialized perhaps?"
      warning from some compilers, but resulted in rewriting logic with
      a version that is simpler and easier to understand for humans.
      
      * jk/no-more-self-assignment:
        match-trees: simplify score_trees() using tree_entry()
        submodule: clarify logic in show_submodule_summary
      5fb7b899
  3. 02 4月, 2013 15 次提交
    • J
      Update draft release notes to 1.8.3 · cc3e4eba
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      cc3e4eba
    • J
      Merge branch 'maint' · b4427316
      Junio C Hamano 提交于
      * maint:
        Update draft release notes to 1.8.2.1
      b4427316
    • J
      Update draft release notes to 1.8.2.1 · 40a0f842
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      40a0f842
    • J
      Merge branch 'ap/maint-diff-rename-avoid-overlap' into maint · b76a9e16
      Junio C Hamano 提交于
      * ap/maint-diff-rename-avoid-overlap:
        tests: make sure rename pretty print works
        diff: prevent pprint_rename from underrunning input
        diff: Fix rename pretty-print when suffix and prefix overlap
      b76a9e16
    • J
      Merge branch 'rr/tests-dedup-test-config' into maint · 5753e170
      Junio C Hamano 提交于
      * rr/tests-dedup-test-config:
        t4018,7810,7811: remove test_config() redefinition
      5753e170
    • J
      Merge branch 'yd/doc-is-in-asciidoc' into maint · 432930bd
      Junio C Hamano 提交于
      * yd/doc-is-in-asciidoc:
        CodingGuidelines: our documents are in AsciiDoc
      432930bd
    • J
      Merge branch 'yd/doc-merge-annotated-tag' into maint · ab24e752
      Junio C Hamano 提交于
      * yd/doc-merge-annotated-tag:
        Documentation: merging a tag is a special case
      ab24e752
    • J
      Merge branch 'tb/document-status-u-tradeoff' into maint · fec274b0
      Junio C Hamano 提交于
      * tb/document-status-u-tradeoff:
        status: advise to consider use of -u when read_directory takes too long
        git status: document trade-offs in choosing parameters to the -u option
      fec274b0
    • J
      Merge branch 'da/downcase-u-in-usage' into maint · 41e603af
      Junio C Hamano 提交于
      * da/downcase-u-in-usage:
        contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
        contrib/examples/git-remote.perl: use a lowercase "usage:" string
        tests: use a lowercase "usage:" string
        git-svn: use a lowercase "usage:" string
        Documentation/user-manual.txt: use a lowercase "usage:" string
        templates/hooks--update.sample: use a lowercase "usage:" string
        contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
        contrib/examples: use a lowercase "usage:" string
        contrib/fast-import/import-zips.py: use spaces instead of tabs
        contrib/fast-import/import-zips.py: fix broken error message
        contrib/fast-import: use a lowercase "usage:" string
        contrib/credential: use a lowercase "usage:" string
        git-cvsimport: use a lowercase "usage:" string
        git-cvsimport: use a lowercase "usage:" string
        git-cvsexportcommit: use a lowercase "usage:" string
        git-archimport: use a lowercase "usage:" string
        git-merge-one-file: use a lowercase "usage:" string
        git-relink: use a lowercase "usage:" string
        git-svn: use a lowercase "usage:" string
        git-sh-setup: use a lowercase "usage:" string
      41e603af
    • J
      Merge branch 'nd/index-pack-threaded-fixes' · 1d066c58
      Junio C Hamano 提交于
      "index-pack --verify-stat" used a few counters outside protection
      of mutex, possibly showing incorrect numbers.
      
      * nd/index-pack-threaded-fixes:
        index-pack: guard nr_resolved_deltas reads by lock
        index-pack: protect deepest_delta in multithread code
      1d066c58
    • J
      Merge branch 'jk/index-pack-correct-depth-fix' · ed8852c2
      Junio C Hamano 提交于
      "index-pack --fix-thin" used uninitialize value to compute delta
      depths of objects it appends to the resulting pack.
      
      * jk/index-pack-correct-depth-fix:
        index-pack: always zero-initialize object_entry list
      ed8852c2
    • J
      Merge branch 'jn/push-tests' · ca54e43c
      Junio C Hamano 提交于
      Update t5516 with style fixes.
      
      * jn/push-tests:
        push test: rely on &&-chaining instead of 'if bad; then echo Oops; fi'
        push test: simplify check of push result
        push test: use test_config when appropriate
      ca54e43c
    • J
      Merge branch 'nd/branch-show-rebase-bisect-state' · afc2e812
      Junio C Hamano 提交于
      Add a bit more information to "git status" during a rebase/bisect
      session.
      
      * nd/branch-show-rebase-bisect-state:
        status, branch: fix the misleading "bisecting" message
        branch: show more information when HEAD is detached
        status: show more info than "currently not on any branch"
        wt-status: move wt_status_get_state() out to wt_status_print()
        wt-status: split wt_status_state parsing function out
        wt-status: move strbuf into read_and_strip_branch()
      afc2e812
    • J
      Merge branch 'jc/nobody-sets-src-peer-ref' · 6d37c162
      Junio C Hamano 提交于
      Dead code removal.
      
      * jc/nobody-sets-src-peer-ref:
        match_push_refs(): nobody sets src->peer_ref anymore
      6d37c162
    • J
      Merge branch 'jc/remove-export-from-config-mak-in' · b2fb3911
      Junio C Hamano 提交于
      Stop exporting mandir that used to be exported only when
      config.mak.autogen was used.  It would have broken installation of
      manpages (but not other documentation formats).
      
      * jc/remove-export-from-config-mak-in:
        Fix `make install` when configured with autoconf
        Makefile: do not export mandir/htmldir/infodir
        config.mak.in: remove unused definitions
      b2fb3911
  4. 01 4月, 2013 7 次提交
    • J
      Merge branch 'kb/name-hash' · c044bed8
      Junio C Hamano 提交于
      The code to keep track of what directory names are known to Git on
      platforms with case insensitive filesystems can get confused upon
      a hash collision between these pathnames and looped forever.
      
      * kb/name-hash:
        name-hash.c: fix endless loop with core.ignorecase=true
      c044bed8
    • J
      Merge branch 'jk/common-make-variables-export-safety' · e8189054
      Junio C Hamano 提交于
      Make the three variables safer to be exported to submakes by
      ensuring that they are full paths so that they can be used as
      installation location.
      
      * jk/common-make-variables-export-safety:
        Makefile: make mandir, htmldir and infodir absolute
      e8189054
    • J
      Merge branch 'jk/pkt-line-cleanup' · e013bdab
      Junio C Hamano 提交于
      Clean up pkt-line API, implementation and its callers to make them
      more robust.
      
      * jk/pkt-line-cleanup:
        do not use GIT_TRACE_PACKET=3 in tests
        remote-curl: always parse incoming refs
        remote-curl: move ref-parsing code up in file
        remote-curl: pass buffer straight to get_remote_heads
        teach get_remote_heads to read from a memory buffer
        pkt-line: share buffer/descriptor reading implementation
        pkt-line: provide a LARGE_PACKET_MAX static buffer
        pkt-line: move LARGE_PACKET_MAX definition from sideband
        pkt-line: teach packet_read_line to chomp newlines
        pkt-line: provide a generic reading function with options
        pkt-line: drop safe_write function
        pkt-line: move a misplaced comment
        write_or_die: raise SIGPIPE when we get EPIPE
        upload-archive: use argv_array to store client arguments
        upload-archive: do not copy repo name
        send-pack: prefer prefixcmp over memcmp in receive_status
        fetch-pack: fix out-of-bounds buffer offset in get_ack
        upload-pack: remove packet debugging harness
        upload-pack: do not add duplicate objects to shallow list
        upload-pack: use get_sha1_hex to parse "shallow" lines
      e013bdab
    • J
      Merge branch 'bc/append-signed-off-by' · 900c8ecb
      Junio C Hamano 提交于
      Consolidate codepaths that inspect log-message-to-be and decide to
      add a new Signed-off-by line in various commands.
      
      * bc/append-signed-off-by:
        git-commit: populate the edit buffer with 2 blank lines before s-o-b
        Unify appending signoff in format-patch, commit and sequencer
        format-patch: update append_signoff prototype
        t4014: more tests about appending s-o-b lines
        sequencer.c: teach append_signoff to avoid adding a duplicate newline
        sequencer.c: teach append_signoff how to detect duplicate s-o-b
        sequencer.c: always separate "(cherry picked from" from commit body
        sequencer.c: require a conforming footer to be preceded by a blank line
        sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
        t/t3511: add some tests of 'cherry-pick -s' functionality
        t/test-lib-functions.sh: allow to specify the tag name to test_commit
        commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
        sequencer.c: rework search for start of footer to improve clarity
      900c8ecb
    • J
      Merge branch 'sr/am-show-final-message-in-applying-indicator' · f161fb04
      Junio C Hamano 提交于
      In addition to the case where the user edits the log message with
      the "e)dit" option of "am -i", replace the "Applying: this patch"
      message with the final log message contents after applymsg hook
      munges it.
      
      * sr/am-show-final-message-in-applying-indicator:
        git-am: show the final log message on "Applying:" indicator
      f161fb04
    • J
      Merge branch 'rr/test-3200-style' · 0cb24fe8
      Junio C Hamano 提交于
      Churns.
      
      * rr/test-3200-style:
        t3200 (branch): modernize style
      0cb24fe8
    • J
      Merge branch 'maint' · a32a0c29
      Junio C Hamano 提交于
      * maint:
        cat-file: Fix an gcc -Wuninitialized warning
        fast-import: Fix an gcc -Wuninitialized warning
      a32a0c29
  5. 30 3月, 2013 3 次提交
    • R
      cat-file: Fix an gcc -Wuninitialized warning · 803a7779
      Ramsay Jones 提交于
      After commit cbfd5e1c ("drop some obsolete "x = x" compiler warning
      hacks", 21-03-2013) removed a gcc specific hack, older versions of
      gcc now issue an "'contents' might be used uninitialized" warning.
      In order to suppress the warning, we simply initialize the variable
      to NULL in it's declaration.
      Signed-off-by: NRamsay Jones <ramsay@ramsay1.demon.co.uk>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      803a7779
    • R
      fast-import: Fix an gcc -Wuninitialized warning · 0a34594c
      Ramsay Jones 提交于
      Commit cbfd5e1c ("drop some obsolete "x = x" compiler warning hacks",
      21-03-2013) removed a gcc hack that suppressed an "might be used
      uninitialized" warning issued by older versions of gcc.
      
      However, commit 3aa99df8 ('fast-import: clarify "inline" logic in
      file_change_m', 21-03-2013) addresses an (almost) identical issue
      (with very similar code), but includes additional code in it's
      resolution. The solution used by this commit, unlike that used by
      commit cbfd5e1c, also suppresses the -Wuninitialized warning on
      older versions of gcc.
      
      In order to suppress the warning (against the 'oe' symbol) in the
      note_change_n() function, we adopt the same solution used by commit
      3aa99df8.
      Signed-off-by: NRamsay Jones <ramsay@ramsay1.demon.co.uk>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0a34594c
    • J
      t1300: document some aesthetic failures of the config editor · 53ca053b
      Jeff King 提交于
      The config-editing code used by "git config var value" is
      built around the regular config callback parser, whose only
      triggerable item is an actual key. As a result, it does not
      know anything about section headers, which can result in
      unnecessarily ugly output:
      
        1. When we delete the last key in a section, we should be
           able to delete the section header.
      
        2. When we add a key into a section, we should be able to
           reuse the same section header, even if that section did
           not have any keys in it already.
      
      Unfortunately, fixing these is not trivial with the current
      code. It would involve the config parser recording and
      passing back information on each item it finds, including
      headers, keys, and even comments (or even better, generating
      an actual in-memory parse-tree).
      
      Since these behaviors do not cause any functional problems
      (i.e., the resulting config parses as expected, it is just
      uglier than one would like), fixing them can wait until
      somebody feels like substantially refactoring the parsing
      code. In the meantime, let's document them as known issues
      with some tests.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      53ca053b
  6. 29 3月, 2013 5 次提交
    • J
      t: check that a pattern without trailing slash matches a directory · efa5f825
      Jeff King 提交于
      Prior to v1.8.1.1, with:
      
        git init
        echo content >foo &&
        mkdir subdir &&
        echo content >subdir/bar &&
        echo "subdir export-ignore" >.gitattributes
        git add . &&
        git commit -m one &&
        git archive HEAD | tar tf -
      
      the resulting archive would contain only "foo" and ".gitattributes",
      not subdir.  This was broken with a recent change that intended to
      allow "subdir/ export-ignore" to also exclude the directory, but
      instead ended up _requiring_ the trailing slash by mistake.
      
      A pattern "subdir" should match any path "subdir", whether it is a
      directory or a non-directory.  A pattern "subdir/" insists that a
      path "subdir" must be a directory for it to match.
      
      This patch adds test not just for this simple case, but also for
      deeper cross-directory cases, as well as cases with wildcards.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      efa5f825
    • J
      dir.c::match_pathname(): pay attention to the length of string parameters · ab3aebc1
      Jeff King 提交于
      This function takes two counted strings: a <pattern, patternlen> pair
      and a <pathname, pathlen> pair. But we end up feeding the result to
      fnmatch, which expects NUL-terminated strings.
      
      We can fix this by calling the fnmatch_icase_mem function, which
      handles re-allocating into a NUL-terminated string if necessary.
      
      While we're at it, we can avoid even calling fnmatch in some cases. In
      addition to patternlen, we get "prefix", the size of the pattern that
      contains no wildcard characters. We do a straight match of the prefix
      part first, and then use fnmatch to cover the rest. But if there are
      no wildcards in the pattern at all, we do not even need to call
      fnmatch; we would simply be comparing two empty strings.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ab3aebc1
    • J
      dir.c::match_pathname(): adjust patternlen when shifting pattern · 982ac873
      Jeff King 提交于
      If we receive a pattern that starts with "/", we shift it
      forward to avoid looking at the "/" part. Since the prefix
      and patternlen parameters are counts of what is in the
      pattern, we must decrement them as we increment the pointer.
      
      We remembered to handle prefix, but not patternlen. This
      didn't cause any bugs, though, because the patternlen
      parameter is not actually used. Since it will be used in
      future patches, let's correct this oversight.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      982ac873
    • J
      dir.c::match_basename(): pay attention to the length of string parameters · 0b6e56df
      Junio C Hamano 提交于
      The function takes two counted strings (<basename, basenamelen> and
      <pattern, patternlen>) as parameters, together with prefix (the
      length of the prefix in pattern that is to be matched literally
      without globbing against the basename) and EXC_* flags that tells it
      how to match the pattern against the basename.
      
      However, it did not pay attention to the length of these counted
      strings.  Update them to do the following:
      
       * When the entire pattern is to be matched literally, the pattern
         matches the basename only when the lengths of them are the same,
         and they match up to that length.
      
       * When the pattern is "*" followed by a string to be matched
         literally, make sure that the basenamelen is equal or longer than
         the "literal" part of the pattern, and the tail of the basename
         string matches that literal part.
      
       * Otherwise, use the new fnmatch_icase_mem helper to make
         sure we only lookmake sure we use only look at the
         counted part of the strings.  Because these counted strings are
         full strings most of the time, we check for termination
         to avoid unnecessary allocation.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0b6e56df
    • J
      attr.c::path_matches(): special case paths that end with a slash · dc09e9ec
      Junio C Hamano 提交于
      The function is given a string that ends with a slash to signal that
      the path is a directory to make sure that a pattern that ends with a
      slash (i.e. MUSTBEDIR) can tell directories and non-directories
      apart.  However, the pattern itself (pat->pattern and
      pat->patternlen) that came from such a MUSTBEDIR pattern is
      represented as a string that ends with a slash, but patternlen does
      not count that trailing slash. A MUSTBEDIR pattern "element/" is
      represented as a counted string <"element/", 7> and this must match
      match pathname "element/".
      
      Because match_basename() and match_pathname() want to see pathname
      "element" to match against the pattern <"element/", 7>, reduce the
      length of the path to exclude the trailing slash when calling
      these functions.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      dc09e9ec