|
1 | 1 | # codesync |
2 | 2 |
|
3 | | -Synchronize your changes across any number of devices. No need to commit, stash, copy-paste your changes when switching between devices (laptop, PC, tablet, etc.) |
| 3 | +Synchronize your changes across devices. No need to commit, stash, copy-paste your changes when switching between devices (laptop, PC, tablet, etc.). |
4 | 4 |
|
5 | | -Goal: Auto synchronize all of my code changes to speed up switching between my laptop and PC. |
| 5 | +Currently, I work both on my laptop and PC and regularly switch between them (switch to laptop at University or just want to work from my couch, switch to PC when doing some heavy testing/development. I couldn't find any quick and easy way to switch between devices without losing any progress (transferring edited/created/deleted files to other device) and it's pretty annoying to: |
| 6 | +`stash the changes using a git command => save to file as a patch => send to other device using some service (notion) => download, move to project folder => apply the patch by running a git command`. |
| 7 | + |
| 8 | +So I deciced to make this extension which hopefully solve this problem of mine. |
| 9 | + |
| 10 | +Requirement for the synchronization to work: |
6 | 11 |
|
7 | | -Requirement for the extension to work: |
8 | 12 |
|
9 | | -- Same branch |
10 | | -- Same commit |
11 | 13 |
|
12 | 14 | (both because of how Git internally works, e.g. `git apply` will fail if indexes are different) |
13 | 15 |
|
14 | 16 | TODO: |
15 | | - |
16 | | -- [ ] Synchronization should be separate for each project |
17 | | -- [ ] Each user can have multiple projects |
18 | | -- [ ] Synchronization can be done automatically every N seconds (auto) or manually (pressing buttons) |
19 | | -- [ ] Each user must have an account (auto-generated or linked via GitHub) |
20 | | -- [ ] User can confirm before applying new changes (confirm -> applied, cancel -> delete the changes) |
21 | | -- [ ] User can pause synchronization |
22 | | -- [ ] Synchronize staged, unstaged, tracked, untracked files |
| 17 | +- [x] (diff) Generate diff from staged, unstaged, tracked and untracked files |
| 18 | +- [ ] (auth) Add user authorization and authentication |
| 19 | +- [ ] (ext-ui) Implement extension UI for user login/registration |
| 20 | +- [ ] (ext-ui) Implement extension UI to allow manual two-way synchronization |
| 21 | +- [ ] (server) Allow users to create and manage projects in backend |
| 22 | +- [ ] (server) Implement synchronization for each projects in backend |
| 23 | +- [ ] (ext-ui) Implement extension UI for multiple projects |
| 24 | +- [ ] (market) Publish |
| 25 | +- [ ] ... |
23 | 26 |
|
24 | 27 | ## Features |
| 28 | +- [x] Diff for staged, unstaged, tracked and untracked files |
| 29 | +- [ ] Accounts |
| 30 | +- [ ] Multiple projects |
| 31 | +- [ ] Manual two-way synchronization |
| 32 | +- [ ] Auto synchronization |
25 | 33 |
|
26 | 34 | ## Requirements |
| 35 | +- Following should be same (Git won't allow otherwise): |
| 36 | + - project |
| 37 | + - branch |
| 38 | + - commit |
| 39 | +- VS Code: 1.63.0 or above (TODO: Lower) |
27 | 40 |
|
28 | 41 | ## Extension Settings |
29 | 42 |
|
|
0 commit comments