summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
* use tasty resourcesGravatar Joey Hess2014-01-21
|
* repair: Check git version at run time.Gravatar Joey Hess2014-01-21
|
* expose tasty test suite's option parserGravatar Joey Hess2014-01-21
|
* Add and use numcopiesneeded preferred content expression.Gravatar Joey Hess2014-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add numcopiesneeded preferred content expression. * Client, transfer, incremental backup, and archive repositories now want to get content that does not yet have enough copies. This means the asssistant will make copies of files that don't yet meet the configured numcopies, even to places that would not normally want the file. For example, if numcopies is 4, and there are 2 client repos and 2 transfer repos, and 2 removable backup drives, the file will be sent to both transfer repos in order to make 4 copies. Once a removable drive get a copy of the file, it will be dropped from one transfer repo or the other (but not both). Another example, numcopies is 3 and there is a client that has a backup removable drive and two small archive repos. Normally once one of the small archives has a file, it will not be put into the other one. But, to satisfy numcopies, the assistant will duplicate it into the other small archive too, if the backup repo is not available to receive the file. I notice that these examples are fairly unlikely setups .. the old behavior was not too bad, but it's nice to finally have it really correct. .. Almost. I have skipped checking the annex.numcopies .gitattributes out of fear it will be too slow. This commit was sponsored by Florian Schlegel.
* 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.
* 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.
* Allow --all to be mixed with matching options like --copies and --in (but ↵Gravatar Joey Hess2014-01-18
| | | | not --include and --exclude).
* list: Fix specifying of files to list.Gravatar 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
|
* Really fix FTBFS on mipsel and sparc due to test suite not being available ↵Gravatar Joey Hess2014-01-17
| | | | on those architectures.
* prep releaseGravatar Joey Hess2014-01-16
|
* repair: Fix bug in packed refs file exploding code that caused a .gitrefs ↵Gravatar Joey Hess2014-01-15
| | | | directory to be created instead of .git/refs
* Fix FTBFS on mipsel and sparc due to test suite not being available on those ↵Gravatar Joey Hess2014-01-15
| | | | architectures.
* assistant: Detect if .git/annex/index is corrupt at startup, and recover.Gravatar Joey Hess2014-01-14
|
* Fix a long-standing bug that could cause the wrong index file to be used ↵Gravatar Joey Hess2014-01-14
| | | | when committing to the git-annex branch, if GIT_INDEX_FILE is set in the environment. This typically resulted in git-annex branch log files being committed to the master branch and later showing up in the work tree. (These log files can be safely removed.)
* repair: Support old git versions from before git fsck --no-dangling was ↵Gravatar Joey Hess2014-01-13
| | | | implemented.
* 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.
* Refuse to build with git older than 1.7.1.1, which is needed for git checkout -BGravatar Joey Hess2014-01-13
|
* Android: Avoid passing --clobber to busybox wget.Gravatar Joey Hess2014-01-13
|
* add GETAVAILABILITY to external special remote protocolGravatar Joey Hess2014-01-13
| | | | | And some reworking of types, and added an annex-availability git config setting.
* external special remote protocol: Added GETGITDIR.Gravatar Joey Hess2014-01-13
|
* copyright yearGravatar Joey Hess2014-01-08
|
* Added tahoe special remote.Gravatar Joey Hess2014-01-08
| | | | | | | | | | | | Known problems: 1. Tries to tahoe start when daemon is already running. 2. If multiple tahoe remotes are set up on the same computer, they will have the same node.url configured by default, and this confuses tahoe commands. This commit was sponsored by LeastAuthority.com
* add DEBUGGravatar Joey Hess2014-01-07
|
* prep releaseGravatar Joey Hess2014-01-07
|
* no lsof on kfreebsdGravatar Joey Hess2014-01-07
|
* assistant: Start a new git-annex transferkeys process after a network ↵Gravatar Joey Hess2014-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | connection change So that remotes that use a persistent network connection are restarted. A remote might keep open a long duration network connection, and could fail to deal well with losing the connection. This is particularly a concern now that we have external special reotes. An external special remote that is implemented naively might open the connection only when PREPARE is sent, and if it loses connection, throw errors on each request that is made. (Note that the ssh connection caching should not have this problem; if the long-duration ssh process loses connection, the named pipe is disconnected and the next ssh attempt will reconnect. Also, XMPP already deals with disconnection robustly in its own way.) There's no way for git-annex to know if a lost network connection actually affects a given remote, which might have a transfer in process. It does not make sense to force kill the transferkeys process every time the NetWatcher detects a change. (Especially because the NetWatcher sometimes polls 1 change per hour.) In any case, the NetWatcher only detects connection to a network, not disconnection. So if a transfer is in progress over the network, and the network goes down, that will need to time out on its own. An alternate approch that was considered is to use a separate transferkeys process for each remote, and detect when a request fails, and assume that means that process is in a failing state and restart it. The problem with that approach is that if a resource is not available and a remote fails every time, it degrades to starting a new transferkeys process for every file transfer, which is too expensive. Instead, this commit only handles the network reconnection case, and restarts transferkeys only once the network has reconnected and another transfer needs to be made. So, a transferkeys process will be reused for 1 hour, or until the next network connection. ---- The NotificationBroadcaster was rewritten to use TMVars rather than MSampleVars, to allow checking without blocking if a notification has been received. ---- This commit was sponsored by Tobias Brunner.
* assistant: Fixed several minor memory leaks that manifested when adding a ↵Gravatar Joey Hess2014-01-05
| | | | large number of files.
* 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.
* 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.
* assistant: Ensure that .ssh/config and .ssh/authorized_keys are not group or ↵Gravatar Joey Hess2014-01-03
| | | | world writable when writing to those files, as that can make ssh refuse to use them, if it allows another user to write to them.
* add remote state logsGravatar Joey Hess2014-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | This allows a remote to store a piece of arbitrary state associated with a key. This is needed to support Tahoe, where the file-cap is calculated from the data stored in it, and used to retrieve a key later. Glacier also would be much improved by using this. GETSTATE and SETSTATE are added to the external special remote protocol. Note that the state is left as-is even when a key is removed from a remote. It's up to the remote to decide when it wants to clear the state. The remote state log, $KEY.log.rmt, is a UUID-based log. However, rather than using the old UUID-based log format, I created a new variant of that format. The new varient is more space efficient (since it lacks the "timestamp=" hack, and easier to parse (and the parser doesn't mess with whitespace in the value), and avoids compatability cruft in the old one. This seemed worth cleaning up for these new files, since there could be a lot of them, while before UUID-based logs were only used for a few log files at the top of the git-annex branch. The transition code has also been updated to handle these new UUID-based logs. This commit was sponsored by Daniel Hofer.
* 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
|
* Assistant: Remove stale MERGE_HEAD files in lockfile cleanup.Gravatar Joey Hess2014-01-01
| | | | See http://git-annex.branchable.com/forum/How_to_resolve_a_interrupted_merge_in_direct_mode__63__/
* Avoid looping if long-running git cat-file or git hash-object crashes and ↵Gravatar Joey Hess2014-01-01
| | | | keeps crashing when restarted.
* added GETWANTED, SETWANTED for Tobias's flickr remoteGravatar Joey Hess2014-01-01
| | | | | | | | | | | | | | | This was unexpectedly difficult because of a depdenency cycle. To parse a preferred content expression involves several things that need to operate on the list of remotes. Which needs Remote.External. The only way to avoid this cycle (I tried breaking it at several points) was to skip parsing the expression in SETWANTED. That's sorta ok, because git-annex already has to deal with unparsable preferred content expressions being stored, in order to handle eg, upgrades. But I'm still not very happy that I cannot check it. I feel this is a strong indication that I need to beware of further bloating the special remote protocol interface.
* mirror: Support --all (and --unused).Gravatar Joey Hess2014-01-01
|
* Windows: Avoid eating stdin when running ssh to add a authorized key, since ↵Gravatar Joey Hess2014-01-01
| | | | this is used for password prompting.
* Windows: Fix bug in direct mode merge code that could cause files in ↵Gravatar Joey Hess2013-12-31
| | | | subdirectories to go missing.
* external special remote protocol: Added GETUUID.Gravatar Joey Hess2013-12-31
|
* re-enable test suiteGravatar Joey Hess2013-12-30
|
* prep release5.20131230Gravatar Joey Hess2013-12-30
|
* Android: Avoid trying to use Android's own ionice, which does not allow ↵Gravatar Joey Hess2013-12-29
| | | | specifying a command to run. Fixes transferring files to/from android and probably a few other things.
* 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.
* addurl, importfeed: Sanitize | and some other symbols and special characters.Gravatar Joey Hess2013-12-27
|
* add git-shell wrappersGravatar Joey Hess2013-12-27
|
* external special remotes workingGravatar Joey Hess2013-12-27
|