Merge branch 'master' into database
Conflicts: debian/changelog
This commit is contained in:
commit
fd2a543c7d
20 changed files with 484 additions and 41 deletions
|
@ -19,7 +19,6 @@ import Annex.Content
|
||||||
import Backend
|
import Backend
|
||||||
import Git.Command
|
import Git.Command
|
||||||
|
|
||||||
import Data.Default
|
|
||||||
import Data.Time.Clock
|
import Data.Time.Clock
|
||||||
import Data.Char
|
import Data.Char
|
||||||
import System.Posix.Directory
|
import System.Posix.Directory
|
||||||
|
|
|
@ -63,7 +63,7 @@ parseEnum s = Page
|
||||||
|
|
||||||
probeVersion :: IO QuviVersion
|
probeVersion :: IO QuviVersion
|
||||||
probeVersion = catchDefaultIO NoQuvi $
|
probeVersion = catchDefaultIO NoQuvi $
|
||||||
examine <$> processTranscript "quviaaa" ["--version"] Nothing
|
examine <$> processTranscript "quvi" ["--version"] Nothing
|
||||||
where
|
where
|
||||||
examine (s, True)
|
examine (s, True)
|
||||||
| "quvi v0.4" `isInfixOf` s = Quvi04
|
| "quvi v0.4" `isInfixOf` s = Quvi04
|
||||||
|
|
25
debian/changelog
vendored
25
debian/changelog
vendored
|
@ -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,
|
* glacier: Detect when the glacier command in PATH is the wrong one,
|
||||||
from boto, rather than from glacier-cli, and refuse to use it,
|
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
|
* addurl: Avoid crash if quvi is not installed, when git-annex was
|
||||||
built with process-1.2
|
built with process-1.2
|
||||||
* bittorrent: Fix mojibake introduced in parsing arai2c progress output.
|
* 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
|
* metadata: When setting metadata, do not recurse into directories by
|
||||||
default, since that can be surprising behavior and difficult to recover
|
default, since that can be surprising behavior and difficult to recover
|
||||||
from. The old behavior is available by using --force.
|
from. The old behavior is available by using --force.
|
||||||
|
@ -32,15 +44,8 @@ git-annex (5.20150206) UNRELEASED; urgency=medium
|
||||||
and push.
|
and push.
|
||||||
* remotedaemon: Use the ssh-options git config.
|
* remotedaemon: Use the ssh-options git config.
|
||||||
* Linux standalone: Improved process names of linker shimmed programs.
|
* 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
|
git-annex (5.20150205) unstable; urgency=medium
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
"""]]
|
|
@ -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.
|
||||||
|
"""]]
|
|
@ -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) = ?
|
||||||
|
|
||||||
|
"""]]
|
|
@ -4,7 +4,7 @@ multiple concurrent fsck processes.
|
||||||
The first problem was that having `fsck --incremental` running and starting a
|
The first problem was that having `fsck --incremental` running and starting a
|
||||||
new `fsck --incremental` caused it to crash. And with good reason, since
|
new `fsck --incremental` caused it to crash. And with good reason, since
|
||||||
starting a new incremental fsck deletes the old database, the old process
|
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.
|
underneath it. Fixed with some locking.
|
||||||
|
|
||||||
Next problem is harder. Sqlite doesn't support multiple concurrent writers
|
Next problem is harder. Sqlite doesn't support multiple concurrent writers
|
||||||
|
|
28
doc/devblog/day_256__sqlite_concurrency_argh.mdwn
Normal file
28
doc/devblog/day_256__sqlite_concurrency_argh.mdwn
Normal 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.
|
17
doc/devblog/day_257__release_day.mdwn
Normal file
17
doc/devblog/day_257__release_day.mdwn
Normal 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.
|
|
@ -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>
|
||||||
|
"""]]
|
|
@ -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.
|
||||||
|
"""]]
|
|
@ -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. ;)
|
||||||
|
"""]]
|
|
@ -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."""]]
|
|
34
doc/news/version_5.20150219.mdwn
Normal file
34
doc/news/version_5.20150219.mdwn
Normal 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."""]]
|
|
@ -0,0 +1,9 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="https://www.google.com/accounts/o8/id?id=AItOawnbBRfl5F8gKRr1ko8Ai6FbEZStXXNF1S4"
|
||||||
|
nickname="Áron"
|
||||||
|
subject=""new files" 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
|
||||||
|
"""]]
|
|
@ -3,12 +3,10 @@ designed to interoperate with it.
|
||||||
|
|
||||||
* The [[git-annex assistant|assistant]] is included in git-annex,
|
* The [[git-annex assistant|assistant]] is included in git-annex,
|
||||||
and extends its use cases into new territory.
|
and extends its use cases into new territory.
|
||||||
* [git-annex-watcher](https://github.com/rubiojr/git-annex-watcher)
|
* [gitlab-shell](https://gitlab.com/gitlab-org/gitlab-shell) supports
|
||||||
is a status icon for your desktop.
|
git-annex. So git-annex can be used with repositries served by Gitlab,
|
||||||
* [[forum/gadu_-_git-annex_disk_usage]] is a du like utility that
|
including gitlab.com, or deploy your own.
|
||||||
is git-annex aware.
|
[See Gitlab's announcment](https://about.gitlab.com/2015/02/17/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git/)
|
||||||
* [sizes](http://hackage.haskell.org/package/sizes) is another du-like
|
|
||||||
utility, with a `-A` switch that enables git-annex support.
|
|
||||||
* Emacs Org mode can auto-commit attached files to git-annex.
|
* Emacs Org mode can auto-commit attached files to git-annex.
|
||||||
* [git annex darktable integration](https://github.com/xxv/darktable-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
|
* [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/)
|
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).
|
is [using git-annex to connect isolated communities](http://www.modspil.dk/itpolitik/baob_xia.html).
|
||||||
Repositories sync over satellite internet and/or sneakernet.
|
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.
|
||||||
|
|
|
@ -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?
|
||||||
|
"""]]
|
|
@ -158,7 +158,7 @@ B<^MyVideos.*\.db$> and will fail if none is found.
|
||||||
Manually specify the path to B<.xbmc/userdata/Database>. This
|
Manually specify the path to B<.xbmc/userdata/Database>. This
|
||||||
overrides B<--home>.
|
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
|
there are usually many database files and we want to automatically
|
||||||
find the latest. This may be a stupid limitation.
|
find the latest. This may be a stupid limitation.
|
||||||
|
|
||||||
|
|
3
doc/todo/server-level_daemon__63__.mdwn
Normal file
3
doc/todo/server-level_daemon__63__.mdwn
Normal 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]]
|
|
@ -1,5 +1,5 @@
|
||||||
Name: git-annex
|
Name: git-annex
|
||||||
Version: 5.20150205
|
Version: 5.20150219
|
||||||
Cabal-Version: >= 1.8
|
Cabal-Version: >= 1.8
|
||||||
License: GPL-3
|
License: GPL-3
|
||||||
Maintainer: Joey Hess <id@joeyh.name>
|
Maintainer: Joey Hess <id@joeyh.name>
|
||||||
|
|
Loading…
Reference in a new issue