| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
Handle describe options better
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Mount points
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
FindFirstFile will fail with INVALID_HANDLE_VALUE if there are no
children to the given path, which can happen if the given path is a
file (and obviously has no children) or if the given path is an empty
mount point. (Most directories have at least directory entries '.'
and '..', but ridiculously another volume mounted in another drive
letter's path space do not, and thus have nothing to enumerate.)
If FindFirstFile fails, check if this is a directory-like thing
(a mount point).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A reparse point that is an IO_REPARSE_TAG_MOUNT_POINT could be
a junction or an actual filesystem mount point. (Who knew?)
If it's the latter, its reparse point will report the actual
volume information \??\Volume{GUID}\ and we should not attempt
to dereference that further, instead readlink should report
EINVAL since it's not a symlink / junction and its original
path was canonical.
Yes, really.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx and https://stackoverflow.com/questions/6655410/why-doesnt-zd-printf-format-work-in-vs2010
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If there is a failure then cl_git_pass tries to get the libgit2
error, but p_... functions don't set that.
Also - trailing whitespace cleanup.
|
| |/
|/|
| |
| | |
FLAG_BITS only seems to be used internally
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An obvious place to fill the tree cache is on write-tree, as we're
guaranteed to be able to fill in the whole tree cache.
The way this commit does this is not the most efficient, as we read the
root tree from the odb instead of filling in the cache as we go along,
but it fills the cache such that successive operations (and persisting
the index to disk) will be able to take advantage of the cache, and it
reuses the code we already have for filling the cache.
Filling in the cache as we create the trees would require some
reallocation of the children vector, which is currently not possible
with out pool implementation. A different data structure would likely
allow us to perform this operation at a later date.
|
| |
| |
| |
| |
| | |
If e.g. the root tree is invalidated, we still want to write out
its children, since those may still have valid cache entries.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Keeping the cache around after read-tree is only one part of the
optimisation opportunities. In order to share the cache between program
instances, we need to write the TREE extension to the index.
Do so, taking the opportunity to rename 'entries' to 'entry_count' to
match the name given in the format description. The included test is
rather trivial, but works as a sanity check.
|
| |
| |
| |
| |
| | |
This wasn't used. We invalidate based on the full path, so we always go
down the tree, never up.
|
| |
| |
| |
| |
| |
| | |
When reading from a tree, we know what every tree is going to look like,
so we can fill in the tree cache completely, making use of the index for
modification of trees a lot quicker.
|
| |
| |
| |
| |
| |
| | |
This simplifies freeing the entries quite a bit; though there aren't
that many failure paths right now, introducing filling the cache from a
tree will introduce more. This makes sure not to leak memory on errors.
|
| | |
|
|\ \
| | |
| | | |
remote: accept a repository and remote name for deletion
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We don't need the remote loaded, and the function extracted both of
these from the git_remote in order to do its work, so let's remote a
step and not ask for the loaded remote at all.
This fixes #2390.
|
|\ \ \
| |_|/
|/| | |
[factor] Join typedef and struct definitions in single file.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Can read large file larger than 2GB on Win64
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix warnings in thread-utils.h when building without -DTHREADSAFE=ON
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The compiler was generating a bunch of warnings for
git_mutex_init and git_mutex_lock when GIT_THREADS
was not defined (i.e. when not using -DTHREADSAFE=ON).
Also remove an unused variable from tests/path/core.c.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Do not error out when fetching from second remote
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
branch is from another remote
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Add support for setting the SSL CA location
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This allows users to specify self-signed certificates, or to provide their
own certificate stores on limited platforms such as mobile phones.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Allow to propagate checkout callbacks to git HARD reset
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Provide host name to certificate_check_cb
|
| | |/ / / / / /
| |/| | | | | |
| | | | | | | |
| | | | | | | | |
Signed-off-by: Sven Strickroth <email@cs-ware.de>
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
New test files for the javascript diff driver.
|
| | | | | | | | | |
|
|\ \ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
Walk only as far as the common ancestors of uninteresting commits
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
This should have been included when implementing the feature but was
missed.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
If there have been no pushes, we can immediately return ITEROVER. If
there have been no hides, we must not run the uninteresting pre-mark
phase, as we do not want to hide anything and this would simply cause us
to spend time loading objects.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
This introduces a phase at the start of preparing a walk which pre-marks
uninteresting commits, but only up to the common ancestors.
We do this in a similar way to git, by walking down the history and
marking (which is what we used to do), but we keep a time-sorted
priority queue of commits and stop marking as soon as there are only
uninteresting commits in this queue.
This is a similar rule to the one used to find the merge-base. As we
keep inserting commits regardless of the uninteresting bit, if there are
only uninteresting commits in the queue, it means we've run out of
interesting commits in our walk, so we can stop.
The old mark_unintesting() logic is still in place, but that stops
walking if it finds an already-uninteresting commit, so it will stop on
the ones we've pre-marked; but keeping it allows us to also hide those
that are hidden via the callback.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
The old separation was due to the old merge-base finding, so it's no
longer necessary.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
These store merge-base information which is only valid for a single run.
|
| | | | | | | | | | |
|
|\ \ \ \ \ \ \ \ \ \
| |_|/ / / / / / / /
|/| | | | | | | | | |
Implement git-describe
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
The MinGW compiler does not like it when we declare a typedef twice.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
And implement the option init functions for this and the format options.
|
| | | | | | | | | | |
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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.
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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.
|