Log

Author Commit Date CI Message
Jakob Pfender 00556496 2011-05-19T14:59:10 signature.c: Move to new error handling mechanism
Jakob Pfender c0cd9d50 2011-05-19T14:57:41 revwalk.c: Move to new error handling mechanism
Jakob Pfender 4f664a1b 2011-05-19T14:51:16 repository.c: Move to new error handling mechanism
Vicent Marti 0d5d5190 2011-05-23T21:37:48 refs: Reword errors
Jakob Pfender 5bdf7b9f 2011-05-19T14:36:52 refs.c: Move to new error handling mechanism
Jakob Pfender bea54842 2011-05-19T13:50:46 oid.c: Move to new error handling mechanism
Vicent Marti f84d9819 2011-05-23T21:14:58 odb_pack: Reword errors
Jakob Pfender 267d539f 2011-05-19T13:38:12 odb_pack.c: Move to new error handling mechanism
Vicent Marti 60e1b49a 2011-05-23T21:12:18 odb_loose: Reword errors
Jakob Pfender dfb12cd5 2011-05-19T12:28:46 odb_loose.c: Move to new error handling mechanism
Jakob Pfender f93f8ec5 2011-05-19T12:27:43 odb_loose.c: Return GIT_ENOMEM when allocation fails When trying to inflate a buffer, a GIT_ERROR was returned when malloc() failed. Fix this to return GIT_ENOMEM.
Vicent Marti 1e85d1aa 2011-05-23T21:09:07 odb: Reword errors
Jakob Pfender d3d5d86d 2011-05-18T12:35:08 odb.c: Move to new error handling mechanism
Vicent Marti 6623f5c9 2011-05-23T21:05:43 object: Reword errors
Jakob Pfender 75eb97fe 2011-05-18T12:19:48 object.c: Move to new error handling mechanism
Vicent Marti 0be7f000 2011-05-23T21:04:09 hashtable: Reword errors
Jakob Pfender da533495 2011-05-18T12:12:16 hashtable.c: Move to new error handling mechanism
Vicent Marti d3ca89fe 2011-05-23T21:03:01 fileops: Cleanup
Jakob Pfender cc2ac058 2011-05-17T18:02:08 fileops.c: Move to new error handling mechanism
Vicent Marti f6328611 2011-05-23T21:00:19 filebuf: Reword errors
Jakob Pfender 374db5f9 2011-05-17T17:43:00 filebuf.c: Move to new error handling mechanism
Jakob Pfender 68384a27 2011-05-17T17:24:28 config.c: Fix format string error
Jakob Pfender 4152a44b 2011-05-17T17:22:33 delta-apply.c: Move to new error handling mechanism
Jakob Pfender 21dcb75a 2011-05-17T17:21:00 delta-apply.c: Use GIT_ENOMEM instead of GIT_ERROR when allocating git__delta_apply used to return with a generic GIT_ERROR when allocating memory for the delta failed. Fix this to return GIT_ENOMEM.
Vicent Marti 5c36f6db 2011-05-23T20:43:19 config: Cleanup
Vicent Marti 4c7a5e9e 2011-05-23T20:36:06 commit: Reword errors
Jakob Pfender 726c6fd2 2011-05-17T17:00:37 commit.c: Move to new error handling mechanism
Vicent Marti adef9922 2011-05-23T20:33:20 blob: Reword errors
Jakob Pfender 91369100 2011-05-17T16:50:49 blob.c: Move to new error handling mechanism
Vicent Marti b0b527e0 2011-05-20T03:20:12 config: Cleanup & renaming of the external API "git_config_backend" have been renamed to "git_config_file", which implements a generic interface to access a configuration file -- be it either on disk, from a DB or whatever mumbojumbo. I think this makes more sense.
Vicent Marti 8adbf2ed 2011-05-20T02:58:33 Rewrite `git_config_open_global` We have a lot of utility methods that make path building trivial. Use them!
Vicent Martí 274f2c21 2011-05-19T14:18:57 Merge pull request #193 from carlosmn/config A couple of config improvements
Vicent Martí 44d16d6f 2011-05-19T11:21:22 Merge pull request #198 from sschuberth/fix-typos Fix a few minor typos in comments and error messages
Vicent Marti f4e2aca2 2011-05-19T20:38:17 index: Fix issues in the unmerged entries API
Sebastian Schuberth 8133afef 2011-05-19T09:26:01 Fix a few minor typos in comments and error messages Regarding "initialize" vs. "initialise", www.dict.cc says the first is American English whereas the latter in British English. For consistency, we should stick to American English.
Vicent Martí 7b134cfe 2011-05-18T17:04:12 Merge pull request #141 from jpfender/unmerged index: Add API for unmerged entries
Vicent Martí 7d6274ba 2011-05-18T17:00:20 Merge pull request #197 from schu/errors Move odb.c to the new error handling
Vicent Martí 05e58576 2011-05-18T16:59:09 Merge pull request #194 from schu/must-pass-ret test_lib: add return value to git_test
Vicent Martí ba9cc91f 2011-05-18T16:58:24 Merge pull request #195 from RomainMuller/master Consider environment-specified CFLAGS
Vicent Martí 975eda2d 2011-05-18T16:57:36 Merge pull request #196 from sschuberth/cmake-msvc2010 Cmake msvc2010
schu 12de98c1 2011-05-18T18:00:34 Move odb.c to the new error handling Add missing free in git_odb_new(). Signed-off-by: schu <schu-github@schulog.org>
Sebastian Schuberth 765fdf4a 2011-05-18T17:19:38 Use "__inline" instead of "inline" with MSVC MSVC supports "inline" only in C++ code, not in C code.
Sebastian Schuberth 07234716 2011-05-18T16:46:56 Define str(n)casecmp for MSVC MSVC has _str(n)icmp instead.
Sebastian Schuberth 875a5c2d 2011-05-18T16:07:22 Ignore CMake files and generated Visual Studio files
Sebastian Schuberth 49041e78 2011-05-18T16:01:01 Fix mixed line endings in .gitignore
Romain Muller d1685ac7 2011-05-18T17:20:08 Have wscript use the environment-provided CFLAGS as per WAF's documented behavior.
schu 6628c256 2011-05-18T12:35:57 test_lib: add return value to git_test Save the return value of functions not passing must_pass() and report the returned error. Signed-off-by: schu <schu-github@schulog.org>
Carlos Martín Nieto 6421c49a 2011-05-17T18:55:52 Fix variable name normalization When I changed it over to use different strings for the variable and the name, cvar_name_normalize was left behind. Fix this and rename to cvar_normalize_name to reflect the incompatible change. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Jakob Pfender 9d27fd3b 2011-05-17T16:51:37 index.c: Fix typo git__rethrow was missing an underscore.
Jakob Pfender c90bfec7 2011-05-17T16:18:56 Move index.c to new error handling mechanism
Jakob Pfender 050e8877 2011-05-17T15:31:05 Merge branch 'development' into unmerged
Carlos Martín Nieto f44cbec4 2011-05-17T14:59:23 Add documentation for git_config_add_backend
Carlos Martín Nieto 32234541 2011-05-17T14:18:42 Implement git_config_open_global Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Vicent Marti c9662061 2011-05-17T15:12:25 t15: Remove unused variable
Vicent Marti 124fbb3d 2011-05-17T15:11:43 tests: Update NAMING file
Vicent Marti 0da2c700 2011-05-17T15:09:30 utils: Move git__str[n]tolower
Vicent Marti 128d3731 2011-05-17T15:05:41 config_file: Fix compilation
Vicent Marti 6adcb5f3 2011-05-17T15:04:18 utils: Implement git__strndup
Vicent Marti b3d94069 2011-05-17T14:51:42 repository: Properly free the index on close
Vicent Martí 62845c90 2011-05-17T05:11:06 Merge pull request #116 from carlosmn/test-naming tests: update NAMING file
Vicent Martí 587926ef 2011-05-17T04:54:25 Merge pull request #110 from carlosmn/config Implement config parsing. Finally!
Carlos Martín Nieto 29dca088 2011-05-17T13:38:19 Move config to the new error methods Take this opportunity to fix an instance of returning GIT_EOBJCORRUPTED when malloc failed. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Carlos Martín Nieto 94711cad 2011-05-17T12:12:59 Merge upstream/development
Vicent Marti 335d6c99 2011-05-17T01:46:07 cache: Drop cuckoo hashing Now we use a simple closed-addressing cache. Cuckoo hashing was creating too many issues with race conditions. Fuck that. Let's see what happens performance wise, we may have to roll back or come up with another way to implement an efficient multi-threaded cache.
Vicent Marti 3de79280 2011-05-17T00:51:52 cache: Fix deadlock Do not try to adquire the same node lock twice when the cuckoo hashing resolves to the same node.
Vicent Martí 1e70b96e 2011-05-16T08:05:10 Merge pull request #190 from alco/patch-1 Fix a typo in README.md
Alexei Sholik cce225bf 2011-05-16T01:56:20 Fix a typo in README.md
Vicent Marti 5ca2f580 2011-05-15T23:48:05 Do not set error message on `GIT_EREVWALKOVER` This is not really an error, just a special return code to mark the end of an iteration.
Vicent Marti f87d9beb 2011-05-15T23:46:39 Change error codes from DEFINEs to an enum
Vicent Marti 7cadd1f6 2011-05-15T23:46:22 Check error code from `git_cache_init`
Vicent Marti 4edf3e09 2011-05-15T23:45:24 Return success code on `git_cache_init`
Vicent Martí 3fe2e770 2011-05-15T13:34:43 Merge pull request #184 from nulltoken/repo-error-handling Updated fileops.c and repository.c to new error handling mechanism
Vicent Martí b12b7723 2011-05-15T10:16:36 Merge pull request #185 from chobie/development fix git_otype typo when calling `git_odb_read_header`.
Shuhei Tanuma 71747bca 2011-05-15T20:07:54 fix git_otype typo when calling `git_odb_read_header`.
nulltoken 81201a4c 2011-05-15T06:57:34 Move cache.c to the new error handling
nulltoken 3abe3bba 2011-05-14T16:05:33 Move repository.c to the new error handling
nulltoken 77c3999c 2011-05-14T14:40:56 Move fileops.c to the new error handling
Vicent Martí f02f4b53 2011-05-13T15:25:19 Merge pull request #183 from schu/errors Replace errors
Vicent Marti 098173c5 2011-05-13T04:17:24 Check Redis replies for NULL
Vicent Marti f31bd03f 2011-05-13T04:15:46 Include "common.h" in "errors.h"
Vicent Martí c4ddcb78 2011-05-11T11:49:45 Merge pull request #182 from darkhelmet/patch-1 Add --with-redis flag to list of available build flags in README.
schu b51c9269 2011-05-11T14:44:44 Move revwalk.c to the new error handling Signed-off-by: schu <schu-github@schulog.org>
schu 86f5fa78 2011-05-11T14:00:38 Move vector.c to the new error handling Remove "redundant" check for v->_cmp in wrapper function git_vector_bsearch(). Signed-off-by: schu <schu-github@schulog.org>
schu d6de92b6 2011-05-11T12:40:04 Move tree.c to the new error handling Signed-off-by: schu <schu-github@schulog.org>
schu cbcaf0c0 2011-05-11T12:09:40 Move blob.c to the new error handling Signed-off-by: schu <schu-github@schulog.org>
Daniel Huckstep 0e0f4fde 2011-05-10T15:33:07 Add --with-redis flag to list of available build flags in README.
Vicent Marti 40774549 2011-05-11T00:42:43 libgit2 v0.12.0 "absolutely no reason" Hey, welcome to yet another minor libgit2 release. Sorry for the delay from the last one. As you'll see the changelog is quite extensive -- hopefully from now on we'll stick to more frequent minor releases. Together with the usual bugfixes, here's a list of the new key features: * Distfiles This version comes with proper distfiles as requested in #131. These are available in the Downloads section of the GitHub project. * Error handling A new error handling API has been implemented that allows the library to return detailed error messages together with the generic error codes. We hope this will be a great when wrapping and integrating the library New external method to get the last detailed error message: + git_lasterror(void) The old `git_strerror` still exists, but will be deprecated in the future as soon as every method in the library returns a valid error message. The task of writing error messages for every method is quite daunting. We appreciate pull requests with more error messages. Check the new error handling documentation in the following commit: https://github.com/libgit2/libgit2/commit/fa59f18d0ddbbb98d45e33934fb0efc3e2bf1557 * Redis backend We now have a Redis backend courtesy of Dmitry Kovega. Just like the SQLite backend, this allows the library to store Git objects in a Redis key-value store. The backend requires the `hiredis` library. Use `--with-redis` when building libgit2 to enable building the backend if `hiredis` is available. * Commits New methods to access tree and parent data as a raw OID value instead of forcing a repository lookup + git_commit_tree_oid(git_commit *commit) + git_commit_parent_oid(git_commit *commit, unsigned int n) * Index The `git_index_add` method has been split into 4 different calls which allow for appending and replacing in-memory entries and on-disk files to the index. + git_index_add(git_index *index, const char *path, int stage) + git_index_add2(git_index *index, const git_index_entry *source_entry) + git_index_append(git_index *index, const char *path, int stage) + git_index_append2(git_index *index, const git_index_entry *source_entry) Index entries can now also be efficiently removed from the index: + git_index_remove(git_index *index, int position) * References Methods to force the creation and renaming of references, even if those already exist on the repository. + git_reference_create_symbolic_f(git_reference **ref_out, git_repository *repo, const char *name, const char *target) + git_reference_create_oid_f(git_reference **ref_out, git_repository *repo, const char *name, const git_oid *id) + git_reference_rename_f(git_reference *ref, const char *new_name) * Repository New auxiliary methods with repository information + git_repository_is_empty(git_repository *repo) + git_repository_path(git_repository *repo) + git_repository_workdir(git_repository *repo) * Signatures New method to create a signature with the current date/time + git_signature_now(const char *name, const char *email) * Tags Several wrappers to automate tag creation. + git_tag_create_frombuffer(git_oid *oid, git_repository *repo, const char *buffer) + git_tag_create_f(git_oid *oid, git_repository *repo, const char *tag_name, const git_oid *target, git_otype target_type, const git_signature *tagger, const char *message); + git_tag_create_fo(git_oid *oid, git_repository *repo, const char *tag_name, const git_object *target, const git_signature *tagger, const char *message) New functionality to delete and list tags in a repository without having to resort to the `references` API. + git_tag_delete(git_repository *repo, const char *tag_name) + git_tag_list(git_strarray *tag_names, git_repository *repo) * Trees All instances of `git_tree_entry` are now returned and handled as constant, to remind the user that these opaque types are not supposed to be manually free'd. The `git_tree_entry_2object` method now takes a `git_repository` argument which defines in which repository the resolved object should be looked up. (It is expected to be the same repository that contains the parent `git_tree` for the entry). + git_tree_entry_2object(git_object **object_out, git_repository *repo, const git_tree_entry *entry) New opaque type `git_treebuilder` with functionality to create and write trees on memory + git_treebuilder_create(git_treebuilder **builder_p, const git_tree *source) + git_treebuilder_clear(git_treebuilder *bld) + git_treebuilder_free(git_treebuilder *bld) + git_treebuilder_get(git_treebuilder *bld, const char *filename) + git_treebuilder_insert(git_tree_entry **entry_out, git_treebuilder *bld, const char *filename, const git_oid *id, unsigned int attributes) + git_treebuilder_remove(git_treebuilder *bld, const char *filename) + git_treebuilder_filter(git_treebuilder *bld, int (*filter)(const git_tree_entry *, void *), void *payload) + git_treebuilder_write(git_oid *oid, git_repository *repo, git_treebuilder *bld) New method to write an index file as a tree to the ODB. + git_tree_create_fromindex(git_oid *oid, git_index *index) Thanks to the usual guility parties that make this this happen, to all the new contributors who are starting to submit pull requests, and to the bindings developers who have to keep up with our shit. Feedback and questions welcome on libgit2@librelist.org Signed-off-by: Vicent Marti <tanoku@gmail.com>
Vicent Marti 6810bf28 2011-05-11T00:40:07 Move all error-related defines to `git2/errors.h`
Vicent Marti f4a936b5 2011-05-11T00:35:05 Bring back `git_strerror` We cannot totally deprecate this until the new error handling mechanisms are all in place.
Vicent Martí 86b74ea0 2011-05-10T14:26:16 Merge pull request #180 from kellypleahy/bug/fix_issue_79 Fix issue #79 - git_lasterror() isn't appearing in git2.dll in windows.
Vicent Martí 97ce36e7 2011-05-10T14:23:01 Merge pull request #181 from carlosmn/errors Move signature.c and tag.c to the new error handling
Carlos Martín Nieto 44dc0d26 2011-05-10T18:56:44 Move tag.c to the new error handling Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Carlos Martín Nieto 5de24ec7 2011-05-10T17:38:41 Move signature.c to the new error handling Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Carlos Martín Nieto c0335005 2011-05-06T12:42:47 Move config to a backend structure Configuration options can come from different sources. Currently, there is only support for reading them from a flat file, but it might make sense to read it from a database at some point. Move the parsing code into src/config_file.c and create an include file include/git2/config_backend.h to allow for other backends to be developed. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
kelly.leahy ab86f159 2011-05-09T23:39:32 Fix issue #79 - git_lasterror() isn't appearing in git2.dll in windows. The GIT_EXPORT macro is used to declare a function to be externally accessible to other libraries. This commit uses GIT_EXPORT to declare the git_lasterror() function as externally exported. I verified with depends.exe that the function is available to external callers (i.e. in the exports table of the PE file).
Vicent Marti 5711ca93 2011-05-09T21:58:26 Merge branch 'error-handling' into development
Vicent Marti fa59f18d 2011-05-09T20:54:04 Change error handling mechanism once again Ok, this is the real deal. Hopefully. Here's how it's going to work: - One main method, called `git__throw`, that sets the error code and error message when an error happens. This method must be called in every single place where an error code was being returned previously, setting an error message instead. Example, instead of: return GIT_EOBJCORRUPTED; Use: return git__throw(GIT_EOBJCORRUPTED, "The object is missing a finalizing line feed"); And instead of: [...] { error = GIT_EOBJCORRUPTED; goto cleanup; } Use: [...] { error = git__throw(GIT_EOBJCORRUPTED, "What an error!"); goto cleanup; } The **only** exception to this are the allocation methods, which return NULL on failure but already set the message manually. /* only place where an error code can be returned directly, because the error message has already been set by the wrapper */ if (foo == NULL) return GIT_ENOMEM; - One secondary method, called `git__rethrow`, which can be used to fine-grain an error message and build an error stack. Example, instead of: if ((error = foobar(baz)) < GIT_SUCCESS) return error; You can now do: if ((error = foobar(baz)) < GIT_SUCCESS) return git__rethrow(error, "Failed to do a major operation"); The return of the `git_lasterror` method will be a string in the shape of: "Failed to do a major operation. (Failed to do an internal operation)" E.g. "Failed to open the index. (Not enough permissions to access '/path/to/index')." NOTE: do not abuse this method. Try to write all `git__throw` messages in a descriptive manner, to avoid having to rethrow them to clarify their meaning. This method should only be used in the places where the original error message set by a subroutine is not specific enough. It is encouraged to continue using this style as much possible to enforce error propagation: if ((error = foobar(baz)) < GIT_SUCCESS) return error; /* `foobar` has set an error message, and we are just propagating it */ The error handling revamp will take place in two phases: - Phase 1: Replace all pieces of code that return direct error codes with calls to `git__throw`. This can be done semi-automatically using `ack` to locate all the error codes that must be replaced. - Phase 2: Add some `git__rethrow` calls in those cases where the original error messages are not specific enough. Phase 1 is the main goal. A minor libgit2 release will be shipped once Phase 1 is ready, and the work will start on gradually improving the error handling mechanism by refining specific error messages. OTHER NOTES: - When writing error messages, please refrain from using weasel words. They add verbosity to the message without giving any real information. (<3 Emeric) E.g. "The reference file appears to be missing a carriage return" Nope. "The reference file is missing a carriage return" Yes. - When calling `git__throw`, please try to use more generic error codes so we can eventually reduce the list of error codes to something more reasonable. Feel free to add new, more generic error codes if these are going to replace several of the old ones. E.g. return GIT_EREFCORRUPTED; Can be turned into: return git__throw(GIT_EOBJCORRUPTED, "The reference is corrupted");
Vicent Marti 5eb0fab8 2011-05-05T01:49:27 errors: Update external API with new `git_lasterror`
Vicent Marti 3f53c971 2011-05-05T01:20:27 errors: Set error messages on memory allocation
Vicent Marti 02f9e637 2011-05-05T01:12:17 errors: Add error handling function