- 16 May, 2013 8 commits
-
-
Add cat-file to examples (with some public API improvements)
Vicent Martí committed -
Ensure reuc vector is always valid
Vicent Martí committed -
In theory, if there was a problem reading the REUC data, the read_reuc() routine could have left uninitialized and invalid data in the git_index vector. This moves the line that inserts a new entry into the vector down to the bottom of the routine so we know all the content is already valid. Also, per @linquize, this uses calloc to ensure no uninitialized data.
Russell Belfer committed -
Use calloc() for safety
Russell Belfer committed -
Russell Belfer committed
-
This adds an example implementation that emulates git cat-file. It is a convenient and relatively simple example of getting data out of a repository. Implementing this also revealed that there are a number of APIs that are still not using const pointers to objects that really ought to be. The main cause of this is that `git_vector_bsearch` may need to call `git_vector_sort` before doing the search, so a const pointer to the vector is not allowed. However, for tree objects, with a little care, we can ensure that the vector of tree entries is always sorted and allow lookups to take a const pointer. Also, the missing const in commit objects just looks like an oversight.
Russell Belfer committed -
Linquize committed
-
Fetch should not fail when remote HEAD reference is not present locally
Vicent Martí committed
-
- 15 May, 2013 17 commits
-
-
Index entry dup and free
Vicent Martí committed -
Move the git_index_entry to the very top, since it provides the main structure that needs to be understood by the reader, then move the bitmasks for the flags and the flags_extended under that since they are details for looking at particular fields of the structure.
Russell Belfer committed -
This removes the functions to duplicate and free copies of a git_index_entry and updates the comments to explain that you should just use the public definition of the struct as needed.
Russell Belfer committed -
This adds git_index_entry_dup to make a copy of an existing entry and git_index_entry_free to release the memory of the copy. It also updates the documentation for git_index_get_bypath and git_index_get_byindex to make it clear that the returned structure should *not* be modified.
Russell Belfer committed -
The constants for extracting data from git_index_entry flags and flags_extended are not named in a way that makes it easy to know where to use each one. This improves the docs for the flags (and slightly reorganizes them), so it should be more obvious.
Russell Belfer committed -
Bug fixes for checkout and diff
Vicent Martí committed -
Fix trailing whitespaces
Vicent Martí committed -
Since I added the GIT_IDXENTRY_STAGE macro to extract the stage from a git_index_entry, we probably don't need an internal inline function to do the same thing.
Russell Belfer committed -
Under some strange circumstances, diffs can end up listing files that we can't actually open successfully. Instead of aborting the git_diff_find_similar, this makes it so that those files just won't be considered as valid rename/copy targets instead.
Russell Belfer committed -
It is possible for there to be a submodule in a repository with no .gitmodules file (for example, if the user forgot to commit the .gitmodules file). In this case, core Git will just create an empty directory as a placeholder for the submodule but otherwise ignore it. We were generating an error and stopping the checkout. This makes our behavior match that of core git.
Russell Belfer committed -
Unlike blob updates, symlink updates cannot be done "in place" writing over an old symlink. This means that in checkout when we realize that we can safely update a symlink, we still need to remove the old one before writing the new.
Russell Belfer committed -
When the last item in a diff was an untracked directory that only contained ignored items, the loop to scan the contents would run off the end of the iterator and dereference a NULL pointer. This includes a test that reproduces the problem and a fix.
Russell Belfer committed -
nulltoken committed
-
Jameson Miller committed
-
Vicent Marti committed
-
Unify whitespaces to tabs
Vicent Martí committed -
Linquize committed
-
- 14 May, 2013 7 commits
-
-
Russell Belfer committed
-
CMake: vendor strings
Russell Belfer committed -
Create directory for symlink before creating symlink
Russell Belfer committed -
Fix some memory leaks
Russell Belfer committed -
This helps us install multiple versions of the library side-by-side.
Carlos Martín Nieto committed -
Brad Morgan committed
-
nulltoken committed
-
- 12 May, 2013 1 commit
-
-
The code surrounding zlib bundling did not take into consideration that ZLIB_LIBRARY gets cached, and assumed that FIND(ZLIB) would always set ZLIB_FOUND, which does not hold true, as this variable signifies that we have found the package and had to look at the system, as its location was not cached. Only use the bundled sources if the external zlib is neither newly-found nor cached.
Carlos Martín Nieto committed
-
- 11 May, 2013 7 commits
-
-
Fix refdb iteration early termination bug
Carlos Martín Nieto committed -
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 -
Fix broken build when MSVC SDL checks is enabled
Vicent Martí committed -
Linquize committed
-
Introduce a refs iterator
Edward Thomson committed -
If the backend doesn't provide support for it, the matching is done in refdb on top of a normal iterator.
Carlos Martín Nieto committed -
Carlos Martín Nieto committed
-