Может быть, немного не по теме, но как насчет того, чтобы попробовать распределенную систему контроля версий, такую как git, bazaar или mercurial? Звучит так, как вам нужно.
Клиент может клонировать репо и делать коммиты на него локально, после чего вы можете слить его с основным репо, когда закончите. Таким образом, вы по-прежнему сохраняете всю историю от клиента, тогда как FTP не будет.