aboutsummaryrefslogtreecommitdiff
path: root/Command
Commit message (Collapse)AuthorAge
* honor fileNameLengthLimit for quviGravatar Joey Hess2013-10-05
|
* addurl: Better sanitization of generated filenames.Gravatar Joey Hess2013-10-05
| | | | Use sanitizeFilePath rather than rolling our own sanitizer.
* quash warningGravatar Joey Hess2013-10-03
|
* Moved list of backends and remote types from status to version command.Gravatar Joey Hess2013-10-01
|
* git-annex-shell gcryptsetup commandGravatar Joey Hess2013-10-01
| | | | | This was the least-bad alternative to get dedicated key gcrypt repos working in the assistant.
* Merge branch 'master' of ssh://git-annex.branchable.com into sshgcryptGravatar Joey Hess2013-10-01
|\
* | fix transferring to gcrypt repo from direct mode repoGravatar Joey Hess2013-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | recvkey was told it was receiving a HMAC key from a direct mode repo, and that confused it into rejecting the transfer, since it has no way to verify a key using that backend, since there is no HMAC backend. I considered making recvkey skip verification in the case of an unknown backend. However, that could lead to bad results; a key can legitimately be in the annex with a backend that the remote git-annex-shell doesn't know about. Better to keep it rejecting if it cannot verify. Instead, made the gcrypt special remote not set the direct mode flag when sending (and receiving) files. Also, added some recvkey messages when its checks fail, since otherwise all that is shown is a confusing error message from rsync when the remote git-annex-shell exits nonzero.
| * fix direct mode switch permissions problemGravatar Joey Hess2013-09-30
|/ | | | Similar to how a similar problem with indirect was earlier fixed.
* Send a git-annex user-agent when downloading urls.Gravatar Joey Hess2013-09-28
| | | | | | | | | Overridable with --user-agent option. Not yet done for S3 or WebDAV due to limitations of libraries used -- nether allows a user-agent header to be specified. This commit sponsored by Michael Zehrer.
* remove *>=> and >=*> ; use <$$> insteadGravatar Joey Hess2013-09-27
| | | | | | | | I forgot I had <$$> hidden away in Utility.Applicative. It allows doing the same kind of currying as does >=*> and I found using it made the code more readable for me. (*>=> was not used)
* enabling rsync.net gcrypt reposGravatar Joey Hess2013-09-26
| | | | | Still need to detect when the user is trying to create a repo that already exists, and jump to the enabling code.
* add, import, assistant: Better preserve the mtime of symlinks, when when ↵Gravatar Joey Hess2013-09-25
| | | | | | | adding content that gets deduplicated. Note that this turned out to remove a syscall, not add any expense. Otherwise, I would not have done it.
* indirect: Better behavior when a file in direct mode is not owned by the ↵Gravatar Joey Hess2013-09-25
| | | | user running the conversion.
* hlintGravatar Joey Hess2013-09-25
| | | | test suite still passes
* git-annex-shell: Added support for operating inside gcrypt repositories.Gravatar Joey Hess2013-09-24
| | | | | | * Note that the layout of gcrypt repositories has changed, and if you created one you must manually upgrade it. See http://git-annex.branchable.com/upgrades/gcrypt/
* factor out more ssh stuff from git remoteGravatar Joey Hess2013-09-24
| | | | | This has the dual benefits of making Remote.Git shorter, and letting Remote.GCrypt use these utilities.
* list --allreposGravatar Joey Hess2013-09-19
|
* more completely solve catKey memory leakGravatar Joey Hess2013-09-19
| | | | | | | | | | | | | | | | | | | Done using a mode witness, which ensures it's fixed everywhere. Fixing catFileKey was a bear, because git cat-file does not provide a nice way to query for the mode of a file and there is no other efficient way to do it. Oh, for libgit2.. Note that I am looking at tree objects from HEAD, rather than the index. Because I cat-file cannot show a tree object for the index. So this fix is technically incomplete. The only cases where it matters are: 1. A new large file has been directly staged in git, but not committed. 2. A file that was committed to HEAD as a symlink has been staged directly in the index. This could be fixed a lot better using libgit2.
* sync, pre-commit, indirect: Avoid unnecessarily catting non-symlink files ↵Gravatar Joey Hess2013-09-19
| | | | from git, which can be so large it runs out of memory.
* creditGravatar Joey Hess2013-09-19
|
* rename remotes to listGravatar Antoine Beaupré2013-09-19
|
* make --fast disable the numcopies statsGravatar Joey Hess2013-09-15
| | | | Looking up the location log for every key is not the fastest operation..
* status: In local mode, displays information about variance from configured ↵Gravatar Joey Hess2013-09-15
| | | | numcopies levels.
* addurl: Fix quvi audodetection, broken in last release.Gravatar Joey Hess2013-09-15
|
* sync: Don't fail if the directory it is run in gets removed by the sync.Gravatar Joey Hess2013-09-13
|
* fsck: Fix detection and fixing of present direct mode files that are wrongly ↵Gravatar Joey Hess2013-09-13
| | | | represented as standin symlinks on crippled filesystems.
* remotes: New command, displays a compact table of remotes that contain ↵Gravatar Joey Hess2013-09-12
| | | | | | | | | | | | | files. (Thanks, anarcat for display code and mastensg for inspiration.) Note that it would be possible to extend the display to show all repositories. But there can be a lot of repositories that are not set up as remotes, and it would significantly clutter the display to show them all. Since we're not showing all repositories, it's not worth trying to show numcopies count either. I decided to embrace these limitations and call the command remotes.
* sync: support gcrypt4.20130909Gravatar Joey Hess2013-09-09
|
* Allow building without quvi support.Gravatar Joey Hess2013-09-09
|
* partially complete gcrypt remote (local send done; rest not)Gravatar Joey Hess2013-09-07
| | | | | | | | | | | | | | | | | | | | | | | | This is a git-remote-gcrypt encrypted special remote. Only sending files in to the remote works, and only for local repositories. Most of the work so far has involved making initremote work. A particular problem is that remote setup in this case needs to generate its own uuid, derivied from the gcrypt-id. That required some larger changes in the code to support. For ssh remotes, this will probably just reuse Remote.Rsync's code, so should be easy enough. And for downloading from a web remote, I will need to factor out the part of Remote.Git that does that. One particular thing that will need work is supporting hot-swapping a local gcrypt remote. I think it needs to store the gcrypt-id in the git config of the local remote, so that it can check it every time, and compare with the cached annex-uuid for the remote. If there is a mismatch, it can change both the cached annex-uuid and the gcrypt-id. That should work, and I laid some groundwork for it by already reading the remote's config when it's local. (Also needed for other reasons.) This commit was sponsored by Daniel Callahan.
* avoid double commit during transitionGravatar Joey Hess2013-09-03
| | | | | | The second commit had some bad refs which resulted in the race detection code running. But that commit was unnecessary anyway, it only was there to merge in the other refs.
* fix error propigating when unable to download feed itemGravatar Joey Hess2013-09-03
|
* Merge branch 'forget'Gravatar Joey Hess2013-09-03
|\ | | | | | | | | Conflicts: debian/changelog
* | importfeed: Also ignore transient problems with downloading content from feeds.Gravatar Joey Hess2013-09-03
| |
| * forget --drop-dead: Completely removes mentions of repositories that have ↵Gravatar Joey Hess2013-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | been marked as dead from the git-annex branch. Wrote nice pure transition calculator, and ugly code to stage its results into the git-annex branch. Also had to split up several Log modules that Annex.Branch needed to use, but that themselves used Annex.Branch. The transition calculator is limited to looking at and changing one file at a time. While this made the implementation relatively easy, it precludes transitions that do stuff like deleting old url log files for keys that are being removed because they are no longer present anywhere.
| * refactor git-annex branch log filename code into central locationGravatar Joey Hess2013-08-29
| | | | | | | | | | | | | | Having one module that knows about all the filenames used on the branch allows working back from an arbitrary filename to enough information about it to implement dropping dead remotes and doing other log file compacting as part of a forget transition.
| * sync, assistant: Force push of the git-annex branch.Gravatar Joey Hess2013-08-29
| | | | | | | | | | Necessary to ensure it gets pushed to remotes after being rewritten by forget. See inline rationalles for why I think this is safe!
| * add forget commandGravatar Joey Hess2013-08-28
|/ | | | | | | | | Works, more or less. --dead is not implemented, and so far a new branch is made, but keys no longer present anywhere are not scrubbed. git annex sync fails to push the synced/git-annex branch after a forget, because it's not a fast-forward of the existing synced branch. Could be fixed by making git-annex sync use assistant-style sync branches.
* Unused: bugfixGravatar guilhem2013-08-26
| | | | Detect staged files that are not in the working tree.
* fix reversion in unusedGravatar Joey Hess2013-08-26
| | | | | | The reversion was that, if a file was git rm'd, but still in branches, it would not be seen as used. Looking at both the added and the removed (or changed) files from the diff-index is a cheap way to fix that.
* whitespaceGravatar Joey Hess2013-08-25
|
* unnecessary do blockGravatar Joey Hess2013-08-25
|
* Speed up the 'unused' command.Gravatar guilhem2013-08-25
| | | | | | | | | | | Instead of populating the second-level Bloom filter with every key referenced in every Git reference, consider only those which differ from what's referenced in the index. Incidentaly, unlike with its old behavior, staged modifications/deletion/... will now be detected by 'unused'. Credits to joeyh for the algorithm. :-)
* better casesGravatar Joey Hess2013-08-22
|
* Youtube support! (And 53 other video hosts)Gravatar Joey Hess2013-08-22
| | | | | | | | | | When quvi is installed, git-annex addurl automatically uses it to detect when an page is a video, and downloads the video file. web special remote: Also support using quvi, for getting files, or checking if files exist in the web. This commit was sponsored by Mark Hepburn. Thanks!
* unused: Pay attention to symlinks that are not yet staged in the index.Gravatar Joey Hess2013-08-22
|
* mirror: New command, makes two repositories contain the same set of files.Gravatar Joey Hess2013-08-20
| | | | | | | | | | | | | | This is a simple approach for setting up a mirroring repository. It will work with any type of remotes. Mirror --from is more expensive than mirror --to in general. OTOH, mirror --from will get the file from any remote that has it, not only the named mirror remote. And if the named mirror remote is not the fastest available remote with a file, that can speed things up. It would be possible to make the assistant or watch command do a more dynamic mirroring, that didn't need to scan every time.
* implement import --deduplicate and import --clean-duplicatesGravatar Joey Hess2013-08-20
| | | | | | | | Note that --deduplicate currently checksums each file twice, once to see if it's a known key, and once when importing it. Perhaps this could be revisited and the extra checksum gotten rid of, at the cost of not locking down the file when adding it.
* Merge branch 'duplicate'Gravatar Joey Hess2013-08-20
|\ | | | | | | | | Conflicts: debian/changelog
* | sync, merge: Bug fix: Don't try to merge into master when in a bare repo.Gravatar Joey Hess2013-08-17
| |