Log

Author Commit Date CI Message
Vicent Marti 71223e1c 2014-01-02T05:09:36 Merge pull request #2020 from mrshu/patch-1 Updated fetch.c test to pass.
Marek Šuppa f38cb981 2013-12-31T11:27:32 Updated fetch.c test to pass. I am not sure why there was 6 in the first place.
Russell Belfer 868563cc 2013-12-30T11:41:16 Merge pull request #2015 from txdv/patch-1 docs: Remove non existing wrapper from the readme
Andrius Bentkus 7b50c784 2013-12-27T15:15:48 docs: Remove non existing wrapper from the readme libgit2net stopped to exist, all hail libgit2sharp
Vicent Marti 4e1f517c 2013-12-18T09:33:45 Merge pull request #1920 from libgit2/cmn/ref-with-log Reference operations with log
Vicent Marti a7ecd1a9 2013-12-13T07:29:27 Merge pull request #2000 from ethomson/overwrite_ignored Overwrite ignored files on checkout
Edward Thomson bf4a577c 2013-12-13T10:10:32 Overwrite ignored directories on checkout
Edward Thomson 81a2012d 2013-12-12T11:30:50 Overwrite ignored files on checkout
Vicent Marti 79194bcd 2013-12-13T06:20:19 Merge pull request #1986 from libgit2/rb/error-handling-cleanups Clean up some error handling and change callback error behavior
Vicent Marti 7a16d54b 2013-12-13T12:47:51 pool: Agh, this test doesn't really apply in 32-bit machines The size_t is 32-bit already, so it overflows before going into the function. The `-1` test should handle this gracefully in both cases anyway.
Vicent Marti 437f7d69 2013-12-13T12:41:22 pool: Correct overflow checks Ok, scrap the previous commit. This is the right overflow check that takes care of 64 bit overflow **and** 32-bit overflow, which needs to be considered because the pool malloc can only allocate 32-bit elements in one go.
Vicent Marti ce33645f 2013-12-13T12:25:48 pool: Cleanup error handling in pool_strdup Note that `git_pool_strdup` cannot really return any error codes, because the pool doesn't set errors on OOM. The only place where `giterr_set_oom` is called is in `git_pool_strndup`, in a conditional check that is always optimized away. `n + 1` cannot be zero if `n` is unsigned because the compiler doesn't take wraparound into account. This check has been removed altogether because `size_t` is not particularly going to overflow.
Russell Belfer 25a1fab0 2013-12-12T14:58:18 Merge pull request #2001 from ethomson/merge_version_validate Validate struct versions in merge, revert
Edward Thomson 86a05ef3 2013-12-12T17:40:40 Validate struct versions in merge, revert
Russell Belfer 452c7de6 2013-12-12T14:16:40 Add git_treebuilder_insert test and clarify doc This wasn't being tested and since it has a callback, I fixed it even though the return value of this callback is not treated like any of the other callbacks in the API.
Russell Belfer 9cfce273 2013-12-12T12:11:38 Cleanups, renames, and leak fixes This renames git_vector_free_all to the better git_vector_free_deep and also contains a couple of memory leak fixes based on valgrind checks. The fixes are specifically: failure to free global dir path variables when not compiled with threading on and failure to free filters from the filter registry that had not be initialized fully.
Russell Belfer 11bd7a03 2013-12-12T11:14:51 More tests of canceling from callbacks This covers diff print, push, and ref foreach. This also has a fix for a small memory leak in the push tests.
Russell Belfer 7e3ed419 2013-12-11T16:56:17 Fix up some valgrind leaks and warnings
Russell Belfer 7697e541 2013-12-11T15:02:20 Test cancel from indexer progress callback This adds tests that try canceling an indexer operation from within the progress callback. After writing the tests, I wanted to run this under valgrind and had a number of errors in that situation because mmap wasn't working. I added a CMake option to force emulation of mmap and consolidated the Amiga-specific code into that new place (so we don't actually need separate Amiga code now, just have to turn on -DNO_MMAP). Additionally, I made the indexer code propagate error codes more reliably than it used to.
Russell Belfer 8b22d862 2013-12-11T11:55:00 More improvements to callback return value tests This time actually checking return values in diff notify tests and actually testing callbacks for the index all-all/update-all/etc functions.
Russell Belfer 8046b26c 2013-12-10T16:16:36 Try a test that won't assert on Linux
Russell Belfer 8f1066a0 2013-12-10T16:02:24 Update clone doc and tests for callback return val Clone callbacks can return non-zero values to cancel the clone. This adds some tests to verify that this actually works and updates the documentation to be clearer that this can happen and that the return value will be propagated back by the clone function.
Russell Belfer cbd04896 2013-12-10T14:38:35 Fix checkout notify callback docs and tests The checkout notify callback behavior on non-zero return values was not being tested. This adds tests, fixes a bug with positive values, and clarifies the documentation to make it clear that the checkout can be canceled via this mechanism.
Russell Belfer 19853bdd 2013-12-10T13:01:34 Update git_blob_create_fromchunks callback behavr The callback to supply data chunks could return a negative value to stop creation of the blob, but we were neither using GIT_EUSER nor propagating the return value. This makes things use the new behavior of returning the negative value back to the user.
Russell Belfer 373cf6a9 2013-12-09T10:17:47 Update docs for new callback return value behavior
Russell Belfer 26c1cb91 2013-12-09T09:44:03 One more rename/cleanup for callback err functions
Russell Belfer f10d7a36 2013-12-06T15:53:26 Further callback error check style fixes Okay, I've decided I like the readability of this style much better so I used it everywhere.
Russell Belfer c7b3e1b3 2013-12-06T15:42:20 Some callback error check style cleanups I find this easier to read...
Russell Belfer 60058018 2013-12-06T15:20:41 Fix C99 __func__ for MSVC
Russell Belfer dab89f9b 2013-12-04T21:22:57 Further EUSER and error propagation fixes This continues auditing all the places where GIT_EUSER is being returned and making sure to clear any existing error using the new giterr_user_cancel helper. As a result, places that relied on intercepting GIT_EUSER but having the old error preserved also needed to be cleaned up to correctly stash and then retrieve the actual error. Additionally, as I encountered places where error codes were not being propagated correctly, I tried to fix them up. A number of those fixes are included in the this commit as well.
Russell Belfer 96869a4e 2013-12-03T16:45:39 Improve GIT_EUSER handling This adds giterr_user_cancel to return GIT_EUSER and clear any error message that is sitting around. As a result of using that in places, we need to be more thorough with capturing errors that happen inside a callback when used internally. To help with that, this also adds giterr_capture and giterr_restore so that when we internally use a foreach-type function that clears errors and converts them to GIT_EUSER, it is easier to restore not just the return value, but the actual error message text.
Russell Belfer 9f77b3f6 2013-11-25T14:21:34 Add config read fns with controlled error behavior This adds `git_config__lookup_entry` which will look up a key in a config and return either the entry or NULL if the key was not present. Optionally, it can either suppress all errors or can return them (although not finding the key is not an error for this function). Unlike other accessors, this does not normalize the config key string, so it must only be used when the key is known to be in normalized form (i.e. all lower-case before the first dot and after the last dot, with no invalid characters). This also adds three high-level helper functions to look up config values with no errors and a fallback value. The three functions are for string, bool, and int values, and will resort to the fallback value for any error that arises. They are: * `git_config__get_string_force` * `git_config__get_bool_force` * `git_config__get_int_force` None of them normalize the config `key` either, so they can only be used for internal cases where the key is known to be in normal format.
Russell Belfer 25e0b157 2013-12-06T15:07:57 Remove converting user error to GIT_EUSER This changes the behavior of callbacks so that the callback error code is not converted into GIT_EUSER and instead we propagate the return value through to the caller. Instead of using the giterr_capture and giterr_restore functions, we now rely on all functions to pass back the return value from a callback. To avoid having a return value with no error message, the user can call the public giterr_set_str or some such function to set an error message. There is a new helper 'giterr_set_callback' that functions can invoke after making a callback which ensures that some error message was set in case the callback did not set one. In places where the sign of the callback return value is meaningful (e.g. positive to skip, negative to abort), only the negative values are returned back to the caller, obviously, since the other values allow for continuing the loop. The hardest parts of this were in the checkout code where positive return values were overloaded as meaningful values for checkout. I fixed this by adding an output parameter to many of the internal checkout functions and removing the overload. This added some code, but it is probably a better implementation. There is some funkiness in the network code where user provided callbacks could be returning a positive or a negative value and we want to rely on that to cancel the loop. There are still a couple places where an user error might get turned into GIT_EUSER there, I think, though none exercised by the tests.
Russell Belfer fcd324c6 2013-12-06T15:04:31 Add git_vector_free_all There are a lot of places that we call git__free on each item in a vector and then call git_vector_free on the vector itself. This just wraps that up into one convenient helper function.
Russell Belfer 0eedacb0 2013-12-11T10:39:36 Merge pull request #1985 from libgit2/diff-rename-config Rename detection using diff.renames
Ben Straub 5a52d6be 2013-12-11T06:43:17 Check version earlier
Vicent Marti 65e9dc65 2013-12-09T08:55:00 Merge pull request #1996 from ethomson/warnings Clean up warnings
Edward Thomson 5588f073 2013-12-09T10:25:36 Clean up warnings
Carlos Martín Nieto f2105129 2013-11-23T14:39:53 refs: expose has_log() on the backend The frontend used to look at the file directly, but that's obviously not the right thing to do. Expose it on the backend and use that function instead.
Carlos Martín Nieto 8d5ec910 2013-11-23T14:13:01 refs: expose a way to ensure a ref has a log Sometimes (e.g. stash) we want to make sure that a log will be written, even if it's not in one of the standard locations. Let's make that easier.
Carlos Martín Nieto 6f13a305 2013-11-17T23:26:49 reflog: write to the reflog following git's rules git-core only writes to the reflogs of HEAD, refs/heads/ and, refs/notes/ or if there is already a reflog in place. Adjust our code to follow these semantics.
Edward Thomson 07c5dc84 2013-12-08T12:36:48 Merge pull request #1994 from palistov/commit-cleanup commit: Fix potential segfault
Paul Holden be0a1a79 2013-12-08T02:03:05 commit: Fix potential segfault in git_commit_message Dereferencing commit pointer before asserting
Vicent Marti 65e726a8 2013-12-08T06:43:52 Merge pull request #1993 from jaredlwong/development Fixed left shift size of int.
Jared Wong 307a3d67 2013-12-08T01:50:10 Fixed left shift size of int. Simply switched the ordering of the checks in the for loop where this left shift was being made.
Ben Straub a7c83aec 2013-12-06T13:39:08 Clarify docs
Ben Straub 7fb4147f 2013-12-06T13:38:59 Don't clobber whitespace settings
Ben Straub 710f3838 2013-12-06T09:32:09 Clarify default value and behavior
Vicent Martí c4fcae5f 2013-12-06T04:29:59 Merge pull request #1989 from palistov/blame-cleanup blame.c: Remove unnecessary error-check and goto
Paul Holden 8f460f2c 2013-12-05T20:41:12 blame.c: Remove unnecessary error-check and goto In private function 'load_blob'.
Ben Straub 628e92cd 2013-12-05T14:47:04 Don't use weird return codes
Ben Straub c56c6d69 2013-12-05T14:13:46 Implement GIT_DIFF_FIND_BY_CONFIG
Vicent Martí 98c248d7 2013-12-05T08:43:29 Merge pull request #1988 from mgbowen/fix-libssh2-windows Fixed compilation on Windows when using libssh2.
mgbowen ed5b77b0 2013-12-05T11:13:58 Fixed compilation on Windows when using libssh2.
Ben Straub a6ebc2bd 2013-12-04T15:17:39 Introduce GIT_DIFF_FIND_BY_CONFIG
Edward Thomson cf297c35 2013-12-03T08:03:56 Merge pull request #1984 from ethomson/revert_fix Reorder revert test variable decls
Edward Thomson d192e60b 2013-12-03T10:47:18 Reorder var decls in revert test Oh, MSVC.
Vicent Martí 9f802b5b 2013-12-03T07:40:30 Merge pull request #1983 from ethomson/revert Bare naked merge and rebase
Edward Thomson eac938d9 2013-12-02T14:10:04 Bare naked merge and rebase
Vicent Martí 553d3373 2013-12-03T07:05:52 Merge pull request #1982 from linquize/revert.h Include git2/revert.h in git2.h
Linquize d706e843 2013-12-03T23:00:50 Include git2/revert.h in git2.h
Vicent Martí a149a189 2013-12-03T02:14:28 Merge pull request #1981 from jamill/download_cancel_tweaks Updates to cancellation logic during download and indexing of packfile.
Vicent Martí db0a7e39 2013-12-03T02:11:55 Merge pull request #1977 from ethomson/revert Revert support for a single commit
Jameson Miller db4cbfe5 2013-12-02T14:09:12 Updates to cancellation logic during download and indexing of packfile.
Edward Thomson bab0b9f2 2013-11-22T18:02:12 clean up state metadata more consistently
Edward Thomson 300d192f 2013-12-02T11:15:27 Introduce git_revert to revert a single commit
Vicent Martí 96fb6a64 2013-12-02T13:56:28 Merge pull request #1979 from libgit2/rb/diff-find-delete-unmod Add GIT_DIFF_FIND_REMOVE_UNMODIFIED flag and fix copy detection bug
Russell Belfer f62c174d 2013-12-02T13:49:58 GIT_DIFF_FIND_REMOVE_UNMODIFIED sounds better
Russell Belfer 97ad85b8 2013-12-02T13:30:05 Add GIT_DIFF_FIND_DELETE_UNMODIFIED flag When doing copy detection, it is often necessary to include UNMODIFIED records in the git_diff so they are available as source records for GIT_DIFF_FIND_COPIES_FROM_UNMODIFIED. Yet in the final diff, often you will not want to have these UNMODIFIED records. This adds a flag which marks these UNMODIFIED records for deletion from the diff list so they will be removed after the rename detect phase is over.
Russell Belfer 2123a17f 2013-12-02T13:27:06 Fix bug making split deltas a COPIED targets When FIND_COPIES is used in combination with BREAK_REWRITES for rename detection, there was a bug where the split MODIFIED delta was only used as a target for RENAME records and not for COPIED records. This fixes that, converting the split into a pair of DELETED and COPIED deltas when that circumstance arises.
Vicent Martí da02ebe3 2013-12-02T11:59:31 Merge pull request #1978 from libgit2/rb/cmake-find-iconv Improve iconv finding for cmake
Russell Belfer 726b75d1 2013-12-02T11:32:37 Improve iconv finding for cmake * add FindIconv helper for CMake iconv detection * only default using iconv to ON for MacOS * update pkg-config generation to include iconv dependency better
Vicent Martí 14984af6 2013-12-01T04:10:51 Merge pull request #1975 from nikai3d/patch-2 fix typos in docs
Nicolas Kaiser 27f680a9 2013-12-01T10:35:56 fix typos in docs
Vicent Martí ca1fba51 2013-11-27T05:36:13 Merge pull request #1974 from ghedo/strnlen posix: Solaris doesn't have strnlen either
Alessandro Ghedini 758f2f10 2013-11-27T14:17:40 posix: Solaris doesn't have strnlen either
Carlos Martín Nieto 13c9e44a 2013-11-14T19:41:09 reflog: remove git_reflog_append_to() This was a convenience method for the refs front-end to do the reflog writing. This is now done in the backend and it has no more reason for being.
Carlos Martín Nieto a57dd3b7 2013-11-13T18:15:20 reflog: integrate into the ref writing Whenever a reference is created or updated, we need to write to the reflog regardless of whether the user gave us a message, so we shouldn't leave that to the ref frontend, but integrate it into the backend. This also eliminates the race between ref update and writing to the reflog, as we protect the reflog with the ref lock. As an additional benefit, this reflog append on the backend happens by appending to the file instead of parsing and rewriting it.
Carlos Martín Nieto 110df893 2013-11-13T13:36:37 refdb: add a `message` parameter for appending to the log This is as yet unused.
Carlos Martín Nieto a6b50808 2013-10-30T17:24:36 refs: adjust to the new reflog API
nulltoken ca84e058 2013-05-14T16:40:09 refs: Introduce git_reference_symbolic_set_target_with_log()
nulltoken 14ab0e10 2013-05-14T16:07:33 refs: Introduce git_reference_set_target_with_log()
nulltoken 56ad3782 2013-05-13T17:44:39 refs: Introduce git_reference_symbolic_create_with_log()
nulltoken bba25f39 2013-05-13T16:21:09 refs: Introduce git_reference_create_with_log()
nulltoken 92f95a17 2013-05-12T14:16:13 refs: Centralize reference creation logic
Vicent Martí a2e873d1 2013-11-20T07:06:35 Merge pull request #1972 from ghedo/ssh_agent ssh: add support for ssh-agent authentication
Alessandro Ghedini 138e014c 2013-11-20T14:20:32 transport: document ssh-agent authentication
Alessandro Ghedini ee7040fd 2013-11-20T14:11:44 ssh: add support for ssh-agent authentication
Vicent Marti 43cb8b32 2013-11-20T12:53:33 libgit2 0.20.0 "anmeldung" Apologies for the delay. This release is chunky, but you're probably used to chunky releases by now. Full changelog follows: Internal changes + Added support for decomposed Unicode paths in Mac OS X + Added support for junctions in win32 + Fixed issues with HTTP redirects in the network stack + Performance improvements (as always) git2/blame.h + added full support for blame operations git2/blob.h + added `git_blob_filtered_content` to load blobs in memory with their corresponding filters applied git2/branch.h + added branch iterators as an alternative to the callback-based API git2/buffer.h + exported the git_buf struct to allow binary buffers to be passed from/to the library. This simplifies several APIs git2/checkout.h + implemented additional checkout options ('skip unmerged', 'use ours' and 'use theirs') git2/clone.h + simplified the clone API + added new `git_clone_into` to clone into an existing (empty) repository git2/commit.h + added APIs to access the raw (uncleaned) text of a commit message git2/common.h + added global options to set the default paths to load templates from git2/config.h + added multivar iterators + added globbing iterator + added `git_config_foreach_match` to perform operations on every single var in a config file git2/diff.h + restructured and simplified the diff API git2/filter.h + added external APIs to configure and apply custom filters to checked out blobs git2/index.h + `git_index_read` can now force a reload of the index file even if it hasn't changed on-disk git2/indexer.h + improved the streaming indexer APIs git2/merge.h + added support for merge! git2/object.h + added helper API to lookup a generic object by path git2/pack.h + added progress callbacks to the packbuilder git2/patch.h + added support for patch generation as part of the Diff API revamp git2/pathspec.h + added helper APIs to work with pathspecs and match files in the workdir or diffs git2/push.h + added progress callbacks to push git2/reflog.h + changed reflog APIs to work on reference names instead of the references themselves, so they become less racy git2/remote.h + added support for setting refspecs on remotes, either at creation or on existing ones + simplified the remotes API git2/revwalk.h + add API to simplify parents during a walk git2/signature.h + add helper to create a signature with the default values for a repository (i.e. the set `user.name` and `user.email` values, and the current time) git2/submodules.h + improve the status detection for submodules git2/sys/ + exported many new internal APIs, such as pluggabe transport APIs -vmg, out
Carlos Martín Nieto 1b3fe73c 2013-11-20T11:52:57 Formatting fix for cred_acquire_cb
Vicent Martí e479628a 2013-11-19T11:36:02 Merge pull request #1966 from nickh/patch_content_offsets Add content offset to git_diff_line
Vicent Martí 7146eff3 2013-11-19T09:15:30 Merge pull request #1970 from ghedo/netbsd_qsort util: NetBSD doesn't have qsort_r either
Alessandro Ghedini 963edd9b 2013-11-19T17:58:58 util: NetBSD doesn't have qsort_r either
Vicent Martí 47a9a629 2013-11-19T05:29:37 Merge pull request #1969 from libgit2/ntk/fix/drop_comment Cleaning up
nulltoken 65f67857 2013-11-19T14:25:30 tests: Drop unrelated comment
Vicent Martí e544a5b8 2013-11-19T04:54:31 Merge pull request #1968 from libgit2/ntk/fix/bad_index Corrupted index is bad for your health
nulltoken bd15b513 2013-11-19T13:24:10 index: Free the index on git_index_open() failure
nulltoken a5d73188 2013-11-19T13:16:09 tree-cache: Fix error message typo
nulltoken 3d523345 2013-11-19T13:15:47 tree-cache: Don't segfault upon corruption
nulltoken 82e6a42c 2013-11-19T13:13:51 tree-cache: Zero out the allocated tree children array