|
4f664a1b
|
2011-05-19T14:51:16
|
|
repository.c: Move to new error handling mechanism
|
|
0d5d5190
|
2011-05-23T21:37:48
|
|
refs: Reword errors
|
|
5bdf7b9f
|
2011-05-19T14:36:52
|
|
refs.c: Move to new error handling mechanism
|
|
bea54842
|
2011-05-19T13:50:46
|
|
oid.c: Move to new error handling mechanism
|
|
f84d9819
|
2011-05-23T21:14:58
|
|
odb_pack: Reword errors
|
|
267d539f
|
2011-05-19T13:38:12
|
|
odb_pack.c: Move to new error handling mechanism
|
|
60e1b49a
|
2011-05-23T21:12:18
|
|
odb_loose: Reword errors
|
|
dfb12cd5
|
2011-05-19T12:28:46
|
|
odb_loose.c: Move to new error handling mechanism
|
|
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.
|
|
1e85d1aa
|
2011-05-23T21:09:07
|
|
odb: Reword errors
|
|
d3d5d86d
|
2011-05-18T12:35:08
|
|
odb.c: Move to new error handling mechanism
|
|
6623f5c9
|
2011-05-23T21:05:43
|
|
object: Reword errors
|
|
75eb97fe
|
2011-05-18T12:19:48
|
|
object.c: Move to new error handling mechanism
|
|
0be7f000
|
2011-05-23T21:04:09
|
|
hashtable: Reword errors
|
|
da533495
|
2011-05-18T12:12:16
|
|
hashtable.c: Move to new error handling mechanism
|
|
d3ca89fe
|
2011-05-23T21:03:01
|
|
fileops: Cleanup
|
|
cc2ac058
|
2011-05-17T18:02:08
|
|
fileops.c: Move to new error handling mechanism
|
|
f6328611
|
2011-05-23T21:00:19
|
|
filebuf: Reword errors
|
|
374db5f9
|
2011-05-17T17:43:00
|
|
filebuf.c: Move to new error handling mechanism
|
|
68384a27
|
2011-05-17T17:24:28
|
|
config.c: Fix format string error
|
|
4152a44b
|
2011-05-17T17:22:33
|
|
delta-apply.c: Move to new error handling mechanism
|
|
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.
|
|
5c36f6db
|
2011-05-23T20:43:19
|
|
config: Cleanup
|
|
4c7a5e9e
|
2011-05-23T20:36:06
|
|
commit: Reword errors
|
|
726c6fd2
|
2011-05-17T17:00:37
|
|
commit.c: Move to new error handling mechanism
|
|
adef9922
|
2011-05-23T20:33:20
|
|
blob: Reword errors
|
|
91369100
|
2011-05-17T16:50:49
|
|
blob.c: Move to new error handling mechanism
|
|
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.
|
|
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!
|
|
274f2c21
|
2011-05-19T14:18:57
|
|
Merge pull request #193 from carlosmn/config
A couple of config improvements
|
|
44d16d6f
|
2011-05-19T11:21:22
|
|
Merge pull request #198 from sschuberth/fix-typos
Fix a few minor typos in comments and error messages
|
|
f4e2aca2
|
2011-05-19T20:38:17
|
|
index: Fix issues in the unmerged entries API
|
|
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.
|
|
7b134cfe
|
2011-05-18T17:04:12
|
|
Merge pull request #141 from jpfender/unmerged
index: Add API for unmerged entries
|
|
7d6274ba
|
2011-05-18T17:00:20
|
|
Merge pull request #197 from schu/errors
Move odb.c to the new error handling
|
|
05e58576
|
2011-05-18T16:59:09
|
|
Merge pull request #194 from schu/must-pass-ret
test_lib: add return value to git_test
|
|
ba9cc91f
|
2011-05-18T16:58:24
|
|
Merge pull request #195 from RomainMuller/master
Consider environment-specified CFLAGS
|
|
975eda2d
|
2011-05-18T16:57:36
|
|
Merge pull request #196 from sschuberth/cmake-msvc2010
Cmake msvc2010
|
|
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>
|
|
765fdf4a
|
2011-05-18T17:19:38
|
|
Use "__inline" instead of "inline" with MSVC
MSVC supports "inline" only in C++ code, not in C code.
|
|
07234716
|
2011-05-18T16:46:56
|
|
Define str(n)casecmp for MSVC
MSVC has _str(n)icmp instead.
|
|
875a5c2d
|
2011-05-18T16:07:22
|
|
Ignore CMake files and generated Visual Studio files
|
|
49041e78
|
2011-05-18T16:01:01
|
|
Fix mixed line endings in .gitignore
|
|
d1685ac7
|
2011-05-18T17:20:08
|
|
Have wscript use the environment-provided CFLAGS as per WAF's documented behavior.
|
|
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>
|
|
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>
|
|
9d27fd3b
|
2011-05-17T16:51:37
|
|
index.c: Fix typo
git__rethrow was missing an underscore.
|
|
c90bfec7
|
2011-05-17T16:18:56
|
|
Move index.c to new error handling mechanism
|
|
050e8877
|
2011-05-17T15:31:05
|
|
Merge branch 'development' into unmerged
|
|
f44cbec4
|
2011-05-17T14:59:23
|
|
Add documentation for git_config_add_backend
|
|
32234541
|
2011-05-17T14:18:42
|
|
Implement git_config_open_global
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
|
|
c9662061
|
2011-05-17T15:12:25
|
|
t15: Remove unused variable
|
|
124fbb3d
|
2011-05-17T15:11:43
|
|
tests: Update NAMING file
|
|
0da2c700
|
2011-05-17T15:09:30
|
|
utils: Move git__str[n]tolower
|
|
128d3731
|
2011-05-17T15:05:41
|
|
config_file: Fix compilation
|
|
6adcb5f3
|
2011-05-17T15:04:18
|
|
utils: Implement git__strndup
|
|
b3d94069
|
2011-05-17T14:51:42
|
|
repository: Properly free the index on close
|
|
62845c90
|
2011-05-17T05:11:06
|
|
Merge pull request #116 from carlosmn/test-naming
tests: update NAMING file
|
|
587926ef
|
2011-05-17T04:54:25
|
|
Merge pull request #110 from carlosmn/config
Implement config parsing. Finally!
|
|
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>
|
|
94711cad
|
2011-05-17T12:12:59
|
|
Merge upstream/development
|
|
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.
|
|
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.
|
|
1e70b96e
|
2011-05-16T08:05:10
|
|
Merge pull request #190 from alco/patch-1
Fix a typo in README.md
|
|
cce225bf
|
2011-05-16T01:56:20
|
|
Fix a typo in README.md
|
|
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.
|
|
f87d9beb
|
2011-05-15T23:46:39
|
|
Change error codes from DEFINEs to an enum
|
|
7cadd1f6
|
2011-05-15T23:46:22
|
|
Check error code from `git_cache_init`
|
|
4edf3e09
|
2011-05-15T23:45:24
|
|
Return success code on `git_cache_init`
|
|
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
|
|
b12b7723
|
2011-05-15T10:16:36
|
|
Merge pull request #185 from chobie/development
fix git_otype typo when calling `git_odb_read_header`.
|
|
71747bca
|
2011-05-15T20:07:54
|
|
fix git_otype typo when calling `git_odb_read_header`.
|
|
81201a4c
|
2011-05-15T06:57:34
|
|
Move cache.c to the new error handling
|
|
3abe3bba
|
2011-05-14T16:05:33
|
|
Move repository.c to the new error handling
|
|
77c3999c
|
2011-05-14T14:40:56
|
|
Move fileops.c to the new error handling
|
|
f02f4b53
|
2011-05-13T15:25:19
|
|
Merge pull request #183 from schu/errors
Replace errors
|
|
098173c5
|
2011-05-13T04:17:24
|
|
Check Redis replies for NULL
|
|
f31bd03f
|
2011-05-13T04:15:46
|
|
Include "common.h" in "errors.h"
|
|
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.
|
|
b51c9269
|
2011-05-11T14:44:44
|
|
Move revwalk.c to the new error handling
Signed-off-by: schu <schu-github@schulog.org>
|
|
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>
|
|
d6de92b6
|
2011-05-11T12:40:04
|
|
Move tree.c to the new error handling
Signed-off-by: schu <schu-github@schulog.org>
|
|
cbcaf0c0
|
2011-05-11T12:09:40
|
|
Move blob.c to the new error handling
Signed-off-by: schu <schu-github@schulog.org>
|
|
0e0f4fde
|
2011-05-10T15:33:07
|
|
Add --with-redis flag to list of available build flags in README.
|
|
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>
|
|
6810bf28
|
2011-05-11T00:40:07
|
|
Move all error-related defines to `git2/errors.h`
|
|
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.
|
|
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.
|
|
97ce36e7
|
2011-05-10T14:23:01
|
|
Merge pull request #181 from carlosmn/errors
Move signature.c and tag.c to the new error handling
|
|
44dc0d26
|
2011-05-10T18:56:44
|
|
Move tag.c to the new error handling
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
|
|
5de24ec7
|
2011-05-10T17:38:41
|
|
Move signature.c to the new error handling
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
|
|
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>
|
|
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).
|
|
5711ca93
|
2011-05-09T21:58:26
|
|
Merge branch 'error-handling' into development
|
|
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");
|
|
5eb0fab8
|
2011-05-05T01:49:27
|
|
errors: Update external API with new `git_lasterror`
|
|
3f53c971
|
2011-05-05T01:20:27
|
|
errors: Set error messages on memory allocation
|
|
02f9e637
|
2011-05-05T01:12:17
|
|
errors: Add error handling function
|
|
cd2cc2dc
|
2011-05-08T14:00:57
|
|
Merge pull request #170 from jasonrm/development
Fix misspelling of git_index_append2 (was git_index_apppend2).
|
|
c912229e
|
2011-05-08T14:00:06
|
|
Merge pull request #172 from carlosmn/valgrind
ref test: update a forgotten repo -> repo2
|