| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Bring together all of the OpenSSL initialization to
git_threads_init() so it's together and doesn't need locks.
Moving it here also gives us libssh2 thread safety (when built against
openssl).
|
| |
|
|
|
|
| |
OpenSSL's tests init everything in the main thread, so let's do that.
|
|
|
|
|
|
|
|
| |
When using in a multithreaded context, OpenSSL needs to lock, and leaves
it up to application to provide said locks.
We were not doing this, and it's just luck that's kept us from crashing
up to now.
|
|
|
|
|
|
|
|
| |
The OpenSSL init functions are not reentrant, which means that running
multiple fetches in parallel can cause us to crash.
Use a mutex to init OpenSSL, and since we're adding this extra checks,
init it only once.
|
|\
| |
| | |
Remote rename fixes
|
| |
| |
| |
| |
| |
| |
| |
| | |
Tighten up which references we consider for renaming so we don't try to
rename unrelated ones and end up with unexplained references.
If there is a reference on the target namespace, git overwrites it, so
let's do the same.
|
| |
| |
| |
| |
| | |
When there is a reference in the target namespace, we should overwrite
it. Instead it gets a different name under the current code.
|
|\ \
| |/
|/| |
Update AUTHORS
|
|/
|
|
| |
Add me. :)
|
|\
| |
| | |
clone: re-use the local transport's path resolution
|
| |
| |
| |
| |
| |
| | |
Whe already worked out the kinks with the function used in the local
transport. Expose it and make use of it in the local clone method
instead of trying to work it out again.
|
|\ \
| |/
|/| |
Concurrent ref iterator access
|
| |
| |
| |
| |
| | |
This lets us work without worrying about what's happening but work on a
snapshot.
|
| |
| |
| |
| |
| | |
If we remove a reference while we're iterating through the packed refs,
the position in the iterator will be off.
|
|\ \
| | |
| | |
| | |
| | | |
arthurschreiber/arthur/set-error-when-no-remote-found
Remote: Set an error when a remote cannot be found.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Inside `git_remote_load`, the calls to `get_optional_config` use
`giterr_clear` to unset any errors that are set due to missing config
keys. If neither a fetch nor a push url config was found for a remote,
we should set an error again.
|
|\ \ \
| | | |
| | | | |
Documentation formatting fixes
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | |/
| |/|
| | |
| | |
| | | |
These are some issues I found while playing around with the new parser
for docurium.
|
|/ / |
|
|\ \
| | |
| | | |
remote: build up the list of refs to remove
|
|/ /
| |
| |
| |
| |
| | |
When removing the remote-tracking branches, build up the list and remove
in two steps, working around an issue with the iterator. Removing while
we're iterating over the refs can cause us to miss references.
|
|\ \
| | |
| | | |
Minor fixes to binary diff code
|
| | | |
|
|/ / |
|
|\ \
| |/
|/| |
Ignore core.safecrlf=warn until we have a warn infrastructure
|
|/ |
|
|\
| |
| |
| |
| | |
arthurschreiber/arthur/normalize-ref-names-on-creation
Respect core.precomposeunicode = true in more cases.
|
| |
| |
| |
| |
| |
| | |
This adds another assertion to ensure that the reference name inside
the git_reference struct returned by `git_branch_create` is returned as
precomposed if `core.precomposeunicode` is enabled.
|
| |
| |
| |
| |
| | |
This tests that decomposed branch names are correctly precomposed when
passed to `git_branch_move` and `core.precomposeunicode` is enabled.
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
| |
This fixes two issues I found when core.precomposeunicode is enabled:
* When creating a reference with a NFD string, the returned
git_reference would return this NFD string as the reference’s
name. But when looking up the reference later, the name would
then be returned as NFC string.
* Renaming a reference would not honor the core.precomposeunicode and
apply no normalization to the new reference name.
|
|
|
|
|
| |
The error would be uninitialized if we take a snapshot of a config with
no backends.
|
|\
| |
| | |
Add support for --author flag in example log implementation
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Local clone
|
| | |
| | |
| | |
| | |
| | | |
Assert the exact amount of links we expect. While there, check that a
plain git_clone() automatically chooses to link.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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).
|
| | |
| | |
| | |
| | |
| | | |
When passed the LINK_FILES flag, the recursive copy will hardlink files
instead of copying them.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A call like git_clone("./foo", "./foo1") writes origin's url as './foo',
which makes it unusable, as they're relative to different things.
Go with git's behaviour and store the realpath as the url.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| | | |
| | | | |
[Blob] Update documentation for is_binary.
|
|/ / /
| | |
| | | |
filter.h tells me that we check the first 8000 bytes.
|