Log

Author Commit Date CI Message
Ben Straub 8f81ea45 2013-08-18T18:30:48 Merge pull request #1793 from libgit2/ntk/valgrind Bring Valgrind back!
nulltoken 90a8ad63 2013-08-19T00:18:44 ci: Make Valgrind run on Travis
Vicent Martí 51a5e133 2013-08-16T16:22:37 Merge pull request #1778 from libgit2/push_tag_to_tag_test push: handle tag chains correctly
Vicent Martí b2be62fd 2013-08-16T15:33:13 Merge pull request #1790 from libgit2/examples-init Add "git init"-like example
Russell Belfer ce23330f 2013-08-16T14:34:51 Add new git_signature_default API using config This adds a new API for creating a signature that uses the config to look up "user.name" and "user.email".
Russell Belfer 0ea41445 2013-08-16T15:03:15 Improve isolation of new test from user environs
Russell Belfer 944c1589 2013-08-16T14:49:38 Add example like "git init"
Russell Belfer 579d87c5 2013-08-16T14:48:14 New test that inits repo and make commit
Ben Straub 68458e42 2013-08-16T13:25:18 Merge pull request #1789 from martinwoodward/posix_win32-attribution Give credit to PHP for the p_readlink function in posix_w32.c
Martin Woodward c9340df0 2013-08-16T19:40:58 Give credit to PHP for the p_readlink function in posix_w32.c
Carlos Martín Nieto 5ce6c1e9 2013-08-12T16:15:36 push: handle tag chains correctly When dealing with a chain of tags, we need to enqueue each of them individually, which means we can't use `git_tag_peel` as that jumps over the intermediate tags. Do the peeling manually so we can look at each object and take the appropriate action.
Vicent Martí 44246223 2013-08-14T23:15:02 Merge pull request #1784 from evhan/development revparse: Free left side of invalid range revspecs
Evan Hanson 1616fa68 2013-08-15T17:25:05 revparse: Use more idiomatic error value test
Evan Hanson 899ec41f 2013-08-15T16:25:48 revparse: Free left side of invalid range revspecs This fixes a small memory leak in git_revparse where early returns on errors from git_revparse_single cause a free() on the (reallocated) left side of the revspec to be skipped.
Vicent Marti 1e94df08 2013-08-15T00:09:46 sha1-lookup: This assert was correct
Russell Belfer c87bf86c 2013-08-14T10:58:02 Commit 7affc2f7 removed var initialization That commit accidentally removed the initialization of the "start" variable giving undefined results for the host extraction from the url input.
Vicent Martí ad0af715 2013-08-14T06:48:09 Merge pull request #1780 from phkelley/development Respect GIT_SSL_NO_VERIFY and http.sslVerify
Vicent Martí 9d1751bf 2013-08-14T06:44:28 Merge pull request #1783 from libgit2/cmn/relax-remote remote: relax the url rules
Vicent Martí c4ded21e 2013-08-14T06:43:43 Merge pull request #1774 from libgit2/test-ssh Test SSH in travis
Vicent Martí 89f6d84c 2013-08-14T06:40:38 Merge pull request #1781 from brodie/brodie/stat-before-open fileops: stat() before open()ing in git_futils_readbuffer_updated()
Vicent Martí d5904eb8 2013-08-14T06:38:37 Merge pull request #1782 from libgit2/vmg/no-lookup Do not use the "experimental" lookup mode
Carlos Martín Nieto 0b9ebb54 2013-08-14T11:18:05 remote: relax the url rules Accept any value for the remote's url, including an empty string which we used to reject as invalid configuration. This is not quite what git does (although it has its own problems with such configurations) and it makes it harder to fix the issue, by not letting the user modify it. As we already need to check for a valid URL when we try to connect to the network, let that perform the check, as we don't need to do it anywhere else.
Carlos Martín Nieto 5be622fb 2013-08-11T01:37:44 Test SSH in travis Set up the ssh credentials so we are able to talk to localhost and issue git commands. Move to use a script, as the command list is getting somewhat long. While here, delay installing valgrind until we need it, as it and its dependencies are by far the largest downloads and this allows us to start compiling (and failing) faster and we only incur this cost when the test suite runs successfully.
Vicent Marti 59547ce7 2013-08-14T10:34:07 oid: Helper for old-school hashcmp
Vicent Marti e2164da5 2013-08-14T10:31:02 sha1_lookup: Hello my name is MSVC and how do I pointer
Vicent Marti 67591c8c 2013-08-14T10:28:01 sha1_lookup: do not use the "experimental" lookup mode
Philip Kelley af6dab7e 2013-08-13T13:10:52 Respect GIT_SSL_NO_VERIFY and http.sslVerify
Ben Straub 2af9bcb2 2013-08-13T11:37:31 Merge pull request #1779 from ben/win32-precompiled-header-speedup Speed up build under MSVC
Vicent Martí 40948998 2013-08-13T11:36:24 Merge pull request #1767 from libgit2/win32-bigger-utf8-buffer Bigger buffer for utf-8 parsing in win32
Brodie Rao 9ccdb211 2013-08-13T10:55:37 fileops: stat() before open()ing in git_futils_readbuffer_updated() This reverts refactoring done in 13224ea4aad9a1b3c9cc4c992ceaea9af623e047 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.
Russell Belfer 0228a514 2013-08-13T10:20:25 Missed one path for path_as_utf8 type
Russell Belfer ee065601 2013-08-13T09:53:56 Minor win32 fixes and improvements This is just a bunch of small fixes that I noticed while looking at the UTF8 and UTF16 path stuff. It fixes a slowdown in looking for an empty directory (not exiting loop asap), makes the dir name in the git__DIR structure be a GIT_FLEX_ARRAY to save an allocation, and fixes some slightly odd assumptions in the cl_getenv helper.
Russell Belfer 841034a3 2013-08-13T09:45:56 Reintroduce type for UTF8 win32 path conversions
Russell Belfer d4cff0cb 2013-08-13T09:40:32 Rename git__win32_path fns to git_win32_path
Ben Straub e12618b1 2013-08-13T09:22:53 Add some things to precompiled header
Ben Straub 3869a171 2013-08-08T10:10:23 Fix mingw cross-compile build
Vicent Marti 3948e862 2013-08-13T09:38:37 windows: Fuck me
Vicent Marti 345b6307 2013-08-13T09:35:07 windows: Require order
Vicent Marti 53d712dc 2013-08-13T09:31:03 windows: Missing renames.
Vicent Marti abf37327 2013-08-13T09:15:39 windows: Path conversion with better semantics
Ben Straub 14da6182 2013-08-12T12:05:58 Merge pull request #1775 from libgit2/ssh-default-user SSH username fixes
Ben Straub 423e3b0c 2013-08-12T11:02:53 Update to clar 7bf638b80
Carlos Martín Nieto d10de8bd 2013-08-12T12:07:33 CMake: finding libssh2 should be idempotent 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 7affc2f7 2013-08-11T23:30:47 Include username in each credential type 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 e54cfb9b 2013-08-12T11:50:27 odb: free object data when id is ambiguous By the time we recognise this as an ambiguous id, the object's data has been loaded into memory. Free it when returning EABMIGUOUS.
Ben Straub 8ca09399 2013-08-11T17:28:33 Merge pull request #1768 from arrbee/issue-1766-gitignore-weirdness Fix issue 1766 - bugs in managing ignore file lists
Ben Straub 0e26fca1 2013-08-10T15:11:19 Make utf-8 source strings unlimited
Ben Straub aa0af729 2013-08-10T14:56:58 Fix 64-bit MSVC warnings
Vicent Martí a25519ac 2013-08-09T15:30:50 Merge pull request #1770 from ethomson/index_fuzz Fixes to safely reading the index
Russell Belfer 3bc3ed80 2013-08-09T10:06:23 Improve and comment git_ignore__pop_dir This just cleans up the improved logic for popping ignore dirs and documents why the complex behavior is needed.
Russell Belfer ba8b8c04 2013-08-07T09:17:20 Improve building ignore file lists 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 d1be9e4c 2013-08-09T11:39:38 Merge pull request #1773 from arrbee/fix-fnmatch-prefix Revert PR #1462 and provide alternative fix
Russell Belfer b7b77def 2013-08-09T11:20:49 Match against file with leading ! was too broad
Russell Belfer 4ba64794 2013-08-09T10:52:35 Revert PR #1462 and provide alternative fix This rolls back the changes to fnmatch parsing from commit 2e40a60e847d6c128af23e24ea7a8efebd2427da 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 fbb6c0c8 2013-08-09T09:35:23 Merge pull request #1764 from ethomson/status_renames_from_rewrites Add rename from rewrites to status
Russell Belfer 33d532dc 2013-08-09T09:32:06 Merge pull request #1462 from yorah/fix/libgit2sharp-issue-379 status: fix handling of filenames with special prefixes
Russell Belfer 7f7ebe13 2013-08-08T12:57:13 Merge pull request #1771 from nvloff/write_empty_config_value config: allow setting empty string as value
Nikolai Vladimirov c57f6682 2013-08-08T21:17:32 config: allow empty string as value `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>
Edward Thomson a1f69452 2013-08-08T12:36:11 git_strndup fix when OOM
Edward Thomson 57f31f05 2013-08-08T11:05:00 Fixes to safely reading the index Avoid wrapping around extension size when reading, avoid walking off the end of the buffer when reading names.
Ben Straub 5e96f316 2013-08-08T08:54:38 Merge pull request #1738 from libgit2/diff-patch-content-size Add API for getting at git_diff_patch->content_size
Ben Straub bf145a6a 2013-08-08T08:53:37 Merge pull request #1746 from libgit2/rename-detection-performance Rename detection slow
Ben Straub aaefbdee 2013-08-08T08:48:57 Discriminate path-specific and general UTF-X conversions
Russell Belfer 46c37911 2013-08-08T07:50:59 Merge pull request #1638 from brodie/brodie/handle-duplicate-objects-across-packs odb_pack: handle duplicate objects from different packs
Brodie Rao d19bcb33 2013-06-06T14:49:14 odb_pack: handle duplicate objects from different packs This is based on 24634c6fd02b2240e4a93fad70a08220f8fb793a. This also corrects an issue with error codes being mixed up with the number of found objects.
Ben Straub 2c0128ee 2013-08-07T19:29:33 Rename git_win_str_utf* to git_win32_path_utf*
Ben Straub 9c38f7a6 2013-08-07T13:22:41 Add typedefs for win32 utf-8 and utf-16 buffers ...and normalize the signatures of the two conversion functions.
Ben Straub 75f98a95 2013-08-07T06:12:27 Add checkout test for long file name
Ben Straub c0c51693 2013-08-06T21:05:03 Add long-file-name branch to test repo
Ben Straub 2984f319 2013-08-07T05:55:12 Don't use win32-only macro in test code
Ben Straub 8c8a5490 2013-08-06T20:35:51 Add status test for long paths
Russell Belfer c7d4904c 2013-08-07T10:38:41 Merge pull request #1769 from ethomson/configparse Parse config headers with quoted quotes
Edward Thomson 2d9f5b9f 2013-08-07T11:11:55 Parse config headers with quoted quotes Parse config headers that have the last quote on the line quoted instead of walking off the end.
Russell Belfer c5780abb 2013-08-05T21:58:48 Merge pull request #1765 from arrbee/ambiguous-oids More tests for ambiguous OIDs across packs
Russell Belfer 437224b4 2013-08-05T21:46:32 More tests for ambiguous OIDs across packs 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 ee77378d 2013-08-05T13:33:44 Merge pull request #1763 from nvloff/nameless_submodule_segfault submodule: check alloc and name presence
Edward Thomson e38f0d69 2013-08-05T14:06:41 Add rename from rewrites to status 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.
Nikolai Vladimirov f1af935b 2013-08-05T21:53:09 submodule: check alloc and name presense
Ben Straub d8563619 2013-08-05T11:41:39 Split UTF-16 and UTF-8 buffer sizes for win32 Also fixed up call-sites to use the correct buffer sizes, especially when converting to utf-8.
Russell Belfer 9b7d02ff 2013-08-05T10:53:39 Update submodule documentation Fixes #1762
Russell Belfer e8242022 2013-08-05T09:59:02 Move slow tests to "stress" clar module 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 31b42eac 2013-08-04T14:09:44 Restore commented out tests This restores the commented out tests (even though they're slow) and fixes some trailing whitespace.
Edward Thomson 0a38eb42 2013-07-31T22:36:50 Rename test for rename from rewrite A rename test that illustrates a rename from a rewrite.
Russell Belfer 7edb74d3 2013-08-04T14:06:13 Update rename src map for any split src 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).
Edward Thomson a42c2a8c 2013-07-31T21:51:50 Rename test for multiple similar matches A rename test that illustrates a source matching multiple targets.
Russell Belfer d730d3f4 2013-07-31T16:40:42 Major rename detection changes 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.
Carlos Martín Nieto 1cd0acf6 2013-07-31T10:43:56 Merge pull request #1748 from arthurschreiber/patch-1 Allow Makefile.embed to be used when cross-compiling
Arthur Schreiber a6837b5f 2013-07-31T19:13:35 When building with MINGW, specify `__USE_MINGW_ANSI_STDIO`. 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.
Ben Straub 94d12ffa 2013-07-28T08:39:41 Merge pull request #1755 from csware/double-close Fix possible double close
Vicent Martí a873449f 2013-07-27T17:00:21 Merge pull request #1753 from 13ren/log-bugfix Fix -n bug; default to all ancestors
Sven Strickroth f5254d78 2013-07-27T20:15:06 Fix possible double close Signed-off-by: Sven Strickroth <email@cs-ware.de>
Brendan Macmillan c3ae0473 2013-07-27T05:31:28 Fix -n bug; default to all ancestors
Russell Belfer 8dd8aa48 2013-07-26T10:28:57 Fix some warnings
Russell Belfer a16e4172 2013-07-25T12:27:39 Fix rename detection to use actual blob size The size data in the index may not reflect the actual size of the blob data from the ODB when content filtering comes into play. This commit fixes rename detection to use the actual blob size when calculating data signatures instead of the value from the index. Because of a misunderstanding on my part, I first converted the git_index_add_bypath API to use the post-filtered blob data size in creating the index entry. I backed that change out, but I kept the overall refactoring of that routine and the new internal git_blob__create_from_paths API because it eliminates an extra stat() call from the code that adds a file to the index. The existing tests actually cover this code path, at least when running on Windows, so at this point I'm not adding new tests to cover the changes.
Vicent Martí d477a9ab 2013-07-25T06:44:56 Merge pull request #1749 from csware/handle-fixes Close p->mwf.fd only if necessary
Sven Strickroth 3a2d48d5 2013-07-25T14:54:19 Close p->mwf.fd only if necessary This fixes a regression introduced in revision 9d2f841a5d39fc25ce722a3904f6ebc9aa112222. Signed-off-by: Sven Strickroth <email@cs-ware.de>
Russell Belfer effdbeb3 2013-07-24T17:48:37 Make rename detection file size fix better The previous fix for checking file sizes with rename detection always loads the blob. In this version, if the odb backend can get the object header without loading the whole thing into memory, then we'll just use that, so that we can eliminate possible rename sources & targets without loading them.
Russell Belfer a5140f4d 2013-07-24T17:11:49 Fix rename detection for tree-to-tree diffs The performance improvements I introduced for rename detection were not able to run successfully for tree-to-tree diffs because the blob size was not known early enough and so the file signature always had to be calculated nonetheless. This change separates loading blobs into memory from calculating the signature. I can't avoid having to load the large blobs into memory, but by moving it forward, I'm able to avoid the signature calculation if the blob won't come into play for renames.
Arthur Schreiber 847c6793 2013-07-25T00:26:51 Allow Makefile.embed to be used when cross-compiling This allows libgit2 to be cross-compiled (e.g. when building native rugged binaries for windows from Linux or OS X). ``` CROSS_COMPILE=i686-w64-mingw32 make -f Makefile.embed ```
Russell Belfer f5c4d022 2013-07-24T13:44:35 Fix incorrect comment