Commit graph

10421 commits

Author SHA1 Message Date
Ilya_Shlyakhter
075e209ce2 added bug report re: git-annex-sync succeeding without fetching all files 2021-03-30 15:00:56 +00:00
Joey Hess
91b8121c8d
close 2021-03-29 13:08:22 -04:00
Joey Hess
4611813ef1
Fix bug importing from a special remote into a subdirectory more than one level deep
Which generated unusual git trees that could confuse git merge,
since they incorrectly had 2 subtrees with the same name.

Root of the bug was a) not testing that at all! but also
b) confusing graftdirs, which contains eg "foo/bar" with
non-recursively read trees, which would contain eg "bar"
when reading a subtree of "foo".

It's worth noting that Annex.Import uses graftTree, but it really
shouldn't have needed to. Eg, when importing into foo/bar from a remote,
it's enough to generate a tree of foo/bar/x, foo/bar/y, and does not
include other files that are at the top of the master branch. It uses
graftTree, so it does include the other files, as well as the foo/bar
tree. git merge will do the same thing for both trees. With that said,
switching it away from graftTree would result in another import
generating a new commit that seems to delete files that were there in a
previous commit, so it probably has to keep using graftTree since it
used it before.

This commit was sponsored by Kevin Mueller on Patreon.
2021-03-26 16:04:36 -04:00
Joey Hess
1a8f984634
initial analysis 2021-03-26 14:27:48 -04:00
Joey Hess
f085ae4937
borg: Support importing files that are hard linked in the borg backup
Note that a key with no size field that is hard linked will
result in listImportableContents reporting a file size of 0,
rather than the actual size of the file. One result is that
the progress meter when getting the file will seem to get stuck
at 100%. Another is that the remote's preferred content expression,
if it tries to match against file size, will treat it as an empty file.
I don't see a way to improve the latter behavior, and the former behavior
is a minor enough problem.

This commit was sponsored by Jake Vosloo on Patreon.
2021-03-26 13:29:34 -04:00
Joey Hess
31eb5fddf3
borg: Fix a bug that prevented importing keys of type URL and WORM
Keys stored on the filesystem are mangled by keyFile to avoid problem
chars. So, that mangling has to be reversed when parsing files from a
borg backup back to a key.

The directory special remote also so mangles them. Some other special
remotes do not; eg S3 just serializes the key -- but S3 object names are
not limited to filesystem valid filenames anyway, so a S3 server must
not map them directly to files in any case. It seems unlikely that a
borg backup of some such special remote will get broken by this change.

This commit was sponsored by Graham Spencer on Patreon.
2021-03-26 12:07:00 -04:00
Joey Hess
537f9d9a11
Improved display of errors when accessing a git http remote fails.
New error message:

  Remote foo not usable by git-annex; setting annex-ignore

  http://localhost/foo/config download failed: Configuration of annex.security.allowed-ip-addresses does not allow accessing address ::1

If git config parse fails, or the git config file is not available at the url,
a better error message for that is also shown.

This commit was sponsored by Mark Reidenbach on Patreon.
2021-03-24 14:19:32 -04:00
git-annex@6f13b739194f758abc0b86556b7ce966c1bf3c00
14b846e9fa Added a comment: borg hardlinks 2021-03-24 10:29:16 +00:00
git-annex@6f13b739194f758abc0b86556b7ce966c1bf3c00
d4a3465f8b Added a comment: / vs. % in key 2021-03-24 10:07:30 +00:00
git-annex@6f13b739194f758abc0b86556b7ce966c1bf3c00
cc9d6889e2 2021-03-24 09:44:49 +00:00
Joey Hess
e09560eea2
open a bug based on comment thread 2021-03-23 11:50:07 -04:00
Joey Hess
637229c593
fix fsck --from --all to not fall over trying to check required content
fsck: When --from is used in combination with --all or similar options, do
not verify required content, which can't be checked properly when operating
on keys.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2021-03-22 15:08:07 -04:00
Joey Hess
5545e78a1e
Make --debug also enable debugging in child git-annex processes
Especially necessary with stalldetection using child processes for
transfers.

This commit was sponsored by Jack Hill on Patreon.
2021-03-22 14:25:28 -04:00
Joey Hess
1ddaa6b541
comment 2021-03-22 13:52:11 -04:00
Lukey
25cf5e39df Added a comment 2021-03-22 17:19:37 +00:00
Joey Hess
5d75cbcdcf
webdav: deal with buggy webdav servers in renameExport
box.com already had a special case, since its renaming was known buggy.
In its case, renaming to the temp file succeeds, but then renaming the temp
file to final destination fails.

Then this 4shared server has buggy handling of renames across directories.
While already worked around with for the temp files when storing exports
now being in the same directory as the final filename, that also affected
renameExport when the file moves between directories.

I'm not entirely clear what happens on the 4shared server when it fails
this way. It kind of looks like it may rename the file to destination and
then still fail.

To handle both, when rename fails, delete both the source and the
destination, and fall back to uploading the content again. In the box.com
case, the temp file is the source, and deleting it makes sure the temp file
gets cleaned up. In the 4shared case, the file may have been renamed to the
destination and so cleaning that up avoids any interference with the
re-upload to the destination.
2021-03-22 13:08:18 -04:00
Joey Hess
f175d4cc90
rmurl: remove all forms of an url, no matter what the downloader is set to
* rmurl: When youtube-dl was used for an url, it no longer needs to be
  prefixed with "yt:" in order to be removed.
* rmurl: If an url is both used by the web and also claimed by another
  special remote, fix a bug that caused the url to to not be removed.

