- 03 Oct, 2013 2 commits
-
-
This hooks up git_path_direach and git_path_dirload so that they will take a flag indicating if directory entry names should be tested and converted from decomposed unicode to precomposed form. This code will only come into play on the Apple platform and even then, only when certain types of filesystems are used. This involved adding a flag to these functions which involved changing a lot of places in the code. This was an opportunity to do a bit of code cleanup here and there, for example, getting rid of the git_futils_cleanupdir_r function in favor of a simple flag to git_futils_rmdir_r to not remove the top level entry. That ended up adding depth tracking during rmdir_r which led to a safety check for infinite directory recursion. Yay. This hasn't actually been tested on the Mac filesystems where the issue occurs. I still need to get test environment for that.
Russell Belfer committed -
This doesn't actual do string precompose but it puts the hooks in place into the iterators and the git_path_dirload function so that the actual precompose work is ready to go.
Russell Belfer committed
-
- 02 Oct, 2013 2 commits
-
-
These functions act purely on the reflog data structure.
Carlos Martín Nieto committed -
References and their logs are logically coupled, let's make it so in the code by moving the fs-based reflog implementation to live next to the fs-based refs one. As part of the change, make the function take names rather than references, as only the names are relevant when looking up and handling reflogs.
Carlos Martín Nieto committed
-
- 24 Sep, 2013 1 commit
-
-
Edward Thomson committed
-
- 10 Sep, 2013 1 commit
-
-
nulltoken committed
-
- 22 Aug, 2013 1 commit
-
-
This is the first use we have of pthread_rwlock_t in libgit2. Hopefully it won't cause any serious portability problems.
Russell Belfer committed
-
- 21 Aug, 2013 1 commit
-
-
This adds thread safety to the refdb_fs by using the new git_sortedcache object and also by relaxing the handling of some filesystem errors where the fs may be changed out from under us. This also adds some new threading tests that hammer on the refdb.
Russell Belfer committed
-
- 20 Aug, 2013 1 commit
-
-
If there were symbolic refs among the loose refs then the code to create packed-refs would fail trying to parse the OID out of them (where Git just skips trying to pack them). This fixes it.
Russell Belfer committed
-
- 22 Jul, 2013 2 commits
-
-
Instead of using lots of strdup calls, this adds a memory pool to the loose refs iteration code and uses it for keeping track of the loose refs array. Memory usage could probably be reduced even further by eliminating the vector and just scanning by adding the strlen of each ref, but that would be a more intrusive changes. This also updates the error handling to be more thorough about checking for failed allocations, etc.
Russell Belfer committed -
The git_reference_next API silently skips invalid references when scanning the loose refs. The git_reference_next_name API should skip the same ones even though it isn't creating the reference object. This adds a test with a an invalid loose reference and makes sure that both APIs skip the same entries and generate the same results.
Russell Belfer committed
-
- 10 Jun, 2013 1 commit
-
-
This is a significant reorganization of the diff code to break it into a set of more clearly distinct files and to document the new organization. Hopefully this will make the diff code easier to understand and to extend. This adds a new `git_diff_driver` object that looks of diff driver information from the attributes and the config so that things like function content in diff headers can be provided. The full driver spec is not implemented in the commit - this is focused on the reorganization of the code and putting the driver hooks in place. This also removes a few #includes from src/repository.h that were overbroad, but as a result required extra #includes in a variety of places since including src/repository.h no longer results in pulling in the whole world.
Russell Belfer committed
-
- 31 May, 2013 1 commit
-
-
1. internal iterators now return GIT_ITEROVER when you go past the last item in the iteration. 2. git_iterator_advance will "advance" to the first item in the iteration if it is called immediately after creating the iterator, which allows a simpler idiom for basic iteration. 3. if git_iterator_advance encounters an error reading data (e.g. a missing tree or an unreadable file), it returns the error but also attempts to advance past the invalid data to prevent an infinite loop. Updated all tests and internal usage of iterators to account for these new behaviors.
Russell Belfer committed
-
- 30 May, 2013 2 commits
-
-
Vicent Marti committed
-
Vicent Marti committed
-
- 29 May, 2013 1 commit
-
-
Vicent Marti committed
-
- 28 May, 2013 2 commits
-
-
Vicent Marti committed
-
Vicent Marti committed
-
- 19 May, 2013 1 commit
-
-
Eitan Adler committed
-
- 15 May, 2013 2 commits
- 11 May, 2013 4 commits
-
-
There was a problem found in the Rugged test suite where the refdb_fs_backend__next function could exit too early in some very specific hashing patterns for packed refs. This ports the Rugged test to libgit2 and then fixes the bug.
Russell Belfer committed -
Nobody should ever be using anything other than ALL at this level, so remove the option altogether. As part of this, git_reference_foreach_glob is now implemented in the frontend using an iterator. Backends will later regain the ability of doing the glob filtering in the backend.
Carlos Martín Nieto committed -
Carlos Martín Nieto committed
-
This allows us to get a list of reference names in a loop instead of callbacks.
Carlos Martín Nieto committed
-
- 09 May, 2013 1 commit
-
-
Edward Thomson committed
-
- 02 May, 2013 6 commits
-
-
We only set our negative flag for PEELING_FULL; we can fall back to the lesser PEELING_STANDARD if our ref is in the refs/tags/ hierarchy.
Jeff King committed -
Vicent Marti committed
-
This makes parsing easier! :p
Vicent Marti committed -
Fixes #1532
Vicent Marti committed -
Vicent Marti committed
-
Older versions of git would only write peeled entries for items under refs/tags/. Newer versions will write them for all refs, and we should be prepared to handle that.
Jeff King committed
-
- 01 May, 2013 2 commits
-
-
Vicent Marti committed
-
Vicent Marti committed
-
- 30 Apr, 2013 1 commit
-
-
Vicent Marti committed
-
- 23 Apr, 2013 1 commit
-
-
Vicent Marti committed
-
- 22 Apr, 2013 1 commit
-
-
This builds on the earlier thread safety work to make it so that setting the odb, index, refdb, or config for a repository is done in a threadsafe manner with minimized locking time. This is done by adding a lock to the repository object and using it to guard the assignment of the above listed pointers. The lock is only held to assign the pointer value. This also contains some minor fixes to the other work with pack files to reduce the time that locks are being held to and fix an apparently memory leak.
Russell Belfer committed
-
- 21 Apr, 2013 2 commits
-
-
Create a new include/git2/sys/refs.h and move the reference alloc functions there. Also fix some documentation issues and some minor code cleanups.
Russell Belfer committed -
This moves most of the refdb stuff over to the include/git2/sys directory, with some minor shifts in function organization. While I was making the necessary updates, I also removed the trailing whitespace in a few files that I modified just because I was there and it was bugging me.
Russell Belfer committed
-
- 19 Apr, 2013 1 commit
-
-
Edward Thomson committed
-