- 15 Aug, 2014 1 commit
-
-
Edward Thomson committed
-
- 14 Aug, 2014 1 commit
-
-
* Move the transport registration mechanisms into a new header under 'sys/' because this is advanced stuff. * Remove the 'priority' argument from the registration as it adds unnecessary complexity. (Since transports cannot decline to operate, only the highest priority transport is ever executed.) Users who require per-priority transports can implement that in their custom transport themselves. * Simplify registration further by taking a scheme (eg "http") instead of a prefix (eg "http://").
Edward Thomson committed
-
- 05 Aug, 2014 3 commits
-
-
Jacques Germishuys committed
-
Jacques Germishuys committed
-
Jacques Germishuys committed
-
- 16 Jul, 2014 1 commit
-
-
Vicent Marti committed
-
- 07 Jul, 2014 1 commit
-
-
git allows you to set which paths to use for the git server programs when connecting over ssh; and we want to provide something similar. We do this by providing a factory function which can be set as the remote's transport callback which will set the given paths upon creation.
Carlos Martín Nieto committed
-
- 03 Jul, 2014 1 commit
-
-
Jacques Germishuys committed
-
- 02 Jul, 2014 1 commit
-
-
When the stream writing function was written, it assume that libssh2_channel_write() would always write all of the data to the wire. This is only true for the first 32k of data, which it tries to fit into one ssh packet. Since it can perform short writes, call it in a loop like we do for send(), advancing the buffer offset.
Carlos Martín Nieto committed
-
- 27 Jun, 2014 1 commit
-
-
Philip Kelley committed
-
- 13 Jun, 2014 1 commit
-
-
We want to check whether the credentials callback is NULL, not whether the payload is.
Carlos Martín Nieto committed
-
- 03 Jun, 2014 1 commit
-
-
Whe already worked out the kinks with the function used in the local transport. Expose it and make use of it in the local clone method instead of trying to work it out again.
Carlos Martín Nieto committed
-
- 22 May, 2014 2 commits
-
-
Carlos Martín Nieto committed
-
We have too many places where we repeat free code, so when adding the new free to the generic code, it didn't take for the local transport. While there, fix a C99-ism that sneaked through.
Carlos Martín Nieto committed
-
- 21 May, 2014 3 commits
-
-
When using the local transport, we always have the symbolic information available, so fill it.
Carlos Martín Nieto committed -
Add a symref_target field to git_remote_head to expose the symref mappings to the user.
Carlos Martín Nieto committed -
The protocol has a capability which allows the server to tell us which refs are symrefs, so we can e.g. know which is the default branch. This capability is different from the ones we already support, as it's not setting a flag to true, but requires us to store a list of refspec-formatted mappings. This commit does not yet expose the information in the reference listing.
Carlos Martín Nieto committed
-
- 20 May, 2014 1 commit
-
-
The git server wants to hear a flush from us when we disconnect, particularly when we want to perform a fetch but are up to date.
Carlos Martín Nieto committed
-
- 22 Apr, 2014 1 commit
-
-
Allow the credentials callback to return GIT_PASSTHROUGH to make the transports code behave as though none was set. This should make it easier for bindings to behave closer to the C code when there is no credentials callback set at their level.
Carlos Martín Nieto committed
-
- 21 Apr, 2014 4 commits
-
-
Jacques Germishuys committed
-
Jacques Germishuys committed
-
Jacques Germishuys committed
-
The user may have requested that the operation be cancelled.
Jacques Germishuys committed
-
- 20 Apr, 2014 2 commits
-
-
It's not very useful to only know that a pre-receive hook has declined a push, you probably want to know why.
Jacques Germishuys committed -
Philip Kelley committed
-
- 18 Apr, 2014 4 commits
-
-
Jacques Germishuys committed
-
Jacques Germishuys committed
-
This allows for keyboard-interactive based SSH authentication
Jacques Germishuys committed -
The ssh-specific credentials allow the username to be missing. The idea being that the ssh transport will then use the username provided in the url, if it's available. There are two main issues with this. The credential callback already knows what username was provided by the url and needs to figure out whether it wants to ask the user for it or it can reuse it, so passing NULL as the username means the credential callback is suspicious. The username provided in the url is not in fact used by the transport. The only time it even considers it is for the user/pass credential, which asserts the existence of a username in its constructor. For the ssh-specific ones, it passes in the username stored in the credential, which is NULL. The libssh2 macro we use runs strlen() against this value (which is no different from what we would be doing ourselves), so we then crash. As the documentation doesn't suggest to leave out the username, assert the need for a username in the code, which removes this buggy behavior and removes implicit state. git_cred_has_username() becomes a blacklist of credential types that do not have a username. The only one at the moment is the 'default' one, which is meant to call up some Microsoft magic.
Carlos Martín Nieto committed
-
- 18 Mar, 2014 1 commit
-
-
Philip Kelley committed
-
- 07 Mar, 2014 1 commit
-
-
Combinations of connect + fetch can call local_open multiple times. Detect this and skip the initialization stage.
Carlos Martín Nieto committed
-
- 25 Feb, 2014 1 commit
-
-
- added MSVC cmake definitions to disable warnings - general.c is rewritten so it is ansi-c compatible and compiles ok on microsoft windows - some MSVC reported warning fixes
Miha committed
-
- 19 Jan, 2014 1 commit
-
-
Previously this code was shared between `local_push` and `local_connect`.
Graham Dennis committed
-
- 17 Jan, 2014 1 commit
-
-
Graham Dennis committed
-
- 15 Jan, 2014 1 commit
-
-
Any well-behaved program should write a descriptive message to the reflog whenever it updates a reference. Let's make this more prominent by removing the version without the reflog parameters.
Carlos Martín Nieto committed
-
- 12 Dec, 2013 1 commit
-
-
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 committed
-
- 11 Dec, 2013 3 commits
-
-
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 committed -
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 committed -
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 committed
-
- 03 Dec, 2013 1 commit
-
-
Jameson Miller committed
-