- 02 Feb, 2017 1 commit
-
-
Adam Niedzielski committed
-
- 23 Jan, 2017 1 commit
-
-
Edward Thomson committed
-
- 20 Jan, 2017 1 commit
-
-
Added `git_repository_submodule_cache_all` to initialze a cache of submodules on the repository so that operations looking up N submodules are O(N) and not O(N^2). Added a `git_repository_submodule_cache_clear` function to remove the cache. Also optimized the function that loads all submodules as it was itself O(N^2) w.r.t the number of submodules, having to loop through the `.gitmodules` file once per submodule. I changed it to process the `.gitmodules` file once, into a map. Signed-off-by: David Turner <dturner@twosigma.com>
Brock Peabody committed
-
- 14 Jan, 2017 1 commit
-
-
lhchavez committed
-
- 09 Jan, 2017 2 commits
-
-
None of our crypto backends actually reject RC4 as a cipher so don't test for it and instead keep it as something we'd like to do.
Carlos Martín Nieto committed -
We must make sure that we're getting a certificate error from the library so we know that we're testing the right thing.
Carlos Martín Nieto committed
-
- 06 Jan, 2017 1 commit
-
-
Make sure that the callbacks do also get a 'valid' value of zero when the certificate we're looking at is in valid and assert that within the test.
Carlos Martín Nieto committed
-
- 04 Jan, 2017 1 commit
-
-
lhchavez committed
-
- 02 Jan, 2017 1 commit
-
-
lhchavez committed
-
- 01 Jan, 2017 1 commit
-
-
When `GIT_MERGE_FIND_RENAMES` is set, provide a default for `rename_threshold` when it is unset.
Edward Thomson committed
-
- 30 Dec, 2016 1 commit
-
-
git_checkout_tree() sets up its working directory iterator to respect the pathlist if GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH is present, which is great. What's not so great is that this iterator is then used side-by-side with an iterator created by git_checkout_iterator(), which did not set up its pathlist appropriately (although the iterator mirrors all other iterator options). This could cause git_checkout_tree() to delete working tree files which were not specified in the pathlist when GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH was used, as the unsynchronized iterators causes git_checkout_tree() to think that files have been deleted between the two trees. Oops. And added a test which fails without this fix (specifically, the final check for "testrepo/README" to still be present fails).
John Fultz committed
-
- 29 Dec, 2016 1 commit
-
-
Edward Thomson committed
-
- 18 Dec, 2016 1 commit
-
-
When given $PATH as part of a search path, we guess again instead of substituting what the user already set.
Carlos Martín Nieto committed
-
- 17 Dec, 2016 1 commit
-
-
Carlos Martín Nieto committed
-
- 12 Dec, 2016 2 commits
-
-
This is far from an ideal situation, but this causes issues on Windows which make it harder to develop anything, as these tests hit issues which relate specifically to the Windows filesystem like permission errors for files we should be able to access. There is an issue likely related to the ordering of the repack, but there's enough noise that it does not currently help us to run this aspect of the test in CI.
Carlos Martín Nieto committed -
The function `cl_git_thread_check()` is defined as static. As the function is defined in a header file which is included by our tests, this can result in warnings for every test file where `cl_git_thread_check` is never used. Fix the issue by marking it as inline instead.
Patrick Steinhardt committed
-
- 02 Dec, 2016 1 commit
-
-
git_rebase_finish relies on head_detached being set, but rebase_init_merge was only setting it when branch->ref_name was unset. But branch->ref_name would be set to "HEAD" in the case of detached HEAD being either implicitly (NULL) or explicitly passed to git_rebase_init.
David Turner committed
-
- 18 Nov, 2016 5 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
Don't `cl_git_pass` in a child thread. When the assertion fails, clar will `longjmp` to its error handler, but: > The effect of a call to longjmp() where initialization of the jmp_buf > structure was not performed in the calling thread is undefined. Instead, set up an error context that threads can populate, and the caller can check.
Edward Thomson committed -
We want a predictable number of initializations in our multithreaded init test, but we also want to make sure that we have _actually_ initialized `git_libgit2_init` before calling `git_thread_create` (since it now has a sanity check that `git_libgit2_init` has been called). Since `git_thread_create` is internal-only, keep this sanity check. Flip the invocation so that we `git_libgit2_init` before our thread tests and `git_libgit2_shutdown` again after.
Edward Thomson committed -
Introduce `git_thread_exit`, which will allow threads to terminate at an arbitrary time, returning a `void *`. On Windows, this means that we need to store the current `git_thread` in TLS, so that we can set its `return` value when terminating. We cannot simply use `ExitThread`, since Win32 returns `DWORD`s from threads; we return `void *`.
Edward Thomson committed
-
- 14 Nov, 2016 11 commits
-
-
We do not currently use the sorted version of this input in the function, which means we produce bad results.
Carlos Martín Nieto committed -
Carlos Martín Nieto committed
-
On Windows we can find locked files even when reading a reference or the packed-refs file. Bubble up the error in this case as well to allow callers on Windows to retry more intelligently.
Carlos Martín Nieto committed -
At times we may try to delete a reference which a different thread has already taken care of.
Carlos Martín Nieto committed -
The logic simply consists of retrying for as long as the library says the data is locked, but it eventually gets through.
Carlos Martín Nieto committed -
We say it's going to work if you use a different repository in each thread. Let's do precisely that in our code instead of hoping re-using the refdb is going to work. This test does fail currently, surfacing existing bugs.
Carlos Martín Nieto committed -
When trying to find a discovery, we walk up the directory structure checking if there is a ".git" file or directory and, if so, check its validity. But in the case that we've got a ".git" file, we do not want to unconditionally assume that the file is in fact a ".git" file and treat it as such, as we would error out if it is not. Fix the issue by only treating a file as a gitlink file if it ends with "/.git". This allows users of the function to discover a repository by handing in any path contained inside of a git repository.
Patrick Steinhardt committed -
Patrick Steinhardt committed
-
Patrick Steinhardt committed
-
Patrick Steinhardt committed
-
Patrick Steinhardt committed
-
- 04 Nov, 2016 1 commit
-
-
The code correctly detects that forced creation of a branch on a nonbare repo should not be able to overwrite a branch which is the HEAD reference. But there's no reason to prevent this on a bare repo, and in fact, git allows this. I.e., git branch -f master new_sha works on a bare repo with HEAD set to master. This change fixes that problem, and updates tests so that, for this case, both the bare and nonbare cases are checked for correct behavior.
John Fultz committed
-
- 02 Nov, 2016 1 commit
-
-
Exercise the logic surrounding deinitialization of the libgit2 library as well as repeated concurrent de- and reinitialization. This tries to catch races and makes sure that it is possible to reinitialize libgit2 multiple times. After deinitializing libgit2, we have to make sure to setup options required for testing. Currently, this only includes setting up the configuration search path again. Before, this has been set up once in `tests/main.c`.
Patrick Steinhardt committed
-
- 28 Oct, 2016 1 commit
-
-
The `git_pqueue` struct allows being fixed in its total number of entries. In this case, we simply throw away items that are inserted into the priority queue by examining wether the new item to be inserted has a higher priority than the previous smallest one. This feature somewhat contradicts our pqueue implementation in that it is allowed to not have a comparison function. In fact, we also fail to check if the comparison function is actually set in the case where we add a new item into a fully filled fixed-size pqueue. As we cannot determine which item is the smallest item in absence of a comparison function, we fix the `NULL` pointer dereference by simply dropping all new items which are about to be inserted into a full fixed-size pqueue.
Patrick Steinhardt committed
-
- 27 Oct, 2016 2 commits
-
-
Patrick Steinhardt committed
-
Patrick Steinhardt committed
-
- 09 Oct, 2016 1 commit
-
-
Sim Domingo committed
-
- 07 Oct, 2016 1 commit
-
-
`xlocale.h` only defines `regcomp_l` if `regex.h` was included as well. Also change the test cases to actually test `p_regcomp` works with a multibyte locale.
Arthur Schreiber committed
-