Merge branch 'master' of ssh://git-annex.branchable.com

This commit is contained in:
Joey Hess 2015-05-30 02:13:28 -04:00
commit 165b0787a9
74 changed files with 706 additions and 7 deletions

View file

@ -0,0 +1,6 @@
### Please describe the problem.
Ive only just set up git-annex on my Android system, so I might be confused; but from what I could find on this site, the Android build only supports passwordless SSH key files, which must be deployed in /sdcard/git-annex.home/.ssh (I also found something about git-annex generating keys by itself, but the web app didnt refer to something like that, so I take it this feature is gone now). What perplexed me about this is that /sdcard on Android is a VFAT file-system, and is set up so that any user or application may read it (with a permissions mask for the sdcard group), which isnt ideal for a passwordless key. From what I could gather, theres also a place in the virtual file-system under /data that is intended to house private, per-application data. Should git-annex use this location as its home instead?
### What version of git-annex are you using? On what operating system?
git-annex 5.20150522-g260b59e
Android 4.4.4

View file

@ -0,0 +1,31 @@
### Please describe the problem.
I tried to add a Tahoe special remote as follows-
git annex initremote tahoe type=tahoe embedcreds=yes
However, this fails and gives me an error saying that tahoe create-client failed because .tahoe is not empty (even when .tahoe did not previously exist). It seems like git-annex is creating a .tahoe/git-annex directory (which is empty) and then trying to run tahoe create-client, which fails because the .tahoe directory was already created by git-annex.
### What steps will reproduce the problem?
1. Install tahoe and setup a plain git annex repo
2. export TAHOE_FURL=tahoe introducer url here
3. git annex initremote tahoe type=tahoe embedcreds=yes
### What version of git-annex are you using? On what operating system?
5.20141024~bpo70+1 on Tails 1.2.1 (Debian Wheezy 32-bit)
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
$ git annex initremote tahoe type=tahoe embedcreds=yes
initremote tahoe The base directory '/home/amnesia/.tahoe' is not empty.
To avoid clobbering anything, I am going to quit now.
Please use a different directory, or empty this one.
git-annex: tahoe create-client failed
# End of transcript or log.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="zooko@0afad0e8b0168f9c2e504a0200ae2ccc1dcea7fe"
nickname="zooko"
subject="ticket to track this in the Tahoe-LAFS issue tracker"
date="2015-05-28T21:58:41Z"
content="""
Here's a ticket in the Tahoe-LAFS issue tracker for us to track this issue:
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2437
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="zooko@0afad0e8b0168f9c2e504a0200ae2ccc1dcea7fe"
nickname="zooko"
subject="ticket to track this in the Ubuntu issue tracker"
date="2015-05-28T22:01:23Z"
content="""
Here's a ticket in the Ubuntu issue tracker: https://bugs.launchpad.net/tahoe-lafs/+bug/1459847
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="zenture@51f656b89d89727211c54a15824fd8393ba11a79"
nickname="zenture"
subject="same problem"
date="2015-05-29T08:30:42Z"
content="""
Hello, I've had the same problem, removing the index fixed the issue.
I have a backup of it, it's 88MB, how shall I share it with you, Joey?
"""]]

View file

