Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A simple tool for synchronizing local project (files) to remote server.

Project Description
Project Sync
=======================

## Introduction

#### What

A simple tool based on `rsync` for uploading / synchronizing local project
(files) to remote server.

#### Who
For people who want to work on a project locally (on your laptop) and sync the files
to remote server. For example, developing locally and executing remotely.

#### Why
`rsync` is flexible and powerful, but flags and options are way too complex for
memorizing.

## Installation

```
$ pip install project-sync
```

This will install a command line tool `psync`, the usage of which is described below.

## Usage


1. Run `psync` under project root to generate initial config file (`.psync`).
```
$ cd ~/Code/demo_project
$ psync
```
It will generate the config interactively:

```
You are not in a project (no .psync found)!
Generate .psync to current directory (/Users/lazywei/Code/demo_project) [Y/n]? [Y]: Y
Config will be generated at /Users/lazywei/Code/demo_project:
---
Remote path [~/remote/path]: ~/remote/path
SSH host [ssh_host]: aws_playground
SSH username or enter '-' to skip [ssh_user]: -
Files or folders to ignore (separated by space) [ ]: .git .psync
ignores:
- .git
- .psync
remote: ~/remote/path
ssh:
host: aws_playground
username: null

---
Project root is now: /Users/lazywei/Code/demo_project
```

2. Run `psync` under any nested subfolders of the project root to sync the project.
```
$ psync
Running:
rsync -e ssh -ruaz --exclude .git --exclude .psync --rsync-path mkdir -p ~/remote/path && rsync /Users/lazywei/Code/demo_project aws_playground:~/remote/path
--- Sync Finished ---

$ ssh aws_playground "ls -a ~/remote/path/demo_project"
. .. README
```

3. Run `psync watch` to watch any modification under the project root and perform sync automatically.

### Usage Demo

![Usage Demo](demo-usage.gif)

### Config Options

The config (`.psync`) is a YAML file. You can edit it after initial generating.

- `ignores`: an array contains all the files for folders to exclude by `rsync`
- `ssh`:
- `host`: SSH Host
- `username`: SSH username, `null` to ignore this (for example, when you set this in `~/.ssh/config` already)
- `remote`: where to sync on remote server

## Contributions

This project is currently in WIP stage; any discussion, bug report and PR are more than welcome.

## License

psync is available under the MIT license. See the LICENSE file for more info.


Release History

Release History

This version
History Node

0.2.0

History Node

0.1.2

History Node

0.1.1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
project_sync-0.2.0-py2.py3-none-any.whl (7.6 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Jan 13, 2017
project-sync-0.2.0.tar.gz (4.6 kB) Copy SHA256 Checksum SHA256 Source Jan 13, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting