Commit graph

41099 commits

Author SHA1 Message Date
Joey Hess
7e2f5edd68
avoid exporting non-annexed symlinks
So that importing does not replace them with plain files.

This works similarly to how the previous handling of submodules and
matchers did, except that annexed symlinks still get exported as plain
files of course, it's only non-annexed symlinks that it does not make sense
to export.

When symlinks have previously been exported, updating the export will
unexport them after upgrading to this commit.

Sponsored-by: Kevin Mueller on Patreon
2022-01-03 14:21:50 -04:00
Joey Hess
0584e096d1
comment 2022-01-03 13:53:34 -04:00
Joey Hess
9e18cd28ad
comment and retitle 2022-01-03 13:48:19 -04:00
Joey Hess
953d2029df
comment and retitle 2022-01-03 13:31:09 -04:00
Joey Hess
63b986d6d5
comment 2022-01-03 13:26:33 -04:00
Joey Hess
abeb7dcdde
skip OSX libraries that do not exist in disk due to new cache
Addresses the build problem discussed here:
https://github.com/datalad/git-annex/issues/95

Sponsored-by: Dartmouth College's Datalad project
2022-01-03 13:19:33 -04:00
Joey Hess
07191d7ba0
Merge branch 'master' of ssh://git-annex.branchable.com 2022-01-03 12:58:23 -04:00
Joey Hess
c07ed77e21
comment 2022-01-03 12:58:12 -04:00
Joey Hess
19b87f7396
avoid no longer necessary piping of ssh stderr for p2pstdio
This was needed when supporting old git-annex-shell that do not support
p2pstdio yet, in order to cleanly fall back to the old interface without
error messages being displayed. That is no longer supported, so simplify
to not intercept error messages.

Sponsored-by: Dartmouth College's DANDI project
2022-01-03 12:54:40 -04:00
Joey Hess
63d5c6f2c8
update copyright year 2022-01-03 12:46:04 -04:00
Joey Hess
92cc28c316
remove obsolete comment 2022-01-03 12:38:29 -04:00
tim@5431dd39464df207b7d46d3cf1bc74c82123ac68
4c9bc9e942 Added a comment: Found the issue 2022-01-03 08:25:05 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
e77ef584cc 2022-01-01 20:59:29 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
9c4712262b 2022-01-01 20:39:32 +00:00
amerlyq+annex@12121d70a602f094228689a0a24d348d478a8af1
71f8cc684e 2022-01-01 20:06:22 +00:00
Joey Hess
082cc1ede1
add news item for git-annex 8.20211231 2021-12-31 15:12:18 -04:00
Joey Hess
479ec0d533
releasing package git-annex version 8.20211231 2021-12-31 15:11:50 -04:00
Joey Hess
f1e55865a2
comment 2021-12-31 15:01:12 -04:00
falsifian
eacc3dc1f2 Added a comment 2021-12-31 16:03:33 +00:00
Joey Hess
0292c5a0d8
comment 2021-12-31 11:57:52 -04:00
Joey Hess
b60a041e9e
comment 2021-12-31 11:17:26 -04:00
Joey Hess
df269b2f8f
Merge branch 'master' of ssh://git-annex.branchable.com 2021-12-31 11:04:52 -04:00
falsifian
e7c78d2910 2021-12-30 19:01:54 +00:00
Joey Hess
cf61f955ad
also run query tests in a readonly repo
Sponsored-by: Dartmouth College's Datalad project
2021-12-30 13:16:57 -04:00
Joey Hess
ff4486b91c
comments 2021-12-30 12:45:00 -04:00
Joey Hess
283ef4aae6
Merge branch 'master' of ssh://git-annex.branchable.com 2021-12-30 12:33:50 -04:00
Joey Hess
f8ebd0363b
complete the magic wormhole pairin appid transition
Started in 2017 in commit 3fe9d99f24.
Starting tomorrow, all versions of git-annex since then will provide
an appid, and so it will no longer be necessary to check the date.

Sponsored-by: Nicholas Golder-Manning on Patreon
2021-12-30 12:16:22 -04:00
jkniiv
465bf26000 Added a comment: very much appreciated 2021-12-29 17:20:30 +00:00
yarikoptic
34e2e37ffd Added a comment: thank you! 2021-12-29 02:00:48 +00:00
Joey Hess
5abd4cf275
close 2021-12-28 13:40:35 -04:00
Joey Hess
b1d719f9d2
handle transitions with read-only unmerged git-annex branches
Capstone to this feature. Any transitions that have been performed on an
unmerged remote ref but not on the local git-annex branch, or vice-versa
have to be applied on the fly when reading files.

Sponsored-by: Dartmouth College's Datalad project
2021-12-28 13:23:32 -04:00
Joey Hess
1291a7d86c
Merge branch 'master' into readonly-annex-merge 2021-12-28 13:03:27 -04:00
Joey Hess
720baf820e
refactoring 2021-12-28 12:15:51 -04:00
Joey Hess
91317dd2bb
Merge branch 'master' of ssh://git-annex.branchable.com 2021-12-27 15:46:01 -04:00
Joey Hess
4257c23370
update on status 2021-12-27 15:45:22 -04:00
Joey Hess
058193adc6
prevent git-annex log with read-only unmerged git-annex branches
It would display incomplete information, which would differ from the
information displayed with write access. So refuse to display anything.

