summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | local: add clarification for non-bare push restrictionCarlos Martín Nieto2015-05-131-1/+4
| | | |
* | | | Merge pull request #3102 from libgit2/cmn/pack-objects-reportEdward Thomson2015-05-133-0/+58
|\ \ \ \ | | | | | | | | | | Show progress during packing for the local transport
| * | | | packbuilder: report progress during deltificationcmn/pack-objects-reportCarlos Martín Nieto2015-05-132-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | local: send the packbuilder progress via the sidebandCarlos Martín Nieto2015-05-131-0/+29
| |/ / / | | | | | | | | | | | | | | | | Set a callback for the packbuilder so we can send the sideband messages to the caller, formatting them as git would.
* | | | Merge pull request #3118 from libgit2/cmn/stream-sizeEdward Thomson2015-05-134-9/+15
|\ \ \ \ | | | | | | | | | | odb: make the writestream's size a git_off_t
| * | | | odb: make the writestream's size a git_off_tcmn/stream-sizeCarlos Martín Nieto2015-05-134-9/+15
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Fix a few leaksCarlos Martín Nieto2015-05-131-4/+8
| | | | | | | | | | | | | | | | | | | | The interesting one is the notification macro, which was returning directly on a soft-abort instead of going through the cleanup.
* | | | Merge pull request #3120 from libgit2/cmn/backends-prioEdward Thomson2015-05-131-3/+6
|\ \ \ \ | |_|/ / |/| | | odb: reverse the default backend priorities
| * | | odb: reverse the default backend prioritiescmn/backends-prioCarlos Martín Nieto2015-05-131-3/+6
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | push: free the update listCarlos Martín Nieto2015-05-131-0/+8
| | |
* | | remote: simplify anonymous creationCarlos Martín Nieto2015-05-131-8/+1
| | | | | | | | | | | | | | | 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.
* | | remote: remove git_remote_save()Carlos Martín Nieto2015-05-132-27/+0
| | | | | | | | | | | | | | | It has now become a no-op, so remove the function and all references to it.
* | | remote: remove live changing of refspecsCarlos Martín Nieto2015-05-132-33/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | remote: move the tagopt setting to the fetch optionsCarlos Martín Nieto2015-05-133-52/+71
| | | | | | | | | | | | | | | This is another option which we should not be keeping in the remote, but is specific to each particular operation.
* | | remote: move the update_fetchhead setting to the optionsCarlos Martín Nieto2015-05-133-22/+13
| | | | | | | | | | | | | | | | | | 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.
* | | remote: move the transport ctor to the callbacksCarlos Martín Nieto2015-05-132-24/+5
| | | | | | | | | | | | | | | | | | | | | 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.
* | | remote: add prune option to fetchCarlos Martín Nieto2015-05-131-1/+11
| | | | | | | | | | | | | | | 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.
* | | remote: remove url and pushurl from the save logicCarlos Martín Nieto2015-05-131-35/+53
| | | | | | | | | | | | | | | | | | 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.
* | | Remove the callbacks struct from the remoteCarlos Martín Nieto2015-05-1311-103/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | push: remove own copy of callbacksCarlos Martín Nieto2015-05-134-75/+14
|/ / | | | | | | | | | | | | | | | | 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.
* | Merge pull request #3111 from whoisj/centralizing-buffer-sizesCarlos Martín Nieto2015-05-127-9/+12
|\ \ | | | | | | Centralizing all IO buffer size values
| * | centralizing all IO buffer size valuesJ Wyman2015-05-117-9/+12
| |/
* | stash: propagate the error when writing a treeEdward Thomson2015-05-111-1/+1
| |
* | stash_apply: provide progress callbacksEdward Thomson2015-05-111-3/+23
| |
* | stash_apply: provide its own options structureEdward Thomson2015-05-111-28/+35
| |
* | stash apply: default to at least GIT_CHECKOUT_SAFEEdward Thomson2015-05-111-2/+3
| |
* | stash: return GIT_EMERGECONFLICT on merge conflictEdward Thomson2015-05-111-3/+1
| |
* | stash: refactor to use merge_iteratorsEdward Thomson2015-05-111-172/+93
| |
* | stash: ensure a reflog has entriesEdward Thomson2015-05-111-2/+2
| |
* | stash apply: check out a tree, not piecewiseEdward Thomson2015-05-111-32/+11
| |
* | stash: use git_commit_summary for a summaryEdward Thomson2015-05-111-12/+4
| |
* | index: introduce git_index_read_indexEdward Thomson2015-05-112-0/+100
| |
* | checkout: allow baseline to be specified as indexEdward Thomson2015-05-111-5/+14
| | | | | | | | | | | | 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.
* | merge: merge iteratorsEdward Thomson2015-05-112-24/+80
| |
* | Added git_stash_apply() and git_stash_pop() APIsPierre-Olivier Latour2015-05-111-0/+371
|/
* Merge pull request #3104 from whoisj/optimal-buffer-sizeCarlos Martín Nieto2015-05-091-1/+1
|\ | | | | Adjusting stream buffer size to 64KB
| * Adjusting stream buffer size to 64KBJ Wyman2015-05-071-1/+1
| | | | | | | | 64K is optimal buffer size per https://technet.microsoft.com/en-us/library/cc938632.aspx
* | config: plug a couple of leaksCarlos Martín Nieto2015-05-051-4/+7
| |
* | Merge pull request #3079 from ethomson/configCarlos Martín Nieto2015-05-041-400/+438
|\ \ | | | | | | Configuration changes for handling multiple of the same sections
| * | config: cleanup some now-unused variablesEdward Thomson2015-05-041-7/+16
| | |
| * | config: lock the file for write before readingEdward Thomson2015-05-041-8/+7
| | | | | | | | | | | | | | | | | | | | | 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.
| * | config: write existing lines as-is when rewritingEdward Thomson2015-05-041-28/+70
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | config: examine whole file when writingEdward Thomson2015-05-041-396/+384
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | checkout: break case-changes into delete/addEdward Thomson2015-05-042-1/+15
| | | | | | | | | | | | | | | | | | | | | 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.
* | | checkout: remove blocking dir when FORCEdEdward Thomson2015-05-041-3/+26
| | |
* | | Revert "Always checkout with case sensitive iterator"Edward Thomson2015-05-041-1/+1
|/ / | | | | | | This reverts commit 40d791545abfb3cb71553a27dc64129e1a9bec28.
* | Merge pull request #3087 from ethomson/pr/3054Carlos Martín Nieto2015-05-0419-345/+798
|\ \ | | | | | | Performance Improvements to Status on Windows
| * | diriter: actually use iconv on macEdward Thomson2015-05-012-86/+94
| | |
| * | git_buf_put_w: introduce utf16->utf8 conversionEdward Thomson2015-05-015-27/+81
| | |
| * | git_path_diriter: use FindFirstFile in win32Edward Thomson2015-05-014-8/+213
| | | | | | | | | | | | | | | | | | | | | 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.