|
031f3f80
|
2013-09-07T22:39:05
|
|
odb: Error when streaming in too [few|many] bytes
|
|
1634df8c
|
2013-09-07T17:31:30
|
|
revparse: Simplify error handling
|
|
a8d67afe
|
2013-09-07T17:21:41
|
|
revparse: Prevent unnecessary odb backend calls
|
|
32e49929
|
2013-09-06T14:20:51
|
|
Merge pull request #1791 from libgit2/cmn/revwalk-recursive
revwalk: make mark_unintersting use a loop
|
|
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.
|
|
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.
|
|
366bd2f4
|
2013-09-05T16:56:21
|
|
Merge pull request #1829 from libgit2/fix-umask-fragility
Fix umask fragility
|
|
a7fcc44d
|
2013-09-05T16:14:32
|
|
Better macro name for is-exec-bit-set test
|
|
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.
|
|
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.
|
|
cca9bea4
|
2013-09-05T06:30:08
|
|
Merge pull request #1831 from linquize/version.h-warning
Fix warning in src/win32/version.h
|
|
21753d48
|
2013-09-05T20:42:47
|
|
Fix warning in src/win32/version.h
|
|
f42d546c
|
2013-09-04T13:07:42
|
|
Provide better errors for push on non-bare local remotes
|
|
e9853592
|
2013-09-04T06:20:36
|
|
Merge pull request #1817 from libgit2/ntk/fix/backend/honor_refresh_capabilities
Of backends and refreshers...
|
|
74b38d19
|
2013-09-04T13:16:57
|
|
Backport @peff's fix for duplicates in sha1_lookup
|
|
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).
|
|
cae52938
|
2013-09-03T14:00:27
|
|
Fix resolving relative windows network paths
|
|
6208bd49
|
2013-09-03T12:29:18
|
|
Merge pull request #1804 from ethomson/rewrites
Minor changes for rewrites
|
|
37fc44dd
|
2013-09-03T12:27:56
|
|
Merge pull request #1825 from nvloff/resolve_relative
path: properly resolve relative paths
|
|
6d9a6c5c
|
2013-09-03T07:58:21
|
|
path: properly resolve relative paths
|
|
b595b385
|
2013-09-03T04:11:07
|
|
Merge pull request #1814 from libgit2/is-empty-fix
Fix incorrect precedence within git_repository_is_empty()
|
|
b1447ede
|
2013-09-01T18:47:56
|
|
Use git__insertsort_r on Android too.
|
|
d45e9480
|
2013-08-31T18:22:50
|
|
oid: git_oid_shorten_add() sets GITERR_INVALID when OID set is full
|
|
9b4ed214
|
2013-08-30T17:07:41
|
|
odb: Code beautification
|
|
a12e069a
|
2013-08-30T16:31:52
|
|
odb: Honor the non refreshing capability of a backend
|
|
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.
|
|
8b2f230c
|
2013-08-29T13:27:37
|
|
repository: Make the is_empty check more explicit
|
|
4ab6a759
|
2013-08-28T22:51:44
|
|
Fix incorrect precedence within git_repository_is_empty()
Reverts part of 9146f1e57ec4f2b6fa293c78d54f1383464ff5be.
|
|
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.
|
|
dbecec37
|
2013-08-28T09:38:14
|
|
Merge pull request #1805 from libgit2/threading-packed-load
Thread safety for the refdb_fs
|
|
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".
|
|
1ef05e3f
|
2013-08-28T06:05:50
|
|
Merge pull request #1803 from libgit2/ntk/topic/even_more_lenient_remote_parsing
Even more lenient remote parsing
|
|
d07cc8a2
|
2013-08-28T06:05:07
|
|
Merge pull request #1808 from frasertweedale/fix/freebsd-dup-include
netops: remove duplicate include
|
|
b8b22d77
|
2013-08-28T06:04:51
|
|
Merge pull request #1772 from libgit2/config-iter
Configuration iterators redux
|
|
1ff3a094
|
2013-08-27T19:41:44
|
|
Improve win32 version check, no ipv6 tests on XP
|
|
f087bc24
|
2013-08-27T12:08:55
|
|
Convert to our own SRWLOCK type on Win32
|
|
aec87f71
|
2013-08-27T19:14:18
|
|
remote: Make git_remote_list() detect pushurl
|
|
191adce8
|
2013-08-27T20:00:28
|
|
vector: Teach git_vector_uniq() to free while deduplicating
|
|
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.
|
|
ece24ef7
|
2013-08-21T13:37:21
|
|
remote: Don't parse missing urls as empty strings
|
|
44bc0c6a
|
2013-08-21T13:20:17
|
|
remote: Warn the user when connecting with no url
|
|
b83c92dd
|
2013-08-21T13:16:17
|
|
remote: Assert proper GIT_DIRECTION_XXXX values
|
|
2f368a66
|
2013-08-26T15:17:35
|
|
Fix MINGW SRWLock typedefs
|
|
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.
|
|
504850cd
|
2013-08-25T15:59:50
|
|
refs: add git_reference_is_tag
|
|
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.
|
|
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.
|
|
b6ac07b5
|
2013-08-22T14:45:10
|
|
Trying to fix Win32 warnings
|
|
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
|
|
972bb689
|
2013-08-22T14:10:56
|
|
Add SRWLock implementation of rwlocks for Win32
|
|
2b6e1908
|
2013-08-22T11:50:10
|
|
A bit of item alignment paranoia
|
|
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.
|
|
3eecadcc
|
2013-08-21T22:50:37
|
|
Improve comments on locking for sortedcache APIs
|
|
e8c5eb55
|
2013-08-21T22:44:56
|
|
No need to lock newly created tgt in copy
|
|
b37359aa
|
2013-08-21T16:50:03
|
|
Fix warnings when compiling without threads
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
8255b497
|
2013-08-19T17:49:12
|
|
Quiet down some warnings
|
|
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.
|
|
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.
|
|
6d69fbce
|
2013-08-19T13:04:05
|
|
Revparse does not handle refspecs
|
|
520287f6
|
2013-08-19T02:17:00
|
|
Merge pull request #1785 from libgit2/cmn/odb-hash-frontend
odb: move hashing to the frontend for streaming
|
|
1c1b4e8a
|
2013-08-19T02:16:02
|
|
Merge pull request #1792 from libgit2/ntk/bug/prefix_size
odb: Straighten oid prefix handling
|
|
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.
|
|
d19dd9cf
|
2013-08-18T23:38:51
|
|
odb: Straighten oid prefix handling
|
|
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.
|
|
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).
|
|
51a5e133
|
2013-08-16T16:22:37
|
|
Merge pull request #1778 from libgit2/push_tag_to_tag_test
push: handle tag chains correctly
|
|
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".
|
|
c9340df0
|
2013-08-16T19:40:58
|
|
Give credit to PHP for the p_readlink function in posix_w32.c
|
|
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.
|
|
d4e6cf0c
|
2013-08-15T14:32:47
|
|
odb: remove a duplicate object header formatting function
|
|
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.
|
|
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.
|
|
1616fa68
|
2013-08-15T17:25:05
|
|
revparse: Use more idiomatic error value test
|
|
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.
|
|
1e94df08
|
2013-08-15T00:09:46
|
|
sha1-lookup: This assert was correct
|
|
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.
|
|
ad0af715
|
2013-08-14T06:48:09
|
|
Merge pull request #1780 from phkelley/development
Respect GIT_SSL_NO_VERIFY and http.sslVerify
|
|
9d1751bf
|
2013-08-14T06:44:28
|
|
Merge pull request #1783 from libgit2/cmn/relax-remote
remote: relax the url rules
|
|
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()
|
|
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.
|
|
59547ce7
|
2013-08-14T10:34:07
|
|
oid: Helper for old-school hashcmp
|
|
e2164da5
|
2013-08-14T10:31:02
|
|
sha1_lookup: Hello my name is MSVC and how do I pointer
|
|
67591c8c
|
2013-08-14T10:28:01
|
|
sha1_lookup: do not use the "experimental" lookup mode
|
|
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.
|
|
af6dab7e
|
2013-08-13T13:10:52
|
|
Respect GIT_SSL_NO_VERIFY and http.sslVerify
|
|
2af9bcb2
|
2013-08-13T11:37:31
|
|
Merge pull request #1779 from ben/win32-precompiled-header-speedup
Speed up build under MSVC
|
|
40948998
|
2013-08-13T11:36:24
|
|
Merge pull request #1767 from libgit2/win32-bigger-utf8-buffer
Bigger buffer for utf-8 parsing in win32
|
|
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.
|
|
0228a514
|
2013-08-13T10:20:25
|
|
Missed one path for path_as_utf8 type
|
|
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.
|
|
841034a3
|
2013-08-13T09:45:56
|
|
Reintroduce type for UTF8 win32 path conversions
|
|
d4cff0cb
|
2013-08-13T09:40:32
|
|
Rename git__win32_path fns to git_win32_path
|
|
e12618b1
|
2013-08-13T09:22:53
|
|
Add some things to precompiled header
|
|
3869a171
|
2013-08-08T10:10:23
|
|
Fix mingw cross-compile build
|