Joey Hess [Wed, 9 Dec 2015 21:47:05 +0000 (17:47 -0400)]
use InodeCache when dropping a key to see if a pointer file can be safely reset
The Keys database can hold multiple inode caches for a given key. One for
the annex object, and one for each pointer file, which may not be hard
linked to it.
Inode caches for a key are recorded when its content is added to the annex,
but only if it has known pointer files. This is to avoid the overhead of
maintaining the database when not needed.
When the smudge filter outputs a file's content, the inode cache is not
updated, because git's smudge interface doesn't let us write the file. So,
dropping will fall back to doing an expensive verification then. Ideally,
git's interface would be improved, and then the inode cache could be
updated then too.
Joey Hess [Wed, 9 Dec 2015 21:00:37 +0000 (17:00 -0400)]
add inode cache to the db
Renamed the db to keys, since it is various info about a Keys.
Dropping a key will update its pointer files, as long as their content can
be verified to be unmodified. This falls back to checksum verification, but
I want it to use an InodeCache of the key, for speed. But, I have not made
anything populate that cache yet.
Joey Hess [Wed, 9 Dec 2015 19:42:16 +0000 (15:42 -0400)]
move InodeSentinal from direct mode code to its own module
Will be used outside of direct mode for v6 unlocked files, and is already
used outside of direct mode when adding files to annex.
Joey Hess [Wed, 9 Dec 2015 19:25:14 +0000 (15:25 -0400)]
link/copy pointer files to object content when it's added
Joey Hess [Wed, 9 Dec 2015 19:24:32 +0000 (15:24 -0400)]
avoid clean filter trying to annex a pointer file
Joey Hess [Wed, 9 Dec 2015 19:18:25 +0000 (15:18 -0400)]
avoid pre-commit hook messing up new-style unlocked files in v6 repo
Joey Hess [Wed, 9 Dec 2015 18:55:47 +0000 (14:55 -0400)]
stash DbHandle in Annex state
Joey Hess [Wed, 9 Dec 2015 18:25:33 +0000 (14:25 -0400)]
refactor and improve pointer file handling code
Joey Hess [Tue, 8 Dec 2015 17:07:45 +0000 (13:07 -0400)]
todo
Joey Hess [Mon, 7 Dec 2015 21:24:16 +0000 (17:24 -0400)]
long walk led to long list of things to do
Joey Hess [Mon, 7 Dec 2015 19:45:08 +0000 (15:45 -0400)]
require "annex/objects/" before key in pointer files
This removes ambiguity, because while someone might have "WORM--foo" in a
file that's not intended to be a git-annex pointer file,
"annex/objects/WORM--foo" is less likely.
Also,
664cc987e806800ef46794f356003321170c1060 had a caveat about symlink
targets being parsed as pointer files, and now the same parser is used for
both.
I did not include any hash directories before the key in the pointer file,
as they're not needed. However, if they were included, the parser would
still work ok.
Joey Hess [Mon, 7 Dec 2015 19:22:01 +0000 (15:22 -0400)]
support pointer files
Backend.lookupFile is changed to always fall back to catKey when
operating on a file that's not a symlink.
catKey is changed to understand pointer files, as well as annex symlinks.
Before, catKey needed a file mode witness, to be sure it was looking at a
symlink. That was complicated stuff. Now, it doesn't actually care if a
file in git is a symlink or not; in either case asking git for the content
of the file will get the pointer to the key.
This does mean that git-annex will treat a link
foo -> WORM--bar as a git-annex file, and also treats
a regular file containing annex/objects/WORM--bar as a git-annex file.
Calling catKey could make git-annex commands need to do more work than
before. This would especially be the case if a repo contained many regular
files, and only a few annexed files, as now git-annex will need to ask
git about the contents of the regular files.
Joey Hess [Mon, 7 Dec 2015 18:35:46 +0000 (14:35 -0400)]
update associated files database on smudge and clean
Joey Hess [Mon, 7 Dec 2015 17:42:03 +0000 (13:42 -0400)]
associated files database
Joey Hess [Mon, 7 Dec 2015 16:30:10 +0000 (12:30 -0400)]
wording
Joey Hess [Mon, 7 Dec 2015 16:29:34 +0000 (12:29 -0400)]
Merge branch 'master' into smudge
Joey Hess [Sun, 6 Dec 2015 20:56:16 +0000 (16:56 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Sun, 6 Dec 2015 20:50:37 +0000 (16:50 -0400)]
fix temp filename
Was not putting it inside the temp dir, but next to it!
This was just wrong, and it led to a longer filename that desired being
used, leading to some bug reports.
Joey Hess [Sun, 6 Dec 2015 20:42:40 +0000 (16:42 -0400)]
avoid too long temp dir template
The filename might be at or close to the filename length limit, so using it
as the template for the temp dir would then fail.
Joey Hess [Sun, 6 Dec 2015 20:36:35 +0000 (16:36 -0400)]
cleanup
Joey Hess [Sun, 6 Dec 2015 20:29:36 +0000 (16:29 -0400)]
avoid looping trying to make temp dir when the name is too long
Only loop when directory creation fails due to the directory existing
already.
torpidus [Sun, 6 Dec 2015 20:29:26 +0000 (20:29 +0000)]
Added a comment
Joey Hess [Sun, 6 Dec 2015 20:26:38 +0000 (16:26 -0400)]
generalize catchHardwareFault to catchIOErrorType
torpidus [Sun, 6 Dec 2015 18:51:12 +0000 (18:51 +0000)]
Fix broken link to other bug
Report bug due to broken createSymbolicLink
spwhitton [Sat, 5 Dec 2015 19:52:38 +0000 (19:52 +0000)]
m
spwhitton [Sat, 5 Dec 2015 19:52:17 +0000 (19:52 +0000)]
Copy hints for Emacs users from propellor coding style page
a@b34f238966e58f7c2ea550cc4cab3005c0e33150 [Sat, 5 Dec 2015 18:17:45 +0000 (18:17 +0000)]
Joey Hess [Fri, 4 Dec 2015 22:05:18 +0000 (18:05 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 4 Dec 2015 21:57:34 +0000 (17:57 -0400)]
devblog
Joey Hess [Fri, 4 Dec 2015 21:57:15 +0000 (17:57 -0400)]
init: Configure .git/info/attributes to use git-annex as a smudge filter.
Note that this changes the default behavior of git add in a newly
initialized repository; it will add files to the annex.
Don't like that this could break workflows, but it's necessary in order for
any pointer files in the repo to be handled by git-annex.
Joey Hess [Fri, 4 Dec 2015 21:18:26 +0000 (17:18 -0400)]
refactor
Joey Hess [Fri, 4 Dec 2015 20:46:00 +0000 (16:46 -0400)]
comments
Joey Hess [Fri, 4 Dec 2015 20:29:27 +0000 (16:29 -0400)]
don't let git-annex direct be run in a v6 repo
Joey Hess [Fri, 4 Dec 2015 20:14:48 +0000 (16:14 -0400)]
add v6; keep v5 working for now and manual upgrade
Since all places where a repo is used in direct mode need to have git-annex
upgraded before the repo can safely be converted to v6, the upgrade needs
to be manual for now.
I suppose that at some point I'll want to drop all the direct mode support
code. At that point, will stop supporting v5, and will need to auto-upgrade
any remaining v5 repos. If possible, I'd like to carry the direct mode
support for say, a year or so, to give people plenty of time to upgrade and
avoid disruption.
Joey Hess [Fri, 4 Dec 2015 20:14:11 +0000 (16:14 -0400)]
auto-configure filter.annex.smudge and clean on init
Joey Hess [Fri, 4 Dec 2015 19:30:06 +0000 (15:30 -0400)]
merge clean into smudge command
The git filter config can be used to map the single git-annex command to
the 2 actions, and this avoids "git annex clean" being used for this thing,
it might have a better use for that name later.
Joey Hess [Fri, 4 Dec 2015 18:57:28 +0000 (14:57 -0400)]
avoid unnecessary reading of git-annex branch data when matching on annex.largefiles
This makes git annex clean not look at the git-annex branch at all,
and so speeds it up by 50% or more.
Joey Hess [Fri, 4 Dec 2015 18:20:32 +0000 (14:20 -0400)]
clean filter should update location log when adding new content to annex
Joey Hess [Fri, 4 Dec 2015 18:20:22 +0000 (14:20 -0400)]
avoid commit and messages for smudge filter
Joey Hess [Fri, 4 Dec 2015 18:10:18 +0000 (14:10 -0400)]
annex.largefiles support for clean filter
Joey Hess [Fri, 4 Dec 2015 18:03:10 +0000 (14:03 -0400)]
smudge filter working
Joey Hess [Fri, 4 Dec 2015 17:39:14 +0000 (13:39 -0400)]
basic clean filter working
Joey Hess [Fri, 4 Dec 2015 17:02:56 +0000 (13:02 -0400)]
skeleton smudge/clean filters
sts [Fri, 4 Dec 2015 12:57:59 +0000 (12:57 +0000)]
OlivierBerger [Fri, 4 Dec 2015 12:24:07 +0000 (12:24 +0000)]
Added a comment: Again, difficult to tell
OlivierBerger [Fri, 4 Dec 2015 10:21:26 +0000 (10:21 +0000)]
Added a comment: Difficult to tell
Added a comment: git-annex-remote-b2
Joey Hess [Thu, 3 Dec 2015 19:58:00 +0000 (15:58 -0400)]
dropunused: Make more robust when trying to drop an object that has already been dropped.
Before it crashed trying to lock the not-present content and prevented
dropping anything else. Instead, succeed.
Added a comment: Thanks!
Joey Hess [Wed, 2 Dec 2015 20:00:40 +0000 (16:00 -0400)]
devblog
Joey Hess [Wed, 2 Dec 2015 19:57:30 +0000 (15:57 -0400)]
webapp: Fix bugs that could result in a relative path such as "." being written to ~/.config/git-annex/autostart
and ignore any such relative paths in the file
This was a reversion caused by the relative path changes in 5.
20150113.
Joey Hess [Wed, 2 Dec 2015 19:12:33 +0000 (15:12 -0400)]
addurl, importfeed: Changed to honor annex.largefiles settings, when the content of the url is downloaded. (Not when using --fast or --relaxed.)
importfeed just calls addurl functions, so inherits this from it.
Note that addurl still generates a temp file, and uses that key to download
the file. It just adds it to the work tree at the end when the file is small.
Joey Hess [Wed, 2 Dec 2015 18:48:42 +0000 (14:48 -0400)]
import: Changed to honor annex.largefiles settings.
Joey Hess [Wed, 2 Dec 2015 18:26:49 +0000 (14:26 -0400)]
improve annex.largefiles documentation
Joey Hess [Wed, 2 Dec 2015 18:19:31 +0000 (14:19 -0400)]
comment
Joey Hess [Wed, 2 Dec 2015 17:34:05 +0000 (13:34 -0400)]
comment
Joey Hess [Wed, 2 Dec 2015 17:31:48 +0000 (13:31 -0400)]
comment
Joey Hess [Wed, 2 Dec 2015 17:28:21 +0000 (13:28 -0400)]
comment
Joey Hess [Wed, 2 Dec 2015 17:20:15 +0000 (13:20 -0400)]
comment
Joey Hess [Wed, 2 Dec 2015 17:10:23 +0000 (13:10 -0400)]
comment
Joey Hess [Wed, 2 Dec 2015 17:02:38 +0000 (13:02 -0400)]
comment
Joey Hess [Wed, 2 Dec 2015 16:59:08 +0000 (12:59 -0400)]
close
Joey Hess [Wed, 2 Dec 2015 16:55:04 +0000 (12:55 -0400)]
welcome to the docker pid 1 zombie reaping problem
Joey Hess [Wed, 2 Dec 2015 16:33:08 +0000 (12:33 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 2 Dec 2015 16:06:04 +0000 (12:06 -0400)]
fix name of comment
Joey Hess [Wed, 2 Dec 2015 16:00:41 +0000 (12:00 -0400)]
remove redundant and unnecessary todo
Mostly because of the --
SamuelTardieu [Wed, 2 Dec 2015 15:09:50 +0000 (15:09 +0000)]
Added a comment: Am pretty sure this is a filesystem issue
Joey Hess [Mon, 30 Nov 2015 20:15:44 +0000 (16:15 -0400)]
response
Joey Hess [Mon, 30 Nov 2015 20:11:45 +0000 (16:11 -0400)]
respond to all of a user's bug reports at once.. they had copied a repo and so had duplicated annex.uuid
Joey Hess [Mon, 30 Nov 2015 19:54:11 +0000 (15:54 -0400)]
response
Joey Hess [Mon, 30 Nov 2015 19:50:55 +0000 (15:50 -0400)]
um
Joey Hess [Mon, 30 Nov 2015 19:45:05 +0000 (15:45 -0400)]
response
Joey Hess [Mon, 30 Nov 2015 19:41:06 +0000 (15:41 -0400)]
pebkac
Joey Hess [Mon, 30 Nov 2015 19:38:39 +0000 (15:38 -0400)]
comment
Joey Hess [Mon, 30 Nov 2015 19:35:53 +0000 (15:35 -0400)]
tahoe: Include tahoe capabilities in whereis display.
Joey Hess [Mon, 30 Nov 2015 19:25:41 +0000 (15:25 -0400)]
sigh @ OSX
Joey Hess [Mon, 30 Nov 2015 19:22:00 +0000 (15:22 -0400)]
sigh @ encfs...
Joey Hess [Mon, 30 Nov 2015 19:09:32 +0000 (15:09 -0400)]
comment
Joey Hess [Mon, 30 Nov 2015 19:04:56 +0000 (15:04 -0400)]
comment
Joey Hess [Mon, 30 Nov 2015 19:02:58 +0000 (15:02 -0400)]
comment
Added a comment: Got Nixos server configured as a ssh remote (FYI)
Added a comment: Is android 6.0 supported?
vho [Mon, 30 Nov 2015 15:23:22 +0000 (15:23 +0000)]
Added a comment
removed
Added a comment: just FYI
Added a comment: Re: Compatibility with recent version of Git for Windows
parhuzamos [Fri, 27 Nov 2015 14:27:06 +0000 (14:27 +0000)]
Typo.
parhuzamos [Fri, 27 Nov 2015 14:26:35 +0000 (14:26 +0000)]
removed
Added a comment: Comment 3
removed