tests


Log

Author Commit Date CI Message
Edward Thomson e0902fbc 2015-01-15T17:17:01 checkout tests: cleanup realpath impl on Win32
Edward Thomson 53eb139d 2015-01-14T20:16:01 checkout tests: emulate p_realpath poorly on Win32
Edward Thomson e74340b0 2015-01-14T18:47:00 checkout: remove files before writing new ones On case insensitive filesystems, we may have files in the working directory that case fold to a name we want to write. Remove those files (by default) so that we will not end up with a filename that has the unexpected case.
Edward Thomson 232bc895 2015-01-14T13:15:34 checkout tests: nasty symlinks Symbolic links that abuse case insensitivity to write into .git.
Edward Thomson 1fbfcdfc 2015-01-12T15:48:53 git_path_join_unrooted: return base len The documentation for `git_path_join_unrooted` states that the base length will be returned, so that consumers like checkout know where to start creating directories instead of always creating directories at the directory root.
Edward Thomson 1d50b364 2015-01-12T16:16:27 checkout: introduce git_checkout_perfdata Checkout can now provide performance data about the number of (some) syscalls performed using an optional callback.
Linquize b4c6a9da 2014-10-26T05:45:23 Add files and tests with many UTF-8 chars and few UTF-8 chars
Sven Strickroth 0161e096 2014-11-13T19:30:47 Make binary detection work similar to vanilla git Main change: Don't treat chars > 128 as non-printable (common in UTF-8 files) Signed-off-by: Sven Strickroth <email@cs-ware.de>
Edward Thomson 85880693 2015-01-14T10:19:28 Merge branch 'pr/2740'
Pierre-Olivier Latour 36fc5497 2014-12-02T05:11:12 Added GIT_HASHSIG_ALLOW_SMALL_FILES to allow computing signatures for small files The implementation of the hashsig API disallows computing a signature on small files containing only a few lines. This new flag disables this behavior. git_diff_find_similar() sets this flag by default which means that rename / copy detection of small files will now work. This in turn affects the behavior of the git_status and git_blame APIs which will now detect rename of small files assuming the right options are passed.
Carlos Martín Nieto d4b24101 2015-01-09T16:47:48 Merge commit '4b1018d24f980273528743c27c47ceb96cb720bd' Fix crash in free() when git_buf_grow() fails.
Jeff Hostetler 4b1018d2 2015-01-08T17:24:12 Fix crash in free() when git_buf_grow() fails.
Carlos Martín Nieto fe8399fe 2015-01-09T16:29:08 Fix warning
Carlos Martín Nieto 788c5f1c 2015-01-09T10:23:08 Merge pull request #2810 from ethomson/remove_symlinks Remove symlinks from the repository
Edward Thomson 365d3672 2015-01-08T21:32:44 submodule::init tests: free some leaks
Edward Thomson 3b40ed89 2015-01-08T19:23:37 repo::init test: create hook symlink Remove the hook symlink from the test resources, so that we can have a source tree that is easy to zip up and copy around on systems that don't support symlinks. Create it dynamically at test execution instead.
Edward Thomson 1646412d 2015-01-08T11:20:44 Merge pull request #2802 from calavera/remote_create_prune_config Load prune configuration when a remote is created.
David Calavera de4a75f9 2015-01-07T09:26:36 Fix more indentation.
David Calavera c868981f 2015-01-06T13:49:39 Add extern function to initialize submodule update options.
David Calavera 66b71ea5 2015-01-05T13:33:36 Fix intentation.
David Calavera 1ef3f0ce 2015-01-05T13:24:11 Load prune configuration when a remote is created.
Carlos Martín Nieto 0c601229 2015-01-05T20:10:43 Merge commit 'refs/pull/2632/head' of github.com:libgit2/libgit2
Carlos Martín Nieto c4a2fd5c 2015-01-04T17:39:43 Plug a couple of leaks
Edward Thomson a3ef70bb 2014-12-30T11:53:55 Merge pull request #2761 from libgit2/cmn/fetch-prune Remote-tracking branch prunning
Edward Thomson c4c47fc2 2014-12-30T11:53:45 Merge pull request #2762 from libgit2/cmn/hide-push remote: remove git_push from the public API
Carlos Martín Nieto fe794b2e 2014-12-16T08:57:05 remote: remove git_push from the public API Instead we provide git_remote_upload() and git_remote_update_tips() in order to have a parallel API for fetching and pushing.
Carlos Martín Nieto 208a2c8a 2014-12-27T12:09:11 treebuilder: rename _create() to _new() This function is a constructor, so let's name it like one and leave _create() for the reference functions, which do create/write the reference.
Edward Thomson 40d79154 2014-05-09T19:32:52 Always checkout with case sensitive iterator On a case-insensitive filesystem, we need to deal with case-changing renames (eg, foo -> FOO) by removing the old and adding the new, exactly as if we were on a case-sensitive filesystem. Update the `checkout::tree::can_cancel_checkout_from_notify` test, now that notifications are always sent case sensitively.
Edward Thomson 61ee5b0e 2014-05-08T17:35:03 Introduce test for checkout case-changing rename
Jameson Miller 9d1f97df 2014-10-29T17:49:04 Introduce a convenience function for submodule update This introduces the functionality of submodule update in 'git_submodule_do_update'. The existing 'git_submodule_update' function is renamed to 'git_submodule_update_strategy'. The 'git_submodule_update' function now refers to functionality similar to `git submodule update`, while `git_submodule_update_strategy` is used to get the configured value of submodule.<name>.update.
Jameson Miller b2ab887e 2014-10-20T18:07:32 submodule init should resolve relative url paths Submodule init should handle relative paths in .gitmodules files and resolve these urls when updating the git config file.
Edward Thomson c7d9839f 2014-12-20T21:22:30 Merge pull request #2763 from libgit2/cmn/local-proto-progress Show progress output on fetch for the local transport
Linquize 6987a580 2014-12-19T23:54:42 Add more Windows reserved filenames
Linquize 6fd00266 2014-12-19T23:54:01 COM0 is a valid path, although Windows Explorer does not allow to create this
Edward Thomson 28428318 2014-12-18T12:41:59 index tests: test capitalization before mkdir
Carlos Martín Nieto c90ed5b5 2014-12-18T02:11:06 Plug leaks
Carlos Martín Nieto c679bf42 2014-12-18T02:07:36 Create miscapitialised dirs for case-sensitive filesystems We need these directories to exist so cl_git_mkfile() can create the files we ask it to.
Edward Thomson dce7b1a4 2014-12-16T19:24:04 treebuilder: take a repository for path validation Path validation may be influenced by `core.protectHFS` and `core.protectNTFS` configuration settings, thus treebuilders can take a repository to influence their configuration.
Edward Thomson ec74b40c 2014-12-16T18:53:55 Introduce core.protectHFS and core.protectNTFS Validate HFS ignored char ".git" paths when `core.protectHFS` is specified. Validate NTFS invalid ".git" paths when `core.protectNTFS` is specified.
Edward Thomson 11d67b75 2014-12-10T19:12:16 checkout: disallow bad paths on HFS HFS filesystems ignore some characters like U+200C. When these characters are included in a path, they will be ignored for the purposes of comparison with other paths. Thus, if you have a ".git" folder, a folder of ".git<U+200C>" will also match. Protect our ".git" folder by ensuring that ".git<U+200C>" and friends do not match it.
Edward Thomson ee5da720 2014-12-02T22:20:42 reference_create: validate loose names Validate loose reference names on Win32.
Edward Thomson a64119e3 2014-11-25T18:13:00 checkout: disallow bad paths on win32 Disallow: 1. paths with trailing dot 2. paths with trailing space 3. paths with trailing colon 4. paths that are 8.3 short names of .git folders ("GIT~1") 5. paths that are reserved path names (COM1, LPT1, etc). 6. paths with reserved DOS characters (colons, asterisks, etc) These paths would (without \\?\ syntax) be elided to other paths - for example, ".git." would be written as ".git". As a result, writing these paths literally (using \\?\ syntax) makes them hard to operate with from the shell, Windows Explorer or other tools. Disallow these.
Vicent Marti 0d388adc 2014-11-25T00:58:03 index: Check for valid paths before creating an index entry
Edward Thomson cceae9a2 2014-12-01T13:09:58 win32: use NT-prefixed "\\?\" paths When turning UTF-8 paths into UCS-2 paths for Windows, always use the \\?\-prefixed paths. Because this bypasses the system's path canonicalization, handle the canonicalization functions ourselves. We must: 1. always use a backslash as a directory separator 2. only use a single backslash between directories 3. not rely on the system to translate "." and ".." in paths 4. remove trailing backslashes, except at the drive root (C:\)
Carlos Martín Nieto 3ded7f28 2014-12-16T10:05:49 local: add failing test for sideband information We do not currently generate any messages when we're counting the objects, as might be expected from a local upload-pack. Assert that we do call the function when working.
Carlos Martín Nieto 4adc64a8 2014-12-14T21:24:46 fetch: plug leaks in the prune tests
Carlos Martín Nieto 26186b15 2014-12-14T21:01:19 fetch: remove the prune setter This option does not get persisted to disk, which makes it different from the rest of the setters. Remove it until we go all the way. We still respect the configuration option, and it's still possible to perform a one-time prune by calling the function.
Carlos Martín Nieto 7b6e1e4c 2014-12-14T20:40:52 fetch: add test for the other order of overlapping specs
Carlos Martín Nieto 4aa23369 2014-12-14T16:56:38 fetch: assert we don't call update tips when there are no upates This is hiding a bug in the prune code, whereby we prune references we shouldn't but don't notice it in the code afterwards because update_tips() recreates them. This means that we do perform changes to the references (and get rid of the reflogs) when we shouldn't.
Carlos Martín Nieto 020aab93 2014-12-14T16:50:33 fetch: do set prune when testing We load the remote again, so we need to ask the new remote to prune the refs, or we're not exercising the code in our tests.
David Calavera 5e0c3d2d 2014-11-13T11:26:02 Make sure that `fetch --prune --tags` doesn't remove tags.
David Calavera b91194e8 2014-11-13T09:22:10 Cleanup repository after prune tests.
David Calavera 93d968fa 2014-11-12T22:05:09 Cleanup after testing remote prune.
David Calavera 82eeba81 2014-11-12T20:44:28 Fix references to git_remote_lookup.
David Calavera 439e19f6 2014-11-12T17:12:30 Test that prune overlapping works as expected.
David Calavera ce4b57c6 2014-10-27T14:40:33 Fix calls to `git_remote_download` and `git_remote_fetch`.
Linquize b8fefcb9 2014-09-23T23:21:41 Add test for prune refs
Edward Thomson 09debe12 2014-12-01T13:06:11 clar: wide character comparisons
Edward Thomson 34100846 2014-11-26T16:24:37 tests: use p_ instead of posix func directly
Carlos Martín Nieto d524b2d3 2014-12-10T17:23:33 push: fold unpack_ok() into finish() The push cannot be successful if we sent a bad packfile. We should return an error in that case instead of storing it elsewhere.
Edward Thomson 6b11eb51 2014-12-08T16:59:41 core::link test: clean up junction point name
Edward Thomson 80b01c8f 2014-12-08T16:06:15 win32: remember to free wide env name/value
Edward Thomson d5087689 2014-12-08T23:03:30 Merge pull request #2750 from linquize/generate.py Update clar to e3985dd
Linquize 8e0aa2eb 2014-12-07T23:41:30 Fix broken merge tests due to autocrlf was not false
Linquize d226fbf1 2014-12-07T22:42:06 Fix broken test suite on Windows
Linquize 3a1eb9e5 2014-12-07T22:09:00 Update clar to e3985dd
Edward Thomson 19ae8439 2014-12-06T20:17:16 Merge pull request #2746 from libgit2/cmn/neg-ignore-dir Fix negative ignores withing ignored dirs
Edward Thomson 013924c1 2014-12-05T23:44:34 Merge pull request #2730 from libgit2/cmn/local-push Adjust the local transport for the common refspec parser
Carlos Martín Nieto 21083a71 2014-12-06T03:12:04 notes: move the notes name argument Make it consistent between git_note_create() and git_note_remote() by putting it after the repository.
Carlos Martín Nieto e0a97416 2014-12-05T16:31:14 ignore: adjust test for negating inside a dir Given top !top/foo in an ignore file, we should not unignore top/foo. This is an implementation detail of the git code leaking, but that's the behaviour we should show. A negation rule can only negate an exact rule it has seen before.
nulltoken 30ec0526 2014-12-05T07:44:09 Merge pull request #2744 from epmatsw/spelling Spelling fixes
Will Stamper b874629b 2014-12-04T21:06:59 Spelling fixes
Edward Thomson 6d91dc53 2014-12-03T15:28:44 init: return the number of initializations
Jeff Hostetler 93aef71e 2014-11-26T14:12:11 fix cl_git_mkfile() to test for -1 rather than 0 for errors from p_creat()
Edward Thomson e952bc5a 2014-11-23T17:15:18 Merge pull request #2718 from libgit2/cmn/peeling-errors peel: reject bad queries with EPEEL
Carlos Martín Nieto 3fade40e 2014-11-23T21:29:35 remote: add test for pushing and deleting with the local transport
Carlos Martín Nieto f7fcb18f 2014-11-23T14:12:54 Plug leaks Valgrind is now clean except for libssl and libgcrypt.
Carlos Martín Nieto 753e17b0 2014-11-19T18:42:29 peel: reject bad queries with EINVALIDSPEC There are some combination of objects and target types which we know cannot be fulfilled. Return EINVALIDSPEC for those to signify that there is a mismatch in the user-provided data and what the object model is capable of satisfying. If we start at a tag and in the course of peeling find out that we cannot reach a particular type, we return EPEEL.
Vicent Marti 92e0b679 2014-11-21T13:31:30 buffer: Do not `put` anything if len is 0
Vicent Marti e0156651 2014-11-21T13:50:46 odb: `git_odb_object` contents are never NULL This is a contract that we made in the library and that we need to uphold. The contents of a blob can never be NULL because several parts of the library (including the filter and attributes code) expect `git_blob_rawcontent` to always return a valid pointer.
Carlos Martín Nieto 1ca61bdc 2014-11-19T20:53:25 fetch: clear the connection data on close When we fetch twice with the same remote object, we did not properly clear the connection flags, so we would leak state from the last connection. This can cause the second fetch with the same remote object to fail if using a HTTP URL where the server redirects to HTTPS, as the second fetch would see `use_ssl` set and think the initial connection wanted to downgrade the connection.
Edward Thomson 93b982b1 2014-11-18T12:12:19 Merge pull request #2654 from linquize/missing-obj Fix missing object in tests/resources/crlf by changing the tail commit
Edward Thomson 45301cca 2014-11-18T11:44:59 Merge pull request #2608 from libgit2/cmn/remote-push Provide a convenience function `git_remote_push()`
Edward Thomson 8b5b814e 2014-11-17T20:10:58 Merge pull request #2671 from swisspol/remote_create_fix Fixed active_refspecs field not initialized on new git_remote objects
Edward Thomson 7f1b73b7 2014-11-17T17:03:55 Merge pull request #2693 from libgit2/cmn/push-refspec-refactor push: use the common refspec parser
Edward Thomson a4221ccb 2014-11-17T16:36:54 Merge pull request #2699 from swisspol/fix_warnings Fixed a couple Clang warnings
Pierre-Olivier Latour d3cd7da5 2014-10-28T20:56:18 Fixed active_refspecs field not initialized on new git_remote objects When creating a new remote, contrary to loading one from disk, active_refspecs was not populated. This means that if using the new remote to push, git_push_update_tips() will be a no-op since it checks the refspecs passed during the push against the base ones i.e. active_refspecs. And therefore the local refs won't be created or updated after the push operation.
Carlos Martín Nieto 5915d700 2014-11-17T14:28:22 branch: consider an empty upstream remote config as not found
Pierre-Olivier Latour 692c0408 2014-11-09T08:09:25 Fixed a couple Clang warnings
Carlos Martín Nieto aad638f3 2014-11-07T15:00:11 push: use the common refspec parser There is one well-known and well-tested parser which we should use, instead of implementing parsing a second time. The common parser is also augmented to copy the LHS into the RHS if the latter is empty. The expressions test had to change a bit, as we now catch a bad RHS of a refspec locally.
Carlos Martín Nieto 64e3e6d4 2014-10-11T12:25:50 remote: use configured push refspecs if none are given If the user does not pass any refspecs to push, try to use those configured via the configuration or via add_push().
Carlos Martín Nieto 6eb9e39c 2014-10-10T13:35:57 push: move main test function to git_remote_push() We have the step-by-step method in the initialization function as we want to remove references based on the list of references which are already there, and we can use the convenience function for testing the main push.
Carlos Martín Nieto 3149547b 2014-10-10T12:39:53 remote: introduce git_remote_push() This function, similar in style to git_remote_fetch(), performs all the steps required for a push, with a similar interface. The remote callbacks struct has learnt about the push callbacks, letting us set the callbacks a single time instead of setting some in the remote and some in the push operation.
Carlos Martín Nieto 799e22ea 2014-10-23T17:34:41 Rename git_threads_ to git_libgit2_ This describes their purpose better, as we now initialize ssl and some other global stuff in there. Calling the init function is not something which has been optional for a while now.
Pierre-Olivier Latour e284c451 2014-10-28T22:18:38 Changed GIT_REMOTE_DOWNLOAD_TAGS_ALL to behave like git 1.9.0
Edward Thomson 02bc5233 2014-11-08T17:05:13 Merge pull request #2698 from libgit2/cmn/fetchhead-refactor Refactor fetchhead
Edward Thomson bc8c4a8a 2014-11-08T16:55:23 Merge pull request #2695 from libgit2/cmn/remote-lookup remote: rename _load() to _lookup()
Edward Thomson e3bd48a7 2014-11-08T16:52:43 Merge pull request #2696 from libgit2/cmn/empty-objects odb: hardcode the empty blob and tree
Carlos Martín Nieto e1ac0101 2014-11-08T14:40:53 odb: hardcode the empty blob and tree git hardocodes these as objects which exist regardless of whether they are in the odb and uses them in the shell interface as a way of expressing the lack of a blob or tree for one side of e.g. a diff. In the library we use each language's natural way of declaring a lack of value which makes a workaround like this unnecessary. Since git uses it, it does however mean each shell application would need to perform this check themselves. This makes it common work across a range of applications and an issue with compatibility with git, which fits right into what the library aims to provide. Thus we introduce the hard-coded empty blob and tree in the odb frontend. These hard-coded objects are checked for before going to the backends, but after the cache check, which means the second time they're used, they will be treated as normal cached objects instead of creating new ones.
Carlos Martín Nieto 64fdd86d 2014-11-08T20:21:14 remote: don't check for upstream on an anonymous remote If the remote is anonymous, then we cannot check for any configuration, as there is no name. Check for this before we try to use the name, which may be a NULL pointer. This fixes #2697.