Commit graph

26463 commits

Author SHA1 Message Date
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
Joey Hess
ee8113959a
point to bug report 2015-12-28 13:40:00 -04:00
Joey Hess
7d19a4f22c
switch to nightly-2015-12-28
This has aws new enough for glacier and storageclass features.
2015-12-28 13:35:24 -04:00
Joey Hess
7c5c7bb04a
fix OSX build 2015-12-28 13:28:21 -04:00
Joey Hess
f4e5ed384a
temporarily disable concurrent-output in stack.yaml
Revert once https://github.com/fpco/stackage/pull/1082 is fixed
2015-12-28 13:27:10 -04:00
Joey Hess
25d6cb4bc4
remove database flag, following changes to cabal file 2015-12-28 13:19:06 -04:00
Joey Hess
4ca9fa4d39
fix build warning with AMP ghc 2015-12-28 13:16:46 -04:00
Joey Hess
da5d25a844
clean build warning on windows 2015-12-28 13:06:36 -04:00
Joey Hess
4808800f2d
fix build on windows 2015-12-28 12:57:42 -04:00
Joey Hess
cdad377ef1
Debian: Adjust build dependencies for webapp, DAV.
Now available on mips, mipsel, but temporarily removed armel since build is
failing there.

If armel would just get caught up, I could remove the per-arch specs
entirely.

Maybe time to turn maint of this over to richih?
2015-12-28 12:57:15 -04:00
Joey Hess
645833774d
fix windows build 2015-12-28 12:44:04 -04:00
Joey Hess
b61575516b
fix build with pre-AMP GHC 2015-12-28 12:41:47 -04:00
Joey Hess
11ceee93b4
fix build warning 2015-12-28 12:41:36 -04:00
david.wargert@3142e930e120f177dff9fd083ebc900263143dad
049a0bb9f5 removed 2015-12-27 22:50:45 +00:00
Joey Hess
7eed80b316
cleanup 2015-12-27 17:27:52 -04:00
Joey Hess
342259aa9d
devblog 2015-12-27 17:18:18 -04:00
Joey Hess
ad742c522c
Merge branch 'master' of ssh://git-annex.branchable.com 2015-12-27 17:12:14 -04:00
Joey Hess
1499b9b79d
fix file perms after breaking hard link 2015-12-27 16:12:48 -04:00
Joey Hess
a46158240b
doc improvements 2015-12-27 16:06:11 -04:00
Joey Hess
121f5d5b0c
annex.thin
Decided it's too scary to make v6 unlocked files have 1 copy by default,
but that should be available to those who need it. This is consistent with
git-annex not dropping unused content without --force, etc.

* Added annex.thin setting, which makes unlocked files in v6 repositories
  be hard linked to their content, instead of a copy. This saves disk
  space but means any modification of an unlocked file will lose the local
  (and possibly only) copy of the old version.
* Enable annex.thin by default on upgrade from direct mode to v6, since
  direct mode made the same tradeoff.
* fix: Adjusts unlocked files as configured by annex.thin.
2015-12-27 15:59:59 -04:00
a@b34f238966e58f7c2ea550cc4cab3005c0e33150
15de76b362 2015-12-27 09:15:43 +00:00
Joey Hess
bb6719678e
update walkthrough and add tip about using v6 unlocked files
The walkthrough should make sense now both for v5 and v6 repo users.
2015-12-26 16:47:23 -04:00
Joey Hess
51b69ef551
add copy of note.mdwn, since Makefile's ikiwiki invocation omits the basewiki 2015-12-26 16:40:11 -04:00
Joey Hess
025f284ac1
reorg 2015-12-26 15:15:02 -04:00
Joey Hess
fcb013044b
update 2015-12-26 15:13:05 -04:00
Joey Hess
d0da52f1b1
typo 2015-12-26 15:11:32 -04:00
Joey Hess
54f87ef95f
get associated files from Keys database 2015-12-26 15:09:53 -04:00
Joey Hess
7593917147
cleanup 2015-12-26 15:09:47 -04:00