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

Why symlinks? #1849

Closed
ghost opened this issue Aug 10, 2022 · 13 comments
Closed

Why symlinks? #1849

ghost opened this issue Aug 10, 2022 · 13 comments

Comments

@ghost
Copy link

ghost commented Aug 10, 2022

I understand that a symlink is a file that points to the original file and can also be modified as if it were the original. That is nice; however, the paths are super long, and the black arrows in Finder are not pleasant.

There is, of course, the uninstall command, but the name suggests that it's not something that should be constantly run.

So then, what is it that I am missing? Am I the only one that isn't okay with having a bunch of symlinks in their file system?

@lra
Copy link
Owner

lra commented Aug 10, 2022

I don't understand your question, or you lack some technical background.

Symlinks allow the files to be kept in sync, as they are just pointers.
If Mackup were to copy files, it would have to constantly watch the files to keep them in sync. I am not going to implement dropbox myself, sorry.

@joshmedeski
Copy link
Contributor

What are your concerns? I'd suggest you get a better understanding of what a symlink is. It's a great solution to the problem mackup is solving.

Long paths are just a side-effect, but the benefit of this method is huge! I've been using Mackup for 5+ years and am very happy with it. I can set up a brand new computer in about 30 minutes thanks to this tool.

@ghost
Copy link
Author

ghost commented Aug 10, 2022

I'm not sure what needs mackup is fulfilling.

If the point is to sync your settings, well, these days, most apps already sync your settings in the cloud. So unsure what's the reasoning behind syncing your settings. If an app already syncs your settings to the cloud, and you maintain a backup of your hard drive, you already fulfilled the 3-2-1 rule, making mackup redundant. For example, Jetbrains IDEs already sync your settings to your account. So then why does mackup need to do this also?

Now, if the point is to backup, like the name "mackup" and the command backup implies, then that's also a tad bit redundant for people like me who use Time Machine (which I would presume is a lot of people).

  • iCloud is a syncing service, yet it's an optional storage engine solution for backups, which might add to the confusion.

So is mackup a "backup utility" or "syncing service"? Backup means copying files from one place to another. So then, why, despite its name, does mackup use symlinks to sync?

@joshmedeski
Copy link
Contributor

Mackup isn't for everyone (and that's okay). Hope those other tools work well for you.

@joshmedeski
Copy link
Contributor

You're caught up on semantics, the name is just something catchy that @lra came up with when he created the project. Your understanding of what it's doing is correct.

@Stanzilla
Copy link

the only case where I ever had a problem with Mackup using symlinks is when using the includeIf directives in .gitconfig files, otherwise it works just fine.

@Wxh16144
Copy link
Contributor

Wxh16144 commented Jan 3, 2023

What are your concerns? I'd suggest you get a better understanding of what a symlink is. It's a great solution to the problem mackup is solving.

Long paths are just a side-effect, but the benefit of this method is huge! I've been using Mackup for 5+ years and am very happy with it. I can set up a brand new computer in about 30 minutes thanks to this tool.

I would like to take this opportunity to post one of my personal thoughts (or perhaps a feature request)

background

I want to collect my configuration via backup and make him publicly available on github, but I'm maintaining a git repository and it's easy to lose files if I use symlinks.

suggestions

Consider adding an option like file-copy to the engine configuration, so that I can safely sync my configuration files to the git repository and do whatever I want with them.

Or add a -config to the cli command to specify the configuration file

My current solution is this https://github.com/Wxh16144/dotfiles/blob/9843e43aa237753d377bb053ca310ee24e8ee4b3/update.sh

I wish it was more powerful~

@pvinis
Copy link
Contributor

pvinis commented Feb 25, 2023

yea, actually a mode for filesystem engine where it file copies instead of symlinking, that would be actually awesome!

@JohnhanLiu
Copy link

JohnhanLiu commented Mar 19, 2023

What are your concerns? I'd suggest you get a better understanding of what a symlink is. It's a great solution to the problem mackup is solving.
Long paths are just a side-effect, but the benefit of this method is huge! I've been using Mackup for 5+ years and am very happy with it. I can set up a brand new computer in about 30 minutes thanks to this tool.

I would like to take this opportunity to post one of my personal thoughts (or perhaps a feature request)

background

I want to collect my configuration via backup and make him publicly available on github, but I'm maintaining a git repository and it's easy to lose files if I use symlinks.

suggestions

Consider adding an option like file-copy to the engine configuration, so that I can safely sync my configuration files to the git repository and do whatever I want with them.

Or add a -config to the cli command to specify the configuration file

My current solution is this https://github.com/Wxh16144/dotfiles/blob/9843e43aa237753d377bb053ca310ee24e8ee4b3/update.sh

I wish it was more powerful~

@Wxh16144 @pvinis
Before this new arg file-copy be added, how about try to add an alias, that exec mackup backup --force && mackup uninstall --force.

@pvinis
Copy link
Contributor

pvinis commented Mar 19, 2023

I can try that 👍

@Wxh16144
Copy link
Contributor

Before this new arg file-copy be added, how about try to add an alias, that exec mackup backup --force && mackup uninstall --force.

@JohnhanLiu

I'm sorry I didn't get your point, does mackup support copy files, I don't want him to create soft links! But I've implemented my needs with nodejs. Wxh16144/backup-cli

@JohnhanLiu
Copy link

JohnhanLiu commented Mar 24, 2023

Before this new arg file-copy be added, how about try to add an alias, that exec mackup backup --force && mackup uninstall --force.

@JohnhanLiu

I'm sorry I didn't get your point, does mackup support copy files, I don't want him to create soft links! But I've implemented my needs with nodejs. Wxh16144/backup-cli

@Wxh16144
Though it creates a soft link while executing 'backup' indeed, soft link will be removed while 'uninstall'See Details. So that's why I add an alias for combining 2 commands. But my tricky usage would be broken in the future, so it's a good job that your implementation in a new NodeJS version is.

@lra
Copy link
Owner

lra commented Dec 16, 2023

This is now planned, see #1969

@lra lra closed this as completed Dec 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants