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
Joey Hess [Sat, 12 Dec 2015 16:19:31 +0000 (12:19 -0400)]
Debian: Build depend on concurrent-output.
In unstable now.
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.
Joey Hess [Fri, 11 Dec 2015 19:13:36 +0000 (15:13 -0400)]
finish v6 git-annex lock
This was a doozy!
Joey Hess [Fri, 11 Dec 2015 17:56:12 +0000 (13:56 -0400)]
only make 1 hardlink max between pointer file and annex object
If multiple files point to the same annex object, the user may want to
modify them independently, so don't use a hard link.
Also, check diskreserve when copying.
Joey Hess [Fri, 11 Dec 2015 17:50:31 +0000 (13:50 -0400)]
Merge branch 'master' into smudge
Joey Hess [Fri, 11 Dec 2015 17:50:27 +0000 (13:50 -0400)]
fsck: Failed to honor annex.diskreserve when checking a remote.
Joey Hess [Fri, 11 Dec 2015 16:15:29 +0000 (12:15 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 11 Dec 2015 16:13:20 +0000 (12:13 -0400)]
webdav: When testing the WebDAV server, send a file with content. The empty file it was sending tickled bugs in some php WebDAV server.
Joey Hess [Fri, 11 Dec 2015 15:27:33 +0000 (11:27 -0400)]
comment
Joey Hess [Fri, 11 Dec 2015 15:23:57 +0000 (11:23 -0400)]
comment
Joey Hess [Fri, 11 Dec 2015 15:20:35 +0000 (11:20 -0400)]
comment
Joey Hess [Fri, 11 Dec 2015 15:06:02 +0000 (11:06 -0400)]
add Blackblaze B2 extranal special remote to the list
Joey Hess [Fri, 11 Dec 2015 15:04:48 +0000 (11:04 -0400)]
comment
Joey Hess [Fri, 11 Dec 2015 15:03:22 +0000 (11:03 -0400)]
clean up
Joey Hess [Fri, 11 Dec 2015 14:42:18 +0000 (10:42 -0400)]
wip
yminus [Thu, 10 Dec 2015 22:25:26 +0000 (22:25 +0000)]
Added a comment
Joey Hess [Thu, 10 Dec 2015 20:12:05 +0000 (16:12 -0400)]
v6 git-annex unlock
Note that the implementation uses replaceFile, so that the actual
replacement of the work tree file is atomic. This seems a good property to
have!
It would be possible for unlock in v6 mode to be run on files that do not
have their content present. However, that would be a behavior change from
before, and I don't see any immediate need to support it, so I didn't
implement it.
Joey Hess [Thu, 10 Dec 2015 20:07:50 +0000 (16:07 -0400)]
add generalized linkAnnex'
Joey Hess [Thu, 10 Dec 2015 20:06:58 +0000 (16:06 -0400)]
always format pointer file with a trailing newline
Before the smudge filter added a trailing newline, but other things that
wrote formatPointer to a file did not.
also some new pointer staging code to use later
http://joeyh.name/ [Thu, 10 Dec 2015 18:58:46 +0000 (18:58 +0000)]
Added a comment
Joey Hess [Thu, 10 Dec 2015 18:54:03 +0000 (14:54 -0400)]
todo
Joey Hess [Thu, 10 Dec 2015 18:51:04 +0000 (14:51 -0400)]
check InodeCache in inAnnex et al
This avoids querying the database when the content file doen't exist
(or otherwise fails the provided check). However, it does add overhead of
querying the database, and will certianly impact performance.
Joey Hess [Thu, 10 Dec 2015 18:29:34 +0000 (14:29 -0400)]
check inode cache in prepSendAnnex
This does mean one query of the database every time an object is sent.
May impact performance.
Joey Hess [Thu, 10 Dec 2015 18:20:38 +0000 (14:20 -0400)]
move
Joey Hess [Thu, 10 Dec 2015 18:07:11 +0000 (14:07 -0400)]
Merge branch 'master' into smudge
Joey Hess [Thu, 10 Dec 2015 16:31:26 +0000 (12:31 -0400)]
comment
Added a comment: Complete removal
Joey Hess [Thu, 10 Dec 2015 15:42:49 +0000 (11:42 -0400)]
Add S3 features to git-annex version output.
Joey Hess [Thu, 10 Dec 2015 15:22:28 +0000 (11:22 -0400)]
comment
Joey Hess [Thu, 10 Dec 2015 15:20:01 +0000 (11:20 -0400)]
response
Joey Hess [Thu, 10 Dec 2015 15:15:06 +0000 (11:15 -0400)]
response
Added a comment: The downside
Joey Hess [Wed, 9 Dec 2015 23:43:15 +0000 (19:43 -0400)]
make clear when code is using deprecated direct mode files
Joey Hess [Wed, 9 Dec 2015 23:38:37 +0000 (19:38 -0400)]
reorder
Joey Hess [Wed, 9 Dec 2015 22:14:19 +0000 (18:14 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 9 Dec 2015 22:13:31 +0000 (18:13 -0400)]
devblog
Joey Hess [Wed, 9 Dec 2015 21:58:59 +0000 (17:58 -0400)]
Merge branch 'master' into smudge
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.
openmedi [Wed, 9 Dec 2015 20:18:48 +0000 (20:18 +0000)]
Added a comment
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
Added a comment: anyone saw/worked on backend for watchdox service? (not free one but needed :-/)
Joey Hess [Tue, 8 Dec 2015 17:07:45 +0000 (13:07 -0400)]
todo
Joey Hess [Tue, 8 Dec 2015 15:28:19 +0000 (11:28 -0400)]
add news item for git-annex 5.
20151208
Joey Hess [Tue, 8 Dec 2015 15:14:28 +0000 (11:14 -0400)]
prep release
Joey Hess [Tue, 8 Dec 2015 15:13:55 +0000 (11:13 -0400)]
response
ben [Tue, 8 Dec 2015 10:39:30 +0000 (10:39 +0000)]
Added a comment: Problems initializing glacier remote
I started using a repo on S3, so that partially answered my question about how files are stored on S3.
Added a comment
Added a comment: How to view configuration of special remotes?
Joey Hess [Mon, 7 Dec 2015 21:25:20 +0000 (17:25 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 7 Dec 2015 21:24:44 +0000 (17:24 -0400)]
devblog
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
sts [Mon, 7 Dec 2015 08:12:26 +0000 (08:12 +0000)]
Added a comment
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