1. 09 1月, 2007 13 次提交
  2. 08 1月, 2007 11 次提交
  3. 07 1月, 2007 16 次提交
    • J
      Merge branch 'sp/mmap' · cf2999eb
      Junio C Hamano 提交于
      * sp/mmap: (27 commits)
        Spell default packedgitlimit slightly differently
        Increase packedGit{Limit,WindowSize} on 64 bit systems.
        Update packedGit config option documentation.
        mmap: set FD_CLOEXEC for file descriptors we keep open for mmap()
        pack-objects: fix use of use_pack().
        Fix random segfaults in pack-objects.
        Cleanup read_cache_from error handling.
        Replace mmap with xmmap, better handling MAP_FAILED.
        Release pack windows before reporting out of memory.
        Default core.packdGitWindowSize to 1 MiB if NO_MMAP.
        Test suite for sliding window mmap implementation.
        Create pack_report() as a debugging aid.
        Support unmapping windows on 'temporary' packfiles.
        Improve error message when packfile mmap fails.
        Ensure core.packedGitWindowSize cannot be less than 2 pages.
        Load core configuration in git-verify-pack.
        Fully activate the sliding window pack access.
        Unmap individual windows rather than entire files.
        Document why header parsing won't exceed a window.
        Loop over pack_windows when inflating/accessing data.
        ...
      
      Conflicts:
      
      	cache.h
      	pack-check.c
      cf2999eb
    • J
      Spell default packedgitlimit slightly differently · ecaebf4a
      Junio C Hamano 提交于
      This is shorter and easier to read, and also makes sure the
      constant expression does not overflow integer range.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ecaebf4a
    • J
      Merge branch 'jr/status' · e7bb17a4
      Junio C Hamano 提交于
      * jr/status:
        Improve cached content header of status output
        Support --amend on initial commit in status output
        Improve "nothing to commit" part of status output
        Clarify syntax and role of git-add in status output
      e7bb17a4
    • J
      Merge branch 'jc/remote' · 8f905eb1
      Junio C Hamano 提交于
      * jc/remote:
        git-remote
      8f905eb1
    • J
      git-reset <tree> -- <path> restores absense of <path> in <tree> · bc8c0294
      Junio C Hamano 提交于
      When <path> exists in the index (either merged or unmerged), and
      <tree> does not have it, git-reset should be usable to restore
      the absense of it from the tree.  This implements it.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      bc8c0294
    • J
      diff-index --cached --raw: show tree entry on the LHS for unmerged entries. · e9c84099
      Junio C Hamano 提交于
      This updates the way diffcore represents an unmerged pair
      somewhat.  It used to be that entries with mode=0 on both sides
      were used to represent an unmerged pair, but now it has an
      explicit flag.  This is to allow diff-index --cached to report
      the entry from the tree when the path is unmerged in the index.
      
      This is used in updating "git reset <tree> -- <path>" to restore
      absense of the path in the index from the tree.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      e9c84099
    • J
      reflog --fix-stale: do not check the same trees and commits repeatedly. · cd1f9c36
      Junio C Hamano 提交于
      Since we use the reachability tracking machinery now, we should
      keep the already checked trees and commits whose completeness is
      known, to avoid checking the same thing over and over again.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      cd1f9c36
    • J
      reflog expire --fix-stale · 1389d9dd
      Junio C Hamano 提交于
      The logic in an earlier round to detect reflog entries that
      point at a broken commit was not sufficient.  Just like we do
      not trust presense of a commit during pack transfer (we trust
      only our refs), we should not trust a commit's presense, even if
      the tree of that commit is complete.
      
      A repository that had reflog enabled on some of the refs that
      was rewound and then run git-repack or git-prune from older
      versions of git can have reflog entries that point at a commit
      that still exist but lack commits (or trees and blobs needed for
      that commit) between it and some commit that is reachable from
      one of the refs.
      
      This revamps the logic -- the definition of "broken commit"
      becomes: a commit that is not reachable from any of the refs and
      there is a missing object among the commit, tree, or blob
      objects reachable from it that is not reachable from any of the
      refs.  Entries in the reflog that refer to such a commit are
      expired.
      
      Since this computation involves traversing all the reachable
      objects, i.e. it has the same cost as 'git prune', it is enabled
      only when a new option --fix-stale.  Fortunately, once this is
      run, we should not have to ever worry about missing objects,
      because the current prune and pack-objects know about reflogs
      and protect objects referred by them.
      
      Unfortunately, this will be absolutely necessary to help people
      migrate to the newer prune and repack.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      1389d9dd
    • J
      Move traversal of reachable objects into a separate library. · 94421474
      Junio C Hamano 提交于
      This moves major part of builtin-prune into a separate file,
      reachable.c.  It is used to mark the objects that are reachable
      from refs, and optionally from reflogs.
      
      The patch looks very large, but if you look at it with diff -C,
      which this message is formatted in, most of them are copied
      lines and there are very little additions.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      94421474
    • J
      builtin-prune: separate ref walking from reflog walking. · ca4f293f
      Junio C Hamano 提交于
      This is necessary for the next step, because the reason I am
      making the connectivity walker into a library is because I want
      to use it for cleaning up stale reflog entries.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ca4f293f
    • J
      builtin-prune: make file-scope static struct to an argument. · 24304816
      Junio C Hamano 提交于
      I want to make the first part of 'git prune' that marks the
      reachable objects callable as a library, so this starts the
      first step toward the goal by making the callchain to pass
      rev_info structure as an argument.
      
      No functionality change should be in this step.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      24304816
    • J
      gitweb: Fix split patches output (e.g. file to symlink) · 13e86efb
      Jakub Narebski 提交于
      Do not replace /dev/null in two-line from-file/to-file diff header for
      split patches ("split" patch mean more than one patch per one
      diff-tree raw line) by a/file or b/file link.
      
      Split patches differ from pair of deletion/creation patch in git diff
      header: both a/file and b/file are hyperlinks, in all patches in a
      split.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      13e86efb
    • J
      Revert "gitweb: There can be empty patches (in git_patchset_body)" · ac8b0cd1
      Jakub Narebski 提交于
      This reverts commit 1ebb948f,
      as that patch quieted warning but was not proper solution.
      The previous commit was.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ac8b0cd1
    • J
      gitweb: Fix errors in git_patchset_body for empty patches · 66399eff
      Jakub Narebski 提交于
      We now do not skip over empty patches in git_patchset_body (where
      empty means that they consist only of git diff header, and of extended
      diff header, for example "pure rename" patch).  This means that after
      extended diff header there can be next patch (i.e. /^diff /) or end of
      patchset, and not necessary patch body (i.e. /^--- /).
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      66399eff
    • J
      gitweb: Fix error in "rename to"/"copy to" git diff header output · 2e1951f6
      Jakub Narebski 提交于
      Fix error in git_patchset_body subroutine, which caused "rename to"/"copy
      to" line in extended diff header to be displayed incorrectly.
      
      While at it, fix align.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      2e1951f6
    • J
      gitweb: Fix error in git_patchest_body for file creation/deletion patch · 62e4f26f
      Jakub Narebski 提交于
      $from_id, $to_id variables should be local per PATCH.
      
      Fix error in git_patchset_body for file creation (deletion) patches,
      where instead of /dev/null as from-file (to-file) diff header line, it
      had link to previous file with current file name.  This error occured
      only if there was another patch before file creation (deletion) patch.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      62e4f26f