summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Patch from @carlosmn to refresh the parent config before snapshotting.refresh-config-snapshotAlan Rogers2014-10-231-1/+6
|
* Merge pull request #2609 from linquize/describe-optsEdward Thomson2014-10-131-15/+31
|\ | | | | Handle describe options better
| * describe: Initialize options for git_describe_format() if nullLinquize2014-10-111-14/+30
| |
| * describe: Do not crash if pass null option to git_describe_commit()Linquize2014-10-111-1/+1
| |
* | Merge pull request #2615 from ethomson/mount_pointsEdward Thomson2014-10-132-17/+38
|\ \ | | | | | | Mount points
| * | is_empty_dir (wi32): cope with empty mount pointsEdward Thomson2014-10-131-16/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * | p_lstat win32: don't canonicalize volume mountsEdward Thomson2014-10-131-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Don't copy buffer in checkout unless neededEdward Thomson2014-10-131-6/+8
| | |
* | | Ensure filters (i.e. CRLF) are applied when checking out conflict contentJacques Germishuys2014-10-131-3/+19
| | |
* | | There is no "z" size specifier on MSVCSven Strickroth2014-10-132-1/+3
| | | | | | | | | | | | | | | | | | 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>
* | | Don't use cl_git_pass for POSIX functionsrb/minor-cleanupsRussell Belfer2014-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Move un-namespaced constant to internal headerRussell Belfer2014-10-101-0/+2
| |/ |/| | | | | FLAG_BITS only seems to be used internally
* | index: fill the tree cache on write-treeCarlos Martín Nieto2014-10-101-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | index: make sure to write cached subtrees if parent is invalidatedCarlos Martín Nieto2014-10-101-4/+2
| | | | | | | | | | If e.g. the root tree is invalidated, we still want to write out its children, since those may still have valid cache entries.
* | index: write out the tree cache extensionCarlos Martín Nieto2014-10-104-13/+89
| | | | | | | | | | | | | | | | | | | | 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.
* | tree-cache: remove the parent pointerCarlos Martín Nieto2014-10-102-11/+9
| | | | | | | | | | This wasn't used. We invalidate based on the full path, so we always go down the tree, never up.
* | index: fill the tree cache when reading from a treeCarlos Martín Nieto2014-10-103-0/+83
| | | | | | | | | | | | 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.
* | tree-cache: move to use a pool allocatorCarlos Martín Nieto2014-10-104-30/+22
| | | | | | | | | | | | 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.
* | tree-cache: extract the allocationCarlos Martín Nieto2014-10-102-12/+23
| |
* | Merge pull request #2593 from libgit2/cmn/remote-delete-nameEdward Thomson2014-10-101-19/+5
|\ \ | | | | | | remote: accept a repository and remote name for deletion
| * | remote: accept a repository and remote name for deletioncmn/remote-delete-nameCarlos Martín Nieto2014-09-301-19/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #2575 from cirosantilli/factor-struct-typedefCarlos Martín Nieto2014-10-105-26/+14
|\ \ \ | |_|/ |/| | [factor] Join typedef and struct definitions in single file.
| * | Join typedef and struct definitions in single file.Ciro Santilli2014-09-245-26/+14
| | |
* | | Merge pull request #2498 from linquize/read-large-fileCarlos Martín Nieto2014-10-102-5/+4
|\ \ \ | | | | | | | | Can read large file larger than 2GB on Win64
| * | | Can read large file larger than 2GB on WindowsLinquize2014-08-102-5/+4
| | | |
* | | | Merge pull request #2556 from sbc100/fix_warningsCarlos Martín Nieto2014-10-101-2/+2
|\ \ \ \ | | | | | | | | | | Fix warnings in thread-utils.h when building without -DTHREADSAFE=ON
| * | | | Fix warnings in thread-utils.h when building without -DTHREADSAFE=ONSam Clegg2014-09-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | Merge pull request #2542 from linquize/fetch-headCarlos Martín Nieto2014-10-101-3/+12
|\ \ \ \ \ | | | | | | | | | | | | Do not error out when fetching from second remote
| * | | | | When updating FETCH_HEAD, do not treat it as error if the remote of current ↵Linquize2014-09-021-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | branch is from another remote
* | | | | | Merge pull request #2588 from swansontec/ssl-cert-path2Carlos Martín Nieto2014-10-101-0/+22
|\ \ \ \ \ \ | | | | | | | | | | | | | | Add support for setting the SSL CA location
| * | | | | | Add support for setting the SSL CA locationWilliam Swanson2014-09-301-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows users to specify self-signed certificates, or to provide their own certificate stores on limited platforms such as mobile phones.
* | | | | | | Merge pull request #2499 from csware/hard-reset-checkout-callbacksCarlos Martín Nieto2014-10-101-0/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Allow to propagate checkout callbacks to git HARD reset
| * | | | | | | Allow to propagate checkout callbacks to git HARD resetSven Strickroth2014-08-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Sven Strickroth <email@cs-ware.de>
* | | | | | | | Merge pull request #2574 from csware/hostname-for-certificate_check_cbEdward Thomson2014-10-103-3/+3
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Provide host name to certificate_check_cb
| * | | | | | | | Provide host name to certificate_check_cbSven Strickroth2014-09-223-3/+3
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Sven Strickroth <email@cs-ware.de>
* | | | | | | | Merge pull request #2473 from arthurschreiber/arthur/new-javascript-test-filesEdward Thomson2014-10-101-3/+3
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | New test files for the javascript diff driver.
| * | | | | | | | Update the javascript diff driver's function pattern.Arthur Schreiber2014-10-091-3/+3
| | | | | | | | |
* | | | | | | | | Merge pull request #2603 from libgit2/cmn/revwalk-merge-baseEdward Thomson2014-10-102-26/+101
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Walk only as far as the common ancestors of uninteresting commits
| * | | | | | | | | revwalk: clear first-parent flag on resetcmn/revwalk-merge-baseCarlos Martín Nieto2014-10-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should have been included when implementing the feature but was missed.
| * | | | | | | | | revwalk: catch no-push and no-hide casesCarlos Martín Nieto2014-10-082-11/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | | | | revwalk: mark uninteresting only up to the common ancestorsCarlos Martín Nieto2014-10-081-1/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | | | | revwalk: keep a single list of user inputsCarlos Martín Nieto2014-10-082-27/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old separation was due to the old merge-base finding, so it's no longer necessary.
| * | | | | | | | | revwalk: clear the flags on resetCarlos Martín Nieto2014-10-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These store merge-base information which is only valid for a single run.
* | | | | | | | | | Treat an empty list of refspecs the same as a NULL value.Arthur Schreiber2014-10-101-1/+1
| | | | | | | | | |
* | | | | | | | | | Merge pull request #2592 from libgit2/cmn/describeCarlos Martín Nieto2014-10-093-1/+888
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | Implement git-describe
| * | | | | | | | | describe: make mingw happyCarlos Martín Nieto2014-09-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MinGW compiler does not like it when we declare a typedef twice.
| * | | | | | | | | describe: rename git_describe_opts to git_describe_optionsCarlos Martín Nieto2014-09-301-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And implement the option init functions for this and the format options.
| * | | | | | | | | describe: implement abbreviated idsCarlos Martín Nieto2014-09-301-6/+27
| | | | | | | | | |
| * | | | | | | | | describe: implement describing the workdirCarlos Martín Nieto2014-09-301-6/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | | | | describe: split into gather and format stepsCarlos Martín Nieto2014-09-301-66/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.