The development source code for Gwydion Dylan, Open Dylan, and collections of Dylan libraries and example code is stored in a Subversion repository. For developers, the base URI of the repository is
svn+ssh://username@svn.gwydiondylan.org/scm/svn/dylan
For example, to check out gwydion/ (Gwydion Dylan) from the trunk, you can execute:
$ svn co svn+ssh://jones@svn.gwydiondylan.org/scm/svn/dylan/trunk/gwydion gwydion
To check out the fundev-2-1-jam branch of Open Dylan,
$ svn co svn+ssh://jones@svn.gwydiondylan.org/scm/svn/dylan/branches/fundev-2-1-jam/fundev fundev
You could also check out the entirety of trunk:
$ svn co svn+ssh://jones@svn.gwydiondylan.org/scm/svn/dylan/trunk gd
For non-developers, the base URI to check out is
svn://anonsvn.gwydiondylan.org/scm/svn/dylan
as described on the downloading page.
The repository layout is more-or-less conventional for Subversion repositories. The top level contains three directories:
The currently active branches are:
We use the CVSZilla tool to track development "threads". CVSZilla associates each commit to the repository with a Bugzilla entry, and adds commit log entries as comments to the associated bug(s). The CVSZilla database can also be searched in various ways.
Most development work should be preceded by the filing of a bug or enhancement requrest in Bugzilla. Small changes can be vetted for comment by attaching patches to the bug and bringing it to the attention of other developers. (Larger development projects should be associated with a branch, allowing it to be reviewed before it is merged back to trunk/.
When changes are comitted, the first line of the commit log must be of the form:
Bug: bug-number ...
so that CVSZilla can annotate the bug(s).
If a commit is a one-off change (not part of a development thread) and doesn't fix a particular bug, you can use one of the general development jobs. In this case the first line of the commit log should look like:
Job: job-name ...
Unlike CVS, Subversion does not convert line-ending styles unless it is asked to; otherwise file contents are left alone no matter on what platform you do a checkout. To ensure that text files get LF line-endings on Unix-line platforms and CRLF line-endings on Win32, you need to add svn:eol-style properties to text files.
The easy way to ensure that new files are added with this property present is to use the Subversion auto-props feature. In your ~/.subversion/config file you'll find commented-out configuration entries for enabling auto-props. For example,
### Section for configuring miscellaneous Subversion options. [miscellany] ### Set enable-auto-props to 'yes' to enable automatic properties ### for 'svn add' and 'svn import', it defaults to 'no'. ### Automatic properties are defined in the section 'auto-props'. enable-auto-props = yes ### Section for configuring automatic properties. ### The format of the entries is: ### file-name-pattern = propname[=value][;propname[=value]...] ### The file-name-pattern can contain wildcards (such as '*' and ### '?'). All entries which match will be applied to the file. ### Note that auto-props functionality must be enabled, which ### is typically done by setting the 'enable-auto-props' option. [auto-props] *.bat = svn:mime-type=text/plain;svn:eol-style=native *.bmp = svn:mime-type=image/bmp *.c = svn:mime-type=text/plain;svn:eol-style=native *.css = svn:mime-type=text/css;svn:eol-style=native *.cpp = svn:mime-type=text/plain;svn:eol-style=native *.cxx = svn:mime-type=text/plain;svn:eol-style=native *.dylan = svn:mime-type=text/plain;svn:eol-style=native *.dylgram = svn:mime-type=text/plain;svn:eol-style=native *.el = svn:mime-type=text/plain;svn:eol-style=native *.gif = svn:mime-type=image/gif *.h = svn:mime-type=text/plain;svn:eol-style=native *.hdp = svn:mime-type=text/plain;svn:eol-style=native *.htm = svn:mime-type=text/html;svn:eol-style=native *.html = svn:mime-type=text/html;svn:eol-style=native *.ico = svn:mime-type=image/x-icon *.idl = svn:mime-type=text/plain;svn:eol-style=native *.intr = svn:mime-type=text/plain;svn:eol-style=native *.jam = svn:mime-type=text/plain;svn:eol-style=native *.java = svn:mime-type=text/plain;svn:eol-style=native *.jpeg = svn:mime-type=image/jpeg *.jpg = svn:mime-type=image/jpeg *.lid = svn:mime-type=text/plain;svn:eol-style=native *.lisp = svn:mime-type=text/plain;svn:eol-style=native *.lout = svn:mime-type=text/plain;svn:eol-style=native *.m4 = svn:mime-type=text/plain;svn:eol-style=native *.pdf = svn:mime-type=application/pdf *.pl = svn:mime-type=text/plain;svn:eol-style=native;svn:executable *.png = svn:mime-type=image/png *.py = svn:mime-type=text/plain;svn:eol-style=native;svn:executable *.rc = svn:mime-type=text/plain;svn:eol-style=native *.sgm = svn:mime-type=text/sgml;svn:eol-style=native *.sgml = svn:mime-type=text/sgml;svn:eol-style=native *.sh = svn:mime-type=text/plain;svn:eol-style=native;svn:executable *.spec = svn:mime-type=text/plain;svn:eol-style=native *.sql = svn:mime-type=text/plain;svn:eol-style=native *.tif = svn:mime-type=image/tiff *.tiff = svn:mime-type=image/tiff *.text = svn:mime-type=text/plain;svn:eol-style=native *.txt = svn:mime-type=text/plain;svn:eol-style=native *.xhtml = svn:eol-style=native *.xml = svn:mime-type=text/xml;svn:eol-style=native INSTALL = svn:mime-type=text/plain;svn:eol-style=native Makefile = svn:mime-type=text/plain;svn:eol-style=native Makefile.in = svn:mime-type=text/plain;svn:eol-style=native README = svn:mime-type=text/plain;svn:eol-style=native