What is BitLift?

BitLift is an upload tool to keep your web projects on your servers in sync with your local files. BitLift is a command-line tool written in Python, and the workflow is inspired from version control systems like Git, Bazaar or Mercurial. Supported protocols are FTP and SFTP.

Environments

The BitLift workflow

The workflow of BitLift is inspired by popular version control systems like Git, Bazaar or Mercurial:

$ bl.py init test     # Initialize test database.
$ bl.py init prod     # Initialize prod database.

... editing files ...

$ bl.py push test     # Upload changes to test environment.
$ bl.py push prod     # Upload changes to production environment. 

Design goals

  • Easy to use
  • More than one remote locations per project must be possible
  • Must work side-by-side with Git, Bazaar or Mercurial
  • Keep settings bound to the projects, not to the machine
  • Must support all important protocols, also without root access

Features of BitLift

  • Supports FTP and SFTP
  • On-the-fly rename rules
  • On-the-fly chmod rules (if supported by protocol)
  • Changesets are calculated with modification times and MD5 hashes of the file content
  • Tracking file renames
  • Works on Linux, Mac and Windows

Sounds nice, but why not just use Git, Bazaar, rsync...?

Git, Bazaar, etc. are Version Control Systems. BitLift is a simple but effective upload tool for web projects. It works with FTP which is still important in many cases. Bazaar does support FTP, but Git does not, neither does rsync. You can use the version control system of your choice while uploading is taken care of by BitLift.

BitLift supports on-the-fly renames. This allows you to, for example, create several config files for different environments. Let's say you have a config.php that looks different on your test and production environment. Then you simply create a config-test.php and a config-prod.php and tell BitLift to rename the proper file to config.php while ignoring the other.

In summary BitLift takes care of three tasks:

  • Upload changed files
  • Rename files
  • Set file permissions

Get in touch

  • Fork the code from GitHub.
  • Join the mailing list.
  • Contact me at bitlift at serenethinking dot com.