lra / mackup

Keep your application settings in sync (OS X/Linux)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Why symlinks?

opened this issue · comments

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?

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.

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'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?

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

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.

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.

commented

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~

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

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.

I can try that 👍

commented

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

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.

This is now planned, see #1969