Almost all projects use source control systems such as SVN, CVS, GIT and Perforce. As a result, most production Roo projects will be managed by one of these systems. Its a best practice, which should be encouraged and made simple by the Roo command-line. So, when the Roo project is managed by source control, automatically mimic user actions when managing source code. Here are some examples of what can happen:
- when a new project is created, check to see if the directory is under source control, and if it is, add source folders or files to the source control system. Automatically "ignore" output folders and files as well as files that will always be modified at runtime (log files for example).
- if new source files are generated by the roo command line, "add" them to the source control. In the case of SVN, this will be the "svn add" command.
- if existing files are deleted by the user, the command line should "delete" any managed files from the source control system. In the case of SVN, this will be the "svn del" command.
- provide a command line option to add a Roo project that isn't under source control to source control.
This suggestion originates from the rails command line. You can specify "-c" for artifacts to be managed by SVN, or "-g" for files to be managed by GIT. As Roo becomes more complex in its generation capabilities and add-ins, it will simplify Roo a great deal if it can support source control systems.
This could be implemented through plugins, allowing other developers to add support for additional source control systems in the future.