Merge branch 'master' into database

Conflicts:
	debian/changelog
This commit is contained in:
Joey Hess 2015-02-22 14:12:07 -04:00
commit fd2a543c7d
20 changed files with 484 additions and 41 deletions

View file

@ -19,7 +19,6 @@ import Annex.Content
import Backend
import Git.Command
import Data.Default
import Data.Time.Clock
import Data.Char
import System.Posix.Directory

View file

@ -63,7 +63,7 @@ parseEnum s = Page
probeVersion :: IO QuviVersion
probeVersion = catchDefaultIO NoQuvi $
examine <$> processTranscript "quviaaa" ["--version"] Nothing
examine <$> processTranscript "quvi" ["--version"] Nothing
where
examine (s, True)
| "quvi v0.4" `isInfixOf` s = Quvi04

25
debian/changelog vendored
View file

@ -1,4 +1,16 @@
git-annex (5.20150206) UNRELEASED; urgency=medium
git-annex (5.2015022) UNRELEASED; urgency=medium
* fsck: Incremental fsck uses sqlite to store its records, instead
of abusing the sticky bit. Existing sticky bits are ignored;
incremental fscks started by old versions won't be resumed by
this version.
* fsck: Multiple incremental fscks of different repos (including remotes)
can now be running at the same time in the same repo without it
getting confused about which files have been checked for which remotes.
-- Joey Hess <id@joeyh.name> Thu, 19 Feb 2015 14:16:03 -0400
git-annex (5.20150219) unstable; urgency=medium
* glacier: Detect when the glacier command in PATH is the wrong one,
from boto, rather than from glacier-cli, and refuse to use it,
@ -21,7 +33,7 @@ git-annex (5.20150206) UNRELEASED; urgency=medium
* addurl: Avoid crash if quvi is not installed, when git-annex was
built with process-1.2
* bittorrent: Fix mojibake introduced in parsing arai2c progress output.
* fsck --from: If a download from a remote fails, propigate the failure.
* fsck --from: If a download from a remote fails, propagate the failure.
* metadata: When setting metadata, do not recurse into directories by
default, since that can be surprising behavior and difficult to recover
from. The old behavior is available by using --force.
@ -32,15 +44,8 @@ git-annex (5.20150206) UNRELEASED; urgency=medium
and push.
* remotedaemon: Use the ssh-options git config.
* Linux standalone: Improved process names of linker shimmed programs.
* fsck: Incremental fsck uses sqlite to store its records, instead
of abusing the sticky bit. Existing sticky bits are ignored,
incremental fscks started by old versions won't be resumed by
this version.
* fsck: Multiple incremental fscks of different repos (some remote)
can now be in progress at the same time in the same repo without it
getting confused about which files have been checked for which remotes.
-- Joey Hess <id@joeyh.name> Fri, 06 Feb 2015 13:57:08 -0400
-- Joey Hess <id@joeyh.name> Thu, 19 Feb 2015 14:16:03 -0400
git-annex (5.20150205) unstable; urgency=medium

View file

