summaryrefslogtreecommitdiff
path: root/Command
Commit message (Collapse)AuthorAge
* reorgGravatar Joey Hess2014-01-26
|
* reorgGravatar Joey Hess2014-01-26
|
* reorganize some files and importsGravatar Joey Hess2014-01-26
|
* refactorGravatar Joey Hess2014-01-26
|
* whereis: Support --all.Gravatar Joey Hess2014-01-26
|
* fix transfers of key with no associated fileGravatar Joey Hess2014-01-23
| | | | | | | | | | | | | | | | | Several places assumed this would not happen, and when the AssociatedFile was Nothing, did nothing. As part of this, preferred content checks pass the Key around. Note that checkMatcher is sometimes now called with Just Key and Just File. It currently constructs a FileMatcher, ignoring the Key. However, if it constructed a FileKeyMatcher, which contained both, then it might be possible to speed up parts of Limit, which currently call the somewhat expensive lookupFileKey to get the Key. I have not made this optimisation yet, because I am not sure if the key is always the same. Will need some significant checking to satisfy myself that's the case..
* add timestamps to unused log filesGravatar Joey Hess2014-01-22
| | | | | | | | | | This will be used in expiring old unused objects. The timestamp is when it was first noticed it was unused. Backwards compatability: It supports reading old format unused log files. The old version of git-annex will ignore lines in log files written by the new version, so the worst interop problem would be git annex dropunused not knowing some numbers that git-annex unused reported.
* reorgGravatar Joey Hess2014-01-21
|
* numcopies cleanup, part 2Gravatar Joey Hess2014-01-21
| | | | This includes several bug fixes.
* reorganize numcopies code (no behavior changes)Gravatar Joey Hess2014-01-21
| | | | | | | Move stuff into Logs.NumCopies. Add a NumCopies newtype. Better names for various serialization classes that are specific to one thing or another.
* expose tasty test suite's option parserGravatar Joey Hess2014-01-21
|
* global numcopies settingGravatar Joey Hess2014-01-20
| | | | | | | | | | | | | | | | | | | | | | | * numcopies: New command, sets global numcopies value that is seen by all clones of a repository. * The annex.numcopies git config setting is deprecated. Once the numcopies command is used to set the global number of copies, any annex.numcopies git configs will be ignored. * assistant: Make the prefs page set the global numcopies. This global numcopies setting is needed to let preferred content expressions operate on numcopies. It's also convenient, because typically if you want git-annex to preserve N copies of files in a repo, you want it to do that no matter which repo it's running in. Making it global avoids needing to warn the user about gotchas involving inconsistent annex.numcopies settings. (See changes to doc/numcopies.mdwn.) Added a new variety of git-annex branch log file, that holds only 1 value. Will probably be useful for other stuff later. This commit was sponsored by Nicolas Pouillard.
* much better command action handling for sync --contentGravatar Joey Hess2014-01-20
|
* fix inversion of control in CommandSeek (no behavior changes)Gravatar Joey Hess2014-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've been disliking how the command seek actions were written for some time, with their inversion of control and ugly workarounds. The last straw to fix it was sync --content, which didn't fit the Annex [CommandStart] interface well at all. I have not yet made it take advantage of the changed interface though. The crucial change, and probably why I didn't do it this way from the beginning, is to make each CommandStart action be run with exceptions caught, and if it fails, increment a failure counter in annex state. So I finally remove the very first code I wrote for git-annex, which was before I had exception handling in the Annex monad, and so ran outside that monad, passing state explicitly as it ran each CommandStart action. This was a real slog from 1 to 5 am. Test suite passes. Memory usage is lower than before, sometimes by a couple of megabytes, and remains constant, even when running in a large repo, and even when repeatedly failing and incrementing the error counter. So no accidental laziness space leaks. Wall clock speed is identical, even in large repos. This commit was sponsored by an anonymous bitcoiner.
* include information about remotes just uloaded to when calling handleDropsFromGravatar Joey Hess2014-01-19
|
* sync --content: New option that makes the content of annexed files be ↵Gravatar Joey Hess2014-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | transferred. Similar to the assistant, this honors any configured preferred content expressions. I am not entirely happpy with the implementation. It would be nicer if the seek function returned a list of actions which included the individual file gets and copies and drops, rather than the current list of calls to syncContent. This would allow getting rid of the somewhat reundant display of "sync file [ok|failed]" after the get/put display. But, do that, withFilesInGit would need to somehow be able to construct such a mixed action list. And it would be less efficient than the current implementation, which is able to reuse several values between eg get and drop. Note that currently this does not try to satisfy numcopies when getting/putting files (numcopies are of course checked when dropping files!) This makes it like the assistant, and unlike get --auto and copy --auto, which do duplicate files when numcopies is not yet satisfied. I don't know if this is the right decision; it only seemed to make sense to have this parallel the assistant as far as possible to start with, since I know the assistant works. This commit was sponsored by Øyvind Andersen Holm.
* improve matcher data type to allow matching Keys, instead of just files (no ↵Gravatar Joey Hess2014-01-18
| | | | behavior changes)
* list: Fix specifying of files to list.Gravatar Joey Hess2014-01-18
|
* improve output when there are no known special remotesGravatar Joey Hess2014-01-18
|
* whereis supports --json, add optionGravatar Joey Hess2014-01-18
|
* status: Support --json.Gravatar Joey Hess2014-01-18
|
* Remove --json option from commands not supporting it.Gravatar Joey Hess2014-01-18
|
* avoid trying to find minimum element of empty mapGravatar Joey Hess2014-01-18
|
* Really fix FTBFS on mipsel and sparc due to test suite not being available ↵Gravatar Joey Hess2014-01-17
| | | | on those architectures.
* Fix FTBFS on mipsel and sparc due to test suite not being available on those ↵Gravatar Joey Hess2014-01-15
| | | | architectures.
* repair: better messages when nuking .git/annex/indexGravatar Joey Hess2014-01-13
|
* map: Fix display of v5 direct mode repos.Gravatar Joey Hess2014-01-13
| | | | | The direct mode guard confused map. So need to run through Annex.new to get the actual path to the repo.
* add: Fix rollback when disk is completely full.Gravatar Joey Hess2014-01-05
| | | | | | | | Noticed that it was possible for add to move a file to .git/annex/objects and not make the link if the disk was full. This happened because the location log update failed, and so addLink never got a chance to run. Running addLink first fixes it; on error it will unwind by moving the file back to where it was originally.
* fix form of quvi urlGravatar Joey Hess2014-01-05
|
* check if quvi page url has already been downloaded beforeGravatar Joey Hess2014-01-05
| | | | | | That is the url that is typically stored in the git-annex branch. Kept the check for the video url too, just in case.
* also check diskreserve for quvi downloadsGravatar Joey Hess2014-01-04
|
* addurl, importfeed: Honor annex.diskreserve as long as the size of the url ↵Gravatar Joey Hess2014-01-04
| | | | | | | | can be checked. This adds a http HEAD before the download is done. That was already the case when the assistant was running, and it seems worth it to avoid filling up the whole disk, like happened to my server today.
* wanted, schedule: Avoid printing "ok" after requested value.Gravatar Joey Hess2014-01-03
|
* Remotes can now be made read-only, by setting remote.<name>.annex-readonlyGravatar Joey Hess2014-01-02
|
* mirror: Support --all (and --unused).Gravatar Joey Hess2014-01-01
|
* importfeed: Support youtube playlists.Gravatar Joey Hess2013-12-29
|
* Auto-upgrade v3 indirect repos to v5 with no changes. This also fixes a ↵Gravatar Joey Hess2013-12-29
| | | | problem when a direct mode repo was somehow set to v3 rather than v4, and so the automatic direct mode upgrade to v5 was not done.
* update commentGravatar Joey Hess2013-12-19
|
* Add plumbing-level lookupkey examinekey command.Gravatar Joey Hess2013-12-15
| | | | | find --format: Added hashdirlower, hashdirmixed, keyname, and mtime format variables.
* Add plumbing-level lookupkey command.Gravatar Joey Hess2013-12-15
|
* pull in Win32-extras, to be able to get current process id in WindowsGravatar Joey Hess2013-12-11
| | | | | | | | | Fixed up a number of things that had worked around there not being a way to get that. Most notably, transfer info files on windows now include the process id, since no locking is currently done. This means the file format varies between windows and unix.
* port transferkeys to windows; make stopping in progress transfers work too ↵Gravatar Joey Hess2013-12-10
| | | | | | | | | | | | | | | (probably) transferkeys had used special FDs for communication, but that would be quite annoying to do in Windows. Instead, use stdin and stdout. But, to avoid commands like rsync stomping on them and messing up the communications channel, they're duplicated to a different handle; stdin is replaced with a null handle, and stdout is replaced with a copy of stderr. This should all work in windows too. Stopping in progress transfers may work on windows.. if the types unify anyway. ;) May need some more porting.
* repair: Remove damaged git-annex sync branches.Gravatar Joey Hess2013-12-10
|
* Improve repair of git-annex index file.Gravatar Joey Hess2013-12-10
| | | | | | | | | | Fixes a test case I received where a corrupted repo was repaired, but the git-annex branch was not. The root of the problem was that the MissingObject returned by the repair code was not necessarily a complete set of all objects that might have been deleted during the repair. So, stop trying to return that at all, and instead make the index file checking code explicitly verify that each object the index uses is present.
* better handling of overwriting an existing file/directory/broken link when ↵Gravatar Joey Hess2013-12-09
| | | | | | | | | importing Previous test did not notice if there is a dangling symlink. Also, if a directory exists with the same name as the imported file, that cannot work, so don't let --force have an effect.
* lock: Require --force.Gravatar Joey Hess2013-12-05
|
* import: Add --skip-duplicates option.Gravatar Joey Hess2013-12-04
| | | | | | | Note that the hash backends were made to stop printing a (checksum..) message as part of this, since it showed up without a file when deciding whether to act on a file. Should have probably removed that message a while ago anyway, I suppose.
* copy --from, get --from: When --force is used, ignore the location log and ↵Gravatar Joey Hess2013-12-02
| | | | always try to get the file from the remote.
* better name for continuationGravatar Joey Hess2013-12-01
|
* Avoid using git commit in direct mode, since in some situations it will read ↵Gravatar Joey Hess2013-12-01
| | | | | | | | | | | | the full contents of files in the tree. The assistant's commit code also always avoids git commit, for simplicity. Indirect mode sync still does a git commit -a to catch unstaged changes. Note that this means that direct mode sync no longer runs the pre-commit hook or any other hooks git commit might call. The git annex pre-commit hook action for direct mode is however explicitly run. (The assistant already ran git commit with hooks disabled, so no change there.)