7 Jul 2003
Like most Web developers, I use FTP a lot. I also use CVS to manage the files on the sites I build. So here’s where the problem comes in. CVS creates a few files and directories alongside the directories and files that make up my Web site. So when I upload a site via FTP, there are CVS and .cvsignore files all over the site.
Currently, to get around this, I run a CVS Export command to make a clean copy of the site, without any CVS directories or files. I then upload that copy of the site to the server. There are several problems with this. When I use the Tortoise CVS client to run the export, empty directories are not exported. Empty directories are often cache directories for whatever application I’m developing. The files within them aren’t stored in CVS, so the export doesn’t end up creating the directories. I have to go and add them in manually.
I also hate to run an export just to get the latest copies of two or three directories that changed. It’s easier to just copy the files over from my projects directory.
So what I need is an FTP program that will let me filter the files that get uploaded. Anything called CVS or .cvsignore wouldn’t get uploaded. Anyone got an FTP client that does this?
Sure, if I was using Unix on my dev machine and I wanted to write something myself. I’m being lazy. I want a Windows GUI client that does it all for me already.
Can’t say I’ve seen any GUI programs that will do this. On the other hand: Sitecopy seems handy: http://www.lyra.org/sitecopy/ - there is a windows/cygwin port.
I recommend SmartFTP ( http://www.smartftp.com ). So far the best and most underappreciated FTP client for Windows I came across.
BTW: The filter works both with simple strings and regex.
CuteFTP has filters and lets you set them permanently for specific “sites.”
FTP Voyager ( http://www.ftpvoyager.com/ ) supports filters as well.
Just for the record, Python is a superb tool for script-style tasks on Windows. Since Python has an ftp module included in the standard library (“Batteries included”) it probably wouldn’t take very long to knock up a simple Python script to do this. Of course, if you haven’t learnt Python yet a GUI tool would probably be a lot quicker ;)
Adam Kalsey
Mobile: 916.600.2497
Email: adam AT kalsey.com
AIM or Skype: akalsey
©1999-2010 Adam Kalsey.
Content management by Movable Type.
Arve
July 7, 2003 5:43 PM
Wouldn’t a bit of clever shell scripting together with ncftpput do the job?