1. 28 Mar, 2012 1 commit
    • Added submodule API and use in status · bfc9ca59
      When processing status for a newly checked out repo, it is
      possible that there will be submodules that have not yet been
      initialized.  The only way to distinguish these from untracked
      directories is to have some knowledge of submodules.  This
      commit adds a new submodule API which, given a name or path,
      can determine if it appears to be a submodule and can give
      information about the submodule.
      Russell Belfer committed
  2. 26 Mar, 2012 3 commits
  3. 23 Mar, 2012 2 commits
    • Restore default status recursion behavior · c8838ee9
      This gives `git_status_foreach()` back its old behavior of
      emulating the "--untracked=all" behavior of git.  You can
      get any of the various --untracked options by passing flags
      to `git_status_foreach_ext()` but the basic version will
      keep the behavior it has always had.
      Russell Belfer committed
    • Fix crash in new status and add recurse option · 4b136a94
      This fixes the bug that @nulltoken found (thank you!) where
      if there were untracked directories alphabetically after the
      last tracked item, the diff implementation would deref a NULL
      pointer.
      
      The fix involved the code which decides if it is necessary
      to recurse into a directory in the working dir, so it was
      easy to add a new option `GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS`
      to control if the contents of untracked directories should be
      included in status.
      Russell Belfer committed
  4. 22 Mar, 2012 4 commits
    • Migrate remaining status tests to Clar · 98c4613e
      This finishes up the migration of remaining tests from
      tests/t18-status.c over the tests-clar/status/worktree.c.
      Russell Belfer committed
    • More status testing · a56aacf4
      This "fixes" the broken t18 status tests to accurately reflect
      the new behavior for "created" untracked subdirectories.  See
      discussion in the PR for more details.
      
      This also contains the submodules unit test that I forgot to
      git add, and ports most of the t18-status.c tests to clar (still
      missing a couple of the git_status_file() single file tests).
      Russell Belfer committed
    • New status fixes · 66142ae0
      This adds support for roughly-right tracking of submodules
      (although it does not recurse into submodules to detect
      internal modifications a la core git), and it adds support
      for including unmodified files in diff iteration if requested.
      Russell Belfer committed
    • Adding new tests for new status command · 95340398
      This is a work in progress.  This adds two new sets of tests,
      the issue_592 tests from @nulltoken's pull request #601 and
      some new tests for submodules.  The submodule tests still have
      issues where the status is not reported correctly.  That needs
      to be fixed before merge.
      Russell Belfer committed
  5. 21 Mar, 2012 2 commits
  6. 20 Mar, 2012 1 commit
  7. 19 Mar, 2012 2 commits
    • Migrate index, oid, and utils to new errors · 7c7ff7d1
      This includes a few cleanups that came up while converting
      these files.
      
      This commit introduces a could new git error classes, including
      the catchall class: GITERR_INVALID which I'm using as the class
      for invalid and out of range values which are detected at too low
      a level of library to use a higher level classification.  For
      example, an overflow error in parsing an integer or a bad letter
      in parsing an OID string would generate an error in this class.
      Russell Belfer committed
    • Update to latest clar · fd771427
      Russell Belfer committed
  8. 16 Mar, 2012 3 commits
  9. 15 Mar, 2012 2 commits
  10. 14 Mar, 2012 1 commit
    • Convert attr and other files to new errors · ab43ad2f
      This continues to add other files to the new error handling
      style.  I think the only real concerns here are that there are
      a couple of error return cases that I have converted to asserts,
      but I think that it was the correct thing to do given the new
      error style.
      Russell Belfer committed
  11. 13 Mar, 2012 3 commits
    • Resolve comments from pull request · e3c47510
      This converts the map validation function into a macro, tweaks
      the GITERR_OS system error automatic appending, and adds a
      tentative new error access API and some quick unit tests for
      both the old and new error APIs.
      Russell Belfer committed
    • Add map.c with shared p_mmap param validation · 1736799d
      Forgot to add this file in the previous commit
      Russell Belfer committed
    • Migrate ODB files to new error handling · e1de726c
      This migrates odb.c, odb_loose.c, odb_pack.c and pack.c to
      the new style of error handling.  Also got the unix and win32
      versions of map.c.  There are some minor changes to other
      files but no others were completely converted.
      
      This also contains an update to filebuf so that a zeroed out
      filebuf will not think that the fd (== 0) is actually open
      (and inadvertently call close() on fd 0 if cleaned up).
      
      Lastly, this was built and tested on win32 and contains a
      bunch of fixes for the win32 build which was pretty broken.
      Russell Belfer committed
  12. 09 Mar, 2012 1 commit
    • error-handling: On-disk config file backend · dda708e7
      Includes:
      
      	- Proper error reporting when encountering syntax errors in a
      	config file (file, line number, column).
      
      	- Rewritten `config_write`, now with 99% less goto-spaghetti
      
      	- Error state in `git_filebuf`: filebuf write functions no longer
      	need to be checked for error returns. If any of the writes performed
      	on a buffer fail, the last call to `git_filebuf_commit` or
      	`git_filebuf_hash` will fail accordingly and set the appropiate error
      	message. Baller!
      Vicent Martí committed
  13. 07 Mar, 2012 4 commits
  14. 06 Mar, 2012 2 commits
  15. 05 Mar, 2012 1 commit
  16. 03 Mar, 2012 3 commits
  17. 02 Mar, 2012 5 commits
    • Revert GIT_STATUS constants to avoid issues · e1bcc191
      This reverts the changes to the GIT_STATUS constants and adds a
      new enumeration to describe the type of change in a git_diff_delta.
      I don't love this solution, but it should prevent strange errors
      from occurring for now.  Eventually, I would like to unify the
      various status constants, but it needs a larger plan and I just
      wanted to eliminate this breakage quickly.
      Russell Belfer committed
    • Fixing memory leaks indicated by valgrind · c19bc93c
      This clears up the memory leaks that valgrind seems to find on
      my machine.
      Russell Belfer committed
    • Clean up GIT_UNUSED macros on all platforms · 854eccbb
      It turns out that commit 31e9cfc4cbcaf1b38cdd3dbe3282a8f57e5366a5
      did not fix the GIT_USUSED behavior on all platforms.  This commit
      walks through and really cleans things up more thoroughly, getting
      rid of the unnecessary stuff.
      
      To remove the use of some GIT_UNUSED, I ended up adding a couple
      of new iterators for hashtables that allow you to iterator just
      over keys or just over values.
      
      In making this change, I found a bug in the clar tests (where we
      were doing *count++ but meant to do (*count)++ to increment the
      value).  I fixed that but then found the test failing because it
      was not really using an empty repo.  So, I took some of the code
      that I wrote for iterator testing and moved it to clar_helpers.c,
      then made use of that to make it easier to open fixtures on a
      per test basis even within a single test file.
      Russell Belfer committed