Log

Author Commit Date CI Message
Carlos Martín Nieto ca2466ff 2015-06-29T15:02:19 CHANGELOG: add submodule changes
Vicent Marti b977d017 2015-06-29T12:27:09 Merge pull request #3268 from libgit2/vmg/pkg-config-sort pkg-config: Sort the different sections
Vicent Marti 6a5fb1f4 2015-06-29T12:20:01 pkg-config: Sort the different sections Because of the fact that pkg-config is pants-on-head retarded and that the Linux linker *requires* a static library to come before all its dynamic dependencies in the link path, calling `pkg-config --libs --static` was generating the wrong flags for linking. Before this patch: -Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/local/lib -lcurl -lssh2 -lrt -lgit2 -lssl -lcrypto -ldl -lz After this patch: -Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/local/lib -lgit2 -lcurl -lssh2 -lrt -lssl -lcrypto -ldl -lz By setting the "Libs" line before all other rules, we make sure that `-lgit2` is the first library in the link path and that it gets its symbols resolved with the libraries coming after it. This fix (ab)uses an implementation detail in `pkg-config` (namely, that flags are output as they are found on the file), but this detail seems to be stable between releases and always gives a stable output.
Carlos Martín Nieto 84d5a98f 2015-06-28T14:53:30 Bump version to 0.23.0 and SOVERSION to 23
Carlos Martín Nieto fb84cde8 2015-06-28T14:34:30 Merge pull request #3267 from libgit2/cmn/libs-list CMake: treat the ld flags as a list
Carlos Martín Nieto fd2d11a1 2015-06-28T13:57:06 CMake: treat the ld flags as a list These are treated as a list by CMake itself, which means that treating them as a simple string can put semicolons in our ld command-line if we have libraries which are not installed on the standard locations. Treat the variable as a CMake list and replace it with the space-delimited list just before writing it out to our pc file.
Carlos Martín Nieto fa399750 2015-06-27T21:26:27 Merge pull request #3265 from libgit2/leaks Plug a bunch of leaks
Carlos Martín Nieto 92ec9ed3 2015-06-27T21:15:00 Merge pull request #3260 from ethomson/apply_with_reflog_indices stash: test we apply using reflog-like indices
Carlos Martín Nieto b4d2c7cb 2015-06-27T20:34:04 Merge pull request #3264 from arthurschreiber/fast-builds Fast builds?
Arthur Schreiber 32f538ae 2015-06-27T15:02:53 Remove dependency installation file for travis builds. We're installing dependencies via the APT addon now.
Arthur Schreiber b48dfe0b 2015-06-27T14:54:19 Always install valgrind via the apt addon.
Carlos Martín Nieto 24fa21f3 2015-06-26T18:59:53 index, iterator, fetchhead: plug leaks
Carlos Martín Nieto afd8a94e 2015-06-26T18:49:39 checkout: plug a few leaks
Carlos Martín Nieto 9568660f 2015-06-26T18:31:39 diff: fix leaks in diff printing
Carlos Martín Nieto cfafeb84 2015-06-26T18:11:05 Merge pull request #3263 from git-up/fixes Fixes
Arthur Schreiber 51f87999 2015-06-26T18:05:17 Don't try to start ssh.
Arthur Schreiber 76d7c359 2015-06-26T17:58:45 Fast builds?
Edward Thomson ee6eed51 2015-06-25T19:04:04 stash: test we apply using reflog-like indices
Carlos Martín Nieto 354268ca 2015-06-26T17:46:35 Merge pull request #3259 from ethomson/stash_apply_argh Stash apply: stage new files even when not updating the index
Carlos Martín Nieto 3c7a4697 2015-06-26T17:45:33 Merge pull request #3262 from libgit2/vmg/prefix-len Desenfuckenate prefix lookups
Pierre-Olivier Latour 492851c9 2015-06-26T08:18:06 Removed unused variables
Pierre-Olivier Latour cae2a555 2015-06-26T08:17:56 Fixed build failure if GIT_CURL is not defined
Vicent Marti 13e5e344 2015-06-26T16:52:26 test-diff-blob: Pass proper nibble sizes
Vicent Marti a2f8d1ae 2015-06-26T16:48:58 revparse: Add test to make sure this doesn't regress
Vicent Marti 3d9ef2dc 2015-06-26T16:45:42 Revert "object: correct the expected ID size in prefix lookup" This reverts commit 969d4b703c910a8fd045baafbcd243b4c9825316. This was a fluke from Coverity. The length to all the APIs in the library is supposed to be passed in as nibbles, not bytes. Passing it as bytes would prevent us from parsing uneven-sized SHA1 strings. Also, the rest of the library was still using nibbles (including revparse and the odb_prefix APIs), so this change was seriously breaking things in unexpected ways. ^^
Carlos Martín Nieto 14888070 2015-06-26T16:05:05 Merge pull request #3261 from libgit2/cmn/link-one-level pc: Put libcurl and libssh2 in Libs.private
Carlos Martín Nieto 790cabf0 2015-06-26T13:51:41 pc: Put libcurl and libssh2 in Libs.private Pass on to whoever wants to link to libgit2 statically the flags that we would have used for these libraries. Putting them in Requires.private as we do now makes pkg-config put their dependencies in the linker arguments as well, which is not what we want.
Carlos Martín Nieto 34181825 2015-06-26T11:41:14 Merge pull request #3234 from ethomson/dont_update_index_unnecessarily Dont update index unnecessarily
Pierre-Olivier Latour c2e1b058 2015-06-05T18:26:49 Only write index if updated when passing GIT_DIFF_UPDATE_INDEX When diffing the index with the workdir and GIT_DIFF_UPDATE_INDEX has been passed, the previous implementation was always writing the index to disk even if it wasn't modified.
Edward Thomson 619423f2 2015-06-19T11:11:12 diff: test we don't update index unnecessarily Test that workdir diffs, when presented with UPDATE_INDEX, only write the index when they actually make a change.
Edward Thomson c0280bdd 2015-06-25T18:55:48 Merge pull request #3255 from libgit2/cmn/rename-unspecified Rename FALLBACK to UNSPECIFIED
Carlos Martín Nieto 552249f9 2015-06-26T00:49:28 Merge pull request #3258 from arthurschreiber/patch-6 List `libcurl` in the generated `libgit2.pc`
Edward Thomson b7f5cb8d 2015-06-20T19:33:15 stash: stage new files when unstashing them Files that were new (staged additions) in the stash tree should be staged when unstashing, even when not applying the index.
Edward Thomson 8960dc1e 2015-06-24T18:10:30 iterator: provide git_iterator_walk Provide `git_iterator_walk` to walk each iterator in lockstep, returning each iterator's idea of the contents of the next path.
Edward Thomson 82b1c93d 2015-06-20T13:44:22 stash: don't allow apply with staged changes
Edward Thomson 1db6a0ab 2015-06-19T17:29:59 stash apply: add a newly staged file to tests
Arthur Schreiber 65f2d155 2015-06-25T21:49:48 List `libcurl` in the generated `libgit2.pc`
Edward Thomson 3b66c6a3 2015-06-25T15:36:53 Merge pull request #3256 from libgit2/cmn/fetch-spec-fetchhead remote: insert refspecs with no rhs in FETCH_HEAD
Edward Thomson 87987fd1 2015-06-25T15:26:43 Merge pull request #3246 from libgit2/cmn/dont-grow-borrowed Don't allow growing borrowed buffers
Carlos Martín Nieto 23aa7c90 2015-06-25T13:40:38 remote: insert refspecs with no rhs in FETCH_HEAD When a refspec contains no rhs and thus won't cause an explicit update, we skip all the logic, but that means that we don't update FETCH_HEAD with it, which is what the implicit rhs is. Add another bit of logic which puts those remote heads in the list of updates so we put them into FETCH_HEAD.
Carlos Martín Nieto c2418f46 2015-06-25T12:48:44 Rename FALLBACK to UNSPECIFIED Fallback describes the mechanism, while unspecified explains what the user is thinking.
Carlos Martín Nieto 3cf91d98 2015-06-24T20:21:54 Add CHANGELOG entries
Carlos Martín Nieto a6599235 2015-06-24T19:32:56 buffer: make use of EINVALID for growing a borrowed buffer This explains more closely what happens. While here, set an error message.
Carlos Martín Nieto 189aad45 2015-06-24T19:32:07 errors: introduce EINVALID We've been using EINVALIDSPEC for a while to mean this, but that name is too specific. Introduce this to be more explicit.
Carlos Martín Nieto bd470d00 2015-06-23T15:21:12 blob: don't recomment using git_buf_grow We currently recommend using `git_buf_grow` in order to make a buffer make an owned copy of the memory it points to. This is not behaviour we should encourage, so remove this recommendation. The function itself is not changed, as we need to remain compatible, but it will be changed not to allow usage on borrowed buffers.
Carlos Martín Nieto caab22c0 2015-06-23T15:41:58 buffer: don't allow growing borrowed buffers When we don't own a buffer (asize=0) we currently allow the usage of grow to copy the memory into a buffer we do own. This muddles the meaning of grow, and lets us be a bit cavalier with ownership semantics. Don't allow this any more. Usage of grow should be restricted to buffers which we know own their own memory. If unsure, we must not attempt to modify it.
Carlos Martín Nieto daacf96d 2015-06-24T23:34:40 Merge pull request #3097 from libgit2/cmn/submodule-config-state Remove run-time configuration settings from submodules
Carlos Martín Nieto e1f434f8 2015-06-24T23:33:46 Merge pull request #3183 from libgit2/cmn/curl-stream Implement a cURL stream
Carlos Martín Nieto 9d5efab8 2015-06-24T21:13:23 Merge pull request #3254 from ethomson/diff-binary-patch Handle binary DIFFABLEness properly
Carlos Martín Nieto c2f274c6 2015-06-24T19:47:34 Merge pull request #3250 from ethomson/stash Stash workdir correctly when added in the index, modified in the workdir
Edward Thomson 54077091 2015-06-24T12:06:41 diff: determine DIFFABLE-ness for binaries Always set `GIT_DIFF_PATCH_DIFFABLE` for all files, regardless of binary-ness, so that the binary callback is invoked to either show the binary contents, or just print the standard "Binary files differ" message. We may need to do deeper inspection for binary files where we have avoided loading the contents into a file map.
Edward Thomson ba8fb7c4 2015-06-24T11:39:59 diff::binary tests: empty diff when forced binary Ensure that even when we're forcing a binary diff that we do not assume that there *is* a diff. There should be an empty diff for no change.
Carlos Martín Nieto 58ca8c7e 2015-06-24T17:27:16 SecureTransport: use the curl stream if available If the libcurl stream is available, use that as the underlying stream instead of the socket stream. This allows us to set a proxy for HTTPS connections.
Carlos Martín Nieto 8443f492 2015-06-11T16:57:04 curl: remove the encrypted param to the constructor We do not want libcurl to perform the TLS negotiation for us, so we don't need to pass this option.
Carlos Martín Nieto f97d5d09 2015-06-11T16:54:48 http: ask for the curl stream for non-encrypted connections The TLS streams talk over the curl stream themselves, so we don't need to ask for it explicitly. Do so in the case of the non-encrypted one so we can still make use proxies in that case.
Carlos Martín Nieto e247649d 2015-06-11T16:50:44 openssl: use the curl stream if available When linking against libcurl, use it as the underlying transport instead of straight sockets. We can't quite just give over the file descriptor, as curl puts it into non-blocking mode, so we build a custom BIO so OpenSSL sends the data through our stream, be it the socket or curl streams.
Carlos Martín Nieto cdee630f 2015-06-09T19:07:58 curl: extract certificate information The information is exposed by curl for some crypto libraries in the form of name:content strings. We can't do much more than return this information.
Carlos Martín Nieto 8762d721 2015-06-07T14:51:10 http: set the proxy if the stream supports it Of the built-in ones, only cURL support it, but there's no reason a user-provided stream wouldn't support it.
Carlos Martín Nieto 1376e784 2015-06-07T14:42:13 stream: add support for setting a proxy If the stream claims to support this feature, we can let the transport set the proxy. We also set HTTPPROXYTUNNEL option so curl can create a tunnel through the proxy which lets us create our own TLS session (if needed).
Carlos Martín Nieto ede517bc 2015-06-06T09:40:50 curl: add CHANGELOG and THREADING entries
Carlos Martín Nieto 8dea1c21 2015-06-05T11:02:11 Implement a curl stream cURL has a mode in which it acts a lot like our streams, providing send and recv functions and taking care of the TLS and proxy setup for us. Implement a new stream which uses libcurl instead of raw sockets or the TLS libraries directly. This version does not support reporting certificates or proxies yet.
Carlos Martín Nieto cf9d5f76 2015-06-03T04:57:00 curl: find and link with the library if it's available by default
Carlos Martín Nieto 76633215 2015-06-24T14:25:36 binary diff: test that the diff and patch otputs are the same We test the generation of the textual patch via the patch function, which are just one of two possibilities to get the output. Add a second patch generation via the diff function to make sure both outputs are in sync.
Edward Thomson aacfd03d 2015-06-24T00:30:19 Merge pull request #3251 from git-up/fixes Fixes
Pierre-Olivier Latour 6a8f3fa8 2015-06-23T20:59:03 Fixed invalid error handling in git_repository_open_ext()
Pierre-Olivier Latour 8113056c 2015-06-23T20:57:09 Fixed Xcode 6.1 build warnings
Edward Thomson cc605e73 2015-06-23T23:52:03 Merge pull request #3222 from git-up/conflicted Fixed GIT_DELTA_CONFLICTED not returned in some cases
Edward Thomson 09f3364d 2015-06-23T23:40:02 Merge pull request #3131 from urkud/const-char Add `const` qualifier
Edward Thomson bd670abd 2015-06-23T23:30:58 Merge pull request #3226 from libgit2/cmn/racy-diff-again racy-git, the missing link
Edward Thomson 8351abc7 2015-06-23T23:17:18 Merge pull request #3249 from libgit2/cmn/repo-version-check Check the repository version
Edward Thomson 90177111 2015-06-23T16:27:33 stash: save the workdir file when deleted in index When stashing the workdir tree, examine the index as well. Using a mechanism similar to `git_diff_tree_to_workdir_with_index` allows us to determine that a file was added in the index and subsequently modified in the working directory. Without examining the index, we would erroneously believe that this file was untracked and fail to include it in the working directory tree. Use a slightly modified `git_diff_tree_to_workdir_with_index` in order to avoid some of the behavior custom to `git diff`. In particular, be sure to include the working directory side of a file when it was deleted in the index.
Edward Thomson 14304b0e 2015-06-23T16:27:17 stash tests: ensure we save the workdir file Ensure that when a file is added in the index and subsequently modified in the working directory, the stashed working directory tree contains the actual working directory contents.
Edward Thomson 5ef43d41 2015-06-23T10:29:59 git_diff__merge: allow pluggable diff merges
Edward Thomson 83ba5e36 2015-06-22T18:43:13 diff_tform: remove reversed copy of delta merger Drop `git_diff__merge_like_cgit_reversed`, since it's a copy and paste mess of slightly incompatible changes.
Carlos Martín Nieto 16c73d38 2015-06-23T20:44:27 repository: check the format version This is something we do on re-init but not when opening a repository. This hasn't particularly mattered up to now as the version has been 0 ever since the first release of git, but the times, they're a-changing and we will soon see version 1 in the wild. We need to make sure we don't open those.
Carlos Martín Nieto 99e11cdd 2015-06-23T20:43:49 repository: don't error out if there is no version git will assume the repository format version is 0 if the value is not there. Do the same.
Pierre-Olivier Latour 8d8a2eef 2015-06-15T11:14:40 Fixed GIT_DELTA_CONFLICTED not returned in some cases If an index entry for a file that is not in HEAD is in conflicted state, when diffing HEAD with the index, the status field of the corresponding git_diff_delta was incorrectly reported as GIT_DELTA_ADDED instead of GIT_DELTA_CONFLICTED. This was due to handle_unmatched_new_item() initially setting the status to GIT_DELTA_CONFLICTED but then overriding it later with GIT_DELTA_ADDED.
Carlos Martín Nieto 0c34fa50 2015-06-23T14:08:20 Merge pull request #3228 from git-up/diff_merge Explicitly handle GIT_DELTA_CONFLICTED in git_diff_merge()
Pierre-Olivier Latour cb63e7e8 2015-06-17T08:55:09 Explicitly handle GIT_DELTA_CONFLICTED in git_diff_merge() This fixes a bug where if a file was in conflicted state in either diff, it would not always remain in conflicted state in the merged diff.
Carlos Martín Nieto 91c1833a 2015-06-22T19:44:05 Merge pull request #3199 from ethomson/crlf CRLF
Edward Thomson 146d0d08 2015-06-09T00:42:28 crlf: give Unix the glory of autocrlf=true Perform LF->CRLF for core.autocrlf=true on non-Win32 because core git does.
Edward Thomson 1e46d545 2015-06-09T03:50:00 crlf tests: ensure that Unix obeys autocrlf=true All platforms do terrible, horrible, no good, very bad translation when core.autocrlf=true. It's not just Windows!
Edward Thomson 8293c8f9 2015-06-08T13:51:28 git_buf_text_lf_to_crlf: allow mixed line endings Allow files to have mixed line endings instead of skipping processing on them.
Edward Thomson 47e9a6cb 2015-06-08T15:58:54 crlf: use statistics to control to workdir filter Use statistics (like core git) to control the behavior of the to workdir CRLF filter.
Edward Thomson 71686ddc 2015-06-08T11:55:04 clar: support hierarchical test resource data Support hierarchical test resource data, such that you can have `tests/resources/foo/bar` and move the `bar` directory in as a fixture. Calling `cl_fixture_sandbox` on a path that is not directly beneath the test resources directory succeeds, placing that directory into the test fixture. (For example, `cl_fixture_sandbox("foo/bar")` will sandbox the `foo/bar` directory as `bar`). Add support for cleaning up directories created this way, by only cleaning up the basename (in this example, `bar`) from the fixture directory.
Edward Thomson e774fa6c 2015-06-09T14:47:29 crlf tests: posix known-good data A corpus of files checked out with Git (Linux, 1.9.1) to ensure that produce identical data when checking out using a CRLF filter.
Edward Thomson 4ebe320a 2015-06-09T10:37:14 crlf tests: windows known-good data A corpus of files checked out with Git for Windows (2.4.1.windows.1) to ensure that we produce identical data when checking out using a CRLF filter.
Edward Thomson 3d92b9ab 2015-06-08T09:08:01 crlf tests: use known-good data produced by git Given a variety of combinations of core.autocrlf settings and attributes settings, test that we check out data into the working directory the same as a known-good test resource created by git.git.
Edward Thomson bf8c0a9b 2015-06-08T09:06:53 crlf: script to generate expected crlf data Include a shell script that will generate the expected CRLF data, calling git.git to capture its output as a test resource for the current platform.
Edward Thomson bd5e59ee 2015-06-08T09:04:39 crlf: include utf8 resources in master branch Include the UTF8 and UTF8 BOM tests in the master crlf test branch for completeness.
Edward Thomson 84f8f500 2015-06-05T10:11:50 crlf: include additional test resources Include additional test data for CRLF tests: files with mixed line endings and binary files.
Edward Thomson 0b6ed4f9 2015-06-22T11:24:20 Merge pull request #3240 from libgit2/cmn/commit-header-field commit: allow retrieving an arbitrary header field
Carlos Martín Nieto 783672fa 2015-05-11T12:01:08 submodule: remove the RESET enum values These are not useful anymore, as we don't affect the instance's configuration.
Carlos Martín Nieto 04963300 2015-05-11T11:57:05 submodule: test unsetting config options In addition to mapping enums to strings in the configuration, we need to know to delete the configuration option when given the "none" or "no" option.
Carlos Martín Nieto c4e3a3db 2015-05-09T11:22:57 submodule: handle writing out all enum values for settings We currently do not handle those enum values which require us to set "true" or unset variables in all cases. Use a common function which does understand this by looking at our mapping directly.
Carlos Martín Nieto 15c38103 2015-05-09T11:22:27 config: provide a function to reverse-lookup mapped cvars
Carlos Martín Nieto 7d6dacdc 2015-05-09T10:42:00 examples: adjust to submodule status API change
Carlos Martín Nieto 4536574a 2015-05-05T16:29:38 submodule: test more accurately for non-existence The current code will always fail, but only because it's asking for a string on a live config. Take a snapshot and make sure we fail with ENOTFOUND instead of any old error.
Carlos Martín Nieto adb58f7d 2015-05-05T16:21:57 submodule: fix potential leak in the tests
Carlos Martín Nieto 961861fa 2015-05-05T09:25:17 submodule: get rid of `_save()` We no longer have any setters which affect an instance, so `git_submodule_save()` is no longer relevant.