Commit graph

14171 commits

Author SHA1 Message Date
Joey Hess
eb3ce3581a use vector in local status
Thought was that this would be faster than a map, since a vector can be
updated more efficiently. It turns out to not seem to matter; runtime and
memory usage are basically identical.
2013-10-07 04:05:14 -04:00
Joey Hess
1200788859 status: Fix space leak in local mode, introduced in version 4.20130920.
Actually fixed 2 leaks, the tuple leak may have been older.
2013-10-07 03:59:14 -04:00
Joey Hess
5acb47fb7c Merge branch 'master' of ssh://git-annex.branchable.com 2013-10-06 21:15:22 -04:00
Joey Hess
267c124f67 run ssh in the directory with its socket when stopping
This guarantees that stopping an existing socket never fails.

This might be the route out of the mess of needing to worry about socket
lengths in general. However, it would need quite a lot of refactoring
to make every place in git-annex that runs ssh run it with a cwd that was
determined by the location of its connection caching socket. If this
wasn't already such a mess, I'd consider even the thought of that API a bad
idea..
2013-10-06 21:11:39 -04:00
Joey Hess
6f38426cb8 work around ssh brain-damange
The control socket path passed to ssh needs to be 17 characters shorter
than the maximum unix domain socket length, because ssh appends stuff to it
to make a temporary filename. Closes: #725512

Also, take the shorter of the relative and the absolute paths to the
socket. Typically the relative path will be a lot shorter (unless
deep inside a subdirectory of the repository), and so using it will
avoid flirting with the maximum safe socket lenghts in more situations,
and so lead to less breakage if all my attempts at fixing this are
still buggy.
2013-10-06 20:59:36 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnZEanlyzay_QlEAL0CWpyZcRTyN7vay8U
8a19b0e50b Added a comment: Tilde did it for me 2013-10-06 21:59:44 +00:00
Joey Hess
990924703f factor out Build.Version 2013-10-06 17:48:38 -04:00
Joey Hess
319d194040 GHCMAKE not used 2013-10-06 17:34:10 -04:00
Joey Hess
571fe4999b remove __WINDOWS__ ifdef 2013-10-06 17:23:30 -04:00
https://www.google.com/accounts/o8/id?id=AItOawlOc-EOD5ZyggsAp6lOnU7x5MxizwLtUXA
897bc8f845 Added a comment 2013-10-06 18:35:14 +00:00
https://id.koumbit.net/anarcat
ecd26dbe52 fix typo 2013-10-06 17:15:16 +00:00
http://joeyh.name/
b07b7f9b9e Added a comment: thanks for your checking.. 2013-10-06 17:04:24 +00:00
Joey Hess
39369365ec set preferred content expression 2013-10-06 13:03:02 -04:00
Joey Hess
336f4b5e2e mention preferred content standard 2013-10-06 13:02:17 -04:00
Joey Hess
a8b50f75b8 fix repo name 2013-10-06 12:59:48 -04:00
https://www.google.com/accounts/o8/id?id=AItOawkC0W3ZQERUaTkHoks6k68Tsp1tz510nGo
2ed4087110 Added a comment: git annex copy not working 2013-10-06 10:18:10 +00:00
https://www.google.com/accounts/o8/id?id=AItOawkC0W3ZQERUaTkHoks6k68Tsp1tz510nGo
0ebc14267f Added a comment: git annex sync 2013-10-06 08:59:26 +00:00
http://edheil.wordpress.com/
848c398b97 Added a comment 2013-10-06 06:45:15 +00:00
https://www.google.com/accounts/o8/id?id=AItOawlkA6XinbeOdnEDxEGQUWyjqPGh0kdMXr4
a8bece239f 2013-10-06 05:02:52 +00:00
Joey Hess
feef7d3800 devblog 2013-10-05 17:26:17 -04:00
Joey Hess
635c9a1549 assistant: Detect stale git lock files at startup time, and remove them.
Extends the index.lock handling to other git lock files. I surveyed
all lock files used by git, and found more than I expected. All are
handled the same in git; it leaves them open while doing the operation,
possibly writing the new file content to the lock file, and then closes
them when done.

The gc.pid file is excluded because it won't affect the normal operation
of the assistant, and waiting for a gc to finish on startup wouldn't be
good.

All threads except the webapp thread wait on the new startup sanity checker
thread to complete, so they won't try to do things with git that fail
due to stale lock files. The webapp thread mostly avoids doing that kind of
thing itself. A few configurators might fail on lock files, but only if the
user is explicitly trying to run them. The webapp needs to start
immediately when the user has opened it, even if there are stale lock
files.

Arranging for the threads to wait on the startup sanity checker was a bit
of a bear. Have to get all the NotificationHandles set up before the
startup sanity checker runs, or they won't see its signal. Perhaps
the NotificationBroadcaster is not the best interface to have used for
this. Oh well, it works.