Sponsored-by: Dartmouth College's Datalad project
2021-12-27 15:44:15 -04:00
Joey Hess
23a485498f
handle Annex.Branch.files with read-only unmerged git-annex branches
It would be difficult to make Annex.Branch.files query the unmerged
git-annex branches. Might be possible, similar to what was discussed in
7f6b2ca49c but again I decided to make it
not do anything in that situation to start with before adding such a
complicated thing.

git-annex info uses it when getting info about a repostory. The choices
were to make that fail with an error, or display the info it can, and
change the output slightly for the bits of info it cannot access. While
that is a behavior change, and I want to avoid any behavior changes due
to unmerged git-annex branches in a read-only repo, displaying a message
that is not a number seems unlikely to break anything that was consuming
a number, any worse than throwing an exception would. Probably.

Also git-annex unused --from origin is made to throw an error, but
it would fail later anyway when trying to write to the unused log files.

Sponsored-by: Dartmouth College's Datalad project
2021-12-27 15:28:31 -04:00
jasonb@ab4484d9961a46440958fa1a528e0fc435599057
fe26c9aa60 Added a comment 2021-12-27 18:51:14 +00:00
Joey Hess
7f6b2ca49c
handle overBranchFileContents with read-only unmerged git-annex branches
This makes --all error out in that situation. Which is better than
ignoring information from the branches.

To really handle the branches right, overBranchFileContents would need
to both query all the branches and union merge file contents
(or perhaps not provide any file content), as well as diffing between
branches to find files that are only present in the unmerged branches.
And also, it would need to handle transitions..

Sponsored-by: Dartmouth College's Datalad project
2021-12-27 14:30:51 -04:00
Joey Hess
d9d0fe5fa4
disable precaching git-annex branch when there are unmerged branches in a read-only repo
The way precaching works, it can't merge in information from those
branches efficiently, so just disable it and fall back to
Annex.Branch.get in order to get the correct information.

Sponsored-by: Dartmouth College's Datalad project
2021-12-27 14:08:50 -04:00
Joey Hess
6b7601c7f6
Merge branch 'master' into readonly-annex-merge 2021-12-27 13:46:03 -04:00
Joey Hess
38f7f36e9c
Merge remote-tracking branch 'origin/master' 2021-12-27 13:45:21 -04:00
Joey Hess
0c208e2cdb
comment 2021-12-27 13:44:49 -04:00
Joey Hess
1e09cf661e
remove git-annex branch ref from unmerged refs list
It's queried separately so it was causing extra work to include it.
2021-12-27 13:33:27 -04:00
Joey Hess
6d7ecd9e5d
merge git-annex branch in memory in read-only repository
Improved support for using git-annex in a read-only repository, git-annex
branch information from remotes that cannot be merged into the git-annex
branch will now not crash it, but will be merged in memory.

To avoid this making git-annex behave one way in a read-only repository,
and another way when it can write, it's important that Annex.Branch.get
return the same thing (modulo log file compaction) in both cases.

This manages that mostly. There are some exceptions:

- When there is a transition in one of the remote git-annex branches
  that has not yet been applied to the local or other git-annex branches.
  Transitions are not handled.
- `git-annex log` runs git log on the git-annex branch, and so
  it will not be able to show information coming from the other, not yet
  merged branches.
- Annex.Branch.files only looks at files in the git-annex branch and not
  unmerged branches. This affects git-annex info output.
- Annex.Branch.hs.overBranchFileContents ditto. Affects --all and
  also importfeed (but importfeed cannot work in a read-only repo
  anyway).
- CmdLine.Seek.seekFilteredKeys when precaching location logs.
  Note use of Annex.Branch.fullname
- Database.ContentIdentifier.needsUpdateFromLog and updateFromLog

These warts make this not suitable to be merged yet.

This readonly code path is more expensive, since it has to query several
branches. The value does get cached, but still large queries will be
slower in a read-only repository when there are unmerged git-annex
branches.

When annex.merge-annex-branches=false, updateTo skips doing anything,
and so the read-only repository code does not get triggered. So a user who
is bothered by the extra work can set that.

Other writes to the repository can still result in permissions errors.
This includes the initial creation of the git-annex branch, and of course
any writes to the git-annex branch.

Sponsored-by: Dartmouth College's Datalad project
2021-12-27 13:21:15 -04:00
Joey Hess
ba3d89935b
status 2021-12-27 13:21:09 -04:00
Joey Hess
1363c89fd3
status 2021-12-26 14:33:32 -04:00
Joey Hess
da6aa6e944
retitle 2021-12-26 12:33:34 -04:00
Joey Hess
575cd71ce4
comment 2021-12-26 12:31:17 -04:00
Joey Hess
5ff55f622d
improve sync message in export edge case
sync: Better error message when unable to export to a remote because
remote.name.annex-tracking-branch is configured to a ref that does not
exist.

It does not suggest how to fix the problem because there are several
possible solutions: Change the git config to point to something that does
exist, git add some files, or put files on the special remote that will be
imported and so populate the ref.

I considered just silently not doing anything, which is what it does
when annex-tracking-branch = master and nothing has been committed to
master yet. But it seems better to be explicit about it, since this is a
fairly confusing situation to find yourself in.

Sponsored-By: Max Thoursie on Patreon
2021-12-23 14:45:01 -04:00