Commit graph

33242 commits

Author SHA1 Message Date
lykos@d125a37d89b1cfac20829f12911656c40cb70018
32477c0446 2018-10-28 15:05:16 +00:00
lykos@d125a37d89b1cfac20829f12911656c40cb70018
8e2834e5b4 2018-10-28 15:00:59 +00:00
lykos@d125a37d89b1cfac20829f12911656c40cb70018
46f65cc657 2018-10-28 14:55:13 +00:00
CandyAngel
b9063f94fc Added a comment 2018-10-27 22:33:21 +00:00
Joey Hess
bb8e245bc3
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-27 13:24:37 -04:00
kamil.figiela@79c245579d15acc2bf83467adce982bfaf8fc4cc
543a714b39 Added a comment 2018-10-27 09:32:22 +00:00
Joey Hess
5b9c66b551
fix link 2018-10-26 16:21:34 -04:00
Joey Hess
497846d740
don't probe support for git-annex smudge --update
Any git-annex not supporting that doesn't support v7 repositories,
so will refuse to work in a repository that has this hook installed.
2018-10-26 14:37:43 -04:00
Joey Hess
12c88ee571
fix upgrade of more than 1 version at a time
It was only running the first upgrade and not subsequent ones, but
setting annex.version to the final version.
2018-10-26 14:31:13 -04:00
Joey Hess
900887c9ac
update for v7 2018-10-26 14:20:05 -04:00
Joey Hess
1f96b24382
remove section on direct mode
git-annex init on the sdcard will now create a v7 adjusted unlocked
repo. While the assistant does still set up direct mode, that's not
because of /sdcard being a crippled filesystem.
2018-10-26 13:57:17 -04:00
Joey Hess
7540ca6fca
some more v6 -> v7 doc changes 2018-10-26 13:56:36 -04:00
Joey Hess
6fd37fb016
Merge branch 'v7' 2018-10-26 13:52:09 -04:00
Joey Hess
3af29b3ba9
When annex.thin is set, allow hard links to be made between executable work tree files and annex objects.
This is safe, because while the annex object ends up executable,
there were already at least two other cases where it ended up executable:

1. git add an an executable file
2. chmod +x of a a non-executable worktree file that was hard linked to the
   annex object

After copy/hard link, it always fixes up the permissions to match the mode
of the worktree file, so when an executable annex object gets hard linked
to a non-executable worktree file, its execute bit gets removed.

Commit b7c8bf5274 already *said* it would do
this; I suspect the line of code I've removed was included in that commit
accidentially.

Also improves annex.thin documentation.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2018-10-26 13:51:43 -04:00
Joey Hess
c7885491b2
clarifications 2018-10-26 13:51:15 -04:00
Joey Hess
2e6aff74c2
response 2018-10-26 13:44:55 -04:00
michael.hanke@c60e12358aa3fc6060531bdead1f530ac4d582ec
30a4e63f2a removed 2018-10-26 17:26:37 +00:00
michael.hanke@c60e12358aa3fc6060531bdead1f530ac4d582ec
45fd9057ca Added a comment: Awesome! 2018-10-26 17:13:48 +00:00
michael.hanke@c60e12358aa3fc6060531bdead1f530ac4d582ec
b39b4e7261 Added a comment: Awesome! 2018-10-26 17:13:21 +00:00
Joey Hess
e7e9c5744f
followup 2018-10-26 13:12:06 -04:00
Joey Hess
361740a112
close bug report, open todo item 2018-10-26 13:03:18 -04:00
Joey Hess
e2c894d3df
remove debug prints 2018-10-26 12:56:40 -04:00
Joey Hess
3db20b39f2
update 2018-10-26 12:28:43 -04:00
Joey Hess
9488a53023
update docs 2018-10-26 12:19:44 -04:00
Ilya_Shlyakhter
7f60776bd8 Added a comment: stable vs unstable keys 2018-10-26 15:58:26 +00:00
Joey Hess
9f87133bf5
snap --version= to auto-upgrade
This makes --version=6 still work, despite v6 not being in
supportedVersions. Which is useful for scripts that use it.

I didn't document it on the man page, because it's indistinguishable
from an automatic upgrade after initting as v6.
2018-10-26 11:44:05 -04:00
Ilya_Shlyakhter
3409eb4273 Added a comment 2018-10-26 15:27:51 +00:00
CandyAngel
ed0e3fc43c Added a comment 2018-10-26 11:35:19 +00:00
EskildHustvedt
44c27e4e18 Added a comment: v7 2018-10-26 09:33:10 +00:00
Joey Hess
636f4a68a9
doc update 2018-10-25 18:56:14 -04:00
Joey Hess
679146384b
remove 3 from supportedVersions (no behavior change)
It's auto-upgraded to 5, so does not need to be listed there.
Let's keep supportedVersions for versions that git-annex will actually
use without autoupgrading or demanding an upgrade.
2018-10-25 18:50:44 -04:00
Joey Hess
d59995b9ee
default to v7 adjusted unlocked in crippled filesystem
init: When in a crippled filesystem, initialize a v7 repository using an
adjusted unlocked branch, instead of a direct mode repository.

