aboutsummaryrefslogtreecommitdiff
path: root/Logs
Commit message (Collapse)AuthorAge
...
| * fix transfer log cleanup crashGravatar Joey Hess2012-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid crashing when "git annex get" fails to download from one location, and falls back to downloading from a second location. The problem is that git annex get calls download recursively from within itself if the first download attempt fails. So the first time through, it writes a transfer info file, which is then overwritten on the second, recursive call. Then on cleanup, it tries to delete the file twice, which of course doesn't work. Fixed both by not crashing if the transfer file is removed, and by changing Get to not run download recursively like that. It's the only thing that did so, and it just seems like a bad idea.
* | webapp now displays the real running and queued transfersGravatar Joey Hess2012-07-27
| | | | | | | | yowza!!!
| * pull in transfer log code from assistant branchGravatar Joey Hess2012-07-18
| | | | | | | | New log file format.
* | fix parsing of startedTimeGravatar Joey Hess2012-07-18
| |
* | run file transfers in threads, not processesGravatar Joey Hess2012-07-18
| | | | | | | | | | | | This should fix OSX/BSD issues with not noticing transfer information files with kqueue. Now that threads are used, the thread can manage the transfer slot allocation and deallocation by itself; much cleaner.
* | add thread id field to transferinfoGravatar Joey Hess2012-07-18
| | | | | | | | | | Also converted its timestand to posix seconds, like is used in the other log files.
* | avoid parsing lock files as transfer filesGravatar Joey Hess2012-07-17
| | | | | | | | | | This seems to happen with kqueue, not inotify. The newly added lck file triggers an add event and was then parsed as a transfer file.
* | bugfixGravatar Joey Hess2012-07-17
| |
* | change transfer lock filenames to avoid ambiguityGravatar Joey Hess2012-07-17
| | | | | | | | | | foo.lck could be a lock file for a transfer of foo, or a transfer of a key that happened to end in ".lck". Fix this by using "lck.foo" instead.
* | split transfer info and lock filesGravatar Joey Hess2012-07-07
| | | | | | | | | | | | | | Since the lock file has to be kept open, this prevented the TransferWatcher from noticing when it appeared, since inotify (and more importantly kqueue) events happen when a new file is closed. Writing a separate info file fixes that problem.
* | wait on child transfer processes, and invalidate cacheGravatar Joey Hess2012-07-06
| | | | | | | | | | | | There's still a bug; if the child updates its transfer info file, then the data from it will superscede the TransferInfo, losing the info that we should wait on this child.
* | unfinished (and unbuildable) work toward separate transfer processesGravatar Joey Hess2012-07-05
| |
* | wrote transfer threadGravatar Joey Hess2012-07-05
| | | | | | | | finally!
| * startedTime needs to be a Maybe to handle transfers that have not started yetGravatar Joey Hess2012-07-02
| | | | | | | | This changes the file format.
* | startedTime needs to be a Maybe to handle transfers that have not started yetGravatar Joey Hess2012-07-02
|/ | | | This changes the file format.
* updateGravatar Joey Hess2012-07-02
|
* fix reading of empty filename from transfer info fileGravatar Joey Hess2012-07-02
|
* cleanupGravatar Joey Hess2012-07-02
|
* record transfers for git-annex-shellGravatar Joey Hess2012-07-02
| | | | | | | | | Not yet tested and places git-annex-shell is run need to be modified to pass the new field settings. Note that rsyncServerSend was changed to fork, rather than directly exec rsync, because it needs to keep the transfer lock held, and clean up the transfer log when done.
* record transfer information on local git remotesGravatar Joey Hess2012-07-01
| | | | | | | | | | | | | | | In order to record a semi-useful filename associated with the key, this required plumbing the filename all the way through to the remotes' storeKey and retrieveKeyFile. Note that there is potential for deadlock here, narrowly avoided. Suppose the repos are A and B. A sends file foo to B, and at the same time, B gets file foo from A. So, A locks its upload transfer info file, and then locks B's download transfer info file. At the same time, B is taking the two locks in the opposite order. This is only not a deadlock because the lock code does not wait, and aborts. So one of A or B's transfers will be aborted and the other transfer will continue. Whew!
* bugfixesGravatar Joey Hess2012-07-01
| | | | | | fdToHandle seems to close the fd avoid excess trailing newline
* tested; bugfixesGravatar Joey Hess2012-07-01
|
* add transfer information filesGravatar Joey Hess2012-07-01
|
* pointlessnessGravatar Joey Hess2012-06-29
|
* use strict insertWithGravatar Joey Hess2012-05-04
|
* syntax tweaksGravatar Joey Hess2012-05-02
| | | | Although I hate to lose one of the only places I've ever used the list monad..
* addunused: New command, the opposite of dropunused, it relinks unused ↵Gravatar Joey Hess2012-05-02
| | | | content into the git repository.
* noopGravatar Joey Hess2012-04-21
|
* removed another 10 lines via ifMGravatar Joey Hess2012-03-16
|
* revert hlint changeGravatar Joey Hess2012-02-20
| | | | broke a test
* warningGravatar Joey Hess2012-02-18
|
* avoid unnecessary log changes when re-adding the same urlGravatar Joey Hess2012-02-17
|
* Store web special remote url info in a more efficient location.Gravatar Joey Hess2012-02-17
| | | | | | | | storing it in remotes/web/xx/yy/foo.log meant lots of extra directory objects in git. Now I use xx/yy/foo.log.web, which is just as unique, but more efficient since foo.log is there anyway. Of course, it still looks in the old location too.
* hlintGravatar Joey Hess2012-02-16
|
* tweaksGravatar Joey Hess2012-01-11
|
* break module dependancy loopGravatar Joey Hess2012-01-10
| | | | A PITA but worth it to clean up the trust configuration code.
* Add annex-trustlevel configuration settings, which can be used to override ↵Gravatar Joey Hess2012-01-09
| | | | | | | | | | | | | the trust level of a remote. This overrides the trust.log, and is overridden by the command-line trust parameters. It would have been nicer to have Logs.Trust.trustMap just look up the configuration for all remotes, but a dependency loop prevented that (Remotes depends on Logs.Trust in several ways). So instead, look up the configuration when building remotes, storing it in the same forcetrust field used for the command-line trust parameters.
* log: New command that displays the location log for file, showing each ↵Gravatar Joey Hess2012-01-06
| | | | | | | | | | | | | | | repository they were added to and removed from. This needs to run git log on the location log files to get at all past versions of the file, which tends to be a bit slow. It would be possible to make a version optimised for showing the location logs for every key. That would only need to run git log once, so would be faster, but it would need to process an enormous amount of data, so would not speed up the individual file case. In the future it would be nice to support log --format. log --json also doesn't work right yet.
* more partial function removalGravatar Joey Hess2011-12-15
| | | | | Left a few Prelude.head's in where it was checked not null and too hard to remove, etc.
* remove some partial functionsGravatar Joey Hess2011-12-15
| | | | | A few were too hard to get rid of, and safe since the code does check for an empty line.
* hslintGravatar Joey Hess2011-12-09
|
* fix display of dead repositories in statusGravatar Joey Hess2011-12-02
|
* dead: A command which says that a repository is gone for good and you don't ↵Gravatar Joey Hess2011-12-02
| | | | want git-annex to mention it again.
* Remove haskell98 to build with ghc 7.2.2, also built with ghc 7.0.4Gravatar Mark Wright2011-11-26
| | | | Signed-off-by: Joey Hess <joey@kitenet.net>
* status: Include all special remotes in the list of repositories.Gravatar Joey Hess2011-11-18
| | | | | Special remotes do not always have a description listed in uuid.log, and such ones were not listed before.
* When not run in a git repository, git-annex can still display a usage ↵Gravatar Joey Hess2011-11-16
| | | | | | | message, and "git annex version" even works. Things that sound simple, but are made hard by the Annex monad being built with the assumption that there will always be a git repo.
* fix display of semitrusted repos in statusGravatar Joey Hess2011-11-16
| | | | | | semitrusted uuids rarely are listed in trust.log, so a special case is needed to get a list of them. Take the difference of all known uuids with non-semitrusted uuids.
* Automatically fix up badly formatted uuid.log entries produced by ↵Gravatar Joey Hess2011-11-11
| | | | 3.20111105, whenever the uuid.log is changed (ie, by init or describe).
* lintGravatar Joey Hess2011-11-11
|
* cleanupGravatar Joey Hess2011-11-09
|