Log

Author Commit Date CI Message
Russell Belfer eb868b1e 2013-08-22T14:34:21 Drop support for THREADSAFE on Windows XP This makes libgit2 require Windows Vista or newer if it is going to be compiled with the THREADSAFE option
Russell Belfer 972bb689 2013-08-22T14:10:56 Add SRWLock implementation of rwlocks for Win32
Russell Belfer 2b6e1908 2013-08-22T11:50:10 A bit of item alignment paranoia
Russell Belfer 8d9a85d4 2013-08-22T11:40:53 Convert sortedcache to use rwlock This is the first use we have of pthread_rwlock_t in libgit2. Hopefully it won't cause any serious portability problems.
Russell Belfer 3eecadcc 2013-08-21T22:50:37 Improve comments on locking for sortedcache APIs
Russell Belfer e8c5eb55 2013-08-21T22:44:56 No need to lock newly created tgt in copy
Russell Belfer b37359aa 2013-08-21T16:50:03 Fix warnings when compiling without threads
Russell Belfer fe372740 2013-08-21T16:26:32 Rewrite refdb_fs using git_sortedcache object This adds thread safety to the refdb_fs by using the new git_sortedcache object and also by relaxing the handling of some filesystem errors where the fs may be changed out from under us. This also adds some new threading tests that hammer on the refdb.
Russell Belfer 24c71f14 2013-08-21T14:10:27 Add internal ref set_name fn instead of realloc The refdb_fs implementation calls realloc directly on a reference object when it wants to rename it. It is not a public object, so this doesn't mess with the immutability of references, but it does assume certain constraints on the reference representation. This commit wraps that assumption in an isolated API to isolate it.
Russell Belfer a4977169 2013-08-21T14:09:38 Add sortedcache APIs to lookup index and remove This adds two other APIs that I need to the sortedcache type.
Russell Belfer 0b7cdc02 2013-08-20T15:18:48 Add sorted cache data type This adds a convenient new data type for caching the contents of file in memory when each item in that file corresponds to a name and you need to both be able to lookup items by name and iterate over them in some sorted order. The new data type has locks in place to manage usage in a threaded environment.
Russell Belfer 0f0f5655 2013-08-19T10:42:48 Don't try to pack symbolic refs If there were symbolic refs among the loose refs then the code to create packed-refs would fail trying to parse the OID out of them (where Git just skips trying to pack them). This fixes it.
Russell Belfer 5e1fb282 2013-08-19T16:01:30 Merge pull request #1800 from ethomson/mingw_warnings Quiet down some warnings
Edward Thomson 8255b497 2013-08-19T17:49:12 Quiet down some warnings
Ben Straub adf96282 2013-08-19T15:47:31 Merge pull request #1796 from ethomson/fix_inet_pton Fix p_inet_pton on windows
Edward Thomson 238b7614 2013-08-16T13:31:24 Fix p_inet_pton on windows p_inet_pton on Windows should set errno properly for callers. Rewrite p_inet_pton to handle error cases correctly and add test cases to exercise this function.
Ben Straub 25b2a555 2013-08-19T15:06:39 Merge pull request #1799 from ethomson/gettimeofday Use time(2) to get the time
Edward Thomson 86967cc5 2013-08-19T16:44:17 Use time(2) to get the time We didn't use the added precision in gettimeofday, so remove it. This prevents us from having an unnecessary reimplementation on win32.
Ben Straub eb047446 2013-08-19T11:00:20 Merge pull request #1797 from ethomson/keep_hash_ctx_private Don't expose git_hash_ctx since it's internal
Carlos Martín Nieto 5875e8d2 2013-08-19T18:50:03 travis: exit on failure for anything related to building
Edward Thomson 67c177ef 2013-08-19T11:42:50 Don't expose git_hash_ctx since it's internal And doing so makes the mingw build choke.
Carlos Martín Nieto 6d69fbce 2013-08-19T13:04:05 Revparse does not handle refspecs
Vicent Martí 520287f6 2013-08-19T02:17:00 Merge pull request #1785 from libgit2/cmn/odb-hash-frontend odb: move hashing to the frontend for streaming
Vicent Martí 1c1b4e8a 2013-08-19T02:16:02 Merge pull request #1792 from libgit2/ntk/bug/prefix_size odb: Straighten oid prefix handling
Vicent Martí 9abf7ea7 2013-08-19T02:06:15 Merge pull request #1794 from libgit2/cmn/elocked index: report when it's locked
Carlos Martín Nieto 68180808 2013-08-19T10:50:28 travis: really fail if the tests fail When implementing the ssh testing, the move to the script made it so the first test suite's exit code was ignored. Check whether the main tests fail and exit with an error in that case.
Carlos Martín Nieto 3d276874 2013-08-19T10:30:44 index: report when it's locked Report the index being locked with its own error code in order to be able to differentiate, as a locked index is typically the result of a crashed process or concurrent access, both of which often require user intervention to fix.
Ben Straub 8f81ea45 2013-08-18T18:30:48 Merge pull request #1793 from libgit2/ntk/valgrind Bring Valgrind back!
nulltoken 90a8ad63 2013-08-19T00:18:44 ci: Make Valgrind run on Travis
nulltoken d19dd9cf 2013-08-18T23:38:51 odb: Straighten oid prefix handling
Carlos Martín Nieto 090a07d2 2013-08-17T02:12:04 odb: avoid hashing twice in and edge case If none of the backends support direct writes and we must stream the whole file, we already know what the object's id should be; so use the stream's functions directly, bypassing the frontend's hashing and overwriting of our existing id.
Carlos Martín Nieto 7a3764be 2013-08-17T01:55:52 odb: document git_odb_stream Clarify the role of each function and in particular mention that there is no need for the backend or stream to worry about the object's id, as it will be given when `finalize_write` is called.
Carlos Martín Nieto fe0c6d4e 2013-08-17T01:41:08 odb: make it clearer that the id is calculated in the frontend The frontend is in charge of calculating the id of the objects. Thus the backends should treat it as a read-only value. The positioning in the function signature made it seem as though it was an output parameter. Make the id const and move it from the front to behind the subject (backend or stream).
Vicent Martí 51a5e133 2013-08-16T16:22:37 Merge pull request #1778 from libgit2/push_tag_to_tag_test push: handle tag chains correctly
Vicent Martí b2be62fd 2013-08-16T15:33:13 Merge pull request #1790 from libgit2/examples-init Add "git init"-like example
Russell Belfer 0ea41445 2013-08-16T15:03:15 Improve isolation of new test from user environs
Russell Belfer 944c1589 2013-08-16T14:49:38 Add example like "git init"
Russell Belfer 579d87c5 2013-08-16T14:48:14 New test that inits repo and make commit
Russell Belfer ce23330f 2013-08-16T14:34:51 Add new git_signature_default API using config This adds a new API for creating a signature that uses the config to look up "user.name" and "user.email".
Ben Straub 68458e42 2013-08-16T13:25:18 Merge pull request #1789 from martinwoodward/posix_win32-attribution Give credit to PHP for the p_readlink function in posix_w32.c
Martin Woodward c9340df0 2013-08-16T19:40:58 Give credit to PHP for the p_readlink function in posix_w32.c
Carlos Martín Nieto 5ce6c1e9 2013-08-12T16:15:36 push: handle tag chains correctly When dealing with a chain of tags, we need to enqueue each of them individually, which means we can't use `git_tag_peel` as that jumps over the intermediate tags. Do the peeling manually so we can look at each object and take the appropriate action.
Carlos Martín Nieto d4e6cf0c 2013-08-15T14:32:47 odb: remove a duplicate object header formatting function
Carlos Martín Nieto 8380b39a 2013-08-15T14:29:39 odb: perform the stream hashing in the frontend Hash the data as it's coming into the stream and tell the backend what its name is when finalizing the write. This makes it consistent with the way a plain git_odb_write() performs the write.
Carlos Martín Nieto 376e6c9f 2013-08-15T13:48:35 odb: wrap the stream reading and writing functions This is in preparation for moving the hashing to the frontend, which requires us to handle the incoming data before passing it to the backend's stream.
Vicent Martí 44246223 2013-08-14T23:15:02 Merge pull request #1784 from evhan/development revparse: Free left side of invalid range revspecs
Evan Hanson 1616fa68 2013-08-15T17:25:05 revparse: Use more idiomatic error value test
Evan Hanson 899ec41f 2013-08-15T16:25:48 revparse: Free left side of invalid range revspecs This fixes a small memory leak in git_revparse where early returns on errors from git_revparse_single cause a free() on the (reallocated) left side of the revspec to be skipped.
Vicent Marti 1e94df08 2013-08-15T00:09:46 sha1-lookup: This assert was correct
Russell Belfer c87bf86c 2013-08-14T10:58:02 Commit 7affc2f7 removed var initialization That commit accidentally removed the initialization of the "start" variable giving undefined results for the host extraction from the url input.
Vicent Martí ad0af715 2013-08-14T06:48:09 Merge pull request #1780 from phkelley/development Respect GIT_SSL_NO_VERIFY and http.sslVerify
Vicent Martí 9d1751bf 2013-08-14T06:44:28 Merge pull request #1783 from libgit2/cmn/relax-remote remote: relax the url rules
Vicent Martí c4ded21e 2013-08-14T06:43:43 Merge pull request #1774 from libgit2/test-ssh Test SSH in travis
Vicent Martí 89f6d84c 2013-08-14T06:40:38 Merge pull request #1781 from brodie/brodie/stat-before-open fileops: stat() before open()ing in git_futils_readbuffer_updated()
Vicent Martí d5904eb8 2013-08-14T06:38:37 Merge pull request #1782 from libgit2/vmg/no-lookup Do not use the "experimental" lookup mode
Carlos Martín Nieto 0b9ebb54 2013-08-14T11:18:05 remote: relax the url rules Accept any value for the remote's url, including an empty string which we used to reject as invalid configuration. This is not quite what git does (although it has its own problems with such configurations) and it makes it harder to fix the issue, by not letting the user modify it. As we already need to check for a valid URL when we try to connect to the network, let that perform the check, as we don't need to do it anywhere else.
Carlos Martín Nieto 5be622fb 2013-08-11T01:37:44 Test SSH in travis Set up the ssh credentials so we are able to talk to localhost and issue git commands. Move to use a script, as the command list is getting somewhat long. While here, delay installing valgrind until we need it, as it and its dependencies are by far the largest downloads and this allows us to start compiling (and failing) faster and we only incur this cost when the test suite runs successfully.
Vicent Marti 59547ce7 2013-08-14T10:34:07 oid: Helper for old-school hashcmp
Vicent Marti e2164da5 2013-08-14T10:31:02 sha1_lookup: Hello my name is MSVC and how do I pointer
Vicent Marti 67591c8c 2013-08-14T10:28:01 sha1_lookup: do not use the "experimental" lookup mode
Philip Kelley af6dab7e 2013-08-13T13:10:52 Respect GIT_SSL_NO_VERIFY and http.sslVerify
Ben Straub 2af9bcb2 2013-08-13T11:37:31 Merge pull request #1779 from ben/win32-precompiled-header-speedup Speed up build under MSVC
Vicent Martí 40948998 2013-08-13T11:36:24 Merge pull request #1767 from libgit2/win32-bigger-utf8-buffer Bigger buffer for utf-8 parsing in win32
Brodie Rao 9ccdb211 2013-08-13T10:55:37 fileops: stat() before open()ing in git_futils_readbuffer_updated() This reverts refactoring done in 13224ea4aad9a1b3c9cc4c992ceaea9af623e047 that introduces a performance regression for NFS when reading files that don't exist. open() forces a cache invalidation on NFS, while stat()ing a file just uses the cache and is very quick. To give a specific example, say you have a repo with a thousand packed refs. Before this change, looking up every single one ould incur a thousand slow open() calls. With this change, it's a thousand fast stat() calls.
Russell Belfer 0228a514 2013-08-13T10:20:25 Missed one path for path_as_utf8 type
Russell Belfer ee065601 2013-08-13T09:53:56 Minor win32 fixes and improvements This is just a bunch of small fixes that I noticed while looking at the UTF8 and UTF16 path stuff. It fixes a slowdown in looking for an empty directory (not exiting loop asap), makes the dir name in the git__DIR structure be a GIT_FLEX_ARRAY to save an allocation, and fixes some slightly odd assumptions in the cl_getenv helper.
Russell Belfer 841034a3 2013-08-13T09:45:56 Reintroduce type for UTF8 win32 path conversions
Russell Belfer d4cff0cb 2013-08-13T09:40:32 Rename git__win32_path fns to git_win32_path
Ben Straub e12618b1 2013-08-13T09:22:53 Add some things to precompiled header
Ben Straub 3869a171 2013-08-08T10:10:23 Fix mingw cross-compile build
Vicent Marti 3948e862 2013-08-13T09:38:37 windows: Fuck me
Vicent Marti 345b6307 2013-08-13T09:35:07 windows: Require order
Vicent Marti 53d712dc 2013-08-13T09:31:03 windows: Missing renames.
Vicent Marti abf37327 2013-08-13T09:15:39 windows: Path conversion with better semantics
Ben Straub 14da6182 2013-08-12T12:05:58 Merge pull request #1775 from libgit2/ssh-default-user SSH username fixes
Ben Straub 423e3b0c 2013-08-12T11:02:53 Update to clar 7bf638b80
Carlos Martín Nieto d10de8bd 2013-08-12T12:07:33 CMake: finding libssh2 should be idempotent With the current code, running 'cmake .' in an already-configured directory causes the removal of ssh flags passed to the compiler, making it impossible to build with ssh support but by removing CMake's cache. Remove the check for LIBSSH2_LIBRARY and let CMake do the right thing wrt finding the library.
Carlos Martín Nieto 7affc2f7 2013-08-11T23:30:47 Include username in each credential type Key-based authentication also needs an username, so include it in each one. Also stop assuming a default username of "git" in the ssh transport which has no business making such a decision.
Carlos Martín Nieto e54cfb9b 2013-08-12T11:50:27 odb: free object data when id is ambiguous By the time we recognise this as an ambiguous id, the object's data has been loaded into memory. Free it when returning EABMIGUOUS.
Ben Straub 8ca09399 2013-08-11T17:28:33 Merge pull request #1768 from arrbee/issue-1766-gitignore-weirdness Fix issue 1766 - bugs in managing ignore file lists
Ben Straub 0e26fca1 2013-08-10T15:11:19 Make utf-8 source strings unlimited
Ben Straub aa0af729 2013-08-10T14:56:58 Fix 64-bit MSVC warnings
Vicent Martí a25519ac 2013-08-09T15:30:50 Merge pull request #1770 from ethomson/index_fuzz Fixes to safely reading the index
Russell Belfer 3bc3ed80 2013-08-09T10:06:23 Improve and comment git_ignore__pop_dir This just cleans up the improved logic for popping ignore dirs and documents why the complex behavior is needed.
Russell Belfer ba8b8c04 2013-08-07T09:17:20 Improve building ignore file lists The routines to push and pop ignore files while traversing a directory had some issues. In particular, setting up the initial list would sometimes push an ignore file before it ought to be applied if the starting path was a directory containing an ignore file. Also, the pop function was not always matching the right part of the path and would fail to pop ignores from the list in some cases. This adds some tests that exercise a particular problematic case and then fixes the problems that I could find related to this. At some point, I'd like to isolate this ignore rule management code and rewrite it, but that's a larger project and right now, I'll opt to just try to fix the broken behaviors.
Russell Belfer d1be9e4c 2013-08-09T11:39:38 Merge pull request #1773 from arrbee/fix-fnmatch-prefix Revert PR #1462 and provide alternative fix
Russell Belfer b7b77def 2013-08-09T11:20:49 Match against file with leading ! was too broad
Russell Belfer 4ba64794 2013-08-09T10:52:35 Revert PR #1462 and provide alternative fix This rolls back the changes to fnmatch parsing from commit 2e40a60e847d6c128af23e24ea7a8efebd2427da except for the tests that were added. Instead this adds couple of new flags that can be passed in when attempting to parse an fnmatch pattern. Also, this changes the pathspec match logic to special case matching a filename with a '!' prefix against a negative pattern. This fixes the build.
Russell Belfer fbb6c0c8 2013-08-09T09:35:23 Merge pull request #1764 from ethomson/status_renames_from_rewrites Add rename from rewrites to status
Russell Belfer 33d532dc 2013-08-09T09:32:06 Merge pull request #1462 from yorah/fix/libgit2sharp-issue-379 status: fix handling of filenames with special prefixes
Russell Belfer 7f7ebe13 2013-08-08T12:57:13 Merge pull request #1771 from nvloff/write_empty_config_value config: allow setting empty string as value
Nikolai Vladimirov c57f6682 2013-08-08T21:17:32 config: allow empty string as value `git_config_set_string(config, "config.section", "")` fails when escaping the value. The buffer in `escape_value` is allocated without NULL-termination. And in case of empty string 0 is passed for buffer size in `git_buf_grow`. `git_buf_detach` returns NULL when the allocated size is 0 and that leads to an error return in `GITERR_CHECK_ALLOC` called after `escape_value` The change in `config_file.c` was suggested by Russell Belfer <rb@github.com>
Edward Thomson a1f69452 2013-08-08T12:36:11 git_strndup fix when OOM
Edward Thomson 57f31f05 2013-08-08T11:05:00 Fixes to safely reading the index Avoid wrapping around extension size when reading, avoid walking off the end of the buffer when reading names.
Ben Straub 5e96f316 2013-08-08T08:54:38 Merge pull request #1738 from libgit2/diff-patch-content-size Add API for getting at git_diff_patch->content_size
Ben Straub bf145a6a 2013-08-08T08:53:37 Merge pull request #1746 from libgit2/rename-detection-performance Rename detection slow
Ben Straub aaefbdee 2013-08-08T08:48:57 Discriminate path-specific and general UTF-X conversions
Russell Belfer 46c37911 2013-08-08T07:50:59 Merge pull request #1638 from brodie/brodie/handle-duplicate-objects-across-packs odb_pack: handle duplicate objects from different packs
Brodie Rao d19bcb33 2013-06-06T14:49:14 odb_pack: handle duplicate objects from different packs This is based on 24634c6fd02b2240e4a93fad70a08220f8fb793a. This also corrects an issue with error codes being mixed up with the number of found objects.
Ben Straub 2c0128ee 2013-08-07T19:29:33 Rename git_win_str_utf* to git_win32_path_utf*