Direct mode is deprecated, so this makes sense to do already I hope.

This commit was sponsored by Ole-Morten Duesund on Patreon.
2018-10-25 18:49:57 -04:00
Joey Hess
5bb4308e1f
bump versionForAdjustedClone to v7 2018-10-25 18:46:16 -04:00
Joey Hess
b996b38b4f
fix autoupgrade from v6 to go to v7, not v5
v3 and v4 still autoupgrade to v5

And a few more upgrade doc updates.
2018-10-25 18:40:04 -04:00
Joey Hess
234842a347
v7
Install new git hooks in this version.

This does beg the question of what to do if git later gets eg a
post-smudge hook, that could run git-annex smudge --update. I think the
thing to do in that case would be to make git-annex smudge --update
install the new hooks. That way, as the user uses git-annex, the hook
would be created pretty quickly and without needing any extra syscalls
except for when git-annex smudge --update is called.

I considered doing something like that for installation of the
post-checkout and post-merge hooks, which would have avoided the need
for v7. But the only place it was cheap to do it would be in git-annex smudge
which could cheaply notice that smudge.log didn't exist yet and so know
the hooks needed to be installed. But since smudge used to populate pointer
files, it would be quite surprising if a single git checkout/merge failed
to update the work tree, and so that idea didn't work out.

The other reason for v7 is psychological -- users don't need to worry
about whether they might be running an old version of git-annex that
doesn't support their v7 repository very well. And bug reports about
"v6" have gotten a bit of a bad association in my head since they often
hit one of the known limitations and didn't realize it was experimental.

newtyped RepoVersion Int to avoid needing 2 comparisons in
versionSupportsUnlockedPointers etc. Also it's just nicer.

This commit was sponsored by John Pellman on Patreon.
2018-10-25 18:24:23 -04:00
pigmonkey
c6d12da6d6 Added a comment 2018-10-25 21:54:18 +00:00
Joey Hess
6ceeb4bae7
Merge branch 'delaysmudge' into v7 2018-10-25 17:01:14 -04:00
marvin@3296bf3c446430c3b2ebc32b5c784ee976620847
accc753eaf Added a comment 2018-10-25 21:00:32 +00:00
Joey Hess
fd56b83bb3
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-25 16:52:16 -04:00
Joey Hess
dd5611b737
devblog 2018-10-25 16:51:52 -04:00
Joey Hess
c28ca8294f
optimize smudge --clean of unmodified file
Usually, git won't run clean filter when a file is unmodified. But, when
git checkout runs git annex smudge --update, it populates the pointer
runs git update-index, which sees the file has changed and runs
git annex smudge --clean, which was checksumming the file unncessarily
as it re-ingested it.

With annex.thin set, this is the difference between git checkout of a
branch with a 1 gb file taking 30s and 0.1s.

This commit was sponsored by Brett Eisenberg on Patreon.
2018-10-25 16:46:46 -04:00
Joey Hess
daa259ec6a
remove unused import 2018-10-25 16:25:21 -04:00
Joey Hess
ca7de61454
git post-checkout and post-merge hooks
* init, upgrade: Install git post-checkout and post-merge hooks that run
  git annex smudge --update.
* precommit: Run git annex smudge --update, because the post-merge
  hook is not run when there is a merge conflict. So the work tree will
  be updated when a commit is made to resolve the merge conflict.
* precommit: Run git annex smudge --update, because the post-merge
  hook is not run when there is a merge conflict. So the work tree will
  be updated when a commit is made to resolve the merge conflict.
* Note that git has no hooks run after git stash or git cherry-pick,
  so the user will have to manually run git annex smudge --update
  after such commands.

Nothing currently installs the hooks into v6 repos that already exist.
Something will need to be done about that, either move this behavior to v7,
or document that the user will need to manually fix up their v6 repos.

This commit was sponsored by Eric Drechsel on Patreon.
2018-10-25 15:59:51 -04:00
Joey Hess
917a2c6095
defer updating unlocked files until after smudge filter
The smuge filter no longer provides git with annexed file content, to
avoid a git memory leak, and because that did not honor annex.thin.

git annex smudge --update has to be run after a checkout to update
unlocked files in the working tree with annexed file contents.

No hooks yet to run it.

This commit was sponsored by Nick Piper on Patreon.
2018-10-25 15:08:20 -04:00
Joey Hess
f2a4db724c
remove redundant test
populatePointerFile checks the same thing
2018-10-25 14:31:45 -04:00
anarcat
73bcd7fdd4 add workaround 2018-10-25 17:48:07 +00:00
anarcat
2243d62d05 issues with reinject comparable with import 2018-10-25 17:36:40 +00:00
anarcat
c12e2bcf8b Added a comment: try the --known argument 2018-10-25 17:30:30 +00:00
Joey Hess
0ae11e92c5
Merge branch 'master' of ssh://git-annex.branchable.com 2018-10-25 13:16:28 -04:00
marvin@3296bf3c446430c3b2ebc32b5c784ee976620847
03e375fc65 Added a comment 2018-10-25 10:23:50 +00:00