We just started a large Joomla project with a local company (the company is located here in Montreal). The project consisted of customizing Joomla to fit the needs of a large NGO (we needed to create many extensions). In the first meeting that was held last week, we discussed with the company executives the project requirements – we understood the business of the organization (understanding the underlying business is very important for collecting the right project requirements) and we worked with the project manager to estimate the tasks. We then met with the IT manager, who made us acquainted with the technical environment that we needed to work in. He told us that they use VPN to access their environment, and that they use SVN for committing changes. We said that using VPN is a given for such a project, but that we can’t use SVN from the get-go when developing the website.
“You can’t use SVN? Why not?” The manager responded.
We said it’s because working on a Joomla website is not only about creating and uploading files, and we gave him the following example:
- We are using SVN in the development of the Joomla website.
-
We create an extension (for example a component), we zip it, and then we install it on the Joomla website using the backend extension installer.
-
The Joomla installer will unzip the extension to a temporary folder, and then will move it to the right folder under the Joomla website. It’ll also create an entry in the database for that extension.
-
Since the files belonging to that extension were not committed using SVN, then they are not part of the SVN repository, which means that technically, they do not exist when it comes to the versioning system (be that SVN, Git, or CVS).
We explained that this limitation is very common to Joomla development and that all the methods devised to overcome it were not reliable (including using hooks and 3rd party Joomla SVN plugins).
So the IT manager asked us a second question: “OK – so what do you do if two of your programmers are working on the same file at the same time?” We answered that at the beginning of the project, this will not happen, because each person will be working on a specific extension and the project doesn’t consist of touching the Joomla core (so there’s no way two of us would be working on the same file) – and even if it does, we will be very careful not to overwrite each other’s changes. This answer lead to another question: “Does that mean that once the project is no longer in its beginning, you will be able to use SVN?”
We answered that once all the extensions are created and installed, we can then create the repository and we can start using SVN. So the time to use versioning when developing a Joomla website is when the creation of all the extensions is done – and all what’s remaining is the shaping, enhancement, and bug fixing of these extensions.
The IT manager was satisfied with our answer and agreed to give us the go-ahead to work in this hybrid Non-SVN/SVN development environment.
If you want to develop a large Joomla website and you want to use a versioning system then consider the above – using SVN (or any other versioning tool) is not possible until all the extensions are created (they don’t have to be done, they just have to be created). If you need further explanation/clarification on the subject or if you just need help on your project, then why not get in touch? We know our Joomla and we know how to answer any question on Joomla, we’re fast, we’re reliable, and our fees are quite affordable! What are you waiting for?
[…] SVN to handle the development on large websites. We use Tortoise SVN client for this purpose. Check this post to know when we can/cannot use SVN to work on a Joomla […]