summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Change error when running out of ssh agent keysMarius Ungureanu2015-06-021-1/+7
|/ /
* | remote: apply insteadOf configuration.Patrick Steinhardt2015-05-311-5/+70
| | | | | | | | | | | | | | | | A remote's URLs are now modified according to the url.*.insteadOf and url.*.pushInsteadOf configurations. This allows a user to replace URL prefixes by setting the corresponding keys. E.g. "url.foo.insteadOf = bar" would replace the prefix "bar" with the new prefix "foo".
* | Merge pull request #3157 from mgorny/ssh_memory_authCarlos Martín Nieto2015-05-292-1/+71
|\ \ | | | | | | Support getting SSH keys from memory, pt. 2
| * | cred: Check for null values when getting key from memoryMichał Górny2015-05-271-1/+4
| | | | | | | | | | | | | | | | | | The public key field is optional and as such can take NULL. Account for that and do not call strlen() on NULL values. Also assert() for non-NULL values of username & private key.
| * | cred: Declare GIT_CREDTYPE_SSH_MEMORY unconditionallyMichał Górny2015-05-271-2/+0
| | | | | | | | | | | | | | | | | | | | | Declare GIT_CREDTYPE_SSH_MEMORY to have consistent API independently of whether libgit2 was built with or without in-memory key passing support. Or rather, to have it at all since build-time definitions are not stored in headers.
| * | Return an error when ssh memory credentials are not supported.David Calavera2015-05-271-2/+6
| | | | | | | | | | | | To not modify the external api.
| * | Add support to read ssh keys from memory.David Calavera2015-05-272-1/+66
| | |
* | | Rename GIT_EMERGECONFLICT to GIT_ECONFLICTEdward Thomson2015-05-293-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not error on "merge conflicts"; on the contrary, merge conflicts are a normal part of merging. We only error on "checkout conflicts", where a change exists in the index or the working directory that would otherwise be overwritten by performing the checkout. This *may* happen during merge (after the production of the new index that we're going to checkout) but it could happen during any checkout.
* | | Merge pull request #3139 from ethomson/diff_conflictsCarlos Martín Nieto2015-05-287-86/+258
|\ \ \ | | | | | | | | Include conflicts when diffing
| * | | index_add_all: remove conflicts when no wd fileEdward Thomson2015-05-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If there exists a conflict in the index, but no file in the working directory, this implies that the user wants to accept the resolution by removing the file. Thus, remove the conflict entry from the index, instead of trying to add a (nonexistent) file.
| * | | Introduce `GIT_DIFF_FLAG_EXISTS`Edward Thomson2015-05-281-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mark the `old_file` and `new_file` sides of a delta with a new bit, `GIT_DIFF_FLAG_EXISTS`, that introduces that a particular side of the delta exists in the diff. This is useful for indicating whether a working directory item exists or not, in the presence of a conflict. Diff users may have previously used DELETED to determine this information.
| * | | diff: prettify `maybe_modified` a littleEdward Thomson2015-05-281-12/+15
| | | |
| * | | introduce `git_index_entry_is_conflict`Edward Thomson2015-05-284-11/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not always obvious the mapping between stage level and conflict-ness. More importantly, this can lead otherwise sane people to write constructs like `if (!git_index_entry_stage(entry))`, which (while technically correct) is unreadable. Provide a nice method to help avoid such messy thinking.
| * | | diff conflicts: don't include incorrect IDEdward Thomson2015-05-281-16/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since a diff entry only concerns a single entry, zero the information for the index side of a conflict. (The index entry would otherwise erroneously include the lowest-stage index entry - generally the ancestor of a conflict.) Test that during status, the index side of the conflict is empty.
| * | | diff: for conflicts w/o workdir, blank nitem sideEdward Thomson2015-05-281-13/+26
| | | | | | | | | | | | | | | | | | | | Make sure that we provide a blanked nitem side when the item does not exist in the working directory.
| * | | diff/status: introduce conflictsEdward Thomson2015-05-283-13/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When diffing against an index, return a new `GIT_DELTA_CONFLICTED` delta type for items that are conflicted. For a single file path, only one delta will be produced (despite the fact that there are multiple entries in the index). Index iterators now have the (optional) ability to return conflicts in the index. Prior to this change, they would be omitted, and callers (like diff) would omit conflicted index entries entirely.
| * | | index: validate mode of new conflictsEdward Thomson2015-05-281-0/+9
| | | |
| * | | index: remove error message in non-error removeEdward Thomson2015-05-281-0/+3
| | | | | | | | | | | | | | | | | | | | If `git_index_remove_bypath` does no work, and returns an OK error code, it should not set an error message.
| * | | conflicts: when adding conflicts, remove stagedEdward Thomson2015-05-281-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | When adding a conflict for some path, remove the staged entry. Otherwise, an illegal index (with both stage 0 and high-stage entries) would result.
| * | | diff: wrap the iterator functionsEdward Thomson2015-05-281-25/+73
| | | | | | | | | | | | | | | | | | | | | | | | Wrap the iterator current / advance functions so that we can extend them, but also handle GIT_ITEROVER cases in the iterator funcs instead of the callers.
| * | | index iterator: optionally include conflictsEdward Thomson2015-05-282-7/+13
| | |/ | |/|
* | | Merge pull request #3149 from libgit2/cmn/upstream-matching-pushEdward Thomson2015-05-282-3/+12
|\ \ \ | | | | | | | | Fill the pointers for matching refspecs
| * | | branch: error out if we cannot find the remotecmn/upstream-matching-pushCarlos Martín Nieto2015-05-221-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we look for which remote corresponds to a remote-tracking branch, we look in the refspecs to see which ones matches. If none do, we should abort. We currently ignore the error message from this operation, so let's not do that anymore. As part of the test we're writing, let's test for the expected behaviour if we cannot find a refspec which tells us what the remote-tracking branch for a remote would look like.
| * | | refspec: make sure matching refspecs have src, dst and input stringsCarlos Martín Nieto2015-05-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we find out that we're dealing with a matching refspec, we set the flag and return immediately. This leaves the strings as NULL, which breaks the contract. Assign these pointers to a string with the correct values.
* | | | Merge pull request #3127 from libgit2/cmn/remote-fixupsCarlos Martín Nieto2015-05-281-33/+49
|\ \ \ \ | |_|/ / |/| | | Tackle remote API issues from bindings
| * | | remote: call the update_tips callback for opportunisitc updatesCarlos Martín Nieto2015-05-281-9/+31
| | | | | | | | | | | | | | | | | | | | These are updates, same as the rest, we should call this callback. As we are using the callback, let's make sure to skip unnecessary updates.
| * | | remote: validate refspecs before adding to configCarlos Martín Nieto2015-05-281-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When we moved from acting on the instance to acting on the configuration, we dropped the validation of the passed refspec, which can lead to writing an invalid refspec to the configuration. Bring that validation back.
| * | | remote: remove fetch parameter from create_anonymousCarlos Martín Nieto2015-05-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | An anonymous remote is not configured and cannot therefore have configured refspecs. Remove the parameter which adds this from the constructor.
| * | | remote: get rid of the run-time refspec settersCarlos Martín Nieto2015-05-171-22/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These were left over from the culling as it's not clear which use-cases might benefit from this. It is not clear that we want to support any use-case which depends on changing the remote's idea of the base refspecs rather than passing in different per-operation refspec list, so remove these functions.
* | | | Fix ident replacement to match Git behaviorColomban Wendling2015-05-261-2/+2
| |_|/ |/| | | | | | | | | | | Git inserts a space after the SHA1 (as of 2.1.4 at least), so do the same.
* | | Merge pull request #3151 from ethomson/thinpackCarlos Martín Nieto2015-05-222-1/+21
|\ \ \ | | | | | | | | Thin packs: don't
| * | | indexer: avoid loading already existent basesEdward Thomson2015-05-221-1/+14
| | | | | | | | | | | | | | | | | | | | When thickening a pack, avoid loading already loaded bases and trying to insert them all over again.
| * | | indexer: don't look for the index we're creatingEdward Thomson2015-05-221-0/+7
| | |/ | |/| | | | | | | | | | | | | When creating an index, know that we do not have an index for our own packfile, preventing some unnecessary file opens and error reporting.
* | | Merge pull request #3108 from libgit2/cmn/ssl-no-wantEdward Thomson2015-05-221-16/+5
|\ \ \ | |/ / |/| | openssl: don't try to handle WANT_READ or WANT_WRITE
| * | openssl: don't try to handle WANT_READ or WANT_WRITEcmn/ssl-no-wantCarlos Martín Nieto2015-05-091-16/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | We use a blocking socket and set the mode to AUTO_RETRY which means that `SSL_write` and `SSL_read` will only return once the read or write has been completed. We therefore don't need to handle partial writes or re-try read due to a regenotiation. While here, consider that a zero also indicates an error condition.
* | | Merge branch 'sni'Carlos Martín Nieto2015-05-211-0/+3
|\ \ \
| * | | Call the openssl API to be able to work with SNI servers.Cristian Oneț2015-05-211-0/+3
| | | |
* | | | Merge pull request #3146 from ethomson/add_untracked_filesCarlos Martín Nieto2015-05-211-1/+3
|\ \ \ \ | | | | | | | | | | index_add_all: include untracked files in new subdirs
| * | | | git_index_add_all: don't recurse ignored dirsEdward Thomson2015-05-201-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | No need to get reports about individual ignored files, having a single ignored directory delta is enough.
| * | | | index_add_all: include untracked files in new subdirsEdward Thomson2015-05-201-1/+4
| | | | |
* | | | | ignore: clear the error when matching a pattern negationcmn/ignored-ignoreCarlos Martín Nieto2015-05-201-0/+1
|/ / / / | | | | | | | | | | | | | | | | | | | | When we discover that we want to keep a negative rule, make sure to clear the error variable, as it we otherwise return whatever was left by the previous loop iteration.
* | | | errors: add GIT_EEOF to indicate early EOFcmn/server-errorsCarlos Martín Nieto2015-05-203-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | This can be used by tools to show mesages about failing to communicate with the server. The error message in this case will often contain the server's error message, as far as it managed to send anything.
* | | | ssh: read from stderr if stdout is emptyCarlos Martín Nieto2015-05-201-1/+8
|/ / / | | | | | | | | | | | | | | | | | | | | | When we fail to read from stdout, it's typically because the URL was wrong and the server process has sent some output over its stderr output. Read that output and set the error message to whatever we read from it.
* | | Merge pull request #3109 from libgit2/cmn/index-use-diffEdward Thomson2015-05-191-69/+102
|\ \ \ | | | | | | | | Use a diff for iteration in index_update_all and index_add_all
| * | | index: include TYPECHANGE in the diffCarlos Martín Nieto2015-05-141-1/+2
| | | | | | | | | | | | | | | | Without this option, we would not be able to catch exec bit changes.
| * | | index: make add_all to act on a diffCarlos Martín Nieto2015-05-141-80/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of going through each entry we have and re-adding, which may not even be correct for certain crlf options and has bad performance, use the function which performs a diff against the worktree and try to add and remove files from that list.
| * | | index: refactor diff-based update_all to match other appliesCarlos Martín Nieto2015-05-141-80/+87
| | | | | | | | | | | | | | | | | | | | Refactor so we look like the code we're replacing, which should also allow us to more easily inplement add-all.
| * | | index: use a diff to perform update_allCarlos Martín Nieto2015-05-141-2/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently iterate over all the entries and re-add them to the index. While this provides correctness, it is wasteful as we try to re-insert files which have not changed. Instead, take a diff between the index and the worktree and only re-add those which we already know have changed.
* | | | fileops: set an error on write error for file copycmn/path-direach-cberrorCarlos Martín Nieto2015-05-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | We set an error if we get an error when reading, but we don't bother setting an error message for write failing. This causes a cryptic error to be shown to the user when the target filesystem is full.
* | | | fileops: set an error message if we fail to link a fileCarlos Martín Nieto2015-05-151-1/+2
| | | | | | | | | | | | | | | | | | | | Now that `git_path_direach` lets us specify an error message to report, set an appropriate error message while linking.