Log

Author Commit Date CI Message
Carlos Martín Nieto 75db289a 2016-12-20T19:14:20 Merge pull request #3980 from tiennou/doc-fixes Documentation fixes
Edward Thomson 42864e58 2016-12-20T17:17:12 Merge pull request #4041 from libgit2/cmn/bump-pretend-git http: bump the pretend git version in the User-Agent
Carlos Martín Nieto fafafb1f 2016-12-20T16:19:30 http: bump the pretend git version in the User-Agent We want to keep the git UA in order for services to recognise that we're a Git client and not a browser. But in order to stop dumb HTTP some services have blocked UAs that claim to be pre-1.6.6 git. Thread these needles by using the "git/2.0" prefix which is still close enough to git's yet distinct enough that you can tell it's us.
Edward Thomson 8d7717c4 2016-12-20T15:32:49 Merge pull request #4034 from libgit2/cmn/sysdir-no-reguess sysdir: don't re-guess when using variable substitution
Edward Thomson f91f170f 2016-12-20T15:28:46 Merge pull request #4032 from libgit2/cmn/https-cap-no-hardcode Don't hard-code HTTPS cap & clarify the meanings of the features enum
Carlos Martín Nieto 329ce043 2016-12-20T12:14:22 Merge pull request #4037 from libgit2/cmn/goals README: be more explicit in the goals and scope
Carlos Martín Nieto b0b850bf 2016-12-19T18:04:20 Merge pull request #4038 from lucasderraugh/patch-1 Gift deprecated in favor of SwiftGit2
Carlos Martín Nieto 3714c13a 2016-12-19T17:28:41 Merge pull request #4026 from libgit2/cmn/refdb-fs-errors refdb: bubble up recursive rm when locking a ref
Carlos Martín Nieto 903955f7 2016-12-19T17:26:09 Merge pull request #4027 from pks-t/pks/pack-deref-cache-on-error pack: dereference cached pack entry on error
Lucas Derraugh 87faeaec 2016-12-19T09:09:34 Gift deprecated in favor of SwiftGit2
Carlos Martín Nieto 34901679 2016-12-19T16:25:01 Merge pull request #4033 from andhe/master Fix off-by-one problems in git_signature__parse
Carlos Martín Nieto 8f064000 2016-12-19T13:54:55 README: be more explicit in the goals and scope Make it clearer from the get-go that we do not aim to implement user-facing commands from the git tool.
Carlos Martín Nieto 9f09f290 2016-12-17T18:20:29 sysdir: don't guess the paths again when $PATH is specified We should replace it with whatever the user set, not start again.
Carlos Martín Nieto 410855fc 2016-12-17T18:18:30 sysdir: add failing test for variable substitution When given $PATH as part of a search path, we guess again instead of substituting what the user already set.
Andreas Henriksson 23c9ff86 2016-12-17T17:33:13 Fix off-by-one problems in git_signature__parse Etc/GMT-14 aka UTC+14:00 is a thing.... https://en.wikipedia.org/wiki/UTC%2B14:00 Also allow offsets on the last minute (59). Addresses: https://bugs.debian.org/841532 Fixes: #3970
Carlos Martín Nieto 77e46232 2016-12-17T14:31:36 settings: clarify what each value means Most importantly, clarify what it means for HTTPS and SSH to be supported.
Carlos Martín Nieto 061a0ad1 2016-12-17T14:23:35 settings: don't hard-code HTTPS capability This partially reverts bdec62dce1c17465b7330100ea2f71e63fc411dd which activates the transport code-paths which allow you to use a custom TLS implementation without having to have one at build-time. However the capabilities describe how libgit2 was built, not what it could potentially support, bring back the ifdefs so we only say we support HTTPS if libgit2 was itself built with a TLS implementation.
Carlos Martín Nieto c655def1 2016-12-17T01:12:49 Merge pull request #4031 from libgit2/cmn/plug-test-leak rebase: plug a leak in the tests
Carlos Martín Nieto f7dcd58c 2016-12-17T00:55:06 rebase: plug a leak in the tests
Carlos Martín Nieto 6ab65b80 2016-12-11T17:56:38 refdb: bubble up recursive rm when locking a ref Failure to bubble up this error means some locking errors do not get reported as such on Windows.
Edward Thomson c5e6ba28 2016-12-15T18:19:49 Merge pull request #4029 from libgit2/cmn/windows-no-concurrent-compress refdb: disable concurrent compress in the threading tests on Windows
Carlos Martín Nieto 9d5f12ff 2016-12-12T22:43:11 Merge pull request #4018 from pks-t/pks/various-fixes Various fixes
Carlos Martín Nieto b31283a6 2016-12-12T17:09:12 refdb: disable concurrent compress in the threading tests on Windows 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.
Patrick Steinhardt ff5eea06 2016-12-12T09:36:15 pack: dereference cached pack entry on error When trying to uncompress deltas in a packfile's delta chain, we try to add object bases to the packfile cache, subsequently decrementing its reference count if it has been added successfully. This may lead to a mismatched reference count in the case where we exit the loop early due to an encountered error. Fix the issue by decrementing the reference count in error cleanup.
Patrick Steinhardt 34b32053 2016-11-25T15:02:34 Fix potential use of uninitialized values
Patrick Steinhardt e781a0c5 2016-11-25T15:02:07 graph: flag fields should be declared as unsigned
Patrick Steinhardt 482d1748 2016-11-25T15:01:35 transports: smart: do not redeclare loop counters
Patrick Steinhardt 6cf575b1 2016-11-25T15:01:04 path: remove unused local variable
Patrick Steinhardt 013ecb4f 2016-11-25T15:00:50 revwalk: do not re-declare `commit` variable
Patrick Steinhardt 8468a440 2016-11-25T15:00:20 odb_mempack: mark zero-length array as GIT_FLEX_ARRAY
Patrick Steinhardt ab0cc5a0 2016-11-25T14:58:16 clar: mark `cl_git_thread_check()` as inline 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.
Edward Thomson 8339c660 2016-12-07T17:44:25 Merge pull request #4020 from novalis/rebase-detached git_rebase_init: correctly handle detached HEAD
Edward Thomson 15769731 2016-12-07T15:01:20 Merge pull request #4014 from bokic/patch-1 Properly pass `wchar *` type to giterr_set
Boris Barbulovski 9af59f5d 2016-12-06T03:08:52 Properly pass `wchar *` type to giterr_set
Edward Thomson 5c18ece3 2016-12-04T15:58:40 Merge pull request #4022 from josharian/patch-1 remote: fix typo in git_fetch_init_options docs
Josh Bleecher Snyder 72cee168 2016-12-02T16:14:47 remote: fix typo in git_fetch_init_options docs
David Turner 4db1fc7e 2016-12-01T23:06:41 git_rebase_init: correctly handle detached HEAD 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.
Boris Barbulovski 86364af9 2016-11-20T11:30:45 Properly pass `wchar *` type to giterr_set
Carlos Martín Nieto ae5838f1 2016-11-18T21:01:51 Merge pull request #4010 from libgit2/ethomson/clar_threads Introduce some clar helpers for child threads
Edward Thomson 6367c58c 2016-11-18T18:30:20 tests: handle life without threads
Edward Thomson 6a05c7a0 2016-11-18T07:37:47 threads::refdb tests: use new threaded clar assert
Edward Thomson bbf22f82 2016-11-18T07:34:20 clar: Introduce assertion helpers for threads 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 99479062 2016-11-18T16:50:34 core::init tests: reverse init/shutdown 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 82f15896 2016-11-18T07:19:22 threads: introduce `git_thread_exit` 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 *`.
Carlos Martín Nieto 6b0510e5 2016-11-17T15:45:23 Merge pull request #4009 from pranitbauva1997/fix-string-format use `giterr_set_str()` wherever possible
Pranit Bauva 65b78ea3 2016-11-17T01:08:49 use `giterr_set_str()` wherever possible `giterr_set()` is used when it is required to format a string, and since we don't really require it for this case, it is better to stick to `giterr_set_str()`. This also suppresses a warning(-Wformat-security) raised by the compiler. Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com>
Carlos Martín Nieto a6763ff9 2016-11-15T19:04:18 Merge pull request #4007 from libgit2/cmn/bump-v25 Bump version number to v0.25
Carlos Martín Nieto 0cd162be 2016-11-15T16:28:10 Merge pull request #4008 from pks-t/pks/sortedcache-fd-leak sortedcache: plug leaked file descriptor
Patrick Steinhardt 613381fc 2016-11-15T13:33:05 patch_parse: fix memory leak
Patrick Steinhardt 24b2182c 2016-11-15T12:53:53 sortedcache: plug leaked file descriptor
Carlos Martín Nieto 1db3035d 2016-11-15T12:18:49 Merge pull request #3996 from pks-t/pks/curl-lastsocket-deprecation curl_stream: use CURLINFO_ACTIVESOCKET if curl is recent enough
Carlos Martín Nieto 5569778a 2016-11-15T11:15:40 Bump version number to v0.25
Carlos Martín Nieto f5ea9d4a 2016-11-15T11:02:30 Merge pull request #3962 from libgit2/ethomson/issue_template Introduce a GitHub Issue Template
Carlos Martín Nieto 7ebf099d 2016-11-15T10:54:15 Merge pull request #4004 from libgit2/cmn/changelog CHANGELOG: fill in some updates we missed
Patrick Steinhardt 5cbd5260 2016-11-11T11:37:00 curl_stream: use CURLINFO_ACTIVESOCKET if curl is recent enough The `CURLINFO_LASTSOCKET` information has been deprecated since curl version 7.45.0 as it may result in an overflow in the returned socket on certain systems, most importantly on 64 bit Windows. Instead, a new call `CURLINFO_ACTIVESOCKET` has been added which instead returns a `curl_socket_t`, which is always sufficiently long to store a socket. As we need to provide backwards compatibility with curl versions smaller than 7.45.0, alias CURLINFO_ACTIVESOCKET to CURLINFO_LASTSOCKET on platforms without CURLINFO_ACTIVESOCKET.
Edward Thomson 1d683c1d 2016-11-14T19:21:56 Merge pull request #4006 from libgit2/cmn/compress-buf-free Plug a leak in the refs compressor
Edward Thomson 8c984fea 2016-10-13T16:40:43 Introduce a GitHub Issue Template
Carlos Martín Nieto 06de4e75 2016-11-14T14:12:13 CHANGELOG: fill in some updates we missed
Carlos Martín Nieto 21e0fc32 2016-11-14T17:55:49 Plug a leak in the refs compressor
Carlos Martín Nieto a39f18ac 2016-11-14T17:10:43 Merge pull request #3998 from pks-t/pks/repo-discovery Repository discovery starting from files
Edward Thomson df045cef 2016-11-14T12:12:38 Merge pull request #4003 from libgit2/cmn/tree-updater-ordering Use the sorted input in the tree updater
Edward Thomson 904e1e75 2016-11-14T11:52:49 Merge pull request #3561 from libgit2/cmn/refdb-para Concurrency fixes for the reference db
Carlos Martín Nieto 89776585 2016-11-14T12:44:52 tree: look for conflicts in the new tree when updating We look at whether we're trying to replace a blob with a tree during the update phase, but we fail to look at whether we've just inserted a blob where we're now trying to insert a tree. Update the check to look at both places. The test for this was previously succeeding due to the bu where we did not look at the sorted output.
Carlos Martín Nieto b85929c5 2016-11-14T12:44:01 tree: use the sorted update list in our loop The loop is made with the assumption that the inputs are sorted and not using it leads to bad outputs.
Carlos Martín Nieto 1d41b86c 2016-11-14T12:22:20 tree: add a failing test for unsorted input We do not currently use the sorted version of this input in the function, which means we produce bad results.
Carlos Martín Nieto aef54a46 2016-11-14T11:29:40 refdb: use a constant for the number of per-thread creations/deletes
Carlos Martín Nieto ce5553d4 2016-03-10T22:01:09 refdb: bubble up locked files on the read side 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 7c32d874 2016-03-10T12:27:07 refdb: expect threaded test deletes to race At times we may try to delete a reference which a different thread has already taken care of.
Carlos Martín Nieto 33248b9e 2016-03-10T12:22:34 refdb: remove a check-delete race when removing a loose ref It does not help us to check whether the file exists before trying to unlink it since it might be gone by the time unlink is called. Instead try to remove it and handle the resulting error if it did not exist.
Carlos Martín Nieto 40ffa07f 2015-12-31T14:51:42 sortedcache: check file size after opening the file Checking the size before we open the file descriptor can lead to the file being replaced from under us when renames aren't quite atomic, so we can end up reading too little of the file, leading to us thinking the file is corrupted.
Carlos Martín Nieto 26416f6d 2015-12-24T17:51:19 refdb: add retry logic to the threaded tests 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 2e09106e 2015-12-24T17:49:49 refdb: bubble up the error code when compressing the db This allows the caller to know the errors was e.g. due to the packed-refs file being already locked and they can try again later.
Carlos Martín Nieto dd1ca6f1 2015-12-24T17:38:41 refdb: refactor the lockfile cleanup We can reduce the duplication by cleaning up at the beginning of the loop, since it's something we want to do every time we continue.
Carlos Martín Nieto 7ea4710a 2015-12-24T17:30:24 refdb: don't report failure for expected errors There might be a few threads or processes working with references concurrently, so fortify the code to ignore errors which come from concurrent access which do not stop us from continuing the work. This includes ignoring an unlinking error. Either someone else removed it or we leave the file around. In the former case the job is done, and in the latter case, the ref is still in a valid state.
Carlos Martín Nieto f94825c1 2015-12-24T17:21:51 fileops: save errno and report file existence We need to save the errno, lest we clobber it in the giterr_set() call. Also add code for reporting that a path component is missing, which is a distinct failure mode.
Carlos Martín Nieto 2d9aec99 2015-12-24T14:01:38 refdb: make ref deletion after pack safer In order not to undo concurrent modifications to references, we must make sure that we only delete a loose reference if it still has the same value as when we packed it. This means we need to lock it and then compare the value with the one we put in the packed file.
Carlos Martín Nieto 9914efec 2015-12-24T14:00:48 refdb: bubble up errors We can get useful information like GIT_ELOCKED out of this instead of just -1.
Carlos Martín Nieto 7da4c429 2015-12-24T12:37:41 refdb: adjust the threading tests to what we promise 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.
Patrick Steinhardt 0f316096 2016-11-11T16:55:33 repository: do not interpret all files as gitlinks in discovery 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 4dbaf3cd 2016-11-14T10:52:37 test: discover: fix indentation
Patrick Steinhardt 5242c424 2016-11-11T16:43:37 test: discover: split up monolithic test into smaller ones
Patrick Steinhardt 07afeb23 2016-11-11T16:16:34 test: discover: pass constants to ensure_repository_discover
Patrick Steinhardt 2382b0f8 2016-11-11T15:50:14 test: discover: move layout creation into test initializer
Carlos Martín Nieto e1c14335 2016-11-14T10:48:57 Merge pull request #4002 from pks-t/pks/giterr-format giterr format
Carlos Martín Nieto cc5966b0 2016-11-14T10:39:45 Merge pull request #3983 from pks-t/pks/smart-early-eof transports: smart: abort on early end of stream
Carlos Martín Nieto eb71490a 2016-11-14T10:19:30 Merge pull request #3985 from libgit2/cmn/threading-update Update THREADING for OpenSSL 1.1
Patrick Steinhardt b81fe7c9 2016-11-14T10:07:13 path: pass string instead of git_buf to giterr_set
Patrick Steinhardt 90a934a5 2016-11-14T10:06:17 checkout: pass string instead of git_buf to `giterr_set`
Patrick Steinhardt 901434b0 2016-11-14T10:07:37 common: cast precision specifiers to int
Patrick Steinhardt c77a55a9 2016-11-14T10:05:31 common: use PRIuZ for size_t in `giterr_set` calls
Patrick Steinhardt 8effd26f 2016-11-14T09:54:08 common: mark printf-style formatting for `giterr_set`
Patrick Steinhardt 2d205516 2016-11-14T09:38:44 Merge pull request #3992 from joshtriplett/env-namespace git_repository_open_ext: fix handling of $GIT_NAMESPACE
Patrick Steinhardt 19981467 2016-11-14T09:31:31 Merge pull request #4001 from pks-t/pks/fileops-docs-typo fileops: fix typos in `git_futils_creat_locked{,with_path}`
Patrick Steinhardt 7b3f49f0 2016-11-14T09:27:15 fileops: fix typos in `git_futils_creat_locked{,with_path}`
Josh Triplett c9e967a1 2016-11-10T03:51:12 git_repository_open_ext: fix handling of $GIT_NAMESPACE The existing code would set a namespace of "" (empty string) with GIT_NAMESPACE unset. In a repository where refs/heads/namespaces/ exists, that can produce incorrect results. Detect that case and avoid setting the namespace at all. Since that makes the last assignment to error conditional, and the previous assignment can potentially get GIT_ENOTFOUND, set error to 0 explicitly to prevent the call from incorrectly failing with GIT_ENOTFOUND.
Patrick Steinhardt b7822050 2016-11-11T11:25:39 Merge pull request #3993 from alexcrichton/fix-fault
Alex Crichton 5ca75fd5 2016-11-10T08:00:22 curl_stream: check for -1 after CURLINFO_LASTSOCKET We're recently trying to upgrade to the current master of libgit2 in Cargo but we're unfortunately hitting a segfault in one of our tests. This particular test is just a small smoke test that https works (e.g. it's configured in libgit2). It attempts to clone from a URL which simply immediately drops connections after they're accepted (e.g. terminate abnormally). We expect to see a standard error from libgit2 but unfortunately we're seeing a segfault. This segfault is happening inside of the `wait_for` function of `curl_stream.c` at the line `FD_SET(fd, &errfd)` because `fd` is -1. This ends up doing an out-of-bounds array access that faults the program. I tracked back to where this -1 came from to the line here (returned by `CURLINFO_LASTSOCKET`) and added a check to return an error.
Patrick Steinhardt 5fe5557e 2016-11-04T18:18:46 Merge pull request #3974 from libgit2/pks/synchronize-shutdown global: synchronize initialization and shutdown with pthreads
Patrick Steinhardt 6e2fab9e 2016-11-04T18:14:00 Merge pull request #3977 from jfultz/fix-forced-branch-creation-on-bare-repo
John Fultz f9793884 2016-10-28T14:32:01 branch: fix forced branch creation on HEAD of a bare repo 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.