@ -0,0 +1,54 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawk9nck8WX8-ADF3Fdh5vFo4Qrw1I_bJcR8"
nickname="Jon Ander"
subject="comment 15"
date="2015-02-18T12:39:04Z"
content="""
This is happening in in a repo shared by two computers using the webapp with version 5.20141125. All are empty commits.
* 23da33e - (7 minutes ago) merge refs/remotes/bitbucket/synced/master (HEAD, bitbucket/synced/master, annex/direct/master)
* 7bd23db - (67 minutes ago) merge refs/remotes/bitbucket/synced/master
* d2f5c6b - (2 hours ago) merge refs/remotes/bitbucket/synced/master
* 05c0448 - (12 hours ago) merge refs/remotes/bitbucket/synced/master
* 5c370aa - (19 hours ago) merge refs/remotes/bitbucket/synced/master
* c6d7be4 - (20 hours ago) merge refs/remotes/bitbucket/synced/master
* 507a6c7 - (21 hours ago) merge refs/remotes/bitbucket/synced/master
* 6932fec - (22 hours ago) merge refs/remotes/bitbucket/synced/master
* cc0efa1 - (23 hours ago) merge refs/remotes/bitbucket/synced/master
* 12a7b8f - (24 hours ago) merge refs/remotes/bitbucket/synced/master
* 49a3f2c - (25 hours ago) merge refs/remotes/bitbucket/synced/master
* 6611612 - (26 hours ago) merge refs/remotes/bitbucket/synced/master
* 303895c - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 3f8c96b - (2 days ago) merge refs/remotes/bitbucket/synced/master
* f283e20 - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 96b920e - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 2c88b50 - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 5f6643b - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 7a2f5ff - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 3bdb942 - (2 days ago) merge refs/remotes/bitbucket/synced/master
* d24de2b - (2 days ago) merge refs/remotes/bitbucket/synced/master
* b29d45e - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 871adb7 - (2 days ago) merge refs/remotes/bitbucket/synced/master
|\
* | 4138b01 - (2 days ago) merge refs/remotes/bitbucket/synced/master
|/
* c754adc - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 587a56a - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 2d257fd - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 23018bf - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 9f202b7 - (2 days ago) merge refs/remotes/bitbucket/synced/master
* bdd40f4 - (2 days ago) merge refs/remotes/bitbucket/synced/master
* 146b1a5 - (4 days ago) merge refs/remotes/bitbucket/synced/master (bitbucket/master)
|\
* | 3886b4a - (4 days ago) merge refs/remotes/github/synced/master
* | 5714860 - (4 days ago) merge refs/remotes/github/synced/master
* | 64325a0 - (4 days ago) merge refs/remotes/github/synced/master
* | f1b49e6 - (5 days ago) merge refs/remotes/github/synced/master
* | 17330c8 - (5 days ago) merge refs/remotes/github/synced/master
|/
* 54f9a8b - (6 days ago) (synced/master, master)
* ceb8133 - (6 days ago)
* f36ae3b - (6 days ago)
* 6acdf4c - (6 days ago)
"""]]

View file

@ -0,0 +1,15 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmg0NqVniTETKYIWr6eyYRJnakNg0A6tRc"
nickname="Oliver"
subject="comment 4"
date="2015-02-19T11:54:14Z"
content="""
I used `s3cmd` with the same credentials and I'm able to list the bucket contents. That file does exist, and it does contain the line expected. If I try and make the bucket:
s3cmd mb s3://s3musicencrypted-a7e22956-5ce2-11e2-97a5-6f33220ffbf3
ERROR: S3 error: 409 (BucketAlreadyOwnedByYou): Your previous request to create the named bucket succeeded and you already own it.
So I should be able to create buckets, but of course creating a bucket that already exists doesn't really do anything.
Taking exactly the same credentials as my .s3cfg and using them with git annex continues to fail with signature errors.
"""]]

View file

