![Joey Hess](/assets/img/avatar_default.png)
* unannex, uninit: Avoid committing after every file is unannexed, for massive speedup. * --notify-finish switch will cause desktop notifications after each file upload/download/drop completes (using the dbus Desktop Notifications Specification) * --notify-start switch will show desktop notifications when each file upload/download starts. * webapp: Automatically install Nautilus integration scripts to get and drop files. * tahoe: Pass -d parameter before subcommand; putting it after the subcommand no longer works with tahoe-lafs version 1.10. (Thanks, Alberto Berti) * forget --drop-dead: Avoid removing the dead remote from the trust.log, so that if git remotes for it still exist anywhere, git annex info will still know it's dead and not show it. * git-annex-shell: Make configlist automatically initialize a remote git repository, as long as a git-annex branch has been pushed to it, to simplify setup of remote git repositories, including via gitolite. * add --include-dotfiles: New option, perhaps useful for backups. * Version 5.20140227 broke creation of glacier repositories, not including the datacenter and vault in their configuration. This bug is fixed, but glacier repositories set up with the broken version of git-annex need to have the datacenter and vault set in order to be usable. This can be done using git annex enableremote to add the missing settings. For details, see http://git-annex.branchable.com/bugs/problems_with_glacier/ * Added required content configuration. * assistant: Improve ssh authorized keys line generated in local pairing or for a remote ssh server to set environment variables in an alternative way that works with the non-POSIX fish shell, as well as POSIX shells. # imported from the archive
33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
Syncing works! I have two clones, and any file I create in the first
|
|
is immediately visible in the second. Delete that file from the second, and
|
|
it's immediately removed from the first.
|
|
|
|
Most of my work today felt like stitching existing limbs onto a pre-existing
|
|
monster. Took the committer thread, that waits for changes and commits them,
|
|
and refashioned it into a pusher thread, that waits for commits and pushes
|
|
them. Took the watcher thread, that watches for files being made,
|
|
and refashioned it into a merger thread, that watches for git refs being
|
|
updated. Pulled in bits of the `git annex sync` command to reanimate this.
|
|
|
|
It may be a shambling hulk, but it works.
|
|
|
|
Actually, it's not much of a shambling hulk; I refactored my code after
|
|
copying it. ;)
|
|
|
|
I think I'm up to 11 threads now in the new
|
|
`git annex assistant` command, each with its own job, and each needing
|
|
to avoid stepping on the other's toes. I did see one MVar deadlock error
|
|
today, which I have not managed to reproduce after some changes. I think
|
|
the committer thread was triggering the merger thread, which probably
|
|
then waited on the Annex state MVar the committer thread had held.
|
|
|
|
Anyway, it even pushes to remotes in parallel, and keeps track of remotes
|
|
it failed to push to, although as of yet it doesn't do any attempt at
|
|
periodically retrying.
|
|
|
|
One bug I need to deal with is that the push code assumes any change
|
|
made to the remote has already been pushed back to it. When it hasn't,
|
|
the push will fail due to not being a fast-forward. I need to make it
|
|
detect this case and pull before pushing.
|
|
|
|
(I've pushed this work out in a new `assistant branch`.)
|