All Projects → marcus67 → gitsynchista

marcus67 / gitsynchista

Licence: GPL-2.0 license
Python tool for Pythonista to synchronize local files with a Github repository hosted on a WebDav server

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to gitsynchista

WebDavClient
Asynchronous cross-platform WebDAV client for .NET Core
Stars: ✭ 98 (+262.96%)
Mutual labels:  webdav, webdav-client
webdav client
A dart WebDAV client library
Stars: ✭ 30 (+11.11%)
Mutual labels:  webdav, webdav-client
Filestash
🦄 A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...
Stars: ✭ 5,231 (+19274.07%)
Mutual labels:  webdav, webdav-client
webdav-js
A simple WebDAV client written in JS for use as a bookmarklet, or integration into a web server.
Stars: ✭ 51 (+88.89%)
Mutual labels:  webdav, webdav-client
JFileSync3
File Syncing with encryption and compression (partly) compatible with encfs / boxcryptor (classic) volumes for local folders and WebDAV backends. Based on JFileSync - hence the name.
Stars: ✭ 20 (-25.93%)
Mutual labels:  synchronization, webdav
Remotestorage.js
⬡ JavaScript client library for integrating remoteStorage in apps
Stars: ✭ 2,155 (+7881.48%)
Mutual labels:  synchronization
Concurrent
Functional Concurrency Primitives
Stars: ✭ 206 (+662.96%)
Mutual labels:  synchronization
Multiotp
multiOTP open source strong two factor authentication PHP library, OATH certified, with TOTP, HOTP, Mobile-OTP, YubiKey, SMS, QRcode provisioning, etc.
Stars: ✭ 173 (+540.74%)
Mutual labels:  synchronization
K8s Wait For
A simple script that allows to wait for a k8s service, job or pods to enter a desired state
Stars: ✭ 172 (+537.04%)
Mutual labels:  synchronization
go-sync
🔁 CLI synchronization utility to sync project files and databases for your local project with SSH and Docker support
Stars: ✭ 61 (+125.93%)
Mutual labels:  synchronization
Syncsettings
Sync Settings - The cross-platform solution to keep Sublime Text configuration synchronized
Stars: ✭ 240 (+788.89%)
Mutual labels:  synchronization
Pevents
Implementation of Win32 events for *nix platforms, built on top of pthreads.
Stars: ✭ 200 (+640.74%)
Mutual labels:  synchronization
Etesync Web
An EteSync web client
Stars: ✭ 183 (+577.78%)
Mutual labels:  synchronization
Abool
💡 Atomic Boolean library for cleaner Go code, optimized for performance yet simple to use.
Stars: ✭ 225 (+733.33%)
Mutual labels:  synchronization
Etesync Dav
This is a CalDAV and CardDAV adapter for EteSync
Stars: ✭ 176 (+551.85%)
Mutual labels:  synchronization
Volumetriccapture
A multi-sensor capture system for free viewpoint video.
Stars: ✭ 243 (+800%)
Mutual labels:  synchronization
Java Concurrency Examples
Java Concurrency/Multithreading Tutorial with Examples for Dummies
Stars: ✭ 173 (+540.74%)
Mutual labels:  synchronization
Llvs
Low-Level Versioned Store
Stars: ✭ 193 (+614.81%)
Mutual labels:  synchronization
Syncthingtray
Tray application and Dolphin/Plasma integration for Syncthing
Stars: ✭ 234 (+766.67%)
Mutual labels:  synchronization
Backbone Redux
Easy way to keep your backbone collections and redux store in sync.
Stars: ✭ 185 (+585.19%)
Mutual labels:  synchronization

gitsynchista icon

gitsynchista

Python tool for Pythonista to synchronize local files with a Github repository hosted on a WebDav server.

Basic Functionality

The tool compares a local directory tree of Pythonista with a remote directory tree located on a WebDav server. It works very well (and sofar has only been tested with) the iOS app 'working copy'. The comparison is done by comparing the timestamps in both trees. New and updated files are transferred if required. So far there is no support for file deletion which should be done manually on both systems before synching. Synching of certain files can be suppressed using ignore files.

Extented GUI Functionality

The tool can be called in GUI mode. The GUI offers additional functionality. Upon start it shows list of repositories configured for gitsynchista with their respective status.

The user selects entries from the list to either show a modfification summary for each repository

and trigger the synchronization. After synchronization the status will be updated automatically.

Suport for "working copy"

The GUI mode has special support for the iOS app working copy. If at least one repository is configured to be synchronized with the WebDAV server of working copy gitsynchista will activate the WebDAV server automatically by using published url-schemes of working copy. The main window will contain addtional elements to reflect the support (see below).

Also, the user will be able to open a selected repository in working copy directly from the gisynchista GUI by pressing a dedicated button (see screenhot above).

Support for "pyzipista"

The GUI mode also has a special support for the Pythonista tool pyzipsta. When an installation of pyzipista is detected (this is basically done by checking if the script ../pyzipista/pyzipista.py exists with respect to the location of the script gitsynchista.py) the GUI starts up with an additional icon and an additional button (see next screenshot).

The border of the pyzipista button at the bottom of screen shows three different colors denoting the state of the respective self-extracting archive:

  • black: The repository is not configured for pyzipista, which is to say there was no pyzipsita configuration file found in either the base directory of the repository or the etc subdirectory.
  • green: The repository is configured for pyzipista and the self-extracting archive is up-to-date.
  • red: The repository is configured for pyzipista and the self-extracting archive is not up-to-date.

In the latter case the button is active and can be used to update the self-extracting archive.

Prerequirements

You need to have the Python WebDav client installed. See my clone at https://github.com/marcus67/easywebdav. Place the scripts into the site-packages directory. And, of course, you need to have a WebDav server. I'm using the iOS app working copy but it should be possible to configure any other WebDAV server.

Installation

The source code is available as a self-extracting Python script. See file build/gitsynchista_zip.py. Download this file and follow the instructions contained therein.

Configuration

The tool gitsynchista itself does not require any configuration. However, the user will have to provide a small configuration file for each repository which needs to be synchronized. In its simplest form (which applies to a local synchronization with working copy) the configuration can be as simple as follows:

[webdav]
epoch_delta = 3600

[repository]
name = SOME_LOGICAL_NAME
local_path = ../LOCAL_DIRECTORY_NAME
remote_path = /REMOTE_DIRECTORY_NAME

It should be placed in some sub directory (preferably etc) of the application to be synchronized. For a detailed description of the configuration file see the commented sample configuration file.

Feedback and Questions

For feedback (bug reports) open an issue at GitHub. If you have questions about the tool see the Pythonista Forum.

Have fun!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].