Commit graph

9652 commits

Author SHA1 Message Date
arseni.lapunov@34f437c25a6a8c6d317dce0bb7c5b44d568fa595
55acb2e522 Added a comment: git-annex get fails 2020-05-22 14:28:24 +00:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
49a01413bc 2020-05-22 11:15:27 +00:00
Joey Hess
27459c6e3f
Support building with tasty-1.3
This commit was sponsored by Ethan Aubin.
2020-05-21 15:26:44 -04:00
Joey Hess
75bfcca462
Merge branch 'master' of ssh://git-annex.branchable.com 2020-05-21 14:47:51 -04:00
Joey Hess
e63dcbf36c
fix embedcreds=yes reversion
Fix bug that made enableremote of S3 and webdav remotes, that have
embedcreds=yes, fail to set up the embedded creds, so accessing the remotes
failed.

(Regression introduced in version 7.20200202.7 in when reworking all the
remote configs to be parsed.)

Root problem is that parseEncryptionConfig excludes all other config keys
except encryption ones, so it is then unable to find the
credPairRemoteField. And since that field is not required to be
present, it proceeds as if it's not, rather than failing in any visible
way.

This causes it to not find any creds, and so it does not cache
them. When when the S3 remote tries to make a S3 connection, it finds no
creds, so assumes it's being used in no-creds mode, and tries to find a
public url. With no public url available, it fails, but the failure doesn't
say a lack of creds is the problem.

Fix is to provide setRemoteCredPair with a ParsedRemoteConfig, so the full
set of configs of the remote can be parsed. A bit annoying to need to
parse the remote config before the full config (as returned by
setRemoteCredPair) is available, but this avoids the problem.

I assume webdav also had the problem by inspection, but didn't try to
reproduce it with it.

Also, getRemoteCredPair used getRemoteConfigValue to get a ProposedAccepted
String, but that does not seem right. Now that it runs that code, it
crashed saying it had just a String.

Remotes that have already been enableremoted, and so lack the cached creds
file will work after this fix, because getRemoteCredPair will extract
the creds from the remote config, writing the missing file.

This commit was sponsored by Ilya Shlyakhter on Patreon.
2020-05-21 14:35:30 -04:00
Joey Hess
0ae63d5eec
comment 2020-05-21 13:06:46 -04:00
Joey Hess
d5b7d2a473
followup and close 2020-05-21 12:30:51 -04:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
50357aa48b Added a comment 2020-05-20 13:54:23 +00:00
Joey Hess
224208a657
comment 2020-05-19 13:18:34 -04:00
arseni.lapunov@34f437c25a6a8c6d317dce0bb7c5b44d568fa595
de86a8d579 2020-05-18 15:07:35 +00:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
1259b73c39 2020-05-18 08:00:16 +00:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
b4e94b2a41 2020-05-18 07:59:55 +00:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
7ab8b9a451 2020-05-18 07:58:43 +00:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
b0bfb1e0e5 2020-05-17 08:13:41 +00:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
0b1e94074e 2020-05-16 15:08:34 +00:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
42072fe9ad 2020-05-16 15:07:41 +00:00
braun.markus89@51b521a42cc994db864df308627bd6454f9c309d
fc7caa5b2b 2020-05-16 15:06:42 +00:00
jeanpmbox-456@7222359de8d1f37a7cf25a519e8faf90a9517b50
99c4eb020e Added a comment 2020-05-15 21:21:30 +00:00
jeanpmbox-456@7222359de8d1f37a7cf25a519e8faf90a9517b50
2db70d70d1 Added a comment 2020-05-15 21:14:53 +00:00
Joey Hess
6361074174
convert renameExport to throw exception
Finishes the transition to make remote methods throw exceptions, rather
than silently hide them.

A bit on the fence about this one, because when renameExport fails,
it falls back to deleting instead, and so does the user care why it failed?

However, it did let me clean up several places in the code.

This commit was sponsored by Ethan Aubin.
2020-05-15 15:08:09 -04:00
https://launchpad.net/~felixonmars
f246e78fd7 2020-05-13 20:35:29 +00:00
Joey Hess
a6adea4aaf
Merge branch 'master' of ssh://git-annex.branchable.com 2020-05-13 14:05:11 -04:00
Joey Hess
c1cd402081
make storeKey throw exceptions
When storing content on remote fails, always display a reason why.

Since the Storer used by special remotes already did, this mostly affects
git remotes, but not entirely. For example, if git-lfs failed to connect to
the endpoint, it used to silently return False.
2020-05-13 14:03:00 -04:00
Chymera
e42d2ce0c7 Added a comment 2020-05-13 04:15:53 +00:00
ryan.singer@5db89d157f0565db67eac571e2433fa96c187e32
3b231f900c Added a comment 2020-05-12 23:26:11 +00:00
Joey Hess
898770dda1
comment 2020-05-12 13:58:14 -04:00
Joey Hess
35b3c891af
followup 2020-05-12 12:48:07 -04:00
Chymera
47bd71b096 2020-05-12 07:05:23 +00:00
Joey Hess
2a8fdfc7d8
Display a warning message when asked to operate on a file inside a directory that's a symbolic link to elsewhere
This relicates git's behavior. It adds a few stat calls for the command
line parameters, so there is some minor slowdown, but even with thousands
of parameters it will not be very noticable, and git does the same statting
in similar circumstances.

