Joey Hess [Tue, 22 Dec 2015 20:22:28 +0000 (16:22 -0400)]
populate unlocked files with newly available content when ingesting
This can happen when ingesting a new file in either locked or unlocked
mode, when some unlocked files in the repo use the same key, and the
content was not locally available before.
Joey Hess [Tue, 22 Dec 2015 19:23:27 +0000 (15:23 -0400)]
finish v6 support for assistant
Seems to basically work now!
Joey Hess [Tue, 22 Dec 2015 19:20:03 +0000 (15:20 -0400)]
make linkAnnex detect when the file changes as it's being copied/linked in
This fixes a race where the modified file ended up in annex/objects, and
the InodeCache stored in the database was for the modified version, so
git-annex didn't know it had gotten modified.
The race could occur when the smudge filter was running; now it gets the
InodeCache before generating the Key, which avoids the race.
Joey Hess [Tue, 22 Dec 2015 17:23:33 +0000 (13:23 -0400)]
refactoring
no behavior changes
Joey Hess [Mon, 21 Dec 2015 22:41:15 +0000 (18:41 -0400)]
wip v6 support for assistant
Files are not yet added to v6 repos in unlocked mode.
Joey Hess [Mon, 21 Dec 2015 22:00:13 +0000 (18:00 -0400)]
remove (v6) associated file in unannex
Joey Hess [Mon, 21 Dec 2015 21:12:46 +0000 (17:12 -0400)]
Merge branch 'master' into smudge
Joey Hess [Mon, 21 Dec 2015 16:57:20 +0000 (12:57 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Dec 2015 16:57:13 +0000 (12:57 -0400)]
addurl: Added --batch option.
Added a comment
Joey Hess [Mon, 21 Dec 2015 15:34:51 +0000 (11:34 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
cbaines [Mon, 21 Dec 2015 13:33:34 +0000 (13:33 +0000)]
Added a comment
Added a comment
cbaines [Mon, 21 Dec 2015 12:40:52 +0000 (12:40 +0000)]
Added a comment
cbaines [Mon, 21 Dec 2015 12:32:55 +0000 (12:32 +0000)]
Added a comment
Added a comment
Added a comment: A problem with SmartGit then?
sts [Sun, 20 Dec 2015 19:49:27 +0000 (19:49 +0000)]
Added a comment
Joey Hess [Sat, 19 Dec 2015 21:42:45 +0000 (17:42 -0400)]
fix build warnings under ghc 7.10
Caused by AMP.. Since I've finally upgraded my dev laptop to 7.10,
I may start missing imports that are not needed with it but are with older
versions..
Joey Hess [Sat, 19 Dec 2015 18:33:10 +0000 (14:33 -0400)]
update
Joey Hess [Sat, 19 Dec 2015 18:29:40 +0000 (14:29 -0400)]
reuse comment
Joey Hess [Sat, 19 Dec 2015 18:27:22 +0000 (14:27 -0400)]
comment
Joey Hess [Sat, 19 Dec 2015 18:19:24 +0000 (14:19 -0400)]
comment
Joey Hess [Sat, 19 Dec 2015 18:07:57 +0000 (14:07 -0400)]
comment
Joey Hess [Sat, 19 Dec 2015 17:59:03 +0000 (13:59 -0400)]
comment
Joey Hess [Sat, 19 Dec 2015 17:55:28 +0000 (13:55 -0400)]
comment
Joey Hess [Sat, 19 Dec 2015 17:51:26 +0000 (13:51 -0400)]
comment
Joey Hess [Sat, 19 Dec 2015 17:47:01 +0000 (13:47 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Sat, 19 Dec 2015 17:36:40 +0000 (13:36 -0400)]
status: On crippled filesystems, was displaying M for all annexed files that were present. Probably caused by a change to what git status displays in this situation. Fixed by treating files git thinks are modified the same as typechanged files.
Joey Hess [Fri, 18 Dec 2015 18:48:04 +0000 (14:48 -0400)]
add news item for git-annex 5.
20151218
Joey Hess [Fri, 18 Dec 2015 18:43:12 +0000 (14:43 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Added a comment
Joey Hess [Fri, 18 Dec 2015 16:09:55 +0000 (12:09 -0400)]
prep release
Joey Hess [Thu, 17 Dec 2015 22:46:52 +0000 (18:46 -0400)]
interaction with shared clones
SamuelTardieu [Thu, 17 Dec 2015 11:15:55 +0000 (11:15 +0000)]
Added a comment
Joey Hess [Wed, 16 Dec 2015 21:05:12 +0000 (17:05 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 16 Dec 2015 21:04:48 +0000 (17:04 -0400)]
devblog
Joey Hess [Wed, 16 Dec 2015 21:04:31 +0000 (17:04 -0400)]
update
Joey Hess [Wed, 16 Dec 2015 20:56:27 +0000 (16:56 -0400)]
test suite down to only 4 fails with v6
Joey Hess [Wed, 16 Dec 2015 20:02:21 +0000 (16:02 -0400)]
update todo list
Joey Hess [Wed, 16 Dec 2015 20:00:41 +0000 (16:00 -0400)]
fix docs
"git -a annex.largefiles=* add" cannot be used.. git does not pass the
config along to the smudge filter, sadly.
Joey Hess [Wed, 16 Dec 2015 19:35:42 +0000 (15:35 -0400)]
v6: fix locking modified file when the content is not present
Joey Hess [Wed, 16 Dec 2015 18:53:41 +0000 (14:53 -0400)]
fix add of file that was locked but has been replaced by a new, unlocked file (v6)
Joey Hess [Wed, 16 Dec 2015 18:27:12 +0000 (14:27 -0400)]
fix reversion in v5 git-annex add of unlocked file
In v5, lookupFile is supposed to only look at symlinks on disk (except when
in direct mode).
Note that v6 also has a bug when a locked file's symlink is deleted and is
replaced with a new file. It sees that a link is staged and gets that
key.
Joey Hess [Wed, 16 Dec 2015 18:05:26 +0000 (14:05 -0400)]
temporarily remove cached keys database connection
The problem is that shutdown is not always called, particularly in the test
suite. So, a database connection would be opened, possibly some changes
queued, and then not shut down.
One way this can happen is when using Annex.eval or Annex.run with a new
state. A better fix might be to make both of them call Keys.shutdown
(and be sure to do it even if the annex action threw an error).
Complication: Sometimes they're run reusing an existing state, so shutting
down a database connection could cause problems for other users of that
same state. I think this would need a MVar holding the database handle,
so it could be emptied once shut down, and another user of the database
connection could then start up a new one if it got shut down. But, what if
2 threads were concurrently using the same database handle and one shut it
down while the other was writing to it? Urgh.
Might have to go that route eventually to get the database access to run
fast enough. For now, a quick fix to get the test suite happier, at the
expense of speed.
Joey Hess [Wed, 16 Dec 2015 17:52:43 +0000 (13:52 -0400)]
reorder database shutdown to be concurrency safe
If a DbHandle is in use by another thread, it could be queueing changes
while shutdown is running. So, wait for the worker to finish before
flushing the queue, so that any last-minute writes are included. Before
this fix, they would be silently dropped.
Of course, if the other thread continues to try to use a DbHandle once it's
closed, it will block forever as the worker is no longer reading from the
jobs MVar. So, that would crash with
"thread blocked indefinitely in an MVar operation".
Joey Hess [Wed, 16 Dec 2015 17:24:45 +0000 (13:24 -0400)]
comment
Joey Hess [Wed, 16 Dec 2015 17:14:18 +0000 (13:14 -0400)]
pass --version to init when needed
Joey Hess [Wed, 16 Dec 2015 17:07:46 +0000 (13:07 -0400)]
Merge branch 'master' into smudge
Added a comment
14.203.223.70 [Wed, 16 Dec 2015 07:09:17 +0000 (07:09 +0000)]
poll vote (My phone (or MP3 player))
Joey Hess [Wed, 16 Dec 2015 00:50:52 +0000 (20:50 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 16 Dec 2015 00:42:35 +0000 (20:42 -0400)]
bring back some deleted functions that git-repair uses
Joey Hess [Wed, 16 Dec 2015 00:20:37 +0000 (20:20 -0400)]
improve temp dir security
http://bugs.debian.org/807341
* Fix insecure temporary permissions when git-annex repair is used in
in a corrupted git repository.
Other calls to withTmpDir didn't leak any potentially private data,
but repair clones the git repository to a temp directory which is made
using the user's umask. Thus, it might expose a git repo that is
otherwise locked down.
* Fix potential denial of service attack when creating temp dirs.
Since withTmpDir used easily predictable temporary directory names,
an attacker could create foo.0, foo.1, etc and as long as it managed to
keep ahead of it, could prevent it from ever returning.
I'd rate this as a low utility DOS attack. Most attackers in a position
to do this could just fill up the disk /tmp is on to prevent anything
from writing temp files. And few parts of git-annex use withTmpDir
anyway, so DOS potential is quite low.
Examined all callers of withTmpDir and satisfied myself that
switching to mkdtmp and so getting a mode 700 temp dir wouldn't break any
of them.
Note that withTmpDirIn continues to not force temp dir to 700.
But it's only used for temp directories inside .git/annex/wherever/
so that is not a problem.
Also re-audited all other uses of temp files and dirs in git-annex.
Joey Hess [Tue, 15 Dec 2015 21:19:26 +0000 (17:19 -0400)]
starting to work on test suite for v6
Joey Hess [Tue, 15 Dec 2015 21:17:13 +0000 (17:17 -0400)]
Use git-annex init --version=6 to get v6 for now
Not ready to make it default because of the direct mode upgrade needing to
all happen at once.
Joey Hess [Tue, 15 Dec 2015 20:18:39 +0000 (16:18 -0400)]
in v6 mode, unannex does not interact badly with pre-commit hook
So can be used in a tree with staged changes, no problems. Much nicer.
Joey Hess [Tue, 15 Dec 2015 20:10:48 +0000 (16:10 -0400)]
recent fsck changes caused ugly message when object was not present
Joey Hess [Tue, 15 Dec 2015 20:07:02 +0000 (16:07 -0400)]
update todo list
Joey Hess [Tue, 15 Dec 2015 19:56:37 +0000 (15:56 -0400)]
implemented upgrade of direct mode repo to v6
Joey Hess [Tue, 15 Dec 2015 19:34:28 +0000 (15:34 -0400)]
reorg
Joey Hess [Tue, 15 Dec 2015 18:27:20 +0000 (14:27 -0400)]
changes for v6 broke fsck in direct mode
Joey Hess [Tue, 15 Dec 2015 18:18:44 +0000 (14:18 -0400)]
clarify
Joey Hess [Tue, 15 Dec 2015 18:17:34 +0000 (14:17 -0400)]
doc update
Joey Hess [Tue, 15 Dec 2015 18:17:00 +0000 (14:17 -0400)]
add: In v6 mode, acts on modified files.
Same as was done in direct mode, except in v6 mode add always adds files
locked, so
Joey Hess [Tue, 15 Dec 2015 18:14:19 +0000 (14:14 -0400)]
fix incorrect doc change
Joey Hess [Tue, 15 Dec 2015 18:09:36 +0000 (14:09 -0400)]
avoid pre-commit check having to do with v5 unlocked files when in v6 mode
Joey Hess [Tue, 15 Dec 2015 18:08:07 +0000 (14:08 -0400)]
rename stuff for v5 unlocked files to indicate it's old
Joey Hess [Tue, 15 Dec 2015 18:07:54 +0000 (14:07 -0400)]
update doc for v6
Joey Hess [Tue, 15 Dec 2015 18:02:53 +0000 (14:02 -0400)]
add: no need to make pass for old unlocked files in v6
Joey Hess [Tue, 15 Dec 2015 17:06:52 +0000 (13:06 -0400)]
have clean filter check if the filename was already in use by an old key
The annex object for it may have been modified due to hard link, and
that should be cleaned up when the new version is added. If another
associated file has the old key's content, that's linked into the annex
object. Otherwise, update location log to reflect that content has been
lost.
Joey Hess [Tue, 15 Dec 2015 17:05:23 +0000 (13:05 -0400)]
add getAssociatedKey
I guess this is just as efficient as the getAssociatedFiles query, but I
have not tried to optimise the database yet.
Joey Hess [Tue, 15 Dec 2015 17:02:33 +0000 (13:02 -0400)]
update inode cache to cover file even when nothing needs to be done to linkAnnex
This covers the case where multiple files have the same content and are
added with git add. Previously only the one that was linked to the annex
got its inode cached; now both are.
Joey Hess [Tue, 15 Dec 2015 16:38:32 +0000 (12:38 -0400)]
todo
Joey Hess [Tue, 15 Dec 2015 16:01:21 +0000 (12:01 -0400)]
Merge branch 'master' into smudge
removed
Added a comment
Added a comment
Added a comment: It worked
Added a comment: I'm also having this issue
yminus [Sun, 13 Dec 2015 22:55:16 +0000 (22:55 +0000)]
Added a comment
scorchgeek [Sun, 13 Dec 2015 22:30:47 +0000 (22:30 +0000)]
Added a comment: Indeed
basak [Sun, 13 Dec 2015 21:35:59 +0000 (21:35 +0000)]
Added a comment
Added a comment: Repairing ignores disk space issues too
scorchgeek [Sat, 12 Dec 2015 22:44:00 +0000 (22:44 +0000)]
create page
Joey Hess [Sat, 12 Dec 2015 16:19:31 +0000 (12:19 -0400)]
Debian: Build depend on concurrent-output.
In unstable now.
Added a comment
Added a comment
Added a comment
Joey Hess [Fri, 11 Dec 2015 21:53:37 +0000 (17:53 -0400)]
avoid smudge filter returning invalid content
1. git add file
2. git commit
3. modify file
4. git commit
5. git reset HEAD^
Before this fix, that resulted in git saying the file was modified. And
indeed, it didn't have the content it should in the just checked out ref,
because step 3 modified the object file for the old key.
http://www.ryantm.com/ [Fri, 11 Dec 2015 21:04:54 +0000 (21:04 +0000)]
2 more data -> 2 more days
Joey Hess [Fri, 11 Dec 2015 20:24:21 +0000 (16:24 -0400)]
devblog
Joey Hess [Fri, 11 Dec 2015 20:22:40 +0000 (16:22 -0400)]
update
Joey Hess [Fri, 11 Dec 2015 20:12:42 +0000 (16:12 -0400)]
checked getKeysPresent; it's ok for v6 unlocked files
When a v6 unlocked files is removed from the work tree,
unused doesn't show it. When it gets removed from the index,
unused does show it. This is the same as a locked file.
Joey Hess [Fri, 11 Dec 2015 20:05:56 +0000 (16:05 -0400)]
fsck for v6 unlocked files
This only adds 1 stat to each file fscked for locked files, so
added overhead is minimal.
For unlocked files it has to access the database to see if a file
is modified.