summaryrefslogtreecommitdiff
path: root/Types.hs
Commit message (Collapse)AuthorAge
* plumb VerifyConfig into retrieveKeyFileJoey Hess2021-08-17
| | | | | | | | This fixes the recent reversion that annex.verify is not honored, because retrieveChunks was passed RemoteVerify baser, but baser did not have export/import set up. Sponsored-by: Dartmouth College's DANDI project
* update licenses from GPL to AGPLJoey Hess2019-03-13
| | | | | | | | | | | | | | | | | | This does not change the overall license of the git-annex program, which was already AGPL due to a number of sources files being AGPL already. Legally speaking, I'm adding a new license under which these files are now available; I already released their current contents under the GPL license. Now they're dual licensed GPL and AGPL. However, I intend for all my future changes to these files to only be released under the AGPL license, and I won't be tracking the dual licensing status, so I'm simply changing the license statement to say it's AGPL. (In some cases, others wrote parts of the code of a file and released it under the GPL; but in all cases I have contributed a significant portion of the code in each file and it's that code that is getting the AGPL license; the GPL license of other contributors allows combining with AGPL code.)
* better dup key with -J fixJoey Hess2017-10-17
| | | | | | | | | | | | | | | This avoids all the complication about redundant work discussed in the previous try at fixing this. At the expense of needing each command that could have the problem to be patched to simply wrap the action in onlyActionOn once the key is known. But there do not seem to be many such commands. onlyActionOn' should not be used with a CommandStart (or CommandPerform), although the types do allow it. onlyActionOn handles running the whole CommandStart chain. I couldn't immediately see a way to avoid mistken use of onlyActionOn'. This commit was supported by the NSF-funded DataLad project.
* Improve behavior when -J transfers multiple files that point to the same keyJoey Hess2017-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After a false start, I found a fairly non-intrusive way to deal with it. Although it only handles transfers -- there may be issues with eg concurrent dropping of the same key, or other operations. There is no added overhead when -J is not used, other than an added inAnnex check. When -J is used, it has to maintain and check a small Set, which should be negligible overhead. It could output some message saying that the transfer is being done by another thread. Or it could even display the same progress info for both files that are being downloaded since they have the same content. But I opted to keep it simple, since this is rather an edge case, so it just doesn't say anything about the transfer of the file until the other thread finishes. Since the deferred transfer action still runs, actions that do more than transfer content will still get a chance to do their other work. (An example of something that needs to do such other work is P2P.Annex, where the download always needs to receive the content from the peer.) And, if the first thread fails to complete a transfer, the second thread can resume it. But, this unfortunately means that there's a risk of redundant work being done to transfer a key that just got transferred. That's not ideal, but should never cause breakage; the same thing can occur when running two separate git-annex processes. The get/move/copy/mirror --from commands had extra inAnnex checks added, inside the download actions. Without those checks, the first thread downloaded the content, and then the second thread woke up and downloaded the same content redundantly. move/copy/mirror --to is left doing redundant uploads for now. It would need a second checkPresent of the remote inside the upload to avoid them, which would be expensive. A better way to avoid redundant work needs to be found.. This commit was supported by the NSF-funded DataLad project.
* AssociatedFile newtypeJoey Hess2017-03-10
| | | | | | To prevent any further mistakes like 301aff34c42d896038c42e0a0bc7b1cf71e0ad22 This commit was sponsored by Francois Marier on Patreon.
* remove module unused since switch to optparse-applicativeJoey Hess2016-01-21
|
* update my email address and homepage urlJoey Hess2015-01-21
|
* moved AssociatedFile definitionJoey Hess2013-07-04
|
* webapp: Progess bar fixes for many types of special remotes.Joey Hess2013-03-28
| | | | | | | | | | | | | There was confusion in different parts of the progress bar code about whether an update contained the total number of bytes transferred, or the number of bytes transferred since the last update. One way this bug showed up was progress bars that seemed to stick at zero for a long time. In order to fix it comprehensively, I add a new BytesProcessed data type, that is explicitly a total quantity of bytes, not a delta. Note that this doesn't necessarily fix every problem with progress bars. Particularly, buffering can now cause progress bars to seem to run ahead of transfers, reaching 100% when data is still being uploaded.
* type based git config handling for remotesJoey Hess2013-01-01
| | | | | Still a couple of places that use git config ad-hoc, but this is most of it done.
* type based git config handlingJoey Hess2012-12-29
| | | | | | | | | | | Now there's a Config type, that's extracted from the git config at startup. Note that laziness means that individual config values are only looked up and parsed on demand, and so we get implicit memoization for all of them. So this is not only prettier and more type safe, it optimises several places that didn't have explicit memoization before. As well as getting rid of the ugly explicit memoization code. Not yet done for annex.<remote>.* configuration settings.
* refactorJoey Hess2012-11-18
|
* tweakJoey Hess2012-01-06
|
* type alias cleanupJoey Hess2011-12-31
|
* add a UUID typeJoey Hess2011-11-07
| | | | Should have done this a long time ago.
* break out non-log stuff to separate moduleJoey Hess2011-10-15
|
* rename modules for data types into Types/ directoryJoey Hess2011-06-01
|
* rename fileJoey Hess2011-03-15
|
* first pass at using new keysJoey Hess2011-03-15
| | | | | | | It compiles. It sorta works. Several subcommands are FIXME marked and broken, because things that used to accept separate --backend and --key params need to be changed to accept just a --key that encodes all the key info, now that there is metadata in keys.
* rename TypeInternals to BackendTypesJoey Hess2011-01-26
| | | | Now that it only contains types used by the backends
* successfully split Annex and AnnexState out of TypeInternalsJoey Hess2011-01-25
|
* copyright statementsJoey Hess2010-10-27
|
* add dropkey subcommand and --quietJoey Hess2010-10-25
| | | | Needed for better git annex move --from
* new fromkey subcommand, for registering urls, etcJoey Hess2010-10-21
| | | | had to redo Annex monad's flag storage
* gratuitous renameJoey Hess2010-10-18
|
* add flags, and change to subcommand styleJoey Hess2010-10-14
|
* bugfixJoey Hess2010-10-14
|
* more reorg, spiffed up state monadJoey Hess2010-10-14
|
* more namespace cleanupJoey Hess2010-10-14
|
* convert GitRepo to qualified importJoey Hess2010-10-14
|
* updateJoey Hess2010-10-13
|
* use a state monadJoey Hess2010-10-13
| | | | enormous reworking
* autobugfixing!Joey Hess2010-10-13
| | | | | | | | Converted Key to a real data type and caught all the places where I used an unconverted filename as a key. Had to loose some sanity checks around whether something is already annexed, but I guess I can add those back other ways.
* bugfixesJoey Hess2010-10-12
|
* more stateJoey Hess2010-10-12
|
* thread State thru to backendsJoey Hess2010-10-12
|
* updateJoey Hess2010-10-12
|
* split up TypesJoey Hess2010-10-11
|
* add git config lookups for annex.name, annex.backends, etcJoey Hess2010-10-11
|
* updateJoey Hess2010-10-10
|
* cache whether a repo is bareJoey Hess2010-10-10
|
* updateJoey Hess2010-10-10
|
* updateJoey Hess2010-10-10