aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG
Commit message (Collapse)AuthorAge
* Better ssh connection warmup when using -J for concurrency.Gravatar Joey Hess2018-03-07
| | | | | | Avoids ugly messages when forced ssh command is not git-annex-shell. This commit was sponsored by Ole-Morten Duesund on Patreon.
* implemented git-annex-shell p2pstdioGravatar Joey Hess2018-03-07
| | | | | | | | | | | Not yet used by git-annex, but this will allow faster transfers etc than using individual ssh connections and rsync. Not called git-annex-shell p2p, because git-annex p2p does something else and I don't want two subcommands with the same name between the two for sanity reasons. This commit was sponsored by Øyvind Andersen Holm.
* make sure that lockContentShared is always paired with an inAnnex checkGravatar Joey Hess2018-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | lockContentShared had a screwy caveat that it didn't verify that the content was present when locking it, but in the most common case, eg indirect mode, it failed to lock when the content is not present. That led to a few callers forgetting to check inAnnex when using it, but the potential data loss was unlikely to be noticed because it only affected direct mode I think. Fix data loss bug when the local repository uses direct mode, and a locally modified file is dropped from a remote repsitory. The bug caused the modified file to be counted as a copy of the original file. (This is not a severe bug because in such a situation, dropping from the remote and then modifying the file is allowed and has the same end result.) And, in content locking over tor, when the remote repository is in direct mode, it neglected to check that the content was actually present when locking it. This could cause git annex drop to remove the only copy of a file when it thought the tor remote had a copy. So, make lockContentShared do its own inAnnex check. This could perhaps be optimised for direct mode, to avoid the check then, since locking the content necessarily verifies it exists there, but I have not bothered with that. This commit was sponsored by Jeff Goeke-Smith on Patreon.
* Improve SHA*E extension extraction codeGravatar Joey Hess2018-03-05
| | | | | | | | | | | | | | | | | | | | Do not treat parts of the filename that contain punctuation or other non-alphanumeric characters as extensions. Before, such characters were filtered out. Note that in 38bd7ca3cce455c20edcee656c706939087c6a69 "foo.ba__________r" was munged to ".bar" and so incorrectly treated as an extension. That was fixed by changing the filter order, but not allowing punctuation seems a better fix. This assumes that extensions containing punctuation are rare. "_" seems the most likely character; I used it in ikiwiki "._comment" files. But I can't recall seeing it anywhere else. It certianly seems that no commonly used extensions contain punctuation. If git-annex doesn't treat "._comment" as an extension, it's not likely to break software that expects to see that extension like some software expects to see .epub or .mp3. This commit was sponsored by Jack Hill on Patreon.
* Dial back optimisation when building on armGravatar Joey Hess2018-03-04
| | | | | | | | | | | | | | | | | | | | | Prevent ghc and llc from running out of memory when optimising some files. Sean Whitton reported that doing this only in Test.hs was insufficient, the build still OOMed by the time it got to Test.hs. He had earlier found the build worked when these options are applied globally. See https://ghc.haskell.org/trac/ghc/ticket/14821 for why it needs -O1; once that's fixed it may suffice to use "GHC-Options: -O2 -optlo-O2", although it may also be that the -O1 prevents ghc from using/leaking as much memory. os(arm) should match armel, armhf, armeb, and arm. It probably also matches arm64, somewhat unfortunately since arm64 systems probably tend to have more memory. See list of arches in https://hackage.haskell.org/package/Cabal-1.22.2.0/docs/src/Distribution-System.html This commit was sponsored by Henrik Riomar on Patreon.
* Support exporttree=yes for rsync special remotes.Gravatar Joey Hess2018-02-28
| | | | | | | | | | | | | | | | | Renaming is not supported; it might be possible to use --fuzzy to get rsync to notice the file is being renamed, but that is a bit ..fuzzy. On the other hand, interrupted transfers of an exported file are resumed, since rsync is great at that. Had to adjust the exporttree docs, which said interrupted transfers would restart. Note that remove no longer makes the empty directory dummy, instead sending the top-level empty directory. This works just as well and I noticed the dummy was unncessary when refactoring it into removeGeneric. Verified that behavior of remove is not changed, and git annex testremote does pass. This commit was sponsored by Brock Spratlen on Patreon.
* releasing package git-annex version 6.201802276.20180227Gravatar Joey Hess2018-02-27
|
* remove chrpath hackGravatar Joey Hess2018-02-27
| | | | | | | | | | | | | | | | | | Makefile: Remove chrpath workaround for bug in cabal, which is no longer needed. https://github.com/haskell/cabal/issues/2717 says it uses RUNPATH instead of RPATH now, but I don't even see that for statically linked libraries; the bug with that appears to be fixed. cabal-install version 1.24.0.2 compiled using version 1.24.2.0 of the Cabal library I left the rpath removal using otool on OSX because those straight up broke the linker, and I don't know if the OSX autobuilder is updated to a new enough cabal to not need it. This commit was sponsored by Ewen McNeill on Patreon.
* wordingGravatar Joey Hess2018-02-26
|
* fix sync bug in direct modeGravatar Joey Hess2018-02-26
| | | | | | | sync: Fix bug that prevented pulling changes into direct mode repositories that were committed to remotes using git commit rather than git-annex sync. This commit was supported by the NSF-funded DataLad project.
* Fix metadata hook script to support non-ascii charactersGravatar Joey Hess2018-02-26
| | | | | | | | | | tips/automatically_adding_metadata/pre-commit-annex: Fix to not silently skip filenames containing non-ascii characters. git diff-index defaults to munging non-ascii characters. Using -z makes it not do that, and then we just change the nulls to newlines. This commit was sponsored by Jochen Bartl on Patreon.
* annex.merge-annex-branchesGravatar Joey Hess2018-02-22
| | | | | | | | | | | | | | Added annex.merge-annex-branches config setting which can be used to disable automatic merge of git-annex branches. I wonder if git-annex merge/sync/assistant should disable this setting? Not sure yet, so have not done so. May be that users will not set it in git config, but pass it via -c to commands that need it. Checking the config setting adds a very small overhead, but it's only checked once per command so should be insignificant. This commit was supported by the NSF-funded DataLad project.
* importfeed: Fix a failure when downloading with youtube-dl and the ↵Gravatar Joey Hess2018-02-22
| | | | | | | | | | | | | | destination subdirectory does not exist yet. Noticed while running this (which a user posted in a comment they deleted for some reason): git-annex importfeed https://vimeo.com/logiingimars/videos/rss The filename that youtube-dl suggests included a subdirectory, which didn't exist, so renaming to it failed. This commit was sponsored by mo on Patreon.
* Remove temporary code added in 6.20160619 to prime the mergedrefs log.Gravatar Joey Hess2018-02-22
| | | | | | Repositories that are upgraded from before that version to this one will not break, but will just not see the benefit of the mergedrefs log speeding things up, until one new ref gets merged in.
* wordingGravatar Joey Hess2018-02-19
|
* add --json-error-messages (not yet implemented)Gravatar Joey Hess2018-02-19
| | | | | | | | | | Added --json-error-messages option, which includes error messages in the json output, rather than outputting them to stderr. The actual rediretion of errors is not implemented yet, this is only the docs and option plumbing. This commit was supported by the NSF-funded DataLad project.
* fix --json-progress --json to be same as --json --json-progressGravatar Joey Hess2018-02-19
| | | | | | | Fix behavior of --json-progress followed by --json, in which the latter option disabled the former. This commit was supported by the NSF-funded DataLad project.
* Split Test.hs and avoid optimising it much, to need less memory to compile.Gravatar Joey Hess2018-02-18
| | | | | | | | The ghc options were found by Sean Whitton; the debian arm autobuilders need those to build w/o OOM, and it seems to involve llvm using too much memory to optimize Test. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
* git-annex.cabal: Once more try to not build the assistant on the hurd, ↵Gravatar Joey Hess2018-02-18
| | | | | | hopefully hackage finally recognises that OS. Last try was in 2015 https://github.com/haskell/hackage-server/issues/269
* --json: multi-line notesGravatar Joey Hess2018-02-16
| | | | | | | | | | | --json: When there are multiple lines of notes about a file, make the note field multiline, rather than the old behavior of only including the last line. Using newlines in the note is perhaps not ideal, but upgrading it to an array in this case would be an annoying inconsistency to need to deal with. This commit was sponsored by Ole-Morten Duesund on Patreon.
* Add gpg-agent to Build-Depends. Needed to run the test suite.Gravatar Joey Hess2018-02-14
| | | | | | | | | | | | | | Merged from Debian. I think what this actually deals with is the case where gpg is installed, but gpg-agent is not, since Utility.Gpg.stdParams enables --use-agent when GPG_BATCH is set, and the test suite enables GPG_BATCH. So, test suite will work with gpg not installed, or with both gpg and gpg-agent installed, but not with only gpg. For this reason, I've also put in an explicit dep on gnupg, although dpkg-dev recommends it and all debian package builds tend to have it available implicitly.
* fsck: Warn when required content is not present in the repository that ↵Gravatar Joey Hess2018-02-08
| | | | | | requires it. This commit was sponsored by Jack Hill on Patreon.
* datalad < 0.9.1 had a problem in its special remote protocol handling which ↵Gravatar Joey Hess2018-02-07
| | | | is broken by EXTENSIONS. Make the debian git-annex package conflict with the problem version of datalad.
* Added EXTENSIONS to external special remote protocol.Gravatar Joey Hess2018-02-07
| | | | | | | | | | | | | | | Allows using new special remote messages when git-annex supports them, and avoiding using them when git-annex is too old. The new INFO is one such message. There's also the possibility, currently unused, for the special remote's reply to include some kind of extensions of its own. Merging this is blocked by https://github.com/datalad/datalad/issues/2124 since it seems it will break datalad. I checked all the other special remotes and they will be ok. This commit was supported by the NSF-funded DataLad project.
* Added INFO to external special remote protocol.Gravatar Joey Hess2018-02-06
| | | | | | | It's left up to the special remote to detect when git-annex is new enough to support the message; an old git-annex will blow up. This commit was supported by the NSF-funded DataLad project.
* inprogress: Avoid showing failures for files not in progress.Gravatar Joey Hess2018-01-24
|
* releasing package git-annex version 6.201801126.20180112Gravatar Joey Hess2018-01-12
|
* add remote.<name>.annex-checkuuidGravatar Joey Hess2018-01-10
| | | | | | | | | | | | | | | | | Added remote.<name>.annex-checkuuid config, which can be set to false to disable the default checking of the uuid of remotes that point to directories. This can be useful to avoid unncessary drive spin-ups and automounting. Note that the UUID check is still done before writing to the repository, to avoid writing to the wrong repository if it got relocated. Check is also done before checkPresent to avoid getting confused about what is in which repo. This is effectively the same as the use of git-annex-shell with a uuid to check that the remote repository is the expected one. Did not bother with the check for retrieveKeyFile because it doesn't matter if the wrong repo is used then. This commit was sponsored by Trenton Cronholm on Patreon.
* Improve startup time for commands that do not operate on remotesGravatar Joey Hess2018-01-09
| | | | | | | | | | | | | | And for tab completion, by not unnessessarily statting paths to remotes, which used to cause eg, spin-up of removable drives. Got rid of the remotes member of Git.Repo. This was a bit painful. Remote.Git modifies the list of remotes as it reads their configs, so still need a persistent list of remotes. So, put it in as Annex.gitremotes. It's only populated by getGitRemotes, so commands like examinekey that don't care about remotes won't do so. This commit was sponsored by Jake Vosloo on Patreon.
* switch distribution name to "upstream"Gravatar Joey Hess2018-01-05
| | | | to not imply that this changelog has anything to do with debian unstable
* Fix several places where files in .git/annex/ were written with modes that ↵Gravatar Joey Hess2018-01-02
| | | | | | | | | | did not take the core.sharedRepository config into account. git grep writeFile finds some more that might also be problems, but for now I've concentrated on .git/annex/ log files. There are certianly cases where writeFile is not a problem too. This commit was sponsored by mo on Patreon.
* unused: Write .git/annex/unused etc files with appropriate permissions for ↵Gravatar Joey Hess2018-01-02
| | | | | | the core.sharedRepository config. This commit was sponsored by an anonymous bitcoin donor.
* finally really add back custom-setup stanzaGravatar Joey Hess2017-12-31
| | | | | | | | | | | | Fourth or fifth try at this and finally found a way to make it work. Absurd amount of busy-work forced on me by change in cabal's behavior. Split up Utility modules that need posix stuff out of ones used by Setup. Various other hacks around inability for Setup to use anything that ifdefs a use of unix. Probably lost a full day of my life to this. This is how build systems make their users hate them. Just saying.
* addurl: Fix encoding of filename queried from youtube-dl when in --fast mode.Gravatar Joey Hess2017-12-31
| | | | | | | | And also now in non-fast mode, since it was just changed to query for the filename separately. And avoid processTranscript which mixed up stdout and stderr and could have led to weirdness if there were warnings that didn't get suppressed.
* repeated addurl behavior reversion fixGravatar Joey Hess2017-12-31
| | | | | | | | addurl: When the file youtube-dl will download is already an annexed file, don't download it again and fail to overwrite it, instead just do nothing, like it used to when quvi was used. This commit was sponsored by Anthony DeRobertis on Patreon.
* Revert "git-annex.cabal: Add back custom-setup stanza, so cabal new-build ↵Gravatar Joey Hess2017-12-31
| | | | | | | | | | | works." This reverts commit c7c745d28868c8cd646d3e31dd8ba6a0b763f611. No, still doesn't work when built with cabal. It did with stack; stack must somehow make the unix package implicitly available. With cabal, System.Posix.Process and System.Posix.Env are both missing.
* git-annex.cabal: Add back custom-setup stanza, so cabal new-build works.Gravatar Joey Hess2017-12-31
| | | | | | | | Seems I had all the work in past commits to make this build, at least on linux. I'm actually surprised it does, without a unix dep, Utility.Env still builds ok somehow despite using System.Posix.Env. This commit was sponsored by Fernando Jimenez on Patreon.
* Fix bug introduced in version 6.20171018 that caused some commands to print ↵Gravatar Joey Hess2017-12-28
| | | | | | out "ok" twice after processing a file. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon
* Added inprogress command for accessing files as they are being downloaded.Gravatar Joey Hess2017-12-28
| | | | | | | | Chose to make this only handle files actively being downloaded, not temp files for downloads that were interrupted or files that have been fully downloaded. This commit was sponsored by Ole-Morten Duesund on Patreon.
* Removed the testsuite build flagGravatar Joey Hess2017-12-20
| | | | | | | | | | Test suite is always included. Building with this flag disabled has actually been broken for some time, since Command.TestRemote uses tasty. Fewer build flags are better, so good time to drop it. This commit was sponsored by Thomas Hochstein on Patreon.
* releasing package git-annex version 6.201712146.20171214Gravatar Joey Hess2017-12-14
|
* .noannex fileGravatar Joey Hess2017-12-13
| | | | | | | | | | | | | A top-level .noannex file will prevent git-annex init from being used in a repository. This is useful for repositories that have a policy reason not to use git-annex. The content of the file will be displayed to the user who tries to run git-annex init. This also affects git annex reinit and initialization via the webapp. It does not affect automatic inits, when there's a sibling git-annex branch already. This commit was supported by the NSF-funded DataLad project.
* lookupkey absolute path supportGravatar Joey Hess2017-12-08
| | | | | | | lookupkey: Support being given an absolute filename to a file within the current git repository. This commit was supported by the NSF-funded DataLad project.
* fix gpg subkey support typoGravatar Joey Hess2017-12-05
| | | | | | | | initremote, enableremote: Really support gpg subkeys suffixed with an exclamation mark, which forces gpg to use a specific subkey. (Previous try had a bug.) This commit was sponsored by Jake Vosloo on Patreon.
* Allow exporttree remotes to be marked as dead.Gravatar Joey Hess2017-12-05
| | | | | | Union with max so that DeadTrusted wins over UnTrusted. This commit was sponsored by Trenton Cronholm on Patreon.
* Removed no longer needed dependency on yesod-default.Gravatar Joey Hess2017-12-05
| | | | This commit was sponsored by Nick Daly on Patreon.
* rethought --relaxed changeGravatar Joey Hess2017-11-30
| | | | | | | | | Better to make it not be surprising and slow, than surprising and fast. --raw can be used when it needs to be really fast. Implemented adding a youtube-dl supported url to an existing file. This commit was sponsored by andrea rota.
* convert importfeed to youtube-dlGravatar Joey Hess2017-11-29
| | | | | | | | | | | | | | | | | | | | | | | | Fully working, including --fast/--relaxed. Note that, while git-annex addurl --relaxed is not going to check youtube-dl, I kept git annex importfeed --relaxed checking it. Thinking is that, let's not break people's importfeed cron jobs, and importfeed does not typically have to check a large number of new items, so it's ok if it's a little bit slower when used with youtube playlist feeds. importfeed's behavior is also improved (?) when a feed has links in it to non-media files. Before, those were skipped. Now, the content of the link is downloaded. This had to be done, because trying to use youtube-dl is slow, and if those were skipped, it would have to check every time importfeed was run. While this behavior change may not be desirable for some feeds, that intersperse links to web pages with enclosures, it will be desirable for other feeds, that have non-enclosure directy links to media files. Remove old quvi modules. This commit was sponsored by Øyvind Andersen Holm.
* wipGravatar Joey Hess2017-11-28
|
* documentation update for youtube-dlGravatar Joey Hess2017-11-28
| | | | | | Code not updated yet. This commit was sponsored by Thomas Hochstein on Patreon.