Commit graph

26490 commits

Author SHA1 Message Date
Joey Hess
b1373f0d15
update 2016-01-01 16:02:11 -04:00
Joey Hess
ec28151722
improve data type 2016-01-01 15:56:24 -04:00
Joey Hess
f7256842cc
wait for git lstree to exit 2016-01-01 15:51:29 -04:00
Joey Hess
70fee8208c
remove old TODO 2016-01-01 15:43:13 -04:00
Joey Hess
eb2bf9d768
response 2016-01-01 15:39:13 -04:00
Joey Hess
e10731c6ee
Merge branch 'master' of ssh://git-annex.branchable.com 2016-01-01 15:22:51 -04:00
Joey Hess
5b7fea0c31
remporarily disable v6 unlocked test pass while it's failing 2016-01-01 15:22:11 -04:00
Joey Hess
9b99595473
only do scan when there's a branch, not in freshly created new repo 2016-01-01 15:16:16 -04:00
Joey Hess
e9a33088e8
reorder
May be unlocked files pulled from elsewhere, but converting from direct
mode will add more. So, do the scan for them first, since it empties
anything currently in the database.
2016-01-01 15:15:15 -04:00
Joey Hess
f36f24197a
scan for unlocked files on init/upgrade of v6 repo 2016-01-01 15:09:42 -04:00
Joey Hess
b03a24dc10
update 2016-01-01 14:26:09 -04:00
Joey Hess
43b1333216
switch to using main ingest code
Fixes at least one bug, in populating existing worktree files that use the
same key that's ingested.
2016-01-01 14:16:40 -04:00
Joey Hess
4eab4bdb01
started working on testing v6 unlocked files
Many failures.
2016-01-01 14:04:43 -04:00
Joey Hess
a2c056df65
convert isPointerFile from Annex to IO 2016-01-01 13:22:38 -04:00
markus@c65ad4f0b6624673047e959218d058eb73e7ff15
6cb5cb039d 2016-01-01 13:41:17 +00:00
Joey Hess
00f0411d12
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-31 13:30:40 -04:00
Joey Hess
7822164b0f
improve name of keys database lock file 2015-12-31 13:28:18 -04:00
lars@20e4ed7efd4581b7e490713058bd5f94e43488a1
913fb77e5b 2015-12-30 21:27:32 +00:00
Joey Hess
4be2b57606
add test: conflict resolution (mixed locked and unlocked file) 2015-12-30 16:36:39 -04:00
Joey Hess
eff33d33f0
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-30 15:21:40 -04:00
Joey Hess
0b8bba8031
test suite 100% pass in v6, finally!
Set annex.largefiles when adding the conflicting non-annexed file,
otherwise it would be added as an annexed file.
2015-12-30 15:12:45 -04:00
Joey Hess
829ae91009
fix failing git-annex unused test case in v6
WorkTree.lookupFile was finding a key for a file that's deleted from the
work tree, which is different than the v5 behavior (though perhaps the same
as the direct mode behavior). Fix by checking that the work tree file exists
before catting its key.

Hopefully this won't slow down much, probably the catKey is much more expensive.
I can't see any way to optimise this, except perhaps to make Command.Unused
check if work tree files exist before/after calling lookupFile. But,
it seems better to make lookupFile really only find keys for worktree files;
that's what it's intended to do.
2015-12-30 14:23:31 -04:00
Joey Hess
6c1cf8267d
set annex.largefiles earlier in test suite
The ingitfile was having git run it through the clean filter in some cases.
2015-12-30 13:29:00 -04:00
divergentdave@5c17d06f6d67c6f157b76a4cc95ca764b7d2f899
1e4d6c29d8 Added a comment: SELinux 2015-12-30 03:40:02 +00:00
divergentdave@5c17d06f6d67c6f157b76a4cc95ca764b7d2f899
f0732a21ae Added a comment: Logcat output -- SELinux 2015-12-30 03:01:56 +00:00
Joey Hess
0475411f2f
move check for if direct mode is supported to the right place
Need to run that check inside a annex repo.
2015-12-29 17:48:25 -04:00
Joey Hess
f34c0b1319
devblog 2015-12-29 17:47:57 -04:00
Joey Hess
7fd9fa3d72
update 2015-12-29 17:47:49 -04:00
Joey Hess
6aa19b7184
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-29 17:40:49 -04:00
Joey Hess
5057fffccd
flush queue before cleaning cruft
Else, queued file stages won't have reached the index, and it won't find
everthing.

This evidently fixes a reversion in my work today, although I don't see how
I broke it. It didn't use to flush the queue first, before, and worked
somehow.