Note that this does not prevent eg "git annex add symlink"; the symlink
will be added to git as usual. And "git annex find symlink" will silently
list nothing as well. It's only "symlink/foo" or "subdir/symlink/foo" that
triggers the warning.
2020-05-11 15:03:35 -04:00
Joey Hess
39d7e6dd2a
addurl --preserve-filename for other remotes
Finishing work begun in 6952060665

Also, truncate filenames provided by other remotes if they're too long,
when --preserve-filename is not used. That seems to have been omitted
before by accident.
2020-05-11 14:33:27 -04:00
Joey Hess
cabbc91b18
addurl, importfeed: Allow '-' in filenames, as long as it's not the first character 2020-05-11 13:50:49 -04:00
Joey Hess
568c2b58c2
comments 2020-05-11 12:49:50 -04:00
Joey Hess
0e2e8df8bf
bug 2020-05-11 12:38:40 -04:00
yarikoptic
2b125e0dd7 Added a comment 2020-05-09 22:10:44 +00:00
the13thletter
b8a472ba84 2020-05-08 22:10:29 +00:00
Joey Hess
6952060665
addurl --preserve-filename and a few related changes
* addurl --preserve-filename: New option, uses server-provided filename
  without any sanitization, but with some security checking.

  Not yet implemented for remotes other than the web.

* addurl, importfeed: Avoid adding filenames with leading '.', instead
  it will be replaced with '_'.

  This might be considered a security fix, but a CVE seems unwattanted.
  It was possible for addurl to create a dotfile, which could change
  behavior of some program. It was also possible for a web server to say
  the file name was ".git" or "foo/.git". That would not overrwrite the
  .git directory, but would cause addurl to fail; of course git won't
  add "foo/.git".

sanitizeFilePath is too opinionated to remain in Utility, so moved it.

The changes to mkSafeFilePath are because it used sanitizeFilePath.
In particular:

	isDrive will never succeed, because "c:" gets munged to "c_"
	".." gets sanitized now
	".git" gets sanitized now
	It will never be null, because sanitizeFilePath keeps the length
	the same, and splitDirectories never returns a null path.

Also, on the off chance a web server suggests a filename of "",
ignore that, rather than trying to save to such a filename, which would
fail in some way.
2020-05-08 16:22:55 -04:00
Joey Hess
54599207f7
note 2020-05-08 15:56:15 -04:00
Joey Hess
980de9c910
comment 2020-05-08 13:21:16 -04:00
Joey Hess
de396fac80
comment 2020-05-08 13:16:46 -04:00
ryan.singer@5db89d157f0565db67eac571e2433fa96c187e32
25b6f7ca96 2020-05-07 22:11:04 +00:00
ryan.singer@5db89d157f0565db67eac571e2433fa96c187e32
f88c26c211 2020-05-07 22:09:44 +00:00
ryan.singer@5db89d157f0565db67eac571e2433fa96c187e32
6b49594d91 2020-05-07 22:08:30 +00:00
yarikoptic
a3d196fe39 original complaint about filenames obfuscated by addurl 2020-05-07 21:07:28 +00:00
Joey Hess
1532d67c3e
S3: Support signature=v4
To use S3 Signature Version 4. Some S3 services seem to require v4, while
others may only support v2, which remains the default.

I'm also not sure if v4 works correctly in all cases, there is this
upstream bug report: https://github.com/aristidb/aws/issues/262
I've only tested it against the default S3 endpoint.
2020-05-07 13:18:11 -04:00
Joey Hess
bb88a01910
upgrade: When upgrade fails due to an exception, display it.
37b42e72e7 made it catch exceptions but
thought they were unlikely to be useful to display, which may be right when
a git command fails, but not in the case yoh found.
2020-05-07 12:22:32 -04:00
Joey Hess
5eb101b720
respond and close 2020-05-07 12:10:46 -04:00
yarikoptic
c719998eed initial report on silent fail to upgrade 2020-05-07 15:02:41 +00:00
glasserc
6a9c3a710d Added a comment: Is dead really the solution here? 2020-05-06 20:29:04 +00:00
Joey Hess
0040d2c129
sync: Avoid an ugly error message when nothing has been committed to master yet and there is a synced master branch to merge from
Now the warning gets displayed, which is better than an arcane git error.

The warning is still kind of ugly, especially when the pull later in the
sync will clear up what it warns about. But, this is an unusual situation
not likely to happen, and if there is no remote to pull from, the warning
message is needed or the sync will seem to succeed despite not merging the
synced master branch.

Would still be better if it could merge the synced master branch in this
situation, making an empty commit to master to do it seems wrong, and
otherwise it would need a whole separate code path, and would bypass using
git merge in favor of say, setting master to the syned branch. Which would
bypass git configs like arguably merge.ff and certianly
merge.verifySignatures. So don't want to do that.
2020-05-05 14:31:37 -04:00
Joey Hess
681928e828
close 2020-05-05 12:52:23 -04:00