src


Log

Author Commit Date CI Message
Adam Roben 8e60c712 2012-06-07T09:50:19 Fix git_status_file for files that start with a character > 0x7f git_status_file would always return GIT_ENOTFOUND for these files. The underlying bug was that git__strcmp_cb, which is used by git_path_with_stat_cmp to sort entries in the working directory, compares strings based on unsigned chars (this is confirmed by the strcmp(3) manpage), while git__prefixcmp, which is used by workdir_iterator__entry_cmp to search for a path in the working directory, compares strings based on char. So the sort puts this path at the end of the list, while the search expects it to be at the beginning. The fix was simply to make git__prefixcmp compare using unsigned chars, just like strcmp(3). The rest of the change is just adding/updating tests.
Carlos Martín Nieto 66798ad0 2012-06-06T11:00:15 Don't include arpa/inet.h on Windows
Michael Schubert fdc5c38e 2012-06-05T23:03:06 transports: fix buglet
Vicent Martí 966fbdcb 2012-06-05T13:53:33 Merge pull request #697 from carlosmn/ssl Add HTTPS support
Vicent Martí eadc0e03 2012-06-05T13:41:13 Merge pull request #747 from nulltoken/topic/init-filemode Make git_repository_init() value "core.filemode" and "core.ignorecase"
nulltoken 693b23c0 2012-06-05T14:29:10 repository: make git_repository_init() value the core.ignorecase config entry
Vicent Martí 2255b60e 2012-06-05T13:12:36 Merge pull request #714 from schu/config-enotfound config: do not set an error for GIT_ENOTFOUND
nulltoken fac66990 2012-06-05T13:56:44 repository: make git_repository_init() value the core.filemode config entry
Carlos Martín Nieto 01dbe273 2012-06-04T15:10:29 Merge pull request #737 from nulltoken/topic/git_remote_add_refspec Remotes and refspecs
nulltoken d27bf665 2012-05-30T00:50:39 remote: Make git_remote_add() generate a default refspec with a force update specifier
Arthur Schreiber e9551e86 2012-06-02T16:52:22 Fix git_close/http_close/local_close to set the transport's connected attribute to 0.
Carlos Martín Nieto 1d4dcc4b 2012-06-01T11:48:58 config: set an error message when asked to delete a non-existent key
nulltoken d05e2c64 2012-05-30T00:27:22 refspec: expose the force update specifier through git_refspec_force() accessor
Garrett Regier 2ab9dcbd 2012-05-27T16:47:56 Fix checking for the presence of a flag
Scott J. Goldman c1318f71 2012-05-26T18:16:13 Use lowercase names for Windows headers Otherwise we can't cross-compile on Linux.
Carlos Martín Nieto 250b95b2 2012-05-26T21:17:08 ssl: allow skipping the server certificate check Sometimes it's useful not to perform the check. Allow it to be configurable.
Russell Belfer 29ef309e 2012-05-25T09:44:56 Make errors for system and global files consistent The error codes from failed lookups of system and global files on Windows were not consistent with the codes returned on other platforms. This makes the error detection patterns match and adds a unit test for the various errors.
Russell Belfer 2a99df69 2012-05-24T17:14:56 Fix bugs for status with spaces and reloaded attrs This fixes two bugs: * Issue #728 where git_status_file was not working for files that contain spaces. This was caused by reusing the "fnmatch" parsing code from ignore and attribute files to interpret the "pathspec" that constrained the files to apply the status to. In that code, unescaped whitespace was considered terminal to the pattern, so a file with internal whitespace was excluded from the matched files. The fix was to add a mode to that code that allows spaces and tabs inside patterns. This mode only comes into play when parsing in-memory strings. * The other issue was undetected, but it was in the recently added code to reload gitattributes / gitignores when they were changed on disk. That code was not clearing out the old values from the cached file content before reparsing which meant that newly added patterns would be read in, but deleted patterns would not be removed. The fix was to clear the vector of patterns in a cached file before reparsing the file.
Russell Belfer 9cde607c 2012-05-24T15:08:55 Clean up system file finding tests on Win32
Vicent Martí 349fb6d7 2012-05-24T23:04:41 windows: Properly expand all environment variables
Russell Belfer 5f60fd00 2012-05-24T13:56:03 Merge pull request #726 from arrbee/utf16-home-dir Get user's home dir in UTF-16 clean manner
Russell Belfer 9e35d7fd 2012-05-24T13:44:24 Fix bugs in UTF-8 <-> UTF-16 conversion The function to convert UTF-16 to UTF-8 was only allocating a buffer of wcslen(utf16str) bytes for the UTF-8 string, but that is not sufficient if you have multibyte characters, and so when those occured, the conversion was failing. This updates the conversion functions to use the Win APIs to calculate the correct buffer lengths. Also fixes a comparison in the unit tests that would fail if you did not have a particular environment variable set.
Carlos Martín Nieto d3e9c4a5 2012-05-24T21:49:43 repository: default to core.bare = false if it's not set We used to consider a missing core.bare option to mean that the repository was corrupt. This is too strict. Consider it a non-bare repository if it's not set.
Russell Belfer 23059130 2012-05-24T12:45:20 Get user's home dir in UTF-16 clean manner On Windows, we are having problems with home directories that have non-ascii characters in them. This rewrites the relevant code to fetch environment variables as UTF-16 and then explicitly map then into UTF-8 for our internal usage.
Vicent Martí 87ac556f 2012-05-23T15:05:03 Merge pull request #720 from nulltoken/fix/libgit2sharp_issue_153 Make git_futils_mkdir_r() able to cope with Windows network paths
Carlos Martín Nieto 8bf10dba 2012-05-23T12:59:21 Remove left-over debugging output
nulltoken dc07184f 2012-05-23T12:05:48 fileops: Make git_futils_mkdir_r() able to cope with Windows network paths Partially fix libgit2/libgit2sharp#153
Michael Schubert e203e9d4 2012-05-19T18:13:38 config: do not set an error for GIT_ENOTFOUND An unset config variable isn't bad per se -- let the call site set an error in case GIT_ENOTFOUND isn't acceptable.
Michael Schubert 54db1a18 2012-05-19T13:20:55 Cleanup * indexer: remove leftover printf * commit: remove unused macros COMMIT_BASIC_PARSE, COMMIT_FULL_PARSE and COMMIT_PRINT
Carlos Martín Nieto 441df990 2012-05-17T23:57:30 ssl: look up the last CN the alternative names don't match
Carlos Martín Nieto 3f9eb1e5 2012-05-17T22:22:05 ssl: add support for certificates issues to an IP address
Carlos Martín Nieto d3e1367f 2012-05-17T21:40:20 ssl: remove GnuTLS support It's too much work for now to redo everything. Move the ssl context struct to transport.h
Carlos Martín Nieto 16768191 2012-05-17T21:16:59 ssl: match host names according to RFC 2818 (HTTP over TLS)
Carlos Martín Nieto dbb36e1b 2012-05-17T17:56:49 ssl: check certificates against the system's trusted CAs
Carlos Martín Nieto 89460f3f 2012-05-03T14:07:55 ssl: teardown the connection on close This should help us free some resources, though the libraries do keep some buffers allocated regardless.
Carlos Martín Nieto a6f24a5b 2012-05-01T01:50:26 https: make it work with OpenSSL as well Add specific functions that use OpenSSL instead of GnuTLS
Carlos Martín Nieto 66024c7c 2012-05-01T00:05:25 http: add https support when GnuTLS is available If it's not available, an error saying so will be returned when trying to use a https:// URL. This also unifies a lot of the network code to use git_transport in many places instead of an socket descriptor.
Vicent Martí 59d91979 2012-05-18T13:53:38 Merge pull request #710 from libgit2/breaking-changes Break everything before the release
Michael Schubert a167002f 2012-05-18T12:36:25 fetch: set dummy function for local fetch Local fetch isn't implemented yet. Don't segfault on call, but set a dummy for negotiate_fetch and terminate gracefully. Reported-by: Brad Harder <bch@methodlogic.net>
Vicent Martí 6ec01e63 2012-05-17T16:51:17 Merge pull request #685 from nulltoken/fix/list-remote-branches branch: retrieve symbolic references when listing the branches
Vicent Martí 904b67e6 2012-05-18T01:48:50 errors: Rename error codes
Vicent Martí e172cf08 2012-05-18T01:21:06 errors: Rename the generic return codes
Vicent Martí 2e2e9785 2012-05-18T00:42:24 Properly tag all `enums` with a `_t`
Vicent Martí 4fbd1c00 2012-05-17T20:35:48 refs: git_reference_listall -> git_reference_list
Vicent Martí 29e948de 2012-05-10T10:38:10 global: Change parameter ordering in API Consistency is good.
nulltoken 392eced6 2012-05-11T22:22:14 branch: retrieve symbolic references when listing the branches
Vicent Martí 52695898 2012-05-17T14:46:44 Merge pull request #709 from arrbee/profiling-with-scottg Profiling with scottg
Russell Belfer e3557172 2012-05-17T14:44:17 No point in keeping commented out fn
Russell Belfer 6e5c4af0 2012-05-17T14:21:10 Fix workdir iterators on empty directories Creating a workdir iterator on a directory with absolutely no files was returning an error (GIT_ENOTFOUND) instead of an iterator for nothing. This fixes that and includes two new tests that cover that case.
Russell Belfer a0d95962 2012-05-17T13:14:17 Other optimization and warning fixes This fixes a warning left by the earlier optimization and addresses one of the other hotspots identified by GProf.
Russell Belfer b59c73d3 2012-05-17T13:06:20 Optimize away git_text_gather_stats in diff GProf shows `git_text_gather_stats` as the most expensive call in large diffs. The function calculates a lot of information that is not actually used and does not do so in a optimal order. This introduces a tuned `git_buf_is_binary` function that executes the same algorithm in a fraction of the time.
Russell Belfer bd4ca902 2012-05-16T17:02:06 Fix status for files under ignored dirs There was a bug where tracked files inside directories that were inside ignored directories where not being found by status. To make that a little clearer, if you have a .gitignore with: ignore/ And then have the following files: ignore/dir/tracked <-- actually a tracked file ignore/dir/untracked <-- should be ignored Then we would show the tracked file as being removed (because when we got the to contained item "dir/" inside the ignored directory, we decided it was safe to skip -- bzzt, wrong!). This update is much more careful about checking that we are not skipping over any prefix of a tracked item, regardless of whether it is ignored or not. As documented in diff.c, this commit does create behavior that still differs from core git with regards to the handling of untracked files contained inside ignored directories. With libgit2, those files will just not show up in status or diff. With core git, those files don't show up in status or diff either *unless* they are explicitly ignored by a .gitignore pattern in which case they show up as ignored files. Needless to say, this is a local behavior difference only, so it should not be important and (to me) the libgit2 behavior seems more consistent.
nulltoken ee7680d5 2012-05-16T21:21:24 notes: make git_note_foreach() callback signature easier to cope with from a binding perspective
Vicent Martí 9d0011fd 2012-05-16T19:23:47 tree: Naming conventions
Vicent Martí cedf9ca9 2012-05-16T19:16:35 tree: Kill the `git_tree_diff` functions These are deprecated and replaced with the diffing code in git2/diff.h
Vicent Martí 9bd5a99f 2012-05-16T10:22:49 Merge pull request #700 from cholin/revwalk_reset really reset walker with git_revwalk_reset
Vicent Martí c261c272 2012-05-16T09:57:45 Merge pull request #702 from arrbee/fix-status-file Update git_status_file and add ranged iterators
Russell Belfer 2c833917 2012-05-15T16:33:05 Document git_buf_common_prefix This function fills in a git_buf with the common prefix of an array of strings, but let's make that a little more clear.
Carlos Martín Nieto 6a9d61ef 2012-05-15T15:08:54 indexer: add more consistency checks Error out in finalize if there is junk after the packfile hash or we couldn't process all the objects.
Russell Belfer 58ffeb9c 2012-05-15T14:51:30 Fix notes to use new fixed iterator signature
Russell Belfer 41a82592 2012-05-15T14:17:39 Ranged iterators and rewritten git_status_file The goal of this work is to rewrite git_status_file to use the same underlying code as git_status_foreach. This is done in 3 phases: 1. Extend iterators to allow ranged iteration with start and end prefixes for the range of file names to be covered. 2. Improve diff so that when there is a pathspec and there is a common non-wildcard prefix of the pathspec, it will use ranged iterators to minimize excess iteration. 3. Rewrite git_status_file to call git_status_foreach_ext with a pathspec that covers just the one file being checked. Since ranged iterators underlie the status & diff implementation, this is actually fairly efficient. The workdir iterator does end up loading the contents of all the directories down to the single file, which should ideally be avoided, but it is pretty good.
Carlos Martín Nieto 73d87a09 2012-05-15T21:42:01 Introduce GITERR_INDEXER
Nico von Geyso 0b86fdf9 2012-05-15T17:03:07 really reset walker with git_revwalk_reset From the description of git_revwalk_reset in revwalk.h the function should clear all pushed and hidden commits, and leave the walker in a blank state (just like at creation). Apparently everything gets reseted appart of pushed commits (walk->one and walk->twos) This fix should reset the walker properly.
nulltoken d5ed6348 2012-05-14T22:24:58 Fix compilation warnings
nulltoken 86ecd844 2012-05-08T17:58:40 notes: add git_notes_foreach()
Vicent Martí 8c6329ee 2012-05-14T11:25:40 Merge pull request #692 from nulltoken/fix/delete-branch_ENOTFOUND branch: make git_branch_delete() return GIT_ENOTFOUND when the branch doesn't exist
Vicent Martí c9e9ec97 2012-05-14T11:24:37 Merge pull request #688 from hanwen/master See issue https://github.com/libgit2/libgit2/issues/680
Vicent Martí e49cb168 2012-05-14T11:03:30 Merge pull request #671 from nulltoken/topic/blob_create_fromdisk Add git_blob_create_fromdisk()
Vicent Martí 72bfde97 2012-05-14T11:01:14 Merge pull request #681 from scottjg/solaris-fixes Fix build/runtime issues on Solaris
Vicent Martí 27f5b7cf 2012-05-14T10:58:23 Merge pull request #682 from arrbee/attribute-cache-buster Attribute cache buster
nulltoken 87fe3507 2012-05-13T19:09:25 iterator: prevent git_iterator_free() from segfaulting when being passed a NULL iterator
nulltoken 6ca9643c 2012-05-06T21:00:20 blob: Add git_blob_create_fromdisk() This function will create blobs in the object database from files anywhere on the filesystem. This can be run against bare and non-bare repositories.
nulltoken 341a7136 2012-05-13T10:17:52 branch: make git_branch_delete() return GIT_ENOTFOUND when the branch doesn't exist
Han-Wen Nienhuys 24634c6f 2012-05-12T15:01:39 Handle duplicate objects from different backends in git_odb_read_prefix().
Scott J. Goldman 6fb1c0b4 2012-05-09T23:45:55 Fix readdir_r() usage for Solaris On Solaris, struct dirent is defined differently than Linux. The field containing the path name is of size 0, rather than NAME_MAX. So, we need to use a properly sized buffer on Solaris to avoid a stack overflow. Also fix some DIR* leaks on cleanup.
Vicent Martí b72969e0 2012-05-12T01:51:58 Merge pull request #683 from arrbee/better-repo-init Improve repo initialization to be more like git
nulltoken e28c3776 2012-05-11T23:56:23 object: make git_object_lookup() return GIT_ENOTFOUND when searching for an existing object by specifying an incorrect type This fix complements cb0ce16bbe8efe2098ef9cfffcf158301b036565 and cover the following additional use cases - retrieving an object which has been previously searched, found and cached - retrieving an object through an non ambiguous abbreviated id
Russell Belfer db628072 2012-05-11T12:16:19 Fixed leaks and added tests
Scott J. Goldman 54bdc64a 2012-05-10T00:37:03 Fix rmdir() usage on Solaris On Solaris, rmdir() throws EEXIST if the folder is not empty, so just add one more case to check for that, alongside ENOTEMPTY.
Russell Belfer dc13f1f7 2012-05-10T11:08:59 Add cache busting to attribute cache This makes the git attributes and git ignores cache check stat information before using the file contents from the cache. For cached files from the index, it checks the SHA of the file instead. This should reduce the need to ever call `git_attr_cache_flush()` in most situations. This commit also fixes the `git_status_should_ignore` API to use the libgit2 standard parameter ordering.
Scott J. Goldman ec42eafd 2012-05-09T22:30:57 Hook up Windows compat fnmatch() for Solaris Since Solaris does not support some of the same flags as glibc fnmatch(), we just use the implementation we have for Windows. Now that it's no longer a windows-specific thing, I moved it into compat/ instead of win32/
Russell Belfer dc34da6e 2012-05-08T13:50:40 Improve repo initialization to be more like git This adds a bunch of template files to the initialization for hooks, info/exclude, and description. This makes our initialized repo look more like core gits.
Russell Belfer 2aa1e94d 2012-05-09T10:30:34 Fix 64-bit build warning
Russell Belfer 075d6e7d 2012-05-09T10:18:54 Merge pull request #679 from nulltoken/fix/git__isspace util: Fix git__isspace() implementation
Carlos Martín Nieto 11678b37 2012-05-09T16:18:13 fetch: filter tag annotation pseudo-refs while generating wants These objects aren't considered as being advertised, so asking for them will cause the remote end to close the connection. This makes the checking in update_tips() unnecessary, because they don't get inserted in the list.
Carlos Martín Nieto 0536afca 2012-05-09T14:10:30 remote: don't try to create tag annotations as refs/tags/v0.1.0^{} Skip them for now. Eventually we might want to filter these out earler.
nulltoken 9cd25d00 2012-05-09T13:21:21 util: Fix git__isspace() implementation The characters <space>, <form-feed>, <newline>, <carriage-return>, <tab>, and <vertical-tab> are part of the "space" definition. cf. http://www.kernel.org/doc/man-pages/online/pages/man5/locale.5.html
Carlos Martín Nieto a640d79e 2012-05-09T13:11:50 indexer: close the pack's fd before renaming it Windows gets upset if we rename a file with an open descriptor.
Vicent Martí 0f49200c 2012-05-09T04:37:02 msvc: Do not use `isspace` Locale-aware bullshit bitting my ass again yo
Vicent Martí e65752bb 2012-05-08T16:06:27 Merge pull request #677 from arrbee/status-without-head Add support for diffing index with no HEAD
Russell Belfer 7e000ab2 2012-05-08T15:03:59 Add support for diffing index with no HEAD When a repo is first created, there is no HEAD yet and attempting to diff files in the index was showing nothing because a tree iterator could not be constructed. This adds an "empty" iterator and falls back on that when the head cannot be looked up.
Vicent Martí fd5faae3 2012-05-08T23:55:37 message: Cleanup
Vicent Martí b1e2ba27 2012-05-08T23:43:52 message: Proper OOM handling
Vicent Martí c99bdacf 2012-05-08T14:13:43 Merge pull request #670 from nulltoken/ntk/topic/clean-commit_message Clean commit and tag messages
Russell Belfer 364f51bd 2012-05-08T13:56:21 Merge pull request #668 from nulltoken/topic/binary-blobs Enhancing the blob diffing experience
Vicent Martí 1f796cd1 2012-05-08T13:42:11 Merge pull request #676 from carlosmn/remotes Add git_remote_add() and change signature for _new()
Russell Belfer 19579847 2012-05-08T13:23:00 Clean up warnings and tests
Carlos Martín Nieto baaa8a44 2012-05-03T20:25:56 remotes: change git_remote_new's signature Add a fetch refspec arguemnt and make the arguments (name, url, refspec), as that order makes more sense.
Carlos Martín Nieto a209a025 2012-05-03T16:08:33 remote: add git_remote_add() Helper function to create a remote with the default settings
Carlos Martín Nieto 3df9cc59 2012-05-03T16:07:22 config: don't use freed memory on error Change the order and set a NULL so we don't try to access freed memory in case of an error.