Test suite for v5 is back to 100% green now.
2015-12-29 17:35:57 -04:00
Joey Hess
f3be28eedc
test suite noticed a direct mode reversion 2015-12-29 17:12:57 -04:00
Joey Hess
10ecc43790
rename 2015-12-29 17:02:14 -04:00
umeboshi
813262448c Added a comment: Link to TH 2015-12-29 20:36:42 +00:00
Joey Hess
996ae9b172
don't disable smudge filter while merging
The smudge filter does need to be run, because if the key is in the local
annex already (due to renaming, or a copy of a file added, or a new file
added and its content has already arrived), git merge smudges the file and
this should provide its content.

This does probably mean that in merge conflict resolution, git smudges the
existing file, re-copying all its content to it, and then the file is
deleted. So, not efficient.
2015-12-29 16:36:21 -04:00
Joey Hess
24bbaa2346
avoid renaming file when auto-resolving conflict in annex pointer
This is a behavior change for merge conflicts between locked files
that both pointed to the same key, in different ways.
Before, the conflict was resolved, but the file was renamed to .variant.
This was unnecessary, because there was only one variant.

Of course, this also handles conflicts between unlocked and locked, or even
two unlocked files with different pointer contents.
2015-12-29 16:35:34 -04:00
Joey Hess
2e9341a47d
fix inode cache consistency bug when a merge unlocks a present file
Since the file was present and locked, its annex object was not in the
inode cache. So, despite not needing to update the annex object when the
clean filter is run on the content by git merge, it does need to record the
inode cache of the annex object. Otherwise, the annex object will be
assumed to be bad, since its inode is not cached.
2015-12-29 16:26:27 -04:00
Joey Hess
b6b34f4916
automatic conflict resolution for v6 unlocked files
Several tricky parts:

* When the conflict is just between the same key being locked and unlocked,
  the unlocked version wins, and the file is not renamed in this case.

* Need to update associated file map when conflict resolution renames
  an unlocked file.

* git merge runs the smudge filter on the conflicting file, and actually
  overwrites the file with the same content it had before, and so
  invalidates its inode cache. This makes it difficult to know when it's
  safe to remove such files as conflict cruft, without going so far as to
  compare their entire contents.

  Dealt with this by preventing the smudge filter from populating the file
  when a merge is run. However, that also prevents the smudge filter being
  run for non-conflicting files, so eg moving a file won't put its new
  content into place.

* Ideally, if a merge or a merge conflict resolution renames an unlocked
  file, the file in the work tree can just be moved, rather than copying
  the content to a new worktree file.

  This is attempted to be done in merge conflict resolution, but
  due to git merge's behavior of running smudge filters, what actually
  seems to happen is the old worktree file with the content is deleted and
  rewritten as a pointer file, so doesn't get reused.

So, this is probably not as efficient as it optimally could be.
If that becomes a problem, could look into running the merge in a separate
worktree and updating the real worktree more efficiently, similarly to the
direct mode merge. However, the direct mode merge had a lot of bugs, and
I'd rather not use that more error-prone method unless really needed.
2015-12-29 15:41:09 -04:00
ColinW
b54c8eb49a 2015-12-29 17:59:03 +00:00
joseph.rawson.works@85a210ab8c0e37a0b2d6bb235738b20e23e8878f
6972a80ec1 Added a comment: Replacing dashes with underscores 2015-12-28 22:39:49 +00:00
joseph.rawson.works@85a210ab8c0e37a0b2d6bb235738b20e23e8878f
09deb028b4 Added a comment: ssh keys, github, xmpp 2015-12-28 22:09:24 +00:00
Joey Hess
bcdc6db2c3
fix build with pre-AMP ghc 2015-12-28 17:21:26 -04:00
Joey Hess
7926b2705a
add .stack-work 2015-12-28 17:19:07 -04:00
Joey Hess
b03887a7bc
defer find to after build 2015-12-28 17:14:29 -04:00
Joey Hess
3c32b67303
improve binary finding 2015-12-28 16:45:33 -04:00
Joey Hess
e40d8bc625
remove Inotify build flag
Available for a long time in Linux, and only used there, so a flag is not
needed.
2015-12-28 14:46:01 -04:00
Joey Hess
7916414004
remove win32-extras; was merged into stackage 2015-12-28 14:43:24 -04:00
Joey Hess
8db4cae6d7
fix format 2015-12-28 14:40:34 -04:00
Joey Hess
664208d19f
remove XMPP, DBus, DesktopNotify build flags
Make these features solely dependent on the OS being built on.

This lets stack build on windows w/o XMPP, on OSX w/o DBUS,
and on Linux with everything.
2015-12-28 14:38:58 -04:00
Joey Hess
d7b6d7e157
enable xmpp in stack.yaml
Since stack is being used to build the OSX autouild now, I want xmpp
enabled.

This means stack can't be used to build git-annex on windows, unless the
user edits this file and disables xmpp. Unfortunate that stack is so
unconfigurable, compared with cabal..
2015-12-28 14:26:01 -04:00
Joey Hess
441573a92b
support building with BUILDER=stack to use stack instead of cabal 2015-12-28 14:18:47 -04:00