Log

Author Commit Date CI Message
Russell Belfer a9528b8f 2014-04-14T15:59:48 Fix core.excludesfile named .gitignore Ignore rules with slashes in them are matched using FNM_PATHNAME and use the path to the .gitignore file from the root of the repository along with the path fragment (including slashes) in the ignore file itself. Unfortunately, the relative path to the .gitignore file was being applied to the global core.excludesfile if that was also named ".gitignore". This fixes that with more precise matching and includes test for ignore rules with leading slashes (which were the primary example of this being broken in the real world). This also backports an improvement to the file context logic from the threadsafe-iterators branch where we don't rely on mutating the key of the attribute file name to generate the context path.
Vicent Marti 289e31cd 2014-04-14T23:11:06 Merge pull request #2264 from jacquesg/fix-warnings Correct C90 warnings
Vicent Marti 06d772d8 2014-04-14T14:49:01 Merge pull request #2262 from libgit2/rb/fix-ignore-pop Fix bug popping ignore files during wd iteration
Jacques Germishuys efaa342c 2014-04-11T22:07:49 Correct C90 warnings
Russell Belfer 8f7bc646 2014-04-10T16:33:39 Fix bug popping ignore files during wd iteration There were a couple bugs in popping ignore files during iteration that could result in incorrect decisions be made and thus ignore files below the root either not being loaded correctly or not being popped at the right time. One bug was an off-by-one in comparing the path of the gitignore file with the path being exited during iteration. The second bug was not correctly truncating the path being tracked during traversal if there were no ignores on the list (i.e. when you have no .gitignore at the root, but do have some in contained directories).
Vicent Marti bcc62293 2014-04-09T12:45:49 Merge pull request #2259 from libgit2/vmg/state-cleanup Rewrite `state-cleanup`
Vicent Marti c3dcbe84 2014-04-09T12:43:27 Rewrite `git_repository__cleanup_files`
Vicent Marti 361e9192 2014-04-09T12:09:30 Merge pull request #2257 from libgit2/rb/fix-submodules-with-tracked-content Update treatment of submodule-like directories with tracked content in the parent
Vicent Marti 3ed8d00c 2014-04-09T12:08:30 Merge pull request #2258 from libgit2/jk/userdiff-cc pull userdiff pattern updates from git.git
Jeff King 9ce60fad 2014-04-08T18:40:05 userdiff: update ada patterns This is the moral equivalent of git/git@39a87a29ce364ed3337e535adce5973731ba2968 from Adrian Johnson <ajohnson@redneon.com>.
Jeff King 76b4e3d4 2014-04-08T18:41:39 userdiff: update C/C++ patterns This pulls upstream changes from: git/git@8a2e8da367f7175465118510b474ad365161d6b1 git/git@abf8f9860248d8c213600974742f18dadaa8fbb5 git/git@407e07f2a6f55e605fda9e90cb622887269f68b5 all by Johannes Sixt <j6t@kdbg.org>.
Russell Belfer eb7e17cc 2014-04-08T14:47:20 Update submodules with parent-tracked content This updates how libgit2 treats submodule-like directories that actually have tracked content inside of them. This is a strange corner case, but it seems that many people have abortive submodule setups and then just went ahead and added the files into the parent repository. In this case, we should just treat the submodule as if it was a normal directory. Libgit2 will still try to skip over real submodules and contained repositories that do not have tracked files inside them, but this adds some new handling for cases where the apparently submodule data is in conflict with the actual list of tracked files.
Carlos Martín Nieto ce2e8269 2014-04-08T16:52:20 graph: handle not finding a merge base gracefully git_merge_base() returns GIT_ENOTFOUND when it cannot find a merge base. graph_desdendant_of() returns a boolean value (barring any errors), so it needs to catch the NOTFOUND return value and convert it into false, as not merge base means it cannot be a descendant.
Vicent Marti 2795fb4d 2014-04-08T16:37:39 Merge pull request #2256 from jacquesg/graph-descendant Correct grouping of parentheses
Jacques Germishuys 8a8e3127 2014-04-08T16:20:49 Added a no path test for git_graph_descendant_of
Jacques Germishuys 56f8e06e 2014-04-08T15:46:45 Correct grouping of parentheses git_graph_descendant_of was returning the result of an assignment
Vicent Marti 5f74c476 2014-04-07T20:51:39 Merge pull request #2255 from libgit2/rb/fix-multiple-nfd-iconv-bug Fix bug with multiple iconv conversions in one dir
Russell Belfer 7167fd7e 2014-04-07T11:51:12 vmg is always right
Russell Belfer c813b345 2014-04-07T11:45:32 Fix bug with multiple iconv conversions in one dir The internal buffer in the `git_path_iconv_t` structure was not being reset before the calls to `iconv` were made to convert data, so if there were multiple decomposed Unicode paths in a single directory, paths after the first one were being appended to the first instead of treated as independent data.
Jacques Germishuys c0311295 2014-04-07T17:32:23 git_repository_state_cleanup() should remove rebase-merge/, rebase-apply/ and BISECT_LOG
Vicent Marti 6720eef9 2014-04-07T11:22:23 Merge pull request #2249 from libgit2/rb/starstar-fnmatch Add support for ** matches in ignores
Russell Belfer c7d96060 2014-04-06T11:20:22 Fix fnmatch comment to be clearer
Russell Belfer c8c91433 2014-04-06T10:42:26 More ** tests for pattern rules
Vicent Marti 52056db9 2014-04-06T16:22:29 Merge pull request #2250 from jacquesg/vector-leak Don't lose our elements when calling git_vector_set()
Jacques Germishuys 4998009a 2014-04-06T15:06:46 Don't lose our elements when calling git_vector_set()
Russell Belfer 2b6b85f1 2014-04-04T17:02:12 Add support for ** matches in ignores This is an experimental addition to add ** support to fnmatch pattern matching in libgit2. It needs more testing.
Vicent Marti 923c8400 2014-04-04T14:24:08 Merge pull request #2215 from libgit2/rb/submodule-cache-fixes Improve submodule cache management
Vicent Marti f34408a7 2014-04-04T14:23:07 Merge pull request #2211 from Yogu/retry-renaming-config Retry committing locked files on error
Russell Belfer eedeeb9e 2014-04-03T11:58:51 Test (and fix) the git_submodule_sync changes I wrote this stuff a while ago and forgot to write tests. Wanted to do so now to wrap up the PR and immediately found problems.
Russell Belfer 18cc7d28 2014-04-03T11:29:08 Minor code cleanup
Jan Melcher f2fb4bac 2014-04-02T23:55:21 git_submodule_resolve_url supports relative urls The base for the relative urls is determined as follows, with descending priority: - remote url of HEAD's remote tracking branch - remote "origin" - workdir This follows git.git behaviour
Jan Melcher 12d4ed4d 2014-03-08T23:04:56 Test git_submodule_add_setup with relative url
Vicent Marti 4c219cf6 2014-04-03T17:12:11 Merge pull request #2244 from jacquesg/const-correctness Const correctness!
Jacques Germishuys 3b4ba278 2014-04-03T15:50:21 Const correctness!
Vicent Marti fd61f05e 2014-04-03T09:53:28 Merge pull request #2238 from libgit2/cmn/upstream-for-unborn Handle an upstream branch for an unborn one
Vicent Marti 9edc5271 2014-04-03T09:52:42 Merge pull request #2239 from libgit2/vmg/clar-skip-test Skip tests on Clar
Carlos Martín Nieto 67d4997a 2014-04-02T18:44:01 remote: mark branch for-merge even if we're unborn When the current branch is unborn, git will still mark the current branch's upstream for-merge if there is an upstream configuration. The only non-constrived case is cloning from an empty repository which then gains history. origin's master should be marked for-merge. In order to do this, we cannot use the high-level wrappers that expect a reference, as we may not have one. Move over to the internal ones that expect a reference name, which we do have.
Carlos Martín Nieto 6f6be8fe 2014-04-02T18:14:02 remote: write tests for cloning from an empty repo Cloning from an empty repo must set master's upstream to origin's master, even if neither of them exist. Fetching from a non-empty origin must then mark the master branch for-merge. This currently fails.
Vicent Marti 0f65733b 2014-04-02T18:50:47 Clar: skip tests
Vicent Marti 64a862c2 2014-04-02T18:48:38 Merge pull request #2237 from mekishizufu/fix_return_value Fix submodule_is_config_only's return value
Jiri Pospisil 49653665 2014-04-02T18:21:41 checkout: Fix submodule_is_config_only's return value
Vicent Marti fe23860a 2014-04-02T17:45:25 Merge pull request #2230 from anuraggup/revwalk-merge-base No need to find merge base.
Russell Belfer ada157b2 2014-04-02T07:45:16 Add warning when skipping blame test
Vicent Marti bb63baea 2014-04-02T14:13:01 Merge pull request #2231 from libgit2/fix-memory-index-doc-comment Correct a stale reference to GIT_EBAREINDEX
Rob Rix ddc66e27 2014-04-02T08:02:43 Give the correct name for the function in the doc. Per @carlosmn, git_index_add is now named git_index_add_bypath.
Vicent Marti 5b9eac32 2014-04-02T13:42:14 Merge pull request #2233 from libgit2/rb/fix-untracked-repo-status Skip untracked contained repo contents even with gitlink files
Russell Belfer d1a09004 2014-04-01T21:58:48 Skip blame libgit2 test if not in libgit2 repo One blame test replies on being run from within the libgit2 repository to leverage having a longer history to play with, but some bundled versions of libgit2 don't have the whole libgit2 history. This just skips that test if the repository can't be opened.
Russell Belfer a574d584 2014-04-01T21:32:06 New tests of status for repo inside repo
Russell Belfer ea1ca3c9 2014-04-01T21:30:52 Fix skipping content of contained repos When doing a diff for use in status, we should never show the content of a git repository contained inside another one. The logic to do this was looking for a .git directory and so when a gitlink plain .git file was used, it was failing to exclude the directory content.
Russell Belfer 8f4e5275 2014-04-01T16:46:25 More tests and fix submodule index refresh There was a little bug where the submodule cache thought that the index date was out of date even when it wasn't that was resulting in some extra scans of index data even when not needed. Mostly this commit adds a bunch of new tests including adding and removing submodules in the index and in the HEAD and seeing if we can automatically pick them up when refreshing.
Rob Rix bb439de0 2014-04-01T16:37:19 Correct a stale reference to GIT_EBAREINDEX
Russell Belfer 8061d519 2014-04-01T13:24:06 Remove most submodule reloads from tests With the new submodule cache validity checks, we generally don't need to call git_submodule_reload_all to have up-to-date submodule data. Some tests are still calling it where I want to actually test that it can be called safely and doesn't break anything, but mostly it is not needed. This also expands some of the existing submodule tests to cover some variants on the behavior that was already being tested.
Russell Belfer 4ece3e22 2014-04-01T12:19:11 Fix submodule accounting for name and path changes Wrote tests that try adding, removing, and updating the name of submodules which showed a number of problems with how we account for changes when incrementally updating the submodule info. Most of these issues didn't exist before because reloading would always blow away the old submodule data.
Carlos Martín Nieto f28e4c97 2014-04-01T20:17:49 refspec: git_refspec_parse() does not exist
Russell Belfer aa78c9ba 2014-04-01T10:22:51 Minor submodule cache locking improvements This improvement the management of the lock around submodule cache updates slightly, using the lock to make sure that foreach can safely make a snapshot of all existing submodules and making sure that git_submodule_add_setup also grabs a lock before inserting the new submodule. Cache initialization / refresh should already have been holding the lock correctly as it adds submodules.
Russell Belfer eeeb9654 2014-03-30T15:35:56 Reinstate efficient submodule reloading This makes it so that git_submodule_reload_all will actually only reload changed items unless the `force` flag is used.
Russell Belfer a4ccd2b0 2014-03-29T15:23:01 Use enums instead of bools for submodule options When forcing cache flushes or reload, etc., it is easier to keep track of intent using enums instead of plain bools. Also, this fixes a bug where the cache was not being properly refreshes by a git_submodule_reload_all.
Russell Belfer db0e7878 2014-03-28T16:50:49 Make submodule refresh a bit smarter This makes submodule cache refresh actually look at the timestamps from the data sources for submodules and reload as needed if they have changed since the last refresh.
Russell Belfer 69b6ffc4 2014-03-28T14:02:21 Make a real submodule cache object This takes the old submodule cache which was just a git_strmap and makes a real git_submodule_cache object that can contain other things like a lock and timestamp-ish data to control refreshing of submodule info.
Russell Belfer d543d59c 2014-03-28T10:42:38 Add some funny options for debugging status This allows you to use a --repeat option to run status over and over and see how the output changes as you make local directory changes without reopening the git_repository object each time. Also, adds a flag to explicitly list the submodules before status.
Russell Belfer e402d2f1 2014-03-24T11:25:59 Submodule sync refactoring Turns out there was already a helper to do what I wanted to do, so I just made it so that I could use it for sync and switched to that instead.
Russell Belfer 8286300a 2013-12-18T11:48:57 Fix git_submodule_sync and add new config helper This fixes `git_submodule_sync` to correctly update the remote URL of the default branch of the submodule along with the URL in the parent repository config (i.e. match core Git's behavior). Also move some useful helper logic from the submodule code into a shared config API `git_config__update_entry` that can either set or delete an entry with constraints like not overwriting or not creating a new entry. I used that helper to update a couple other places in the code.
Russell Belfer 18234b14 2014-02-21T09:14:16 Add efficient git_buf join3 API There are a few places where we need to join three strings to assemble a path. This adds a simple join3 function to avoid the comparatively expensive join_n (which calls strlen on each string twice).
Russell Belfer 2450d4c6 2014-04-01T09:33:18 Merge pull request #2208 from libgit2/vmg/mempack In-memory packing backend
Edward Thomson d67397dd 2014-04-01T09:32:17 Merge pull request #2226 from libgit2/rb/submodule-sorting-fix Fix submodule sort order during iteration
Vicent Marti 82e1c1af 2014-04-01T17:21:04 Merge pull request #2229 from linquize/Wdeclaration-after-statement Add CFLAGS -Wdeclaration-after-statement
Linquize 9e1ed9f2 2014-04-01T23:01:40 Add CFLAGS -Wdeclaration-after-statement This warns local variables declarations after statement, which helps not to break MSVC
Vicent Marti a2d18a02 2014-04-01T13:47:52 Merge pull request #2228 from mekishizufu/example_short_id Use git_object_short_id in examples
Vicent Marti 9325460a 2014-04-01T13:47:44 Merge pull request #2206 from libgit2/cmn/inmemory-swap-order Rename in-memory remote to anonymous and swap url and fetch order
Carlos Martín Nieto fd536d29 2014-03-26T11:15:57 remote: rename inmemory to anonymous and swap url and fetch order The order in this function is the opposite to what create_with_fetchspec() has, so change this one, as url-then-refspec is what git does. As we need to break compilation and the swap doesn't do that, let's take this opportunity to rename in-memory remotes to anonymous as that's really what sets them apart.
Jiri Pospisil 6ad59ef1 2014-04-01T12:16:40 examples: Use git_object_short_id
Edward Thomson 3ab57816 2014-03-31T23:23:32 Merge pull request #2178 from libgit2/rb/fix-short-id Fix git_odb_short_id and git_odb_exists_prefix bugs
Anurag Gupta 3bc3d797 2014-03-31T15:15:32 No need to find merge base.
Russell Belfer b76b5d34 2014-03-31T13:33:11 Improve test of submodule name sorting
Russell Belfer 7dcd42a5 2014-03-31T13:31:01 Cleanups
Russell Belfer c856f8c5 2014-03-31T12:27:05 Fix submodule sorting in workdir iterator With the changes to how git_path_dirload_with_stat handles things that look like submodules, submodules could end up sorted in the wrong order with the workdir iterator. This moves the submodule check earlier in the iterator processing of a new directory so that the submodule name updates will happen immediately and the sort order will be correct.
Russell Belfer 945c92a5 2014-03-31T12:26:46 Add faster git_submodule__is_submodule check
Vicent Marti fad04120 2014-03-31T20:15:35 Merge pull request #2224 from ethomson/merge_file_const Const up members of git_merge_file_result
Edward Thomson 7f930ded 2014-03-31T09:38:06 Const up members of git_merge_file_result
Vicent Marti 336e8957 2014-03-31T19:17:01 Merge pull request #2222 from ethomson/merge_head_id Introduce git_merge_head_id
Edward Thomson 976634c4 2014-03-30T19:56:18 Introduce git_merge_head_id
Carlos Martín Nieto 08833427 2014-03-31T18:43:13 Merge pull request #2219 from tiennou/reset-need-pack Don't reset need_pack
Etienne Samson 31143b36 2014-03-30T18:08:32 Don't reset need_pack While looping over multiple heads, an up-to-date head will clobber the `remote->need_pack` setting, preventing the rest of the machinery from building and downloading a pack-file, breaking fetches.
Edward Thomson 7b445c21 2014-03-29T20:05:06 Merge pull request #2216 from ethomson/clar Update clar to 4b75388
Edward Thomson ed38bff1 2014-03-28T17:54:43 Update clar to 4b75388
Vicent Marti 71ba28e3 2014-03-28T19:03:37 Merge pull request #2214 from ethomson/sandbox_config RFC: Sandbox HOME during test execution
Edward Thomson e0d61c7b 2014-03-28T10:10:59 Sandbox configuration during test runs
Edward Thomson 10be94e9 2014-03-28T10:09:13 Update clar to 587f88a
Vicent Marti 04d4d674 2014-03-27T23:40:28 Merge pull request #2212 from libgit2/rb/submodule-use-after-free Fix use-after-free in submodule reload code and other memory leaks
Russell Belfer dae8ba6e 2014-03-27T15:29:32 Fix memory leak of test repository object
Russell Belfer acdc7cff 2014-03-27T15:29:17 Fix memory leak of submodule branch name
Russell Belfer add8db06 2014-03-27T15:28:29 Fix use-after-free in submodule reload If the first call to release a no-longer-existent submodule freed the object, the check if a second is needed would dereference the data that was just freed.
Jan Melcher 2873a862 2014-03-27T12:42:44 Retry renaming files on Access Denied errors When a file is open for reading (without shared-delete permission), and then a different thread/process called p_rename, that would fail, even if the file was only open for reading for a few milliseconds. This change lets p_rename wait up to 50ms for the file to be closed by the reader. Applies only to win32. This is especially important for git_filebuf_commit, because writes should not fail if the file is read simultaneously. Fixes #2207
Vicent Marti 041fad4a 2014-03-27T08:32:46 Merge pull request #2210 from libgit2/rb/submodule-api-with-no-submodules Fix segfault if gitmodules is invalid
Russell Belfer 380f864a 2014-03-26T16:06:21 Fix error when submodule path and name differ When a submodule was inserted with a different path and name, the return value from khash greater than zero was allowed to propagate back out to the caller when it should really be zeroed. This led to a possible crash when reloading submodules if that was the first time that submodule data was loaded.
Russell Belfer 22df47cb 2014-03-26T14:38:26 Fix segfault if gitmodules is invalid The reload_all call could end up dereferencing a NULL pointer if there was an error while attempting to load the submodules config data (i.e. invalid content in the gitmodules file). This fixes it.
Vicent Marti f4afcaa0 2014-03-26T19:37:01 Merge pull request #2209 from ethomson/cleanup Cleanup some warnings and mem leaks
Edward Thomson 9cb99e8b 2014-03-26T12:43:41 Free temporary merge index
Edward Thomson 2b848e47 2014-03-26T12:33:37 Decorate unused params as unused in revwalk::hidecb tests
Vicent Marti dc7efa1a 2014-03-26T18:29:34 Merge pull request #2204 from libgit2/rb/submodule-reference-counting Make submodules externally refcounted