Munkey

Uses git to mirror an ftp server and track local changes. These can then be pushed back up to the ftp server or additional changes pulled down from the ftp server.

Solves my problem of working on a website locally but needing to interact with other developers editing directly the server via ftp.

This is not very efficient yet since it downloads all the (non-.gitignore’d) files each time.

Note: Depends on net-ftp-list gem so be sure to install that as well

Usage

munkey clone [–ignore=ignoresfile] usr:pwd@host/dir [dst]

munkey pull [–no-merge] [–full-download] - pulls in new changes from ftp

munkey push - pushes changes back into ftp server. Important to have pulled

recent changes from ftp since munkey will overwrite locally
modified files.

Caveats

  • Gitignore support doesn’t understand inverse (!…) lines – patches welcome

  • Probably doesn’t work on Windows (or any non-unix platform)