Suggestion: Allow upload to repository
By @shanalikhan
Before starting this feature, Settings Sync required code requires refactoring. You can take https://github.com/shanalikhan/code-settings-sync/pull/937 as a baseline for refactoring to start working.
Following are the feature i see for git sync.
1. It should ask either backup needs to be saved on Github Gist or simple Git Repository.
2. Once the User select the Git Repo, it should setup accordingly.
3. Provide user option to either use Github or GitLab and create a repository from there by their profile tokens.
4. By Download means, user can do `git pull` forcefully.
5. By Upload means, user can do `git push` forcefully.
6. Allow user to setup branches or profiles like `master` and `office` and keep the selected profile / branch in Sync Global Settings and download/ upload to that branch.
7. When user is switched to Gist, it should not upload the Git folder there.
8. Support Github and Gitlab Enterprise versions
9. Complete New UI with integrated with above features to allow users to change via UI
Originally by @smbkr
It would be useful to be able to upload the settings to a repo instead of a gist, the way that JetBrains IDEs sync, so that the changes could be versioned and rolled back as desired.
IssueHunt Summary
Backers (Total: $200.00)
-
boostio ($200.00)
Become a backer now!
Or submit a pull request to get the deposits!
Tips
- Checkout the Issuehunt explorer to discover more funded issues.
- Need some help from other developers? Add your repositories on IssueHunt to raise funds.
IssueHunt has been backed by the following sponsors. Become a sponsor
https://github.com/shanalikhan/code-settings-sync/issues/396#issuecomment-330372658
Thanks, will look into this later on.
Also like this idea.
I thought gists were repos.
Edit: I commented on this issue because I think it could be useful to merge when downloading instead of just clobbering the local configuration. Is this feature on the roadmap for this project? Would you consider a pull request?
Is this feature on the roadmap for this project?
Yes, but not in short time. Will work on it later on.
Would you consider a pull request?
Definitely, I will more happy to accept PR. But anyone wants to send PR it would be great to discuss as its currently tightly coupled with GIST logics.
Following are the feature i see for git sync.
- It should ask either backup needs to be saved on Github Gist or simple Git Repository.
- Once the User select the Git Repo, it should setup accordingly.
- Provide user option to either use Github or GitLab and create a repository from there by their profile tokens.
- By Download means, user can do
git pullforcefully. - By Upload means, user can do
git pushforcefully. - Allow user to setup branches or profiles like
masterandofficeand keep the selected profile / branch in Sync Global Settings and download/ upload to that branch. - When user is switched to Gist, it should not upload the Git folder there.
- Support Github and Gitlab Enterprise versions
@boostio funded this issue with $200. Visit this issue on Issuehunt
@shanalikhan funded this issue with $230. Visit this issue on Issuehunt
This feature is funded, anyone is welcome to work and get the money :smile:
@mortezaprk has started working. Visit this issue on Issuehunt
@shanalikhan funded this issue with $130. Visit this issue on Issuehunt
@mortezaPRK any update on this ? i can assist you if need any help
Thanks. I already do about 80% of the work. There are some bugs. It should be done by the end of next week :)
Sent from ProtonMail mobile
-------- Original Message -------- On Oct 11, 2018, 19:08, Shan Khan wrote:
@mortezaPRK any update on this ? i can assist you if need any help
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
Thats great, make sure you write the test cases. We need to decouple modules in order to implement repo sync rather then writing complete other logic for it.
It would be great you have send me PR with work in progress so i can see and evaluate it mean while you are doing else once all work is completed it would be difficult to change at end if we found any.
Sure, I'll send a PR tomorrow.
Sent from ProtonMail mobile
-------- Original Message -------- On Oct 11, 2018, 20:23, Shan Khan wrote:
Thats great, make sure you write the test cases. We need to decouple modules in order to implement repo sync rather then writing complete other logic for it.
It would be great you have send me PR with work in progress so i can see and evaluate it mean while you are doing else once all work is completed it would be difficult to change at end.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
I already do about 80% of the work
@mortezaPRK its been almost a month. It would be great if you can send work in progress PR so i can evaluate at least.
If i don't get the PR in a week. I will have to assign the paid issue to someone else.
I might be interested to looking into this
I might be interested to looking into this
@OrangeDrangon you can start work by opening the link from issue hunt and assigning the issue hunt ticket to yourself.
Anyone feel free to start working on it, this issue or any other.
Currently the bounties for 4 issues are above 500$.
See the article here. https://dev.to/shanalikhan/settings-sync-paid-issues---fix--earn---nov-18-1ooj
Is someone working on it? I can finish first version tomorrow. I have support for detection of gist vs repo url. For now only github, but gitlab API is not so hard to integrate.
@wasikuss no you can start working on it.
I can finish first version tomorrow. I have support for detection of gist vs repo url
How do you intend to do it, Have a look on steps mentioned in first post - We need to just create git init and stage entire user folder.
git init isn't required. Both Github and Gitlab APIs allows to publish commits with files directly.
We would want to git init locally at least though, right? This would allow rolling back the user config to a specific commit, which is one of the main advantages of putting the config in a repo instead of a gist.
The main goal for repository is to create Git Repo, not tightly coupled with github.
Once the repo with git init or creating locally will provide user to connect with any git client.
If you look on the steps, it main focus to create git repository and do pull / push to that repo and then provide some interface options to connect to github.
So sync with local repo only wraps credentials and git push/pull for local repository allowing upload/download sittings but reverting will be done manually?
@shanalikhan ok, using any client/server convince me to use local repo. but I see upload/download actions acts only as alias for regular git commands and it's only for convenience ( to not enter manually to local repo )?
but reverting will be done manually?
Yes, branch switching will be done if you have multiple environments in single repository.
only as alias for regular git commands and it's only for convenience
Exactly !
Ok, now it's more clear how it should work. I'll do PR in 1 or 2 days and then we can discuss required changes for local git support.
I had some problems with testing (especially with --user-data-dir, yes I saw Microsoft/vscode#49306 ) so one more day is needed. First time usage, committing settings, a pushing it (with opt-out) to remote repository and switching between gits and repo already works. Currently I'm working on downloading settings and resolving egde cases (conflicts, etc).
btw, IntelliJ repository settings plugin lets user resolve conflicts in case of impossible auto merge.
I saw similar behavior while using gists (manual change + download).
Issue is available for bounty worth $200.
https://issuehunt.io/repos/47984369/issues/413