1. 05 Feb, 2011 4 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
    • Make more methods return error codes · c836c332
      git_revwalk_next now returns an error code when the iteration is over.
      git_repository_index now returns an error code when the index file could
      not be opened.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
    • Keep the tree entries always internally sorted · 4569bfa5
      Don't allow access to any tree entries whilst the entries array is
      unsorted. We keep track on when the array is unsorted, and any methods
      that access the array while it is unsorted now sort the array before
      accessing it.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  2. 03 Feb, 2011 1 commit
    • Use Git's own tree entry sorting algorithm · 35786cb7
      If plain strcmp is used, as this code did before, the final sorting may
      end up different from what git-add would do (for example, 'boost'
      appearing before 'boost-build.jam', because Git sorts as if it were
      spelled 'boost/').
      
      If the sorting is incorrect like this, Git 1.7.4 insists that unmodified
      files have been modified.  For example, my test repository has these
      four entries:
      
      drwxr-xr-x  199 johnw  wheel   6766 Feb  2 17:21 boost
      -rw-r--r--    1 johnw  wheel    849 Feb  2 17:22 boost-build.jam
      -rw-r--r--    1 johnw  wheel    989 Feb  2 17:21 boost.css
      -rw-r--r--    1 johnw  wheel   6308 Feb  2 17:21 boost.png
      
      Here is the output from git-ls-tree for these files, in a commit tree
      created using git-add and git-commit:
      
      100644 blob 8b8775433aef73e9e12609610ae2e35cf1e7ec2c    boost-build.jam
      100644 blob 986c4050fa96d825a1311c8e871cdcc9a3e0d2c3    boost.css
      100644 blob b4d51fcd5c9149fd77f5ca6ed2b6b1b70e8fe24f    boost.png
      040000 tree 46537eeaa4d577010f19b1c9e940cae9a670ff5c    boost
      
      Here is the output for the same commit produced using libgit2:
      
      040000 tree c27c0fd1436f28a6ba99acd0a6c17d178ed58288	boost
      100644 blob 8b8775433aef73e9e12609610ae2e35cf1e7ec2c	boost-build.jam
      100644 blob 986c4050fa96d825a1311c8e871cdcc9a3e0d2c3	boost.css
      100644 blob b4d51fcd5c9149fd77f5ca6ed2b6b1b70e8fe24f	boost.png
      
      Due to this reordering, git-status claims the three blobs are always
      modified, no matter what I do using git-read-tree or git-reset or
      git-checkout to update the index.
      John Wiegley committed
  3. 02 Feb, 2011 5 commits
  4. 01 Feb, 2011 5 commits
  5. 30 Jan, 2011 1 commit
    • Refactor reference parsing code · 2f8a8ab2
      Several changes have been committed to allow the user to create
      in-memory references and write back to disk. Peeling of symbolic
      references has been made explicit. Added getter and setter methods for
      all attributes on a reference. Added corresponding documentation.
      
      Signed-off-by: Vicent Marti <tanoku@gmail.com>
      Vicent Marti committed
  6. 29 Jan, 2011 9 commits
  7. 20 Jan, 2011 5 commits
  8. 13 Jan, 2011 2 commits
  9. 11 Jan, 2011 4 commits
  10. 10 Jan, 2011 2 commits
  11. 08 Jan, 2011 2 commits