chiliproject/chiliproject — pull request #190 by kikito (2012-04-28 00:35:49+00:00)
Title: Scm refactoring

Hi there,

I've refactored the code inside lib/scm. This refactoring does 3 main things:

* When downloading a file via the repository view, a temporary file is used. This decreases the download time **dramatically** on big files - A 20MB file took 4 minutes to start downloading on my system, and now it starts almost immediately.
* Adapters behave more cohesively now. For example, the error recovery is abstracted to the abstract adapter (on the current implementation, SVN returns nil on error, while mercurial throws an exception). In general, now it's easier to change one setting and modify how all adapters work.
* Passwords are removed from all log messages

Since most of the stuff I did was moving code around, there was little to change in the way of tests. All of them pass. I've modified very little public methods, so this should be very backwards-compatible.

Disclaimer: I've been using the subversion and git repositories in a production server for some time now with no issues and very happy users downloading 40MB files from their repos. I'm pretty confident that the other SCMs will also work (the tests pass) but I have not personally used them in production.