1. 11 9月, 2012 9 次提交
    • J
      Merge branch 'maint-1.7.11' into maint · e3f26752
      Junio C Hamano 提交于
      * maint-1.7.11:
        Almost 1.7.11.6
        gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO
        rebase -i: use full onto sha1 in reflog
        sh-setup: protect from exported IFS
        receive-pack: do not leak output from auto-gc to standard output
        t/t5400: demonstrate breakage caused by informational message from prune
        setup: clarify error messages for file/revisions ambiguity
        send-email: improve RFC2047 quote parsing
        fsck: detect null sha1 in tree entries
        do not write null sha1s to on-disk index
        diff: do not use null sha1 as a sentinel value
      e3f26752
    • J
      Almost 1.7.11.6 · 9a8eea96
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9a8eea96
    • J
      Merge branch 'mg/rebase-i-onto-reflog-in-full' into maint-1.7.11 · 73eb89e7
      Junio C Hamano 提交于
      The reflog entries left by "git rebase" and "git rebase -i" were
      inconsistent (the interactive one gave an abbreviated object name).
      
      * mg/rebase-i-onto-reflog-in-full:
        rebase -i: use full onto sha1 in reflog
      73eb89e7
    • J
      Merge branch 'jc/maint-protect-sh-from-ifs' into maint-1.7.11 · 7cc51cfe
      Junio C Hamano 提交于
      When the user exports a non-default IFS without HT, scripts that
      rely on being able to parse "ls-files -s | while read a b c..."
      start to fail.  Protect them from such a misconfiguration.
      
      * jc/maint-protect-sh-from-ifs:
        sh-setup: protect from exported IFS
      7cc51cfe
    • J
      Merge branch 'bc/receive-pack-stdout-protection' into maint-1.7.11 · 3f664638
      Junio C Hamano 提交于
      When "git push" triggered the automatic gc on the receiving end, a
      message from "git prune" that said it was removing cruft leaked to
      the standard output, breaking the communication protocol.
      
      * bc/receive-pack-stdout-protection:
        receive-pack: do not leak output from auto-gc to standard output
        t/t5400: demonstrate breakage caused by informational message from prune
      3f664638
    • J
      Merge branch 'jk/maint-null-in-trees' into maint-1.7.11 · 03adeeaa
      Junio C Hamano 提交于
      "git diff" had a confusion between taking data from a path in the
      working tree and taking data from an object that happens to have
      name 0{40} recorded in a tree.
      
      * jk/maint-null-in-trees:
        fsck: detect null sha1 in tree entries
        do not write null sha1s to on-disk index
        diff: do not use null sha1 as a sentinel value
      03adeeaa
    • J
      Merge branch 'tr/maint-send-email-2047' into maint-1.7.11 · 423a9e28
      Junio C Hamano 提交于
      "git send-email" did not unquote encoded words that appear on the
      header correctly, and lost "_" from strings.
      
      * tr/maint-send-email-2047:
        send-email: improve RFC2047 quote parsing
      423a9e28
    • J
      Merge branch 'mm/die-with-dashdash-help' into maint-1.7.11 · 5f9d8e35
      Junio C Hamano 提交于
      When the user gives an argument that can be taken as both a
      revision name and a pathname without disambiguating with "--", we
      used to give a help message "Use '--' to separate".  The message
      has been clarified to show where that '--' goes on the command
      line.
      
      * mm/die-with-dashdash-help:
        setup: clarify error messages for file/revisions ambiguity
      5f9d8e35
    • J
      Merge branch 'js/gitweb-path-info-unquote' into maint-1.7.11 · 3d4003bd
      Junio C Hamano 提交于
      "gitweb" when used with PATH_INFO failed to notice directories with
      SP (and other characters that need URL-style quoting) in them.
      
      * js/gitweb-path-info-unquote:
        gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO
      3d4003bd
  2. 25 8月, 2012 11 次提交
  3. 24 8月, 2012 2 次提交
  4. 23 8月, 2012 2 次提交
  5. 20 8月, 2012 1 次提交
  6. 18 8月, 2012 2 次提交
  7. 17 8月, 2012 3 次提交
  8. 16 8月, 2012 9 次提交
  9. 11 8月, 2012 1 次提交
    • P
      git svn: reset invalidates the memoized mergeinfo caches · 61b472ed
      Peter Baumann 提交于
      Since v1.7.0-rc2~11 (git-svn: persistent memoization, 2010-01-30),
      git-svn has maintained some private per-repository caches in
      .git/svn/.caches to avoid refetching and recalculating some
      mergeinfo-related information with every 'git svn fetch'.
      
      This memoization can cause problems, e.g consider the following case:
      
      SVN repo:
      
        ... - a - b - c - m  <- trunk
                \        /
                  d  -  e    <- branch1
      
      The Git import of the above repo is at commit 'a' and doesn't know about
      the branch1. In case of an 'git svn rebase', only the trunk of the
      SVN repo is imported. During the creation of the git commit 'm', git svn
      uses the svn:mergeinfo property and tries to find the corresponding git
      commit 'e' to create 'm' with 'c' and 'e' as parents. But git svn rebase
      only imports the current branch so commit 'e' is not imported.
      Therefore git svn fails to create commit 'm' as a merge commit, because one
      of its parents is not known to git. The imported history looks like this:
      
        ... - a - b - c - m  <- trunk
      
      A later 'git svn fetch' to import all branches can't rewrite the commit 'm'
      to add 'e' as a parent and to make it a real git merge commit, because it
      was already imported.
      
      That's why the imported history misses the merge and looks like this:
      
        ... - a - b - c - m  <- trunk
                \
                  d  -  e    <- branch1
      
      Right now the only known workaround for importing 'm' as a merge is to
      force reimporting 'm' again from SVN, e.g. via
      
        $ git svn reset --revision $(git find-rev $c)
        $ git svn fetch
      
      Sadly, this is where the behavior has regressed: git svn reset doesn't
      invalidate the old mergeinfo cache, which is no longer valid for the
      reimport, which leads to 'm' beeing imprted with only 'c' as parent.
      
      As solution to this problem, this commit invalidates the mergeinfo cache
      to force correct recalculation of the parents.
      
      During development of this patch, several ways for invalidating the cache
      where considered. One of them is to use Memoize::flush_cache, which will
      call the CLEAR method on the underlying Memoize persistency implementation.
      Sadly, neither Memoize::Storable nor the newer Memoize::YAML module
      introduced in 68f532f4 could optionally be used implement the
      CLEAR method, so this is not an option.
      
      Reseting the internal hash used to store the memoized values has the same
      problem, because it calls the non-existing CLEAR method of the
      underlying persistency layer, too.
      
      Considering this and taking into account the different implementations
      of the memoization modules, where Memoize::Storable is not in our control,
      implementing the missing CLEAR method is not an option, at least not if
      Memoize::Storable is still used.
      
      Therefore the easiest solution to clear the cache is to delete the files
      on disk in 'git svn reset'. Normally, deleting the files behind the back
      of the memoization module would be problematic, because the in-memory
      representation would still exist and contain wrong data. Fortunately, the
      memoization is active in memory only for a small portion of the code.
      Invalidating the cache by deleting the files on disk if it isn't active
      should be safe.
      Signed-off-by: NPeter Baumann <waste.manager@gmx.de>
      Signed-off-by: NSteven Walter <stevenrwalter@gmail.com>
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      61b472ed