src


Log

Author Commit Date CI Message
Ungureanu Marius d6ecc311 2014-11-15T14:35:58 Plug possible leak in the openssl locks
Carlos Martín Nieto 799e22ea 2014-10-23T17:34:41 Rename git_threads_ to git_libgit2_ This describes their purpose better, as we now initialize ssl and some other global stuff in there. Calling the init function is not something which has been optional for a while now.
Pierre-Olivier Latour e284c451 2014-10-28T22:18:38 Changed GIT_REMOTE_DOWNLOAD_TAGS_ALL to behave like git 1.9.0
Edward Thomson 02bc5233 2014-11-08T17:05:13 Merge pull request #2698 from libgit2/cmn/fetchhead-refactor Refactor fetchhead
Edward Thomson bc8c4a8a 2014-11-08T16:55:23 Merge pull request #2695 from libgit2/cmn/remote-lookup remote: rename _load() to _lookup()
Edward Thomson e3bd48a7 2014-11-08T16:52:43 Merge pull request #2696 from libgit2/cmn/empty-objects odb: hardcode the empty blob and tree
Carlos Martín Nieto 2c9b9c8b 2014-11-08T20:40:02 remote: refactor the reference-update decision This is an ugly chunk of code, so let's put it into its own function.
Carlos Martín Nieto e1ac0101 2014-11-08T14:40:53 odb: hardcode the empty blob and tree git hardocodes these as objects which exist regardless of whether they are in the odb and uses them in the shell interface as a way of expressing the lack of a blob or tree for one side of e.g. a diff. In the library we use each language's natural way of declaring a lack of value which makes a workaround like this unnecessary. Since git uses it, it does however mean each shell application would need to perform this check themselves. This makes it common work across a range of applications and an issue with compatibility with git, which fits right into what the library aims to provide. Thus we introduce the hard-coded empty blob and tree in the odb frontend. These hard-coded objects are checked for before going to the backends, but after the cache check, which means the second time they're used, they will be treated as normal cached objects instead of creating new ones.
Carlos Martín Nieto 64fdd86d 2014-11-08T20:21:14 remote: don't check for upstream on an anonymous remote If the remote is anonymous, then we cannot check for any configuration, as there is no name. Check for this before we try to use the name, which may be a NULL pointer. This fixes #2697.
Carlos Martín Nieto e235db02 2014-11-08T20:09:11 remote: use git_branch_upstream_remote() This reduces the clutter somewhat and lets us see what we're asking about the reference.
Carlos Martín Nieto 82374d98 2014-11-08T20:00:17 branch: add getter for the upstream remote name This gets the value from branch.<foo>.remote.
Carlos Martín Nieto 209425ce 2014-11-08T13:25:51 remote: rename _load() to _lookup() This brings it in line with the rest of the lookup functions.
Ungureanu Marius 68182085 2014-11-07T20:32:50 git_status_file now takes an exact path This function has one output but can match multiple files, which can be unexpected for the user, which would usually path the exact path of the file he wants the status of.
Carlos Martín Nieto 62a617dc 2014-11-06T16:16:46 iterator: submodules are determined by an index or tree We cannot know from looking at .gitmodules whether a directory is a submodule or not. We need the index or tree we are comparing against to tell us. Otherwise we have to assume the entry in .gitmodules is stale or otherwise invalid. Thus we pass the index of the repository into the workdir iterator, even if we do not want to compare against it. This follows what git does, which even for `git diff <tree>`, it will consider staged submodules as such.
Edward Thomson 2d24816b 2014-11-06T18:49:37 checkout_index: Remove stage 0 when checking out conflicts
Edward Thomson 9f664347 2014-11-06T14:40:21 checkout_index: remove conflicts when checking out new files
Edward Thomson 64dc2485 2014-11-06T10:38:25 Merge pull request #2598 from libgit2/cmn/stacked-ignore ignore: don't leak rules into higher directores
Edward Thomson 7bb63991 2014-11-06T10:25:23 Merge pull request #2676 from libgit2/cmn/threading Threading and crypto libraries
Edward Thomson f890a84f 2014-11-06T10:19:22 Merge pull request #2682 from libgit2/cmn/fetch-tags-refspec remote: check for the validity of the refspec when updating FETCH_HEAD
Carlos Martín Nieto 6069042f 2014-11-05T16:51:39 ignore: don't leak rules into higher directories A rule "src" in src/.gitignore must only match subdirectories of src/. The current code does not include this context in the match rule and would thus consider this rule to match the top-level src/ directory instead of the intended src/src/. Keep track fo the context in which the rule was defined so we can perform a prefix match.
Edward Thomson b4e5432f 2014-11-05T10:47:19 Merge pull request #2688 from libgit2/cmn/ignore-file-trailing-cr ignore: consider files with a CR in their names
Carlos Martín Nieto 5c54e216 2014-11-05T16:07:07 ignore: consider files with a CR in their names We currently consider CR to start the end of the line, but that means that we miss cases with CR CR LF which can be used with git to match files whose names have CR at the end of their names. The fix from the patch comes from Russell's comment in the issue. This fixes #2536.
Edward Thomson cce27d82 2014-11-03T14:07:20 git_remote_rename: propogate GIT_ENOTFOUND
Edward Thomson de0c4555 2014-11-03T11:32:47 Merge pull request #2679 from jfultz/missing-include Make config reading continue after hitting a missing include file.
Carlos Martín Nieto 6d20006f 2014-11-02T20:11:54 remote: check the relevance of the refspec when updating FETCH_HEAD Before trying to rtransform using the given refspec to figure out what the name of the upstream branch is on the remote, we must make sure that the target of the refspec applies to the current branch's upstream.
Edward Thomson 0a629181 2014-11-03T15:10:14 Merge pull request #2661 from swisspol/2656 Changed context_lines and interhunk_lines to uint32_t to match struct s_xdemitconf
Edward Thomson 4bb87087 2014-11-03T15:01:41 Merge pull request #2683 from libgit2/cmn/remote-unify remote: unify the creation code
Edward Thomson 873eb899 2014-11-03T14:57:39 Merge pull request #2680 from libgit2/cmn/invalid-cert-return netops: return GIT_ECERTIFICATE when it fails the basic tests
Edward Thomson 0fab748e 2014-11-03T14:52:34 Merge pull request #2685 from libgit2/cmn/mmap-readable Fix segmentation fault observed on OpenBSD/sparc64
Stefan Sperling aad0bd6b 2014-11-03T13:46:56 Fix segmentation fault observed on OpenBSD/sparc64 A non-readable mapping of a file causes an access violation in the pack tests. Always use PROT_READ to work around this.
Jacques Germishuys bc48bcdc 2014-11-03T14:23:13 Make the Visual Studio compiler happy
John Fultz ebc13b2b 2014-11-02T19:16:49 Clean up issues include.path issues found during code review. * Error-handling is cleaned up to only let a file-not-found error through, not other sorts of errors. And when a file-not-found error happens, we clean up the error. * Test now checks that file-not-found introduces no error. And other minor cleanups.
Carlos Martín Nieto a68e217f 2014-11-02T21:57:14 remote: unify the creation code The create function with default refspec is the same as the one with a custom refspec, but it has the default refspec, so we can create the one on top of the other.
Carlos Martín Nieto 22fbb265 2014-11-02T16:12:10 netops: return GIT_ECERTIFICATE when it fails the basic tests When we first ask OpenSSL to verify the certfiicate itself (rather than the HTTPS specifics), we should also return GIT_ECERTIFICATE. Otherwise, the caller would consider this as a failed operation rather than a failed validation and not call the user's own validation.
John Fultz 727ae380 2014-11-01T11:21:45 Make config reading continue after hitting a missing include file. For example, if you have [include] path = foo and foo didn't exist, git_config_open_ondisk() would just give up on the rest of the file. Now it ignores the unresolved include without error and continues reading the rest of the file.
Carlos Martín Nieto fe6b51ae 2014-11-01T10:45:33 ssl: separate locking init from general init Extract the lock-setting functions into their own, as we cannot assume that it's ok for us to set this unconditionally.
Carlos Martín Nieto e0836577 2014-11-01T10:26:09 ssl: clear the OpenSSL locking function We're freeing the memory which holds the locks so we must make sure that the locking function doesn't try to use it.
Pierre-Olivier Latour 64bcf567 2014-10-26T10:30:05 Fixed potential crash with uninitialized variables
Pierre-Olivier Latour ea66215d 2014-10-26T10:29:19 Removed some useless variable assignments
Pierre-Olivier Latour d88766c4 2014-10-26T10:40:46 Changed context_lines and interhunk_lines to uint32_t to match struct s_xdemitconf
Carlos Martín Nieto 177a29d8 2014-10-27T10:39:45 Merge commit 'refs/pull/2366/head' of github.com:libgit2/libgit2
Sven Strickroth 334a0696 2014-10-26T17:36:14 Minor cleanup: Use defined no_check_cert_flags instead of C&P them again Signed-off-by: Sven Strickroth <email@cs-ware.de>
Edward Thomson 979645a7 2014-10-04T20:17:26 rebase: updates based on PR comments
Edward Thomson 18b00406 2014-10-03T19:02:29 s/git_merge_head/git_annotated_commit Rename git_merge_head to git_annotated_commit, as it becomes used in more operations than just merge.
Edward Thomson 796b03bd 2014-10-03T20:47:48 rebase: clean up some warnings and memory leaks
Edward Thomson e69737d7 2014-09-11T16:46:46 rebase: oid member of operation should be const
Edward Thomson ed2c06a6 2014-09-11T16:47:20 git_rebase: iterators for operations
Edward Thomson f152f8ac 2014-08-26T16:18:46 rebase: preload all operations
Edward Thomson b6b636a7 2014-08-25T13:29:50 rebase: init/open a git_rebase object
Edward Thomson 18b439b9 2014-08-23T18:19:34 git_rebase_next: provide info about the operation
Edward Thomson 5ae9d296 2014-07-21T12:25:03 git_rebase_finish: rewrite notes when finishing rebase
Edward Thomson bad4937e 2014-07-21T10:47:01 Introduce `git_note_author`, `git_note_committer`
Edward Thomson a612a25f 2014-07-18T18:22:54 git_rebase_commit: write HEAD's reflog appropriately
Edward Thomson 517644cc 2014-07-18T17:19:10 Introduce git_rebase_finish to complete a rebase
Edward Thomson 93a7004c 2014-07-18T14:50:06 git_rebase_commit: drop already-picked commits Already cherry-picked commits should not be re-included. If all changes included in a commit exist in the upstream, then we should error with GIT_EAPPLIED.
Edward Thomson a35a9890 2014-07-17T18:25:03 Introduce git_rebase_commit Commit the current patch of a rebase process.
Edward Thomson 443d5674 2014-07-17T11:59:01 git_rebase_next: write conflicts nicely during rebase
Edward Thomson 950a7091 2014-07-15T10:23:10 Introduce git_rebase_next `git_rebase_next` will apply the next patch (or cherry-pick) operation, leaving the results checked out in the index / working directory so that consumers can resolve any conflicts, as appropriate.
Edward Thomson 4fe84d62 2014-07-14T15:19:19 Introduce git_rebase_abort Abort an in-progress rebase and move the working directory and repository back to the ORIG_HEAD state.
Edward Thomson daf395b7 2014-07-18T17:40:07 git_reset: const the git_signature arg
Edward Thomson 867a36f3 2014-07-14T14:35:01 Introduce git_rebase to set up a rebase session Introduce `git_rebase` to set up a rebase session that can then be continued. Immediately, only merge-type rebase is supported.
Edward Thomson 5b0c6306 2014-10-26T22:38:30 Remove unused warning on non-win32
Edward Thomson 5a7cd1bc 2014-10-25T19:53:53 iterator: free paths when skipping them
Edward Thomson 8c8ca730 2014-10-25T19:53:07 mwindow: clean up pack map at shutdown
Edward Thomson 50aae000 2014-10-25T19:52:11 global: clean up openssl_locks on shutdown
Edward Thomson bc42479a 2014-10-13T15:43:03 Cleanup memory leak in ssh transport
Edward Thomson cdd71711 2014-10-13T14:34:32 Clean up some memory leaks
Edward Thomson 369b0217 2014-10-13T13:34:15 Clean up various compiler warnings
Edward Thomson d09458f3 2014-10-24T16:52:39 Merge pull request #2638 from libgit2/cmn/config-refresh-remove config: remove the refresh function and backend field
Edward Thomson 725cd5f2 2014-10-24T16:44:07 Merge pull request #2646 from libgit2/cmn/remote-rename remote: accept a repo and name for renaming
Edward Thomson b8041215 2014-10-24T14:02:53 Merge pull request #2649 from swisspol/2630 Fixed memory leak in git_tag_delete()
Edward Thomson cdfd2b62 2014-10-24T08:27:38 Merge pull request #2645 from libgit2/cmn/common-crypto [RFC] Use CommonCrypto for hashing
Pierre-Olivier Latour 1ad15540 2014-10-24T08:23:14 Fixed memory leak in git_tag_delete()
Carlos Martín Nieto 46c8f7f8 2014-10-24T16:25:59 remote: accept a repo and name for renaming Remote objects are not meant to be changed from under the user. We did this in rename, but only the name and left the refspecs, such that a save would save the wrong refspecs (and a fetch and anything else would use the wrong refspecs). Instead, let's simply take a name and not change any loaded remote from under the user.
Carlos Martín Nieto 0862f617 2014-10-24T12:19:13 remote: delete git_remote_supported_url() This function does not in fact tell us anything, as almost anything with a colon in it is a valid rsync-style SSH path; it can not tell us that we do not support ftp or afp or similar as those are still valid SSH paths and we do support that.
Carlos Martín Nieto d9c0dbb0 2014-10-24T13:29:11 hash: use CommonCrypto on OSX for SHA-1 OSX has its own cryptographic library, let's make use of it instead of calling out to OpenSSL.
Carlos Martín Nieto 55cb4999 2014-10-23T19:05:02 config: remove the refresh function and backend field We have been refreshing on read and write for a while now, so git_config_refresh() is at best a no-op, and might just end up wasting cycles.
Carlos Martín Nieto 4bb6ffb6 2014-10-23T18:58:39 Merge pull request #2622 from libgit2/refresh-config-snapshot Refresh git configuration before looking for the tracking branch redux.
Edward Thomson d676af43 2014-10-23T08:27:13 Merge pull request #2625 from libgit2/cmn/ssl-tls ssl: dump the SSL ciphers in favour of TLS
Carlos Martín Nieto f0f97370 2014-10-18T15:52:10 ssl: dump the SSL ciphers in favour of TLS All versions of SSL are considered deprecated now, so let's ask OpenSSl to only use TLSv1. We still ask it to load those ciphers for compatibility with servers which want to use an older hello but will use TLS for encryption. For good measure we also disable compression, which can be exploitable, if the OpenSSL version supports it.
Alan Rogers ad5adacb 2014-10-21T09:29:45 Patch from @carlosmn to refresh the parent config before snapshotting.
Edward Thomson 12f32d91 2014-10-14T16:31:55 Remote paths: canonicalize UNC paths on Win32 Git for Windows will handle UNC paths only when in forward-slash format, eg "//server/path". When given a UNC path as a remote, rewrite standard format ("\\server\path") into this ridiculous format.
Carlos Martín Nieto bb0757d5 2014-10-22T21:09:31 tree-cache: correct the entry_count calculation The entry_count field is the amount of index entries covered by a particular cache entry, that is how many files are there (recursively) under a particular directory. The current code that attemps to do this is severely defincient and is trying to count the amount of children, which always comes up to zero. We don't even need to recount, since we have the information during the cache creation. We can take that number and keep it, as we only ever invalidate or replace.
Edward Thomson e0383fa3 2014-10-13T16:59:56 Merge pull request #2609 from linquize/describe-opts Handle describe options better
Edward Thomson c6e26210 2014-10-13T16:52:44 Merge pull request #2615 from ethomson/mount_points Mount points
Edward Thomson 6a26488f 2014-10-11T21:38:22 Don't copy buffer in checkout unless needed
Jacques Germishuys 5e2cf2ca 2014-10-10T13:22:11 Ensure filters (i.e. CRLF) are applied when checking out conflict content
Edward Thomson 969b6a47 2014-10-11T11:23:34 is_empty_dir (wi32): cope with empty mount points FindFirstFile will fail with INVALID_HANDLE_VALUE if there are no children to the given path, which can happen if the given path is a file (and obviously has no children) or if the given path is an empty mount point. (Most directories have at least directory entries '.' and '..', but ridiculously another volume mounted in another drive letter's path space do not, and thus have nothing to enumerate.) If FindFirstFile fails, check if this is a directory-like thing (a mount point).
Edward Thomson 8d45b469 2014-10-11T14:34:24 p_lstat win32: don't canonicalize volume mounts A reparse point that is an IO_REPARSE_TAG_MOUNT_POINT could be a junction or an actual filesystem mount point. (Who knew?) If it's the latter, its reparse point will report the actual volume information \??\Volume{GUID}\ and we should not attempt to dereference that further, instead readlink should report EINVAL since it's not a symlink / junction and its original path was canonical. Yes, really.
Sven Strickroth cf1013a8 2014-10-12T17:21:17 There is no "z" size specifier on MSVC See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx and https://stackoverflow.com/questions/6655410/why-doesnt-zd-printf-format-work-in-vs2010 Signed-off-by: Sven Strickroth <email@cs-ware.de>
Linquize 59186d9b 2014-10-10T23:37:20 describe: Initialize options for git_describe_format() if null
Linquize 0494a7c9 2014-10-10T21:48:46 describe: Do not crash if pass null option to git_describe_commit()
Russell Belfer 85fe63bc 2014-10-10T15:17:27 Don't use cl_git_pass for POSIX functions If there is a failure then cl_git_pass tries to get the libgit2 error, but p_... functions don't set that. Also - trailing whitespace cleanup.
Russell Belfer babbff34 2014-10-10T15:17:05 Move un-namespaced constant to internal header FLAG_BITS only seems to be used internally
Carlos Martín Nieto 7465e873 2014-09-29T09:07:41 index: fill the tree cache on write-tree An obvious place to fill the tree cache is on write-tree, as we're guaranteed to be able to fill in the whole tree cache. The way this commit does this is not the most efficient, as we read the root tree from the odb instead of filling in the cache as we go along, but it fills the cache such that successive operations (and persisting the index to disk) will be able to take advantage of the cache, and it reuses the code we already have for filling the cache. Filling in the cache as we create the trees would require some reallocation of the children vector, which is currently not possible with out pool implementation. A different data structure would likely allow us to perform this operation at a later date.
Carlos Martín Nieto 795d8e93 2014-09-29T08:03:22 index: make sure to write cached subtrees if parent is invalidated If e.g. the root tree is invalidated, we still want to write out its children, since those may still have valid cache entries.
Carlos Martín Nieto c2f8b215 2014-09-28T07:00:49 index: write out the tree cache extension Keeping the cache around after read-tree is only one part of the optimisation opportunities. In order to share the cache between program instances, we need to write the TREE extension to the index. Do so, taking the opportunity to rename 'entries' to 'entry_count' to match the name given in the format description. The included test is rather trivial, but works as a sanity check.
Carlos Martín Nieto 46bb0067 2014-07-11T11:52:38 tree-cache: remove the parent pointer This wasn't used. We invalidate based on the full path, so we always go down the tree, never up.
Carlos Martín Nieto 6843cebe 2014-07-10T14:10:39 index: fill the tree cache when reading from a tree When reading from a tree, we know what every tree is going to look like, so we can fill in the tree cache completely, making use of the index for modification of trees a lot quicker.
Carlos Martín Nieto 19c88310 2014-07-10T13:48:13 tree-cache: move to use a pool allocator This simplifies freeing the entries quite a bit; though there aren't that many failure paths right now, introducing filling the cache from a tree will introduce more. This makes sure not to leak memory on errors.