2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-27 07:16:40 +00:00
restic/internal
greatroar 8f20d5dcd5 fs: Refactor UtimesNano replacements
Previously, nodeRestoreTimestamps would do something like

	if node.Type == restic.NodeTypeSymlink {
	    return nodeRestoreSymlinkTimestamps(...)
	}
	return syscall.UtimesNano(...)

where nodeRestoreSymlinkTimestamps was either a no-op or a
reimplementation of syscall.UtimesNano that handles symlinks, with some
repeated converting between timestamp types. The Linux implementation
was a bit clumsy, requiring three syscalls to set the timestamps.

In this new setup, there is a function utimesNano that has three
implementations:

* on Linux, it's a modified syscall.UtimesNano that uses
  AT_SYMLINK_NOFOLLOW and AT_FDCWD so it can handle any type in a single
  call;
* on other Unix platforms, it just calls the syscall function after
  skipping symlinks;
* on Windows, it's the modified UtimesNano that was previously called
  nodeRestoreSymlinkTimestamps, except with different arguments.
2024-10-19 12:04:09 +02:00
..
archiver fs: move NodeFromFileInfo into FS interface 2024-10-16 21:17:21 +02:00
backend backend/azure: Add tests for both token types 2024-10-17 20:38:03 +02:00
bloblru Fix typos 2024-07-03 20:02:06 +02:00
checker add proper constants for node type 2024-08-31 18:20:01 +02:00
crypto crypto: cleanup ciphertext verification error 2024-06-05 22:33:20 +02:00
debug Fix review comments 2024-04-29 16:21:38 -06:00
dump Merge pull request #5054 from phillipp/dump-compress-zip 2024-10-16 19:17:47 +00:00
errors errors, fs: Replace CombineErrors with stdlib Join 2024-10-05 10:56:40 +02:00
feature drop support for s3legacy layout 2024-08-31 17:25:24 +02:00
filter move include/exclude options to filter package 2024-08-31 18:04:07 +02:00
fs fs: Refactor UtimesNano replacements 2024-10-19 12:04:09 +02:00
fuse add proper constants for node type 2024-08-31 18:20:01 +02:00
migrations drop support for s3legacy layout 2024-08-31 17:25:24 +02:00
options backend, options: Prefer strings.Cut to SplitN 2022-12-02 19:19:14 +01:00
repository internal/restic: Use IDSet.Clone + use maps package 2024-10-03 21:14:29 +02:00
restic fs: move NodeFromFileInfo into FS interface 2024-10-16 21:17:21 +02:00
restorer fs: move WindowsAttributes definition back to restic package 2024-08-31 18:40:36 +02:00
selfupdate Replace lots of unused parameters with _ 2023-05-18 21:17:53 +02:00
test use consistent alias for interal/test package 2024-03-29 00:24:03 +01:00
textfile Replace most usages of ioutil with the underlying function 2022-12-02 19:36:43 +01:00
ui add proper constants for node type 2024-08-31 18:20:01 +02:00
walker add proper constants for node type 2024-08-31 18:20:01 +02:00