summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
* assistant: Fix OSX bug that prevented committing changed files to a ↵Gravatar Joey Hess2013-03-17
| | | | repository when in indirect mode.
* assistant: Avoid syncing with annex-ignored remotes when reconnecting to the ↵Gravatar Joey Hess2013-03-17
| | | | network, or connecting a drive.
* webapp: Switch all forms to POST.Gravatar Joey Hess2013-03-16
|
* Fix several bugs caused by a bad Ord instance for Remote.Gravatar Joey Hess2013-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | A long time ago I made Remote be an instance of the Ord typeclass, with an implementation that compared the costs of Remotes. That seemed like a good idea at the time, as it saved typing.. But at the time I was still making custom Read and Show instances too. I've since learned that this is *not* a good idea, and neither is making custom Ord instances, without deep thought about the possible sets of values in a type. Haskell typeclasses are not a toy. This Ord instance came around and bit me when I put Remotes into a Set, because now remotes with the same cost appeared to be in the Set even if they were not. Also affected putting Remotes into a Map. Rarely does a bug go this deep. I've fixed it comprehensively, first removing the Ord instance entirely, and fixing the places that wanted to order remotes by cost to do it explicitly. Then adding back an Ord instance that is much more sane. Also by checking the rest of the Ord instances in the code base (which were all ok). While doing that, I found lots of places that kept remotes in Maps and Sets. All of it was probably subtly broken in one way or another before this fix, but it would be hard to say exactly how the bugs would manifest.
* map: Combine duplicate repositories, for a nicer looking map.Gravatar Joey Hess2013-03-16
|
* xmpp: Re-enable XA flag, since disabling it did not turn out to help with ↵Gravatar Joey Hess2013-03-16
| | | | the problems Google Talk has with not always sending presence messages to clients.
* xmpp: send a presence query when there's an important message to sendGravatar Joey Hess2013-03-16
| | | | | | | This may work around google talk's horrible presence handling, in which clients often don't learn about other clients, at least when using the same account. This way, every time we start a git push over xmpp, we'll waste bandwidth asking clients to please try again to identify themselves.
* xmpp: --debug now enables a sanitized dump of the XMPP protocolGravatar Joey Hess2013-03-16
| | | | So I can debug these damn google talk presence issues.
* webapp: Encourage user to install git-annex on a server when adding a ssh ↵Gravatar Joey Hess2013-03-16
| | | | server, rather than just funneling them through to rsync.
* Add incrementalbackup repository group.Gravatar Joey Hess2013-03-16
|
* webapp: Display an alert when there are XMPP remotes, and a cloud transfer ↵Gravatar Joey Hess2013-03-15
| | | | repository needs to be configured.
* webapp: Improved UI for pairing your own devices together using XMPP.Gravatar Joey Hess2013-03-15
|
* webapp: Repository list is now included in the dashboard, and other UI tweaks.Gravatar Joey Hess2013-03-15
|
* clean up license fileGravatar Joey Hess2013-03-14
|
* prep releaseGravatar Joey Hess2013-03-14
|
* webapp: Repository costs can be configured by dragging repositories around ↵Gravatar Joey Hess2013-03-14
| | | | in the repository list.
* drag and drop repo list (doesn't yet actually change cost settings)Gravatar Joey Hess2013-03-13
|
* proof of concept remote reordering UI (needs to be changed to use drag and drop)Gravatar Joey Hess2013-03-13
|
* webapp: Set locally paired repositories to a lower cost than other network ↵Gravatar Joey Hess2013-03-13
| | | | remotes.
* assistant: Be smarter about avoiding unncessary transfers.Gravatar Joey Hess2013-03-13
| | | | | | | | | Just before starting a transfer, do one last check that it's still preferred content. I was just doing this for uploads, as part of the smarter flood filling bug, but realized it's also possible for a download that was preferred content to change to not be before the download begins, so check that too.
* typoGravatar Joey Hess2013-03-12
|
* Bugfix: Fix bug in inode cache sentinal check, which broke copying to local ↵Gravatar Joey Hess2013-03-12
| | | | repos if the repo being copied from had moved to a different filesystem or otherwise changed all its inodes'
* reorgGravatar Joey Hess2013-03-12
|
* reorgGravatar Joey Hess2013-03-12
|
* webapp: DTRT when told to create a git repo that already exists.Gravatar Joey Hess2013-03-12
|
* assistant: Fix ~/.ssh/git-annex-shell wrapper to work when the ssh key does ↵Gravatar Joey Hess2013-03-12
| | | | | | | not force a command. Without a forced command, SSH_ORIGINAL_COMMAND is not set. So instead, in this case, run $@
* addurl: Add --relaxed option.Gravatar Joey Hess2013-03-11
|
* detect directory rename and wait up to 1 second to get all the changesGravatar Joey Hess2013-03-11
|
* detect renames during commit, and .. um, do nothing special because it's ↵Gravatar Joey Hess2013-03-11
| | | | | | lunch time But I'm well set up to fast-track direct mode adds for renames now.
* Added remote.<name>.annex-gnupg-options setting. Thanks, guilhem for the patch.Gravatar 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.
* addurl url escaping fooGravatar Joey Hess2013-03-10
| | | | | | * addurl: Escape invalid characters in urls, rather than failing to use an invalid url. * addurl: Properly handle url-escaped characters in file:// urls.
* assistant: generate better commits for renamesGravatar Joey Hess2013-03-10
|
* add back cabal-install (for Makefile)Gravatar Joey Hess2013-03-10
|
* 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.
* moved transfer queueing out of watcher and into committerGravatar Joey Hess2013-03-10
| | | | | | | | | | | | | This cleaned up the code quite a bit; now the committer just looks at the Change to see if it's a change that needs to have a transfer queued for it. If I later want to add dropping keys for files that were removed, or something like that, this should make it straightforward. This also fixes a bug. In direct mode, moving a file out of an archive directory failed to start a transfer to get its content. The problem was that the file had not been committed to git yet, and so the transfer code didn't want to touch it, since fileKey failed to get its key. Only starting transfers after a commit avoids this problem.
* webapp: Work around bug in Warp's slowloris attack prevention code, that ↵Gravatar Joey Hess2013-03-09
| | | | caused regular browsers to stall when they reuse a connection after leaving it idle for 30 seconds. (See https://github.com/yesodweb/wai/issues/146)
* Switch from using regex-compat to regex-tdfa, as the C regex library is ↵Gravatar Joey Hess2013-03-08
| | | | rather buggy.
* assistant: Sync with all git remotes on startup.Gravatar Joey Hess2013-03-08
|
* Bugfix: git annex add, when ran without any file or directory specified, ↵Gravatar Joey Hess2013-03-07
| | | | should add files in the current directory, but not act on unlocked files elsewhere in the tree.
* assistant: Fix syncing after XMPP pairing.Gravatar Joey Hess2013-03-06
| | | | | A missing uuid broke this, and also caused a UI glitch in the webapp's remote list.
* assistant: XMPP git pull and push requests are cached and sent when presence ↵Gravatar Joey Hess2013-03-06
| | | | | | | | | | | | | | | of a new client is detected. Noticed that, At startup or network reconnect, git push messages were sent, often before presence info has been gathered, so were not sent to any buddies. To fix this, keep track of which buddies have seen such messages, and when new presence is received from a buddy that has not yet seen it, resend. This is done only for push initiation messages, so very little data needs to be stored.
* assistant: Get back in sync with XMPP remotes after network reconnection, ↵Gravatar Joey Hess2013-03-06
| | | | | | | | | | | | | | | | | | | | | and on startup. Make manualPull send push requests over XMPP. When reconnecting with remotes, those that are XMPP remotes cannot immediately be pulled from and scanned, so instead maintain a set of (probably) desynced remotes, and put XMPP remotes on it. (This set could be used in other ways later, if we can detect we're out of sync with other types of remotes.) The merger handles detecting when a XMPP push is received from a desynced remote, and triggers a scan then, if they have in fact diverged. This has one known bug: A single XMPP remote can have multiple clients behind it. When this happens, only the UUID of one client is recorded as the UUID of the XMPP remote. Pushes from the other XMPP clients will not trigger a scan. If the client whose UUID is expected responds to the push request, it'll work, but when that client is offline, we're SOL.
* Run ssh with -T to avoid tty allocation and any login scripts that may do ↵Gravatar Joey Hess2013-03-04
| | | | undesired things with it.
* Bugfix: If the UUID of a remote is not known, prevent --from, --to, and ↵Gravatar Joey Hess2013-03-04
| | | | | | | | other ways of specifying remotes by name from selecting it, since it is not possible to sanely use it. For example, copy --to such a remote would send the file, but as NoUUID was its uuid, no location log update was done. And drop --from such a remote would not do anything, because NoUUID is not listed in the location log..
* webapp: Proceed automatically on from "Configure jabber account" to pairing.Gravatar Joey Hess2013-03-04
|
* fixed the race breaking moving files from archive in direct modeGravatar Joey Hess2013-03-04
| | | | | | | | | | | | | | | | | | | | | | assistant: Fix bug in direct mode that could occur when a symlink is moved out of an archive directory, and resulted in the file not being set to direct mode when it was transferred. The bug was that the direct mode mapping was not up-to-date when the transferrer finished. So, finding no direct mode place to store the object, it was put into .git/annex in indirect mode. To fix this, just make the watcher update the direct mode mapping to include the new file before it starts the transfer. (Seems we don't need to update it to remove the old file if the link was moved, because the direct mode code will notice it's not present and the mapping gets updated for its removal later.) The reason this was a race, and was probably not seen often is because the committer came along and updated the direct mode mapping as part of adding the moved symlink. But when the file was sufficiently small or the remote sufficiently fast, this could happen after the transfer finished.
* webapp: New preferences page allows enabling/disabling debug logging at ↵Gravatar Joey Hess2013-03-03
| | | | runtime, as well as configuring numcopies and diskreserve.
* better prevention of auto repackGravatar Joey Hess2013-03-03
| | | | | | | | | | | | | Looking through the git sources (documentation is unclear), it seems commit doesn't ever trigger git-gc, mostly fetching and merging seems to. I cannot easily override the setting in all those places, so instead set gc.auto in git config when initializing a repository with the assistant. This does mean that the user cannot set gc.auto=0 and completely avoid repacks, as the assistant does it daily. But, it only does it after there are 100x the default number of loose objects, so this is probably not going to be too annoying.
* assistant: Prevent automatic commits from causing git-gc runs, as that can ↵Gravatar Joey Hess2013-03-03
| | | | make things quite slow. Instead, git-gc --auto is run once a day. (This can be disabled by the usual gc.auto=0 setting.)