1. 19 Jul, 2013 1 commit
  2. 18 Jul, 2013 3 commits
  3. 17 Jul, 2013 3 commits
  4. 16 Jul, 2013 2 commits
  5. 15 Jul, 2013 7 commits
  6. 14 Jul, 2013 2 commits
  7. 13 Jul, 2013 5 commits
  8. 12 Jul, 2013 1 commit
  9. 11 Jul, 2013 5 commits
  10. 10 Jul, 2013 11 commits
    • Merge pull request #1685 from arrbee/submodule-status-fixes · bd679796
      Improve submodules status data caching and compatibility
      Vicent Martí committed
    • Untracked directories with .git should be ignored · 125655fe
      This restores a behavior that was accidentally lost during some
      diff refactoring where an untracked directory that contains a .git
      item should be treated as IGNORED, not as UNTRACKED.  The submodule
      code already detects this, but the diff code was not handling the
      scenario right.
      
      This also updates a number of existing tests that were actually
      exercising the behavior but did not have the right expectations in
      place.  It actually makes the new
      `test_diff_submodules__diff_ignore_options` test feel much better
      because the "not-a-submodule" entries are now ignored instead of
      showing up as untracked items.
      
      Fixes #1697
      Russell Belfer committed
    • Add ignore_submodules to diff options · f9775a37
      This adds correct support for an equivalent to --ignore-submodules
      in diff, where an actual ignore value can be passed to diff to
      override the per submodule settings in the configuration.
      
      This required tweaking the constants for ignore values so that
      zero would not be used and could represent an unset option to the
      diff.  This was an opportunity to move the submodule values into
      include/git2/types.h and to rename the poorly named DEFAULT values
      for ignore and update constants to RESET instead.
      
      Now the GIT_DIFF_IGNORE_SUBMODULES flag is exactly the same as
      setting the ignore_submodules option to GIT_SUBMODULE_IGNORE_ALL
      (which is actually a minor change from the old behavior in that
      submodules will now be treated as UNMODIFIED deltas instead of
      being left out totally - if you set GIT_DIFF_INCLUDE_UNMODIFIED).
      
      This includes tests for the various new settings.
      Russell Belfer committed
    • Update diff to new internal submodule status API · 2e3e273e
      Submodules now expose an internal status API that allows diff to
      get back the OID values from the submodule very easily and also
      to avoiding caching issues and to override the ignore setting for
      the submodule.
      Russell Belfer committed
    • Submodule status improvements · 1aad6137
      This fixes the way that submodule status is checked to bypass just
      about all of the caching in the submodule object.  Based on the
      ignore value, it will try to do the minimum work necessary to find
      the current status of the submodule - but it will actually go to
      disk to get all of the current values.
      
      This also removes the custom refcounting stuff in favor of the
      common git_refcount style.  Right now, it is still for internal
      purposes only, but it should make it easier to add true submodule
      refcounting in the future with a public git_submodule_free call
      that will allow bindings not to worry about the submodule object
      getting freed from underneath them.
      Russell Belfer committed
    • Add BARE option to git_repository_open_ext · 3fe046cf
      This adds a BARE option to git_repository_open_ext which allows
      a fast open path that still knows how to read gitlinks and to
      search for the actual .git directory from a subdirectory.
      
      `git_repository_open_bare` is still simpler and faster, but having
      a gitlink aware fast open is very useful for submodules where we
      want to quickly be able to peek at the HEAD and index data without
      doing any other meaningful repo operations.
      Russell Belfer committed
    • Add timestamp check to submodule status · e807860f
      This is probably not the final form of this change, but this is
      a preliminary version of checking a timestamp to see if the cached
      working directory HEAD OID matches the current.  Right now, this
      uses the timestamp on the index and is, like most of our timestamp
      checking, subject to having only second accuracy.
      Russell Belfer committed