Are there version control and project management tools which work well with freelancing jobs, if I want to keep my customer involved in the project at all times?What concerns me is that repository hosting providers have their fees based on the number of users, which I feel is the number which will constantly increase as I finish one project after another. For each project, for example, I would have to add permissions to my contractor to allow him to pull the source code and collaborate. So how does that work in practice? Do I remove the contractor from the project once it's done? This means I basically state that I offer no support and bugfixes anymore. Or do freelances end up paying more and more money for these services?Do you use such online services, or you host them by yourself? Or do you simply send your code to your customer by e-mail in weekly iterations?
Version control and project management for freelancing jobs
project management;agile;version control;freelancing
The problem with a source control system that you use and give access to your clients is that they will often not use that SCM tool. eg. If you decide to use git, they may turn round and say sorry, we use svn or vice versa. In any case, do they really want to maintain your code in another repository? Chances are they'll want your code migrated to their existing scm and DB.So, a zip is probably the best - package up everything and send it to them. I understand you might want to offer them all the benefits of a SCM, but generally, they will take your zip, unpack it and import (ie checkin) the code to their system. All the benefits will be present, and they'll have the expertise to manage it a lot better than in a foreign tool.Nothing is stopping you from using any online SCM system to develop in of course.One more thing - when you've finished, what makes you think they won't continue to work on the code? If they come back to ask for some more work, you can't expect to continue where you  left off - if you did give them a SCM link, and they copied it internally, you'd have to start from scratch again, or with a fresh and updated version from them. The idea of storing all your code in a common repo is just not practical enough.