21 Commits

Author SHA1 Message Date
18e1a11f07 Update README.md with note about newer macOS versions 2025-10-08 01:16:55 -04:00
99f2d95aa1 Remove some debugging code
Removed some output that previously appeared when dirdedupe was
    run without the --execute flag. This output was intended to help
    debug and verify atime/mtime preservation, and is no longer needed.
2023-10-25 12:36:22 -04:00
e57c937456 Attempt to make GitHub recognize license
Used more typical ISC language in the LICENSE file.
2023-10-24 19:53:55 -04:00
5d677683fd Added SPDX code to source files, LICENSE file
Make licensing clearer and (hopefully?) help GitHub detect the
    appropriate license.
2023-10-24 19:50:46 -04:00
f8d4f27585 Added introductory language to README
Someone unfamiliar with tmutils will not know the purpose or have
    the big picture of what this project is intended for without a
    brief introduction. We now provide that brief introduction in the
    README.
2023-10-23 12:30:46 -04:00
aa72f9d978 Added dirdedupe.sh example to README
Added a screenshot of a terminal session using dirdedupe.sh to
    hard-link files while preserving the atime/mtime of the enclosing
    directory of the newly-linked file.
2023-10-23 12:14:06 -04:00
717c700fac Fix syntax error caused by extra spacing
Bash variable assignment requires the = operator to immediately
    follow the variable name, otherwise it will result in a syntax
    error. This commit fixes a syntax error of that nature that would
    prevent the preservation of atime and mtime of the enclosing
    directory of a file that was linked to an identical file.
2023-10-23 12:00:43 -04:00
90e61f7094 Update README
Align README with new directions for each utility.
2023-10-23 04:55:00 +00:00
8c2384acba Remove test code comments, fix indents
Fixed some indents and enabled some commented-out code.
2023-10-23 00:49:41 -04:00
063298dd46 Enhance UI, preserve timestamps
Removed my oh-so-clever "shadowdir" and "shadowfile" concepts for
    the directory to be examined for potential deduplication. Instead
    we call them subject directories and subject files, because they
    are subject to our process.

    Now creates a temporary file, removed on exit, as our temporary
    access and modification time holder. When replacing a file with a
    hard link, we first copy the atime/mtime of its directory to the
    temporary file. THEN we perform the link. After the link, we
    restore the original atime/mtime of the enclosing directory from
    the temporary file. This is useful for backups, where we do not
    want the directories to have newer timestamps (timestamps matching
    the date/time that we run deduplication, because creating the link
    counts as a modification of the directory).
2023-10-23 00:31:34 -04:00
efdf9717db Don't re-link already linked files, UI enhanced
While creating hard links, check if they're already linked first.
    This saves SUBSTANTIAL time in Time Machine directories where many
    files are already hard links.

    Also, be clearer when running about what exactly it is we're doing
    with each file.
2023-10-18 18:29:20 -04:00
bf39b320b9 Clarify tmbless.sh UI
More clearly explain WHAT tmbless.sh accomplishes, and THEN
    explain exactly HOW it does it...

    Previously, we explained what we did mechanically, and THEN
    explained the result of doing that, which is useless to non-
    technical end-users.
2023-10-18 17:56:07 -04:00
c0ab647c91 Further clarify in-development files
Renamed each in-development shell script file so that they are
    very clearly not ready to be run by the end-user.
2023-10-18 17:51:38 -04:00
c4b6bd13e1 Separate in-development source files
Stored experimental in-development source files within the dev
    subdirectory of the project, to make it easier for end-users to
    know which shell scripts are ready for use.
2023-10-18 17:49:01 -04:00
1ae26c20b8 Improved UI of tmimport.sh
Made the help message more helpful, and made a confirmation message
    less whimsical and more clear.
2023-10-18 17:48:03 -04:00
a577ae5199 Added a tmbless utility
Added a utility to bless a snapshot directory
2022-07-27 11:06:40 -04:00
a13fa65b17 Added safeguard in case of computer name mismatch
Time Machine Importer will now determine the computer name of the
backup store and check it against the current computer name. If they
do not match, it will issue a prominent warning.
2022-07-19 18:33:02 -04:00
9d4310e8bd Clarified UI messages in tmimport.sh
Previously used the language "attributes are now" to describe the
extended attributes matching a backup drive to a computer. However,
that is both overly erudite language and completely meaningless to
the average user. Replaced it with the more meaningful language:
"This backup drive is currently matched to the following computer:" and
"This backup drive has been matched to the current computer:", and
omitted the names of the extended attributes.
2022-07-19 12:31:48 -04:00
74a98e499e README improvements
Modified the README to include installation instructions
and synchronized command line and README usage message.
2022-07-19 12:25:44 -04:00
56b6d79d54 Made TODO more apparent 2022-07-19 03:56:41 -04:00
636cd274db Initial Commit
This initial commit includes a directory deduplicator (for thinning out
Time Machine snapshots) and an automatic tool to detect and apply the
necessary metadata for a successful tmutil inherit (needed when you
want to use a backup drive with a new computer, for example).
2022-07-19 03:32:37 -04:00