src


Log

Author Commit Date CI Message
Michael Schubert 65ac67fb 2012-08-28T21:58:10 netops: be more careful with SSL errors SSL_get_error() allows to receive a result code for various SSL operations. Depending on the return value (see man (3) SSL_get_error) there might be additional information in the OpenSSL error queue. Return the queued message if available, otherwise set an error message corresponding to the return code.
Michael Schubert 4deda91b 2012-09-04T00:13:59 netops: continue writing on SSL_ERROR_WANT_WRITE
nulltoken 89cd5708 2012-08-29T14:20:53 repository: make initialization cope with missing core.worktree
Vicent Martí 319ad0ba 2012-08-28T13:55:55 Merge pull request #905 from carlosmn/signature-now signature: make the OS give us the offset for git_signature_now
Michael Schubert 0844ed06 2012-08-28T20:15:21 Fix parentheses warning
Carlos Martín Nieto d03d309b 2012-08-28T18:02:12 signature: make the OS give us the offset for git_signature_now There is a better and less fragile way to calculate time offsets. Let the OS take care of dealing with DST and simply take the the offset between the local time and UTC that it gives us.
Carlos Martín Nieto 0d5dce26 2012-08-28T14:15:32 ssl: make cert check ignore work for invalid certs, not just CNs Passing SSL_VERIFY_PEER makes OpenSSL shut down the connection if the certificate is invalid, without giving us a chance to ignore that error. Pass SSL_VERIFY_NONE and call SSL_get_verify_result if the user wanted us to check. When no CNs match, we used to jump to on_error which gave a bogus error as that's for OpenSSL errors. Jump to cert_fail so we tell the user that the error came from checking the certificate.
Vicent Marti 62eafd06 2012-08-27T14:54:52 Merge branch 'branch-delete-ref' into development Conflicts: include/git2/refs.h
Vicent Martí bd2887a5 2012-08-27T14:52:26 Merge pull request #904 from arrbee/better-object-peel Make git_object_peel a bit smarter
Vicent Martí b9d283d1 2012-08-27T13:39:17 Merge pull request #897 from nulltoken/topic/git_reference_check_format refs: expose git_reference_normalize_name()
Vicent Martí 05752700 2012-08-27T13:35:58 Merge pull request #899 from schu/revwalk-push revwalk: refuse push of non-commit objects
Russell Belfer d8057a5b 2012-08-27T11:53:59 Make git_object_peel a bit smarter This expands the types of peeling that `git_object_peel` knows how to do to include TAG -> BLOB peeling, and makes the errors slightly more consistent depending on the situation. It also adds a new special behavior where peeling to ANY will peel until the object type changes (e.g. chases TAGs to a non-TAG). Using this expanded peeling, this replaces peeling code that was embedded in `git_tag_peel` and `git_reset`.
Russell Belfer 0b9174c6 2012-08-27T11:45:48 Merge pull request #903 from nulltoken/topic/peeling-duplication branch: reduce code duplication
nulltoken d1445b75 2012-08-27T15:24:27 branch: reduce code duplication
Michael Schubert 4e323ef0 2012-08-27T10:51:01 revwalk: refuse push of non-commit objects Check the type of the pushed object immediately instead of starting the walk and failing in between.
nulltoken 2e0c8816 2012-08-26T22:08:22 refs: expose git_reference_normalize_name()
Vicent Marti 1c947daa 2012-08-23T15:47:29 branch: Change `git_branch_delete` to take a ref
Vicent Marti 17f7bde2 2012-08-23T15:47:08 posix: Always set a default mapping mode
Carlos Martín Nieto 2b175ca9 2012-08-26T00:35:52 indexer: kill git_indexer_stats.data_received It's not really needed with the current code as we have EOS and the sideband's flush to tell us we're done. Keep the distinction between processed and received objects.
Carlos Martín Nieto cc1d85d1 2012-08-25T23:32:19 http: increase buffer side to deal with side-band-64k This poor transport was forgotten in the recent sideband support.
Carlos Martín Nieto 7a57ae54 2012-08-25T23:31:29 indexer: don't segfault when freeing an unused indexer Make sure that idx->pack isn't NULL before trying to free resources under it.
Vicent Martí 8238401c 2012-08-25T11:37:23 Merge pull request #896 from ben/revparse-ambiguous Revparse: GIT_EAMBIGUOUS
Ben Straub c9de8611 2012-08-23T12:29:09 Revparse: GIT_EAMBIGUOUS Revparse now returns EAMBIGUOUS if the the spec doesn't match any refs/tags, and is <4 characters.
Vicent Martí b7e8827b 2012-08-24T16:29:01 Merge pull request #895 from carlosmn/sideband Add sideband support
Vicent Martí 09fad506 2012-08-24T15:45:13 Merge pull request #852 from arrbee/submodule-extensions Submodule extensions
Russell Belfer 7fbca880 2012-08-24T14:32:45 Support new config locations As of git v1.7.12, $HOME/.config/git/ is supported as a new location for "config", "attributes", and "ignore" files.
Russell Belfer 07c06f7a 2012-08-24T14:24:33 Fix memory leak in cp_r
Russell Belfer 11684104 2012-08-24T13:41:45 Fix crash with adding internal ignores Depending on what you had done before adding new items to the internal ignores list, it was possible for the cache of ignore data to be uninitialized.
Russell Belfer 97a17e4e 2012-08-24T12:19:22 Fix valgrind warnings and spurious error messages Just clean up valgrind warnings about uninitialized memory and also clear out errno in some cases where it results in a false error message being generated at a later point.
Carlos Martín Nieto e03e71da 2012-05-14T17:54:25 network: add sideband support This lets us notify the user of what the remote end is doing while we wait for it to start sending us the packfile.
Russell Belfer 5f4a61ae 2012-08-09T19:43:25 Working implementation of git_submodule_status This is a big redesign of the git_submodule_status API and the implementation of the redesigned API. It also fixes a number of bugs that I found in other parts of the submodule API while writing the tests for the status part. This also fixes a couple of bugs in the iterators that had not been noticed before - one with iterating when there is a gitlink (i.e. separate-work-dir) and one where I was treating anything even vaguely submodule-like as a submodule, more aggressively than core git does.
Russell Belfer 0c8858de 2012-08-03T14:28:07 Fix valgrind issues and leaks This fixes up a number of problems flagged by valgrind and also cleans up the internal `git_submodule` allocation handling overall with a simpler model.
Russell Belfer aa13bf05 2012-08-02T13:00:58 Major submodule rewrite This replaces the old submodule API with a new extended API that supports most of the things that can be done with `git submodule`.
Russell Belfer 2eb4edf5 2012-08-24T10:48:48 Fix errors on Win32 with new repo init
Carlos Martín Nieto bffa852f 2012-07-13T12:01:11 indexer: recognize and mark when all of the packfile has been downloaded We can't always rely on the network telling us when the download is finished. Recognize it from the indexer itself.
Russell Belfer e9ca852e 2012-08-23T09:20:17 Fix warnings and merge issues on Win64
Russell Belfer 85bd1746 2012-08-22T16:03:35 Some cleanup suggested during review This cleans up a number of items suggested during code review with @vmg, including: * renaming "outside repo" config API to `git_config_open_default` * killing the `git_config_open_global` API * removing the `git_` prefix from the static functions in fileops * removing some unnecessary functionality from the "cp" command
Russell Belfer 0e26202c 2012-08-01T14:30:08 fix missing validation and type cast warning
Russell Belfer ca1b6e54 2012-07-31T17:02:54 Add template dir and set gid to repo init This extends git_repository_init_ext further with support for initializing the repository from an external template directory and with support for the "create shared" type flags that make a set GID repository directory. This also adds tests for much of the new functionality to the existing `repo/init.c` test suite. Also, this adds a bunch of new utility functions including a very general purpose `git_futils_mkdir` (with the ability to make paths and to chmod the paths post-creation) and a file tree copying function `git_futils_cp_r`. Also, this includes some new path functions that were useful to keep the code simple.
Russell Belfer 662880ca 2012-07-26T16:07:01 Add git_repository_init_ext for power initters The extended version of repository init adds support for many of the things that you can do with `git init` and sets up structures that will make it easier to extend further in the future.
Russell Belfer 5fdc41e7 2012-08-22T13:57:57 Minor bug fixes in diff code In looking at PR #878, I found a few small bugs in the diff code, mostly related to work that can be avoided when processing tree- to-tree diffs that was always being carried out. This commit has some small fixes in it.
Vicent Martí cfda29e3 2012-08-22T13:15:14 Merge pull request #891 from arrbee/internal-ignore-api API for managing in-memory ignore rules
Russell Belfer 2fb4e9b3 2012-08-22T11:42:00 Wrap up ignore API and add tests This fills out the ignore API and adds tests.
Russell Belfer f004c4a8 2012-08-21T17:26:39 Add public API for internal ignores This creates a public API for adding to the internal ignores list, which already existing but was not accessible. This adds the new default value for core.excludesfile also.
nulltoken 9d7ac675 2012-08-21T11:45:16 tree entry: rename git_tree_entry_attributes() into git_tree_entry_filemode()
nulltoken a7dbac0b 2012-08-17T21:10:32 filemode: deploy enum usage
Vicent Martí 5c27da1f 2012-08-20T12:10:23 Merge pull request #884 from carlosmn/global-windows Make the memory-window conrol structures global
Carlos Martín Nieto 8cef828d 2012-08-18T22:11:49 Make the memory-window conrol structures global Up to now, the idea was that the user would do all the operations for one repository in the same thread. Thus we could have the memory-mapped window information thread-local and avoid any locking. This is not practical in a few environments, such as Apple's GCD which allocates threads arbitrarily or the .NET CLR, where the OS-level thread can change at any moment. Make the control structure global and protect it with a mutex so we don't depend on the thread currently executing the code.
nulltoken 66439b0b 2012-08-17T11:21:49 treebuilder: enhance attributes handling on insertion
Vicent Martí f98c32f3 2012-08-19T01:26:06 Merge pull request #778 from ben/clone Clone
nulltoken 1a0537e4 2012-08-15T00:08:38 Fix compilation warning
Carlos Martín Nieto 85f28ba8 2012-08-14T11:43:20 Merge pull request #873 from carlosmn/tree-walk git_tree_walk callback return value semantic does not match documentation
Russell Belfer 3a6bc301 2012-08-14T11:30:18 Merge pull request #875 from arrbee/fix-message-prettify-length-check Fix message prettify length check
Russell Belfer 85a0e28b 2012-08-14T10:50:58 Make git_message_prettify return bytes written If you want to be absolutely safe with git_message_prettify, you can now pass a NULL pointer for the buffer and get back the number of bytes that would be copied into the buffer. This means that an error is a non-negative return code and a success will be greater than zero from this function.
Carlos Martín Nieto a6bf1687 2012-08-13T14:07:47 tree: allow the user to skip an entry or cancel the walk Returning a negative cancels the walk, and returning a positive one causes us to skip an entry, which was previously done by a negative value. This allows us to stay consistent with the rest of the functions that take a callback and keeps the skipping functionality.
Carlos Martín Nieto 53ae1235 2012-08-13T14:00:53 tree: bring back the documented behaviour for a walk However, there should be a way to cancel the walk and another to skip the entry.
Russell Belfer 616c1433 2012-08-12T11:53:58 Clean up code Okay, this is probably cleaner and it is also less net change from the original version
Russell Belfer fdc637c4 2012-08-12T09:08:45 Check prettify message output buffer after cleanup This makes the message prettify buffer length check accurate.
Russell Belfer a1ecddf0 2012-08-12T07:59:30 Fix config parser boundary logic The config file parser was not working right if there was no whitespace between the value name and the equals sign. This fixes that.
Michael Schubert 738837bd 2012-08-11T12:29:24 sha1: add missing header guards
Vicent Marti c07d9c95 2012-08-09T15:33:04 oid: Explicitly include `oid.h` for the inlined CMP
Joshua Peek 186c054d 2012-08-09T14:47:29 Revert implementation changes
Joshua Peek 28e00681 2012-08-09T14:39:56 Ignore ref oid terminator
Russell Belfer 2fe293b6 2012-08-09T11:36:21 trim whitespace when parsing loose refs
Joshua Peek 6ab68290 2012-08-09T12:39:09 Parse ref oids without trailing newline
Russell Belfer e4607392 2012-08-06T11:06:05 Fix iterator check and return value There is a little cleanup necessary from PR #843. Since the new callbacks return `GIT_EUSER` we have to be a little careful about return values when they are used internally to the library. Also, callbacks should be checked for non-zero return values, not just less than zero.
Vicent Marti d8d28e2e 2012-08-06T12:44:23 remotes: Proper return for `git_remote_ls`
Vicent Marti 51e1d808 2012-08-06T12:41:08 Merge remote-tracking branch 'arrbee/tree-walk-fixes' into development Conflicts: src/notes.c src/transports/git.c src/transports/http.c src/transports/local.c tests-clar/odb/foreach.c
Michael Schubert 7e9f78b5 2012-08-04T15:22:38 remote: add missing include git2/remote.h Otherwise we get an incomplete type error, since git_remote_callbacks isn't declared yet.
Russell Belfer b0d37669 2012-08-03T17:24:59 Add new iteration behavior to git_tree_walk Missed this one, ironically enough.
Russell Belfer 5dca2010 2012-08-03T17:08:01 Update iterators for consistency across library This updates all the `foreach()` type functions across the library that take callbacks from the user to have a consistent behavior. The rules are: * A callback terminates the loop by returning any non-zero value * Once the callback returns non-zero, it will not be called again (i.e. the loop stops all iteration regardless of state) * If the callback returns non-zero, the parent fn returns GIT_EUSER * Although the parent returns GIT_EUSER, no error will be set in the library and `giterr_last()` will return NULL if called. This commit makes those changes across the library and adds tests for most of the iteration APIs to make sure that they follow the above rules.
Vicent Marti 5daca042 2012-08-03T01:01:21 filebuf: Check the return value for `close`
Carlos Martín Nieto d96c3863 2012-08-02T01:56:02 win32: set errno to ENOENT or ENOTDIR when appropriate in do_lstat
Vicent Marti e25dda51 2012-08-02T01:38:30 Merge remote-tracking branch 'nulltoken/topic/amd64-compat' into development Conflicts: src/netops.c src/netops.h src/oid.c
Vicent Martí 95a1d876 2012-08-01T16:31:00 Merge pull request #850 from libgit2/attr-export attr: Do not export variables externally
Vicent Marti 0ac349a9 2012-08-02T01:22:51 repository: Indentation
Vicent Martí e5f49501 2012-08-01T16:21:41 Merge pull request #848 from carlosmn/pending-message repository: add a getter and remove function for git's prepared message
Vicent Marti 0c9eacf3 2012-08-02T01:15:24 attr: Do not export variables externally Fixes #824 Exporting variables in a dynamic library is a PITA. Let's keep these values internally and wrap them through a helper method. This doesn't break the external API. @arrbee, aren't you glad I turned the `GIT_ATTR_` macros into function macros? :sparkles:
Ben Straub aa549d32 2012-08-01T15:09:05 Clean up a TODO comment.
Sascha Cunz e564e496 2012-08-01T20:02:32 Add function to query for compile time settings.
Carlos Martín Nieto 074841ec 2012-08-01T17:49:19 repository: add a getter and remove function for git's prepared message The 'git revert/cherry-pick/merge -n' commands leave .git/MERGE_MSG behind so that git-commit can find it. As we don't yet support these operations, users who are shelling out to let git perform these operations haven't had a convenient way to get this message. These functions allow the user to retrieve the message and remove it when she's created the commit.
Ben Straub 5f4d2f9f 2012-07-31T19:49:19 Checkout: fix problem with detached HEAD.
Ben Straub e4bac3c4 2012-07-31T15:38:12 Checkout: crlf filter.
Ben Straub 8e4aae1a 2012-07-31T10:44:42 Checkout: handle file modes properly. Global file mode override now works properly with the file mode stored in the tree node.
Vicent Martí 2340b181 2012-07-31T10:19:30 Merge pull request #826 from carlosmn/config-find-error git_config_find_* does not set a git error
Vicent Martí bfb59164 2012-07-31T10:16:21 Merge pull request #833 from carlosmn/odb-one odb: allow creating an ODB backend from a packfile index
Ben Straub 7e02c7c5 2012-07-31T08:45:42 Checkout: save index on checkout.
Ben Straub 4bf51156 2012-07-30T14:52:46 Enable stats on git_index_read_tree. Replace with the contents of git_index_read_tree_with_stats() and improve documentation comments.
Ben Straub f1587b97 2012-07-30T14:37:40 Checkout: use git_index_read_tree_with_stats. New variant of git_index_read_tree that fills in the 'total' field of a git_indexer_stats struct as it's walking the tree.
Carlos Martín Nieto 0048372a 2012-07-27T01:09:06 transport: rename encrypt to use_ssl SSL isn't the only way that a transport can be encrypted. The new name will make it easier to merge the SSH support.
Carlos Martín Nieto 3e3228b6 2012-07-25T16:30:58 fetch: remove timeout code
Carlos Martín Nieto 8861d32f 2012-07-25T16:16:53 ssl: use the callback instead of ifs to determine how to get data Using the callbacks makes it clearer and reduces the amount of #ifdefs and ifs and we need in the code.
Carlos Martín Nieto ad4b5beb 2012-07-25T10:40:59 transport: store the refs in a common area Instad of each transport having its own function and logic to get to its refs, store them directly in transport. Leverage the new gitno_buffer to make the parsing and storing of the refs use common code and get rid of the git_protocol struct.
Carlos Martín Nieto b49c8f71 2012-07-24T19:03:22 remote: use the same code to control git and http This allows us to add capabilitites to both at the same time, keeps them in sync and removes a lot of code. gitno_buffer now uses a callback to fill its buffer, allowing us to use the same interface for git and http (which uses callbacks).
Carlos Martín Nieto 114dc6e1 2012-07-24T17:10:57 network: implement multi_ack for the git transport
Carlos Martín Nieto 64d01de8 2012-07-24T14:23:16 remote: start moving the protocol to a common area For the transition, http is going to keep its own logic until the git/common code catches up with the implied multi_ack that http has. This also has the side-effect of making the code cleaner and more correct regardingt he protocol.
Michael Schubert f6b26e77 2012-07-27T10:53:09 git_oid_cmp: inline memcmp by hand to optimize git.git uses an inlined hashcmp function instead of memcmp, since it performes much better when comparing hashes (most hashes compared diverge within the first byte). Measurements and rationale for the curious reader: http://thread.gmane.org/gmane.comp.version-control.git/172286
Michael Schubert 6810ba08 2012-07-28T11:33:12 Fix -Wuninitialized warning
Ben Straub b31667fb 2012-07-27T20:29:06 Checkout: add head- and ref-centric checkouts. Renamed git_checkout_index to what it really was, and removed duplicate code from clone.c. Added git_checkout_ref, which updates HEAD and hands off to git_checkout_head. Added tests for the options the caller can pass to git_checkout_*.
Ben Straub 4d83399d 2012-07-27T11:55:58 Adjust for msvc pedantry.