|
c9e9ec97
|
2012-05-14T11:24:37
|
|
Merge pull request #688 from hanwen/master
See issue https://github.com/libgit2/libgit2/issues/680
|
|
e49cb168
|
2012-05-14T11:03:30
|
|
Merge pull request #671 from nulltoken/topic/blob_create_fromdisk
Add git_blob_create_fromdisk()
|
|
72bfde97
|
2012-05-14T11:01:14
|
|
Merge pull request #681 from scottjg/solaris-fixes
Fix build/runtime issues on Solaris
|
|
27f5b7cf
|
2012-05-14T10:58:23
|
|
Merge pull request #682 from arrbee/attribute-cache-buster
Attribute cache buster
|
|
87fe3507
|
2012-05-13T19:09:25
|
|
iterator: prevent git_iterator_free() from segfaulting when being passed a NULL iterator
|
|
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.
|
|
24634c6f
|
2012-05-12T15:01:39
|
|
Handle duplicate objects from different backends in git_odb_read_prefix().
|
|
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.
|
|
b72969e0
|
2012-05-12T01:51:58
|
|
Merge pull request #683 from arrbee/better-repo-init
Improve repo initialization to be more like git
|
|
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
|
|
db628072
|
2012-05-11T12:16:19
|
|
Fixed leaks and added tests
|
|
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.
|
|
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.
|
|
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/
|
|
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.
|
|
2aa1e94d
|
2012-05-09T10:30:34
|
|
Fix 64-bit build warning
|
|
075d6e7d
|
2012-05-09T10:18:54
|
|
Merge pull request #679 from nulltoken/fix/git__isspace
util: Fix git__isspace() implementation
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
0f49200c
|
2012-05-09T04:37:02
|
|
msvc: Do not use `isspace`
Locale-aware bullshit bitting my ass again yo
|
|
e65752bb
|
2012-05-08T16:06:27
|
|
Merge pull request #677 from arrbee/status-without-head
Add support for diffing index with no HEAD
|
|
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.
|
|
fd5faae3
|
2012-05-08T23:55:37
|
|
message: Cleanup
|
|
b1e2ba27
|
2012-05-08T23:43:52
|
|
message: Proper OOM handling
|
|
c99bdacf
|
2012-05-08T14:13:43
|
|
Merge pull request #670 from nulltoken/ntk/topic/clean-commit_message
Clean commit and tag messages
|
|
364f51bd
|
2012-05-08T13:56:21
|
|
Merge pull request #668 from nulltoken/topic/binary-blobs
Enhancing the blob diffing experience
|
|
1f796cd1
|
2012-05-08T13:42:11
|
|
Merge pull request #676 from carlosmn/remotes
Add git_remote_add() and change signature for _new()
|
|
19579847
|
2012-05-08T13:23:00
|
|
Clean up warnings and tests
|
|
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.
|
|
a209a025
|
2012-05-03T16:08:33
|
|
remote: add git_remote_add()
Helper function to create a remote with the default settings
|
|
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.
|
|
2c0cdc3a
|
2012-05-08T10:40:01
|
|
Merge pull request #674 from nulltoken/topic/GIT_ENOTFOUND
Improve the interop with bindings
|
|
65ca81a6
|
2012-05-08T14:28:21
|
|
Minor error fixes
Clear the error in pkt when we notice that the remote is starting to
send the packfile.
Fix the format string for Windows networking errors.
|
|
722c08af
|
2012-05-07T21:21:48
|
|
status: Prevent git_status_file() from returning ENOTFOUND when not applicable
|
|
464cf248
|
2012-05-07T17:25:16
|
|
repository: ensure git_repository_discover() returns ENOTFOUND when unable to find a repository given the constraints
|
|
9abb5bca
|
2012-05-07T13:58:01
|
|
compat: make p_realpath Windows implementation be a bit more POSIX compliant and fail if the provided path does not lead to an existing entry
|
|
46811561
|
2012-05-07T13:56:42
|
|
path: Make git_path_prettify() properly handle ENOTDIR errno value
|
|
cb0ce16b
|
2012-05-07T15:42:13
|
|
object: make git_object_lookup() return GIT_ENOTFOUND when searching for an existing object by specifying an incorrect type
|
|
9fb70f37
|
2012-05-07T10:57:34
|
|
remote: make git_remote_load() return GIT_ENOTFOUND when the remote url cannot be retrieved from the config file
|
|
2fb9d6de
|
2012-05-07T10:04:50
|
|
remote: ensure the allocated remote is freed when an error occurs during its loading
|
|
8d89c8e9
|
2012-05-07T13:36:02
|
|
Merge pull request #672 from scottjg/more-mingw32-fixes
More mingw32 compilation fixes.
|
|
cba285d3
|
2012-05-07T13:30:27
|
|
Fix directory finding for attrs
The fix to support attrs on bare repos went a little too far
in trying to avoid using the working directory and ended up
not processing the input path quite correctly.
|
|
3191ae89
|
2012-05-06T13:04:12
|
|
compat: make p_open able to accept optional mode when passing the O_CREAT flag
This has the nice side effect of making test_attr_repo__staging_properly_normalizes_line_endings_according_to_gitattributes_directives() test pass again on Windows. This test started to fail after commit 674a198 was applied.
|
|
9a29f8d5
|
2012-05-04T07:55:09
|
|
diff: fix the diffing of two identical blobs
|
|
28ef7f9b
|
2012-05-03T17:25:01
|
|
diff: make git_diff_blobs() able to detect binary blobs
|
|
4f806761
|
2012-05-03T17:19:06
|
|
diff: fix the diffing of a concrete blob against a null one
|
|
245c5eae
|
2012-05-03T16:34:02
|
|
diff: When diffing two blobs, ensure the delta callback parameter is filled with relevant information
|
|
8d0f4675
|
2012-05-03T16:27:22
|
|
diff: remove unused parameter
|
|
458b9450
|
2012-03-01T17:03:32
|
|
commit/tag: ensure the message is cleaned up
'git commit' and 'git tag -a' enforce some conventions, like cleaning up excess whitespace and making sure that the last line ends with a '\n'. This fix replicates this behavior.
Fix libgit2/libgit2sharp#117
|
|
901fbdad
|
2012-05-07T00:05:02
|
|
Define explicit _WIN32_WINNT version in makefile
Previously, it was defined in netops.c, but it's also needed in one of the
clar tests, so I figured we might as well just make it global for the
whole project.
Without it, the mingw32 linker won't resolve GetProcessId() (called from
the core/errors.c clar test) because of some conditionals in windows.h.
|
|
49ac5ac8
|
2012-05-06T13:17:25
|
|
transport git: don't use 'error' uninitialized
|
|
3972ca43
|
2012-05-05T22:14:02
|
|
compat: Add `stdarg.h` include
|
|
cd58c15c
|
2012-05-05T16:47:20
|
|
Merge remote-tracking branch 'scottjg/fix-mingw32' into development
Conflicts:
src/netops.c
src/netops.h
src/transports/http.c
tests-clar/clar
|
|
4ef14af9
|
2012-05-05T14:22:06
|
|
Merge pull request #664 from arrbee/attrs-from-index
Support git attrs from index (and bare repo)
|
|
f95e8cc0
|
2012-05-05T14:18:10
|
|
notes: Cleanup error handling
|
|
d3a60dc2
|
2012-05-05T14:14:58
|
|
Merge pull request #663 from schu/notes-honor-config
Honor core.notesRef config option
|
|
b47e0a71
|
2012-05-05T13:52:48
|
|
Fix missing prototype warning in utf-conv.c
|
|
b4b96d56
|
2012-05-05T13:30:33
|
|
Fix gitno_connect() error handling on Windows
gitno_connect() can return an error or socket, which is fine on most
platforms where sockets are file descriptors (signed int), but on Windows,
SOCKET is an unsigned type, which is problematic when we are trying to
test if the socket was actually a negative error code.
This fix seperates the error code and socket in gitno_connect(), and fixes
the error handling in do_connect() functions to compensate. It appears
that git_connect() and the git-transport do_connect() functions had bugs
in the non-windows cases too (leaking sockets, and not properly reporting
connection error, respectively) so I went ahead and fixed those too.
|
|
282283ac
|
2012-05-04T16:46:46
|
|
Fix valgrind issues
There are three changes here:
- correctly propogate error code from failed object lookups
- make zlib inflate use our allocators
- add OID to notfound error in ODB lookups
|
|
1adf8c6a
|
2012-05-04T13:52:38
|
|
compat: va_copy on Win32 systems
|
|
b709e951
|
2012-05-04T11:06:12
|
|
Fix memory leaks and use after free
|
|
f917481e
|
2012-05-03T16:37:25
|
|
Support reading attributes from index
Depending on the operation, we need to consider gitattributes
in both the work dir and the index. This adds a parameter to
all of the gitattributes related functions that allows user
control of attribute reading behavior (i.e. prefer workdir,
prefer index, only use index).
This fix also covers allowing us to check attributes (and
hence do diff and status) on bare repositories.
This was a somewhat larger change that I hoped because it had
to change the cache key used for gitattributes files.
|
|
630c5a4a
|
2012-04-30T14:29:34
|
|
notes: add git_note_default_ref()
Add git_note_default_ref to allow easy retrieval of the currently set
default notes reference.
|
|
caea5e54
|
2012-04-29T18:42:42
|
|
notes: honor core.notesRef
Setting core.notesRef allows to change the default notes reference used
by Git. Check if set before using GIT_NOTES_DEFAULT_REF. Fixes #649.
|
|
22772166
|
2012-05-03T00:04:04
|
|
errors: Use a git_buf for building error strings
|
|
baaf1c47
|
2012-05-02T23:44:22
|
|
buffer: Add `git_buf_vprintf`
|
|
3fbcac89
|
2012-05-02T19:56:38
|
|
Remove old and unused error codes
|
|
946a6dc4
|
2012-05-02T16:14:30
|
|
Update test suite
|
|
40879fac
|
2012-05-02T15:59:02
|
|
Merge branch 'new-error-handling' into development
Conflicts:
.travis.yml
include/git2/diff.h
src/config_file.c
src/diff.c
src/diff_output.c
src/mwindow.c
src/path.c
tests-clar/clar_helpers.c
tests-clar/object/tree/frompath.c
tests/t00-core.c
tests/t03-objwrite.c
tests/t08-tag.c
tests/t10-refs.c
tests/t12-repo.c
tests/t18-status.c
tests/test_helpers.c
tests/test_main.c
|
|
3fd99be9
|
2012-03-05T09:30:17
|
|
Convert from strnlen to git_text_is_binary
Since strnlen is not supported on all platforms and since we
now have the shiny new git_text_is_binary in the filtering
code, let's convert diff binary detection to use the new stuff.
|
|
8b2bcfbe
|
2012-03-05T09:14:56
|
|
Copy values to avoid strict aliasing warning
To make this code more resilient to future changes, we'll
explicitly translate the libgit2 structure to the libxdiff
structure.
|
|
16b83019
|
2012-03-04T23:28:36
|
|
Fix usage of "new" for fieldname in public header
This should restore the ability to include libgit2 headers
in C++ projects.
Cherry picked 2de60205dfea2c4a422b2108a5e8605f97c2e895 from
development into new-error-handling.
|
|
b8802146
|
2012-05-01T19:16:14
|
|
Merge remote-tracking branch 'carlosmn/remaining-errors' into new-error-handling
Conflicts:
src/refspec.c
|
|
42ea35c0
|
2012-05-01T22:25:43
|
|
remote: don't free transport on disconnect
Currently, git_remote_disconnect not only closes the connection but also
frees the underlying transport object, making it impossible to write
code like
// fetch stuff
git_remote_download()
// close connection
git_remote_disconnect()
// call user provided callback for each ref
git_remote_update_tips(remote, callback)
because remote->refs points to references owned by the transport object.
This means, we have an idling connection while running the callback for
each reference.
Instead, allow immediate disconnect and free the transport later in
git_remote_free().
|
|
ced9da54
|
2012-04-30T14:38:15
|
|
Merge pull request #654 from carlosmn/pkt-err
Recognize and report server-side error messages
|
|
39e6af6a
|
2012-04-30T17:44:37
|
|
net: recognize and report server-side error messages
When e.g. a repository isn't found, the server sends an error saying
so. Put that error message in our error buffer.
|
|
fa6420f7
|
2012-04-29T21:46:33
|
|
buf: deploy git_buf_len()
|
|
1d2dd864
|
2012-04-29T19:42:51
|
|
diff: provide more context to the consumer of the callbacks
Update the callback to provide some information related to the file change being processed and the range of the hunk, when applicable.
|
|
da3c187d
|
2012-04-29T19:08:48
|
|
buf: add git_buf_len() accessor to expose the current length of the buffer content
|
|
fdc0c5f6
|
2012-04-29T01:20:02
|
|
pkt: bring back GIT_ESHORTBUFFER
The recent 64-bit Windows fixes changed the return code in
git_pkt_parse_line() so it wouldn't signal a short buffer, breaking
the network code. Bring it back.
|
|
9738e2cd
|
2012-04-27T18:04:58
|
|
refs: fix unused-but-set warning
|
|
821f6bc7
|
2012-04-26T13:04:54
|
|
Fix Win32 warnings
|
|
d58336dd
|
2012-04-26T10:51:45
|
|
Fix leading slash behavior in attrs/ignores
We were not following the git behavior for leading slashes
in path names when matching git ignores and git attribute
file patterns. This should fix issue #638.
|
|
3aa351ea
|
2012-04-26T15:05:07
|
|
error handling: move the missing parts over to the new error handling
|
|
eb3d71a5
|
2012-04-25T22:23:35
|
|
diff: fix generation of the header of a removal patch
|
|
3fc5c65d
|
2012-04-25T15:24:05
|
|
Merge pull request #642 from arrbee/mem-pools
Memory pools and khash hashtables
|
|
c2b67043
|
2012-04-25T15:20:28
|
|
Rename git_khash_str to git_strmap, etc.
This renamed `git_khash_str` to `git_strmap`, `git_hash_oid` to
`git_oidmap`, and deletes `git_hashtable` from the tree, plus
adds unit tests for `git_strmap`.
|
|
f50087c0
|
2012-04-25T14:29:45
|
|
Merge pull request #641 from carlosmn/networking
More Networking updates
|
|
01fed0a8
|
2012-04-25T10:36:01
|
|
Convert hashtable usage over to khash
This updates khash.h with some extra features (like error checking
on allocations, ability to use wrapped malloc, foreach calls, etc),
creates two high-level wrappers around khash: `git_khash_str` and
`git_khash_oid` for string-to-void-ptr and oid-to-void-ptr tables,
then converts all of the old usage of `git_hashtable` over to use
these new hashtables.
For `git_khash_str`, I've tried to create a set of macros that
yield an API not too unlike the old `git_hashtable` API. Since
the oid hashtable is only used in one file, I haven't bother to
set up all those macros and just use the khash APIs directly for
now.
|
|
ada488bf
|
2012-04-24T11:02:40
|
|
Import khash.h from attractivechaos/klib
|
|
c16c8b9a
|
2012-04-23T09:23:58
|
|
Adding stash to hashtable implementation
Adding a small stash of nodes with key conflicts has been
demonstrated to greatly increase the efficiency of a cuckoo
hashtable. See:
http://research.microsoft.com/pubs/73856/stash-full.9-30.pdf
for more details.
|
|
25f258e7
|
2012-04-23T09:21:15
|
|
Moving power-of-two bit utilities into util.h
|
|
da3b391c
|
2012-04-18T10:57:08
|
|
Convert revwalk to use git_pool
This removes the custom paged allocator from revwalk and
replaces it with a `git_pool`.
|
|
19fa2bc1
|
2012-04-17T15:12:50
|
|
Convert attrs and diffs to use string pools
This converts the git attr related code (including ignores) and
the git diff related code (and implicitly the status code) to use
`git_pools` for storing strings. This reduces the number of small
blocks allocated dramatically.
|
|
2bc8fa02
|
2012-04-17T10:14:24
|
|
Implement git_pool paged memory allocator
This adds a `git_pool` object that can do simple paged memory
allocation with free for the entire pool at once. Using this,
you can replace many small allocations with large blocks that
can then cheaply be doled out in small pieces. This is best
used when you plan to free the small blocks all at once - for
example, if they represent the parsed state from a file or data
stream that are either all kept or all discarded.
There are two real patterns of usage for `git_pools`: either
for "string" allocation, where the item size is a single byte
and you end up just packing the allocations in together, or for
"fixed size" allocation where you are allocating a large object
(e.g. a `git_oid`) and you generally just allocation single
objects that can be tightly packed. Of course, you can use it
for other things, but those two cases are the easiest.
|
|
a7d19b97
|
2012-04-25T15:47:53
|
|
config: also allow escaping outside of a quoted string
This limitation was a misparsing of the documentation.
|
|
f184836b
|
2012-04-25T12:13:20
|
|
remote: run a callback when updating the branch tips
This allows the caller to update an internal structure or update the
user output with the tips that were updated.
While in the area, only try to update the ref if the value is
different from its old one.
|
|
2e3a0055
|
2012-04-16T11:58:46
|
|
revwalk: return GIT_EREVWALKER earlier if no references were pushed
In the case that walk->one is NULL, we know that we have no positive
references, so we already know that the revwalk is over.
|