| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The overflow check in `read_reuc` tries to verify if the
`git__strtol32` parses an integer bigger than UINT_MAX. The `tmp`
variable is casted to an unsigned int for this and then checked
for being greater than UINT_MAX, which obviously can never be
true.
Fix this by instead fixing the `mode` field's size in `struct
git_index_reuc_entry` to `uint32_t`. We can now parse the int
with `git__strtol64`, which can never return a value bigger than
`UINT32_MAX`, and additionally checking if the returned value is
smaller than zero.
We do not need to handle overflows explicitly here, as
`git__strtol64` returns an error when the returned value would
overflow.
|
|/
|
|
|
| |
The `giterr_set_str` does not actually honor `GITERR_OS`. Remove
the documentation that claims that we do.
|
| |
|
| |
|
|\
| |
| | |
Filter registration
|
| | |
|
| |
| |
| |
| |
| |
| | |
We should be checking whether the object we're looking up is a commit,
and we should let the caller know whether the not-found return code
comes from a bad object type or just a missing signature.
|
| |
| |
| |
| |
| |
| | |
When performing an in-memory rebase, keep a single index for the
duration, so that callers have the expected index lifecycle and
do not hold on to an index that is free'd out from under them.
|
| |
| |
| |
| |
| |
| | |
Allow callers of rebase to specify custom merge options. This may
allow custom conflict resolution, or failing fast when conflicts
are detected.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduce the ability to rebase in-memory or in a bare repository.
When `rebase_options.inmemory` is specified, the resultant `git_rebase`
session will not be persisted to disk. Callers may still analyze
the rebase operations, resolve any conflicts against the in-memory
index and create the commits. Neither `HEAD` nor the working
directory will be updated during this process.
|
|\ \
| | |
| | | |
Introduce git_commit_extract_signature
|
| | |
| | |
| | |
| | |
| | |
| | | |
This returns the GPG signature for a commit and its contents without the
signature block, allowing for the verification of the commit's
signature.
|
| |/
|/|
| |
| |
| |
| |
| |
| | |
`git_merge_commits` and `git_merge` now *do* handle recursive base
building for criss-cross merges. Remove the documentation that says
that they do not.
This reverts commit 5e44d9bcb6d5b20922f49b1913723186f8ced8b5.
|
|\ \
| | |
| | | |
Export git_stash_apply_init_options
|
| |/ |
|
| | |
|
|/ |
|
|\
| |
| | |
Fix a couple function signatures
|
| | |
|
|/
|
| |
putting `0.` at the start of the line turns it into a numbered list.
|
|\
| |
| | |
Line count overflow in git_blame_hunk and git_blame__entry
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is not unreasonable to have versioned files with a line count
exceeding 2^16. Upon blaming such files we fail to correctly keep
track of the lines as `git_blame_hunk` stores them in `uint16_t`
fields.
Fix this by converting the line fields of `git_blame_hunk` to
`size_t`. Add test to verify behavior.
|
|\ \
| | |
| | | |
diff: include commit message when formatting patch
|
| | |
| | |
| | |
| | |
| | |
| | | |
When formatting a patch as email we do not include the commit's
message in the formatted patch output. Implement this and add a
test that verifies behavior.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
It is already possible to get a commit's summary with the
`git_commit_summary` function. It is not possible to get the
remaining part of the commit message, that is the commit
message's body.
Fix this by introducing a new function `git_commit_body`.
|
| | |
|
|/
|
|
|
|
| |
This fits with the style for the rest of the project, but more
importantly, makes life easier for bindings authors who auto-generate
code.
|
| |
|
|
|
|
|
| |
Add a simple recursive test - where multiple ancestors exist and
creating a virtual merge base from them would prevent a conflict.
|
| |
|
|
|
|
| |
These are not quite like their plain counterparts and require special handling.
|
|
|
|
|
|
| |
Allow users to set the `git_libgit2_opts` search path for the
`GIT_CONFIG_LEVEL_PROGRAMDATA`. Convert `GIT_CONFIG_LEVEL_PROGRAMDATA`
to `GIT_SYSDIR_PROGRAMDATA` for setting the configuration.
|
|\
| |
| | |
git_index_entry__init_from_stat: set nsec fields in entry stats
|
| |\ |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This allows the application to use their own TLS stream, regardless of
the capabilities of libgit2 itself.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
We should explicitly include the declaration of git_strarray
from "include/git2/sys/transport.h"
|
| | | |
|
|\ \ \
| | | |
| | | | |
inttypes.h is built-in header file since MSVC 2013
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The reason is that the types defined in libgit2's inttypes.h collide with system inttypes.h
3rd party library header files may directly reference MSVC's built-in inttypes.h
Fixes #3476
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Provide a new merge option, GIT_MERGE_TREE_FAIL_ON_CONFLICT, which
will stop on the first conflict and fail the merge operation with
GIT_EMERGECONFLICT.
|
|\ \ \
| | | |
| | | | |
config: add a ProgramData level
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This is where portable git stores the global configuration which we can
use to adhere to it even though git isn't quite installed on the system.
|
|/ / / |
|
|\ \ \
| |_|/
|/| | |
Preserve modes from a conflict in `git_index_insert`
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When we do not trust the on-disk mode, we use the mode of an existing
index entry. This allows us to preserve executable bits on platforms
that do not honor them on the filesystem.
If there is no stage 0 index entry, also look at conflicts to attempt
to answer this question: prefer the data from the 'ours' side, then
the 'theirs' side before falling back to the common ancestor.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As refdb and odb backends can be allocated by client code, libgit2
can’t know whether an alternative memory allocator was used, and thus
should not try to call `git__free` on those objects.
Instead, odb and refdb backend implementations must always provide
their own `free` functions to ensure memory gets freed correctly.
|
|\ \
| |/
|/| |
Include custom HTTP headers
|