summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Lock around encrypted I/Ocmn/lock-ioCarlos Martín Nieto2015-05-229-10/+172
| | | | | | | | | OpenSSL and often whatever libssh2 is using require their own set-up for concurrent operations to be safe. This means that by default, using both of these libraries in a threaded context is unsafe. Lock by default, and allow the user to tell us that they've set up threading for the underlying libraries.
* 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.
* | travis: build maint branchesCarlos Martín Nieto2015-05-221-1/+1
| |
* | 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 #3145 from stinb/fix_cxx_buildCarlos Martín Nieto2015-05-211-1/+1
|\ \ \ | | | | | | | | Fix error when building as C++.
| * | | Fix error when building as C++.Jason Haslam2015-05-201-1/+1
| | | |
* | | | Merge pull request #3146 from ethomson/add_untracked_filesCarlos Martín Nieto2015-05-212-1/+26
|\ \ \ \ | | | | | | | | | | 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-202-1/+27
| |/ / /
* | | | Merge pull request #3144 from libgit2/cmn/ignored-ignoreEdward Thomson2015-05-202-0/+13
|\ \ \ \ | |/ / / |/| | | ignore: clear the error when matching a pattern negation
| * | | ignore: clear the error when matching a pattern negationcmn/ignored-ignoreCarlos Martín Nieto2015-05-202-0/+13
|/ / / | | | | | | | | | | | | | | | 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.
* | | Add a missing include for resetCarlos Martín Nieto2015-05-201-0/+1
| | | | | | | | | | | | | | | Our doc parser really wants the types to be declared in the header it's reading.
* | | Merge pull request #3137 from libgit2/cmn/server-errorsCarlos Martín Nieto2015-05-205-3/+25
|\ \ \ | |/ / |/| | Improve server error reporting
| * | errors: add GIT_EEOF to indicate early EOFcmn/server-errorsCarlos Martín Nieto2015-05-205-4/+15
| | | | | | | | | | | | | | | | | | 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-202-1/+12
|/ / | | | | | | | | | | | | | | 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-193-69/+118
|\ \ | | | | | | Use a diff for iteration in index_update_all and index_add_all
| * | index: add a CHANGELOG entry for the diff usagecmn/index-use-diffCarlos Martín Nieto2015-05-141-0/+3
| | |
| * | index: include TYPECHANGE in the diffCarlos Martín Nieto2015-05-142-1/+15
| | | | | | | | | | | | 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.
* | | Merge pull request #3132 from libgit2/cmn/path-direach-cberrorEdward Thomson2015-05-192-2/+8
|\ \ \ | | | | | | | | Provide error messages for git_path_direach operations
| * | | 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.
| * | | path: don't let direach overwrite the callback's error messageCarlos Martín Nieto2015-05-151-1/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | This function deals with functions doing IO which means the amount of errors that can happen is quit large. It does not help if it always ovewrites the underlying error message with a less understandable version of "something went wrong". Instead, only use this generic message if there was no error set by the callback.
* | | Merge pull request #3130 from mortonfox/patch-1Carlos Martín Nieto2015-05-151-1/+1
|\ \ \ | | | | | | | | Updated dlibgit link.
| * | | Updated dlibgit link.Morton Fox2015-05-141-1/+1
| | | |
* | | | Merge pull request #3129 from Therzok/patch-2Carlos Martín Nieto2015-05-141-2/+2
|\ \ \ \ | |/ / / |/| | | Bring Early EOF message in line with the other two
| * | | Make "Early EOF" message start with lowercaseMarius Ungureanu2015-05-141-2/+2
|/ / /
* | | local: plug a leak in the progress reportingCarlos Martín Nieto2015-05-141-1/+5
| | |
* | | Merge pull request #3128 from libgit2/cmn/push-notify-deletedEdward Thomson2015-05-142-3/+118
|\ \ \ | |/ / |/| | Add tests for and fix push negotiation notification
| * | push: fix the update constructorcmn/push-notify-deletedCarlos Martín Nieto2015-05-141-3/+4
| | | | | | | | | | | | | | | There was a copypasta error and the source and destination IDs were reversed.
| * | push: add tests for the push negotiation callbackCarlos Martín Nieto2015-05-141-0/+114
|/ / | | | | | | | | The functionality was meged without including tests, so let's add them now.
* | Add CHANGELOG entry for index entry changesCarlos Martín Nieto2015-05-141-0/+5
| |
* | Merge pull request #3119 from ethomson/ignoreCarlos Martín Nieto2015-05-133-39/+82
|\ \ | | | | | | Attributes: don't match files for folders
| * | attr tests: make explicit our dir/file match testsEdward Thomson2015-05-131-12/+24
| | |
| * | attr: declare variable at top of block for msvcEdward Thomson2015-05-121-1/+3
| | |
| * | attr: less path mangling during attribute matchingEdward Thomson2015-05-121-40/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When handling attr matching, simply compare the directory path where the attribute file resides to the path being matched. Skip over commonality to allow us to compare the contents of the attribute file to the remainder of the path. This allows us to more easily compare the pattern directly to the path, instead of trying to guess whether we want to compare the path's basename or the full path based on whether the match was inside a containing directory or not. This also allows us to do fewer translations on the pattern (trying to re-prefix it.)
| * | attr: don't mangle file path during attr matchingEdward Thomson2015-05-121-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When determining whether some file matches an attr pattern, do not try to truncate the path to pass to fnmatch. When there is no containing directory for an item (eg, from a .gitignore in the root) this will cause us to truncate our path, which means that we cannot do meaningful comparisons on it and we may have false positives when trying to determine whether a given file is actually a file or a folder (as we have lost the path's base information.) This mangling was to allow fnmatch to compare a directory on disk to the name of a directory, but it is unnecessary as our fnmatch accepts FNM_LEADING_DIR.
| * | attr: always return errorsEdward Thomson2015-05-121-1/+2
| | |
| * | attr: don't match files for foldersEdward Thomson2015-05-121-0/+8
| | | | | | | | | | | | | | | When ignoring a path "foo/", ensure that this is actually a directory, and not simply a file named "foo".
| * | attr test: test a file beneath ignored folderEdward Thomson2015-05-121-1/+1
| | |
| * | attr: test that a file is not ignored for a folderEdward Thomson2015-05-121-0/+17
| | | | | | | | | | | | | | | When a .gitignore specifies some folder "foo/", ensure that a file with the same name "foo" is not ignored.
| * | attr: regression tests for ignore matchingEdward Thomson2015-05-121-0/+32
| | | | | | | | | | | | | | | | | | Ensure that when examining a .gitignore in a subdirectory, we do not erroneously apply the paths contained therein to the root of the repository. (Fixed in c02a0e4).
* | | Merge pull request #3103 from libgit2/cmn/local-push-messageEdward Thomson2015-05-132-58/+24
|\ \ \ | | | | | | | | Use the packbuilder in local push
| * | | tests: don't push to our resourcescmn/local-push-messageCarlos Martín Nieto2015-05-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A couple of tests use the wrong remote to push to. We did not notice up to now because the local push would copy individual objects, and those already existed, so it became a no-op. Once we made local push create the packfile, it became noticeable that there was a new packfile where it didn't belong.
| * | | local: use the packbuilder to pushCarlos Martín Nieto2015-05-131-55/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of copying each object individually, as we'd been doing, use the packbuilder which should be faster and give us some feedback. While performing this change, we can hook up the packbuilder's writing to the push progress so the caller knows how far along we are.
| * | | local: add clarification for non-bare push restrictionCarlos Martín Nieto2015-05-131-1/+4
| | | |