@ -0,0 +1,254 @@
[[!comment format=c
username="https://www.google.com/accounts/o8/id?id=AItOawlmLuHhscJsoAqb9q0N3LdtHum6LjY1LK4"
nickname="Markus"
subject="comment 8"
date="2015-02-18T12:39:17Z"
content="""
Diff between the straces (the first ~490 lines have been identical and are removed for simplicity)
Running per ssh:
mprotect(0x2b1e2000, 8192, PROT_READ) = 0
mprotect(0x2aafb000, 4096, PROT_READ) = 0
mprotect(0x2b24e000, 4096, PROT_READ) = 0
mprotect(0x2aca5000, 4096, PROT_READ) = 0
mprotect(0x2ad6d000, 4096, PROT_READ) = 0
mprotect(0x2b21f000, 4096, PROT_READ) = 0
mprotect(0x2acdd000, 4096, PROT_READ) = 0
mprotect(0x2ac24000, 4096, PROT_READ) = 0
mprotect(0x2aae5000, 4096, PROT_READ) = 0
mprotect(0x2ad27000, 20480, PROT_READ) = 0
mprotect(0x2acbd000, 4096, PROT_READ) = 0
mprotect(0x2b0a0000, 4096, PROT_READ) = 0
mprotect(0x2ab55000, 4096, PROT_READ) = 0
mprotect(0x2aacd000, 4096, PROT_READ) = 0
mprotect(0x2ab32000, 4096, PROT_READ) = 0
mprotect(0x2afeb000, 16384, PROT_READ) = 0
mprotect(0x2aeaf000, 20480, PROT_READ) = 0
mprotect(0x2abfd000, 4096, PROT_READ) = 0
mprotect(0x2ada4000, 4096, PROT_READ) = 0
mprotect(0x2abbc000, 4096, PROT_READ) = 0
set_tid_address(0x2ac28068) = 18015
set_robust_list(0x2ac28070, 0xc) = 0
rt_sigaction(SIGRTMIN, {0x2ac04550, [], SA_SIGINFO|0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x2ac043e4, [], SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
futex(0x2ad2cc44, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0) = 0x2bf15000
brk(0x2bf36000) = 0x2bf36000
open(\"/dev/urandom\", O_RDONLY|O_LARGEFILE) = 3
fcntl64(3, F_GETFD) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
clock_gettime(CLOCK_REALTIME, {1424257023, 820788195}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 20000}, ru_stime={0, 10000}, ...}) = 0
read(3, \"yx$\17\207\4\364\233\366\361\210[,\334(\214\\"\343\226\2'd\303\24\306\254\323\363\2523\36\2\", 32) = 32
read(3, \"\243e\370\36n\320@l\345\27\6/\323<U\240xM\221\2507m\24\31\200mI\355\0043*\375\", 32) = 32
read(3, \">%5`2\355\355B\", 8) = 8
clock_getres(0x2 /* CLOCK_??? */, {0, 1}) = 0
clock_gettime(0x2 /* CLOCK_??? */, {0, 44157400}) = 0
clock_gettime(CLOCK_MONOTONIC, {438775, 660164522}) = 0
brk(0x2bf57000) = 0x2bf57000
mmap2(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b250000
munmap(0x2b250000, 720896) = 0
munmap(0x2b400000, 327680) = 0
timer_create(CLOCK_MONOTONIC, {0, SIGVTALRM, SIGEV_SIGNAL, {...}}, {0x1}) = 0
rt_sigaction(SIGVTALRM, {0x3cc4e08, [], SA_RESTART|0x4000000}, NULL, 8) = 0
timer_settime(0x1, 0, {it_interval={0, 10000000}, it_value={0, 10000000}}, NULL) = 0
rt_sigaction(SIGINT, {0x3cce17c, [], 0x4000000 /* SA_??? */}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, NULL, {0x3cce17c, [], 0x4000000 /* SA_??? */}, 8) = 0
rt_sigaction(SIGINT, {0x3cce17c, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {0x3cce0b4, [], 0x4000000 /* SA_??? */}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTSTP, {0x3cce1c0, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
epoll_create(0x100) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
pipe([5, 6]) = 0
fcntl64(6, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl64(6, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
mmap2(NULL, 8388608, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|0x20000, -1, 0) = 0x2b400000
mprotect(0x2b400000, 4096, PROT_NONE) = 0
clone(child_stack=0x2bbfef98, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x2bbff4c8, tls=0x2bbff920, child_tidptr=0x2bbff4c8) = 18039
futex(0x2bf3aa6c, FUTEX_WAIT_PRIVATE, 1, NULL) = 0
futex(0x2bf3aa98, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x2bf3aa98, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x41981d0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x41981d0, FUTEX_WAKE_PRIVATE, 1) = 0
eventfd2(0, 0) = 7
fcntl64(7, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
fcntl64(7, F_SETFD, FD_CLOEXEC) = 0
epoll_ctl(0x4, 0x1, 0x5, 0x2b304430) = 0
epoll_ctl(0x4, 0x1, 0x7, 0x2b304448) = 0
clock_gettime(0x2 /* CLOCK_??? */, {0, 46001320}) = 0
clock_gettime(CLOCK_MONOTONIC, {438775, 665190920}) = 0
futex(0x2bf3aa6c, FUTEX_WAIT_PRIVATE, 3, NULL) = 0
futex(0x2bf3aa98, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x2bf3aa98, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x41981d0, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x41981d0, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigaction(SIGINT, {0x3cce0b8, [], SA_RESETHAND|SA_SIGINFO|0x4000000}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
open(\"/usr/lib/arm-linux-gnueabi/gconv/gconv-modules.cache\", O_RDONLY) = -1 ENOENT (No such file or directory)
open(\"/usr/lib/arm-linux-gnueabi/gconv/gconv-modules\", O_RDONLY|0x80000) = -1 ENOENT (No such file or directory)
futex(0x2b1e4ef4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [TRAP FPE KILL SEGV USR2 TERM STKFLT CHLD CONT TSTP TTIN TTOU XCPU VTALRM WINCH PWR])
--- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [TRAP FPE KILL SEGV USR2 TERM STKFLT CHLD CONT TSTP TTIN TTOU XCPU VTALRM WINCH PWR])
Running local on NAS:
mprotect(0x2b0dc000, 8192, PROT_READ) = 0
mprotect(0x2ae4a000, 4096, PROT_READ) = 0
mprotect(0x2b241000, 4096, PROT_READ) = 0
mprotect(0x2aee9000, 4096, PROT_READ) = 0
mprotect(0x2b19e000, 4096, PROT_READ) = 0
mprotect(0x2b1d7000, 4096, PROT_READ) = 0
mprotect(0x2b15c000, 4096, PROT_READ) = 0
mprotect(0x2ae71000, 4096, PROT_READ) = 0
mprotect(0x2ab70000, 4096, PROT_READ) = 0
mprotect(0x2b138000, 20480, PROT_READ) = 0
mprotect(0x2b0f8000, 4096, PROT_READ) = 0
mprotect(0x2af9a000, 4096, PROT_READ) = 0
mprotect(0x2ab57000, 4096, PROT_READ) = 0
mprotect(0x2ab3a000, 4096, PROT_READ) = 0
mprotect(0x2ab1b000, 4096, PROT_READ) = 0
mprotect(0x2ae33000, 16384, PROT_READ) = 0
mprotect(0x2acf7000, 20480, PROT_READ) = 0
mprotect(0x2abec000, 4096, PROT_READ) = 0
mprotect(0x2abab000, 4096, PROT_READ) = 0
mprotect(0x2aaf3000, 4096, PROT_READ) = 0
set_tid_address(0x2b2a8068) = 18072
set_robust_list(0x2b2a8070, 0xc) = 0
rt_sigaction(SIGRTMIN, {0x2ae51550, [], SA_SIGINFO|0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x2ae513e4, [], SA_RESTART|SA_SIGINFO|0x4000000}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
futex(0x2b13dc44, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0) = 0x2ca10000
brk(0x2ca31000) = 0x2ca31000
open(\"/dev/urandom\", O_RDONLY|O_LARGEFILE) = 3
fcntl64(3, F_GETFD) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
clock_gettime(CLOCK_REALTIME, {1424257086, 456931329}) = 0
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 20000}, ru_stime={0, 0}, ...}) = 0
read(3, \"l\36K\322\231Ud\302.\335\301dhC)A\260\374~\350\254\341-\267\215\300\313\334\215XqI\", 32) = 32
read(3, \"\25017J\372\361^\374\254\347$\f=Ag)\10r\25\317r]\216\337G\371M\27\321\326\0(\", 32) = 32
read(3, \"\245\271\251\373\270\350S1\", 8) = 8
open(\"/usr/lib/locale/locale-archive\", O_RDONLY|O_LARGEFILE|0x80000) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=14362288, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 4, 0) = 0x2b36b000
close(4) = 0
clock_getres(0x2 /* CLOCK_??? */, {0, 1}) = 0
clock_gettime(0x2 /* CLOCK_??? */, {0, 29204680}) = 0
clock_gettime(CLOCK_MONOTONIC, {438838, 301653485}) = 0
brk(0x2ca52000) = 0x2ca52000
mmap2(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b579000
munmap(0x2b579000, 552960) = 0
munmap(0x2b700000, 495616) = 0
timer_create(CLOCK_MONOTONIC, {0, SIGVTALRM, SIGEV_SIGNAL, {...}}, {0x2}) = 0
rt_sigaction(SIGVTALRM, {0x3cc4e08, [], SA_RESTART|0x4000000}, NULL, 8) = 0
timer_settime(0x2, 0, {it_interval={0, 10000000}, it_value={0, 10000000}}, NULL) = 0
rt_sigaction(SIGINT, {0x3cce17c, [], 0x4000000 /* SA_??? */}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, NULL, {0x3cce17c, [], 0x4000000 /* SA_??? */}, 8) = 0
rt_sigaction(SIGINT, {0x3cce17c, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {0x3cce0b4, [], 0x4000000 /* SA_??? */}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTSTP, {0x3cce1c0, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
epoll_create(0x100) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
pipe([5, 6]) = 0
fcntl64(6, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl64(6, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC) = 0
mmap2(NULL, 8388608, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|0x20000, -1, 0) = 0x2b700000
mprotect(0x2b700000, 4096, PROT_NONE) = 0
clone(child_stack=0x2befef98, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x2beff4c8, tls=0x2beff920, child_tidptr=0x2beff4c8) = 18073
futex(0x2ca36264, FUTEX_WAIT_PRIVATE, 1, NULL) = 0
futex(0x2ca36290, FUTEX_WAKE_PRIVATE, 1) = 0
eventfd2(0, 0) = 7
fcntl64(7, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
fcntl64(7, F_SETFD, FD_CLOEXEC) = 0
epoll_ctl(0x4, 0x1, 0x5, 0x2b604430) = 0
epoll_ctl(0x4, 0x1, 0x7, 0x2b604448) = 0
futex(0x2ca36314, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x2ca36310, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
clock_gettime(0x2 /* CLOCK_??? */, {0, 31248840}) = 0
clock_gettime(CLOCK_MONOTONIC, {438838, 311493486}) = 0
futex(0x2ca36264, FUTEX_WAIT_PRIVATE, 3, NULL) = 0
futex(0x2ca36290, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigaction(SIGINT, {0x3cce0b8, [], SA_RESETHAND|SA_SIGINFO|0x4000000}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
stat64(\"/volume1/homes/admin/GitAnnex.git\", 0x2b604890) = -1 ENOENT (No such file or directory)
getcwd(\"/volume1/homes/admin\", 4096) = 21
getcwd(\"/volume1/homes/admin\", 4096) = 21
getcwd(\"/volume1/homes/admin\", 4096) = 21
pipe([8, 9]) = 0
pipe([10, 11]) = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
timer_settime(0x2, 0, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
vfork() = 18074
close(9) = 0
fcntl64(8, F_SETFD, FD_CLOEXEC) = 0
close(11) = 0
fcntl64(10, F_SETFD, FD_CLOEXEC) = 0
read(10, \"\", 4) = 0
close(10) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
timer_settime(0x2, 0, {it_interval={0, 10000000}, it_value={0, 10000000}}, NULL) = 0
fcntl64(8, F_GETFL) = 0 (flags O_RDONLY)
fcntl64(8, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
ioctl(8, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7ea3e7ac) = -1 EINVAL (Invalid argument)
read(8, 0x2b6f1010, 8096) = -1 EAGAIN (Resource temporarily unavailable)
epoll_ctl(0x4, 0x1, 0x8, 0x2b604d0c) = 0
write(7, \"\1\0\0\0\0\0\0\0\", 8) = 8
futex(0x2ca36314, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x2ca36310, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2ca36340, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x41981d0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2ca36264, FUTEX_WAIT_PRIVATE, 5, NULL) = ? ERESTARTSYS (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
futex(0x2ca36264, FUTEX_WAIT_PRIVATE, 5, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x2ca36290, FUTEX_WAKE_PRIVATE, 1) = 0
read(8, \"user.email\nbraun_markus@gmx.de\0u\"..., 8096) = 211
read(8, \"\", 8096) = 0
close(8) = 0
wait4(18074, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 18074
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
select(2, [], [1], NULL, {0, 0}) = 1 (out [1], left {0, 0})
write(1, \"annex.uuid=8d7304a1-6ea5-46cc-83\"..., 48) = 48
select(2, [], [1], NULL, {0, 0}) = 1 (out [1], left {0, 0})
write(1, \"core.gcrypt-id=\n\", 16) = 16
wait4(-1, 0x2b604f10, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
clock_gettime(0x2 /* CLOCK_??? */, {0, 36727080}) = 0
clock_gettime(CLOCK_MONOTONIC, {438838, 341180247}) = 0
write(6, \"\376\", 1) = 1
rt_sigprocmask(SIG_BLOCK, [], [], 8) = 0
clock_gettime(0x2 /* CLOCK_??? */, {0, 36947040}) = 0
clock_gettime(CLOCK_MONOTONIC, {438838, 341757433}) = 0
clock_getres(0x3 /* CLOCK_??? */, {0, 1}) = 0
clock_gettime(0x3 /* CLOCK_??? */, {0, 36313200}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x2ca36314, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x2ca36310, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1
futex(0x2ca36340, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x41981d0, FUTEX_WAKE_PRIVATE, 1) = 1
timer_settime(0x2, 0, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
rt_sigaction(SIGVTALRM, {SIG_IGN, [], SA_INTERRUPT|SA_NODEFER|SA_RESETHAND|0x4000000}, {0x3cc4e08, [], SA_RESTART|0x4000000}, 8) = 0
timer_delete(0x2) = 0
rt_sigprocmask(SIG_BLOCK, [TTOU], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGTSTP, {SIG_DFL, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
clock_gettime(0x2 /* CLOCK_??? */, {0, 38184040}) = 0
clock_gettime(CLOCK_MONOTONIC, {438838, 344573245}) = 0
close(3) = 0
exit_group(0) = ?
"""]]

