summaryrefslogtreecommitdiff
path: root/Test.hs
Commit message (Collapse)AuthorAge
* rejigger imports for clean build with ghc 7.10's AMP changesGravatar Joey Hess2015-05-10
| | | | | The explict import Prelude after import Control.Applicative is a trick to avoid a warning.
* add test for stable macsGravatar Joey Hess2015-04-19
|
* Fix fsck --from a git remote in a local directory, and from a directory ↵Gravatar Joey Hess2015-04-18
| | | | | | | | | | | special remote. This was a reversion caused by the relative path changes in 5.20150113. The directory special remote was not affected in its normal configuration, since annex-directory is an absolute path normally. But it could fail when a relative path was used. The git remote was affected even when an absolute path to it was used in .git/config, since git-annex now converts all such paths to relative.
* test: Fix --list-testsGravatar Joey Hess2015-03-31
| | | | Seems list order matters, I don't know why, but have reported it on #tasty
* metadata: Fix encoding problem that led to mojibake when storing metadata ↵Gravatar Joey Hess2015-03-04
| | | | | | | | | | | | | | | | | | | | | | | | | strings that contained both unicode characters and a space (or '!') character. The fix is to stop using w82s, which does not properly reconstitute unicode strings. Instrad, use utf8 bytestring to get the [Word8] to base64. This passes unicode through perfectly, including any invalid filesystem encoded characters. Note that toB64 / fromB64 are also used for creds and cipher embedding. It would be unfortunate if this change broke those uses. For cipher embedding, note that ciphers can contain arbitrary bytes (should really be using ByteString.Char8 there). Testing indicated it's not safe to use the new fromB64 there; I think that characters were incorrectly combined. For credpair embedding, the username or password could contain unicode. Before, that unicode would fail to round-trip through the b64. So, I guess this is not going to break any embedded creds that worked before. This bug may have affected some creds before, and if so, this change will not fix old ones, but should fix new ones at least.
* dropdrive drops the leading slash, so need fil:///Gravatar Joey Hess2015-02-11
|
* fix file:// url generation on windows in testGravatar Joey Hess2015-02-11
|
* test case for addurl file://Gravatar Joey Hess2015-02-10
|
* Windows: Fix bug in dropping an annexed file, which caused a symlink to be ↵Gravatar Joey Hess2015-02-09
| | | | staged that contained backslashes.
* add a test case for switching to direct mode and back to indirectGravatar Joey Hess2015-02-09
|
* implement annex.tune.branchhash1Gravatar Joey Hess2015-01-28
| | | | | | | | I hope this doesn't impact speed much -- it does have to pull out a value from Annex state every time it accesses the branch now. The test case I dropped has never caught any problems that I can remember, and would have been rather difficult to convert.
* update my email address and homepage urlGravatar Joey Hess2015-01-21
|
* convert parentDir to be based on takeDirectory, but fixed for trailing /Gravatar Joey Hess2015-01-09
|
* revert parentDir changeGravatar Joey Hess2015-01-09
| | | | | | | | Reverts 2bba5bc22d049272d3328bfa6c452d3e2e50e86c Unfortunately, this caused breakage on Windows, and possibly elsewhere, because parentDir and takeDirectory do not behave the same when there is a trailing directory separator.
* Merge branch 'master' into relativepathsGravatar Joey Hess2015-01-06
|\ | | | | | | | | | | Conflicts: Locations.hs debian/changelog
| * made parentDir return a Maybe FilePath; removed most uses of itGravatar Joey Hess2015-01-06
| | | | | | | | | | | | | | | | parentDir is less safe than takeDirectory, especially when working with relative FilePaths. It's really only useful in loops that want to terminate at / This commit was sponsored by Audric SCHILTKNECHT.
* | Switch to using relative paths to the git repository.Gravatar Joey Hess2015-01-06
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the git repository to be moved while git-annex is running in it, with fewer problems. On Windows, this avoids some of the problems with the absurdly small MAX_PATH of 260 bytes. In particular, git-annex repositories should work in deeper/longer directory structures than before. See http://git-annex.branchable.com/bugs/__34__git-annex:_direct:_1_failed__34___on_Windows/ There are several possible ways this change could break git-annex: 1. If it changes its working directory while it's running, that would be Bad News. Good news everyone! git-annex never does so. It would also break thread safety, so all such things were stomped out long ago. 2. parentDir "." -> "" which is not a valid path. I had to fix one instace of this, and I should probably wipe all calls to parentDir out of the git-annex code base; it was never a good idea. 3. Things like relPathDirToFile require absolute input paths, and code assumes that the git repo path is absolute and passes it to it as-is. In the case of relPathDirToFile, I converted it to not make this assumption. Currently, the test suite has 16 failures.
* regression test for fda16b5c04db57bbd040116fb7696a1dd40228a0Gravatar Joey Hess2015-01-02
|
* fix windows buildGravatar Joey Hess2014-12-30
|
* remove testenv threading from test suiteGravatar Joey Hess2014-12-30
| | | | | | | | | | | | | Simplify the test suite now that I have a way to setEnv on Windows by not threading an environement through it. Incidentially this fixed a failure on Windows, observed when running the test suite in cygwin terminal, where there is apparently an env var named "", and it tried to set that when propigating the environment, which failed. But mostly, it makes the code a lot less horrible. This commit was sponsored by Rémi Vanicat.
* enable rsync special remote test on windowsGravatar Joey Hess2014-12-30
|
* fixed all remaining build warnings on WindowsGravatar Joey Hess2014-12-29
|
* pre-commit: Block partial commit of unlocked annexed file, since that left a ↵Gravatar Joey Hess2014-11-10
| | | | | | | | | | | | typechange staged in index I had hoped that the git devs could change git's handling of partial commits to not use a false index file, but seems not. So, this relies on some git internals to detect that case. The test suite has a test case added to catch it if changes to git break it. This commit was sponsored by Paul Tagliamonte.
* fix windows buildGravatar Joey Hess2014-10-16
|
* Use haskell setenv library to clean up several ugly workarounds for ↵Gravatar Joey Hess2014-10-15
| | | | | | | | | inability to manipulate the environment on windows. Didn't know that this library existed! This includes making git-annex not re-exec itself on start on windows, and making the test suite on Windows run tests without forking.
* hlintGravatar Joey Hess2014-10-09
|
* indent with tabs not spacesGravatar Joey Hess2014-10-09
| | | | | | | | | | | Found these with: git grep "^ " $(find -type f -name \*.hs) |grep -v ': where' Unfortunately there is some inline hamlet that cannot use tabs for indentation. Also, Assistant/WebApp/Bootstrap3.hs is a copy of a module and so I'm leaving it as-is.
* fix some mixed space+tab indentationGravatar Joey Hess2014-10-09
| | | | | | | | | This fixes all instances of " \t" in the code base. Most common case seems to be after a "where" line; probably vim copied the two space layout of that line. Done as a background task while listening to episode 2 of the Type Theory podcast.
* fix indentationGravatar Joey Hess2014-09-18
|
* fix display of git-annex test command name in usageGravatar Joey Hess2014-09-17
| | | | | | This needs optparse-applicative 0.10. Dropped support for 0.9 and older, but kept 0.9.1 working since autobuilders and debian testing still use it. (The display is not perfect with 0.9.1.)
* Fix build with optparse-applicative 0.10. Closes: #761484Gravatar Joey Hess2014-09-14
| | | | This also works with 0.9, and probably 0.8.
* unify exception handling into Utility.ExceptionGravatar Joey Hess2014-08-07
| | | | | | | | | | | | | | | | | | | | Removed old extensible-exceptions, only needed for very old ghc. Made webdav use Utility.Exception, to work after some changes in DAV's exception handling. Removed Annex.Exception. Mostly this was trivial, but note that tryAnnex is replaced with tryNonAsync and catchAnnex replaced with catchNonAsync. In theory that could be a behavior change, since the former caught all exceptions, and the latter don't catch async exceptions. However, in practice, nothing in the Annex monad uses async exceptions. Grepping for throwTo and killThread only find stuff in the assistant, which does not seem related. Command.Add.undo is changed to accept a SomeException, and things that use it for rollback now catch non-async exceptions, rather than only IOExceptions.
* update for change in bup remote removalGravatar Joey Hess2014-08-06
|
* Deal with change in git 2.0 that made indirect mode merge conflict ↵Gravatar Joey Hess2014-07-11
| | | | | | | | | | resolution leave behind old files. I think this is a git behavior change, but have not checked to be sure. Conflict cruft used to look like $foo~HEAD, but now just $foo is left behind as conflict cruft. With test case.
* uninit: Avoid failing final removal in some direct mode repositories due to ↵Gravatar Joey Hess2014-07-11
| | | | | | file modes. Specifically .map files.
* add regression test case for 84ffc8f7d265c8a685c1ea081c8a8871c7ee1b44Gravatar Joey Hess2014-07-10
| | | | better late than never
* support commit.gpgsignGravatar Joey Hess2014-07-04
| | | | | | | | | | | | | | | | | | | | | Support users who have set commit.gpgsign, by disabling gpg signatures for git-annex branch commits and commits made by the assistant. The thinking here is that a user sets commit.gpgsign intending the commits that they manually initiate to be gpg signed. But not commits made in the background, whether by a deamon or implicitly to the git-annex branch. gpg signing those would be at best a waste of CPU and at worst would fail, or flood the user with gpg passphrase prompts, or put their signature on changes they did not directly do. See Debian bug #753720. Also makes all commits done by git-annex go through a few central control points, to make such changes easier in future. Also disables commit.gpgsign in the test suite. This commit was sponsored by Antoine Boegli.
* export CreateProcess fields from Utility.ProcessGravatar Joey Hess2014-06-10
| | | | update code to avoid cwd and env redefinition warnings
* replace (Key, Backend) with KeyGravatar Joey Hess2014-04-17
| | | | | | | | | | Only fsck and reinject and the test suite used the Backend, and they can look it up as needed from the Key. This simplifies the code and also speeds it up. There is a small behavior change here. Before, all commands would warn when acting on an annexed file with an unknown backend. Now, only fsck and reinject show that warning.
* add new testGravatar Joey Hess2014-04-12
|
* fix build with new optparse-applicative releaseGravatar Joey Hess2014-03-20
|
* Windows: Fix some filename encoding bugs.Gravatar Joey Hess2014-03-19
| | | | | | http://git-annex.branchable.com/bugs/Unicode_file_names_ignored_on_Windows/ Not a complete fix yet.
* factored out a generic MapLog from uuid-based logsGravatar Joey Hess2014-03-15
| | | | UUIDBased is just a MapLog with a UUID for the field.
* more conflict resolution testsGravatar Joey Hess2014-03-04
|
* sync: Automatically resolve merge conflict between and annexed file and a ↵Gravatar Joey Hess2014-03-04
| | | | | | | | | | | | | | | | | | | regular git file. This is a new feature, it was not handled before, since it's a bit of an edge case. However, it can be handled exactly the same as a file/dir conflict, just leave the non-annexed item alone. While implementing this, the core resolveMerge' function got a lot simpler and clearer. Note especially that where before there was an asymetric call to stagefromdirectmergedir, now graftin is called symmetrically in both cases. And, in order to add that `graftin us`, the current branch needed to be known (if there is no current branch, there cannot be a merge conflict). This led to some cleanups of how autoMergeFrom behaved when there is no current branch. This commit was sponsored by Philippe Gauthier.
* add test case for merge conflict resolution between annexed and in-git fileGravatar Joey Hess2014-03-04
|
* added test for conflict resolution with a file that is both deleted and modifiedGravatar Joey Hess2014-03-04
|
* fix test case to convert slashes for DOSGravatar Joey Hess2014-03-04
|
* much improved test and real fix for FAT symlink loss on conflicted mergeGravatar Joey Hess2014-03-04
| | | | | | | | | | | I think that f5ce1a15d7a35b85ffa938ee950f4749bf445939 didn't quite manage to actually fix the bug, although I have not checked since its "fix" got redone. The test suite now actually checks the file staged in git is a symlink, rather than relying on the bug casing a later sync failure. This seems a more reliable way to detect it, and probably avoids a heisenbug in the test suite.
* improved test for FAT symlink regressionsGravatar Joey Hess2014-03-04
| | | | | The test case that was supposed to cover this did not.. It is for some other bug, which is apparently a bit of a heisenbug.