- 09 Nov, 2012 17 commits
-
-
Russell Belfer committed
-
This is a major reworking of checkout strategy options. The checkout code is now sensitive to the contents of the HEAD tree and the new options allow you to update the working tree so that it will match the index content only when it previously matched the contents of the HEAD. This allows you to, for example, to distinguish between removing files that are in the HEAD but not in the index, vs just removing all untracked files. Because of various corner cases that arise, etc., this required some additional capabilities in rmdir and other utility functions. This includes the beginnings of an implementation of code to read a partial tree into the index based on a pathspec, but that is not enabled because of the possibility of creating conflicting index entries.
Russell Belfer committed -
There are some diff functions that are useful in a rewritten checkout and this lays some groundwork for that. This contains three main things: 1. Share the function diff uses to calculate the OID for a file in the working directory (now named `git_diff__oid_for_file` 2. Add a `git_diff__paired_foreach` function to iterator over two diff lists concurrently. Convert status to use it. 3. Move all the string/prefix/index entry comparisons into function pointers inside the `git_diff_list` object so they can be switched between case sensitive and insensitive versions. This makes them easier to reuse in various functions without replicating logic. As part of this, move a couple of index functions out of diff.c and into index.c.
Russell Belfer committed -
Diff uses a `git_strarray` of path specs to represent a subset of all files to be processed. It is useful to be able to reuse this filtering in other places outside diff, so I've moved it into a standalone set of utilities.
Russell Belfer committed -
This makes it so that the check if a file is ignored will be deferred until requested on the workdir iterator, instead of aggressively evaluating the ignore rules for each entry. This should improve performance because there will be no need to check ignore rules for files that are already in the index.
Russell Belfer committed -
Russell Belfer committed
-
So, @nulltoken created a failing test case for checkout that proved to be particularly daunting. If checkout is given only a very limited strategy mask (e.g. just GIT_CHECKOUT_CREATE_MISSING) then it is possible for typechange/rename modifications to leave it unable to complete the request. That's okay, but the existing code did not have enough information not to generate an error (at least for tree/blob conflicts). This led me to a significant reorganization of the code to handle the failing case, but it has three benefits: 1. The test case is handled correctly (I think) 2. The new code should actually be much faster than the old code since I decided to make checkout aware of diff list internals. 3. The progress value accuracy is hugely increased since I added a fourth pass which calculates exactly what work needs to be done before doing anything.
Russell Belfer committed -
* Rework GIT_DIRREMOVAL values to GIT_RMDIR flags, allowing combinations of flags * Add GIT_RMDIR_EMPTY_PARENTS flag to remove parent dirs that are left empty after removal * Add GIT_MKDIR_VERIFY_DIR to give an error if item is a file, not a dir (previously an EEXISTS error was ignored, even for files) and enable this flag for git_futils_mkpath2file call * Improve accuracy of error messages from git_futils_mkdir
Russell Belfer committed -
Fixes for two segfaults
Vicent Martí committed -
config: make git_config_open_level() work with an empty config
Vicent Martí committed -
Philip Kelley committed
-
nulltoken committed
-
Philip Kelley committed
-
Philip Kelley committed
-
Valgrind reports Invalid Read when the configuration file contains some empty line
Vicent Martí committed -
Update documentation in remote.h
Vicent Martí committed -
Brian Schroeder committed
-
- 08 Nov, 2012 3 commits
-
-
Basic authentication for http and winhttp
Philip Kelley committed -
- Update 'tests-clar/resources/config/config11' in order to reproduce the invalidread with the unittest (just added some \n at the end of the file) - Fix config_file.c
delanne committed -
Correctly parse tags lacking a description
Vicent Martí committed
-
- 07 Nov, 2012 2 commits
-
-
Fix compilation for mingw32 and cygwin
Ben Straub committed -
Eduardo Bart committed
-
- 06 Nov, 2012 5 commits
-
-
inet_pton is available only in windows vista or later, fixed the issue by reimplementing it using WSAStringToAddress
Eduardo Bart committed -
Philip Kelley committed
-
fetch: Write packs to the ODB instead of directly to disk
Philip Kelley committed -
Philip Kelley committed
-
Philip Kelley committed
-
- 05 Nov, 2012 12 commits
-
-
Edward Thomson committed
-
Bail out of remote loading if the URL would be NULL
Russell Belfer committed -
Justin Spahr-Summers committed
-
Apparently git_remote_list() includes even remotes for which git_remote_load() would fail. Sorry @nulltoken, false alarm. This reverts commit f358ec14.
Justin Spahr-Summers committed -
CC @nulltoken
Justin Spahr-Summers committed -
Justin Spahr-Summers committed
-
Fix state when HEAD is not detached
Russell Belfer committed -
Justin Spahr-Summers committed
-
Let the user grab the packfile as it's being written
Vicent Martí committed -
nulltoken committed
-
This fixes a crash from attempting to invoke git__strdup() against NULL.
Justin Spahr-Summers committed -
Keith Dahlby committed
-
- 04 Nov, 2012 1 commit
-
-
Keith Dahlby committed
-