View file

@ -4,7 +4,7 @@ multiple concurrent fsck processes.
The first problem was that having `fsck --incremental` running and starting a
new `fsck --incremental` caused it to crash. And with good reason, since
starting a new incremental fsck deletes the old database, the old process
was left writing to a datbase that had been deleted and recreated out from
was left writing to a database that had been deleted and recreated out from
underneath it. Fixed with some locking.
Next problem is harder. Sqlite doesn't support multiple concurrent writers

View file

@ -0,0 +1,28 @@
Breaking news: gitlab.com repositories now support git-annex!
* [GitLab Annex solves the problem of versioning large binaries with git](https://about.gitlab.com/2015/02/17/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git/)
* [freely licensed source code](https://gitlab.com/gitlab-org/gitlab-shell)
A very nice surprise! More git hosters should do this..
----
Back to sqlite concurrency, I thought I had it dealt with, but more testing
today has turned up a lot more problems with sqlite and concurrent writers
(and readers).
First, I noticed that a process can be happily writing changes to the
database, but if a second process starts reading from the database, this
will make the writier start failing with BUSY, and keep failing until the
second process goes idle. It turns out the solution to this is to use WAL
mode, which prevents readers from blocking writers.
After several hours (persistent doesn't make it easy to enable WAL mode),
it seemed pretty robust with concurrent fsck.
But then I saw SELECT fail with BUSY. I don't understand why a reader would
fail in WAL mode; that's counter to the documentation. My best guess is
that this happens when a checkpoint is being made.
This seems to be a real bug in sqlite. It may only affect the older
versions bundled with persistent.

View file

@ -0,0 +1,17 @@
Today's release doesn't have the database branch merged of course, but it
still has a significant amount of changes.
Developed a test case for the sqlite problem, that
reliably reproduces it, and sent it to the sqlite mailing list. It seems
that under heavy write load, when a new connection is made to the database,
SELECT can fail for a little while. Once one SELECT succeeds, that database
connection becomes solid, and won't fail any more (apparently). This makes
me think there might be some connection initialization steps that don't end
up finishing before the SELECT goes through in this situation. I should be
able to work around this problem by probing new connections for stability,
and probably will have to, since it'll be years before any bug fixed sqlite
is available everywhere.
I also noticed that current git-annex incremental parallel fsck doesn't
really parallelize well; eg the processes do duplicate work. So, the
database branch is not really a regression in this area.

View file

@ -0,0 +1,12 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawldTFGlKsKUyq6F6CJ22CNBnmYJ0LQbLUQ"
nickname="Rolandas"
subject="comment 3"
date="2015-02-18T06:58:59Z"
content="""
Jes, it was an entirely new git repo and I removed .git folder and start over.<br>
The question was is there some sort of „UNDO“ in this case.<br>
I get it now.<br>
I will read internals documentation.<br>
Thank You very much!<br>
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmuT_R0AecWcfCFTN055N8rD_WwQkgo1PE"
nickname="Tomas"
subject="macosx 10.9.5"
date="2015-02-19T20:18:05Z"
content="""
I have the same issue.
"""]]

View file

@ -0,0 +1,11 @@
[[!comment format=mdwn
username="anarcat"
subject="thanks"
date="2015-02-18T21:53:52Z"
content="""
great, thanks for the feedback!
i agree that 25ms is quite fast to fire up a 52MB binary. :) i am just saying that if this is going to end up as part of building a webpage, i need something faster, or cache the results somewhere.
duly noted for the other points, thanks again. i see a great intimate relationship building between `git cat-file` and me. ;)
"""]]

View file

@ -1,20 +0,0 @@
git-annex 5.20141219 released with [[!toggle text="these changes"]]
[[!toggleable text="""
* Webapp: When adding a new box.com remote, use the new style chunking.
Thanks, Jon Ander Peñalba.
* External special remote protocol now includes commands for setting
and getting the urls associated with a key.
* Urls can now be claimed by remotes. This will allow creating,
for example, a external special remote that handles magnet: and
*.torrent urls.
* Use wget -q --show-progress for less verbose wget output,
when built with wget 1.16.
* Added bittorrent special remote.
* addurl behavior change: When downloading an url ending in .torrent,
it will download files from bittorrent, instead of the old behavior
of adding the torrent file to the repository.
* Added Recommends on aria2.
* When possible, build with the haskell torrent library for parsing
torrent files. As a fallback, can instead use btshowmetainfo from
bittornado | bittorrent.
* Fix build with -f-S3."""]]

View file

@ -0,0 +1,34 @@
git-annex 5.20150219 released with [[!toggle text="these changes"]]
[[!toggleable text="""
* glacier: Detect when the glacier command in PATH is the wrong one,
from boto, rather than from glacier-cli, and refuse to use it,
since the boto program fails to fail when passed
parameters it does not understand.
* groupwanted: New command to set the groupwanted preferred content
expression.
* import: Support file matching options such as --exclude, --include,
--smallerthan, --largerthan
* The file matching options are now only accepted by commands that
can actually use them, instead of by all commands.
* import: Avoid checksumming file twice when run in the default
or --duplicate mode.
* Windows: Fix bug in dropping an annexed file, which
caused a symlink to be staged that contained backslashes.
* webapp: Fix reversion in opening webapp when starting it manually
inside a repository.
* assistant: Improve sanity check for control characters when pairing.
* Improve race recovery code when committing to git-annex branch.
* addurl: Avoid crash if quvi is not installed, when git-annex was
built with process-1.2
* bittorrent: Fix mojibake introduced in parsing arai2c progress output.
* fsck --from: If a download from a remote fails, propagate the failure.
* metadata: When setting metadata, do not recurse into directories by
default, since that can be surprising behavior and difficult to recover
from. The old behavior is available by using --force.
* sync, assistant: Include repository name in head branch commit message.
* The ssh-options git config is now used by gcrypt, rsync, and ddar
special remotes that use ssh as a transport.
* sync, assistant: Use the ssh-options git config when doing git pull
and push.
* remotedaemon: Use the ssh-options git config.
* Linux standalone: Improved process names of linker shimmed programs."""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawnbBRfl5F8gKRr1ko8Ai6FbEZStXXNF1S4"
nickname="Áron"
subject="&quot;new files&quot; group"
date="2015-02-19T11:06:34Z"
content="""
In my mobile devices I would like to automatically have the newest files, because those have the biggest chance that I want to watch/read them on mobile. But I have found any preferred content expression that is about the age of a file. Is it possible to do something like this with the existing git-annex capabilities?
thanks
"""]]

View file

@ -3,12 +3,10 @@ designed to interoperate with it.
* The [[git-annex assistant|assistant]] is included in git-annex,
and extends its use cases into new territory.
* [git-annex-watcher](https://github.com/rubiojr/git-annex-watcher)
is a status icon for your desktop.
* [[forum/gadu_-_git-annex_disk_usage]] is a du like utility that
is git-annex aware.
* [sizes](http://hackage.haskell.org/package/sizes) is another du-like
utility, with a `-A` switch that enables git-annex support.
* [gitlab-shell](https://gitlab.com/gitlab-org/gitlab-shell) supports
git-annex. So git-annex can be used with repositries served by Gitlab,
including gitlab.com, or deploy your own.
[See Gitlab's announcment](https://about.gitlab.com/2015/02/17/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git/)
* Emacs Org mode can auto-commit attached files to git-annex.
* [git annex darktable integration](https://github.com/xxv/darktable-git-annex)
* [Magit](http://github.com/magit/magit), an Emacs mode for Git, has
@ -19,3 +17,9 @@ designed to interoperate with it.
built by the Brazilian [Mocambos network](http://www.mocambos.net/)
is [using git-annex to connect isolated communities](http://www.modspil.dk/itpolitik/baob_xia.html).
Repositories sync over satellite internet and/or sneakernet.
* [[forum/gadu_-_git-annex_disk_usage]] is a du like utility that
is git-annex aware.
* [sizes](http://hackage.haskell.org/package/sizes) is another du-like
utility, with a `-A` switch that enables git-annex support.
* [git-annex-watcher](https://github.com/rubiojr/git-annex-watcher)
is a status icon for your desktop.

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawlc-3pdibcizrdz4WmZooECL0k6AvM1cWc"
nickname="Joe"
subject="S3 file/folder names"
date="2015-02-19T22:22:26Z"
content="""
Is there a way to tell the S3 backend to store the files as they are named locally, instead of by hashed content name? i.e., I've annexed foo/bar.txt and annex puts it in s3 as mybucket.name/foo/bar.txt instead of mybucket.name/GPGHMACSHA1-random.txt
Or should I just write a script to s3cmd sync my annex, and add the S3/cloudfront distribution URL as a web remote?
"""]]

View file

@ -158,7 +158,7 @@ B<^MyVideos.*\.db$> and will fail if none is found.
Manually specify the path to B<.xbmc/userdata/Database>. This
overrides B<--home>.
Note that this doesn't point directly to the datbase itself, because
Note that this doesn't point directly to the database itself, because
there are usually many database files and we want to automatically
find the latest. This may be a stupid limitation.

View file

@ -0,0 +1,3 @@
coming from [[bugs/weird_entry_in_process_list]] - are there plans to make an init.d / systemd .service file for git-annex?
my use case is that i have dedicated machines that will sync a common directory. they will run only one assistant - would patches to make a `git-annex` user, and the associated startup scripts, in the debian package be welcome? --[[anarcat]]

View file

@ -1,5 +1,5 @@
Name: git-annex
Version: 5.20150205
Version: 5.20150219
Cabal-Version: >= 1.8
License: GPL-3
Maintainer: Joey Hess <id@joeyh.name>