|
146b4d1c
|
2013-10-03T08:18:41
|
|
Merge pull request #1888 from jamill/network_cancellation
network cancellation improvements
|
|
598f069b
|
2013-10-02T12:42:41
|
|
commit: Introduce git_commit_message_raw()
|
|
5b188225
|
2013-10-02T13:45:32
|
|
Support cancellation in push operation
This commit adds cancellation for the push operation. This work consists of:
1) Support cancellation during push operation
- During object counting phase
- During network transfer phase
- Propagate GIT_EUSER error code out to caller
2) Improve cancellation support during fetch
- Handle cancellation request during network transfer phase
- Clear error string when cancelled during indexing
3) Fix error handling in git_smart__download_pack
Cancellation during push is still only handled in the pack building and
network transfer stages of push (and not during packbuilding).
|
|
0e0cf787
|
2013-10-02T14:04:44
|
|
clone: put the callbacks struct directly in the clone options
There's no need for this to be a pointer to somewhere else.
|
|
36a241ac
|
2013-09-20T23:14:52
|
|
clone: mention clone_into in the clone documentation
Make the difference more explicit.
|
|
ffc97d51
|
2013-09-20T23:23:42
|
|
remote: add some comments to the callback struct
Hopefully clear up what they're for.
|
|
c833893c
|
2013-09-20T22:57:01
|
|
clone: re-allow using a custom remote name
This is a small thing that by itself doesn't quite justify making the
user use clone_into.
|
|
eec1c1fe
|
2013-09-20T22:49:20
|
|
clone: const-ify checkout options
The removal of many options which lead to the direct usage of the
user's checkout options means we should make sure they remain const.
|
|
b9bf5d70
|
2013-09-20T22:46:32
|
|
clone: re-add a way to ignore certificate errors
This used to be done via transport flags, which was removed in a
previous commit.
|
|
6ac15eff
|
2013-09-20T22:34:05
|
|
clone: remove more options from basic clone
The basic clone function is there to make it easy to create a "normal"
clone. Remove a bunch of options that are about changing the remote's
configuration.
|
|
c8dbec48
|
2013-09-16T18:42:53
|
|
clone: remove the autotag option
Downloading all tags is part of what makes it a clone instead of
simply a fetch.
|
|
fe3a40a4
|
2013-09-16T16:54:37
|
|
remote: add a convenience 'fetch' function.
|
|
d19870d9
|
2013-09-16T05:10:55
|
|
clone: implement git_clone_into
This allows you to set up the repository and remote as you which to
have them before performing the clone operation.
|
|
e3c131c5
|
2013-09-16T05:02:25
|
|
remote: move the credentials callback to the struct
Move this one as well, letting us have a single way of setting the
callbacks for the remote, and removing fields from the clone options.
|
|
d31402a3
|
2013-09-16T04:20:05
|
|
remote: put the _download() callback with the others
The text progress and update_tips callbacks are already part of the
struct, which was meant to unify the callback setup, but the download
one was left out.
|
|
83786956
|
2013-01-04T14:39:05
|
|
Add git_transport_register, git_transport_unregister
|
|
b176eded
|
2013-09-19T14:52:57
|
|
Initial Implementation of progress reports during push
This adds the basics of progress reporting during push. While progress
for all aspects of a push operation are not reported with this change,
it lays the foundation to add these later. Push progress reporting
can be improved in the future - and consumers of the API should
just get more accurate information at that point.
The main areas where this is lacking are:
1) packbuilding progress: does not report progress during deltafication,
as this involves coordinating progress from multiple threads.
2) network progress: reports progress as objects and bytes are going
to be written to the subtransport (instead of as client gets
confirmation that they have been received by the server) and leaves
out some of the bytes that are transfered as part of the push protocol.
Basically, this reports the pack bytes that are written to the
subtransport. It does not report the bytes sent on the wire that
are received by the server. This should be a good estimate of
progress (and an improvement over no progress).
|
|
7d692454
|
2013-09-27T16:08:24
|
|
Add refdb.h to git2.h, reorder git2.h sanely
|
|
e0b267af
|
2013-09-25T10:49:25
|
|
That's the refdb, it's not the odb...
|
|
4a1b4015
|
2013-09-24T10:32:40
|
|
Merge pull request #1865 from arrbee/various-cleanups
Various warning cleanup and minor fixes
|
|
e3f3868a
|
2013-09-24T11:04:14
|
|
'del' instead of 'delete' for the poor C++ users
|
|
1ca3e49f
|
2013-09-23T13:34:01
|
|
Clean up newly introduced warnings
The attempt to "clean up warnings" seems to have introduced some
new warnings on compliant compilers. This fixes those in a way
that I suspect will also be okay for the non-compliant compilers.
Also this fixes what appears to be an extra semicolon in the
repo initialization template dir handling (and as part of that
fix, handles the case where an error occurs correctly).
|
|
10edb7a9
|
2013-09-22T13:46:39
|
|
Merge pull request #1863 from linquize/typo
Fix typo in documentation
|
|
07fb67f9
|
2013-09-22T05:55:39
|
|
merge: reverse array and length parameter order
Make it pair up with the one for commits. This fixes #1691.
|
|
1b57699a
|
2013-09-22T09:11:43
|
|
Fix typo in documentation
|
|
92d19d16
|
2013-09-21T09:34:03
|
|
Merge pull request #1840 from linquize/warning
Fix warning
|
|
66566516
|
2013-09-08T17:15:42
|
|
Fix warning
|
|
3d4f1698
|
2013-09-17T10:21:22
|
|
Merge pull request #1858 from linquize/win32-template-dir
Configurable template dir for Win32
|
|
eefc32d5
|
2013-09-16T12:54:40
|
|
Bug fixes and cleanups
This contains a few bug fixes and some header and API cleanups.
The main API change is that filters should now use GIT_PASSTHROUGH
to indicate that they wish to skip processing a file instead of
GIT_ENOTFOUND.
The bug fixes include a possible out-of-range buffer access in
the ident filter, a filter ordering problem I introduced into the
custom filter tests on Windows, and a filter buf NUL termination
issue that was coming up on Linux.
|
|
eab3746b
|
2013-09-15T22:23:39
|
|
More filtering tests including order
This adds more tests of filters, including the ident filter when
mixed with custom filters. I was able to combine with the reverse
filter and demonstrate that the order of filter application with
the default priority constants matches the order of core Git.
Also, this fixes two issues in the ident filter: preventing ident
expansion on binary files and avoiding a NULL dereference when
dollar sign characters are found without Id.
|
|
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
|
|
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.
|
|
40cb40fa
|
2013-09-11T14:23:39
|
|
Add functions to manipulate filter lists
Extend the git2/sys/filter API with functions to look up a filter
and add it manually to a filter list. This requires some trickery
because the regular attribute lookups and checks are bypassed when
this happens, but in the right hands, it will allow a user to have
granular control over applying filters.
|
|
29e92d38
|
2013-09-10T16:53:09
|
|
Hook up filter initialize callback
I knew I forgot something
|
|
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.
|
|
974774c7
|
2013-09-09T16:57:34
|
|
Add attributes to filters and fix registry
The filter registry as implemented was too primitive to actually
work once multiple filters were coming into play. This expands
the implementation of the registry to handle multiple prioritized
filters correctly.
Additionally, this adds an "attributes" field to a filter that
makes it really really easy to implement filters that are based
on one or more attribute values. The lookup and even simple value
checking can all happen automatically without custom filter code.
Lastly, with the registry improvements, this fills out the filter
lifecycle callbacks, with initialize and shutdown callbacks that
will be called before the filter is first used and after it is
last invoked. This allows for system-wide initialization and
cleanup by the filter.
|
|
0cf77103
|
2013-08-26T23:17:07
|
|
Start of filter API + git_blob_filtered_content
This begins the process of exposing git_filter objects to the
public API. This includes:
* new public type and API for `git_buffer` through which an
allocated buffer can be passed to the user
* new API `git_blob_filtered_content`
* make the git_filter type and GIT_FILTER_TO_... constants public
|
|
570ba25c
|
2013-08-30T16:02:07
|
|
Make git_filter_source opaque
|
|
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.
|
|
b99b10f2
|
2013-09-17T23:38:52
|
|
Can git_libgit2_opts() with GIT_OPT_GET_TEMPLATE_PATH and GIT_OPT_SET_TEMPLATE_PATH
|
|
efc9e670
|
2013-09-17T03:45:35
|
|
Merge pull request #1856 from libgit2/cmn/no-orphans
No such thing as an orphan branch
|
|
605da51a
|
2013-09-17T09:50:30
|
|
No such thing as an orphan branch
Unfortunately git-core uses the term "unborn branch" and "orphan
branch" interchangeably. However, "orphan" is only really there for
the checkout command, which has the `--orphan` option so it doesn't
actually create the branch.
Branches never have parents, so the distinction of a branch with no
parents is odd to begin with. Crucially, the error messages deal with
unborn branches, so let's use that.
|
|
b622aabe
|
2013-08-09T13:14:06
|
|
Add a wrapper to provide the libssh2 error message
|
|
f2df503b
|
2013-09-14T18:22:16
|
|
git_clone supports optional init_options
|
|
6c38e60a
|
2013-09-10T16:55:58
|
|
Merge pull request #1838 from libgit2/cmn/first-parent
revwalk: allow simplifying by first-parent
|
|
15f7b9b8
|
2013-09-08T00:52:26
|
|
revwalk: allow simplifying by first-parent
When enabled, only the first parent of each commit will be queued,
enabling a simple way of using first-parent simplification.
|
|
f313843c
|
2013-09-09T13:53:22
|
|
fixing headers with bad values for objective-c
|
|
e0b4a8ac
|
2013-09-09T10:30:31
|
|
Merge pull request #1842 from uh-sem-blee/development
fixes issues with objective-git
|
|
4dfe3820
|
2013-09-09T10:24:48
|
|
Comment updates
|
|
917e5fa9
|
2013-09-08T18:31:56
|
|
fixes issues with objective-git
|
|
031f3f80
|
2013-09-07T22:39:05
|
|
odb: Error when streaming in too [few|many] bytes
|
|
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.
|
|
e9853592
|
2013-09-04T06:20:36
|
|
Merge pull request #1817 from libgit2/ntk/fix/backend/honor_refresh_capabilities
Of backends and refreshers...
|
|
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).
|
|
6208bd49
|
2013-09-03T12:29:18
|
|
Merge pull request #1804 from ethomson/rewrites
Minor changes for rewrites
|
|
ac2e7dc6
|
2013-09-01T08:40:48
|
|
Merge pull request #1820 from linquize/git_oid_streq
Update documentation of git_oid_streq to remove outdated error code
|
|
d45e9480
|
2013-08-31T18:22:50
|
|
oid: git_oid_shorten_add() sets GITERR_INVALID when OID set is full
|
|
e68938e0
|
2013-08-31T18:19:44
|
|
Update documentation of git_oid_streq to remove outdated error code
|
|
dbecec37
|
2013-08-28T09:38:14
|
|
Merge pull request #1805 from libgit2/threading-packed-load
Thread safety for the refdb_fs
|
|
b2d3efcb
|
2013-08-28T09:31:32
|
|
Some documentation improvements
|
|
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".
|
|
b8b22d77
|
2013-08-28T06:04:51
|
|
Merge pull request #1772 from libgit2/config-iter
Configuration iterators redux
|
|
504850cd
|
2013-08-25T15:59:50
|
|
refs: add git_reference_is_tag
|
|
32614440
|
2013-08-25T17:01:04
|
|
push: small documentation fix
|
|
67c177ef
|
2013-08-19T11:42:50
|
|
Don't expose git_hash_ctx since it's internal
And doing so makes the mingw build choke.
|
|
520287f6
|
2013-08-19T02:17:00
|
|
Merge pull request #1785 from libgit2/cmn/odb-hash-frontend
odb: move hashing to the frontend for streaming
|
|
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.
|
|
7a3764be
|
2013-08-17T01:55:52
|
|
odb: document git_odb_stream
Clarify the role of each function and in particular mention that there
is no need for the backend or stream to worry about the object's id,
as it will be given when `finalize_write` is called.
|
|
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).
|
|
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".
|
|
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.
|
|
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.
|
|
7affc2f7
|
2013-08-11T23:30:47
|
|
Include username in each credential type
Key-based authentication also needs an username, so include it in each
one.
Also stop assuming a default username of "git" in the ssh transport
which has no business making such a decision.
|
|
54f3a572
|
2013-08-09T10:29:11
|
|
config: introduce a regex-filtering iterator
|
|
5880962d
|
2013-08-09T09:05:19
|
|
config: introduce _iterator_new()
As the name suggests, it iterates over all the entries
|
|
fbb6c0c8
|
2013-08-09T09:35:23
|
|
Merge pull request #1764 from ethomson/status_renames_from_rewrites
Add rename from rewrites to status
|
|
1e96c9d5
|
2013-08-08T20:47:06
|
|
config: add _next() and _iterator_free()
Make it look like the refs iterator API.
|
|
99dfb538
|
2013-08-08T17:57:59
|
|
config: working multivar iterator
Implement the foreach version as a wrapper around the iterator.
|
|
5e96f316
|
2013-08-08T08:54:38
|
|
Merge pull request #1738 from libgit2/diff-patch-content-size
Add API for getting at git_diff_patch->content_size
|
|
cca5df63
|
2013-08-08T16:59:39
|
|
config: hopefully get the iterator to work on multivars
|
|
3a7ffc29
|
2013-08-08T16:18:07
|
|
config: initial multivar iterator
|
|
eba73992
|
2013-08-08T14:39:32
|
|
config: move next() and free() into the iterator
Like we have in the references iterator, next and free belong in the
iterator itself.
|
|
4efa3290
|
2013-08-08T13:41:18
|
|
config: get_multivar -> get_multivar_foreach
The plain function will return an iterator, so move this one out of
the way.
|
|
4d588d97
|
2013-08-08T11:24:47
|
|
Don't typedef a pointer
Make the iterator structure opaque and make sure it compiles.
|
|
a603c191
|
2013-03-18T21:02:36
|
|
replaced foreach() with non callback based iterations in git_config_backend
new functions in struct git_config_backend:
* iterator_new(...)
* iterator_free(...)
* next(...)
The old callback based foreach style can still be used with `git_config_backend_foreach_match`
|
|
437224b4
|
2013-08-05T21:46:32
|
|
More tests for ambiguous OIDs across packs
The test coverage for ambiguous OIDs was pretty thin. This adds
a bunch of new objects both in packs, across packs, and loose that
match to 8 characters so that we can test various cases of
ambiguous lookups.
|
|
e38f0d69
|
2013-08-05T14:06:41
|
|
Add rename from rewrites to status
In git_diff_paired_foreach, temporarily resort the
index->workdir diff list by index path so that we can
track a rename in the workdir from head->index->workdir.
|
|
9b7d02ff
|
2013-08-05T10:53:39
|
|
Update submodule documentation
Fixes #1762
|
|
eb1c1707
|
2013-07-23T15:45:58
|
|
Restore GIT_DIFF_LINE_BINARY usage
This restores the usage of GIT_DIFF_LINE_BINARY for the diff
output line that reads "Binary files x and y differ" so that it
can be optionally colorized independently of the file header.
|
|
197b8966
|
2013-07-23T14:34:31
|
|
Add hunk/file headers to git_diff_patch_size
This allows git_diff_patch_size to account for hunk headers and
file headers in the returned size. This required some refactoring
of the code that is used to print file headers so that it could be
invoked by the git_diff_patch_size API.
Also this increases the test coverage and fixes an off-by-one bug
in the size calculation when newline changes happen at the end of
the file.
|
|
64061d4a
|
2013-07-23T10:51:14
|
|
remote: fix git_remote_download() documentation
The description of what the function does hasn't been true for quite a
while. Change it to reflect the way it currently works.
While here, remove an even older comment about missing features that
have been implemented.
|
|
c05a55b0
|
2013-07-23T09:40:19
|
|
Clean up some documentation
clang's docparser highlighted these.
|
|
b4a4cf24
|
2013-07-22T16:07:56
|
|
Add git_diff_patch_size() API
This adds a new API to get the size in bytes of the diffs in a
git_diff_patch object.
|
|
51b0397a
|
2013-07-15T23:40:57
|
|
Small grammar fix in docs
|
|
85e1eded
|
2013-07-15T16:31:25
|
|
Add `git_remote_owner`
|
|
960431c3
|
2013-07-14T17:26:24
|
|
Fixes return type documentation
|
|
d70ce9bd
|
2013-07-10T15:38:57
|
|
Clarify docs for git_status_file
|
|
f9775a37
|
2013-06-29T23:22:31
|
|
Add ignore_submodules to diff options
This adds correct support for an equivalent to --ignore-submodules
in diff, where an actual ignore value can be passed to diff to
override the per submodule settings in the configuration.
This required tweaking the constants for ignore values so that
zero would not be used and could represent an unset option to the
diff. This was an opportunity to move the submodule values into
include/git2/types.h and to rename the poorly named DEFAULT values
for ignore and update constants to RESET instead.
Now the GIT_DIFF_IGNORE_SUBMODULES flag is exactly the same as
setting the ignore_submodules option to GIT_SUBMODULE_IGNORE_ALL
(which is actually a minor change from the old behavior in that
submodules will now be treated as UNMODIFIED deltas instead of
being left out totally - if you set GIT_DIFF_INCLUDE_UNMODIFIED).
This includes tests for the various new settings.
|