I am following up on a question I asked some time ago (Staging / Production w/ common DB and Assets). I am now running a few Craft sites for clients with local test environments where changes are made and these updates are then pushed to client's live or staging environments.
The issue I'm having is that via Transmit, syncing files between these environments is exceeding cumbersome. Even with my 300/100Mbps direct fiber connection and a dozen or so ignore commands, a sync still takes around 30 minutes to scan for changes and I never feel entirely secure that I'm capturing everything and not overwriting something. I have tried to just sync the assets and templates folder, but this can still take ages and feels pretty kludgy (what happens when I need to update Craft itself, for example).
The result is that I keep getting out of sync, causing more headaches.
I'm wondering if people could share their deployment strategies. Are you just using version control via something like Git to push changes between environments? Is deploying via FTP just a bad idea for software as complex as Craft?