Log

Author Commit Date CI Message
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>
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
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.
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
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
Russell Belfer 397357a0 2013-07-24T13:12:00 Add rename test that used to be really slow Before the optimization commits, this test used to take about 20 seconds to run on my machine. Afterwards, there is still a couple seconds of data setup, but the actual diff and rename detection runs in a fraction of a second.
Russell Belfer 427cc255 2013-07-24T13:11:11 Use local variables in hash calc to avoid aliasing
Russell Belfer 18e9efc4 2013-07-24T13:10:16 Don't check rename if file size difference is huge
Russell Belfer 69c66b55 2013-07-24T13:09:33 Don't do text diff unless content will be used
Russell Belfer 39a1a662 2013-07-24T13:09:07 Don't unload diff data unless loaded
Russell Belfer eb1c1707 2013-07-23T15:45:58 Restore GIT_DIFF_LINE_BINARY usage This restores the usage of GIT_DIFF_LINE_BINARY for the diff output line that reads "Binary files x and y differ" so that it can be optionally colorized independently of the file header.
Russell Belfer df40f398 2013-07-23T15:18:28 Make compact output more like core Git
Russell Belfer 197b8966 2013-07-23T14:34:31 Add hunk/file headers to git_diff_patch_size This allows git_diff_patch_size to account for hunk headers and file headers in the returned size. This required some refactoring of the code that is used to print file headers so that it could be invoked by the git_diff_patch_size API. Also this increases the test coverage and fixes an off-by-one bug in the size calculation when newline changes happen at the end of the file.
Russell Belfer cdbcb8dd 2013-07-23T09:43:07 Merge pull request #1745 from libgit2/doc-fixes Doc fixes
Carlos Martín Nieto 64061d4a 2013-07-23T10:51:14 remote: fix git_remote_download() documentation The description of what the function does hasn't been true for quite a while. Change it to reflect the way it currently works. While here, remove an even older comment about missing features that have been implemented.
Carlos Martín Nieto c05a55b0 2013-07-23T09:40:19 Clean up some documentation clang's docparser highlighted these.
Vicent Martí e5bdf829 2013-07-22T23:59:08 Merge pull request #1732 from libgit2/revwalk-glob-should-ignore-invalid Invalid refs on disk cause revwalk globbing to fail
Russell Belfer b4a4cf24 2013-07-22T16:07:56 Add git_diff_patch_size() API This adds a new API to get the size in bytes of the diffs in a git_diff_patch object.
Russell Belfer 4cee9b86 2013-07-22T11:41:23 Update init and clean for revwalk::basic tests The new tests don't always want to use the same fixture data as the old ones so this makes it configurable on a per-test basis.
Russell Belfer 989710d9 2013-07-22T11:22:55 Fix warning message about mismatched types
Russell Belfer c77342ef 2013-07-22T11:20:34 Use pool for loose refdb string allocations Instead of using lots of strdup calls, this adds a memory pool to the loose refs iteration code and uses it for keeping track of the loose refs array. Memory usage could probably be reduced even further by eliminating the vector and just scanning by adding the strlen of each ref, but that would be a more intrusive changes. This also updates the error handling to be more thorough about checking for failed allocations, etc.
Russell Belfer b7107131 2013-07-22T11:01:19 git_reference_next_name must match git_reference_next The git_reference_next API silently skips invalid references when scanning the loose refs. The git_reference_next_name API should skip the same ones even though it isn't creating the reference object. This adds a test with a an invalid loose reference and makes sure that both APIs skip the same entries and generate the same results.
Martin Woodward 1cd9dc29 2013-07-19T11:14:22 Merge pull request #1743 from ethomson/readme Clarify when to use github issues
Edward Thomson bef59b1b 2013-07-19T12:56:47 Update README.md
Ben Straub 97309dd0 2013-07-19T10:43:53 Merge pull request #1726 from crazymaster/development git_buf_text_gather_stats doesn't work for multi-byte characters
Edward Thomson 41a93cc6 2013-07-19T12:43:08 Clarify when to use github issues Suggest that github issues are to be used for bug reports, while questions about usage should be directed to StackOverflow.
Ben Straub 847b8e0e 2013-07-19T10:29:47 Merge pull request #1742 from martinwoodward/Refresh-Readme Refresh readme and contributing guidance
Martin Woodward 6ca83665 2013-07-19T18:20:58 Update contributing guidance to explain PR flow Updating the contributing guidance to explain a bit more about how we use PR's
Martin Woodward 3e3d332b 2013-07-19T18:04:11 Tidy up the methods of contacting the project Updated the methods of getting involved with the project and asking questions.
Ben Straub 275d8d55 2013-07-18T09:37:59 Typo
Vicent Martí 79400365 2013-07-18T06:26:25 Merge pull request #1736 from ben/default-to-cdecl Switch default calling convention to cdecl
Ben Straub 99a9c86c 2013-07-17T20:08:15 Merge pull request #1722 from libgit2/ntk/fix/issue_1722 git_revparse_ext: should return a NULL reference when the revparse expression doesn't lead to a reference
Vicent Martí d2db351c 2013-07-17T16:12:15 Merge pull request #1735 from ethomson/ignored_are_not_rename_candidates don't include ignored as rename candidates
Edward Thomson d55bed1a 2013-07-17T16:55:00 don't include ignored as rename candidates
Ben Straub e49dc687 2013-07-17T14:06:31 Switch default calling convention to cdecl.
Ben Straub 4e05fa7d 2013-07-15T20:45:18 Merge pull request #1731 from alindeman/patch-1 Small grammar fix in docs
Andy Lindeman 51b0397a 2013-07-15T23:40:57 Small grammar fix in docs
Vicent Martí f5385150 2013-07-15T09:45:04 Merge pull request #1728 from ivoire/small_fixes Small fixes
Vicent Martí 3f8086e0 2013-07-15T09:44:02 Merge pull request #1729 from tiennou/remote-owner Add `git_remote_owner`.
Etienne Samson 85e1eded 2013-07-15T16:31:25 Add `git_remote_owner`
Rémi Duraffort c6451624 2013-07-15T16:00:07 Fix some more memory leaks in error path
Rémi Duraffort 050af8bb 2013-07-15T16:00:00 pack: fix memory leak in error path
Rémi Duraffort 8d6ef4bf 2013-07-15T15:59:35 index: fix potential memory leaks
Rémi Duraffort 9146f1e5 2013-07-15T15:59:18 repository: clarify assignment and test order
crazymaster d0b25d9d 2013-07-15T08:14:00 Fix
crazymaster 2185dd6f 2013-07-15T07:59:04 Fix typo
crazymaster b74d4478 2013-07-15T07:41:39 Fix the initial line
crazymaster 19bee769 2013-07-15T07:39:16 Revert "Replace Japanese characters with the encoded hexadecimal values" This reverts commit a91e4d6b21e141c2abc76b65b2d4c91d5d3e03cc.
crazymaster a91e4d6b 2013-07-15T07:19:42 Replace Japanese characters with the encoded hexadecimal values
Russell Belfer 35173312 2013-07-14T15:16:08 Merge pull request #1727 from alindeman/lookup-object-doc-fix Fixes return type documentation
Andy Lindeman 960431c3 2013-07-14T17:26:24 Fixes return type documentation
crazymaster 6550565a 2013-07-13T03:02:00 Fix gather_stats
crazymaster d6d34cd0 2013-07-13T02:10:16 Add test for multi-byte characters
nulltoken 80fd31fa 2013-07-13T13:30:23 revparse: Don't return a reference when asked for a git object Fix #1722
Vicent Martí 1662158c 2013-07-13T06:18:24 Merge pull request #1725 from libgit2/ntk/fix/leaks Plug some memory leaks
nulltoken d6cb13d7 2013-07-13T14:00:05 tests: Fix memory leak
nulltoken b3a559dd 2013-07-13T13:55:03 submodule: Fix memory leaks
Vicent Martí 3a025b97 2013-07-12T17:03:57 Merge pull request #1724 from ethomson/cmake_vs header files show up in vs and xcode
Edward Thomson cdacd3d9 2013-07-12T16:53:00 header files show up in vs
Vicent Martí ed0be48b 2013-07-11T15:36:03 Merge pull request #1721 from ethomson/config_paths preload configuration paths
Edward Thomson 0a1c8f55 2013-07-11T17:09:15 preload configuration paths
Vicent Martí f2de67d5 2013-07-11T11:27:57 Merge pull request #1719 from libgit2/arrbee/threading-primitives Update git__swap threading primitive
Russell Belfer 584f2d30 2013-07-11T11:04:42 Fix warnings on Win64
Russell Belfer 814de0bc 2013-07-11T11:00:41 Update git__swap thread helper This makes git__swap use the __sync_lock_test_and_set primitive with GCC and the InterlockedExchangePointer primitive with MSVC. Previously is used compare_and_swap in a way that was probably unintuitive for most thinking (i.e. it could fail to swap in the value if another thread raced in). Now it will always succeed and the last thread to run in a race will win instead of the first thread. This also fixes up a little confusion between volatile void ** and void * volatile * that came up with the Win32 compiler.
Russell Belfer d70ce9bd 2013-07-10T15:38:57 Clarify docs for git_status_file