Layout of Matlab Subversion Repository
Date: 2007-06-29 10:11:48 CEST
I’m working for a company, which has a Subversion Repository fort its Matlab code. The company produces different machines and the Matlab routines are mainly used for testing and measuring properties of the machines after their assembly. At present, we have about 1000 mfiles spread over different folders. We want to reorganize the structure of the folders but we are not really sure how to do this best.
The current structure of the repository is as follows: In the directory trunk, there is a subdirectory for each machine. Within these subdirectories, no fixed structure exists.
Our main problem is that functions from different directories are calling other functions from all other directories in a very chaotic way. These calls are also done across the directories of the different machines. For example, a function, which resides in directory trunk/machine_a/… sometimes calls a function of trunk/machine_c/. Due to this, you have to add the path trunk with all its subdirectories to your Matlab path, to be able to use all the functions of the repository. Apart from the fact that our Matlab path is incredibly huge, there are confusions with the names of the mfiles. Since we do not have naming conventions, sometimes two different functions in different directories have the same name and it depends on the order of the Matlab path, which one will be called.
I suggested creating an extra subdirectory in trunk, which contains all the functions, which are called by other functions. The problem that arises is that in Matlab there is no real distinction between applications and functions. Each mfile can be a standalone application (after compilation with mcc) but can also serve as a helper function of another application. Sometimes we start to design a function as an application and afterwards someone else recognizes that he can use this function as part of his application.
I assume that many universities and companies have the same problem, so I wanted to ask if there is a good solution to the problem above.
Thanks for all help in advance!
This is an archived mail posted to the Subversion Users mailing list.