| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
When we ask for credentials, the user may choose to return EUSER to
indicate that an error has happened on its end and it wants to be given
back control.
We must therefore pass that back to the user instead of mentioning that
it was on_headers_complete() that returned an error code. Since we can,
we return the exact error code from the user (other than PASSTHROUGH)
since it doesn't cost anything, though using other error codes aren't
recommended.
|
|\
| |
| | |
curl: use the most secure auth method for the proxy
|
| |
| |
| |
| |
| |
| |
| | |
When curl uses a proxy, it will only use Basic unless we prompt it to
try to use the most secure on it has available.
This is something which git did recently, and it seems like a good idea.
|
|\ \
| | |
| | | |
Locking and transactional/atomic updates for config
|
| | |
| | |
| | |
| | |
| | | |
This makes the API for commiting or discarding changes the same as for
references.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This lock/unlock pair allows for the cller to lock a configuration file
to avoid concurrent operations.
It also allows for a transactional approach to updating a configuration
file. If multiple updates must be made atomically, they can be done
while the config is locked.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a configuration file is locked, any updates made to it will be done
to the in-memory copy of the file. This allows for multiple updates to
happen while we hold the lock, preventing races during complex
config-file manipulation.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of writing into the filebuf directly, make the functions to
write the modified config file write into a buffer which can then be
dumped into the lockfile for committing.
This allows us to re-use the same code for modifying a locked
configuration, as we can simply skip the last step of dumping the data
to disk.
|
|/
|
|
|
|
| |
When we're looking to update a tag, we can't stop if the tag auto-follow
rules don't say to update it. The tag might still match the refspec we
were given.
|
|
|
|
|
|
|
| |
With Visual Studio versions 2008 and older they ignore the full path to files and only check
the basename of the file to find a collision. Additionally, having duplicate basenames can break
other build tools like GYP.
This fixes https://github.com/libgit2/libgit2/issues/3356
|
|
|
|
|
| |
When an error state is an OOM, make sure that we treat is specially
and do not try to free it.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Instead of allocating a brand new buffer for each error string we want
to store, we can use a per-thread buffer to store the error string and
re-use the underlying storage. We already use the buffer to format the
string, so this mostly makes that more direct.
|
| |
| |
| |
| |
| |
| |
| | |
Allow restoring a previously captured oom error, by
detecting when the captured message pointer points to the
static oom error message. This means there is no need
to strdup the message in giterr_detach.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Error messages that are detached are assumed to be dynamically
allocated. Passing a pointer to the static oom error message
can cause an attempt to free the static buffer later. This change
checks if the oom error message is about to be detached and detaches
a copy instead.
|
|\ \
| | |
| | | |
filebuf: remove lockfile upon rename errors
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we have an error renaming the lockfile, we need to make sure
that we remove it upon cleanup. For this, we need to keep track of
whether we opened the file and whether the rename succeeded.
If we did create the lockfile but the rename did not succeed, we
remove the lockfile. This won't protect against all errors, but
the most common ones (target file is open) does get handled.
|
|\ \ \
| | | |
| | | | |
index: stage an unregistered submodule as well
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We previously added logic to `_add_bypath()` to update a submodule. Go
further and stage the submodule even if it's not registered to behave
like git.
|
|/ / /
| | |
| | |
| | |
| | | |
For such a path '/~/...' the leading '/' is stripped so the server will
get a path starting with '~' and correctly handle it.
|
|\ \ \
| | | |
| | | | |
Resolve documentation warnings
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Without this change, compiling with gcc and pedantic generates warning:
ISO C does not allow extra ‘;’ outside of a function.
|
|\ \ \ \
| | | | |
| | | | | |
iterator: skip over errors in diriter init
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
An error here will typically mean that the directory was removed between
the time we iterated the parent and the time we wanted to visit it in
which case we should ignore it.
Other kinds of errors such as permissions (or transient errors) also
better dealt with by pretending we didn't see it.
|
| |_|_|/
|/| | |
| | | | |
Fixes issue #3338
|
|\ \ \ \
| | | | |
| | | | | |
Normalize submodule urls before looking at them
|
| | | | |
| | | | |
| | | | |
| | | | | |
Extract the backslash-to-slash conversion into a helper function.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Our path functions expect to work with slashes, so convert a
path with backslashes into one with slashes at the top of
the function.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Allow adding a submodule through git_index_add_bypath
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Similarly to how git itself does it, allow the index update operation to
stage a change in a submodule's HEAD.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This also affects `git_index_add_bypath()` by providing a better error
message and a specific error code when a directory is passed.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
refdb: delete a ref's reflog upon deletion
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Removing a reflog upon ref deletion is something which only some
backends might wish to do. Backends which are database-backed may wish
to archive a reflog, log-based ones may not need to do anything.
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
filter: make sure to close the stream even on error
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | | |
When the stream list init or write fail, we must also make sure to close
the stream, as that's the function contract.
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
Make libgit2 work on Windows Vista again
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
(fixes issue #3316)
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|\ \ \ \
| |/ / / |
|
| |\ \ \
| | | | |
| | | | | |
Fix macro redefinition warning
|
| | | | | |
|
| |\ \ \ \
| | |_|_|/
| |/| | | |
List a submodule only once when the path matches a submodule in the index
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
If we get the path from the gitmodules file, look up the submodule we're
interested in by path, rather then by name. Otherwise we might get
duplicate results.
|
| |\ \ \
| | |_|/
| |/| | |
|
| | | |
| | | |
| | | |
| | | | |
The header src/cc-compat.h defines portable format specifiers PRIuZ, PRIdZ, and PRIxZ. The original report highlighted the need to use these specifiers in examples/network/fetch.c. For this commit, I checked all C source and header files not in deps/ and transitioned to the appropriate format specifier where appropriate.
|
| |\ \ \
| | | | |
| | | | | |
Clean up some warnings
|
| | | | | |
|
| | | | | |
|