summaryrefslogtreecommitdiff
path: root/Utility
Commit message (Collapse)AuthorAge
* importfeed --relaxed: Avoid hitting the urls of items in the feed.Gravatar Joey Hess2015-08-19
|
* package qualify importsGravatar Joey Hess2015-08-14
| | | | needed for "make fast" to work
* add debug logging of process exitsGravatar Joey Hess2015-08-13
| | | | | | | | | | This is mostly to be able to see how long a command took to run. Also exit code may be useful. Unofrtunately, I can't put the command name in there, because it's not available at this point, and it would be a much larger change to wrap the ProcessHandle data type to add that. However, it's generally pretty obvious which process exited from context.
* avoid throwing exception when String is not encoded using the filesystem ↵Gravatar Joey Hess2015-08-12
| | | | | | | | encoding Since _encodeFilePath generates a String that doesn't use the filesystem encoding, when this exception is caught, we know we already have such a String, and can just return it as-is.
* fix test suite fail in LANG=CGravatar Joey Hess2015-08-12
| | | | | | | | | | | | This was caused by 88aeb849f620a13da47508045daae461a223c997 an Arbitrary String is not necessarily encoded using the filesystem encoding, and in a non-utf8 locale, encodeBS throws an exception on such a string. All I could think to do is limit test data to ascii. This shouldn't be a problem in practice, because the all Strings in git-annex that are not generated by Arbitrary should be loaded in a way that does apply the filesystem encoding.
* Fix setting/setting/viewing metadata that contains unicode or other special ↵Gravatar Joey Hess2015-08-11
| | | | | | | | | | | | | | | | | characters, when in a non-unicode locale. Oh boy, not again. So, another place that the filesystem encoding needs to be applied. Yay. In passing, I changed decodeBS so if a NUL is embedded in the input, the resulting FilePath doesn't get truncated at that NUL. This was needed to make prop_b64_roundtrips pass, and on reviewing the callers of decodeBS, I didn't see any where this wouldn't make sense. When a FilePath is used to operate on the filesystem, it'll get truncated at a NUL anyway, whereas if a String is being used for something else, it might conceivably have a NUL in it, and we wouldn't want it to get truncated when going through decodeBS. (NB: There may be a speed impact from this change.)
* Added support for SHA3 hashed keys (in 8 varieties), when git-annex is built ↵Gravatar Joey Hess2015-08-06
| | | | | | | | using the cryptonite library. While cryptohash has SHA3 support, it has not been updated for the final version of the spec. Note that cryptonite has not been ported to all arches that cryptohash builds on yet.
* proxy: Fix behavior when run in subdirectory of git repo.Gravatar Joey Hess2015-08-04
| | | | | | | | | This fixes a reversion introduced by relative path changes back last winter. The root cause is simplifyPath "../foo" was incorrectly yielding "foo". absPathFrom seems quite horrible. Probably most things that use it should use </> instead.
* remove unused importsGravatar Joey Hess2015-08-03
|
* windows build warning fixesGravatar Joey Hess2015-08-03
|
* remove unused importsGravatar Joey Hess2015-08-03
|
* fix build warning when building with yesod 1.2 and newer yesod-coreGravatar Joey Hess2015-08-03
|
* Revert "fix build warning when building with yesod 1.2"Gravatar Joey Hess2015-08-03
| | | | This reverts commit f21bd84a8cc8f664106d2cb18fd38152d3372040.
* fix build warning when building with yesod 1.2Gravatar Joey Hess2015-08-03
|
* addidential debuggingGravatar Joey Hess2015-08-03
|
* analysis; forwardedGravatar Joey Hess2015-08-03
|
* wire tasty's option parser into the main program option parserGravatar Joey Hess2015-07-13
| | | | | This makes bash completion work for git-annex test, and is generally cleaner.
* generalize parseDuration so it can be used in the ReadM monadGravatar Joey Hess2015-07-08
|
* better method for running tasty's optparse as a subcommandGravatar Joey Hess2015-07-08
|
* import: Fix failure of cross-device import on Windows.Gravatar Joey Hess2015-07-07
| | | | | As well as import, 2 other places ran "mv" manually, so changed them to use moveFile as well.
* avoid "Defined but not used" warning on androidGravatar Joey Hess2015-07-02
|
* use bloom filter in second pass of sync --all --contentGravatar Joey Hess2015-06-16
| | | | | | | | This is needed because when preferred content matches on files, the second pass would otherwise want to drop all keys. Using a bloom filter avoids this, and in the case of a false positive, a key will be left undropped that preferred content would allow dropping. Chances of that happening are a mere 1 in 1 million.
* instance Hashable Key for bloomfilterGravatar Joey Hess2015-06-16
|
* improve url parsing moreGravatar Joey Hess2015-06-14
| | | | | Now can handle eg, "http://[::1]/download/cdrom-fontzip[foo]", where the first [] need to stay unescaped, but the rest have to be escaped.
* Improve url parsing to handle some urls containing illegal [] characters in ↵Gravatar Joey Hess2015-06-14
| | | | | | their paths. Ie, "https://archive.org/download/zoom-2/Zoom - Release 2 (1996)(Active Software)[!].iso"
* oh foo, I didn't mean to include this in the prev commitGravatar Joey Hess2015-06-11
|
* 4 ns optimisation of repeated calls to hasDifference on the same DifferencesGravatar Joey Hess2015-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I want this as fast as possible, so it can be added to code paths without slowing them down. Avoid the set lookup, and rely on laziness, drops runtime from 14.37 ns to 11.03 ns according to this criterion benchmark: import Criterion.Main import qualified Types.Difference as New import qualified Types.DifferenceOld as Old main :: IO () main = defaultMain [ bgroup "hasDifference" [ bench "new" $ whnf (New.hasDifference New.OneLevelObjectHash) new , bench "old" $ whnf (Old.hasDifference Old.OneLevelObjectHash) old ] ] where s = "fromList [ObjectHashLower, OneLevelObjectHash, OneLevelBranchHash]" new = New.readDifferences s old = Old.readDifferences s A little bit of added boilerplate, but I suppose it's worth it to not need to worry about set lookup overhead. Note that adding more differences would slow down the old implementation; the new implementation will run the same speed.
* two more breakages introduced when removing the Params constructorGravatar Joey Hess2015-06-03
|
* fix bug introduced in recent Params removalGravatar Joey Hess2015-06-02
|
* Revert "When listing DBus services, also list activatable services."Gravatar Joey Hess2015-06-02
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 334954d8bf9113b679f8af29ad481b0daece86f7. Sebastian thinks best to revert this: It seems to me the reason I needed to look at activatable sockets might actually be a networkd bug, and I was in error about patch 0001. On my machines (without DHCP), networkd quits after configuring the links. I thought this had to do with network activation, but that was probably mistaken. This was obscured by my testing the change by doing systemctl stop/start on networkd; now that I actually unplugged the network cable, I noticed no DBus messages are triggered by this on this machine. Your test case might have had a similar problem (networkd quitting on idle). Might be related to [1]. On another machine (with DHCP) networkd remains active all the time, and patch 0002 works there. You might want to revert 0001, though: Suppose someone’s running no manager at all, so that polling would be required. Because networkd is still listed as activable, we would refrain from polling – by mistake, because networkd doesn’t seem to actually go active if we listen on its bus, and it’s listed as activable even when it’s not configured. Connectivity-related messages will come in when stopping/starting the service, but not when unplugging the cable.
* When listing DBus services, also list activatable services.Gravatar Sebastian Reuße2015-06-02
|
* remove Params constructor from Utility.SafeCommandGravatar Joey Hess2015-06-01
| | | | | | | | | | | | | | | | | | This removes a bit of complexity, and should make things faster (avoids tokenizing Params string), and probably involve less garbage collection. In a few places, it was useful to use Params to avoid needing a list, but that is easily avoided. Problems noticed while doing this conversion: * Some uses of Params "oneword" which was entirely unnecessary overhead. * A few places that built up a list of parameters with ++ and then used Params to split it! Test suite passes.
* AMP hackGravatar Joey Hess2015-05-31
|
* merge haddock formatting from propellorGravatar Joey Hess2015-05-30
|
* qualify imports to avoid conflict with regex-tdfa-rcGravatar Joey Hess2015-05-30
|
* fsck: When checksumming a file fails due to a hardware fault, the file is ↵Gravatar Joey Hess2015-05-27
| | | | now moved to the bad directory, and the fsck proceeds. Before, the fsck immediately failed.
* implment catchHardwareFaultGravatar Joey Hess2015-05-27
|
* improve error message when checksum command exits nonzeroGravatar Joey Hess2015-05-27
|
* merge haddock documentation from propellorGravatar Joey Hess2015-05-27
|
* need more polymorphismGravatar Joey Hess2015-05-22
|
* fix windows buildGravatar Joey Hess2015-05-22
|
* fix crash in stale transfer lockfile cleanup codeGravatar Joey Hess2015-05-19
| | | | | Need to differentiate between the lockfile not being locked, and it not existing.
* unused importsGravatar Joey Hess2015-05-19
|
* honor core.sharedRepository settings in lockContentGravatar Joey Hess2015-05-19
| | | | | | | | The content file may not be owned by the user running git-annex, in which case, setting the owner write bit was not enough to let lockContent act on the file. However, with some core.sharedRepository configs, the file should be writable by the user's group. So, the thing to do is to call thawContent on it.
* convert lockContent to use new LockPoolsGravatar Joey Hess2015-05-19
| | | | | | | | | | | | Also cleaned up the code, avoiding creating a lock file if we're going to open it for create later anyway. And, if there's an exception while preparing to lock the file, but not at the point of actually taking the lock, throw an exception, instead of silently not locking and pretending to succeed. And, on Windows, always use lock file, even if the repo somehow got into indirect mode (maybe with cygwin git..)
* use lock pools throughout git-annexGravatar Joey Hess2015-05-19
| | | | | | | | | | | | | The one exception is in Utility.Daemon. As long as a process only daemonizes once, which seems reasonable, and as long as it avoids calling checkDaemon once it's already running as a daemon, the fcntl locking gotchas won't be a problem there. Annex.LockFile has it's own separate lock pool layer, which has been renamed to LockCache. This is a persistent cache of locks that persist until closed. This is not quite done; lockContent stil needs to be converted.
* lock pools to work around non-concurrency/composition safety of POSIX fcntlGravatar Joey Hess2015-05-18
|
* comment typosGravatar Joey Hess2015-05-17
|
* Fix an unlikely race that could result in two transfers of the same key ↵Gravatar Joey Hess2015-05-12
| | | | | | running at once. As discussed in bug report.
* couple of AMP warnings I missed beforeGravatar Joey Hess2015-05-10
|