|
a9f51e43
|
2013-09-11T22:00:36
|
|
Merge git_buf and git_buffer
This makes the git_buf struct that was used internally into an
externally available structure and eliminates the git_buffer.
As part of that, some of the special cases that arose with the
externally used git_buffer were blended into the git_buf, such as
being careful about git_buf objects that may have a NULL ptr and
allowing for bufs with a valid ptr and size but zero asize as a
way of referring to externally owned data.
|
|
4b11f25a
|
2013-09-11T16:38:33
|
|
Add ident filter
This adds the ident filter (that knows how to replace $Id$) and
tweaks the filter APIs and code so that git_filter_source objects
actually have the updated OID of the object being filtered when
it is a known value.
|
|
b47349b8
|
2013-09-12T14:48:24
|
|
Port tests from PR 1683
This ports over some of the tests from
https://github.com/libgit2/libgit2/pull/1683
by @yorah and @ethomson
|
|
2a7d224f
|
2013-09-10T16:33:32
|
|
Extend public filter api with filter lists
This moves the git_filter_list into the public API so that users
can create, apply, and dispose of filter lists. This allows more
granular application of filters to user data outside of libgit2
internals.
This also converts all the internal usage of filters to the public
APIs along with a few small tweaks to make it easier to use the
public git_buffer stuff alongside the internal git_buf.
|
|
85d54812
|
2013-08-28T16:44:04
|
|
Create public filter object and use it
This creates include/sys/filter.h with a basic definition of a
git_filter and then converts the internal code to use it. There
are related internal objects (git_filter_list) that we will want
to publish at some point, but this is a first step.
|
|
e580afd8
|
2013-09-13T14:33:26
|
|
Add tests for git_tree_walk
This tests the fixes for issues from #1849
|
|
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.
|
|
ae4a4866
|
2013-08-29T14:12:13
|
|
blob: Slightly enforce a create_fromchunks() test
|
|
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.
|
|
d0b25d9d
|
2013-07-15T08:14:00
|
|
Fix
|
|
2185dd6f
|
2013-07-15T07:59:04
|
|
Fix typo
|
|
19bee769
|
2013-07-15T07:39:16
|
|
Revert "Replace Japanese characters with the encoded hexadecimal values"
This reverts commit a91e4d6b21e141c2abc76b65b2d4c91d5d3e03cc.
|
|
a91e4d6b
|
2013-07-15T07:19:42
|
|
Replace Japanese characters with the encoded hexadecimal values
|
|
d6d34cd0
|
2013-07-13T02:10:16
|
|
Add test for multi-byte characters
|
|
ca9b1702
|
2013-05-29T09:18:21
|
|
Fix memory leak in oid shortener tests
|
|
30caf0cf
|
2013-05-24T01:13:48
|
|
Merge pull request #1595 from arrbee/even-more-rename-fixes
Even more rename detection fixes
|
|
06c070b5
|
2013-05-23T09:43:56
|
|
Add testcase for #1600
|
|
a21cbb12
|
2013-05-22T10:37:12
|
|
Significant rename detection rewrite
This flips rename detection around so instead of creating a
forward mapping from deltas to possible rename targets, instead
it creates a reverse mapping, looking at possible targets and
trying to find a source that they could have been renamed or
copied from. This is important because each output can only
have a single source, but a given source could map to multiple
outputs (in the form of COPIED records).
Additionally, this makes a couple of tweaks to the public rename
detection APIs, mostly renaming a couple of options that control
the behavior to make more sense and to be more like core Git.
I walked through the tests looking at the exact results and
updated the expectations based on what I saw. The new code is
different from the old because it cannot give some nonsense
results (like A was renamed to both B and C) which were part of
the outputs previously.
|
|
b81cc1d6
|
2013-05-18T16:52:16
|
|
tag: Introduce git_tag_annotation_create()
|
|
660d59ca
|
2013-05-17T16:40:00
|
|
Add git_oid_nfmt - a flexible OID formatter
I frequently want to the the first N digits of an OID formatted
as a string and I'd like it to be efficient. This function makes
that easy and I could rewrite the OID formatters in terms of it.
|
|
0f938c6b
|
2013-05-07T09:59:53
|
|
Fix win32 type warnings
|
|
03c28d92
|
2013-05-06T06:45:53
|
|
Merge pull request #1526 from arrbee/cleanup-error-return-without-msg
Make sure error messages are set for most error returns
|
|
6e286e8d
|
2013-05-04T01:04:23
|
|
Remove obsolete test for peel type
Peeling to an invalid type is now checked via an assert so this
test is no longer relevant.
|
|
d82d66c9
|
2013-05-02T03:05:21
|
|
Extra threading tests
We need to hammer the packfile open phase harder in the thread
tests, in addition to the cache API.
|
|
d8771592
|
2013-04-22T17:04:52
|
|
cache: Max cache size, and evict when the cache fills up
|
|
cf9709b6
|
2013-04-22T16:53:46
|
|
tests: Do not warn for unused variable
|
|
38eef611
|
2013-04-16T14:19:27
|
|
Make indexer use shared packfile open code
The indexer was creating a packfile object separately from the
code in pack.c which was a problem since I put a call to
git_mutex_init into just pack.c. This commit updates the pack
function for creating a new pack object (i.e. git_packfile_check())
so that it can be used in both places and then makes indexer.c
use the shared initialization routine.
There are also a few minor formatting and warning message fixes.
|
|
917f60c5
|
2013-04-12T13:04:08
|
|
Add tests for oidmap and new cache with threading
This adds some basic tests for the oidmap just to make sure that
collisions, etc. are dealt with correctly.
This also adds some tests for the new caching that check if items
are inserted (or not inserted) properly into the cache, and that
the cache can hold up in a multithreaded environment without error.
|
|
8842c75f
|
2013-04-03T22:30:07
|
|
What has science done.
|
|
83cc70d9
|
2013-04-19T12:48:33
|
|
Move odb_backend implementors stuff into git2/sys
This moves some of the odb_backend stuff that is related to the
internals of an odb_backend implementation into include/git2/sys.
Some of the stuff related to streaming I left in include/git2
because it seemed like it would be reasonably needed by a normal
user who wanted to stream objects into and out of the ODB.
Also, I added APIs for traversing the list of backends so that
some of the tests would not need to access ODB internals.
|
|
24cb87e2
|
2013-03-31T13:27:43
|
|
tag: Fix parsing when no tagger nor message
|
|
5a5bd640
|
2013-03-31T13:53:40
|
|
tests: Fix indentations
|
|
3658e81e
|
2013-03-25T14:20:07
|
|
Move crlf conversion into buf_text
This adds crlf/lf conversion functions into buf_text with more
efficient implementations that bypass the high level buffer
functions. They attempt to minimize the number of reallocations
done and they directly write the buffer data as needed if they
know that there is enough memory allocated to memcpy data.
Tests are added for these new functions. The crlf.c code is
updated to use the new functions.
Removed the include of buf_text.h from filter.h and just include
it more narrowly in the places that need it.
|
|
d00d5464
|
2013-03-01T15:37:33
|
|
immutable references and a pluggable ref database
|
|
8005c6d4
|
2013-02-26T01:03:56
|
|
Revert "hash: remove git_hash_init from internal api"
This reverts commit efe7fad6c96a3d6197a218aeaa561ec676794499, except for
the indentation fixes.
|
|
efe7fad6
|
2013-02-26T00:05:28
|
|
hash: remove git_hash_init from internal api
Along with that, fix indentation in tests-clar/object/raw/hash.c
|
|
0cfce06d
|
2013-02-20T11:58:21
|
|
Add more treebuilder tests
The recent changes with git_treebuilder_entrycount point out that
the test coverage for git_treebuilder_remove and
git_treebuilder_entrycount is completely absent. This adds tests.
|
|
5c7b77c4
|
2013-01-22T16:01:03
|
|
Seperate out a new test that verifies packed-refs with no trailing newline
as per @vmg's request
|
|
cb35094b
|
2013-01-22T15:49:51
|
|
Allow peeled references without trailing newline at end of file
Also ammends one of the tag tests to make sure it's working.
|
|
25743bd7
|
2013-01-12T13:47:56
|
|
add an index_remove_bypath that removes conflicts, renamed add_from_workdir to match
|
|
8fe713cc
|
2012-12-19T15:06:14
|
|
Make git_oid_tostr use out buffer for NULL oid
Previously a NULL oid was handled like an empty buffer and
returned a status empty string. This makes git_oid_tostr()
set the output buffer to the empty string instead.
|
|
2d466b7d
|
2012-12-14T02:49:11
|
|
tests: Fix unused temp repo
|
|
72629a10
|
2012-12-10T10:05:31
|
|
Clean up GCC build warnings
|
|
f1c75b94
|
2012-12-07T15:16:41
|
|
tree: relax the filemode parser
There are many different broken filemodes in the wild so we need to
protect against them and give something useful up the chain. Don't
fail when reading a tree from the ODB but normalize the mode as best
we can.
As 664 is no longer a mode that we consider to be valid and gets
normalized to 644, we can stop accepting it in the treebuilder. The
library won't expose it to the user, so any invalid modes are a bug.
|
|
bc05f30c
|
2012-11-19T18:49:25
|
|
object: refine git_object_peel() error report
|
|
18d6f120
|
2012-11-12T15:55:38
|
|
tag: Deploy EINVALIDSPEC usage
|
|
f1e5c506
|
2012-11-29T12:18:05
|
|
Merge pull request #1110 from libgit2/features/push_rebased
Push! By schu, phkelley, and congyiwu
|
|
ac22d08f
|
2012-11-29T08:22:15
|
|
Remove git_object_oid2type
|
|
7bf87ab6
|
2012-11-28T09:58:48
|
|
Consolidate text buffer functions
There are many scattered functions that look into the contents of
buffers to do various text manipulations (such as escaping or
unescaping data, calculating text stats, guessing if content is
binary, etc). This groups all those functions together into a
new file and converts the code to use that.
This has two enhancements to existing functionality. The old
text stats function is significantly rewritten and the BOM
detection code was extended (although largely we can't deal with
anything other than a UTF8 BOM).
|
|
613d5eb9
|
2012-11-28T11:42:37
|
|
Push! By schu, phkelley, and congyiwu, et al
|
|
a8122b5d
|
2012-11-21T15:39:03
|
|
Fix warnings on Win64 build
|
|
f45d51ff
|
2012-11-20T19:57:46
|
|
API updates for index.h
|
|
d9023dbe
|
2012-11-20T17:06:54
|
|
API updates for tag.h
|
|
e120123e
|
2012-11-20T14:01:46
|
|
API review / update for tree.h
|
|
cfbe4be3
|
2012-11-17T19:54:47
|
|
More external API cleanup
Conflicts:
src/branch.c
tests-clar/refs/branches/create.c
|
|
2508cc66
|
2012-11-18T21:38:08
|
|
Rename ref and reflog apis for consistency
|
|
9094d30b
|
2012-11-23T11:41:56
|
|
Reset all static variables to NULL in clar's __cleanup
Without this change, any failed assertion in the second (or a later) test
inside a test suite has a chance of double deleting memory, resulting in
a heap corruption. See #1096 for details.
This leaves alone the test cases where we "just" use cl_git_sandbox_init()
and cl_git_sandbox_cleanup(). These methods already take good care to not
double delete a repository.
Fixes #1096
|
|
19af78bb
|
2012-11-18T15:15:24
|
|
Prevent creating `..`, `.`, and `.git` with tree builder
As per core git.
|
|
aa8a76ef
|
2012-11-17T05:12:14
|
|
tag: rename git_tag_type to git_tag_target_type
|
|
86b9dbc1
|
2012-11-17T04:50:48
|
|
Fix MSVC compilation warnings
|
|
aa1c3b58
|
2012-11-13T14:13:47
|
|
Merge pull request #1016 from arrbee/fix-checkout-dir-removal
Update checkout with new strategies & behavior
|
|
603bee07
|
2012-11-12T19:22:49
|
|
Remove git_hash_ctx_new - callers now _ctx_init()
|
|
d6fb0924
|
2012-11-05T12:37:15
|
|
Win32 CryptoAPI and CNG support for SHA1
|
|
ef887151
|
2012-11-11T23:52:37
|
|
Fix compilation warning
|
|
331e7de9
|
2012-10-24T17:32:50
|
|
Extensions to rmdir and mkdir utilities
* Rework GIT_DIRREMOVAL values to GIT_RMDIR flags, allowing
combinations of flags
* Add GIT_RMDIR_EMPTY_PARENTS flag to remove parent dirs that
are left empty after removal
* Add GIT_MKDIR_VERIFY_DIR to give an error if item is a file,
not a dir (previously an EEXISTS error was ignored, even for
files) and enable this flag for git_futils_mkpath2file call
* Improve accuracy of error messages from git_futils_mkdir
|
|
f92bcaea
|
2012-11-08T17:39:23
|
|
index: prevent tree creation from a non merged state
Fix libgit2/libgit2sharp#243
|
|
29cc374d
|
2012-11-08T17:37:01
|
|
tree: enforce coverage of silent entry replacement
|
|
6bb9fea1
|
2012-11-02T10:28:17
|
|
tags: Fixed the tag parser to correctly treat the message field as optional.
This fix makes libgit2 capable of parsing annotated tag objects that lack
the optional message/description field.
Previously, libgit2 treated this field as mandatory and raised a tag_error on
such tags. However, the message field is optional.
An example of such a tag is refs/tags/v2.6.16.31-rc1 in Linux:
$ git cat-file tag refs/tags/v2.6.16.31-rc1
object afaa018cefb6af63befef1df7d8febaae904434f
type commit
tag v2.6.16.31-rc1
tagger Adrian Bunk <bunk@stusta.de> 1162716505 +0100
$
|
|
43eeca04
|
2012-11-01T20:24:43
|
|
index: Fix tests
|
|
f45ec1a0
|
2012-10-29T20:04:21
|
|
index refactoring
|
|
65d12df5
|
2012-10-03T15:04:59
|
|
message: reorganize tests
|
|
4c47a8bc
|
2012-10-17T14:14:51
|
|
Merge pull request #968 from arrbee/diff-support-typechange
Support TYPECHANGE records in status and adjust checkout accordingly
|
|
b73200c1
|
2012-10-11T14:15:40
|
|
tags: cover EEXISTS propagation upon creation
|
|
0d64bef9
|
2012-10-05T15:56:57
|
|
Add complex checkout test and then fix checkout
This started as a complex new test for checkout going through the
"typechanges" test repository, but that revealed numerous issues
with checkout, including:
* complete failure with submodules
* failure to create blobs with exec bits
* problems when replacing a tree with a blob because the tree
"example/" sorts after the blob "example" so the delete was
being processed after the single file blob was created
This fixes most of those problems and includes a number of other
minor changes that made it easier to do that, including improving
the TYPECHANGE support in diff/status, etc.
|
|
8469219e
|
2012-09-22T23:11:26
|
|
Tests: Add test for git_tag_list to check for 'git tag -l "*bar"'
|
|
daa70138
|
2012-09-22T23:04:45
|
|
Tests: reindent object/tag/list.c to use tabs
|
|
45949b37
|
2012-09-21T01:53:15
|
|
Tests::object::tag: also test for a 'foo/*/bar'.
|
|
7604ddbf
|
2012-09-21T00:57:21
|
|
Tests: Add 3 tags to resources/testrepo.
Adjusts refs::list test (including the comments)
Adjusts objects::tags::list test
|
|
e800bbe8
|
2012-09-21T00:32:53
|
|
Tests::Object::Tag: Add a mechanism to test which tags were returned
This patch changes the tag listing test helper to use a struct as input
parameter, which tells what we exactly expect.
As I don't think, we can rely on the fact that every os and every
filesystem will report the tags in the same order, I made this code
independent of the order that the tags are retrieved.
|
|
f73f760e
|
2012-09-20T23:49:17
|
|
Tests::Object::Tag: move listing tags tests to an own file
|
|
cf4c43ab
|
2012-09-04T11:17:46
|
|
object: make git_object_peel() test more readable
|
|
d8057a5b
|
2012-08-27T11:53:59
|
|
Make git_object_peel a bit smarter
This expands the types of peeling that `git_object_peel` knows
how to do to include TAG -> BLOB peeling, and makes the errors
slightly more consistent depending on the situation. It also
adds a new special behavior where peeling to ANY will peel until
the object type changes (e.g. chases TAGs to a non-TAG).
Using this expanded peeling, this replaces peeling code that was
embedded in `git_tag_peel` and `git_reset`.
|
|
9d7ac675
|
2012-08-21T11:45:16
|
|
tree entry: rename git_tree_entry_attributes() into git_tree_entry_filemode()
|
|
a7dbac0b
|
2012-08-17T21:10:32
|
|
filemode: deploy enum usage
|
|
66439b0b
|
2012-08-17T11:21:49
|
|
treebuilder: enhance attributes handling on insertion
|
|
fc1826d1
|
2012-08-14T20:54:13
|
|
tests: fix tree walking test
Return -1 to stop the iteration instead of not-0
|
|
85a0e28b
|
2012-08-14T10:50:58
|
|
Make git_message_prettify return bytes written
If you want to be absolutely safe with git_message_prettify, you
can now pass a NULL pointer for the buffer and get back the number
of bytes that would be copied into the buffer.
This means that an error is a non-negative return code and a
success will be greater than zero from this function.
|
|
fdc637c4
|
2012-08-12T09:08:45
|
|
Check prettify message output buffer after cleanup
This makes the message prettify buffer length check accurate.
|
|
51e1d808
|
2012-08-06T12:41:08
|
|
Merge remote-tracking branch 'arrbee/tree-walk-fixes' into development
Conflicts:
src/notes.c
src/transports/git.c
src/transports/http.c
src/transports/local.c
tests-clar/odb/foreach.c
|
|
b0d37669
|
2012-08-03T17:24:59
|
|
Add new iteration behavior to git_tree_walk
Missed this one, ironically enough.
|
|
b8457baa
|
2012-07-24T07:57:58
|
|
portability: Improve x86/amd64 compatibility
|
|
db9be945
|
2012-07-15T11:06:15
|
|
object: introduce git_object_peel()
Partially fix #530
|
|
dc1f4b32
|
2012-07-12T10:52:19
|
|
tree: unfound tree entry returns GIT_ENOTFOUND
|
|
7e8c146c
|
2012-06-29T00:47:46
|
|
Don't rmdir() nonexistent dirs in object::tree::frompath tests
It causes the clar testsuite to abort on Windows, and isn't necessary.
|
|
0e2fcca8
|
2012-06-29T02:21:12
|
|
tree: Bring back `entry_bypath`
Smaller, simpler, faster.
|
|
743a4b3b
|
2012-06-15T22:24:59
|
|
message: Expose git_message_prettify()
git_commit() and git_tag() no longer prettify the
message by default. This has to be taken care of
by the caller.
This has the nice side effect of putting the
caller in position to actually choose to strip
the comments or not.
|
|
8c4c357f
|
2012-06-19T02:43:36
|
|
clar: Fix warnings
|
|
515a4c7c
|
2012-06-19T00:59:04
|
|
tree: Proper path comparison logic
|
|
e00b56eb
|
2012-06-15T10:15:57
|
|
Fix broken tests caused by no longer prettifying by default
|
|
3f035860
|
2012-06-07T22:43:03
|
|
misc: Fix warnings from PVS Studio trial
|