Skip to content

Releases: yannickkirschen/ddir

3.1.2

25 May 07:03
1f9fe7b
Compare
Choose a tag to compare

This release fixes a bug that caused directories to be not created and fail (b8709fd). This was because recursion has not been implemented and thus shutil.copytree with shutil.copy2 as copy functions is now being used.

3.1.1

16 May 14:58
90c499c
Compare
Choose a tag to compare

This release finally fixes the st_mtime comparison bug with the commit 25eada3 🥳. Here is an explanation of the bug:

ddir uses shutil.copy2 to copy files and directories. This function tries to copy the metadata like timestamps as well. When copying data to an external storage device with a different file system, there is an issue with the accuracy of those timestamps:

To determine if a file is newer or older, ddir uses the st_mtime property, which is the UNIX timestamp as float. This float happens to be of a different accuracy depending on the storage device and file system. On all my internal devices (SSD and NVMe, APFS and ext4), the float has an accuracy of 6 decimal places, but on my external devices (SSD, exFAT) it only has an accuracy of 2 decimal places. This causes all comparisons to be not equal and thus a file is marked as modified though it isn't. This is why I implemented a sneaky comparison, that cuts of the overlapping decimal places without rounding them.

3.1.0

10 May 16:32
af90460
Compare
Choose a tag to compare

This release removed ceiling change timestamps before comparison (originally added in e3589f3 of release 2.0.2 and removed in fe91b17). It caused a lot of trouble ...

Since I finally set up a Linux workstation 🚀, I made some required changes to the VS Code settings in c8f5ab4. Oh, speaking of VS Code: just the source code is OSS - the binaries provided by our lovely friends at Microsoft aren't! So I highly recommend working with VSCodium, cause those binaries are open source and free of 💩

3.0.1

04 Mar 09:13
af9659e
Compare
Choose a tag to compare

On macOS there is a bug that the installation via pip is not possible when having Python installed via Homebrew. So you need to use a venv and that must be ignored by ddir. That's what I've fixed in this commit: c3e915d.

3.0.0

03 Mar 20:00
c9e7f02
Compare
Choose a tag to compare

This release finally features the target -> source copy mechanism! Its most important commit is e8dd43c. So, if a file of the target is newer than that of the source, you can now override it.

I also did some annoying CI version bumps in 198c60d.

2.0.2

10 Apr 16:17
859689a
Compare
Choose a tag to compare

This release features a ton of bugfixes. To be honest, version 2.0.1 has so many bugs that it doesn't work at all, so this should be stable. Here is a list of the content:

  • fix: use correct directory for init (c2e194a)
    The init command used the wrong directory.
  • fix: remove old diff files after migration (9d1b647)
    This fixes an error where old diff files where not deleted after migration.
  • fix: use shutil.copy2 (7f07936)
    This fixes an error that caused file metadata not being copied. By the use of shutil.copy2 this is solved.
  • fix: ceil change timestamps before comparison (e3589f3)
    This fixes an error that caused the program to identify diffs that weren't real diffs. By ceiling the timestamps before comparison and providing a buffer of one second, this is solved.
  • fix: syntax error (1a589c0)
    This fixes an error in the str method of DiffType, by using the correct index notation.
  • chore: cleanup code (bb8429a)
  • feat: pretty print target.json (d7df170)

Full Changelog: 2.0.1...2.0.2

2.0.1

08 Apr 14:53
5e9850f
Compare
Choose a tag to compare

This fixes an error of v2.0.0 that caused the application to fail during startup.

2.0.0

08 Apr 14:39
1b166a7
Compare
Choose a tag to compare

This release features an entire re-design of the API! You now can work with multiple targets and have easier access to diffs.

1.0.0

19 May 20:20
e785788
Compare
Choose a tag to compare
feat: initial commit