- Add SFTP support
- Improve
run
command - New
tree
command - New
--case
argument for better handling of ambigous files that only differ in the name's casing - New
--create-folder
argument to allow creation of missing remote folders - New
--report-problems
argument to return exit code 10 on skipped files like unresolved conflicts or copy errors - New
--no-dry-run
argument torun
command to override a default dry_run configuration (alias:--execute
) - New
--debug classify
argument helps with analysis of synchronization problems --migrate
now 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.yaml
topyftpsync.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
run
command 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--migrate
option to convert from a prvious version (note that this cannot be undone)
- Allow
-v
with--version
option. - Fix #26: Crash when not setting verbose option.
- Print SYST and FEAT when -vv is passed
- Accept list type options for
exclude
argument in CLI mode - Apply and enforce Black formatter
- Fix #27: Download- and UploadSynchronizer honor
--delete
flag 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
scan
command to list, purge, etc. remote targets. - Add FTPS (TLS) support.
- Support Active FTP.
- Support for
.netrc
files. - 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
,--execute
option was removed, use--dry-run
instead. -f
,--include-files
option was renamed to-m
,--match
.
-o
,--omit
option 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
--progress
option
First release