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

Provide support to synchronize settings across machines #2743

Closed
SrTobi opened this issue Feb 5, 2016 · 129 comments
Closed

Provide support to synchronize settings across machines #2743

SrTobi opened this issue Feb 5, 2016 · 129 comments
Assignees
Labels
config VS Code configuration, set up issues plan-item VS Code - planned item for upcoming settings-sync
Milestone

Comments

@SrTobi
Copy link
Contributor

SrTobi commented Feb 5, 2016

There are quiet some extensions out there to handle setting synchronization between multiple computers. And in my opinion they are very important: Since vscode is very customizable with settings, keyboardshortcuts and extension it is very hard to synchronize those things between multiple workstations. And all those extensions are not really clean solutions, because vscode does nearly nothing to support them (for example the paths vscode uses are not exposed, see #2741).

So here some ideas to make synchronization clean and extensible:

  • add a contribution point for synchronization extensions
    • Those extensions should not have to gather all the files that have to be synced. vscode should do this and then pass them to the extensions
    • Such an extension's job is only to upload/download the files, passed to them (so we can have the gist upload/svn upload/git repo upload/dropbox/filesystem/onedrive/ftp/other services.
    • Or maybe gather all settings into one big json object and pass that.
    • Support versioning and non versioning extensions
  • add a remote_settings.json to build on top of the workspace-settings/user-settings stack.
  • allow automatic and user triggered synchronization

Ok... just some ideas 😄

@Tyriar
Copy link
Member

Tyriar commented Feb 5, 2016

Related: #679

This is my solution for syncing keybindings and settings on Linux and Windows if you're interested. I haven't looked too deeply at doing it with extensions yet but I did file #691 some time ago to help with this.

@Tyriar Tyriar added the feature-request Request for new features or functionality label Feb 5, 2016
@joaomoreno joaomoreno added this to the Backlog milestone Feb 8, 2016
@csholmq
Copy link

csholmq commented Feb 9, 2016

The plugin Sync Settings for Atom uses GitHub Gist to backup/sync:

  • Settings
  • Packages
  • Keymap
  • (Styles)
  • (Init)
  • Snippets

Atom also supports starring packages directly in Github and then easily install them using apm stars --user thedaniel --install.

@felixfbecker
Copy link
Contributor

Imo this is a pretty low priority because most of the time settings are overwritten by workspace settings that are synced with version control anyway.

@csholmq
Copy link

csholmq commented Feb 21, 2016

@felixfbecker Extensions are however one of those things that doesn't version control. Neither is keymap.

@felixfbecker
Copy link
Contributor

@csholmq That is a seperate issue though. For example, there could be a .vscode/extensions.json that specifies which extensions should be installed for this project, like editorconfig or a specific debug adapter, with a semver version constraint like a package.json.

@egamma
Copy link
Member

egamma commented Feb 21, 2016

This is not related to the original API request raised in this issue, but there is a sync extension that is using Gists. https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync

@joaomoreno joaomoreno removed their assignment Feb 22, 2016
@csholmq
Copy link

csholmq commented Feb 22, 2016

@egamma Exactly the functionality I sought after. But as @felixfbecker mentioned, perhaps this issue is a separate one.

@jokeyrhyme
Copy link

It might also be nice to install an extension once on one machine, and have your other machines either prompt or automatically install the same extension everywhere else.

Atom had an online package browser with "stars", and there was a command you could run to install everything you'd starred. Still not automatic, but it was a start.

I know others might object, but I personally have no problem having to log in to VSCode with my Microsoft account once per machine, if it facilitated this level of convenience. Maybe a synchronisation framework or something could be offered, so that provider-specific extensions could implement authentication and cloud-persistence (e.g. one for Microsoft, one for Google Drive, Dropbox, etc).

@golf1052
Copy link
Member

golf1052 commented Apr 6, 2016

I wrote an extension a while ago (here, also hasn't been updated in a while) that tried to help sync extensions between computers using file synchronization services. Originally I only supported syncing themes because syncing extensions seemed somewhat messy.

I think this should be the right way to maintain extensions between computers. Keep a list of what extensions are installed where, be able to pick and choose what extensions should be installed on which computer and then only manage syncing settings for those extensions. I assume the recommended way for extensions to manage settings is through this?

@felixfbecker
Copy link
Contributor

https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync syncs extensions very well

@ToMakeSense
Copy link

ToMakeSense commented Nov 21, 2016

Very much agree with you, Add features--Account & Synchronization, handling setting synchronization and extensions synchronization(Mark extensions owned), what will make it much easier to install and to synchronize VS code between multiple computers.
Another extensions that syncs extensions: https://marketplace.visualstudio.com/items?itemName=golf1052.code-sync

@JosephTLyons
Copy link

Will settings sync be able to sync ssh configuration files?

@sandy081
Copy link
Member

Not as of now.

@sandy081 sandy081 modified the milestones: June 2020, On Deck Jun 29, 2020
@elliot-huffman
Copy link

which method is safe for now to sync

https://gist.github.com/wonderbeyond/661c686b64cb0cabb77a43b49b16b26e

or

https://mikefrobbins.com/2019/03/21/backup-and-synchronize-vscode-settings-with-a-github-gist/#comment-39448

I personally use this extension:
shan.code-settings-sync
It is super awesome and keeps my settings private on a private github gist.

@haugerbr
Copy link
Member

@elliot-labs as discussed earlier in this thread, secret github gists are not private. Github documentation confirms as much https://docs.github.com/en/github/writing-on-github/creating-gists

I have used the same extension, but pulled some sensitive information out of my settings after finding out it wasn't private.

@elliot-huffman
Copy link

Oh crap! I missed that! 😬

@sandy081 sandy081 modified the milestones: On Deck, July 2020 Jul 17, 2020
@pycharmer1221
Copy link

@elliot-labs and @haugerbr
thanks,
I also don't know that gist is not private
so now I am thinking of writing some scripts for uploading settings to the cloud
and one script to download and install

I have also build a program that shows me scripts on startup
so I can put those script in there.

@escape0707
Copy link

Guys, vscode-insiders's sync isn't an option?

@jakobhviid
Copy link

I agree with @escape0707. Vs code insiders now has settings sync that will soon hit the public release. This is effectively a non problem and has been addressed.

@haugerbr
Copy link
Member

haugerbr commented Jul 19, 2020

@escape0707 @jakobhviid I'm aware of it and it's exactly what I'm planning on using once it moves to the normal VSCode builds. For now I'm still using settings sync while I wait.

martinVyoo added a commit to martinVyoo/gitignore that referenced this issue Aug 13, 2020
All of these files are user specific, they should not be included by default
VisualStudioCode will include a functionality in the future to sync the settings separately
microsoft/vscode#2743
@sandy081
Copy link
Member

Settings Sync (preview) feature has landed into stable (1.48), hence closing this.

Please create separate issues for other requests or bugs.

@haugerbr
Copy link
Member

@sandy081 is having seperate profiles within the same account a feature that has been requested already? For example, if I want to use my github account for the authentication method but want seperate work/personal profiles. For now I use seperate accounts which I actually like better for personal/work separation but I can see a use case where people want multiple personal profiles. I will open up a feature request for it if it does not already exist.

@sandy081
Copy link
Member

Please go through the existing settings sync issues and create a one if does not exist.

@haugerbr
Copy link
Member

Found it. Tagging it here in case anyone reading this thread is also interested in tracking it #92393

@Chiramisu
Copy link

Please join me in a nice round of applause and show of great appreciation for adding this feature (as of 1.48). I am thrilled and elated! Thank you so much VS Code team!! 👏🏼👏🏼👏🏼

Excited Guy

However, if you could allow me just two minor gripes:

  1. I seem to have to re-authenticate after some very short timeout (a day perhaps?) and a restart of VS Code.
  2. Authentication takes place in a browser, and since I have tabitis and sometimes don't have my browser open, this becomes somewhat... irksome.

@sandy081
Copy link
Member

Thanks.

I would suggest to open new issues for the problems you are facing with steps to repro.

@microsoft microsoft locked and limited conversation to collaborators Sep 15, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
config VS Code configuration, set up issues plan-item VS Code - planned item for upcoming settings-sync
Projects
None yet
Development

No branches or pull requests