1. 15 1月, 2007 1 次提交
    • S
      Allow the user to control the verbosity of merge-recursive. · 8c3275ab
      Shawn O. Pearce 提交于
      Junio C Hamano <junkio@cox.net> writes:
      >
      > I think the output from merge-recursive can be categorized into 5
      > verbosity levels:
      >
      > 1. "CONFLICT", "Rename", "Adding here instead due to D/F conflict"
      > (outermost)
      >
      > 2. "Auto-merged successfully" (outermost)
      >
      > 3. The first "Merging X with Y".
      >
      > 4. outermost "Merging:\ntitle1\ntitle2".
      >
      > 5. outermost "found N common ancestors\nancestor1\nancestor2\n..."
      > and anything from inner merge.
      >
      > I would prefer the default verbosity level to be 2 (that is, show
      > both 1 and 2).
      
      and this change makes it so.  I think level 3 is probably pointless
      as its only one line of output above level 2, but I can see how some
      users may want to view it but not view the slightly more verbose
      output of level 4.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      8c3275ab
  2. 13 1月, 2007 1 次提交
  3. 07 1月, 2007 1 次提交
  4. 04 1月, 2007 1 次提交
  5. 31 12月, 2006 2 次提交
  6. 30 12月, 2006 2 次提交
    • S
      Fully activate the sliding window pack access. · 60bb8b14
      Shawn O. Pearce 提交于
      This finally turns on the sliding window behavior for packfile data
      access by mapping limited size windows and chaining them under the
      packed_git->windows list.
      
      We consider a given byte offset to be within the window only if there
      would be at least 20 bytes (one hash worth of data) accessible after
      the requested offset.  This range selection relates to the contract
      that use_pack() makes with its callers, allowing them to access
      one hash or one object header without needing to call use_pack()
      for every byte of data obtained.
      
      In the worst case scenario we will map the same page of data twice
      into memory: once at the end of one window and once again at the
      start of the next window.  This duplicate page mapping will happen
      only when an object header or a delta base reference is spanned
      over the end of a window and is always limited to just one page of
      duplication, as no sane operating system will ever have a page size
      smaller than a hash.
      
      I am assuming that the possible wasted page of virtual address
      space is going to perform faster than the alternatives, which
      would be to copy the object header or ref delta into a temporary
      buffer prior to parsing, or to check the window range on every byte
      during header parsing.  We may decide to revisit this decision in
      the future since this is just a gut instinct decision and has not
      actually been proven out by experimental testing.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      60bb8b14
    • S
      Introduce new config option for mmap limit. · 77ccc5bb
      Shawn O. Pearce 提交于
      Rather than hardcoding the maximum number of bytes which can be
      mmapped from pack files we should make this value configurable,
      allowing the end user to increase or decrease this limit on a
      per-repository basis depending on the size of the repository
      and the capabilities of their operating system.
      
      In general users should not need to manually tune such a low-level
      setting within the core code, but being able to artifically limit
      the number of bytes which we can mmap at once from pack files will
      make it easier to craft test cases for the new mmap sliding window
      implementation.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      77ccc5bb
  7. 28 12月, 2006 1 次提交
    • J
      UTF-8: introduce i18n.logoutputencoding. · d2c11a38
      Junio C Hamano 提交于
      It is plausible for somebody to want to view the commit log in a
      different encoding from i18n.commitencoding -- the project's
      policy may be UTF-8 and the user may be using a commit message
      hook to run iconv to conform to that policy (and either not have
      i18n.commitencoding to default to UTF-8 or have it explicitly
      set to UTF-8).  Even then, Latin-1 may be more convenient for
      the usual pager and the terminal the user uses.
      
      The new variable i18n.logoutputencoding is used in preference to
      i18n.commitencoding to decide what encoding to recode the log
      output in when git-log and friends formats the commit log message.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      d2c11a38
  8. 27 12月, 2006 2 次提交
  9. 19 12月, 2006 1 次提交
  10. 16 12月, 2006 2 次提交
    • S
      Align section headers of 'git status' to new 'git add'. · 82dca848
      Shawn O. Pearce 提交于
      Now that 'git add' is considered a first-class UI for 'update-index'
      and that the 'git add' documentation states "Even modified files
      must be added to the set of changes about to be committed" we should
      make the output of 'git status' align with that documentation and
      common usage.
      
      So now we see a status output such as:
      
        # Added but not yet committed:
        #   (will commit)
        #
        #       new file: x
        #
        # Changed but not added:
        #   (use "git add file1 file2" to include for commit)
        #
        #       modified:   x
        #
        # Untracked files:
        #   (use "git add" on files to include for commit)
        #
        #       y
      
      which just reads better in the context of using 'git add' to
      manipulate a commit (and not a checkin, whatever the heck that is).
      
      We also now support 'color.status.added' as an alias for the existing
      'color.status.updated', as this alias more closely aligns with the
      current output and documentation.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      82dca848
    • S
      Enable reflogs by default in any repository with a working directory. · 0bee5918
      Shawn O. Pearce 提交于
      New and experienced Git users alike are finding out too late that
      they forgot to enable reflogs in the current repository, and cannot
      use the information stored within it to recover from an incorrectly
      entered command such as `git reset --hard HEAD^^^` when they really
      meant HEAD^^ (aka HEAD~2).
      
      So enable reflogs by default in all future versions of Git, unless
      the user specifically disables it with:
      
        [core]
          logAllRefUpdates = false
      
      in their .git/config or ~/.gitconfig.
      
      We only enable reflogs in repositories that have a working directory
      associated with them, as shared/bare repositories do not have
      an easy means to prune away old log entries, or may fail logging
      entirely if the user's gecos information is not valid during a push.
      This heuristic was suggested on the mailing list by Junio.
      
      Documentation was also updated to indicate the new default behavior.
      We probably should start to teach usuing the reflog to recover
      from mistakes in some of the tutorial material, as new users are
      likely to make a few along the way and will feel better knowing
      they can recover from them quickly and easily, without fsck-objects'
      lost+found features.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      0bee5918
  11. 14 12月, 2006 1 次提交
  12. 13 12月, 2006 1 次提交
    • A
      Allow subcommand.color and color.subcommand color configuration · a159ca0c
      Andy Parkins 提交于
      While adding colour to the branch command it was pointed out that a
      config option like "branch.color" conflicts with the pre-existing
      "branch.something" namespace used for specifying default merge urls and
      branches.  The suggested solution was to flip the order of the
      components to "color.branch", which I did for colourising branch.
      
      This patch does the same thing for
        - git-log (color.diff)
        - git-status (color.status)
        - git-diff (color.diff)
        - pager (color.pager)
      
      I haven't removed the old config options; but they should probably be
      deprecated and eventually removed to prevent future namespace
      collisions.  I've done this deprecation by changing the documentation
      for the config file to match the new names; and adding the "color.XXX"
      options to contrib/completion/git-completion.bash.
      
      Unfortunately git-svn reads "diff.color" and "pager.color"; which I
      don't like to change unilaterally.
      Signed-off-by: NAndy Parkins <andyparkins@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      a159ca0c
  13. 09 12月, 2006 1 次提交
  14. 24 11月, 2006 1 次提交
  15. 03 11月, 2006 1 次提交
    • S
      Teach receive-pack how to keep pack files based on object count. · fc04c412
      Shawn Pearce 提交于
      Since keeping a pushed pack or exploding it into loose objects
      should be a local repository decision this teaches receive-pack
      to decide if it should call unpack-objects or index-pack --stdin
      --fix-thin based on the setting of receive.unpackLimit and the
      number of objects contained in the received pack.
      
      If the number of objects (hdr_entries) in the received pack is
      below the value of receive.unpackLimit (which is 5000 by default)
      then we unpack-objects as we have in the past.
      
      If the hdr_entries >= receive.unpackLimit then we call index-pack and
      ask it to include our pid and hostname in the .keep file to make it
      easier to identify why a given pack has been kept in the repository.
      
      Currently this leaves every received pack as a kept pack.  We really
      don't want that as received packs will tend to be small.  Instead we
      want to delete the .keep file automatically after all refs have
      been updated.  That is being left as room for future improvement.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      fc04c412
  16. 24 10月, 2006 1 次提交
  17. 14 10月, 2006 1 次提交
    • J
      git-repack: repo.usedeltabaseoffset · b6945f57
      Junio C Hamano 提交于
      When configuration variable `repack.UseDeltaBaseOffset` is set
      for the repository, the command passes `--delta-base-offset`
      option to `git-pack-objects`; this typically results in slightly
      smaller packs, but the generated packs are incompatible with
      versions of git older than (and including) v1.4.3.
      
      We will make it default to true sometime in the future, but not
      for a while.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      b6945f57
  18. 08 10月, 2006 1 次提交
  19. 29 9月, 2006 1 次提交
  20. 24 9月, 2006 2 次提交
  21. 21 9月, 2006 1 次提交
  22. 13 9月, 2006 1 次提交
  23. 09 8月, 2006 1 次提交
  24. 03 8月, 2006 1 次提交
  25. 01 8月, 2006 1 次提交
  26. 24 7月, 2006 2 次提交
  27. 14 7月, 2006 1 次提交
    • L
      sha1_file: add the ability to parse objects in "pack file format" · 93821bd9
      Linus Torvalds 提交于
      The pack-file format is slightly different from the traditional git
      object format, in that it has a much denser binary header encoding.
      The traditional format uses an ASCII string with type and length
      information, which is somewhat wasteful.
      
      A new object format starts with uncompressed binary header
      followed by compressed payload -- this will allow us later to
      copy the payload straight to packfiles.
      
      Obviously they cannot be read by older versions of git, so for
      now new object files are created with the traditional format.
      core.legacyheaders configuration item, when set to false makes
      the code write in new format for people to experiment with.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      93821bd9
  28. 08 7月, 2006 2 次提交
  29. 07 7月, 2006 1 次提交
  30. 04 7月, 2006 1 次提交
    • J
      Make zlib compression level configurable, and change default. · 12f6c308
      Joachim B Haga 提交于
      With the change in default, "git add ." on kernel dir is about
      twice as fast as before, with only minimal (0.5%) change in
      object size. The speed difference is even more noticeable
      when committing large files, which is now up to 8 times faster.
      
      The configurability is through setting core.compression = [-1..9]
      which maps to the zlib constants; -1 is the default, 0 is no
      compression, and 1..9 are various speed/size tradeoffs, 9
      being slowest.
      
      Signed-off-by: Joachim B Haga (cjhaga@fys.uio.no)
      Acked-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      12f6c308
  31. 08 6月, 2006 3 次提交