This commit was sponsored by Michael Jakl
2013-10-05 17:04:21 -04:00
Joey Hess
370dfd141b add dirContentsRecursiveSkipping 2013-10-05 15:36:09 -04:00
Joey Hess
6657aa8061 Merge branch 'master' of ssh://git-annex.branchable.com 2013-10-05 15:07:38 -04:00
Joey Hess
1be4d281d6 Better sanitization of problem characters when generating URL and WORM keys.
FAT has a lot of characters it does not allow in filenames, like ? and *
It's probably the worst offender, but other filesystems also have
limitiations.

In 2011, I made keyFile escape : to handle FAT, but missed the other
characters. It also turns out that when I did that, I was also living
dangerously; any existing keys that contained a : had their object
location change. Oops.

So, adding new characters to escape to keyFile is out. Well, it would be
possible to make keyFile behave differently on a per-filesystem basis, but
this would be a real nightmare to get right. Consider that a rsync special
remote uses keyFile to determine the filenames to use, and we don't know
the underlying filesystem on the rsync server..

Instead, I have gone for a solution that is backwards compatable and
simple. Its only downside is that already generated URL and WORM keys
might not be able to be stored on FAT or some other filesystem that
dislikes a character used in the key. (In this case, the user can just
migrate the problem keys to a checksumming backend. If this became a big
problem, fsck could be made to detect these and suggest a migration.)

Going forward, new keys that are created will escape all characters that
are likely to cause problems. And if some filesystem comes along that's
even worse than FAT (seems unlikely, but here it is 2013, and people are
still using FAT!), additional characters can be added to the set that are
escaped without difficulty.

(Also, made WORM limit the part of the filename that is embedded in the key,
to deal with filesystem filename length limits. This could have already
been a problem, but is more likely now, since the escaping of the filename
can make it longer.)

This commit was sponsored by Ian Downes
2013-10-05 15:01:49 -04:00
Joey Hess
3dac026598 move some code around 2013-10-05 13:49:45 -04:00
Joey Hess
9b746ee588 honor fileNameLengthLimit for quvi 2013-10-05 13:32:42 -04:00
Joey Hess
478eeea02e addurl: Better sanitization of generated filenames.
Use sanitizeFilePath rather than rolling our own sanitizer.
2013-10-05 13:30:13 -04:00
Joey Hess
cf428895a2 increase base upper bound
Android builds tested with very close to 4.8
2013-10-05 13:15:00 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnpdM9F8VbtQ_H5PaPMpGSxPe_d5L1eJ6w
1dccaeb8fe 2013-10-05 15:29:20 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnpdM9F8VbtQ_H5PaPMpGSxPe_d5L1eJ6w
3db1985a01 Added a comment 2013-10-05 10:45:16 +00:00
http://joeyh.name/
71dba0187a Added a comment 2013-10-04 20:50:34 +00:00
http://joeyh.name/
1537c21eb0 Added a comment 2013-10-04 20:17:07 +00:00
http://joeyh.name/
cd31d53e96 Added a comment 2013-10-04 20:13:37 +00:00
Joey Hess
49ccf56d55 add back 2013-10-04 13:09:36 -04:00
Joey Hess
3d5fe9b794 add news item for git-annex 4.20131002 2013-10-04 13:09:23 -04:00
Joey Hess
99e5f52e7f add news item for git-annex 4.20131003 2013-10-04 13:07:52 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnpdM9F8VbtQ_H5PaPMpGSxPe_d5L1eJ6w
13f776140d 2013-10-04 14:41:05 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnpdM9F8VbtQ_H5PaPMpGSxPe_d5L1eJ6w
f0ec3d355a 2013-10-04 14:39:15 +00:00
http://cstork.org/
7b7d4b2353 Added a comment 2013-10-04 11:17:42 +00:00
http://cstork.org/
c5ef652a4d Added a comment: How should this interact with the trust model and location tracking? 2013-10-04 11:13:11 +00:00
https://www.google.com/accounts/o8/id?id=AItOawnyMzZZLS1xGW1raqc_9Md6Ksdkvx5rUJU
5a330fe6c8 Added a comment 2013-10-04 10:59:30 +00:00
http://cstork.org/
0d14285585 Added a comment: News page not updated 2013-10-04 09:38:21 +00:00
http://olivier.mehani.name/
fe52de18b5 Added a comment 2013-10-04 05:14:16 +00:00
Joey Hess
891242ad26 another lock file 2013-10-03 17:05:53 -04:00
Joey Hess
f4d984e3cc wording 2013-10-03 17:00:45 -04:00
Joey Hess
d822b7a3dd link 2013-10-03 17:00:04 -04:00
Joey Hess
ece27f184d devblog 2013-10-03 16:58:40 -04:00
Joey Hess
93dbb7842e watcher: Detect at startup time when there is a stale .git/lock, and remove it so it does not interfere with the automatic commits of changed files. 2013-10-03 16:57:21 -04:00
Joey Hess
f8880c4fe4 Automatically and safely detect and recover from dangling .git/annex/index.lock files, which would prevent git from committing to the git-annex branch, eg after a crash. 2013-10-03 15:43:08 -04:00
Joey Hess
83b4b8d589 rename confusing function
The index.lck file is not a lock file. Kept the historical name for now as
changing it would be work.
2013-10-03 15:06:58 -04:00