1. 14 Dec, 2012 2 commits
  2. 01 Dec, 2012 2 commits
  3. 27 Nov, 2012 3 commits
  4. 09 Nov, 2012 1 commit
    • Extensions to rmdir and mkdir utilities · 331e7de9
      * Rework GIT_DIRREMOVAL values to GIT_RMDIR flags, allowing
        combinations of flags
      * Add GIT_RMDIR_EMPTY_PARENTS flag to remove parent dirs that
        are left empty after removal
      * Add GIT_MKDIR_VERIFY_DIR to give an error if item is a file,
        not a dir (previously an EEXISTS error was ignored, even for
        files) and enable this flag for git_futils_mkpath2file call
      * Improve accuracy of error messages from git_futils_mkdir
      Russell Belfer committed
  5. 01 Nov, 2012 1 commit
  6. 30 Oct, 2012 1 commit
    • Add git_config_refresh() API to reload config · 744cc03e
      This adds a new API that allows users to reload the config if the
      file has changed on disk.  A new config callback function to
      refresh the config was added.
      
      The modified time and file size are used to test if the file needs
      to be reloaded (and are now stored in the disk backend object).
      
      In writing tests, just using mtime was a problem / race, so I
      wanted to check file size as well.  To support that, I extended
      `git_futils_readbuffer_updated` to optionally check file size in
      addition to mtime, and I added a new function `git_filebuf_stats`
      to fetch the mtime and size for an open filebuf (so that the
      config could be easily refreshed after a write).
      
      Lastly, I moved some similar file checking code for attributes
      into filebuf.  It is still only being used for attrs, but it
      seems potentially reusable, so I thought I'd move it over.
      Russell Belfer committed
  7. 15 Oct, 2012 2 commits
    • Fix leak in the tests · 7ae5ab56
      Also introduce the slective ref trimming promised but also missed in
      the previous commit.
      Carlos Martín Nieto committed
    • refs: loosen the OID parsing · 47f44b6e
      We used to require loose references to contain only an OID (possibly
      after trimming the string). This is however not enough for letting us
      lookup FETCH_HEAD, which can have a lot of content after the initial
      OID.
      
      Change the parsing rules so that a loose refernce must e at least 40
      bytes long and the 41st (if it's there) must be accepted by
      isspace(3). This makes the trim unnecessary, so only do it for
      symrefs. This fixes #977.
      Carlos Martín Nieto committed
  8. 11 Oct, 2012 1 commit
  9. 09 Oct, 2012 1 commit
    • Add complex checkout test and then fix checkout · 0d64bef9
      This started as a complex new test for checkout going through the
      "typechanges" test repository, but that revealed numerous issues
      with checkout, including:
      
      * complete failure with submodules
      * failure to create blobs with exec bits
      * problems when replacing a tree with a blob because the tree
        "example/" sorts after the blob "example" so the delete was
        being processed after the single file blob was created
      
      This fixes most of those problems and includes a number of other
      minor changes that made it easier to do that, including improving
      the TYPECHANGE support in diff/status, etc.
      Russell Belfer committed
  10. 07 Oct, 2012 3 commits
  11. 01 Oct, 2012 1 commit
  12. 30 Sep, 2012 1 commit
  13. 25 Sep, 2012 3 commits
  14. 14 Sep, 2012 1 commit
  15. 06 Sep, 2012 1 commit
  16. 05 Sep, 2012 1 commit
    • Diff iterators · f335ecd6
      This refactors the diff output code so that an iterator object
      can be used to traverse and generate the diffs, instead of just
      the `foreach()` style with callbacks.  The code has been rearranged
      so that the two styles can still share most functions.
      
      This also replaces `GIT_REVWALKOVER` with `GIT_ITEROVER` and uses
      that as a common error code for marking the end of iteration when
      using a iterator style of object.
      Russell Belfer committed
  17. 28 Aug, 2012 1 commit
  18. 27 Aug, 2012 2 commits
  19. 09 Aug, 2012 5 commits
  20. 04 Aug, 2012 1 commit
    • Update iterators for consistency across library · 5dca2010
      This updates all the `foreach()` type functions across the library
      that take callbacks from the user to have a consistent behavior.
      The rules are:
      
      * A callback terminates the loop by returning any non-zero value
      * Once the callback returns non-zero, it will not be called again
        (i.e. the loop stops all iteration regardless of state)
      * If the callback returns non-zero, the parent fn returns GIT_EUSER
      * Although the parent returns GIT_EUSER, no error will be set in
        the library and `giterr_last()` will return NULL if called.
      
      This commit makes those changes across the library and adds tests
      for most of the iteration APIs to make sure that they follow the
      above rules.
      Russell Belfer committed
  21. 24 Jul, 2012 2 commits
  22. 12 Jul, 2012 1 commit
  23. 11 Jul, 2012 1 commit
  24. 07 Jul, 2012 2 commits