- Fix #82 Error importing SFTPTarget with paramiko > 3.0
- Fix #92 Unquote url characters in password
- Fix #99 Recursive folders with capital letters are not synced
- Drop support for Python 3.7 (end-of-life: 2023-06-27)
- Use GH Actions for CI instead of Travis
-
Add SFTP support
-
Improve
runcommand -
New
treecommand -
New
--caseargument for better handling of ambigous files that only differ in the name's casing -
New
--create-folderargument to allow creation of missing remote folders -
New
--report-problemsargument to return exit code 10 on skipped files like unresolved conflicts or copy errors -
New
--no-dry-runargument toruncommand to override a default dry_run configuration (alias:--execute) -
New
--debug classifyargument helps with analysis of synchronization problems -
--migratenow always removes outdated metadata files (before, this was only done when a file inside that directory was touched) -
Copy errors (e.g. due to encoding problems) are skipped (see also
--report-problems) -
Fix #26: Crash when not setting verbose option
-
Use Yabs as release tool
-
Available on Windows Package Manager
-
Breaking Changes:
- Drop support for Python 2.x (end-of-life: 2020-01-01)
- Rename
.pyftpsync.yamltopyftpsync.yaml - Rename FtpTarget => FTPTarget
See branch maintain_3.x.
- Drop support for Python 3.4 (end-of-life: 2019-03-18)
- Add support for Python 3.8
- Fix #38 Remove trailing '/' before checking PWD response
-
This release addresses some known encoding-related issues:
- The internal path format are now native strings (i.e. unicode on Python 3 or UTF-8 bytes on Python 2)
- FTP targets are now assumed to support UTF-8.
- #30: Fallback to CP-1252 encoding when FTP server returns non-UTF-8
- Local filesystem targets now consider the OS encoding.
- Modified format of
.pyftpsync-meta.json: File names are now stored as UTF-8 (was the unmodified binary format of the target platform before). - See also the 'encoding' section in the spec.
-
New
runcommand reads and executes settings from a configuration file.pyftpsync.yaml -
Remove trailing garbage from output lines
Breaking Changes:
- Modified format of
.pyftpsync-meta.json. Pass--migrateoption to convert from a prvious version (note that this cannot be undone)
- Allow
-vwith--versionoption. - Fix #26: Crash when not setting verbose option.
- Print SYST and FEAT when -vv is passed
- Accept list type options for
excludeargument in CLI mode - Apply and enforce Black formatter
- Fix #27: Download- and UploadSynchronizer honor
--deleteflag for all conditions.
NOTE: default settings will no longer delete files for up- and downloads.
Note: the command line options have changed: Be careful with existing shell scripts after updating from v1.x!
New Features:
- New
scancommand to list, purge, etc. remote targets. - Add FTPS (TLS) support.
- Support Active FTP.
- Support for
.netrcfiles. - CLI returns defined error codes.
- Use configurable logger for output when not in CLI mode.
- Release as Wheel.
Breaking Changes:
- Write mode is now on by default.
The
-x,--executeoption was removed, use--dry-runinstead. -f,--include-filesoption was renamed to-m,--match.
-o,--omitoption was renamed to-x,--exclude.- Modified format of
.pyftpsync-meta.json. - Dropped support for Python 2.6 and 3.3.
Fixes and Improvements:
- Remove lock file on Ctrl-C.
- Refactored and split into more modules.
- Improved test framework and documentation.
- Enforce PEP8, use flake8.
- Add FTPS (TLS) support on Python 2.7/3.2+
- Add conflict handling to upload and download commands
- Move documentation to Read The Docs
- Use tox for tests
- Bi-directional synchronization
- Detect conflicts if both targets are modified since last sync
- Optional resolve strategy (e.g. always use local)
- Distinguish whether a resource was added on local or removed on remote
- Optionally prompt for username/password
- Optionally store credentials in keyring
- Custom password file (~/pyftpsync.pw) is no longer supported
- Colored output
- Interactive mode
- Renamed _pyftpsync-meta.json to .pyftpsync-meta.json
- MSI installer for MS Windows
- Fixes for py3
- Improved progress info
- Added
--progressoption
First release