Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/sync unix symlinks as links #6205

Draft
wants to merge 34 commits into
base: master
Choose a base branch
from

Commits on Dec 10, 2023

  1. gitignore: Ignore clangd-generated directory .cache/

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    4f4fd60 View commit details
    Browse the repository at this point in the history
  2. cmake: Export compile_commands.json by default

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    ed5fdd8 View commit details
    Browse the repository at this point in the history
  3. libsync: Remove auto-exclude for symlinks

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    5812d5c View commit details
    Browse the repository at this point in the history
  4. libsync/common: Store actual type for items

    Before, the common assumption was being made that if an item is not a
    directory, it must be a file (or the other way around).
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    40145c9 View commit details
    Browse the repository at this point in the history
  5. libsync: Add header field OC-File-Type for symlink synchronization

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    0370594 View commit details
    Browse the repository at this point in the history
  6. libsync: Add SymLinkUploadDevice for reading symlinks

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    d66c704 View commit details
    Browse the repository at this point in the history
  7. libsync: Use SymLinkUploadDevice for single symlink uploads

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    c34659b View commit details
    Browse the repository at this point in the history
  8. libsync: Add support for symlinks in bulk uploads

    Use SymLinkUploadDevice for symlinks in bulk uploads and add the header
    field X-File-Type to recognize symlinks on the server.
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    7b92b2e View commit details
    Browse the repository at this point in the history
  9. libsync: Fix _read for SymLinkUploadDevice

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    390e8f6 View commit details
    Browse the repository at this point in the history
  10. libsync: Allow download of symlinks

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    af53d58 View commit details
    Browse the repository at this point in the history
  11. libsync: Fix Content-Length for symlinks in bulk upload

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    aee6601 View commit details
    Browse the repository at this point in the history
  12. common: Do not dereference symlink when checking existence

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    a551b24 View commit details
    Browse the repository at this point in the history
  13. libsync: Fix checksum and size for symlinks in bulk upload

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    7876341 View commit details
    Browse the repository at this point in the history
  14. libsync: Add symlink type to DiscoveryPhase

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    c5b8235 View commit details
    Browse the repository at this point in the history
  15. common: Allow checksum calculation on QIODevice again

    This is required to be able to calculate the checksum for symlinks
    without code duplication.
    The commit reverts some of the removal done in commit
    dd178f0.
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    10d0fcc View commit details
    Browse the repository at this point in the history
  16. libsync: Add readlink to FileSystem and fix getSize for symlinks

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    e7c357c View commit details
    Browse the repository at this point in the history
  17. BulkPropagatorJob: Remove symlink size special case

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    719e014 View commit details
    Browse the repository at this point in the history
  18. FileSystem: Fix fileEquals for symlinks

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    8f05e93 View commit details
    Browse the repository at this point in the history
  19. gui/config: Add symlink synchronization as sync option

    This commit reverts the effects of commit
    "libsync: Remove auto-exclude for symlinks"
    (5812d5c).
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    f5d6110 View commit details
    Browse the repository at this point in the history
  20. Revert "common: Allow checksum calculation on QIODevice again"

    This reverts commit 73063eb.
    
    Since the checksum calculation on symlinks is required in multiple
    places, it is better to move this differentiation to the checksum
    calculation class.
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    4866922 View commit details
    Browse the repository at this point in the history
  21. filesystem: Move readlink from libsync/filesystem.h to common/filesys…

    …tembase.h
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    6df006d View commit details
    Browse the repository at this point in the history
  22. ChecksumCalculator: Calculate symlink checksum on symlink target

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    97f015c View commit details
    Browse the repository at this point in the history
  23. discoveryphase: Fix local entry size for symlinks

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    845e108 View commit details
    Browse the repository at this point in the history
  24. ChecksumCalculator: Fix creation of QBuffer

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    7a6df0e View commit details
    Browse the repository at this point in the history
  25. FileSystem: Make readlink C++20 compliant

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    81dbb9d View commit details
    Browse the repository at this point in the history
  26. csync/FileSystem: Adjust c_utimes to not follow symlinks

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    91a5e54 View commit details
    Browse the repository at this point in the history
  27. discovery: Check if symlink for server entries

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    d5b61b2 View commit details
    Browse the repository at this point in the history
  28. OwncloudPropagator: Fix condition for deletion of previous remote item

    The issue was introduced in "libsync/common: Store actual type for items".
    Additionally, the variable/parameter "directoriesToRemove" was renamed
    to "remoteItemsToRemove" since it could now also be a file or symlink.
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    d36b7b9 View commit details
    Browse the repository at this point in the history
  29. OwncloudPropagator: Only download symlink if enabled by option

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    5bcf57a View commit details
    Browse the repository at this point in the history
  30. PropagateDownloadFile: Allow symlink to be larger than 8kB

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    fa16c33 View commit details
    Browse the repository at this point in the history
  31. PropagateDownloadFile/FileSystem: Preserve permissions for symlinks

    This commit will preserve the permissions set on the symlink if a new
    file is downloaded in the same place and the symlink is overwritten.
    That fixes a bug which caused the downloaded file to become unreadable
    if the symlink was broken and no permissions could be retrieved.
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    f779b3e View commit details
    Browse the repository at this point in the history
  32. PropagateDownloadFile/FileSystem: Improve previous commit (by mainly …

    …undoing it)
    
    Instead of copying the permissions on the symlink, use the default
    permissions in that case. Otherwise, the newly downloaded files might
    become executable since symlinks often have with all permissions set.
    
    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    5265ed4 View commit details
    Browse the repository at this point in the history
  33. ConflictDialog: Fix size and mtime for symlinks in conflict resolution

    Signed-off-by: Tamino Bauknecht <[email protected]>
    taminob committed Dec 10, 2023
    Configuration menu
    Copy the full SHA
    c61a574 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    38f5dac View commit details
    Browse the repository at this point in the history