Commit graph

26288 commits

Author SHA1 Message Date
Joey Hess
d0449ac1e4
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-09 18:14:19 -04:00
Joey Hess
3964d3388b
devblog 2015-12-09 18:13:31 -04:00
Joey Hess
bf98d2bd77
Merge branch 'master' into smudge 2015-12-09 17:58:59 -04:00
Joey Hess
ce73a96e4e
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.
2015-12-09 17:54:54 -04:00
Joey Hess
5e8c628d2e
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.
2015-12-09 17:00:37 -04:00
openmedi
ef664f089f Added a comment 2015-12-09 20:18:48 +00:00
Joey Hess
3311c48631
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.
2015-12-09 15:52:11 -04:00
Joey Hess
8a818088a3
link/copy pointer files to object content when it's added 2015-12-09 15:27:29 -04:00
Joey Hess
ba39f993f5
avoid clean filter trying to annex a pointer file 2015-12-09 15:24:32 -04:00
Joey Hess
751120c171
avoid pre-commit hook messing up new-style unlocked files in v6 repo 2015-12-09 15:18:54 -04:00
Joey Hess
05b598a057
stash DbHandle in Annex state 2015-12-09 14:55:47 -04:00
Joey Hess
78a6b8ce05
refactor and improve pointer file handling code 2015-12-09 14:27:43 -04:00
https://me.yahoo.com/a/EbvxpTI_xP9Aod7Mg4cwGhgjrCrdM5s-#7c0f4
5ef6ed8b9a Added a comment: anyone saw/worked on backend for watchdox service? (not free one but needed :-/) 2015-12-08 19:45:03 +00:00
Joey Hess
37c9026c6e
todo 2015-12-08 13:07:45 -04:00
Joey Hess
e1961bf806
add news item for git-annex 5.20151208 2015-12-08 11:28:19 -04:00
Joey Hess
e74e612945
prep release 2015-12-08 11:14:28 -04:00
Joey Hess
e276f4abb2
response 2015-12-08 11:13:55 -04:00
ben
4f3dd0b7b2 Added a comment: Problems initializing glacier remote 2015-12-08 10:39:30 +00:00
wsha.code+ga@b38779424f41c5701bbe5937340be43ff1474b2d
a690782429 I started using a repo on S3, so that partially answered my question about how files are stored on S3. 2015-12-08 10:02:06 +00:00
wsha.code+ga@b38779424f41c5701bbe5937340be43ff1474b2d
c92917d24a Added a comment 2015-12-08 09:44:49 +00:00
cantora@432fae6be728a32ac472387df86a8922f059d4a6
c71a6e3a0d Added a comment: How to view configuration of special remotes? 2015-12-08 08:29:12 +00:00
Joey Hess
50398c69a1
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-07 17:25:20 -04:00
Joey Hess
d9ec9a56d4
devblog 2015-12-07 17:24:44 -04:00
Joey Hess
9923b8dc77
long walk led to long list of things to do 2015-12-07 17:24:16 -04:00
Joey Hess
712c9fc590
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, 664cc987e8 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.
2015-12-07 15:45:08 -04:00
Joey Hess
664cc987e8
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.
2015-12-07 15:35:36 -04:00
Joey Hess
2cbcb4f1a8
update associated files database on smudge and clean 2015-12-07 14:41:22 -04:00
Joey Hess
a6e5ee0d0e
associated files database 2015-12-07 14:35:37 -04:00
Joey Hess
63c466449f
wording 2015-12-07 12:30:10 -04:00
Joey Hess
62a2fba1cd
Merge branch 'master' into smudge 2015-12-07 12:29:34 -04:00
sts
bf02216690 Added a comment 2015-12-07 08:12:26 +00:00
Joey Hess
bd6f694687
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-06 16:56:16 -04:00
Joey Hess
2936153fc4
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.
2015-12-06 16:54:01 -04:00
Joey Hess
6e71094e7d
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.
2015-12-06 16:42:40 -04:00
Joey Hess
969d54f914
cleanup 2015-12-06 16:36:35 -04:00
Joey Hess
4591569607
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.
2015-12-06 16:29:36 -04:00
torpidus
9d46da4a29 Added a comment 2015-12-06 20:29:26 +00:00
Joey Hess
a0fcb8ec93
generalize catchHardwareFault to catchIOErrorType 2015-12-06 16:26:38 -04:00
torpidus
99fa2b5716 2015-12-06 18:51:12 +00:00
samuel.hym+bugs@a85e9c44dc6369ad6b12e8e6a3896ad34f7df4a3
912246f4ae Fix broken link to other bug 2015-12-06 10:02:35 +00:00
samuel.hym+bugs@a85e9c44dc6369ad6b12e8e6a3896ad34f7df4a3
6e85743a86 Report bug due to broken createSymbolicLink 2015-12-06 10:01:00 +00:00
spwhitton
d1cf30890e m 2015-12-05 19:52:38 +00:00
spwhitton
59aa9d313b Copy hints for Emacs users from propellor coding style page 2015-12-05 19:52:17 +00:00
a@b34f238966e58f7c2ea550cc4cab3005c0e33150
50cd06c332 2015-12-05 18:17:45 +00:00
Joey Hess
1b597cbee6
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-04 18:05:18 -04:00
Joey Hess
7579d50959
devblog 2015-12-04 17:57:34 -04:00
Joey Hess
2fe21d47c5
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.
2015-12-04 17:57:15 -04:00
Joey Hess
fb6ebdaae7
refactor 2015-12-04 17:18:26 -04:00
Joey Hess
e8ca01cbc0
comments 2015-12-04 16:46:00 -04:00
Joey Hess
e7f75b079d
don't let git-annex direct be run in a v6 repo 2015-12-04 16:33:09 -04:00