| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Show progress during packing for the local transport
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is useful to send to the client while we're performing the work.
The reporting function has a force parameter which makes sure that we
do send out the message of 100% completed, even if this comes before the
next udpate window.
|
| |/ / /
| | | |
| | | |
| | | |
| | | | |
Set a callback for the packbuilder so we can send the sideband messages
to the caller, formatting them as git would.
|
|\ \ \ \
| | | | |
| | | | | |
odb: make the writestream's size a git_off_t
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Restricting files to size_t is a silly limitation. The loose backend
writes to a file directly, so there is no issue in using 63 bits for the
size.
We still assume that the header is going to fit in 64 bytes, which does
mean quite a bit smaller files due to the run-length encoding, but it's
still a much larger size than you would want Git to handle.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The interesting one is the notification macro, which was returning
directly on a soft-abort instead of going through the cleanup.
|
|\ \ \ \
| |_|/ /
|/| | | |
odb: reverse the default backend priorities
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We currently first look in the loose object dir and then in the packs
for objects. When performing operations on recent history this has a
higher likelihood of hitting, but when we deal with operations which
look further back into the past, we start spending a large amount of
time getting ENOTENT from `access`.
Reversing the priorities means that long-running operations can get to
their objects faster, as we can look at the index data we have in memory
(or rather mapped) to figure out whether we have an object, which is
faster than going out to the filesystem.
The packed backend already implements an optimistic read algorithm by
first looking at the packs we know about and only going out to disk to
referesh if the object is not found which means that in the case where
we do have the object (which will be in the majority for anything that
traverses the graph) we can avoid going to to disk entirely to determine
whether an object exists.
Operations which look at recent history may take a slight impact, but
these would be operations which look a lot less at object and thus take
less time regardless.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
We're down to simply having it be a call to create_internal() so let's
simply do that. The rest of the code is just a distraction.
|
| | |
| | |
| | |
| | |
| | | |
It has now become a no-op, so remove the function and all references to
it.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The base refspecs changing can be a cause of confusion as to what is the
current base refspec set and complicate saving the remote's
configuration.
Change `git_remote_add_{fetch,push}()` to update the configuration
instead of an instance.
This finally makes `git_remote_save()` a no-op, it will be removed in a
later commit.
|
| | |
| | |
| | |
| | |
| | | |
This is another option which we should not be keeping in the remote, but
is specific to each particular operation.
|
| | |
| | |
| | |
| | |
| | |
| | | |
While this will rarely be different from the default, having it in the
remote adds yet another setting it has to keep around and can affect its
behaviour. Move it to the options.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of having it set in a different place from every other callback,
put it the main structure. This removes some state from the remote and
makes it behave more like clone, where the constructors are passed via
the options.
|
| | |
| | |
| | |
| | |
| | | |
Add a prune setting in the fetch options to allow to fall back to the
configuration (the default) or to set it on or off.
|
| | |
| | |
| | |
| | |
| | |
| | | |
As a first step in removing the repository-saving logic, don't allow
chaning the url or push url from a remote object, but change the
configuration on the configuration immediately.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Having the setting be different from calling its actions was not a great
idea and made for the sake of the wrong convenience.
Instead of that, accept either fetch options, push options or the
callbacks when dealing with the remote. The fetch options are currently
only the callbacks, but more options will be moved from setters and
getters on the remote to the options.
This does mean passing the same struct along the different functions but
the typical use-case will only call git_remote_fetch() or
git_remote_push() and so won't notice much difference.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
The push object knows which remote it's associated with, and therefore
does not need to keep its own copy of the callbacks stored in the
remote.
Remove the copy and simply access the callbacks struct within the
remote.
|
|\ \
| | |
| | | |
Centralizing all IO buffer size values
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Allow the baseline to be specified as an index, so that users
need not write their index to a tree just to checkout with that
as the baseline.
|
| | |
|
|/ |
|
|\
| |
| | |
Adjusting stream buffer size to 64KB
|
| |
| |
| |
| | |
64K is optimal buffer size per https://technet.microsoft.com/en-us/library/cc938632.aspx
|
| | |
|
|\ \
| | |
| | | |
Configuration changes for handling multiple of the same sections
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When writing a configuration file, we want to take a lock on the
new file (eg, `config.lock`) before opening the configuration file
(`config`) for reading so that we can prevent somebody from changing
the contents underneath us.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When updating a configuration file, we want to copy the old data
from the file to preserve comments and funny whitespace, instead
of writing it in some "canonical" format. Thus, we keep a
pointer to the start of the line and the line length to preserve
these things we don't care to rewrite.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously we would try to be clever when writing the configuration
file and try to stop parsing (and simply copy the rest of the old
file) when we either found the value we were trying to write,
or when we left the section that value was in, the assumption being
that there was no more work to do.
Regrettably, you can have another section with the same name later
in the file, and we must cope with that gracefully, thus we read the
whole file in order to write a new file.
Now, writing a file looks even more than reading. Pull the config
parsing out into its own function that can be used by both reading
and writing the configuration.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When checking out with a case-insensitive working directory, we
want to change the case of items in the working directory to
reflect changes that occured in the checkout target. Diff now
has an option to break case-changing renames into delete/add.
|
| | | |
|
|/ /
| |
| |
| | |
This reverts commit 40d791545abfb3cb71553a27dc64129e1a9bec28.
|
|\ \
| | |
| | | |
Performance Improvements to Status on Windows
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using FindFirstFile and FindNextFile in win32 allows us to
use the directory information that is returned, instead of
us having to get the file attributes all over again, which
is a distinct cost savings on win32.
|