| <?xml version="1.0" encoding="ISO-8859-1"?> |
| |
| <!-- Copyright 2006 The Apache Software Foundation Licensed under the Apache |
| License, Version 2.0 (the "License"); you may not use this file except in |
| compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 |
| Unless required by applicable law or agreed to in writing, software distributed |
| under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES |
| OR CONDITIONS OF ANY KIND, either express or implied. See the License for |
| the specific language governing permissions and limitations under the License. --> |
| |
| <document> |
| |
| <properties> |
| <title>Source Code</title> |
| <author email="sebawagner@apache.org"> |
| Sebastian Wagner |
| </author> |
| </properties> |
| |
| <body> |
| |
| <section name="OpenMeetings Source Code"> |
| |
| <p> |
| OpenMeetings uses |
| <a class="external" rel="nofollow" href="http://subversion.tigris.org"> |
| Subversion |
| </a> |
| to manage its source code. |
| If you're new to Subversion, you can check out the |
| <a href="http://svnbook.red-bean.com/">online book</a> |
| about Subversion. |
| Note that we are currently using Subversion 1.1.x (there are separate |
| versions of the book covering 1.0 and 1.1). |
| </p> |
| <p> |
| To receive notice of commits to the repository subscribe to |
| <a href="mailto:openmeetings-commits@incubator.apache.org"> |
| openmeetings-commits@incubator.apache.org |
| </a> |
| by sending email to |
| <a href="mailto:openmeetings-commits-subscribe@incubator.apache.org"> |
| openmeetings-commits-subscribe@incubator.apache.org |
| </a> |
| . |
| </p> |
| |
| </section> |
| |
| <section name="Web Access to Subversion"> |
| |
| <p> |
| If you just want to browse the source code, you can use the |
| <a class="external" rel="nofollow" |
| href="http://svn.apache.org/viewcvs/incubator/openmeetings"> |
| ViewCVS web interface |
| </a> |
| to Subversion. This is current at all times. |
| </p> |
| |
| </section> |
| |
| <section name="Checking Out Code Using Subversion"> |
| |
| <p>Anyone can check code out of Subversion. You only need to specify |
| a |
| username and password to update the Subversion repository, and only |
| OpenMeetings committers can do that. |
| If you are a committer, are working from behind a firewall, or are |
| connected to the internet through a proxy server, please see the |
| sections |
| below for more information. |
| </p> |
| |
| <subsection name="Anonymous check out from Subversion"> |
| <p>Use a command like:</p> |
| <pre>% svn checkout |
| http://svn.apache.org/repos/asf/incubator/openmeetings </pre> |
| <p>Once you have OpenMeetings checked out you can update the source |
| by executing the following command from within the openmeetings |
| directory. |
| </p> |
| <pre> |
| % svn update |
| </pre> |
| </subsection> |
| <subsection name="Access from behind a firewall"> |
| |
| <p>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: |
| </p> |
| <pre> |
| % svn checkout |
| https://svn.apache.org/repos/asf/incubator/openmeetings |
| </pre> |
| |
| </subsection> |
| <subsection name="Access through a proxy"> |
| |
| <p>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.) |
| </p> |
| <p>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. |
| </p> |
| <p>Example : Edit the 'servers' file and add something like : |
| </p> |
| <pre> |
| [global] |
| http-proxy-host = your.proxy.name |
| http-proxy-port = 3128 |
| </pre> |
| |
| </subsection> |
| |
| <subsection name="Committer access"> |
| |
| <p>Everyone can access the Apache Podling Subversion repository via |
| HTTPS, |
| but OpenMeetings Committers must checkout the Subversion repository |
| via HTTPS. |
| </p> |
| <pre> |
| % svn checkout |
| https://svn.apache.org/repos/asf/incubator/openmeetings |
| </pre> |
| </subsection> |
| </section> |
| |
| <section name="Submitting Code Changes"> |
| <subsection name="Submitting a patch"> |
| |
| <p>If you make changes to OpenMeetings, and would like to contribute |
| it to the project, you should open a JIRA issue and discuss the |
| merits |
| of the proposal with the developer community. If there is agreement, |
| create a patch and attach it to the JIRA issue. |
| </p> |
| <p> |
| To create a patch, execute the svn diff command. This creates a patch |
| that |
| can easily be uploaded to a JIRA issue. A good name for the patch |
| includes |
| the JIRA issue name, e.g. OPENMEETINGS-104.patch. If there are several |
| patches |
| for the same JIRA issue, you might include your initials, e.g. |
| OPENMEETINGS-104.clr.patch |
| </p> |
| <pre> |
| % svn diff > OPENMEETINGS-104.clr.patch |
| </pre> |
| </subsection> |
| |
| <subsection name="Committing changes to subversion"> |
| <p> |
| To commit changes to the subversion repository, you must be an |
| OpenMeetings committer. See |
| <a href="get-involved.html">get involved</a> |
| for information on how to become a committer and how to set up your |
| password once you become a committer. |
| </p> |
| |
| <p> |
| Once your password is set, you can use a command like this to commit: |
| </p> |
| <pre> |
| $> svn commit --username your-username |
| Authentication realm: <https://svn.apache.org:443> ASF Committers |
| Password for 'your-username': your-password |
| </pre> |
| <p>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: |
| </p> |
| <pre> |
| $> svn commit --username your-username --password your-password |
| </pre> |
| <p>Remember to replace 'your-username' and 'your-password' with |
| your actual username and password on svn.apache.org. |
| </p> |
| |
| </subsection> |
| </section> |
| |
| <section name="Building Podling from Source"> |
| <p> |
| <!-- ***************** TBD ************************** --> |
| <!-- ***************** TBD ************************** --> |
| <!-- ***************** TBD ************************** --> |
| <!-- ***************** TBD ************************** --> |
| <!-- ***************** TBD ************************** --> |
| <!-- ***************** TBD ************************** --> |
| <!-- ***************** TBD ************************** --> |
| </p> |
| |
| </section> |
| |
| <section name="Using Subversion on Windows with cygwin"> |
| |
| <p> |
| If you use Subversion on Windows under cygwin, you may find that the |
| Subversion client automatically assigns the executable property to |
| non-executable files. In that case, you would see this at the bottom |
| of |
| an |
| <em>svn diff</em> |
| of the file: |
| </p> |
| <pre> |
| Property changes on: test/sql/derby/datastoreidentity/schema1.sql |
| ___________________________________________________________________ |
| Name: svn:executable |
| + * |
| </pre> |
| <p>This section explains the source of the problem and suggests some |
| actions to avoid it. |
| </p> |
| |
| <subsection name="Background"> |
| |
| <p>Subversion carries executable information in the built-in |
| property |
| called svn:executable. This property, unlike others, may be present |
| or absent, but it has no value. You can add it or delete it, but you |
| cannot change its value. |
| </p> |
| <p>In theory, Subversion ignores Windows file permissions and by |
| default |
| does not set svn:executable. However, cygwin svn acts like Unix svn and |
| determines the svn:executable property based on file permissions. |
| </p> |
| <p> |
| If you create a file from the cygwin command line, by default it is |
| executable only if the filename ends with .bat, .com or .exe, or if |
| its |
| content starts with #!. [This is what the doc says, but you may see -x |
| for all files.] If you create a file using a Windows tool, by default |
| its Windows permissions are executable by all. Cygwin interprets |
| the |
| Unix-style permissions this way as well. If the file is executable by all, |
| cygwin svn sets the svn:executable property on the file when you |
| invoke |
| <em>svn add</em> |
| . |
| </p> |
| </subsection> |
| <subsection |
| name="Removing existing executable properties from the repository"> |
| |
| <p>You can use svn propdel to remove the svn:executable property |
| from your |
| working copy. |
| </p> |
| <pre> |
| svn propdel -R svn:executable . |
| </pre> |
| <p>will recursively remove the svn:executable property from all of |
| the |
| files below the current directory. You can use this and commit the |
| files to clean the repository if necessary. |
| </p> |
| |
| </subsection> |
| <subsection |
| name="Preventing Subversion from adding unwanted executable |
| properties"> |
| |
| <p> |
| Windows/cygwin users who don't want to have to think about using |
| <em>svn |
| propdel |
| </em> |
| or |
| <em>chmod</em> |
| on each added file can use a non-cygwin |
| version of svn. The Subversion 1.2.3 Win32 binaries, downloadable from the |
| link at the bottom of |
| <a rel="nofollow" href="http://subversion.tigris.org/project_packages.html"> |
| http://subversion.tigris.org/project_packages.html |
| </a> |
| , appear to work |
| well. After installation add the svn.exe location to your Windows PATH |
| variable. If you are switching from cygwin svn to Win32 svn |
| </p> |
| <ol type="1"> |
| <li> |
| <p>Remove the subversion component from your cygwin installation |
| because when svn is invoked from a cygwin window, the cygwin |
| version is |
| found even if your cygwin/bin directory is later on the path. (In the |
| Select Packages window of the setup wizard, navigate to the |
| subversion |
| package in the Devel. category. Click on the status icon until Uninstall |
| is displayed. Click next and continue through the wizard until |
| installation |
| is complete.) |
| </p> |
| </li> |
| <li> |
| <p>Copy the servers file and the auth folder from the sygwin |
| ~/.subversion |
| directory to C:\Documents and |
| Settings\<user>\Application Data\Subversion used by Win32 |
| subversion. |
| </p> |
| </li> |
| </ol> |
| <p>Note that windows svn uses backslash as the path separator when |
| displaying file names. You cannot just copy and paste this file |
| name |
| to another svn command when running from within a cygwin shell. |
| You need to enclose the file name into double quotes. |
| </p> |
| <p>Alternatively, Windows users can set file permissions in Windows |
| Explorer. (Right-click on the top-level folder & select |
| Properties. |
| Select the Security tab. Click Advanced. Remove all instances of |
| Read & Execute from the Permission Entries. Click "Reset |
| permissions |
| on all child objects and enable propogations of inheritable |
| permissions". |
| Click Apply. OK. OK.) You will have to do this again when you do a clean |
| checkout to a new directory. |
| </p> |
| |
| </subsection> |
| </section> |
| </body> |
| </document> |