@ -0,0 +1,91 @@
### Please describe the problem.
It seems i have a somewhat corrupted git repository here, not sure how it happened. I was expecting the magic git annex fsck to recover from this, especially since this is a secondary repository and all objects should be available on the remotes...
### What steps will reproduce the problem?
I am really not sure, but i ended up with empty objects in my git repo.
### What version of git-annex are you using? On what operating system?
git-annex version: 5.20141125
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
anarcat@angela:films$ git annex addurl --fast https://www.youtube.com/watch?v=bS5P_LAqiVg
addurl KUNG_FURY_Official_Movie__HD_.mp4 error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
anarcat@angela:films$ git fsck
Vérification des répertoires d'objet: 100% (256/256), fait.
error: object file .git/objects/00/ef80c0eefb0ec6ad70c9270bd5780fa3b124b0 is empty
error: object file .git/objects/00/ef80c0eefb0ec6ad70c9270bd5780fa3b124b0 is empty
fatal: loose object 00ef80c0eefb0ec6ad70c9270bd5780fa3b124b0 (stored in .git/objects/00/ef80c0eefb0ec6ad70c9270bd5780fa3b124b0) is corrupt
anarcat@angela:films$ git annex fsck
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
error: object file /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b is empty
fatal: loose object bff9dc76b05081c33471b9a2bccdb8d86ab06c3b (stored in /home/anarcat/video/.git/objects/bf/f9dc76b05081c33471b9a2bccdb8d86ab06c3b) is corrupt
git-annex: fd:13: hGetLine: end of file
failed
git-annex: fd:12: hFlush: resource vanished (Broken pipe)
failed
[...]
git-annex: fd:12: hFlush: resource vanished (Broken pipe)
failed
git-annex: fd:12: commitBuffer: resource vanished (Broken pipe)
failed
git-annex: fd:12: commitBuffer: resource vanished (Broken pipe)
failed
[...]
git-annex: fd:12: commitBuffer: resource vanished (Broken pipe)
failed
^C
# End of transcript or log.
"""]]
--[[anarcat]]
Ah damnit, i confused [[git-annex-fsck]] and [[git-annex-repair]]... :/ Mabe one should run the other when it fails? :) sorry for the noise, [[done]].

View file

@ -0,0 +1,70 @@
### Please describe the problem.
in direct mode files with absent content are promised to become regular files but empty... seems to be not a case for me. page describing direct mode has comments about past problems like that but they were told to be dealt with... so I decided to file a new issue
### What steps will reproduce the problem?
switch to direct mode
### What version of git-annex are you using? On what operating system?
5.20150519-geaf72fe
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
$> git clone ~exppsy/pymvpa2-tutorialdata /tmp/pymvpa2-tutorialdata-clone
Cloning into '/tmp/pymvpa2-tutorialdata-clone'...
done.
$> cd /tmp/pymvpa2-tutorialdata-clone
debian/ freesurfer/ haxby2001/ hyperalignment_tutorial_data.hdf5.gz@ results/ suma_surfaces/
$> ls -l haxby2001/bold_mc.par hyperalignment_tutorial_data.hdf5.gz
lrwxrwxrwx 1 yoh yoh 199 May 29 15:42 haxby2001/bold_mc.par -> ../.git/annex/objects/KM/Jq/SHA256E-s106236--64972f56116ba575996a0b2fbd26a033dd3e8369e87fda503fec5a45dcd06f57.par/SHA256E-s106236--64972f56116ba575996a0b2fbd26a033dd3e8369e87fda503fec5a45dcd06f57.par
lrwxrwxrwx 1 yoh yoh 208 May 29 15:42 hyperalignment_tutorial_data.hdf5.gz -> .git/annex/objects/1g/M2/SHA256E-s15769613--d4b54133f873ff043df22c6250810c1cb9a177b5eb551ca97d98d664edf8ea3f.hdf5.gz/SHA256E-s15769613--d4b54133f873ff043df22c6250810c1cb9a177b5eb551ca97d98d664edf8ea3f.hdf5.gz
$> git annex enableremote data.pymvpa.org
(merging origin/git-annex into git-annex...)
(recording state in git...)
enableremote data.pymvpa.org ok
(recording state in git...)
$> git annex get hyperalignment_tutorial_data.hdf5.gz
/tmp/pymvpa2-tutorialdata-clone/.git/annex/tm 100%[==================================================================================================>] 15.04M 11.2MB/s in 1.3s
ok
(recording state in git...)
$> ls -l haxby2001/bold_mc.par hyperalignment_tutorial_data.hdf5.gz
lrwxrwxrwx 1 yoh yoh 199 May 29 15:42 haxby2001/bold_mc.par -> ../.git/annex/objects/KM/Jq/SHA256E-s106236--64972f56116ba575996a0b2fbd26a033dd3e8369e87fda503fec5a45dcd06f57.par/SHA256E-s106236--64972f56116ba575996a0b2fbd26a033dd3e8369e87fda503fec5a45dcd06f57.par
lrwxrwxrwx 1 yoh yoh 208 May 29 15:42 hyperalignment_tutorial_data.hdf5.gz -> .git/annex/objects/1g/M2/SHA256E-s15769613--d4b54133f873ff043df22c6250810c1cb9a177b5eb551ca97d98d664edf8ea3f.hdf5.gz/SHA256E-s15769613--d4b54133f873ff043df22c6250810c1cb9a177b5eb551ca97d98d664edf8ea3f.hdf5.gz
$> git annex direct
commit
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
ok
direct hyperalignment_tutorial_data.hdf5.gz ok
direct ok
$> ls -l haxby2001/bold_mc.par hyperalignment_tutorial_data.hdf5.gz
lrwxrwxrwx 1 yoh yoh 199 May 29 15:42 haxby2001/bold_mc.par -> ../.git/annex/objects/KM/Jq/SHA256E-s106236--64972f56116ba575996a0b2fbd26a033dd3e8369e87fda503fec5a45dcd06f57.par/SHA256E-s106236--64972f56116ba575996a0b2fbd26a033dd3e8369e87fda503fec5a45dcd06f57.par
-rw------- 1 yoh yoh 15769613 May 8 03:42 hyperalignment_tutorial_data.hdf5.gz
2 12569.....................................:Fri 29 May 2015 03:43:08 PM EDT:.
$> git annex version
git-annex version: 5.20150519-geaf72fe
build flags: Assistant Webapp Webapp-secure Pairing Testsuite S3 WebDAV Inotify DBus DesktopNotify XMPP DNS Feeds Quvi TDFA
key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E MD5E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 MD5 WORM URL
remote types: git gcrypt S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
local repository version: 5
supported repository version: 5
upgrade supported from repository versions: 0 1 2 4
# End of transcript or log.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://schnouki.net/"
nickname="Schnouki"
subject="comment 3"
date="2015-05-29T12:20:08Z"
content="""
A while ago I needed a tool to emulate slow IO (low bandwidth and high latency). I ended writing a small FUSE driver (in Go, just for fun) that did this by adding some delay to each function call. Hacky, but simpler than setting up a device mapper or NBD. I guess you could also emulate IO errors with something like this. If you're interested I can clean up my code and push it to a public repo.
"""]]

View file

@ -0,0 +1,5 @@
I am trying to set up two repositories, one on my laptop and one on my server, and then have "git annex sync" always push everything on the laptop to the server.
So far, I have created repositories on the laptop and on the server and then added the server as an ssh remote on the laptop. At the root of the repository on the server, I ran "git annex group . backup" and "git annex wanted . standard". At the root of the repository on the laptop, I ran "git annex group . manual" and "git annex wanted . standard". When I run "git annex sync" or "git annex sync --content" on the laptop now, it seems to only copy the symlink information to the server but not the actual data. When I go to the server and run git annex sync, it updates the working tree symlinks but does not have the content data they point to. If I use "git annex copy file --to server" then the symlink created when I ran "git annex sync" on the server points to the correct file. Do I not have the correct content preferences set up? Or do I need to alias "git annex sync --content" to "git annex sync --content && git annex copy . --to server" on the laptop?
I want to be able to drop large amounts of data from the laptop and get it back if needed but always have it available on the server any way without having to push it explicitly. I would think that this would be a fairly common use case. Maybe I have missed something in the documentation? I have not set up the laptop as a remote on the server (I'd prefer not to -- I only plan to push/pull from the laptop, not push/pull from the server).

View file

@ -0,0 +1,113 @@
I am on a direct remote. I just deleted a directory, and would like to commit that change.
After I run `git annex sync` I see a line which says `commit`, and that is all. I tried to wait it out a few hours, but nothing. Why does git annex hang?
Here is the output of `strace git annex sync`:
```
chymera@zenbookhost /run/media/chymera/data3 $ strace git annex sync
execve("/usr/bin/git", ["git", "annex", "sync"], [/* 78 vars */]) = 0
brk(0) = 0x1afa000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f17d12c4000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=207886, ...}) = 0
mmap(NULL, 207886, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f17d1291000
close(3) = 0
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\27\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=452672, ...}) = 0
mmap(NULL, 2548328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f17d0e36000
mprotect(0x7f17d0ea4000, 2093056, PROT_NONE) = 0
mmap(0x7f17d10a3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0x7f17d10a3000
close(3) = 0
open("/lib64/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=88456, ...}) = 0
mmap(NULL, 2183720, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f17d0c20000
mprotect(0x7f17d0c35000, 2093056, PROT_NONE) = 0
mmap(0x7f17d0e34000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f17d0e34000
close(3) = 0
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@p\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=125536, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f17d1290000
mmap(NULL, 2204816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f17d0a05000
mprotect(0x7f17d0a1b000, 2093056, PROT_NONE) = 0
mmap(0x7f17d0c1a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f17d0c1a000
mmap(0x7f17d0c1c000, 13456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f17d0c1c000
close(3) = 0
open("/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=31536, ...}) = 0
mmap(NULL, 2128920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f17d07fd000
mprotect(0x7f17d0804000, 2093056, PROT_NONE) = 0
mmap(0x7f17d0a03000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f17d0a03000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\33\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1660320, ...}) = 0
mmap(NULL, 3766680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f17d0465000
mprotect(0x7f17d05f3000, 2097152, PROT_NONE) = 0
mmap(0x7f17d07f3000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18e000) = 0x7f17d07f3000
mmap(0x7f17d07f9000, 14744, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f17d07f9000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f17d128f000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f17d128e000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f17d128d000
arch_prctl(ARCH_SET_FS, 0x7f17d128e700) = 0
mprotect(0x7f17d07f3000, 16384, PROT_READ) = 0
mprotect(0x7f17d0c1a000, 4096, PROT_READ) = 0
mprotect(0x7f17d0a03000, 4096, PROT_READ) = 0
mprotect(0x7f17d0e34000, 4096, PROT_READ) = 0
mprotect(0x7f17d10a3000, 4096, PROT_READ) = 0
mprotect(0x79b000, 4096, PROT_READ) = 0
mprotect(0x7f17d12c5000, 4096, PROT_READ) = 0
munmap(0x7f17d1291000, 207886) = 0
set_tid_address(0x7f17d128e9d0) = 2218
set_robust_list(0x7f17d128e9e0, 24) = 0
rt_sigaction(SIGRTMIN, {0x7f17d0a0bb10, [], SA_RESTORER|SA_SIGINFO, 0x7f17d0a14d20}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f17d0a0bba0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f17d0a14d20}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
open("/dev/null", O_RDWR) = 3
close(3) = 0
rt_sigprocmask(SIG_UNBLOCK, [PIPE], NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_DFL, [PIPE], SA_RESTORER|SA_RESTART, 0x7f17d0499ee0}, {SIG_DFL, [], 0}, 8) = 0
brk(0) = 0x1afa000
brk(0x1b1b000) = 0x1b1b000
open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=106086208, ...}) = 0
mmap(NULL, 106086208, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f17c9f39000
close(3) = 0
stat(".git", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory)
access("/home/chymera/.config/git/config", R_OK) = -1 ENOENT (No such file or directory)
access("/home/chymera/.gitconfig", R_OK) = 0
open("/home/chymera/.gitconfig", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=147, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f17d12c3000
read(3, "[user]\n\temail = h.chr@mail.ru\n\tn"..., 4096) = 147
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f17d12c3000, 4096) = 0
access(".git/config", R_OK) = 0
open(".git/config", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=335, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f17d12c3000
read(3, "[core]\n\trepositoryformatversion "..., 4096) = 335
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f17d12c3000, 4096) = 0
pipe([3, 4]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f17d128e9d0) = 2219
rt_sigaction(SIGINT, {0x4f4d70, [INT], SA_RESTORER|SA_RESTART, 0x7f17d0499ee0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGHUP, {0x4f4d70, [HUP], SA_RESTORER|SA_RESTART, 0x7f17d0499ee0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {0x4f4d70, [TERM], SA_RESTORER|SA_RESTART, 0x7f17d0499ee0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, {0x4f4d70, [QUIT], SA_RESTORER|SA_RESTART, 0x7f17d0499ee0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPIPE, {0x4f4d70, [PIPE], SA_RESTORER|SA_RESTART, 0x7f17d0499ee0}, {SIG_DFL, [PIPE], SA_RESTORER|SA_RESTART, 0x7f17d0499ee0}, 8) = 0
close(4) = 0
read(3, "", 1) = 0
close(3) = 0
wait4(2219, commit
```

View file

@ -0,0 +1,9 @@
In our quest to find dumb replacements for [[todo/wishlist: 'get' queue and schedule.]] (and a more complete [[git-annex-schedule]]), we have setup a cronjob that would start and stop the assistant during certain time windows, to ensure that it would not download during prime bandwidth time.
But that isn't exactly what we're looking for: we would like the assistant to continue doing its usual thing of adding and removing files, and even syncing the git branches. Just not get/move files around.
One way I thought of doing this was to disable a remote locally. [[git-annex-dead]] of course comes to mind, but that applies to all repositories, so it's not an option. If the remote was in git, i could just `git remote rm origin` and `git remote add origin` and be done with it, but this is the *web* remote, so it doesn't even show up in `git remote -v`.
So how do i disable a [[special remotes]]?
Thanks! --[[anarcat]]

View file

@ -0,0 +1,5 @@
Hi,
how can I use comments in the file containing the feed urls.
The hash symbol # causes a bad feed exception.

View file

@ -0,0 +1,28 @@
Hello,
git-annex looks very interesting and I would like it to version large binary artifacts for testing in our source code repository.
My question:
I want to have/can have multiple clones of the same repository on the same machine.
However, as the binary files can be huge, I would like to store the files only exactly ONCE per machine and not again in the .git/annex/objects folder of each similar cloned repository.
To achieve that, I first created in
/tmp/repo-clone1/.git/annex/objects
and then symlinked
ln -s /tmp/repo-clone1/.git/annex/objects /tmp/repo-clone2/.git/annex/objects
such that
/tmp/repo-clone1
/tmp/repo-clone2
share the same big files and the big files are only once on the machine.
Is this a good idea? Is there a better way to achieve this? Looks a bit hacky. Would be nicer if you can specify a dedicated "objects" folder from the start?!
Thanks and Regards,
J

View file

@ -0,0 +1,15 @@
[[!comment format=mdwn
username="https://id.koumbit.net/anarcat"
subject="use hardlinks"
date="2015-05-29T01:40:21Z"
content="""
that is a pretty bad idea! :) git-annex will believe it has two copy of the files and could allow you to drop the last copy, and loose data.
instead, you should clone the repo with `--shared`, like this:
git clone --shared /tmp/repo-clone1 /tmp/repo-clone2
according to the [[git-annex]] manpage, this will set the `annex.hardlink` setting and mark the repo as \"untrusted\". files will be hardlinked between the two repositories, using only the space once.
see also [[todo/wishlist:_use_hardlinks_for_local_clones/]]. --[[anarcat]]
"""]]

View file

@ -44,6 +44,18 @@ non-large file directly to the git repository, instead of to the annex.
[[git-annex]](1)
[[git-annex-unlock]](1)
[[git-annex-lock]](1)
[[git-annex-undo]](1)
[[git-annex-import]](1)
[[git-annex-unannex]](1)
[[git-annex-reinject]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -17,6 +17,10 @@ The files will have names starting with "unused."
[[git-annex]](1)
[[git-annex-add]](1)
[[git-annex-unused]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -59,6 +59,12 @@ be used to get better filenames.
[[git-annex]](1)
[[git-annex-rmurl]](1)
[[git-annex-registerurl]](1)
[[git-annex-importfeed]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -11,9 +11,6 @@ git annex assistant
Watches for changes to files in the current directory and its subdirectories,
and automatically syncs them to other remotes.
For more details about the git-annex assistant, see
<https://git-annex.branchable.com/assistant/>
# OPTIONS
* `--autostart`
@ -45,6 +42,13 @@ For more details about the git-annex assistant, see
[[git-annex]](1)
[[git-annex-watch]](1)
[[git-annex-schedule]](1)
For more details about the git-annex assistant, see
<https://git-annex.branchable.com/assistant/>
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -68,6 +68,12 @@ Copies the content of files from or to another remote.
[[git-annex]](1)
[[git-annex-get]](1)
[[git-annex-move]](1)
[[git-annex-drop]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -18,6 +18,14 @@ description, or their UUID.
[[git-annex]](1)
[[git-annex-trust]](1)
[[git-annex-semitrust]](1)
[[git-annex-untrust]](1)
[[git-annex-expire]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -22,6 +22,8 @@ no git remote corresponding to it.
[[git-annex]](1)
[[git-annex-init]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -21,6 +21,8 @@ commands.
[[git-annex]](1)
[[git-annex-indirect]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -59,6 +59,12 @@ safe to do so.
[[git-annex]](1)
[[git-annex-get]](1)
[[git-annex-move]](1)
[[git-annex-copy]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -32,6 +32,8 @@ Or, specify "all" to drop all unused data.
[[git-annex]](1)
[[git-annex-unused]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -49,6 +49,8 @@ make little sense except in cases like the revoked key example above.
[[git-annex]](1)
[[git-annex-initremote]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -58,6 +58,10 @@ finds files in the current directory and its subdirectories.
[[git-annex]](1)
[[git-annex-whereis]](1)
[[git-annex-list]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -25,6 +25,8 @@ but is done automatically when committing a change with git too.
[[git-annex]](1)
[[git-annex-fsck]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -86,6 +86,10 @@ With parameters, only the specified files are checked.
[[git-annex]](1)
[[git-annex-repair]](1)
[[git-annex-expire]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -58,6 +58,10 @@ or transferring them from some kind of key-value store.
[[git-annex-drop]](1)
[[git-annex-copy]](1)
[[git-annex-move]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -22,6 +22,12 @@ A repository can be in multiple groups at the same time.
[[git-annex]](1)
[[git-annex-ungroup]](1)
[[git-annex-preferred-content]](1)
[[git-annex-wanted]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -25,6 +25,12 @@ make repositories in the group want to contain 3 copies of every file:
[[git-annex]](1)
[[git-annex-group]](1)
[[git-annex-wanted]](1)
[[git-annex-preferred-content]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -75,6 +75,8 @@ backend does not look at file content, but filename and mtime.
[[git-annex]](1)
[[git-annex-add]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -42,6 +42,8 @@ To make the import process add metadata to the imported files from the feed,
[[git-annex]](1)
[[git-annex-addurl]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -19,6 +19,8 @@ default to using direct mode.
[[git-annex]](1)
[[git-annex-direct]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -20,6 +20,12 @@ one will be generated using the username, hostname and the path.
[[git-annex]](1)
[[git-annex-describe]](1)
[[git-annex-reinit]](1)
git-init(1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -50,6 +50,8 @@ access.
[[git-annex]](1)
[[git-annex-enableremote]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -27,6 +27,10 @@ files. This is similar to `git annex whereis` but a more compact display.
[[git-annex]](1)
[[git-annex-find]](1)
[[git-annex-whereis]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -22,6 +22,10 @@ the files, or have made modifications you want to discard.
[[git-annex]](1)
[[git-annex-add]](1)
[[git-annex-unlock]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -20,6 +20,8 @@ working copy automatically.
[[git-annex]](1)
[[git-annex-sync]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -89,6 +89,8 @@ To set some tags on a file and also its author:
[[git-annex]](1)
[[git-annex-view]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -41,6 +41,8 @@ it's best to run migrate in all of them.
[[git-annex]](1)
[[git-annex-upgrade]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -17,7 +17,7 @@ the source repository, it will be dropped from the destination repository
when the numcopies setting allows.
Note that mirror does not sync the git repository, but only the file
contents.
contents. Use [[git-annex-sync]](1) for that.
# OPTIONS
@ -55,6 +55,8 @@ contents.
[[git-annex]](1)
[[git-annex-sync]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -51,6 +51,12 @@ Moves the content of files from or to another remote.
[[git-annex]](1)
[[git-annex-get]](1)
[[git-annex-copy]](1)
[[git-annex-drop]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -25,6 +25,8 @@ valid url, an URL key is constructed from the url.
[[git-annex]](1)
[[git-annex-addurl]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -21,6 +21,8 @@ a fsck.
[[git-annex]](1)
[[git-annex-init]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -25,6 +25,10 @@ Example:
[[git-annex]](1)
[[git-annex-add]](1)
[[git-annex-fsck]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -48,6 +48,8 @@ to make sure that the git-annex branch reflects reality.
[[git-annex]](1)
[[git-annex-fsck]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -9,7 +9,7 @@ git annex required `repository [expression]`
# DESCRIPTION
When run with an expression, configures the content that is required
to be held in the archive. See [[git-annex-preferred-content]](1)
to be held in the archive.
For example:
@ -18,10 +18,20 @@ For example:
Without an expression, displays the current required content setting
of the repository.
While [[git-annex-wanted]] is just a preference,
[[git-annex-required]] designates content that should really not be
removed. For example a file that is `wanted` can be removed with `git
annex drop`, but if that file is `required`, it would need to be
removed with `git annex drop --force`.
# SEE ALSO
[[git-annex]](1)
[[git-annex-wanted]](1)
[[git-annex-preferred-content]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -14,6 +14,8 @@ Record that the file is no longer available at the url.
[[git-annex]](1)
[[git-annex-addurl]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -40,6 +40,10 @@ To schedule multiple jobs, separate them with "; ".
[[git-annex]](1)
[[git-annex-assistant]](1)
[[git-annex-expire]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -17,6 +17,14 @@ description, or their UUID. For the current repository, use "here".
[[git-annex]](1)
[[git-annex-trust]](1)
[[git-annex-untrust]](1)
[[git-annex-dead]](1)
[[git-annex-expire]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -25,6 +25,8 @@ Particularly useful in direct mode.
[[git-annex]](1)
git-status(1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -47,7 +47,10 @@ by running "git annex sync" on the remote.
By default, this tries to get each annexed file that the local repository
does not yet have, and then copies each file to every remote that it is
syncing with. This behavior can be overridden by configuring the preferred
content of a repository. See [git-annex-preferred-content](1)
content of a repository. See [[git-annex-preferred-content]](1).
To make two repositories have the same set of fies, you should use
[[git-annex-mirror]](1) instead of this flag.
* `--message=msg`
@ -57,6 +60,10 @@ by running "git annex sync" on the remote.
[[git-annex]](1)
[[git-annex-preferred-content]](1)
[[git-annex-mirror]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -18,6 +18,12 @@ description, or their UUID. To trust the current repository, use "here".
[[git-annex]](1)
[[git-annex-semitrust]](1)
[[git-annex-untrust]](1)
[[git-annex-dead]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -26,6 +26,8 @@ operates on the file tree committed to git.
[[git-annex]](1)
[[git-annex-add]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -14,6 +14,8 @@ Removes a repository from a group.
[[git-annex]](1)
[[git-annex-group]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -18,6 +18,8 @@ git repository plus the previously annexed files.
[[git-annex-unannex]](1)
[[git-annex-init]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -25,6 +25,12 @@ it back into the annex.
[[git-annex]](1)
[[git-annex-edit]](1)
[[git-annex-add]](1)
[[git-annex-lock]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -18,6 +18,12 @@ description, or their UUID. To untrust the current repository, use "here".
[[git-annex]](1)
[[git-annex-trust]](1)
[[git-annex-semitrust]](1)
[[git-annex-dead]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -65,6 +65,10 @@ and walking the list in order from left to right.
[[git-annex]](1)
[[git-annex-dropunused]](1)
[[git-annex-addunused]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -25,6 +25,8 @@ allow archives to be taken offline for years and later used.
[[git-annex]](1)
[[git-annex-migrate]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -21,6 +21,8 @@ to only those two.
[[git-annex]](1)
[[git-annex-metadata]](1)
[[git-annex-view]](1)
[[git-annex-vpop]](1)

View file

@ -17,6 +17,8 @@ it to author/tag/year.
[[git-annex]](1)
[[git-annex-metadata]](1)
[[git-annex-view]](1)
[[git-annex-vpop]](1)

View file

@ -15,6 +15,8 @@ specified field values and tags.
[[git-annex]](1)
[[git-annex-metadata]](1)
[[git-annex-view]](1)
[[git-annex-vpop]](1)

View file

@ -17,6 +17,8 @@ The optional number tells how many views to pop.
[[git-annex]](1)
[[git-annex-metadata]](1)
[[git-annex-view]](1)
[[git-annex-vfilter]](1)

View file

@ -22,6 +22,12 @@ of the repository.
[[git-annex]](1)
[[git-annex-required]](1)
[[git-annex-preferred-content]](1)
[[git-annex-groupwanted]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -36,6 +36,8 @@ files that it does not match will instead be added with `git add`.
[[git-annex]](1)
[[git-annex-assistant]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -42,6 +42,8 @@ one way to generate those files, using a self-signed certificate:
[[git-annex]](1)
[[git-annex-assistant]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -49,6 +49,10 @@ For example:
[[git-annex]](1)
[[git-annex-find]](1)
[[git-annex-list]](1)
# AUTHOR
Joey Hess <id@joeyh.name>

View file

@ -315,6 +315,8 @@ subdirectories).
Expires repositories that have not recently performed an activity
(such as a fsck).
See [[git-annex-expire]](1) for details.
* `unused`
Checks the annex for data that does not correspond to any files present
@ -498,7 +500,7 @@ subdirectories).
De-initialize git-annex and clean out repository.
See [[git-annex-unannex]](1) for details.
See [[git-annex-uninit]](1) for details.
* `reinit uuid|description`

View file

@ -0,0 +1,34 @@
[[!comment format=mdwn
username="https://me.yahoo.com/a/1NYxQEUZztr9TUg3dBoKbExvSbVs7HY-#43da1"
nickname="Bleddle"
subject="Cannot install with cabal"
date="2015-05-28T18:38:00Z"
content="""
➤ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
➤ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library
➤ cabal install git-annex
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: git-annex-5.20150528
trying: git-annex-5.20150528:+webdav
trying: git-annex-5.20150528:+webapp
trying: yesod-1.4.1.5
trying: yesod-auth-1.4.5
trying: authenticate-1.3.2.11
trying: xml-conduit-1.3.0
rejecting: DAV-1.0.5, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0 (conflict:
xml-conduit==1.3.0, DAV => xml-conduit>=1.0 && <1.3)
rejecting: DAV-0.8, 0.7, 0.6.2, 0.6.1, 0.6, 0.5.1, 0.5, 0.4.1, 0.4, 0.3.1,
0.3, 0.2, 0.1, 0.0.1, 0.0 (conflict: git-annex-5.20150528:webdav =>
DAV(>=1.0))
"""]]

View file

@ -0,0 +1,3 @@
ATM it floods the screen with ok for every file (in non-interactive session even split across 2 lines). As such it is just a pure noise if I care to check if entire repo is ok -- a single summary line, possibly preceeded with reports about broken files would be much better imho.
Cheers!

View file

@ -0,0 +1,38 @@
the [[git-annex]] manpage is still pretty long. i wonder if work shouldn't be done to shorten it further.
what i'm thinking of is that this entry, for example, takes up three lines where it could take two, reducing the size by 30% since most commands have only one line explaining it:
<pre>
* undo `[filename|directory] ...`
Undo last change to a file or directory.
See [[git-annex-undo]](1) for details.
</pre>
the `git(1)` manpage resolves this by putting the reference in the first line:
<pre>
git-init(1)
Create an empty Git repository or reinitialize an existing one.
</pre>
So i would think there are two options here:
1. do like git, but preserving the usage:
<pre>
* [[git-annex-undo]](1) `[filename|directory]`
Undo last change to a file or directory.
</pre>
2. Put the reference on the same line:
<pre>
* undo `[filename|directory] ...`
Undo last change to a file or directory. See [[git-annex-undo]](1) for details.
</pre>
Opinions? --[[anarcat]]

View file

@ -28,3 +28,5 @@ git annex queue rm 20 (removes job 20 from queue)
* User IP/Remote IP (solved by VPN - outside scope of git-annex, unless someone writes a plugin)
* Access times (obscured by a queue and scheduling)
Note, there is a [[git-annex-schedule]] command now, but it only does `fsck`.