- 13 Aug, 2013 1 commit
-
-
This reverts refactoring done in 13224ea4 that introduces a performance regression for NFS when reading files that don't exist. open() forces a cache invalidation on NFS, while stat()ing a file just uses the cache and is very quick. To give a specific example, say you have a repo with a thousand packed refs. Before this change, looking up every single one ould incur a thousand slow open() calls. With this change, it's a thousand fast stat() calls.
Brodie Rao committed
-
- 12 Aug, 2013 6 commits
-
-
SSH username fixes
Ben Straub committed -
Ben Straub committed
-
With the current code, running 'cmake .' in an already-configured directory causes the removal of ssh flags passed to the compiler, making it impossible to build with ssh support but by removing CMake's cache. Remove the check for LIBSSH2_LIBRARY and let CMake do the right thing wrt finding the library.
Carlos Martín Nieto committed -
Key-based authentication also needs an username, so include it in each one. Also stop assuming a default username of "git" in the ssh transport which has no business making such a decision.
Carlos Martín Nieto committed -
By the time we recognise this as an ambiguous id, the object's data has been loaded into memory. Free it when returning EABMIGUOUS.
Carlos Martín Nieto committed -
Fix issue 1766 - bugs in managing ignore file lists
Ben Straub committed
-
- 09 Aug, 2013 8 commits
-
-
Fixes to safely reading the index
Vicent Martí committed -
This just cleans up the improved logic for popping ignore dirs and documents why the complex behavior is needed.
Russell Belfer committed -
The routines to push and pop ignore files while traversing a directory had some issues. In particular, setting up the initial list would sometimes push an ignore file before it ought to be applied if the starting path was a directory containing an ignore file. Also, the pop function was not always matching the right part of the path and would fail to pop ignores from the list in some cases. This adds some tests that exercise a particular problematic case and then fixes the problems that I could find related to this. At some point, I'd like to isolate this ignore rule management code and rewrite it, but that's a larger project and right now, I'll opt to just try to fix the broken behaviors.
Russell Belfer committed -
Revert PR #1462 and provide alternative fix
Russell Belfer committed -
Russell Belfer committed
-
This rolls back the changes to fnmatch parsing from commit 2e40a60e except for the tests that were added. Instead this adds couple of new flags that can be passed in when attempting to parse an fnmatch pattern. Also, this changes the pathspec match logic to special case matching a filename with a '!' prefix against a negative pattern. This fixes the build.
Russell Belfer committed -
Add rename from rewrites to status
Russell Belfer committed -
status: fix handling of filenames with special prefixes
Russell Belfer committed
-
- 08 Aug, 2013 8 commits
-
-
config: allow setting empty string as value
Russell Belfer committed -
`git_config_set_string(config, "config.section", "")` fails when escaping the value. The buffer in `escape_value` is allocated without NULL-termination. And in case of empty string 0 is passed for buffer size in `git_buf_grow`. `git_buf_detach` returns NULL when the allocated size is 0 and that leads to an error return in `GITERR_CHECK_ALLOC` called after `escape_value` The change in `config_file.c` was suggested by Russell Belfer <rb@github.com>
Nikolai Vladimirov committed -
Edward Thomson committed
-
Avoid wrapping around extension size when reading, avoid walking off the end of the buffer when reading names.
Edward Thomson committed -
Add API for getting at git_diff_patch->content_size
Ben Straub committed -
Rename detection slow
Ben Straub committed -
odb_pack: handle duplicate objects from different packs
Russell Belfer committed -
This is based on 24634c6f. This also corrects an issue with error codes being mixed up with the number of found objects.
Brodie Rao committed
-
- 07 Aug, 2013 2 commits
-
-
Parse config headers with quoted quotes
Russell Belfer committed -
Parse config headers that have the last quote on the line quoted instead of walking off the end.
Edward Thomson committed
-
- 06 Aug, 2013 2 commits
-
-
More tests for ambiguous OIDs across packs
Russell Belfer committed -
The test coverage for ambiguous OIDs was pretty thin. This adds a bunch of new objects both in packs, across packs, and loose that match to 8 characters so that we can test various cases of ambiguous lookups.
Russell Belfer committed
-
- 05 Aug, 2013 5 commits
-
-
submodule: check alloc and name presence
Russell Belfer committed -
In git_diff_paired_foreach, temporarily resort the index->workdir diff list by index path so that we can track a rename in the workdir from head->index->workdir.
Edward Thomson committed -
Nikolai Vladimirov committed
-
Fixes #1762
Russell Belfer committed -
Create a new section of clar tests "stress" that will default to being off where we can put slow tests that push the library for performance testing purposes.
Russell Belfer committed
-
- 04 Aug, 2013 4 commits
-
-
This restores the commented out tests (even though they're slow) and fixes some trailing whitespace.
Russell Belfer committed -
A rename test that illustrates a rename from a rewrite.
Edward Thomson committed -
When using a rename source that is actually a to-be-split record, we have to update the best-fit mapping data in both the case where the target is also a split record and the case where the target is a simple added record. Before this commit, we were only doing the update when the target was itself a split record (and even in that case, the test was slightly wrong).
Russell Belfer committed -
A rename test that illustrates a source matching multiple targets.
Edward Thomson committed
-
- 31 Jul, 2013 3 commits
-
-
After doing further profiling, I found that a lot of time was being spent attempting to insert hashes into the file hash signature when using the rolling hash because the rolling hash approach generates a hash per byte of the file instead of one per run/line of data. To optimize this, I decided to convert back to a run-based file signature algorithm which would be more like core Git. After changing this, a number of the existing tests started to fail. In some cases, this appears to have been because the test was coded to be too specific to the particular results of the file similarity metric and in some cases there appear to have been bugs in the core rename detection code where only by the coincidence of the file similarity scoring were the expected results being generated. This renames all the variables in the core rename detection code to be more consistent and hopefully easier to follow which made it a bit easier to reason about the behavior of that code and fix the problems that I was seeing. I think it's in better shape now. There are a couple of tests now that attempt to stress test the rename detection code and they are quite slow. Most of the time is spent setting up the test data on disk and in the index. When we roll out performance improvements for index insertion, it should also speed up these tests I hope.
Russell Belfer committed -
Allow Makefile.embed to be used when cross-compiling
Carlos Martín Nieto committed -
This option is already present in the CMake config, but was missing from `Makefile.embed` and would cause all kinds of weird failures when compiling rugged on windows with the ruby devkit.
Arthur Schreiber committed
-
- 28 Jul, 2013 1 commit
-
-
Fix possible double close
Ben Straub committed
-