The youtube-dl change is a consequence of how the bug fix is implemented.
But I also think it's the right thing to do. Consider that, before,
git-annex addurl $url followed by git-annex rmurl $url would not remove the
url in the case where youtube-dl was used. That was surprising behavior.

In the unlikely case where a special remote claims an url, and it's been
added using OtherDownloader, but it was also added already as a web url,
it seems better for rmurl to remove both than to arbitrarily remove only one.

And in the case the bug report was filed for, when an url was added as a
web url, but a special remote now claims it, that should not prevent rmurl
removing the web url.

Calling setUrlMissing lets other callers of it behave differently.
Probably the calls to it in eg, Remote.External and Remote.BitTorrent are
fine, since they don't mangle the url and just remove what was provided,
and the OtherDownloader form of a bittorrent url, respectively.
I suspect unregisterurl needs to have a similar change made to rmurl, for
similar reasons.
2021-03-22 12:09:15 -04:00
Joey Hess
77d3d4350d
forgot to close this 2021-03-22 11:31:00 -04:00
Joey Hess
ee49bdd410
comment 2021-03-22 10:20:58 -04:00
Joey Hess
5dedaa3efa
close 2021-03-22 10:17:41 -04:00
gerta
4176634d8d Added a comment 2021-03-21 11:56:27 +00:00
Lukey
5a8b9a57a8 Added a comment 2021-03-20 18:28:51 +00:00
Lukey
2021c31be7 Added a comment 2021-03-20 17:33:32 +00:00
gerta
f695a8e128 Bug: Importing into nested directory overwrites files? 2021-03-20 07:29:12 +00:00
Ilya_Shlyakhter
a76f16cd8d added bug report about fsck failing on dead keys missing from require-everything repos 2021-03-18 18:58:27 +00:00
jwrauch
81c51fa538 2021-03-17 18:59:04 +00:00
mih
1886fa420f Added a comment 2021-03-17 17:03:35 +00:00
Joey Hess
b0bf620b2b
comment 2021-03-17 11:29:57 -04:00
yarikoptic
3ae0552b64 Added a comment 2021-03-17 14:56:20 +00:00
Joey Hess
f9e73e23f2
comment 2021-03-17 10:22:38 -04:00
Joey Hess
8c9ab9752b
comment 2021-03-17 09:44:31 -04:00
Joey Hess
db95b94251
Merge branch 'master' of ssh://git-annex.branchable.com 2021-03-17 09:42:27 -04:00
Joey Hess
0e44c252c8
avoid getting creds from environment during autoenable
When autoenabling special remotes of type S3, weddav, or glacier, do not
take login credentials from environment variables, as the user may not be
expecting the autoenable to happen, and may have those set for other
purposes.
2021-03-17 09:41:12 -04:00
mih
f1bff235e6 Added a comment: Works! 2021-03-17 08:20:10 +00:00
Joey Hess
34a49661d4
comment 2021-03-16 15:12:33 -04:00
Joey Hess
69dd214d59
comment 2021-03-16 14:26:41 -04:00
Joey Hess
3337f7c272
fix exporting when the file is in the top of the repo
takeDirectory "foo" is ".", and that will confuse webdav, so only
use that code path when there is a subdirectory.
2021-03-16 14:17:29 -04:00
yarikoptic
4a2d148599 fixed formatting 2021-03-16 17:43:16 +00:00
yarikoptic
ff95449e79 reporting on the negative effect of AWS_ variables for access to public S3 bucket 2021-03-16 17:38:29 +00:00
yarikoptic
681f9e1a0c 2021-03-15 22:50:04 +00:00
0xloem@0bd8a79a57e4f0dcade8fc81d162c37eae4d6730
f9a5a2ec05 2021-03-15 06:45:09 +00:00
mih
4bcab9efbc Added a comment: 4shared-specific issue 2021-03-13 16:26:14 +00:00
mih
a760909a0d Added a comment: Confirm fix 2021-03-13 16:23:36 +00:00
mih
2cbf8226d5 Added a comment: Progress report 2021-03-13 16:19:19 +00:00
mih
55241b7bdf Added a comment: Thx! 2021-03-13 16:05:52 +00:00
Joey Hess
4f49c29d20
webdav: store temp file in same collection as the final export location
This may work better in some webdav server that gets confused at
cross-collection renamed. I don't know, let's find out.

The only real downside of doing this is that the temp files are not all
in the top-level collection, in case an interrupted run leaves one
behind. But that does not seem especially significant.
2021-03-12 14:52:24 -04:00
Joey Hess
6481991208
export --json: Fill in the file field
Like import was using ActionItemWorkTreeFile, it's ok to use it for export,
even though it might not correspond with a file in the work tree.
And renamed it to ActionItemTreeFile to make that clearer.

Note that when an export has to rename files, it still uses
ActionItemOther, so file will still be null in that case, but as no file is
being transferred, that seems ok.
2021-03-12 14:11:31 -04:00
Joey Hess
f87c63d998
Merge branch 'master' of ssh://git-annex.branchable.com 2021-03-12 13:33:48 -04:00
Joey Hess
1cb154f457
avoid importing deleting submodule
import: When the previously exported tree contained a submodule,
preserve it in the imported tree so it does not get deleted.

The export exclude log, which was used for non-preferred content,
now also includes the submodules. Since the log format is git ls-tree
output, this does not break backwards compatibility.
2021-03-12 13:31:21 -04:00
mih
6396da95e9 2021-03-12 17:13:29 +00:00