summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* remote: remove git_push from the public APIcmn/hide-pushCarlos Martín Nieto2014-12-303-12/+152
| | | | | Instead we provide git_remote_upload() and git_remote_update_tips() in order to have a parallel API for fetching and pushing.
* push: fold unpack_ok() into finish()Carlos Martín Nieto2014-12-102-11/+5
| | | | | The push cannot be successful if we sent a bad packfile. We should return an error in that case instead of storing it elsewhere.
* Merge pull request #2678 from libgit2/cmn/io-streamEdward Thomson2014-12-1011-612/+817
|\ | | | | Introduce stackable IO streams
| * Fix a couple of compiler warningsCarlos Martín Nieto2014-12-102-2/+2
| |
| * stream: constify the write bufferCarlos Martín Nieto2014-12-103-3/+3
| |
| * gitno: remove code which is no longer neededCarlos Martín Nieto2014-12-105-500/+17
| | | | | | | | | | | | Most of the network-facing facilities have been copied to the socket and openssl streams. No code now uses these functions directly anymore, so we can now remove them.
| * ssh: use socket_stream to perform the connectionCarlos Martín Nieto2014-12-101-8/+12
| | | | | | | | | | | | | | | | Having an ssh stream would require extra work for stream capabilities we don't need anywhere else (oob auth and command execution) so for now let's move away from the gitno connection to use socket_stream. We can introduce an ssh stream interface if and as we need it.
| * Port HTTP(S) to the new stream APICarlos Martín Nieto2014-12-101-61/+39
| |
| * Port the TCP transport to the new stream APICarlos Martín Nieto2014-12-103-57/+93
| |
| * Add an OpenSSL IO streamCarlos Martín Nieto2014-12-104-15/+418
| | | | | | | | | | | | | | This unfortunately isn't as stackable as could be possible, as it hard-codes the socket stream. This is because the method of using a custom openssl BIO is not clear, and we do not need this for now. We can still bring this in if and as we need it.
| * Introduce stackable IO streamsCarlos Martín Nieto2014-12-102-0/+267
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We currently have gitno for talking over TCP, but this needs to know about both plaintext and OpenSSL connections and the code has gotten somewhat messy with ifdefs determining which version of the function should be called. In order to clean this up and abstract away the details of sending over the different types of streams, we can instead use an interface and stack stream implementations. We may not be able to use the stackability with all streams, but we are definitely be able to use the abstraction which is currently spread between different bits of gitno.
* | winhttp: plug some leaksEdward Thomson2014-12-091-47/+67
| |
* | win32: remember to cleanup our hash_ctxEdward Thomson2014-12-092-0/+2
| |
* | Merge pull request #2746 from libgit2/cmn/neg-ignore-dirEdward Thomson2014-12-061-3/+86
|\ \ | | | | | | Fix negative ignores withing ignored dirs
| * | ignore: match git's rule negation rulescmn/neg-ignore-dirCarlos Martín Nieto2014-12-051-3/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A rule can only negate something which was explicitly mentioned in the rules before it. Change our parsing to ignore a negative rule which does not negate something mentioned in the rules above it. While here, fix a wrong allocator usage. The memory for the match string comes from pool allocator. We must not free it with the general allocator. We can instead simply forget the string and it will be cleaned up.
* | | Merge pull request #2730 from libgit2/cmn/local-pushEdward Thomson2014-12-052-12/+8
|\ \ \ | | | | | | | | Adjust the local transport for the common refspec parser
| * | | local: adjust to the common refspec parsercmn/local-pushCarlos Martín Nieto2014-11-231-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer have NULL strings, but empty ones and duplicate the sides if necessar, so the first check will never do anything. While in the area, remove unnecessary ifs and early returns.
| * | | remote: verify there is a push foreach callback setCarlos Martín Nieto2014-11-231-1/+2
| | | |
* | | | notes: move the notes name argumentCarlos Martín Nieto2014-12-062-3/+3
| |/ / |/| | | | | | | | | | | Make it consistent between git_note_create() and git_note_remote() by putting it after the repository.
* | | Merge pull request #2744 from epmatsw/spellingnulltoken2014-12-0510-10/+10
|\ \ \ | | | | | | | | Spelling fixes
| * | | Spelling fixesWill Stamper2014-12-0410-10/+10
| | | |
* | | | Merge pull request #2743 from ethomson/init_valCarlos Martín Nieto2014-12-051-14/+30
|\ \ \ \ | |/ / / |/| | | init: return the number of initializations
| * | | init: return the number of initializationsEdward Thomson2014-12-041-14/+30
| | | |
* | | | Merge pull request #2742 from stewid/add_missing_else_directiveCarlos Martín Nieto2014-12-031-0/+1
|\ \ \ \ | |/ / / |/| | | Add missing else directive
| * | | Add missing else directiveStefan Widgren2014-12-031-0/+1
| | | | | | | | | | | | | | | | | | | | Add missing else directive to fix compiler warning: control reaches end of non-void function
* | | | win32: clear connection data on closeEdward Thomson2014-12-031-0/+1
|/ / /
* | | describe: check error codesEdward Thomson2014-11-291-2/+2
| | |
* | | Merge pull request #2718 from libgit2/cmn/peeling-errorsEdward Thomson2014-11-232-7/+34
|\ \ \ | |/ / |/| | peel: reject bad queries with EPEEL
| * | peel: reject bad queries with EINVALIDSPECcmn/peeling-errorsCarlos Martín Nieto2014-11-222-7/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are some combination of objects and target types which we know cannot be fulfilled. Return EINVALIDSPEC for those to signify that there is a mismatch in the user-provided data and what the object model is capable of satisfying. If we start at a tag and in the course of peeling find out that we cannot reach a particular type, we return EPEEL.
* | | Plug leaksCarlos Martín Nieto2014-11-234-8/+17
| | | | | | | | | | | | Valgrind is now clean except for libssl and libgcrypt.
* | | Merge pull request #2723 from ravindp/ravindp/fix_4_missing_delta_basesCarlos Martín Nieto2014-11-222-3/+7
|\ \ \ | | | | | | | | Fix for misleading "missing delta bases" error.
| * | | Fix for misleading "missing delta bases" error - Fix #2721.Ravindra Patel2014-11-212-3/+7
| | | |
* | | | text: Null-terminate a string if we've been gouging itvmg/attr-nullVicent Marti2014-11-211-0/+1
| | | |
* | | | notes: Use `git__strndup`Vicent Marti2014-11-211-3/+2
| | | |
* | | | notes: Do not assume blob contents are NULL-terminatedVicent Marti2014-11-211-3/+3
| | | |
* | | | attr_file: Do not assume ODB data is NULL-terminatedVicent Marti2014-11-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That's a bad assumption to make, even though right now it holds (because of the way we've implemented decompression of packfiles), this may change in the future, given that ODB objects can be binary data. Furthermore, the ODB object can return a NULL pointer if the object is empty. Copying the NULL pointer to the strbuf lets us handle it like an empty string. Again, the NULL pointer is valid behavior because you're supposed to check the *size* of the object before working on it.
* | | | buffer: Do not `put` anything if len is 0Vicent Marti2014-11-211-4/+7
| | | |
* | | | Merge pull request #2720 from ravindp/masterCarlos Martín Nieto2014-11-211-6/+6
|\ \ \ \ | |/ / / | | | / | |_|/ |/| | Fix for memory leak issue in indexer.c, that surfaces on windows
| * | Fix for memory leak issue in indexer.c, that surfaces on windowsRavindra Patel2014-11-191-6/+6
| |/
* | odb: `git_odb_object` contents are never NULLvmg/emptyVicent Marti2014-11-211-2/+2
| | | | | | | | | | | | | | This is a contract that we made in the library and that we need to uphold. The contents of a blob can never be NULL because several parts of the library (including the filter and attributes code) expect `git_blob_rawcontent` to always return a valid pointer.
* | Merge pull request #2713 from libgit2/jamill/push_fetch_firstVicent Marti2014-11-201-1/+2
|\ \ | | | | | | Update message for error during push
| * | Update message for error during pushjamill/push_fetch_firstJameson Miller2014-11-171-1/+2
| | | | | | | | | | | | | | | | | | When attempting to update a reference on a remote during push, and the reference on the remote refers to a commit that does not exist locally, then we should report a more clear error message.
* | | Merge pull request #2717 from libgit2/cmn/remote-lsVicent Marti2014-11-201-1/+1
|\ \ \ | | | | | | | | Clarify the git_remote_ls() documentation
| * | | remote: clarify which list of references _ls() returnsCarlos Martín Nieto2014-11-191-1/+1
| | |/ | |/| | | | | | | | | | Make it clear that this is not the ls-remote command but a way to access the data we have and how long it's kept around.
* | | fetch: clear the connection data on closecmn/fetch-twiceCarlos Martín Nieto2014-11-191-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | When we fetch twice with the same remote object, we did not properly clear the connection flags, so we would leak state from the last connection. This can cause the second fetch with the same remote object to fail if using a HTTP URL where the server redirects to HTTPS, as the second fetch would see `use_ssl` set and think the initial connection wanted to downgrade the connection.
* | Merge pull request #2608 from libgit2/cmn/remote-pushEdward Thomson2014-11-181-0/+60
|\ \ | | | | | | Provide a convenience function `git_remote_push()`
| * | remote: use configured push refspecs if none are givencmn/remote-pushCarlos Martín Nieto2014-11-091-3/+13
| | | | | | | | | | | | | | | If the user does not pass any refspecs to push, try to use those configured via the configuration or via add_push().
| * | remote: introduce git_remote_push()Carlos Martín Nieto2014-11-091-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | This function, similar in style to git_remote_fetch(), performs all the steps required for a push, with a similar interface. The remote callbacks struct has learnt about the push callbacks, letting us set the callbacks a single time instead of setting some in the remote and some in the push operation.
* | | Merge pull request #2671 from swisspol/remote_create_fixEdward Thomson2014-11-171-0/+4
|\ \ \ | | | | | | | | Fixed active_refspecs field not initialized on new git_remote objects
| * | | Fixed active_refspecs field not initialized on new git_remote objectsPierre-Olivier Latour2014-11-171-0/+4
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | When creating a new remote, contrary to loading one from disk, active_refspecs was not populated. This means that if using the new remote to push, git_push_update_tips() will be a no-op since it checks the refspecs passed during the push against the base ones i.e. active_refspecs. And therefore the local refs won't be created or updated after the push operation.