summaryrefslogtreecommitdiff
path: root/debian
Commit message (Collapse)AuthorAge
* Windows: Fixed permissions problem that prevented removing files from ↵Gravatar Joey Hess2013-08-04
| | | | | | directory special remote. Directory special remotes now fully usable.
* Windows: Added support for encrypted special remotes.Gravatar Joey Hess2013-08-04
|
* importfeed: Fix handling of dots in extensions.Gravatar Joey Hess2013-08-03
|
* importfeed: Ignores transient problems with feeds. Only exits nonzero when a ↵Gravatar Joey Hess2013-08-03
| | | | feed has repeatedly had a problems for at least 1 day.
* gitignore support for the assistant and watcherGravatar Joey Hess2013-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Requires git 1.8.4 or newer. When it's installed, a background git check-ignore process is run, and used to efficiently check ignores whenever a new file is added. Thanks to Adam Spiers, for getting the necessary support into git for this. A complication is what to do about files that are gitignored but have been checked into git anyway. git commands assume the ignore has been overridden in this case, and not need any more overriding to commit a changed version. However, for the assistant to do the same, it would have to run git ls-files to check if the ignored file is in git. This is somewhat expensive. Or it could use the running git-cat-file process to query the file that way, but that requires transferring the whole file content over a pipe, so it can be quite expensive too, for files that are not git-annex symlinks. Now imagine if the user knows that a file or directory tree will be getting frequent changes, and doesn't want the assistant to sync it, so gitignores it. The assistant could overload the system with repeated ls-files checks! So, I've decided that the assistant will not automatically commit changes to files that are gitignored. This is a tradeoff. Hopefully it won't be a problem to adjust .gitignore settings to not ignore files you want the assistant to autocommit, or to manually git annex add files that are listed in .gitignore. (This could be revisited if git-annex gets access to an interface to check the content of the index w/o forking a git command. This could be libgit2, or perhaps a separate git cat-file --batch-check process, so it wouldn't need to ship over the whole file content.) This commit was sponsored by Francois Marier. Thanks!
* releasing version 4.201308024.20130802Gravatar Joey Hess2013-08-02
|
* Slow and ugly work around for bug #718517 in git, which broke git-cat-file ↵Gravatar Joey Hess2013-08-01
| | | | | | | | | | | | | --batch for filenames containing spaces. This runs git-cat-file in non-batch mode for all files with spaces. If a directory tree has a lot of them, and is in direct mode, even "git annex add" when there are few new files will need a *lot* of forks! The only reason buffering the whole file content to get the sha is not a memory leak is that git-annex only ever uses this on symlinks. This needs to be reverted as soon as a fix is available in git!
* Escape ':' in file/directory names to avoid it being treated as a pathspec ↵Gravatar Joey Hess2013-08-01
| | | | | | | | | | | | | | | | | | | | | | | by some git commands A git pathspec is a filename, except when it starts with ':', it's taken to refer to a branch, etc. Rather than special case ':', any filename starting with anything unusual is prefixed with "./" This could have been a real mess to deal with, but luckily SafeCommand is already extensively used and so we know at the type level the difference between parameters that are files, and parameters that are command options. Testing did show that Git.Queue was not using SafeCommand on filenames fed to xargs. (Filenames starting with '-' worked before only because -- was used to separate filenames from options when calling eg git add.) The test suite now passes with filenames starting with ':'. However, I did not keep that change to it, because such filenames are probably not legal on windows, and I have enough ugly windows ifdefs in there as it is. This commit was sponsored by Otavio Salvador. Thanks!
* webapp: Improve handling of remotes whose setup has stalled.Gravatar Joey Hess2013-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | This includes recovery from the ssh-agent problem that led to many reporting http://git-annex.branchable.com/bugs/Internal_Server_Error:_Unknown_UUID/ (Including fixing up .ssh/config to set IdentitiesOnly.) Remotes that have no known uuid are now displayed in the webapp as "unfinished". There's a link to check their status, and if the remote has been set annex-ignore, a retry button can be used to unset that and try again to set up the remote. As this bug has shown, the process of adding a ssh remote has some failure modes that are not really ideal. It would certianly be better if, when setting up a ssh remote it would detect if it's failed to get the UUID, and handle that in the remote setup process, rather than waiting until later and handling it this way. However, that's hard to do, particularly for local pairing, since the PairListener runs as a background thread. The best it could do is pop up an alert if there's a problem. This solution is not much different. Also, this solution handles cases where the user has gotten their repo into a mess manually and let's the assistant help with cleaning it up. This commit was sponsored by Chia Shee Liang. Thanks!
* set IdentitiesOnlyGravatar Joey Hess2013-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When setting up a dedicated ssh key to access the annex on a host, set IdentitiesOnly to prevent the ssh-agent from forcing use of a different ssh key. That behavior could result in unncessary password prompts. I remember getting a message or two from people who got deluged with password prompts and I couldn't at the time see why. Also, it would prevent git-annex-shell from being run on the remote host, when git-annex was installed there by unpacking the standalone tarball, since the authorized_keys line for the dedicated ssh key, which sets up calling git-annex-shell when it's not in path, wouldn't be used. This fixes http://git-annex.branchable.com/bugs/Internal_Server_Error:_Unknown_UUID but I've not closed that bug yet since I should still: 1. Investigate why the ssh remote got set up despite being so broken. 2. Make the webapp not handle the NoUUID state in such an ugly way. 3. Possibly add code to fix up systems that encountered the problem. Although since it requires changes to .ssh/config this may be one for the release notes. Thanks to TJ for pointing me in the right direction to understand what was happening here.
* find: Avoid polluting stdout with progress messages. Closes: #718186Gravatar Joey Hess2013-07-30
|
* Fix a few bugs involving filenames that are at or near the filesystem's ↵Gravatar Joey Hess2013-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | maximum filename length limit. Started with a problem when running addurl on a really long url, because the whole url is munged into the filename. Ended up doing a fairly extensive review for places where filenames could get too large, although it's hard to say I'm not missed any.. Backend.Url had a 128 character limit, which is fine when the limit is 255, but not if it's a lot shorter on some systems. So check the pathconf() limit. Note that this could result in fromUrl creating different keys for the same url, if run on systems with different limits. I don't see this is likely to cause any problems. That can already happen when using addurl --fast, or if the content of an url changes. Both Command.AddUrl and Backend.Url assumed that urls don't contain a lot of multi-byte unicode, and would fail to truncate an url that did properly. A few places use a filename as the template to make a temp file. While that's nice in that the temp file name can be easily related back to the original filename, it could lead to `git annex add` failing to add a filename that was at or close to the maximum length. Note that in Command.Add.lockdown, the template is still derived from the filename, just with enough space left to turn it into a temp file. This is an important optimisation, because the assistant may lock down a bunch of files all at once, and using the same template for all of them would cause openTempFile to iterate through the same set of names, looking for an unused temp file. I'm not very happy with the relatedTemplate hack, but it avoids that slowdown. Backend.WORM does not limit the filename stored in the key. I have not tried to change that; so git annex add will fail on really long filenames when using the WORM backend. It seems better to preserve the invariant that a WORM key always contains the complete filename, since the filename is the only unique material in the key, other than mtime and size. Since nobody has complained about add failing (I think I saw it once?) on WORM, probably it's ok, or nobody but me uses it. There may be compatability problems if using git annex addurl --fast or the WORM backend on a system with the 255 limit and then trying to use that repo in a system with a smaller limit. I have not tried to deal with those. This commit was sponsored by Alexander Brem. Thanks!
* Improve test suite on Windows; now tests git annex sync.Gravatar Joey Hess2013-07-30
|
* Fix inverted logic in last release's fix for data loss bug, that caused ↵Gravatar Joey Hess2013-07-30
| | | | git-annex sync on FAT or other crippled filesystems to add symlink standin files to the annex.
* OSX: Make git-annex-webapp run in the background, so that the app icon can ↵Gravatar Joey Hess2013-07-30
| | | | be clicked on the open a new webapp when the assistant is already running.
* typoGravatar Joey Hess2013-07-28
|
* importfeed: git-annex becomes a podcatcher in 150 LOCGravatar Joey Hess2013-07-28
|
* assistant: Fix bug that caused it to stall when adding a very large number ↵Gravatar Joey Hess2013-07-27
| | | | | | | | | | | | | | | | of files at once (around 5 thousand). This bug was introduced in 74c30fc1a6e88d926d07e12f4e7ffc7d897bf9f6, which improved handling of adding very large numbers of files by ensuring that a minimum number of max size commits (5000 files each) were done. I accidentially made it wait for another change to appear after such a max size commit, even if a lot of queued changes were already accumulated. That resulted in a stall when it got to the end. Now fixed to not wait any longer than necessary to ensure the watcher has had time to wake back up after the max size commit. This commit was sponsored by Michael Linksvayer. Thanks!
* assistant: Fix deadlock that could occur when adding a lot of files at once ↵Gravatar Joey Hess2013-07-26
| | | | | | | | | | in indirect mode. This is a laziness problem. Despite the bang pattern on newfiles, the list was not being fully evaluated before cleanup was called. Moving cleanup out to after the list is actually used fixes this. More evidence that I should be using ResourceT or pipes, if any was needed.
* assistant: Fix NetWatcher to not sync with remotes that have ↵Gravatar Joey Hess2013-07-26
| | | | | | | | | | | | remote.<name>.annex-sync set to false. This affected both the hourly NetWatcherFallback thread and the syncing when network connection is detected. It was a reversion of sorts, introduced in 8655ea7f8e853b7de4defbca2655b741362ecd21, when annex-ignore was changed to not control git syncing. I forgot to make it check annex-sync at that point.
* correct changelog; git annex get --unused doesn't make senseGravatar Joey Hess2013-07-25
|
* unused: No longer shows as unused tmp files that are actively being transferred.Gravatar Joey Hess2013-07-25
|
* dropunused behavior change: Now refuses to drop the last copy of a file, ↵Gravatar Joey Hess2013-07-25
| | | | | | | | | | unless you use the --force. This was the last place in git-annex that could remove data referred to by the git history, without being forced. Like drop, dropunused checks remotes, and honors the global annex.numcopies setting. (However, .gitattributes settings cannot apply to unused files.)
* Always build with -threaded, to avoid a deadlock when communicating with gpg.Gravatar Joey Hess2013-07-25
|
* webapp: When creating a repository on a removable drive, set ↵Gravatar Joey Hess2013-07-23
| | | | core.fsyncobjectfiles, to help prevent data loss when the drive is yanked.
* Add status message to XMPP presence tag, to identify to others that the ↵Gravatar Joey Hess2013-07-23
| | | | | | | | client is a git-annex client. I only added this to the presense messages that are really intended for presence. The ones used for tunneling git etc don't have the tag, because that would waste bandwidth.
* releasing version 4.201307234.20130723Gravatar Joey Hess2013-07-23
|
* Support import in direct mode.Gravatar Joey Hess2013-07-22
|
* Support unannex and uninit in direct mode.Gravatar Joey Hess2013-07-22
| | | | | | | | | | | | | | | | | | | In direct mode, it's best to whenever possible not move direct mode files out of the way, and so I made unannex avoid touching the direct mode file at all. That actually turns out to be easy, because in direct mode, unlike indirect mode, the pre-commit hook won't get confused if the unannexed file later gets added back by git add. So there's no need to commit the unannex right away; it can be staged for the user to commit later. This also means that unannex in direct mode is a lot faster than in indirect mode! Another subtle bit is the bookkeeping that is done when unannexing a direct mode file. The inode cache needs to be removed so that when uninit runs getKeysPresent, it doesn't see the cache and think the key is still present and crash when it's not. This commit is sponsored by Douglas Butts. Thanks!
* For long hostnames, use a hash of the hostname to generate the socket file ↵Gravatar Joey Hess2013-07-22
| | | | | | | | | | | for ssh connection caching. This is ok to do now that the socket filename never needs to be mapped back to a hostname. Short hostnames will still appear in the clear, which is less obfuscated. So this cannot possibly make ssh connection caching fail for a hostname it used to work for.
* point to android icons tooGravatar Joey Hess2013-07-21
|
* ref debian bugGravatar Joey Hess2013-07-20
|
* When an XMPP server has SRV records, try them, but don't then fall back to ↵Gravatar Joey Hess2013-07-20
| | | | | | | | | | | the regular host if they all fail. gmail.com has some XMPP SRV records, but does not itself respond to XMPP traffic, although it does accept connections on port 5222. So if a user entered the wrong password, it would try all the SRVs and fall back to trying gmail, and hang at that point. This seems the right thing to do, not just a workaround.
* fixed nasty data loss bugGravatar Joey Hess2013-07-20
| | | | | | | | | I wanted to try to guard against it in Command.Add too, but it's a case of garbage in, garbage out. Once Command.Add has been told it's dealing with a dummy symlink, it goes and deletes it, and even though the object it thinks it points to is not present in the annex, it's Command.Add is still doing the right thing to go ahead and add the broken symlink. So the two fixes I was able to put in will have to do.
* webapp: Differentiate between creating a new S3/Glacier/WebDav remote, and ↵Gravatar Joey Hess2013-07-20
| | | | initializing an existing remote. When creating a new remote, avoid conflicts with other existing (or deleted) remotes with the same name.
* directory special remote: Fix checking that there is enough disk space to ↵Gravatar Joey Hess2013-07-20
| | | | hold an object, was broken when using encryption.
* changelog for 1a90265f6e2700a1af971c2e28b6408fcc58def6 now that I understand ↵Gravatar Joey Hess2013-07-20
| | | | it better
* New improved version of the git-annex logo, contributed by John Lawrence.Gravatar Joey Hess2013-07-20
|
* Display byte sizes with more precision.Gravatar Joey Hess2013-07-19
|
* Fix checking when content is present in a non-bare repository accessed via http.Gravatar Joey Hess2013-07-18
| | | | | | | | | | | | | | | I thought at first this was a Windows specific problem, but it's not; this affects checking any non-bare repository exported via http. Which is a potentially important use case! The actual bug was the case where Right False was returned by the first url short-curcuited later checks. But the whole method used felt like code I'd no longer write, and the use of undefined was particularly disgusting. So I rewrote it. Also added an action display. This commit was sponsored by Eric Hanchrow. Thanks!
* When a transfer is already being run by another process, proceed on to the ↵Gravatar Joey Hess2013-07-17
| | | | next file, rather than dying.
* uninit: Preserve .git/annex/objects at the end, if it still has content, so ↵Gravatar Joey Hess2013-07-16
| | | | that old versions of files and deleted files are not deleted. Print a message with some suggested actions.
* Revert "avoid pulling in unneeded dependencies when the assistant is disabled"Gravatar Joey Hess2013-07-16
| | | | | | Cabal does not seem to have a way to check if flag A is set and then, if flag B is set, add a dep. Instead, it makes flag B get unset if the dep is not available.
* avoid pulling in unneeded dependencies when the assistant is disabledGravatar Joey Hess2013-07-12
|
* update webapp for rsync.net discountGravatar Joey Hess2013-07-11
| | | | | | | | Note that've told me: We'll see how it goes, but I think this could be a permanent offer for your userbase. People using git-annex are clueful and won't be a big support burden for us, so it's a win-win.
* fix: Preserve the original mtime of fixed symlinks.Gravatar Joey Hess2013-07-11
|
* webapp: Better display of added files.Gravatar Joey Hess2013-07-10
|
* Install XDG desktop icon files.Gravatar Joey Hess2013-07-09
| | | | | | | | | | | | | | | | The icon files will be installed when running make install or cabal install. Did not try to run update-icon-caches, since I think it's debian specific, and dh_icons will take care of that for the Debian package. Using the favicon as a 16x16 icon. At 24x24 the svg displays pretty well, although the dotted lines are rather faint. The svg is ok at all higher resolutions. The standalone linux build auto-installs the desktop and autostart files when run. I have not made it auto-install the icon file too, because a) that would take more work to include them in the tarball and find them b) it would need to be an install to ~/.icons/, and I don't know if that really works!
* releasing version 4.201307094.20130709Gravatar Joey Hess2013-07-09
|
* Make --numcopies override annex.numcopies set in .gitattributes.Gravatar Joey Hess2013-07-09
|