1. 25 Jul, 2011 1 commit
    • tests: fix cast warnings · 84ef7f36
      /home/kas/git/public/libgit2/tests/t00-core.c: In function ‘test_cmp’:
      /home/kas/git/public/libgit2/tests/t00-core.c:78:10: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t00-core.c:78:22: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t07-hashtable.c: In function ‘hash_func’:
      /home/kas/git/public/libgit2/tests/t07-hashtable.c:42:7: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t08-tag.c: In function ‘_gittest__write0’:
      /home/kas/git/public/libgit2/tests/t08-tag.c:141:21: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t08-tag.c: In function ‘_gittest__write2’:
      /home/kas/git/public/libgit2/tests/t08-tag.c:192:21: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t08-tag.c: In function ‘_gittest__write3’:
      /home/kas/git/public/libgit2/tests/t08-tag.c:227:21: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t04-commit.c: In function ‘_gittest__write0’:
      /home/kas/git/public/libgit2/tests/t04-commit.c:650:21: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t04-commit.c:651:21: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t04-commit.c: In function ‘_gittest__root0’:
      /home/kas/git/public/libgit2/tests/t04-commit.c:723:21: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t04-commit.c:724:21: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      /home/kas/git/public/libgit2/tests/t12-repo.c: In function ‘write_file’:
      /home/kas/git/public/libgit2/tests/t12-repo.c:360:24: warning: cast discards ‘__attribute__((const))’ qualifier from pointer target type [-Wcast-qual]
      
      Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
      Kirill A. Shutemov committed
  2. 07 Jul, 2011 3 commits
    • Fix MSVC compilation warnings · bdcc4611
      nulltoken committed
    • vector: Timsort all of the things · de18f276
      Drop the GLibc implementation of Merge Sort and replace it with Timsort.
      
      The algorithm has been tuned to work on arrays of pointers (void **),
      so there's no longer a need to abstract the byte-width of each element
      in the array.
      
      All the comparison callbacks now take pointers-to-elements, not
      pointers-to-pointers, so there's now one less level of dereferencing.
      
      E.g.
      
      	 int index_cmp(const void *a, const void *b)
      	 {
      	-	const git_index_entry *entry_a = *(const git_index_entry **)(a);
      	+	const git_index_entry *entry_a = (const git_index_entry *)(a);
      
      The result is up to a 40% speed-up when sorting vectors. Memory usage
      remains lineal.
      
      A new `bsearch` implementation has been added, whose callback also
      supplies pointer-to-elements, to uniform the Vector API again.
      Vicent Marti committed
  3. 06 Jul, 2011 5 commits
  4. 05 Jul, 2011 3 commits
    • vector: implement git_vector_uniq() · 476c42ac
      The routine remove duplictes from the vector. Only the last added element
      of elements with equal keys remains in the vector.
      
      Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
      Kirill A. Shutemov committed
    • fileops: Cleanup · f79026b4
      Cleaned up the structure of the whole OS-abstraction layer.
      
      fileops.c now contains a set of utility methods for file management used
      by the library. These are abstractions on top of the original POSIX
      calls.
      
      There's a new file called `posix.c` that contains
      emulations/reimplementations of all the POSIX calls the library uses.
      These are prefixed with `p_`. There's a specific posix file for each
      platform (win32 and unix).
      
      All the path-related methods have been moved from `utils.c` to `path.c`
      and have their own prefix.
      Vicent Marti committed
  5. 01 Jul, 2011 1 commit
  6. 30 Jun, 2011 1 commit
  7. 20 Jun, 2011 1 commit
  8. 12 Jun, 2011 1 commit
  9. 07 Jun, 2011 1 commit
  10. 03 Jun, 2011 1 commit
  11. 10 Apr, 2011 1 commit
  12. 22 Mar, 2011 2 commits
  13. 15 Mar, 2011 1 commit
  14. 03 Mar, 2011 4 commits
  15. 17 Feb, 2011 1 commit
    • Improve the performance when writing Index files · 348c7335
      In response to issue #60 (git_index_write really slow), the write_index
      function has been rewritten to improve its performance -- it should now
      be in par with the performance of git.git.
      
      On top of that, if Posix Threads are available when compiling libgit2, a
      new threaded writing system will be used (3 separate threads take care
      of solving byte-endianness, hashing the contents of the index and
      writing to disk, respectively). For very long Index files, this method
      is up to 3x times faster than git.git.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  16. 09 Feb, 2011 1 commit
    • Use the new git__joinpath to build paths in methods · 995f9c34
      The `git__joinpath` function has been changed to use a statically
      allocated buffer; we assume the buffer to be 4096 bytes, because fuck
      you.
      
      The new method also supports an arbritrary number of paths to join,
      which may come in handy in the future.
      
      Some methods which were manually joining paths with `strcpy` now use the
      new function, namely those in `index.c` and `refs.c`.
      
      Based on Emeric Fermas' original patch, which was using the old
      `git__joinpath` because I'm stupid. Thanks!
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  17. 06 Feb, 2011 1 commit
  18. 05 Feb, 2011 2 commits
    • Fix directory/path manipulation methods · f725931b
      The `dirname` and `dirbase` methods have been replaced with the Android
      implementation, which is actually compilant to some kind of standard.
      
      A new method `topdir` has been added, which returns the topmost
      directory in a path.
      
      These changes fix issue #49:
      
      	`gitfo_prettify_dir_path` converts "./.git/" to ".git/", so
      	the code at src/repository.c:190 goes out of bounds when
      	trying to find the topmost directory.
      
      	The new `git__topdir` method handles this gracefully, and the
      	fixed `git__dirname` now returns the proper value for the
      	repository's working dir.
      
      	E.g.
      
      		/repo/.git/ ==> working dir '/repo/'
      		.git/		==> working dir '.'
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  19. 02 Feb, 2011 1 commit
    • Rewrite the unit testing suite · 2a1732b4
      NIH Enterprises presents: a new testing system based on CuTesT, which is
      faster than our previous one and fortunately uses no preprocessing on
      the source files, which means we can run that from CMake.
      
      The test suites have been gathered together into bigger files (one file
      per suite, testing each of the different submodules of the library).
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed