summaryrefslogtreecommitdiff
path: root/Command
Commit message (Collapse)AuthorAge
* show a message to tell why adding a file failedGravatar Joey Hess2013-04-23
|
* add: avoid ugly error message when adding a deleted file in direct modeGravatar Joey Hess2013-04-23
| | | | | | Due to add using withFilesMaybeModified, it will get files that have been deleted but are still in the index. So catch the IO error that results when trying to stat such a file.
* sync: Commit in direct mode even if no changes were stagedGravatar Joey Hess2013-04-23
| | | | | | | | There may be already staged changes from a prior `git annex add`, so always commit. Also, suppressed the commit output, since it contains noise due to typechanged files in direct mode.
* rename moduleGravatar Joey Hess2013-04-23
|
* expose Control.Monad.joinGravatar Joey Hess2013-04-22
| | | | | I think I've been looking for that function for some time. Ie, I remember wanting to collapse Just Nothing to Nothing.
* rmurl: New command, removes one of the recorded urls for a file.Gravatar Joey Hess2013-04-22
|
* direct, indirect: Refuse to do anything when the assistant or git-annex ↵Gravatar Joey Hess2013-04-22
| | | | watch daemon is running.
* Detect systems that have no user name set in GECOS, and also don't have ↵Gravatar Joey Hess2013-04-22
| | | | user.name set in git config, and put in a workaround so that commits to the git-annex branch (and the assistant) will still succeed despite git not liking the system configuration.
* sync, assistant: Sync with remotes that have annex-ignore setGravatar Joey Hess2013-04-22
| | | | | | | | This is so git remotes on servers without git-annex installed can be used to keep clients' git repos in sync. This is a behavior change, but since annex-sync can be set to disable syncing with a remote, I think it's acceptable.
* change sectionGravatar Joey Hess2013-04-20
|
* improve usage messagesGravatar Joey Hess2013-04-20
|
* untested browser opening on AndroidGravatar Joey Hess2013-04-18
| | | | | I've found multiple references to using the `am` command from the adb shell to open a browser. So I assume it also works in a terminal emulator.
* fsck: Check content of direct mode files (only when the inode cache thinks ↵Gravatar Joey Hess2013-04-16
| | | | | | | they are unmodified). I wrote this earlier, but it never worked because it was looking at the .git/annex/object content, which is not there..
* turn on PackageImports globallyGravatar Joey Hess2013-04-13
| | | | | | | This will make it easier to use the Evil Splicer, when it needs to add package qualified imports And there's no real downside.
* connect existing meters to the transfer log for downloadsGravatar Joey Hess2013-04-11
| | | | | | | | | | | | | | Most remotes have meters in their implementations of retrieveKeyFile already. Simply hooking these up to the transfer log makes that information available. Easy peasy. This is particularly valuable information for encrypted remotes, which otherwise bypass the assistant's polling of temp files, and so don't have good progress bars yet. Still some work to do here (see progressbars.mdwn changes), but this is entirely an improvement from the lack of progress bars for encrypted downloads.
* addurl: Register transfer so the webapp can see it.Gravatar Joey Hess2013-04-11
| | | | | | * addurl: Register transfer so the webapp can see it. * addurl: Automatically retry downloads that fail, as long as some additional content was downloaded.
* addurl: Bugfix: Did not properly add file in direct mode.Gravatar Joey Hess2013-04-11
|
* webapp: New --listen= option allows running the webapp on one computer and ↵Gravatar Joey Hess2013-04-08
| | | | | | | connecting to it from another. Does not yet use HTTPS. I'd need to generate a certificate, and I'm not sure what's the best way to do that.
* Bugfix: Direct mode no longer repeatedly checksums duplicated files.Gravatar Joey Hess2013-04-06
| | | | | | | | | | | | | | | | | Fixed by storing a list of cached inodes for a key, instead of just one. Backwards compatability note: An old git-annex version will fail to parse an inode cache file that has been written by a new version, and has multiple items. It will succees if just one. So old git-annexes will have even worse behavior when there are duplicated files, if that is possible. I don't think it will be a problem. (Famous last words.) Also, note that it doesn't expire old and unused inode caches for a key. It would be possible to add this if needed; just look through the associated files for a key and if there are more cached inodes, throw out any not corresponding to associated files. Unless a file is being copied repeatedly and the old copy deleted, this lack of expiry should not be a problem.
* Use lower case hash directories for storing files on crippled filesystems, ↵Gravatar Joey Hess2013-04-04
| | | | | | | | | | | | | | | same as is already done for bare repositories. * since this is a crippled filesystem anyway, git-annex doesn't use symlinks on it * so there's no reason to use the mixed case hash directories that we're stuck using to avoid breaking everyone's symlinks to the content * so we can do what is already done for all bare repos, and make non-bare repos on crippled filesystems use the all-lower case hash directories * which are, happily, all 3 letters long, so they cannot conflict with mixed case hash directories * so I was able to 100% fix this and even resuming `git annex add` in the test case will recover and it will all just work.
* clean up urlrenderer handling when the webapp is not builtGravatar Joey Hess2013-04-03
|
* squelch protocol error on shutdownGravatar Joey Hess2013-04-02
|
* Update working tree files fully atomicallyGravatar Joey Hess2013-04-02
| | | | | | | | | | | This avoids commit churn by the assistant when eg, replacing a file with a symlink. But, just as importantly, it prevents the working tree being left with a deleted file if git-annex, or perhaps the whole system, crashes at the wrong time. (It also probably avoids confusing displays in file managers.)
* drop --auto: Fix bug that prevented dropping files from untrusted repositories.Gravatar Joey Hess2013-04-01
| | | | This is a corresponding bug to the one I fixed yesterday in the assistant.
* webapp: Added UI to delete repositories. Closes: #689847Gravatar Joey Hess2013-03-31
|
* minor refactoringGravatar Joey Hess2013-03-30
|
* let's use words and unwords rather than split and intercalate " "Gravatar Joey Hess2013-03-30
|
* Make git-annex-shell call the command with its (safe) options.Gravatar guilhem2013-03-30
|
* add --force overrides annex.largefilesGravatar Joey Hess2013-03-29
|
* New annex.largefiles setting, which configures which files `git annex add` ↵Gravatar Joey Hess2013-03-29
| | | | | | | | | | | | | and the assistant add to the annex. I would have sort of liked to put this in .gitattributes, but it seems it does not support multi-word attribute values. Also, making this a single config setting makes it easy to only parse the expression once. A natural next step would be to make the assistant `git add` files that are not annex.largefiles. OTOH, I don't think `git annex add` should `git add` such files, because git-annex command line tools are not in the business of wrapping git command line tools.
* webapp: Progess bar fixes for many types of special remotes.Gravatar 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.
* Per-command usage messages.Gravatar Joey Hess2013-03-27
|
* add section metadata to all commandsGravatar Joey Hess2013-03-24
| | | | Not yet used .. mindless train work.
* 2 minor fixes to transferkeys, otherwise it was perfect 1st time!Gravatar Joey Hess2013-03-20
| | | | | | | | Needed to send a trailing NUL to end a request, and set the read handle non-blocking. Also, set fileSystemEncoding on all handles, since there's a filename in there.
* maintain pools of running transferkeys processes (untested)Gravatar Joey Hess2013-03-19
|
* implement transferkeys plumbing commandGravatar Joey Hess2013-03-19
|
* map: Combine duplicate repositories, for a nicer looking map.Gravatar Joey Hess2013-03-16
|
* fix relaxed with existing fileGravatar Joey Hess2013-03-12
|
* addurl: Add --relaxed option.Gravatar Joey Hess2013-03-11
|
* finish fast direct mode rename handling. wow, it's fastGravatar Joey Hess2013-03-11
|
* remove Eq instance for InodeCacheGravatar Joey Hess2013-03-11
| | | | | | | | | There are two types of equality here, and which one is right varies, so this forces me to consider and choose between them. Based on this, I learned that the commit in git anex sync was always doing a strong comparison, even when in a repository where the inodes had changed. Fixed that.
* skip non-directories in statusGravatar Joey Hess2013-03-11
|
* status: Can now be run with a directory path to show only the status of that ↵Gravatar Joey Hess2013-03-11
| | | | directory, rather than the whole annex.
* bugfix: drop --from an unavailable remote no longer updates the location ↵Gravatar Joey Hess2013-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | log, incorrectly, to say the remote does not have the key. The comments correctly noted that the remote could drop the key and yet False be returned due to some problem that occurred afterwards. For example, if it's a network remote, it could drop the key just as the network goes down, and so things timeout and a nonzero exit from ssh is propigated through and False returned. However... Most of the time, this scenario will not have happened. False will mean the remote was not available or could not drop the key at all. So, instead of assuming the worst, just trust the status we have. If we get it wrong, and the scenario above happened, our location log will think the remote has the key. But the remote's location log (assuming it has one) will know it dropped it, and the next sync will regain consistency. For a special remote, with no location log, our location log will be wrong, but this is no different than the situation where someone else dropped the key from the remote and we've not synced with them. The standard paranoia about not trusting the location log to be the last word about whether a remote has a key will save us from these situations. Ie, if we try to drop the file, we'll actively check the remote, and determine the inconsistency then.
* add build flags to version outputGravatar Joey Hess2013-03-09
|
* two types of byNameGravatar Joey Hess2013-03-05
| | | | | | | | Clean up from 5123a1a83aa3b954fe67629508bab5ccea0e4148. In some cases, looking up a remote by name even though it has no UUID is desirable. This includes git annex sync, which can operate on remotes without an annex, and XMPP pairing, which runs addRemote (with calls byName) before the UUID of the XMPP remote has been configured in git.
* webapp: New preferences page allows enabling/disabling debug logging at ↵Gravatar Joey Hess2013-03-03
| | | | runtime, as well as configuring numcopies and diskreserve.
* git subcommand cleanupGravatar Joey Hess2013-03-03
| | | | | | Pass subcommand as a regular param, which allows passing git parameters like -c before it. This was already done in the pipeing set of functions, but not the command running set.
* break dependency cycle by special casing running of test commandGravatar Joey Hess2013-02-27
|
* embed test suite into git annex; available by running: git annex testGravatar Joey Hess2013-02-27
| | | | | | | | | | | | | | I have seen some other programs do this, and think it's pretty cool. Means you can test wherever it's deployed, as well as at build time. My other reason for doing it is less happy. Cabal's handling of test suites sucks, requiring duplicated info, and even when that's done, it fails to preprocess hsc files here. Building it in avoids that and avoids having to explicitly tell cabal to enable test suites, which would then make it link the test executable every time, which is unnecessarily slow. This also has the benefit that now "make fast test" does a max speed build and tests it.