src


Log

Author Commit Date CI Message
nulltoken 209f9b67 2013-09-08T18:25:17 odb: Teach loose backend to return EAMBIGUOUS
nulltoken d0cd6c42 2013-09-08T18:22:28 path: Make direach() return EUSER on callback error
nulltoken 031f3f80 2013-09-07T22:39:05 odb: Error when streaming in too [few|many] bytes
nulltoken 1634df8c 2013-09-07T17:31:30 revparse: Simplify error handling
nulltoken a8d67afe 2013-09-07T17:21:41 revparse: Prevent unnecessary odb backend calls
Russell Belfer 32e49929 2013-09-06T14:20:51 Merge pull request #1791 from libgit2/cmn/revwalk-recursive revwalk: make mark_unintersting use a loop
nulltoken 4047950f 2013-08-29T14:19:34 odb: Prevent stream_finalize_write() from overwriting Now that #1785 is merged, git_odb_stream_finalize_write() calculates the object id before invoking the odb backend. This commit gives a chance to the backend to check if it already knows this object.
Carlos Martín Nieto fb23d05f 2013-08-17T07:58:55 revwalk: make mark_unintersting use a loop Using a recursive function can blow the stack when dealing with long histories. Use a loop instead to limit the call chain depth. This fixes #1223.
Vicent Martí 366bd2f4 2013-09-05T16:56:21 Merge pull request #1829 from libgit2/fix-umask-fragility Fix umask fragility
Russell Belfer a7fcc44d 2013-09-05T16:14:32 Better macro name for is-exec-bit-set test
Russell Belfer af22dabb 2013-09-05T12:01:17 GIT_MODE_TYPE should exclude setgid bits The GIT_MODE_TYPE macro was looking at all bits above the permissions, but it should really just look at the top bits so that it will give the right results for a setgid or setuid entry. Since we're now using these macros in the tests, this was causing a test failure on platforms that don't support setgid.
Russell Belfer f240acce 2013-09-05T11:20:12 Add more file mode permissions macros This adds some more macros for some standard operations on file modes, particularly related to permissions, and then updates a number of places around the code base to use the new macros.
Vicent Martí cca9bea4 2013-09-05T06:30:08 Merge pull request #1831 from linquize/version.h-warning Fix warning in src/win32/version.h
Linquize 21753d48 2013-09-05T20:42:47 Fix warning in src/win32/version.h
Ben Straub f42d546c 2013-09-04T13:07:42 Provide better errors for push on non-bare local remotes
Vicent Martí e9853592 2013-09-04T06:20:36 Merge pull request #1817 from libgit2/ntk/fix/backend/honor_refresh_capabilities Of backends and refreshers...
Vicent Marti 74b38d19 2013-09-04T13:16:57 Backport @peff's fix for duplicates in sha1_lookup
nulltoken b1a6c316 2013-08-30T17:36:00 odb: Move the auto refresh logic to the pack backend Previously, `git_object_read()`, `git_object_read_prefix()` and `git_object_exists()` were implementing an auto refresh logic. When the expected object couldn't be found in any backend, a call to `git_odb_refresh()` was triggered and the lookup was once again performed against all backends. This commit removes this auto-refresh logic from the odb layer and pushes it down into the pack-backend (as it's the only one currently exposing a `refresh()` endpoint).
Russell Belfer cae52938 2013-09-03T14:00:27 Fix resolving relative windows network paths
Vicent Martí 6208bd49 2013-09-03T12:29:18 Merge pull request #1804 from ethomson/rewrites Minor changes for rewrites
Russell Belfer 37fc44dd 2013-09-03T12:27:56 Merge pull request #1825 from nvloff/resolve_relative path: properly resolve relative paths
Nikolai Vladimirov 6d9a6c5c 2013-09-03T07:58:21 path: properly resolve relative paths
Vicent Martí b595b385 2013-09-03T04:11:07 Merge pull request #1814 from libgit2/is-empty-fix Fix incorrect precedence within git_repository_is_empty()
Krzysztof Adamski b1447ede 2013-09-01T18:47:56 Use git__insertsort_r on Android too.
Linquize d45e9480 2013-08-31T18:22:50 oid: git_oid_shorten_add() sets GITERR_INVALID when OID set is full
nulltoken 9b4ed214 2013-08-30T17:07:41 odb: Code beautification
nulltoken a12e069a 2013-08-30T16:31:52 odb: Honor the non refreshing capability of a backend
Russell Belfer 42181836 2013-08-29T10:27:01 Treat detached HEAD as non-empty repo This simplifies the git_repository_is_empty a bit so that a detached HEAD is just taken to mean the repo is not empty, since a newly initialized repo will not have a detached HEAD.
Vicent Martí 8b2f230c 2013-08-29T13:27:37 repository: Make the is_empty check more explicit
Justin Spahr-Summers 4ab6a759 2013-08-28T22:51:44 Fix incorrect precedence within git_repository_is_empty() Reverts part of 9146f1e57ec4f2b6fa293c78d54f1383464ff5be.
Russell Belfer 19b9a092 2013-08-28T11:20:47 Add stddef include for sortedcache All use of sortedcache will need this header, so put it in the definition of the sortedcache API.
Vicent Martí dbecec37 2013-08-28T09:38:14 Merge pull request #1805 from libgit2/threading-packed-load Thread safety for the refdb_fs
Edward Thomson 17c7fbf6 2013-08-21T14:07:53 Split rewrites, status doesn't return rewrites Ensure that we apply splits to rewrites, even if we're not interested in examining it closely for rename/copy detection. In keeping with core git, status should not display rewrites, it should simply show files as "modified".
Vicent Martí 1ef05e3f 2013-08-28T06:05:50 Merge pull request #1803 from libgit2/ntk/topic/even_more_lenient_remote_parsing Even more lenient remote parsing
Vicent Martí d07cc8a2 2013-08-28T06:05:07 Merge pull request #1808 from frasertweedale/fix/freebsd-dup-include netops: remove duplicate include
Vicent Martí b8b22d77 2013-08-28T06:04:51 Merge pull request #1772 from libgit2/config-iter Configuration iterators redux
Edward Thomson 1ff3a094 2013-08-27T19:41:44 Improve win32 version check, no ipv6 tests on XP
Russell Belfer f087bc24 2013-08-27T12:08:55 Convert to our own SRWLOCK type on Win32
nulltoken aec87f71 2013-08-27T19:14:18 remote: Make git_remote_list() detect pushurl
nulltoken 191adce8 2013-08-27T20:00:28 vector: Teach git_vector_uniq() to free while deduplicating
nulltoken c9ffa84b 2013-08-21T16:04:25 remote: Relax the parsing logic even more In order to be loaded, a remote needs to be configured with at least a `url` or a `pushurl`. ENOTFOUND will be returned when trying to git_remote_load() a remote with neither of these entries defined.
nulltoken ece24ef7 2013-08-21T13:37:21 remote: Don't parse missing urls as empty strings
nulltoken 44bc0c6a 2013-08-21T13:20:17 remote: Warn the user when connecting with no url
nulltoken b83c92dd 2013-08-21T13:16:17 remote: Assert proper GIT_DIRECTION_XXXX values
Russell Belfer 2f368a66 2013-08-26T15:17:35 Fix MINGW SRWLock typedefs
Russell Belfer 43095341 2013-08-26T14:56:31 Load SRWLock APIs at runtime This loads SRWLock APIs at runtime and in their absence (i.e. on Windows before Vista) falls back on a regular CRITICAL_SECTION that will not permit concurrent readers.
Nikolai Vladimirov 504850cd 2013-08-25T15:59:50 refs: add git_reference_is_tag
Fraser Tweedale e5296308 2013-08-24T20:15:22 netops: remove duplicate include 9e9aee6 added an include <netinet/in.h> to fix the build on FreeBSD. Sometime since then the same header is included ifndef _WIN32, so remove the duplicate include.
Russell Belfer 805755f4 2013-08-22T15:44:34 Fix sortedcache docs and other feedback This converts an internal lock from a write lock to a read lock where write isn't needed, and also clarifies some doc things about where various locks are acquired and how various APIs are intended to be used.
Russell Belfer b6ac07b5 2013-08-22T14:45:10 Trying to fix Win32 warnings
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.
Edward Thomson c0b01b75 2013-08-19T18:46:26 Skip UTF-8 BOM in binary detection When a git_buf contains a UTF-8 BOM, the three bytes comprising that BOM are treated as unprintable characters. For a small git_buf, the three BOM characters overwhelm the printable characters. This is problematic when trying to check out a small file as the CR/LF filtering will not apply.
Edward Thomson 8255b497 2013-08-19T17:49:12 Quiet down some warnings
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.
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.
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
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.
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 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
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".
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.
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í 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()
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.
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
Carlos Martín Nieto f4be8209 2013-08-14T00:45:05 config: don't special-case the multivar iterator Build it on top of the normal iterator instead, which lets use re-use a lot of code.
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