|
3865f7f6
|
2012-12-27T23:23:12
|
|
Invalid ref name normalization leaked memory
When normalizing a reference name, if there is an error because
the name is invalid, then the memory allocated for storing the
name could be leaked if the caller was not careful and assumed
that the error return code meant that no allocation had occurred.
This fixes that by explicitly deallocating the reference name
buffer if there is an error in normalizing the name.
|
|
f616a36b
|
2012-12-27T22:25:52
|
|
Make spoolandsort a pushable iterator behavior
An earlier change to `git_diff_from_iterators` introduced a
memory leak where the allocated spoolandsort iterator was not
returned to the caller and thus not freed.
One proposal changes all iterator APIs to use git_iterator** so
we can reallocate the iterator at will, but that seems unexpected.
This commit makes it so that an iterator can be changed in place.
The callbacks are isolated in a separate structure and a pointer
to that structure can be reassigned by the spoolandsort extension.
This means that spoolandsort doesn't create a new iterator; it
just allocates a new block of callbacks (along with space for its
own extra data) and swaps that into the iterator.
Additionally, since spoolandsort is only needed to switch the
case sensitivity of an iterator, this simplifies the API to only
take the ignore_case boolean and to be a no-op if the iterator
already matches the requested case sensitivity.
|
|
50a762a5
|
2012-12-26T12:03:07
|
|
path: Teach UNC paths to git_path_dirname_r()
Fix libgit2/libgit2sharp#256
|
|
7382551f
|
2012-12-22T16:29:59
|
|
Fix -Wmaybe-uninitialized warning
|
|
2052e3c0
|
2012-12-21T10:32:23
|
|
Merge pull request #1163 from barrbrain/check-exists-before-write
odb: check if object exists before writing
|
|
4d185dd9
|
2012-12-19T14:30:06
|
|
odb: check if object exists before writing
Update the procondition of git_odb_backend::write.
It may now be assumed that the object has already been hashed.
|
|
7fcec834
|
2012-12-11T22:31:21
|
|
fetchhead reading/iterating
|
|
5c3c86b0
|
2012-12-19T13:43:50
|
|
Merge pull request #1150 from schu/fix-netops-ssl
netops: on SSL teardown only send shutdown alert
|
|
08a325a3
|
2012-12-19T12:52:14
|
|
reflog: Actual error handling
|
|
8a810441
|
2012-12-19T12:48:12
|
|
reflog: Rename error handling
|
|
9ec50c25
|
2012-12-18T18:15:21
|
|
Make goto cleanup more consistent
There may be some question about whether this is likely to be needed
at all, but that's above my head at the moment.
|
|
3a6420f3
|
2012-12-18T17:46:18
|
|
don't deref before we've asserted
just sayin'.
|
|
ed4e887d
|
2012-12-18T16:09:57
|
|
Also, whitespace.
I was totally flaunting @ben's 3-space tab advice.
|
|
33f169e2
|
2012-12-18T16:07:18
|
|
Improve comment text
This looked wrong to me. I *think* this is more appropriate
commentary.
|
|
e62171e2
|
2012-12-17T11:10:25
|
|
Merge pull request #1151 from arrbee/fix-diff-constructor-names
Fix diff constructor names
|
|
56c72b75
|
2012-12-17T11:00:53
|
|
Fix diff constructor name order confusion
The diff constructor functions had some confusing names, where the
"old" side of the diff was coming after the "new" side. This
reverses the order in the function name to make it less confusing.
Specifically...
* git_diff_index_to_tree becomes git_diff_tree_to_index
* git_diff_workdir_to_index becomes git_diff_index_to_workdir
* git_diff_workdir_to_tree becomes git_diff_tree_to_workdir
|
|
f2b00cbd
|
2012-12-17T19:35:40
|
|
netops: on SSL teardown only send shutdown alert
According to man 3 SSL_shutdown / TLS, "If a unidirectional shutdown is
enough (the underlying connection shall be closed anyway), this first
call to SSL_shutdown() is sufficient."
Currently, an unidirectional shutdown is enough, since
gitno_ssl_teardown is called by gitno_close only. Do so to avoid further
errors (by misbehaving peers for example).
Fixes #1129.
|
|
9c8dbc88
|
2012-12-17T19:18:34
|
|
netops: properly handle GITNO_CONNECT_SSL_NO_CHECK_CERT
Don't return an error just because GITNO_CONNECT_SSL_NO_CHECK_CERT is
set.
|
|
0d10e79d
|
2012-12-17T10:13:36
|
|
Merge pull request #1149 from nulltoken/topic/blob_isbinary
Introduce git_blob_is_binary()
|
|
a3337f10
|
2012-12-17T15:15:20
|
|
blob: introduce git_blob_is_binary()
|
|
bdb94c21
|
2012-12-17T12:20:52
|
|
Fix MSVC compilation warnings
|
|
101659be
|
2012-12-17T15:50:12
|
|
Fix -Wmaybe-uninitialized warning
|
|
2a2d1ab0
|
2012-12-15T14:30:20
|
|
Cloning empty repos: only allow missing target for HEAD
|
|
28abb187
|
2012-12-14T14:16:10
|
|
Stop returning incorrect error message
|
|
b524fe1a
|
2012-12-14T08:35:59
|
|
Local Only ignore ENOTFOUNDs when adding corrupted refs
|
|
850b1edf
|
2012-12-13T12:55:28
|
|
Allow clone to handle empty repos
|
|
b9e7e2b4
|
2012-12-14T13:46:45
|
|
Move non-options back out of options struct
|
|
18b2d560
|
2012-12-14T13:03:59
|
|
Deploy git_clone_options; remove git_clone_bare
|
|
b0b9fd32
|
2012-12-14T02:41:53
|
|
Merge remote-tracking branch 'origin/clone-auth' into development
|
|
f0a2def5
|
2012-12-13T18:08:45
|
|
Fix comment so it doesn't go over 100 chars
|
|
cb2ace69
|
2012-12-13T12:51:23
|
|
Transport resolution on Win32 should handle absolute local paths
|
|
24393ea6
|
2012-12-13T09:14:56
|
|
Stop premature remote freeing when cloning
|
|
7c353afd
|
2012-12-13T08:47:29
|
|
Define constant for default fetch spec
|
|
44f36f6e
|
2012-12-12T19:48:44
|
|
Convert clone to use dangling remotes
|
|
e759b072
|
2012-12-12T17:54:12
|
|
don't walk off the end of the index
|
|
b914e17d
|
2012-12-12T12:23:24
|
|
API to set a dangling remote's repository
|
|
a71c27cc
|
2012-12-12T12:15:25
|
|
Allow creation of dangling remotes
|
|
08f3d6ca
|
2012-12-12T19:23:05
|
|
tree cache: loosen negative entry count check
While C Git has been writing entry count -1 (ie. never other negative
numbers) as invalid since day 1, it accepts all negative entry counts
as invalid. JGit follows the same rule. libgit2 should also follow, or
the index that works with C Git or JGit may someday be rejected by
libgit2.
Other reimplementations like dulwich and grit have not bothered with
parsing or writing tree cache.
|
|
91e7d263
|
2012-12-10T15:29:44
|
|
Fix iterator reset and add reset ranges
The `git_iterator_reset` command has not been working in all cases
particularly when there is a start and end range. This fixes it
and adds tests for it, and also extends it with the ability to
update the start/end range strings when an iterator is reset.
|
|
9950d27a
|
2012-12-06T13:26:58
|
|
Clean up iterator APIs
This removes the need to explicitly pass the repo into iterators
where the repo is implied by the other parameters. This moves
the repo to be owned by the parent struct. Also, this has some
iterator related updates to the internal diff API to lay the
groundwork for checkout improvements.
|
|
4cbe9a1b
|
2012-12-10T11:48:20
|
|
Add git_cred_acquire_cb payload to winhttp transport
|
|
59bccf33
|
2012-12-10T11:11:01
|
|
Add a payload param to git_cred_acquire_cb
Fixes #1128.
|
|
22bcf86c
|
2012-12-10T06:55:59
|
|
Merge pull request #1126 from carlosmn/indexer-buffer
indexer: move the temporary buffers into the indexer object
|
|
1d009603
|
2012-12-09T02:40:16
|
|
orite C89
|
|
2bb1c7aa
|
2012-12-09T02:37:33
|
|
Treat git_mutex_lock as successful when threads are disabled
|
|
a35b3864
|
2012-12-09T02:31:39
|
|
Always check the result of git_mutex_lock
|
|
c3320aca
|
2012-12-09T02:22:50
|
|
git__mwindow_mutex needs to be initialized even with pthreads
This could also use PTHREAD_MUTEX_INITIALIZER, but a dynamic initializer seems like a more portable concept, and we won't need another #define on top of git_mutex_init()
|
|
6481a68d
|
2012-12-07T19:23:16
|
|
indexer: move the temporary buffers into the indexer object
Storing 4kB or 8kB in the stack is not very gentle. As this part has
to be linear, put the buffer into the indexer object so we allocate it
once in the heap.
|
|
0249a503
|
2012-12-07T09:40:21
|
|
Merge pull request #1091 from carlosmn/stream-object
Indexer speedup with large objects
|
|
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.
|
|
32770c52
|
2012-12-05T13:56:32
|
|
Fix diff header comments and missing const
Based on the recent work to wrap diff in objective-git, this
includes a fix for a missing const and a number of clarifications
of the documentation.
|
|
bf192cdb
|
2012-12-05T20:56:27
|
|
versions: MSVC build fixes
|
|
43efaabd
|
2012-12-05T20:54:03
|
|
common: Silly vmg.
|
|
8ff66112
|
2012-12-05T20:50:19
|
|
common: Silly MSVC
|
|
e05ca13f
|
2012-12-05T11:47:19
|
|
Merge pull request #1115 from ben/struct-versions
Version info for public structs
|
|
05fc823f
|
2012-12-04T16:59:34
|
|
indentation fix
|
|
aab8f5af
|
2012-12-04T16:40:09
|
|
hey don't stomp on my memory!
|
|
b2414661
|
2012-11-28T22:43:55
|
|
status should ignore conflicts entries in the index
|
|
ee1c33b1
|
2012-12-03T12:45:15
|
|
Don't unconstify when casting
|
|
de70aea6
|
2012-12-03T12:41:50
|
|
Remove GIT_SIGNATURE_VERSION and friends
|
|
3368c520
|
2012-12-03T07:38:58
|
|
Merge pull request #1112 from barrbrain/odb-pack-read-header
odb-pack: resurrect pack_backend__read_header
|
|
7ea3a79f
|
2012-12-03T16:04:39
|
|
Vade retro satana
|
|
bfb8bcc1
|
2012-12-03T10:36:32
|
|
odb-pack: resurrect pack_backend__read_header
|
|
44f9f547
|
2012-11-30T13:33:30
|
|
pack: add git_packfile_resolve_header
To paraphrase @peff:
You can get both size and type from a packed object reasonably cheaply.
If you have:
* An object that is not a delta; both type and size are available in the
packfile header.
* An object that is a delta. The packfile type will be OBJ_*_DELTA, and
you have to resolve back to the base to find the real type. That means
potentially a lot of packfile index lookups, but each one is
relatively cheap. For the size, you inflate the first few bytes of the
delta, whose header will tell you the resulting size of applying the
delta to the base.
For simplicity, we just decompress the whole delta for now.
|
|
cc146626
|
2012-11-19T19:00:46
|
|
revparse: Deploy EINVALIDSPEC usage
|
|
bc05f30c
|
2012-11-19T18:49:25
|
|
object: refine git_object_peel() error report
|
|
18d6f120
|
2012-11-12T15:55:38
|
|
tag: Deploy EINVALIDSPEC usage
|
|
80212ecb
|
2012-11-12T16:49:29
|
|
reflog: Deploy EINVALIDSPEC usage
|
|
80d9d1df
|
2012-11-12T15:42:15
|
|
refs: Deploy EINVALIDSPEC usage
|
|
83458bb7
|
2012-11-12T14:06:13
|
|
refs: Fix error clearing
|
|
032ba9e4
|
2012-11-12T12:32:31
|
|
remote: deploy EINVALIDSPEC usage
|
|
0ab3a2ab
|
2012-11-30T20:34:50
|
|
Deploy GIT_INIT_STRUCTURE
|
|
d1b6ea8a
|
2012-12-01T14:50:20
|
|
delta-apply: add git__delta_read_header
|
|
c7231c45
|
2012-11-30T16:31:42
|
|
Deploy GITERR_CHECK_VERSION
|
|
4ec197f3
|
2012-11-30T12:52:42
|
|
Deploy GIT_SIGNATURE_INIT
|
|
10711769
|
2012-11-29T20:47:37
|
|
Deploy versioned git_transport structure
|
|
79cfa20d
|
2012-11-29T20:12:59
|
|
Deploy GIT_STATUS_OPTIONS_INIT
|
|
b4d13652
|
2012-11-29T20:06:23
|
|
Deploy GIT_REPOSITORY_INIT_OPTIONS_INIT
|
|
9267ff58
|
2012-11-29T20:01:24
|
|
Deploy GIT_REMOTE_CALLBACKS_INIT
|
|
55f6f21b
|
2012-11-29T19:59:18
|
|
Deploy versioned git_odb_backend structure
|
|
ca901e7b
|
2012-11-29T15:16:19
|
|
Deploy GIT_DIFF_FIND_OPTIONS_INIT
|
|
2f8d30be
|
2012-11-29T15:05:04
|
|
Deploy GIT_DIFF_OPTIONS_INIT
|
|
69177621
|
2012-11-29T14:07:50
|
|
Deploy git_config_backend version
|
|
b81aa2f1
|
2012-11-29T14:06:40
|
|
Deploy GIT_CHECKOUT_OPTS_INIT
|
|
3908c254
|
2012-11-30T17:25:50
|
|
indexer: correctly deal with objects larger than the window size
A mmap-window is not guaranteed to give you the whole object, but the
indexer currently assumes so.
Loop asking for more data until we've successfully CRC'd all of the
packed data.
|
|
5a3ad89d
|
2012-11-20T07:03:56
|
|
indexer: make use of streaming also for deltas
Up to now, deltas needed to be enterily in the packfile, and we tried
to decompress then in their entirety over and over again.
Adjust the logic so we read them as they come, just as we do for full
objects. This also allows us to simplify the logic and have less
nested code. The delta resolving phase still needs to decompress the
whole object into memory, as there is not yet any streaming
delta-apply support, but it helps in speeding up the downloading
process and reduces the amount of memory allocations we need to do.
|
|
f56f8585
|
2012-11-19T22:23:16
|
|
indexer: use the packfile streaming API
The new API allows us to read the object bit by bit from the packfile,
instead of needing it all at once in the packfile. This also allows us
to hash the object as it comes in from the network instead of having
to try to read it all and failing repeatedly for larger objects.
This is only the first step, but it already shows huge improvements
when dealing with objects over a few megabytes in size. It reduces the
memory needs in some cases, but delta objects still need to be
completely in memory and the old inefficent method is still used for
that.
|
|
46635339
|
2012-11-19T22:22:33
|
|
pack: introduce a streaming API for raw objects
This allows us to take objects from the packfile as a stream instead
of having to keep it all in memory.
|
|
da820437
|
2012-11-30T15:26:45
|
|
graph: plug leak
|
|
9ff07c24
|
2012-11-30T15:17:05
|
|
buf test: make sure we always set the bom variable
|
|
f684970a
|
2012-11-29T22:53:34
|
|
Merge pull request #1108 from libgit2/ahead-behind-count
Add API to calculate ahead/behind count
|
|
bdf3e6df
|
2012-11-29T17:34:41
|
|
Fix error condition typo
|
|
d5e44d84
|
2012-11-29T17:02:27
|
|
Fix function name and add real error check
`revwalk.h:commit_lookup()` -> `git_revwalk__commit_lookup()`
and make `git_commit_list_parse()` do real error checking that
the item in the list is an actual commit object. Also fixed an
apparent typo in a test name.
|
|
f1e5c506
|
2012-11-29T12:18:05
|
|
Merge pull request #1110 from libgit2/features/push_rebased
Push! By schu, phkelley, and congyiwu
|
|
4a6621fd
|
2012-11-29T08:35:21
|
|
Leverage the min macro from util.h
|
|
6762fe08
|
2012-11-29T08:29:26
|
|
Remove casts of return values of type void *
|
|
ac22d08f
|
2012-11-29T08:22:15
|
|
Remove git_object_oid2type
|
|
e2934db2
|
2012-11-29T02:05:46
|
|
Merge pull request #1090 from arrbee/ignore-invalid-by-default
Ignore invalid entries by default
|
|
ee06fec5
|
2012-11-29T01:29:50
|
|
Merge pull request #1083 from nulltoken/fix/tracking
Fix git_branch_tracking() for branches with empty merge and/or remote config entries
|
|
b994bfe3
|
2012-11-28T18:48:22
|
|
graph.c: prune includes
|