summaryrefslogtreecommitdiff
path: root/CmdLine/GitAnnex.hs
Commit message (Collapse)AuthorAge
* initial export commandGravatar Joey Hess2017-08-29
| | | | | | Very basic operation works, but of course this is only the beginning. This commit was sponsored by Nick Daly on Patreon.
* multicast: New command, uses uftp to multicast annexed files, for eg a ↵Gravatar Joey Hess2017-03-30
| | | | | | classroom setting. This commit was supported by the NSF-funded DataLad project.
* post-recive hook to make updateInstead work in direct mode and adjusted branchesGravatar Joey Hess2017-02-17
| | | | | | | | * Added post-recieve hook, which makes updateInstead work with direct mode and adjusted branches. * init: Set up the post-receive hook. This commit was sponsored by Fernando Jimenez on Patreon.
* config: New command for storing configuration in the git-annex branch.Gravatar Joey Hess2017-01-30
| | | | | | | | | | | Any config names can be set using this; git-annex commands will only look at specific ones that make sense and are worth the overhead of querying the branch. This might also be useful for storing whatever other config-type stuff the user might want to shove into the git-annex branch. This commit was sponsored by Jochen Bartl on Patreon.
* Merge branch 'master' into no-xmppGravatar Joey Hess2016-12-24
|\
| * implement p2p commandGravatar Joey Hess2016-11-30
| |
| * enable remotedaemon when assistant is not enabledGravatar Joey Hess2016-11-29
| | | | | | | | Needed to serve tor hidden services.
* | remove xmpp supportGravatar Joey Hess2016-11-14
| | | | | | | | | | | | | | | | | | | | | | | | I've long considered the XMPP support in git-annex a wart. It's nice to remove it. (This also removes the NetMessager, which was only used for XMPP, and the daemonstatus's desynced list (likewise).) Existing XMPP remotes should be ignored by git-annex. This commit was sponsored by Brock Spratlen on Patreon.
| * git-annex enable-tor commandGravatar Joey Hess2016-11-14
|/ | | | | | | | | | | | | | | | | | Tor unfortunately does not come out of the box configured to let hidden services register themselves on the fly via the ControlPort. And, changing the config to enable the ControlPort and a particular type of auth for it may break something already using the ControlPort, or lessen the security of the system. So, this leaves only one option to us: Add a hidden service to the torrc. git-annex enable-tor does so, and picks an unused high port for tor to listen on for connections to the hidden service. It's up to the caller to somehow pick a local port to listen on that won't be used by something else. That may be difficult to do.. This commit was sponsored by Jochen Bartl on Patreon.
* Remove the EKG build flag, since Gentoo for some reason decided to enable ↵Gravatar Joey Hess2016-07-06
| | | | this flag, depsite it not being intended for production use and so enabled by default.
* calckey: New plumbing command, calculates the key that would be used to ↵Gravatar Joey Hess2016-04-20
| | | | refer to a file
* adjusted branches, proof of conceptGravatar Joey Hess2016-02-25
| | | | | | | | | | | | | | | | | "git annex adjust" may be a temporary interface, but works for a proof of concept. It is pretty fast at creating the adjusted branch. The main overhead is injecting pointer files. It might be worth optimising that by reusing the symlink target as the pointer file content. When I tried to do that, the problem was that the clean filter doesn't use that same format, and so git thought files had changed. Could be dealt with, perhaps make the clean filter use symlink format for pointer files when on an adjusted branch? But the real overhead is in checking out the branch, when git runs the smudge filter once per file. That is perhaps too slow to be usable, although it may only affect initial checkout of the branch, and not updates. TBD.
* remove 3 build flagsGravatar Joey Hess2016-01-26
| | | | | | | | | | | | | * Removed the webapp-secure build flag, rolling it into the webapp build flag. * Removed the quvi and tahoe build flags, which only adds aeson to the core dependencies. * Removed the feed build flag, which only adds feed to the core dependencies. Build flags have cost in both code complexity and also make Setup configure have to work harder to find a usable set of build flags when some dependencies are missing.
* matchexpression: New plumbing command to check if a preferred content ↵Gravatar Joey Hess2016-01-25
| | | | expression matches some data.
* add database benchmarkGravatar Joey Hess2016-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The benchmark shows that the database access is quite fast indeed! And, it scales linearly to the number of keys, with one exception, getAssociatedKey. Based on this benchmark, I don't think I need worry about optimising for cases where all files are locked and the database is mostly empty. In those cases, database access will be misses, and according to this benchmark, should add only 50 milliseconds to runtime. (NB: There may be some overhead to getting the database opened and locking the handle that this benchmark doesn't see.) joey@darkstar:~/src/git-annex>./git-annex benchmark setting up database with 1000 setting up database with 10000 benchmarking keys database/getAssociatedFiles from 1000 (hit) time 62.77 μs (62.70 μs .. 62.85 μs) 1.000 R² (1.000 R² .. 1.000 R²) mean 62.81 μs (62.76 μs .. 62.88 μs) std dev 201.6 ns (157.5 ns .. 259.5 ns) benchmarking keys database/getAssociatedFiles from 1000 (miss) time 50.02 μs (49.97 μs .. 50.07 μs) 1.000 R² (1.000 R² .. 1.000 R²) mean 50.09 μs (50.04 μs .. 50.17 μs) std dev 206.7 ns (133.8 ns .. 295.3 ns) benchmarking keys database/getAssociatedKey from 1000 (hit) time 211.2 μs (210.5 μs .. 212.3 μs) 1.000 R² (0.999 R² .. 1.000 R²) mean 211.0 μs (210.7 μs .. 212.0 μs) std dev 1.685 μs (334.4 ns .. 3.517 μs) benchmarking keys database/getAssociatedKey from 1000 (miss) time 173.5 μs (172.7 μs .. 174.2 μs) 1.000 R² (0.999 R² .. 1.000 R²) mean 173.7 μs (173.0 μs .. 175.5 μs) std dev 3.833 μs (1.858 μs .. 6.617 μs) variance introduced by outliers: 16% (moderately inflated) benchmarking keys database/getAssociatedFiles from 10000 (hit) time 64.01 μs (63.84 μs .. 64.18 μs) 1.000 R² (1.000 R² .. 1.000 R²) mean 64.85 μs (64.34 μs .. 66.02 μs) std dev 2.433 μs (547.6 ns .. 4.652 μs) variance introduced by outliers: 40% (moderately inflated) benchmarking keys database/getAssociatedFiles from 10000 (miss) time 50.33 μs (50.28 μs .. 50.39 μs) 1.000 R² (1.000 R² .. 1.000 R²) mean 50.32 μs (50.26 μs .. 50.38 μs) std dev 202.7 ns (167.6 ns .. 252.0 ns) benchmarking keys database/getAssociatedKey from 10000 (hit) time 1.142 ms (1.139 ms .. 1.146 ms) 1.000 R² (1.000 R² .. 1.000 R²) mean 1.142 ms (1.140 ms .. 1.144 ms) std dev 7.142 μs (4.994 μs .. 10.98 μs) benchmarking keys database/getAssociatedKey from 10000 (miss) time 1.094 ms (1.092 ms .. 1.096 ms) 1.000 R² (1.000 R² .. 1.000 R²) mean 1.095 ms (1.095 ms .. 1.097 ms) std dev 4.277 μs (2.591 μs .. 7.228 μs)
* merge clean into smudge commandGravatar Joey Hess2015-12-04
| | | | | | The git filter config can be used to map the single git-annex command to the 2 actions, and this avoids "git annex clean" being used for this thing, it might have a better use for that name later.
* skeleton smudge/clean filtersGravatar Joey Hess2015-12-04
|
* 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.
* convert WebApp; avoid duplicate arg parsing for no repo modeGravatar Joey Hess2015-07-13
|
* converted Assistant and Watch; avoid duplicate arg parsing for no repo modeGravatar Joey Hess2015-07-13
|
* convert ImportGravatar Joey Hess2015-07-13
|
* converted ImportFeedGravatar Joey Hess2015-07-13
|
* converted addurlGravatar Joey Hess2015-07-13
|
* converted LogGravatar Joey Hess2015-07-13
|
* convert Dead, and allow multiple --key optionsGravatar Joey Hess2015-07-13
|
* converted MetaData, eliminating a global value from Annex state .. beautifulGravatar Joey Hess2015-07-12
|
* converted ContentLocation, ExampleKey, LookupKeyGravatar Joey Hess2015-07-11
|
* converted StatusGravatar Joey Hess2015-07-11
|
* converted InfoGravatar Joey Hess2015-07-11
|
* converted Forget and TestRemoteGravatar Joey Hess2015-07-11
|
* converted MirrorGravatar Joey Hess2015-07-10
|
* convert ListGravatar Joey Hess2015-07-10
|
* converted ViCfg (trivially)Gravatar Joey Hess2015-07-10
|
* convert FindRefGravatar Joey Hess2015-07-10
|
* convert WhereisGravatar Joey Hess2015-07-10
|
* convert ExpireGravatar Joey Hess2015-07-10
|
* convert DropUnusedGravatar Joey Hess2015-07-10
|
* convert Unused, and remove some dead code for old style option parsingGravatar Joey Hess2015-07-10
|
* convert version command, and make --raw work when not in a git repoGravatar Joey Hess2015-07-10
|
* finished converting all the main optionsGravatar Joey Hess2015-07-10
|
* implement withGlobalOptions, and convert FindGravatar Joey Hess2015-07-10
|
* convert global options (still not used)Gravatar Joey Hess2015-07-10
|
* wipGravatar Joey Hess2015-07-09
| | | | | | | Current status: * building again, but several commands are commented out * still need to implement global options, file matching options, etc
* wipGravatar Joey Hess2015-07-09
|
* converted copy and moveGravatar Joey Hess2015-07-09
| | | | Got a little tricky..
* let optparse-applicative handle the usage display when run w/o command or ↵Gravatar Joey Hess2015-07-09
| | | | | | | bad command Still generating the list of commands myself, to get it sorted into sections and with short synopses.
* formattingGravatar Joey Hess2015-07-09
|
* convert all commands to work with optparse-applicativeGravatar Joey Hess2015-07-08
| | | | Still no options though.
* started converting to use optparse-applicativeGravatar Joey Hess2015-07-08
| | | | | | | | | | | | This is a work in progress. It compiles and is able to do basic command dispatch, including git autocorrection, while using optparse-applicative for the core commandline parsing. * Many commands are temporarily disabled before conversion. * Options are not wired in yet. * cmdnorepo actions don't work yet. Also, removed the [Command] list, which was only used in one place.
* Brought back the setkey plumbing command that was removed in 2011, since we ↵Gravatar Joey Hess2015-07-02
| | | | found a use case for it. Note that the command's syntax was changed for consistency.