ADA集成开发环境GNAT-GPS集成了CVS功能。其基本配置界面如下:
这里对ariane工程(一个新建的ADA库代号,google code地址http://code.google.com/p/ariane/)
(Sorry, with IME turned off, the rest of the article is to be in English)
This is a section inside the project preference which can be brought up by clicking on the appropriate item in the context menu of the project node in the project view.
Normally google code assigns to each user a user name (which should be the google account) and a password (a system generated password for google code purpose only). So when one first time accesses the code base through a client, authentication is requested. No exception to this ADA IDE. But fortunately, it seems the password only needs to be input once, and on a linux machine (should similarly apply to windows), once svn client with command line tool is installed (which means it's allowed to do svn operations by typing in commands starting svn in a linux terminal), one can use this IDE to talk to google code server through svn client without difficulty. The only thing needs to be done is specify the authentication information, the pair of user name and password. There is no way to do so with the user interface of the gnat-gps IDE, however the IDE is actually very powerful in that it allows users to write scripts in XML and Python to configure it and customize its behavior. In this simple case, we only need to modify XML code for Subversion setup located specifically in a file named (on ubuntu linux platform) /usr/share/gps/plug-ins/subversion.xml, the folder where the file is placed is for all gnat-gps plugins which are XMLs and Pythons that respectively declare and define the actions the IDE would take for these specific tasks.
There is only one place we need to change, which is in the following XML section.
<action name="generic_svn_commit" show-command="false" output="none" category=""> <shell output="">echo "Committing file(s) $2-"</shell> <shell>dump "$1" TRUE</shell> <external check-password="true">svn --non-interactive --non-recursive commit -F "%1" "$2-"</external> <on-failure> <shell output="">echo_error "SVN error:"</shell> <shell output="">echo_error "%2"</shell> </on-failure> <shell>delete "%2"</shell> <shell>Hook "file_changed_on_disk"</shell> <shell>Hook.run %1 null</shell> </action>
<external check-password="true"> svn --non-interactive --non-recursive commit -F "%1" "$2-" -username [email protected] -password somepassword </external>