Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MySync

A simple, safe, and user-friendly two-way synchronization tool.

Status

At this point, this repository is little more than a hello-world.

Proposed Operation

Commands

Action Description Example
MySync Clone Clone a directory (Known as the origin) into the current directory (known as the local repository) MySync Clone o:\myfiles\myphotos
MySync Sync [-i] [-push] [-pull] [-checksum] [-forcelock] Synchronizes any files that have changed between the origin and local repository. Conflicts are ignored by default, and will keep appearing on each subsequent Sync, until they are resolved using one of the arguments: -i, -push, or -pull. MySync Sync
  Options:  
  -i                  interactive conflict resolution, where you can choose
                    to push (to origin), pull (from origin), or ignore
  -push           all conflicts resolved by pushing changes from the local
                    repository to the origin. (not used with -i)
  -pull            all conflicts resolved by pulling changes from the origin
                    to the local repository. (not used with -i)
  -checksum   This will perform a deep comparison, where it compares
                    not only by dates and size, but by file checksums.
  -forcelock   This will remove the [origin]/.mysync/.lock file and create
                    a new .lock file to process the sync.

Artifacts

Artifact Description
.mysync This is a directory that exists in the root of both the origin and local repository
     * in the origin,
          * .lock file - persists while one of the local repositories is synching files
          * YYYYMMDD_changelog.txt file(s) – to tell us what was changed in each sync
          * (optionally) YYYYMMDD_conflicts.zip - if any conflicting files were overwritten by a file in a repository,
                they will be placed in this zip.
          * (optionally) YYYYMMDD_retains.zip – if there is a file that matches a pattern in the .mysyncRetain
                    file, and it is being overwritten in the origin, then it will be placed in this zip.
     * in the local repository,
          * LastCommonSnapshot.xml – contains the snapshot that represents the last common set of files
                between the origin and repository.
          * YYYYMMDD_changelog.txt file(s) – to tell us what was changed in each sync
          * (optionally) YYYYMMDD_conflicts.zip - if any conflicting files were overwritten by a file in the origin,
                they will be placed in this zip.
.mysyncIgnore Placed in the root of the origin, this works like a .gitignore
.mysyncRetain Placed in the root of the origin, this tells the MySync process which files to retain (so that past versions of the file are preserved in the YYYYMMDD_retains.zip files).

Snapshots

Snapshots

Action Table

Local Repository Origin Action
No Change No Change None
No Change Deleted Pull (delete from local repository)
No Change (No File) Created Pull (copy on local repository)
No Change Modified Pull (copy to local repository)
Deleted No Change Push (delete from origin)
Deleted Deleted None
Deleted Modified Conflict
Deleted Created Not Possible
Created Created Conflict (if different) or None (if same)
Created No Change (No File) Push (copy to origin)
Created Modified Not Possible
Created Deleted Not Possible
Modified No Change Push (copy to origin)
Modified Modified Conflict (if different) or None (if same)
Modified Deleted Conflict
Modified Created Not Possible

About

A simple, safe, and user-friendly two-way synchronization tool.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages