|
fd8126e4
|
2014-09-30T08:54:52
|
|
describe: implement describing the workdir
When we describe the workdir, we perform a describe on HEAD and then
check to see if the worktree is dirty. If it is and we have a suffix
string, we append that to the buffer.
|
|
3b6534b8
|
2014-09-30T07:19:14
|
|
describe: split into gather and format steps
Instead of printing out to the buffer inside the information-gathering
phase, write the data to a intermediate result structure.
This allows us to split the options into gathering options and
formatting options, simplifying the gathering code.
|
|
1f501a08
|
2014-09-30T04:58:02
|
|
describe: rename _object() to _commit()
We don't describe arbitrary object, so let's give it the name of the one
object type we accept.
|
|
af6cc38f
|
2014-09-30T04:38:05
|
|
Merge remote-tracking branch 'upstream/master' into cmn/describe
|
|
1312f87b
|
2014-09-17T14:56:39
|
|
Merge pull request #2464 from libgit2/cmn/host-cert-info
Provide a callback for certificate validation
|
|
1e0aa105
|
2014-09-16T03:22:09
|
|
ssh: expose both hashes
The user may have the data hashed as MD5 or SHA-1, so we should provide
both types for consumption.
|
|
286369a8
|
2014-09-16T02:27:16
|
|
ssh: provide our own types for host key lengths
Instead of using the libssh2 defines, provide our own, which eases usage
as we do not need to check whether libgit2 was built with libssh2 or not.
|
|
0782fc43
|
2014-09-16T01:47:30
|
|
net: use only structs to pass information about cert
Instead of spreading the data in function arguments, some of which
aren't used for ssh and having a struct only for ssh, use a struct for
both, using a common parent to pass to the callback.
|
|
0fef3899
|
2014-09-16T01:25:53
|
|
Merge remote-tracking branch 'upstream/master' into cmn/host-cert-info
|
|
41698f22
|
2014-09-11T10:04:05
|
|
net: remove support for outright ignoring certificates
This option make it easy to ignore anything about the server we're
connecting to, which is bad security practice. This was necessary as we
didn't use to expose detailed information about the certificate, but now
that we do, we should get rid of this.
If the user wants to ignore everything, they can still provide a
callback which ignores all the information passed.
|
|
2aee4642
|
2014-08-31T23:16:19
|
|
transport: move the cert type enum to types.h
This should make the mingw compiler happy.
|
|
17491f6e
|
2014-08-29T17:18:23
|
|
transport: always call the certificate check callback
We should let the user decide whether to cancel the connection or not
regardless of whether our checks have decided that the certificate is
fine. We provide our own assessment to the callback to let the user fall
back to our checks if they so desire.
|
|
ec1ce458
|
2014-08-10T17:06:53
|
|
http: send the DER-encoded cert to the callback
Instead of the parsed data, we can ask OpenSSL to give us the
DER-encoded version of the certificate, which the user can then parse
and validate.
|
|
9b940586
|
2014-07-04T12:45:43
|
|
Provide a callback for certificate validation
If the certificate validation fails (or always in the case of ssh),
let the user decide whether to allow the connection.
The data structure passed to the user is the native certificate
information from the underlying implementation, namely OpenSSL or
WinHTTP.
|
|
1fbeb2f0
|
2014-09-15T21:59:23
|
|
Fix attribute lookup in index for bare repos
When using a bare repo with an index, libgit2 attempts to read
files from the index. It caches those files based on the path
to the file, specifically the path to the directory that contains
the file.
If there is no working directory, we use `git_path_dirname_r` to
get the path to the containing directory. However, for the
`.gitattributes` file in the root of the repository, this ends up
normalizing the containing path to `"."` instead of the empty
string and the lookup the `.gitattributes` data fails.
This adds a test of attribute lookups on bare repos and also
fixes the problem by simply rewriting `"."` to be `""`.
|
|
89e05e2a
|
2014-09-03T12:50:44
|
|
Merge pull request #2543 from libgit2/cmn/known-transports
Clean up transport lookup
|
|
bc737620
|
2014-08-20T10:24:41
|
|
Introduce option to use relative paths for repository work directory
Teach git_repository_init_ext to use relative paths for the gitlink
to the work directory. This is used when creating a sub repository
where the sub repository resides in the parent repository's
.git directory.
|
|
ba67c075
|
2014-08-31T17:16:40
|
|
remote: get rid of git_remote_valid_url()
It does the same as git_remote_supported_url() but has a name which
implies we'd check the URL for correctness while we're simply looking at
the scheme and looking it up in our lists.
While here, fix up the tests so we check all the combination of what's
supported.
|
|
46a13f32
|
2014-08-29T18:19:56
|
|
Merge pull request #2481 from libgit2/cmn/oidarray
merge: expose multiple merge bases
|
|
6a0d2b43
|
2014-08-27T15:09:07
|
|
Merge remote-tracking branch 'upstream/master' into cmn/ssh-retry
|
|
d28b2b7a
|
2014-08-18T15:18:59
|
|
Merge pull request #2528 from libgit2/vmg/tostr_s
Export `git_oid_tostr_s` instead of `_allocfmt`
|
|
4ca0b566
|
2014-08-18T12:41:06
|
|
oid: Export `git_oid_tostr_s` instead of `_allocfmt`
The old `allocfmt` is of no use to callers, as they are not able to free
the returned buffer. Export a new API that returns a static string that
doesn't need to be freed.
|
|
c180c065
|
2014-07-09T17:58:39
|
|
Custom transport: minor cleanups
* Move the transport registration mechanisms into a new header under
'sys/' because this is advanced stuff.
* Remove the 'priority' argument from the registration as it adds
unnecessary complexity. (Since transports cannot decline to operate,
only the highest priority transport is ever executed.) Users who
require per-priority transports can implement that in their custom
transport themselves.
* Simplify registration further by taking a scheme (eg "http") instead
of a prefix (eg "http://").
|
|
7db0e6ee
|
2014-07-18T16:00:21
|
|
merge: expose multiple merge bases
We always calculate multiple merge bases, but up to now we had only
exposed the "best" merge base.
Introduce git_oidarray which analogously to git_strarray lets us return
multiple ids.
|
|
243db06c
|
2014-07-23T07:57:20
|
|
Merge pull request #2484 from libgit2/fix-git-status-list-new-unreadable-folder
Fix git status list new unreadable folder
|
|
0ba4dca5
|
2014-07-22T10:40:23
|
|
git_cherry_pick -> git_cherrypick
|
|
7d0ab0fa
|
2014-07-22T15:08:24
|
|
Merge remote-tracking branch 'origin/master' into fix-git-status-list-new-unreadable-folder
|
|
35b1471f
|
2014-07-22T11:15:33
|
|
Move the UNREADABLE enums to the correct group.
|
|
b3af2d80
|
2014-07-16T13:34:25
|
|
Just put it all in buffer.
|
|
df4cba0f
|
2014-07-15T17:27:58
|
|
Export git_buf_text_is_binary and git_buf_text_contains_nul.
So that users don’t need to implement binary detection themselves.
|
|
44cfb6f3
|
2014-07-11T16:49:23
|
|
Merge pull request #2463 from libgit2/cmn/ssh-factory-for-paths
ssh: provide a factory function for setting ssh paths
|
|
eb5f0346
|
2014-07-11T12:22:48
|
|
checkout: fix docs formatting for the options
|
|
4edd1a03
|
2014-07-10T19:17:34
|
|
Merge remote-tracking branch 'origin/development' into fix-git-status-list-new-unreadable-folder
|
|
18eb6ec8
|
2014-07-08T09:56:16
|
|
Documentation fixes
Fixup git_attr_value's comment to be recognised as documentation, and
include the definitions needed for clang to parse reset.h such that
it shows up in the documentation.
This fixes #2430.
|
|
d4256ed5
|
2014-07-04T10:00:39
|
|
ssh: provide a factory function for setting ssh paths
git allows you to set which paths to use for the git server programs
when connecting over ssh; and we want to provide something similar.
We do this by providing a factory function which can be set as the
remote's transport callback which will set the given paths upon
creation.
|
|
268dafa2
|
2014-07-03T20:19:16
|
|
Fix git_cred_ssh_interactive_callback signature
|
|
cb6e68c7
|
2014-07-02T16:45:02
|
|
Merge pull request #2449 from libgit2/cmn/maint-21
Maint fixes for ssl initing and ssh exposure
|
|
6812afaf
|
2014-06-30T21:36:38
|
|
clone: remote git_clone_into{,_local} from the public API
As git_clone now has callbacks to configure the details of the
repository and remote, remove the lower-level functions from the public
API, as they lack some of the logic from git_clone proper.
|
|
d58a64e9
|
2014-06-30T20:55:32
|
|
clone: add a callback for repository creation
Analogously to the remote creation callback, provide a way for the user
of git_clone() to create the repository with whichever options they
desire via callback.
|
|
00b8c216
|
2014-06-30T23:18:37
|
|
ssh: always declare the libssh2 types
This lets a user decide they do want to use keyboard-interactive after
they've compiled.
|
|
eac63e67
|
2014-06-30T10:03:36
|
|
ssh: create the right callback signature based on build options
When linking against libssh2, create the transport.h such that it
contains its definition for custom crypto and keyboard-interactive
callbacks.
If we don't link against libssh2, create an equivalent signature which
has void pointers instead of pointers to libssh2 structures.
This would be one way to fix #2438.
|
|
1697cd6f
|
2014-06-25T13:20:27
|
|
Improvements to git_transport extensibility
git_remote_set_transport now takes a transport factory rather than a transport
git_clone_options now allows the caller to specify a remote creation callback
|
|
d1c281a5
|
2014-06-25T16:24:26
|
|
cred: add convenience function to get the username
Since each cred defines the username on their own, introduce
git_cred__username to retrieve the username pointer from them.
|
|
54da6958
|
2014-06-25T15:41:01
|
|
cred: introduce username-only cred
This exists as ssh needs to know about the username to use before it can
query for the supported authentication methods.
|
|
8873728f
|
2014-06-16T19:10:04
|
|
Introduce GIT_EAUTH
Introduce this error code to signal an authentication failure.
|
|
4e813a8b
|
2014-06-25T09:11:07
|
|
Export git_revert_commit
|
|
5e37874d
|
2014-06-24T17:51:45
|
|
Merge remote-tracking branch 'upstream/cmn/treebuilder-perf'
|
|
76f76162
|
2014-06-11T21:14:45
|
|
remote: update documentation
Add docs for git_clone_local_t and move the docs for the
git_clone_options to each field.
|
|
978fbb4c
|
2014-06-09T22:45:23
|
|
treebuilder: don't keep removed entries around
If the user wants to keep a copy for themselves, they should make a
copy. It adds unnecessary complexity to make sure the returned entries
are valid until the builder is cleared.
|
|
4d3f1f97
|
2014-06-09T04:38:22
|
|
treebuilder: use a map instead of vector to store the entries
Finding a filename in a vector means we need to resort it every time we
want to read from it, which includes every time we want to write to it
as well, as we want to find duplicate keys.
A hash-map fits what we want to do much more accurately, as we do not
care about sorting, but just the particular filename.
We still keep removed entries around, as the interface let you assume
they were going to be around until the treebuilder is cleared or freed,
but in this case that involves an append to a vector in the filter case,
which can now fail.
The only time we care about sorting is when we write out the tree, so
let's make that the only time we do any sorting.
|
|
17fbf852
|
2014-06-10T03:53:26
|
|
pathspec: use C guards in header
|
|
281da004
|
2014-06-09T19:35:41
|
|
remote: fix rename docs
|
|
4fb32a44
|
2014-06-08T20:01:02
|
|
Bump version to 0.21.0
Bump library version to 0.21.0 and SONAME to 21
|
|
99807672
|
2014-06-08T19:42:54
|
|
Change SOVERSION at API breaks
Since the SOVERSION doesn't need to follow the library's version and
simply needs to be monotonically increasing whenever we release
something that breaks the ABI, we can set some number and allow multiple
versions of the library to be installed side-by-side.
We start here with the minor version as that's what we release for now,
and it allows to backport this change to earlier versions.
|
|
231f350d
|
2014-06-06T22:55:34
|
|
remote: don't free the remote on delete
This was a bad idea. Don't free except in the free function.
|
|
72bca13e
|
2014-06-06T16:33:54
|
|
remote: return problem refspecs instead of using a callback
There is no reason why we need to use a callback here. A string array
fits better with the usage, as this is not an event and we don't need
anything from the user.
|
|
9e2d2f30
|
2014-06-04T15:41:48
|
|
Whitespace wibbles.
|
|
dc49e1b5
|
2014-06-04T15:36:28
|
|
Merge remote-tracking branch 'origin/development' into fix-git-status-list-new-unreadable-folder
Conflicts:
include/git2/diff.h
|
|
7b491a7d
|
2014-06-03T17:50:00
|
|
GIT_DIFF_INCLUDE_UNREADABLE_AS_UNTRACKED
|
|
79d5b5c9
|
2014-06-03T17:42:52
|
|
Add GIT_STATUS_OPT_INCLUDE_UNREADABLE_AS_UNTRACKED
and a (failing) test for it.
|
|
dedfc734
|
2014-06-02T19:21:24
|
|
index: split GIT_IDXENTRY into two flag enums
The documentation has shown this as a single enum for a long time. These
should in fact be two enums. One with the bits for the flags and another
with the bits for the extended flags.
|
|
11e2665e
|
2014-06-02T18:53:32
|
|
Formatting fixes for the docs
These are some issues I found while playing around with the new parser
for docurium.
|
|
66271925
|
2014-05-30T16:21:49
|
|
Add GIT_STATUS_OPT_INCLUDE_UNREADABLE
|
|
a777fc37
|
2014-05-30T16:21:13
|
|
Remove GIT_FILEMODE_NEW as it's unused.
And use 0 for GIT_FILEMODE_UNREADABLE.
|
|
31c55152
|
2014-05-29T14:50:57
|
|
Merge pull request #2011 from libgit2/cmn/clone-local
Local clone
|
|
fda73bc5
|
2014-05-28T22:57:21
|
|
[Blob] Update documentation for is_binary.
filter.h tells me that we check the first 8000 bytes.
|
|
2614819c
|
2014-05-28T11:28:57
|
|
clone: allow for linking in local clone
If requested, git_clone_local_into() will try to link the object files
instead of copying them.
This only works on non-Windows (since it doesn't have this) when both
are on the same filesystem (which are unix semantics).
|
|
c1dbfcbb
|
2014-05-28T10:07:23
|
|
clone: add flag not to link
|
|
121b2673
|
2013-12-23T11:12:31
|
|
clone: add flags to override whether to perform a local clone
|
|
4386d80b
|
2013-12-21T17:18:21
|
|
clone: perform a "local clone" when given a local path
When git is given such a path, it will perform a "local clone",
bypassing the git-aware protocol and simply copying over all objects
that exist in the source.
Copy this behaviour when given a local path.
|
|
eff531e1
|
2014-05-27T20:58:20
|
|
Modify GIT_MERGE_CONFIG -> GIT_MERGE_PREFERENCE
|
|
a3622ba6
|
2014-05-16T13:54:40
|
|
Move GIT_MERGE_CONFIG_* to its own enum
|
|
d362093f
|
2014-05-08T15:41:36
|
|
Introduce GIT_MERGE_CONFIG_* for merge.ff settings
git_merge_analysis will now return GIT_MERGE_CONFIG_NO_FASTFORWARD
when merge.ff=false and GIT_MERGE_CONFIG_FASTFORWARD_ONLY when
merge.ff=true
|
|
31b0cb51
|
2014-05-22T17:16:21
|
|
Fixed miscellaneous documentation errors.
|
|
7c4bbbf4
|
2014-05-23T00:27:34
|
|
Try a value for UNREADABLE that won't get masked out?!
|
|
86c9d3da
|
2014-05-21T22:54:34
|
|
Return GIT_FILEMODE_UNREADABLE for files that fail to stat.
|
|
d22db24f
|
2014-05-21T09:32:35
|
|
remote: add api to guess the remote's default branch
If the remote supports the symref protocol extension, then we return
that, otherwise we guess with git's rules.
|
|
306475eb
|
2014-05-20T09:55:26
|
|
remote: expose the remote's symref mappings
Add a symref_target field to git_remote_head to expose the symref
mappings to the user.
|
|
61bef72d
|
2014-05-20T23:57:40
|
|
Start adding GIT_DELTA_UNREADABLE and GIT_STATUS_WT_UNREADABLE.
|
|
90553479
|
2014-05-20T17:40:28
|
|
Rename GIT_ENOACCESS -> GIT_EUNREADABLE
|
|
49e369b2
|
2014-05-18T10:06:49
|
|
message: don't assume the comment char
The comment char is configurable and we need to provide a way for the
user to specify which comment char they chose for their message.
|
|
228272ef
|
2014-05-16T11:56:37
|
|
Merge pull request #2313 from libgit2/cmn/remote-delete
Remote deletion
|
|
158c8ba1
|
2014-05-15T16:54:46
|
|
Return a specific error for EACCES.
|
|
b1914c36
|
2014-05-12T10:24:46
|
|
Minor fixes for warnings and error propagation
|
|
d2c4d1c6
|
2014-05-12T10:04:52
|
|
Merge pull request #2188 from libgit2/cmn/config-snapshot
Configuration snapshotting
|
|
45c53eb6
|
2014-05-08T10:46:04
|
|
Use unsigned type for APIs with opt flag mask
|
|
ac99d86b
|
2014-05-07T11:34:32
|
|
repository: introduce a convenience config snapshot method
Accessing the repository's config and immediately taking a snapshot of
it is a common operation, so let's provide a convenience function for
it.
|
|
5269008c
|
2014-05-06T16:01:49
|
|
Add filter options and ALLOW_UNSAFE
Diff and status do not want core.safecrlf to actually raise an
error regardless of the setting, so this extends the filter API
with an additional options flags parameter and adds a flag so that
filters can be applied with GIT_FILTER_OPT_ALLOW_UNSAFE, indicating
that unsafe filter application should be downgraded from a failure
to a warning.
|
|
d2c16e9a
|
2014-05-02T15:15:43
|
|
Doc fixes
|
|
272b462d
|
2014-05-02T09:50:15
|
|
Merge pull request #2308 from libgit2/rb/diff-update-index-stat-cache
Reduce excessive OID calculation for diff and stat
|
|
9862ef8e
|
2014-05-02T09:42:07
|
|
Merge pull request #2310 from libgit2/cmn/commit-create-safe
commit: safer commit creation with reference update
|
|
bc91347b
|
2014-04-30T11:16:31
|
|
Fix remaining init_options inconsistencies
There were a couple of "init_opts()" functions a few more cases
of structure initialization that I somehow missed.
|
|
702efc89
|
2014-04-30T10:57:42
|
|
Make init_options fns use unsigned ints and macro
Use an unsigned int for the version and add a helper macro so the
code is simplified (and so the error message is a common string).
|
|
9c8ed499
|
2014-04-29T15:05:58
|
|
Remove trace / add git_diff_perfdata struct + api
|
|
7a2e56a3
|
2014-04-29T14:30:15
|
|
Get rid of redundant git_diff_options_init fn
Since git_diff_init_options was introduced, remove this old fn.
|
|
b23b112d
|
2014-04-29T11:29:49
|
|
Add payloads, bitmaps to trace API
This is a proposed adjustment to the trace APIs. This makes the
trace levels into a bitmask so that they can be selectively enabled
and adds a callback-level payload, plus a message-level payload.
This makes it easier for me to a GIT_TRACE_PERF callbacks that
are simply bypassed if the PERF level is not set.
|
|
cd424ad5
|
2014-04-28T16:39:53
|
|
Add GIT_STATUS_OPT_UPDATE_INDEX and use trace API
This adds an option to refresh the stat cache while generating
status. It also rips out the GIT_PERF stuff I had an makes use
of the trace API to keep statistics about what happens during diff.
|
|
94fb4aad
|
2014-04-28T14:48:41
|
|
Add diff option to update index stat cache
When diff is scanning the working directory, if it finds a file
where it is not sure if the index entry matches the working dir,
it will recalculate the OID (which is pretty expensive). This
adds a new flag to diff so that if the OID calculation finds that
the file actually has not changed (i.e. just the modified time was
altered or such), then it will refresh the stat cache in the index
so that future calls to diff will not have to check the oid again.
|
|
0fc8e1f6
|
2014-04-28T14:34:55
|
|
Lay groundwork for updating stat cache in diff
This reorganized the diff OID calculation to make it easier to
correctly update the stat cache during a diff once the flags to
do so are enabled.
This includes marking the path of a git_index_entry as const so
we can make a "fake" git_index_entry with a "const char *" path
and not get warnings. I was a little surprised at how unobtrusive
this change was, but I think it's probably a good thing.
|
|
40e48ea4
|
2013-11-15T15:36:37
|
|
remote: Introduce git_remote_delete()
|