| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When walking backwards and marking parents uninteresting, make sure we
detect when the list of commits we have left has run out of
uninteresting commits so we can stop marking commits as
uninteresting. Failing to do so can mean that we walk the whole history
marking everything uninteresting, which eats up time, CPU and IO for
with useless work.
While pre-marking does look for this, we still need to check during the
main traversal as there are setups for which pre-marking does not leave
enough information in the commits. This can happen if we push a commit
and hide its parent.
|
|\
| |
| | |
Make sure to pack referenced objects for non-branches
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When we insert e.g. a tag or tagged object into the packfile, we must
make sure to insert any referenced objects as well, or we will have
broken links.
Use the recursive version of packfile insertion to make sure we send
over not just the tagged object but also the objects it references.
|
| |
| |
| |
| |
| | |
Don't use the full path, as that's not what we are asserting does not
exist, but just the subpath we were looking up.
|
| |
| |
| |
| |
| |
| | |
This function recursively inserts the given object and any referenced
ones. It can be thought of as a more general version of the functions to
insert a commit or tree.
|
|\ \
| | |
| | | |
If work_dir is not specified, use repo_dir to test if symlink is supported
|
| | | |
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
GIT_UNUSED() macro generates code therefore it should be used after
variable declarations.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The regcomp function returns a non-zero value if compilation of
a regular expression fails. In most places we only check for
negative values, but positive values indicate an error, as well.
Fix this tree-wide, fixing a segmentation fault when calling
git_config_iterator_glob_new with an invalid regexp.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
When no reference names could be found we did error out when trying to describe
a commit. This is wrong, though, when the option to fall back to a commit's
object ID is set.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Clear temporary buffer when filtering
|
| | | |
| | | |
| | | |
| | | |
| | | | |
If we are using a temporary buffer for filtering, be sure to clear
it before using it, in case the file that we are filtering is empty.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Add a custom param to git_smart_subtransport_definition
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The smart transport has already take the payload param. For the
sub transport a payload param is useful for the implementer.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
WinHTTP for MinGW
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
note: use a git_buf to return the default namespace
|
| | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The caller has otherwise no way to know how long the string will be
allocated or ability to free it.
This fixes #2944.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
checkout: report correct invalid path
|
| | | | | | | |
|
| |_|_|_|/ /
|/| | | | |
| | | | | |
| | | | | |
| | | | | | |
In case of a bad url or other error during the connection setup, we
close the stream via free.
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
win32 resource: allow custom comments field in DLL
|
| | |_|_|_|/
| |/| | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Allow merges of files (and trees) with whitespace problems/fixes
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | |_|/ /
| |/| | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Update tips fixes
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The current implementation does not set 'fire_callback' back to 0 for failed updates so the callback still fires.
Instead of adding yet another condition check to set 'fire_callback' to 0 if needed, considering this function should be a no-op for failed updates anyway, the best fix is to simplify its logic to check upfront if the update is a failed one.
|
|\ \ \ \ \ \ |
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
A repository can have multiple "reserved names" now, not just
a single "short name" for the repository folder itself. Refactor
to include a git_repository__reserved_names that returns all the
reserved names for a repository.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
jeffhostetler/jeffhostetler/perf_merge_lazy_binary_check
PERF: In MERGE, lazily compute is_binary
|
| | |_|/ / /
| |/| | | | |
|
| |_|_|/ /
|/| | | |
| | | | |
| | | | |
| | | | | |
Otherwise, bailing out early when ls_to_vector() fails accesses
uninitialized memory.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Add annotated versions of ref-modying functions
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This extra constructor will be useful for the annotated versions of
ref-modifying functions, as it allows us to create a commit with the
extended sha syntax which was used to retrieve it.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We do not always want to put the id directly into the reflog, but we
want to speicfy what a user typed. For this use-case we provide
annotated version of a few functions which let the caller specify what
user-friendly name was used when asking for the operation.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
[WIP] Smarter pack-building
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently we use the most naïve and inefficient method for figuring out
which objects to send to the remote whereby we end up trying to insert
subdirs which have not changed multiple times.
Instead, make use of the packbuilder's built-in more efficient method
which uses the walk to feed the object list and avoids inserting an
object and its descendants.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Most use-cases for the object packer communicate in terms of commits
which each side has. We already have an object to specify this
relationship between commits, namely git_revwalk.
By knowing which commits we want to pack and which the other side
already has, we can perform similar optimisations to git, by marking
each tree as interesting or uninteresting only once, and not sending
those trees which we know the other side has.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Keep the definitions in the headers, while putting the declarations in
the C files. Putting the function definitions in headers causes
them to be duplicated if you include two headers with them.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Don't ask for a stream's certificate unless it's encrypted
|