Overview
ODE uses Subversion to manage its source code. Instructions on Subversion use can be found here.
Main repository
Web Access
1.X branch (Stable)
http://svn.apache.org/repos/asf/ode/branches/APACHE_ODE_1.X
Trunk (Development)
http://svn.apache.org/viewvc/ode/trunk/
or via Fisheye (hosted by Cenqua/Atlassian)
Anonymous access
ODE source can be checked out anonymously with this command:
$> svn checkout http://svn.apache.org/repos/asf/ode/trunk ode
Once you have ODE checked out you can update the source by executing the following command from within the ode directory.
$> svn update
Once you've got the code you'll probably want to build it; for instructions see Building Ode.
Access from behind a firewall
For those users who are stuck behind a corporate firewall which is blocking http access to the Subversion repository, you can try to access it via HTTPS:
$> svn checkout https://svn.apache.org/repos/asf/ode/trunk ode
Access through a proxy
The Subversion client can go through a proxy, if you configure it to do so. First, edit your "servers" configuration file to indicate which proxy to use. The files location depends on your operating system. On Linux or Unix it is located in the directory "~/.subversion". On Windows it is in "%APPDATA%\Subversion". (Try "echo %APPDATA%", note this is a hidden directory.)
There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.
Example : Edit the 'servers' file and add something like :
[global] http-proxy-host = your.proxy.name http-proxy-port = 3128
Submitting a Patch
If you make changes to Ode, and would like to contribute the to the project, you should create a patch and post it to the Ode JIRA issue tracker. To create a patch, simply execute the following command:
$> svn diff > your-changes.patch
Developer Access
Everyone can access the Ode Subversion repository via HTTPS, but Ode Committers must checkout the Subversion repository via HTTPS.
$> svn checkout https://svn.apache.org/repos/asf/ode/trunk ode
To commit changes to the repository, you must set your password on the Apache Subversion server. To set your password, use ssh to connect to svn.apache.org, and enter the command '''svnpasswd'''. This will prompt you to enter a svn password of your choice (pick a safe password). Now, now your are ready to commit changes using your username/password. Execute the following command to commit your changes (svn will prompt you for your password)
$> svn commit --username your-username Authentication realm: <https://svn.apache.org:443> ASF Committers Password for 'your-username': your-password
You can also pass your password on the command line directly, but this is a security problem on multiuser unix computers (the command line arguments are available via the ps command). Here is the command if you are Windows or a single user unix computer:
$> svn commit --username your-username --password your-password
Remember to replace 'your-username' and 'your-password' with your actual username and password on svn.apache.org.
Subversion client config
Add this to your subversion client configuration file:
Note: make sure the settings are merged into the appropriate section if it already exists,
as duplicate section names can cause problems.
Possible locations of your subversion client configuration
- Windows: C:\Documents and Settings\yourname\Application Data\Subversion\config
- Linux: ~/.subversion/config
Note: The names of svn keywords that are substituted in files may not match the SVN keywords in this config file. This is because a number of SVN keywords have alternate names that can be used. For example the "Revision" keyword may be specified as "Rev" and "LastChangedRevision" and can be used interchangably. This file uses the standard Subversion Keywords, not their alternate forms for clarity and consistency with the Subversion config files used by other ASF projects. This config file does not need to be changed to use the alternate forms for the alternate forms to be able to be used. For further information on Subversion keywords see http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.3.4.
[miscellany] global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store build dist target enable-auto-props = yes [auto-props] *.c = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL *.cpp = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL *.h = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL *.dsp = svn:eol-style=CRLF *.dsw = svn:eol-style=CRLF *.sh = svn:executable;svn:eol-style=native;svn:keywords=Date Revision *.cmd = svn:mime-type=text/plain;svn:eol-style=CRLF *.bat = svn:mime-type=text/plain;svn:eol-style=CRLF Makefile = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL *.obj = svn:mime-type=application/octet-stream *.bin = svn:mime-type=application/octet-stream *.bmp = svn:mime-type=image/bmp *.class = svn:mime-type=application/java *.doc = svn:mime-type=application/msword *.exe = svn:mime-type=application/octet-stream *.gif = svn:mime-type=image/gif *.gz = svn:mime-type=application/x-gzip *.jar = svn:mime-type=application/java-archive *.jelly = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.jpg = svn:mime-type=image/jpeg *.jpeg = svn:mime-type=image/jpeg *.pdf = svn:mime-type=application/pdf *.png = svn:mime-type=image/png *.tgz = svn:mime-type=application/octet-stream *.tif = svn:mime-type=image/tiff *.tiff = svn:mime-type=image/tiff *.zip = svn:mime-type=application/zip *.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.xml = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision *.ent = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.dtd = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.vsl = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.xsd = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision *.xsl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision *.wsdl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date Revision *.htm = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date Revision *.html = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date Revision *.css = svn:mime-type=text/css;svn:eol-style=native;svn:keywords=Date Revision *.js = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.jsp = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.java = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.properties = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision *.sql = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date Revision
To verify the auto-props processing is working you can test adding a file without committing it (Windows example):
C:\projects\Ode>echo testdata>test-auto-props.xml C:\projects\Ode>svn add test-auto-props.xml A test-auto-props.xml C:\projects\Ode>svn proplist test-auto-props.xml Properties on 'test-auto-props.xml': svn:mime-type svn:keywords svn:eol-style C:\projects\Ode>svn propget svn:mime-type test-auto-props.xml text/xml C:\projects\Ode>svn propget svn:keywords test-auto-props.xml Date Author Id Revision HeadURL C:\projects\Ode>svn propget svn:eol-style test-auto-props.xml native C:\projects\Ode>svn revert test-auto-props.xml Reverted 'test-auto-props.xml' C:\projects\Ode>del test-auto-props.xml
If you didn't get the results above, double check that the following line in the miscellany section is set and not commented out or set elsewhere.
enable-auto-props = yes