1. 20 Mar, 2012 1 commit
  2. 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
  3. 16 Mar, 2012 3 commits
  4. 15 Mar, 2012 2 commits
  5. 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
  6. 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
  7. 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
  8. 07 Mar, 2012 4 commits
  9. 06 Mar, 2012 2 commits
  10. 05 Mar, 2012 1 commit
  11. 03 Mar, 2012 3 commits
  12. 02 Mar, 2012 17 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
    • Update diff to use iterators · 74fa4bfa
      This is a major reorganization of the diff code.  This changes
      the diff functions to use the iterators for traversing the
      content.  This allowed a lot of code to be simplified.  Also,
      this moved the functions relating to outputting a diff into a
      new file (diff_output.c).
      
      This includes a number of other changes - adding utility
      functions, extending iterators, etc. plus more tests for the
      diff code.  This also takes the example diff.c program much
      further in terms of emulating git-diff command line options.
      Russell Belfer committed
    • Fixing unit tests post rebase · 760db29c
      Some changes that merged cleanly actually broke the unit
      tests, so this fixes them.
      Russell Belfer committed
    • First pass of diff index to workdir implementation · e47329b6
      This is an initial version of git_diff_workdir_to_index.  It
      also includes renaming some structures and some refactoring
      of the existing code so that it could be shared better with
      the new function.
      
      This is not complete since it needs a rebase to get some
      new odb functions from the upstream branch.
      Russell Belfer committed
    • Add tests and fix bugs for diff whitespace options · caf71ec0
      Once I added tests for the whitespace handling options of
      diff, I realized that there were some bugs.  This fixes
      those and adds the new tests into the test suite.
      Russell Belfer committed
    • Continue implementation of git-diff · a2e895be
      * Implemented git_diff_index_to_tree
      * Reworked git_diff_options structure to handle more options
      * Made most of the options in git_diff_options actually work
      * Reorganized code a bit to remove some redundancy
      * Added option parsing to examples/diff.c to test most options
      Russell Belfer committed
    • Fix minor WIN32 incompatibility · 5a2f097f
      File mode flags are not all defined on WIN32, but since git
      is so rigid in how it uses file modes, there is no reason not
      to hard code a particular value.  Also, this is only used in
      the git_diff_print_compact helper function, so it is really
      really not important.
      Russell Belfer committed
    • Clean up diff implementation for review · 3a437590
      This fixes several bugs, updates tests and docs, eliminates the
      FILE* assumption in favor of printing callbacks for the diff patch
      formatter helpers, and adds a "diff" example function that can
      perform a diff from the command line.
      Russell Belfer committed
    • Implement diff lists and formatters · 65b09b1d
      This reworks the diff API to separate the steps of producing
      a diff descriptions from formatting the diff.  This will allow
      us to share diff output code with the various diff creation
      scenarios and will allow us to implement rename detection as
      an optional pass that can be run on a diff list.
      Russell Belfer committed
    • Initial implementation of git_diff_blob · cd33323b
      This gets the basic plumbing in place for git_diff_blob.
      There is a known issue where additional parameters like
      the number of lines of context to display on the diff
      are not working correctly (which leads one of the new
      unit tests to fail).
      Russell Belfer committed
    • Eliminate xdiff compiler warnings · 8b75f7f3
      This cleans up the various GCC compiler warnings with the
      xdiff code that was copied in.
      Russell Belfer committed
    • Simplify GIT_UNUSED macros · 2705576b
      Since casting to void works to eliminate errors with unused
      parameters on all platforms, avoid the various special cases.
      Over time, it will make sense to eliminate the GIT_UNUSED
      macro completely and just have GIT_UNUSED_ARG.
      Russell Belfer committed
    • Import xdiff library from git · 3a5ad90a
      This is the initial import of the xdiff code (LGPL) from
      core git as of rev f349b562086e2b7595d8a977d2734ab2ef9e71ef
      Russell Belfer committed