src


Log

Author Commit Date CI Message
nulltoken cb0ce16b 2012-05-07T15:42:13 object: make git_object_lookup() return GIT_ENOTFOUND when searching for an existing object by specifying an incorrect type
nulltoken 9fb70f37 2012-05-07T10:57:34 remote: make git_remote_load() return GIT_ENOTFOUND when the remote url cannot be retrieved from the config file
nulltoken 2fb9d6de 2012-05-07T10:04:50 remote: ensure the allocated remote is freed when an error occurs during its loading
Vicent Martí 8d89c8e9 2012-05-07T13:36:02 Merge pull request #672 from scottjg/more-mingw32-fixes More mingw32 compilation fixes.
Russell Belfer cba285d3 2012-05-07T13:30:27 Fix directory finding for attrs The fix to support attrs on bare repos went a little too far in trying to avoid using the working directory and ended up not processing the input path quite correctly.
nulltoken 3191ae89 2012-05-06T13:04:12 compat: make p_open able to accept optional mode when passing the O_CREAT flag This has the nice side effect of making test_attr_repo__staging_properly_normalizes_line_endings_according_to_gitattributes_directives() test pass again on Windows. This test started to fail after commit 674a198 was applied.
Scott J. Goldman 901fbdad 2012-05-07T00:05:02 Define explicit _WIN32_WINNT version in makefile Previously, it was defined in netops.c, but it's also needed in one of the clar tests, so I figured we might as well just make it global for the whole project. Without it, the mingw32 linker won't resolve GetProcessId() (called from the core/errors.c clar test) because of some conditionals in windows.h.
Carlos Martín Nieto 49ac5ac8 2012-05-06T13:17:25 transport git: don't use 'error' uninitialized
Vicent Martí 3972ca43 2012-05-05T22:14:02 compat: Add `stdarg.h` include
Vicent Martí cd58c15c 2012-05-05T16:47:20 Merge remote-tracking branch 'scottjg/fix-mingw32' into development Conflicts: src/netops.c src/netops.h src/transports/http.c tests-clar/clar
Vicent Martí 4ef14af9 2012-05-05T14:22:06 Merge pull request #664 from arrbee/attrs-from-index Support git attrs from index (and bare repo)
Vicent Martí f95e8cc0 2012-05-05T14:18:10 notes: Cleanup error handling
Vicent Martí d3a60dc2 2012-05-05T14:14:58 Merge pull request #663 from schu/notes-honor-config Honor core.notesRef config option
Scott J. Goldman b47e0a71 2012-05-05T13:52:48 Fix missing prototype warning in utf-conv.c
Scott J. Goldman b4b96d56 2012-05-05T13:30:33 Fix gitno_connect() error handling on Windows gitno_connect() can return an error or socket, which is fine on most platforms where sockets are file descriptors (signed int), but on Windows, SOCKET is an unsigned type, which is problematic when we are trying to test if the socket was actually a negative error code. This fix seperates the error code and socket in gitno_connect(), and fixes the error handling in do_connect() functions to compensate. It appears that git_connect() and the git-transport do_connect() functions had bugs in the non-windows cases too (leaking sockets, and not properly reporting connection error, respectively) so I went ahead and fixed those too.
Russell Belfer 282283ac 2012-05-04T16:46:46 Fix valgrind issues There are three changes here: - correctly propogate error code from failed object lookups - make zlib inflate use our allocators - add OID to notfound error in ODB lookups
Vicent Martí 1adf8c6a 2012-05-04T13:52:38 compat: va_copy on Win32 systems
Russell Belfer b709e951 2012-05-04T11:06:12 Fix memory leaks and use after free
Russell Belfer f917481e 2012-05-03T16:37:25 Support reading attributes from index Depending on the operation, we need to consider gitattributes in both the work dir and the index. This adds a parameter to all of the gitattributes related functions that allows user control of attribute reading behavior (i.e. prefer workdir, prefer index, only use index). This fix also covers allowing us to check attributes (and hence do diff and status) on bare repositories. This was a somewhat larger change that I hoped because it had to change the cache key used for gitattributes files.
Michael Schubert 630c5a4a 2012-04-30T14:29:34 notes: add git_note_default_ref() Add git_note_default_ref to allow easy retrieval of the currently set default notes reference.
Michael Schubert caea5e54 2012-04-29T18:42:42 notes: honor core.notesRef Setting core.notesRef allows to change the default notes reference used by Git. Check if set before using GIT_NOTES_DEFAULT_REF. Fixes #649.
Vicent Martí 22772166 2012-05-03T00:04:04 errors: Use a git_buf for building error strings
Vicent Martí baaf1c47 2012-05-02T23:44:22 buffer: Add `git_buf_vprintf`
Vicent Martí 3fbcac89 2012-05-02T19:56:38 Remove old and unused error codes
Vicent Martí 946a6dc4 2012-05-02T16:14:30 Update test suite
Vicent Martí 40879fac 2012-05-02T15:59:02 Merge branch 'new-error-handling' into development Conflicts: .travis.yml include/git2/diff.h src/config_file.c src/diff.c src/diff_output.c src/mwindow.c src/path.c tests-clar/clar_helpers.c tests-clar/object/tree/frompath.c tests/t00-core.c tests/t03-objwrite.c tests/t08-tag.c tests/t10-refs.c tests/t12-repo.c tests/t18-status.c tests/test_helpers.c tests/test_main.c
Russell Belfer 3fd99be9 2012-03-05T09:30:17 Convert from strnlen to git_text_is_binary Since strnlen is not supported on all platforms and since we now have the shiny new git_text_is_binary in the filtering code, let's convert diff binary detection to use the new stuff.
Russell Belfer 8b2bcfbe 2012-03-05T09:14:56 Copy values to avoid strict aliasing warning To make this code more resilient to future changes, we'll explicitly translate the libgit2 structure to the libxdiff structure.
Russell Belfer 16b83019 2012-03-04T23:28:36 Fix usage of "new" for fieldname in public header This should restore the ability to include libgit2 headers in C++ projects. Cherry picked 2de60205dfea2c4a422b2108a5e8605f97c2e895 from development into new-error-handling.
Vicent Martí b8802146 2012-05-01T19:16:14 Merge remote-tracking branch 'carlosmn/remaining-errors' into new-error-handling Conflicts: src/refspec.c
Michael Schubert 42ea35c0 2012-05-01T22:25:43 remote: don't free transport on disconnect Currently, git_remote_disconnect not only closes the connection but also frees the underlying transport object, making it impossible to write code like // fetch stuff git_remote_download() // close connection git_remote_disconnect() // call user provided callback for each ref git_remote_update_tips(remote, callback) because remote->refs points to references owned by the transport object. This means, we have an idling connection while running the callback for each reference. Instead, allow immediate disconnect and free the transport later in git_remote_free().
Vicent Martí ced9da54 2012-04-30T14:38:15 Merge pull request #654 from carlosmn/pkt-err Recognize and report server-side error messages
Carlos Martín Nieto 39e6af6a 2012-04-30T17:44:37 net: recognize and report server-side error messages When e.g. a repository isn't found, the server sends an error saying so. Put that error message in our error buffer.
nulltoken fa6420f7 2012-04-29T21:46:33 buf: deploy git_buf_len()
nulltoken 1d2dd864 2012-04-29T19:42:51 diff: provide more context to the consumer of the callbacks Update the callback to provide some information related to the file change being processed and the range of the hunk, when applicable.
nulltoken da3c187d 2012-04-29T19:08:48 buf: add git_buf_len() accessor to expose the current length of the buffer content
Carlos Martín Nieto fdc0c5f6 2012-04-29T01:20:02 pkt: bring back GIT_ESHORTBUFFER The recent 64-bit Windows fixes changed the return code in git_pkt_parse_line() so it wouldn't signal a short buffer, breaking the network code. Bring it back.
Michael Schubert 9738e2cd 2012-04-27T18:04:58 refs: fix unused-but-set warning
Russell Belfer 821f6bc7 2012-04-26T13:04:54 Fix Win32 warnings
Russell Belfer d58336dd 2012-04-26T10:51:45 Fix leading slash behavior in attrs/ignores We were not following the git behavior for leading slashes in path names when matching git ignores and git attribute file patterns. This should fix issue #638.
Carlos Martín Nieto 3aa351ea 2012-04-26T15:05:07 error handling: move the missing parts over to the new error handling
nulltoken eb3d71a5 2012-04-25T22:23:35 diff: fix generation of the header of a removal patch
Russell Belfer 3fc5c65d 2012-04-25T15:24:05 Merge pull request #642 from arrbee/mem-pools Memory pools and khash hashtables
Russell Belfer c2b67043 2012-04-25T15:20:28 Rename git_khash_str to git_strmap, etc. This renamed `git_khash_str` to `git_strmap`, `git_hash_oid` to `git_oidmap`, and deletes `git_hashtable` from the tree, plus adds unit tests for `git_strmap`.
Vicent Martí f50087c0 2012-04-25T14:29:45 Merge pull request #641 from carlosmn/networking More Networking updates
Russell Belfer 01fed0a8 2012-04-25T10:36:01 Convert hashtable usage over to khash This updates khash.h with some extra features (like error checking on allocations, ability to use wrapped malloc, foreach calls, etc), creates two high-level wrappers around khash: `git_khash_str` and `git_khash_oid` for string-to-void-ptr and oid-to-void-ptr tables, then converts all of the old usage of `git_hashtable` over to use these new hashtables. For `git_khash_str`, I've tried to create a set of macros that yield an API not too unlike the old `git_hashtable` API. Since the oid hashtable is only used in one file, I haven't bother to set up all those macros and just use the khash APIs directly for now.
Russell Belfer ada488bf 2012-04-24T11:02:40 Import khash.h from attractivechaos/klib
Russell Belfer c16c8b9a 2012-04-23T09:23:58 Adding stash to hashtable implementation Adding a small stash of nodes with key conflicts has been demonstrated to greatly increase the efficiency of a cuckoo hashtable. See: http://research.microsoft.com/pubs/73856/stash-full.9-30.pdf for more details.
Russell Belfer 25f258e7 2012-04-23T09:21:15 Moving power-of-two bit utilities into util.h
Russell Belfer da3b391c 2012-04-18T10:57:08 Convert revwalk to use git_pool This removes the custom paged allocator from revwalk and replaces it with a `git_pool`.
Russell Belfer 19fa2bc1 2012-04-17T15:12:50 Convert attrs and diffs to use string pools This converts the git attr related code (including ignores) and the git diff related code (and implicitly the status code) to use `git_pools` for storing strings. This reduces the number of small blocks allocated dramatically.
Russell Belfer 2bc8fa02 2012-04-17T10:14:24 Implement git_pool paged memory allocator This adds a `git_pool` object that can do simple paged memory allocation with free for the entire pool at once. Using this, you can replace many small allocations with large blocks that can then cheaply be doled out in small pieces. This is best used when you plan to free the small blocks all at once - for example, if they represent the parsed state from a file or data stream that are either all kept or all discarded. There are two real patterns of usage for `git_pools`: either for "string" allocation, where the item size is a single byte and you end up just packing the allocations in together, or for "fixed size" allocation where you are allocating a large object (e.g. a `git_oid`) and you generally just allocation single objects that can be tightly packed. Of course, you can use it for other things, but those two cases are the easiest.
Carlos Martín Nieto a7d19b97 2012-04-25T15:47:53 config: also allow escaping outside of a quoted string This limitation was a misparsing of the documentation.
Carlos Martín Nieto f184836b 2012-04-25T12:13:20 remote: run a callback when updating the branch tips This allows the caller to update an internal structure or update the user output with the tips that were updated. While in the area, only try to update the ref if the value is different from its old one.
Carlos Martín Nieto 2e3a0055 2012-04-16T11:58:46 revwalk: return GIT_EREVWALKER earlier if no references were pushed In the case that walk->one is NULL, we know that we have no positive references, so we already know that the revwalk is over.
Carlos Martín Nieto dee5515a 2012-04-14T18:34:50 transports: buffer the git requests before sending them Trying to send every single line immediately won't give us any speed improvement and duplicates the code we need for other transports. Make the git transport use the same buffer functions as HTTP.
Carlos Martín Nieto 7a520f5d 2012-04-13T23:19:38 fetch: use the streaming indexer when downloading a pack This changes the git_remote_download() API, but the existing one is silly, so you don't get to complain. The new API allows to know how much data has been downloaded, how many objects we expect in total and how many we've processed.
Vicent Martí f9f2344b 2012-04-23T17:28:11 Merge pull request #632 from arrbee/win64-cleanup Code clean up, including fixing warnings on Windows 64-bit build
Vicent Martí 4795807a 2012-04-23T17:25:11 Merge pull request #637 from nulltoken/issue/odb-refcount Fix git_repository_set_odb() refcount issue
Carlos Martín Nieto 2218fd57 2012-04-20T02:23:14 tree-cache: don't error out on a childless invalidated entry The code used to assume that there had to be data after the newline in a tree cache extension entry. This isn't true for a childless invalidated entry if it's the last one, as there won't be any children nor a hash to take up space. Adapt the off-by-one comparison to also work in this case. Fixes #633.
Russell Belfer 26515e73 2012-04-23T10:06:31 Rename to git_reference_name_to_oid
nulltoken baf861a5 2012-04-23T11:07:19 Fix git_repository_set_odb() refcount issue git_repository_free() calls git_odb_free() if the owned odb is not null. According to the doc, when setting a new odb through git_repository_set_odb() the caller has to take care of releasing the odb by himself.
Sven Strickroth 8c327228 2012-04-21T18:45:32 Check for _WIN32 instead of GIT_WIN32 or WIN32 to detect windows build environments This fixes a possible compilation issue (when GIT_WIN32 was not set) which was introduced in revision 69a4bc1988fc242bd0d310781c865cce5481a0e6. Signed-off-by: Sven Strickroth <email@cs-ware.de>
Vicent Martí 69a4bc19 2012-04-20T11:24:17 Merge pull request #634 from csware/fix-win64-build WIN32 is not always defined, use GIT_WIN32 instead
Sven Strickroth eb6db16d 2012-04-20T20:00:59 GetFileAttributes does not work for utf-8 encoded paths Signed-off-by: Sven Strickroth <email@cs-ware.de>
Sven Strickroth b333fbf9 2012-04-20T18:51:10 WIN32 is not always defined, use GIT_WIN32 instead Signed-off-by: Sven Strickroth <email@cs-ware.de>
Carlos Martín Nieto 05862156 2012-04-20T02:23:14 tree-cache: don't error out on a childless invalidated entry The code used to assume that there had to be data after the newline in a tree cache extension entry. This isn't true for a childless invalidated entry if it's the last one, as there won't be any children nor a hash to take up space. Adapt the off-by-one comparison to also work in this case. Fixes #633.
Vicent Martí d5930554 2012-04-19T11:40:56 Merge remote-tracking branch 'carlosmn/indexer-stream' into new-error-handling
Vicent Martí 54e4d0f2 2012-04-18T17:34:52 Merge pull request #629 from nulltoken/issue/index-refcount Index refcount issue
Russell Belfer 44ef8b1b 2012-04-13T13:00:10 Fix warnings on 64-bit windows builds This fixes all the warnings on win64 except those in deps, which come from the regex code.
Russell Belfer f201d613 2012-04-13T10:33:14 Add git_reference_lookup_oid and lookup_resolved Adds a new public reference function `git_reference_lookup_oid` that directly resolved a reference name to an OID without returning the intermediate `git_reference` object (hence, no free needed). Internally, this adds a `git_reference_lookup_resolved` function that combines looking up and resolving a reference. This allows us to be more efficient with memory reallocation. The existing `git_reference_lookup` and `git_reference_resolve` are reimplmented on top of the new utility and a few places in the code are changed to use one of the two new functions.
Russell Belfer dbeca796 2012-04-13T10:43:47 Remove old status implementation This removes the code for the old status implementation.
Carlos Martín Nieto 2c1075d6 2012-03-16T12:52:49 config: parse quoted values Variable values may be quoted to include newlines, literal quotes and other characters. Add support for these and test it.
Carlos Martín Nieto 146f5c75 2012-04-14T15:09:29 repo: plug a couple of leaks
nulltoken c1aefb35 2012-04-14T14:13:17 Fix git_repository_set_index() refcount issue git_repository_free() calls git_index_free() if the owned index is not null. According to the doc, when setting a new index through git_repository_set_index() the caller has still to take care of releasing the index by itself. In order to cope with this, this fix makes sure the index refcount is incremented when a new repository is being plugged a new index.
Russell Belfer 14a513e0 2012-04-13T15:00:29 Add support for pathspec to diff and status This adds preliminary support for pathspecs to diff and status. The implementation is not very optimized (it still looks at every single file and evaluated the the pathspec match against them), but it works.
Carlos Martín Nieto 1c9c081a 2012-04-13T19:25:06 indexer: add git_indexer_stream_free() and _hash()
Carlos Martín Nieto 453ab98d 2012-04-11T12:55:34 indexer: Add git_indexer_stream_finalize() Resolve any lingering deltas, write out the index file and rename the packfile.
Carlos Martín Nieto 3f93e16c 2012-03-29T17:49:57 indexer: start writing the stream indexer This will allow us to index a packfile as soon as we receive it from the network as well as storing it with its final name so we don't need to pass temporary file names around.
Carlos Martín Nieto fa679339 2012-04-13T09:58:54 Add packfile_unpack_compressed() to the internal header
Carlos Martín Nieto 45d773ef 2012-04-05T23:36:14 pack: signal a short buffer when needed
Vicent Martí d1f33156 2012-04-13T20:41:06 Merge remote-tracking branch 'carlosmn/revwalk-merge-base' into new-error-handling
Vicent Martí fcb2164f 2012-04-13T10:51:58 Merge pull request #623 from arrbee/refactor-open Update git_repository_open
Carlos Martín Nieto 4d53f3e2 2012-04-05T23:37:38 filebuf: add option not to buffer the contents at all The new indexer needs to be able to bypass any kind of buffering, as it's trying to map data that it has just written to disk.
Carlos Martín Nieto 6a625435 2012-04-12T23:40:41 branch: simplify error handling for git_branch_move() The cleanup needs to happen anyway, so set the error code and jump there instead of copying the code.
Carlos Martín Nieto a1515693 2012-04-12T20:52:26 local transport: plug leak
Carlos Martín Nieto 6a8bcfa4 2012-04-12T20:47:46 branch: plug leaks in git_branch_move() and _delete()
Carlos Martín Nieto eb8117b8 2012-04-12T20:25:07 error-handling: revwalk
Carlos Martín Nieto 2c4ef1dd 2012-03-03T16:43:24 revwalk: use merge bases to speed up processing There is no need walk down the parents of a merge base to mark them as uninteresting because we'll never see them. Calculate the merge bases in prepare_walk() so mark_uninteresting() can stop at a merge base instead of walking all the way to the root.
Carlos Martín Nieto bf787bd8 2012-04-08T18:56:50 Move git_merge_base() to is own header and document it
Carlos Martín Nieto f9e4bfa3 2012-03-04T03:00:35 revwalk: use a priority queue for calculating merge bases As parents are older than their children, we're appending to the commit list most of the time, which makes an ordered linked list quite inefficient. While we're there, don't sort the results list in the main loop, as we're sorting them afterwards and it creates extra work.
Carlos Martín Nieto de7ab85d 2012-03-03T03:31:51 Implement git_merge_base() It's implemented in revwalk.c so it has access to the revision walker's commit cache and related functions. The algorithm is the one used by git, modified so it fits better with the library's functions.
Carlos Martín Nieto 06b9d915 2012-02-28T02:19:57 revwalk: allow pushing/hiding a reference by name The code was already there, so factor it out and let users push an OID by giving it a reference name. Only refs to commits are supported. Annotated tags will throw an error.
Carlos Martín Nieto 081d2291 2012-03-03T04:46:21 revwalk: don't assume malloc succeeds
Russell Belfer 7784bcbb 2012-04-11T11:52:59 Refactor git_repository_open with new options Add a new command `git_repository_open_ext` with extended options that control how searching for a repository will be done. The existing `git_repository_open` and `git_repository_discover` are reimplemented on top of it. We may want to change the default behavior of `git_repository_open` but this commit does not do that. Improve support for "gitdir" files where the work dir is separate from the repo and support for the "separate-git-dir" config. Also, add support for opening repos created with `git-new-workdir` script (although I have only confirmed that they can be opened, not that all functions work correctly). There are also a few minor changes that came up: - Fix `git_path_prettify` to allow in-place prettifying. - Fix `git_path_root` to support backslashes on Win32. This fix should help many repo open/discover scenarios - it is the one function called when opening before prettifying the path. - Tweak `git_config_get_string` to set the "out" pointer to NULL if the config value is not found. Allows some other cleanup. - Fix a couple places that should have been calling `git_repository_config__weakptr` and were not. - Fix `cl_git_sandbox_init` clar helper to support bare repos.
Vicent Martí 64b402f8 2012-04-11T19:19:12 status: Remove status_old This is Git yo. You can fetch stuff from the history if you need it.
Carlos Martín Nieto a62053a0 2012-04-01T00:45:02 error-handling local transport
Carlos Martín Nieto 5eb8affb 2012-03-30T18:37:19 error-handling: fetch
Carlos Martín Nieto bd6585a7 2012-03-16T15:15:21 netops: show winsock error messages on Windows
Carlos Martín Nieto 56b7df10 2012-03-07T07:01:20 error-handling: netops