Skip to content

Switch Between One-Way and Two-Way Sync #16

@schubmat

Description

@schubmat

General

When connecting a remote git repository a user should be able to configure the sync method. Available alternatives should be:

  • One-Way sync
  • Two-Way sync
Note: Resolve Merge Conflict
  • You only need to figure out, how to detect all conflict files. IMHO grep will help
    • git checkout --ours filename.c -- commit our applied changes
    • git checkout --ours filename.c -- commit the changes applied from the remote repository
    • git add filename.c
    • git commit -m "using ours"

One-Way sync (Non-Default) - CUSTOM-MADE ➡️ remote git

  • All files created in CUSTOM-MADE will be committed and pushed to git
  • Save leads to ''commit'' and ''pull''
    • merge conflicts will be resolved by overwriting changes from git and replacing them with files from CUSTOM-MADE (local changes), see above

One-Way sync (Non-Default) - CUSTOM-MADE ⬅️ remote git

  • All files created in CUSTOM-MADE will be committed and pushed to git
  • Pull happens directly after login
    • merge conflicts will be resolved by overwriting local changes and replacing them with files from git, see above
  • Files can be saved, however, a note is going to be displayed that changes coming from the remote repository will overwrite saved changes and changes will not be synced back to the server.

🔴 🔴 🔴 Two-Way sync (Default) - CUSTOM-MADE ⬅️ ➡️ git 🔴 🔴 🔴 --- Should be implemented at first

  • Pull happens directly after login
  • Save leads to ''commit'' and ''pull''
    • If merge conflict pops up, ''push'' activities will be halted and files will be invalidated. User receives a notification. Subsequently, the files will be shown in the project as they are, this includes the merge conflict notes. Thus, the user can open the editor and fix the merge conflict.

Sync Configuration

  • A corresponding drop-down menu needs to be integrated into the sync configuration menu.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions