Oberon Community Platform

Edit Page
Printable View

Repository

News

The AOS / A2 repository has moved to https://svn.inf.ethz.ch/svn/lecturers/a2/. Check your source URI with "svn info". If necessary use "svn relocate". Read anonymously such as this.
    svn checkout https://svn.inf.ethz.ch/svn/lecturers/a2/trunk a2
If anonymous access fails try userid eth.a2guest and password a2guest. Please visit https://trac.inf.ethz.ch/trac/lecturers/a2 to learn more.

General

The platform offers two different source code repositories:

Note: Don't miss the 's' in "https"!

The password needed to read-access the AOS repository can be requested by mail to ocp _at_ inf.ethz.ch. If you would like to make use of the community repository, please send us the user name you like and ask for a password.

The server can be accessed using a Web Browser or by client software. Apache Subversion is a commonly used client with a manual at http://svnbook.red-bean.com/.

There is an unoffical mercurial mirror on Google code (maintained by Soren Renner):

You can also find A2 ISO images (serial trace enabled to COM1 with 112 KBaud), which are created sporadically from the Subversion repository, in the file download area of a project at sourceforge with the name A2-Oberon:

AOS/WinAOS Repository Structure

/branches/Subprojects that are not accessible to the public
/Obsolete/Obsolete files that have been removed from the release
/Resources/Resources that are not included in the release
/Resources/Documentatino/Documentation
/Resources/Images/Various images, typically the original images used in the release incl. licensing informatin
/trunk/The trunk is the main development branch where you find the most up-to-date sources.
/trunk/AosVM/Script to generate A2 VMWare image
/trunk/source/These are the sources/ressources used by both Native AOS and WinAOS
/trunk/tools/ 
/trunk/tools/WinAosDebug/Source code of WinAos debugger
/trunk/tools/WinMerge/Oberon text plug-in for WinMerge. This enables WinMerge to ignore the formatting information in the Oberon files. See install.txt
/trunk/UnixAos/UnixAOS specific files
/trunk/UnixAos/buildtools/UnixAOS build tool files
/trunk/UnixAos/boot/Makefiles for building the UnixAOS executable
/trunk/WinAos/Everything withhin this folder/subfolders is WinAOS specific
/trunk/WinAos/ObjE/Object files of external WinAOS version. See note below!
/trunk/WinAos/ObjI/Object files of internal WinAOS version. See note below!
/trunk/WinAos/PELinker/Files use by PELinker to link WinAos executable
/trunk/WinAos/vy.ants/Voyager
/trunk/WinAos/WinOberon/Files only used by the external WinAOS oberon application
/trunk/WinAos/Work/WinAOS work directory. If you save a file without specifying a path, it will be stored into this folder.
/tags/ 
  • IMPORTANT: The object files are typically older than the sources.

The repository contains a fully functional WinAOS system. To start it, just execute Aos.exe found in /trunk/WinAos/

Community Repository

All people that are interested in this repository have full read-write access to it.
Please note that this repository is shared among all users.

Suggestion: As a first step, create a personal folder (e.g. using your user name)

Notes:

  • We don't give any guarantees about the availability/reliability of this repository. It's up to you to make sure that you have a backup of your files
  • You can always make a full copy of the repositories. This has the additional benefits of the increased data access speed and offline availability (cf. the Mirroring section below)
  • Everybody has full read-write access to the complete ocp repository which means that other people can read/write your files

Mirroring

You can create a local copy (also known as "mirror") of any Subversion repository for offline access using the command files shown below. You will need a command-line Subversion client, particularily the svnadmin.exe and svnsync.exe programs (see links in the Client Software section). You must remember to treat the mirror repositories as read-only. If you commit to a mirror by accident, you won't be able to update it from the central ETHZ server, and you'll have to redownload it.

Creating mirrors

To create mirrors for the aos and ocp repositories, follow these steps:

  1. create a folder for the mirrors, e.g. d:\svn\mirrors (Note: if you want to use a different path, update the TargetURL variable in NewMirror.bat and SyncRevs.bat files.)
  2. put all the following command files (see below) in that folder
  3. start cmd.exe in the folder
  4. run NewMirror.bat aos
  5. run NewMirror.bat ocp

Wait for the mirrors to be created and data downloaded, which will take some time: aos repository upto revision 3692 is 717 Mb, and ocp is 15 Mb at revision 364.

Updating mirrors

To update the local mirrors:

  1. start cmd.exe in the mirrors' folder
  2. run UpdateMirrors.bat

The command files

NewMirror.bat

@echo off
if %1 == "" goto :NoParam

setlocal
rem Put source and target URLs here, no trailing slashes.
set SourceURL=https://www.ocp.inf.ethz.ch/svn
set TargetURL=file:///d:/svn/Mirrors

rem Create the new repository.
mkdir %1
svnadmin create %1
rem Allow property changes (necessary for svnsync).
echo exit 0 > %1\hooks\pre-revprop-change.bat
rem Perform synchronization.
svnsync init %TargetURL%/%1 %SourceURL%/%1
svnsync sync %TargetURL%/%1
rem Disable property changes.
del %1\hooks\pre-revprop-change.bat
goto :End

:NoParam
echo Usage: %~nx0 repoName
echo repoName is the name of the folder/repository to mirror.
echo (c) Alexander Iljin, 2010

:End
endlocal

SyncRevs.bat

@echo off
if "%1" == "" goto :NoParams

setlocal
rem Don't add trailing slashes to the URLs
set TargetURL=file:///d:/svn/Mirrors

rem Allow property changes (necessary for svnsync).
echo exit 0 > %1\hooks\pre-revprop-change.bat
rem Perform synchronization.
svnsync sync %TargetURL%/%1
rem Disable property changes.
del %1\hooks\pre-revprop-change.bat
goto :End

:NoParams
echo Usage: %~nx0 repoName
echo repoName - name of the folder/repository to update from the net.
echo (c) Alexander Iljin, 2010

:End
endlocal

UpdateMirrors.bat

@echo off
echo Synchronizing all repositories in the current folder...
for /d %%i in (*) do call SyncRevs.bat %%i
echo Finished.

Git

Another option is to use Git, and its git-svn subcommand. The command lines to create mirrors of the repositories would be:

  1. git svn clone https://www.ocp.inf.ethz.ch/svn/aos
  2. git svn clone https://www.ocp.inf.ethz.ch/svn/ocp

To update a repository, run the following command inside the repository:

  • git svn fetch

Git advantages over Subversion mirror

  1. You can commit locally without limitation
  2. You can push your changes back to the main Subversion repository (if you have the write permission)
  3. The Git clone of the aos repository is only 128 Mb at revision 3692 (contrast with 717 Mb of the Subversion mirror)

Git disadvantages

  1. Steeper learning curve
  2. Simpler GUIs (at least the free ones, such as the bundled git gui and gitk)

Client Software

It is possible to access the repositories using a standard webbrowser, but for the full functionality, a software client is highly recommended.

We use ToirtoiseSVN which is a freeware program available for Microsoft Windows operating systems (see http://tortoisesvn.net/), but any other subversion client is also fine. If you want to use a command-line tool (necessary for mirroring), you can find one here: http://www.sliksvn.com/.

For viewing file differences, we use WinMerge (also freeware for Microsoft Windows operating systems, see http://www.winmerge.org/). In particular we have a WinMerge plugin that enables you to view differences of files using the Oberon text format. The plugin can be found in the AOS repository in the folder /aos/trunk/tools/WinMerge/. The file install.txt which is also located there provides a short description of how to install the plugin.

How can I get my contributions into the main AOS repository?

Post a merge request at http://www.ocp.inf.ethz.ch/forum/index.php/board,10.0.html. We are looking forward for interesting contributions!

Copyright © 2007 ETH Zürich
Page last modified on September 01, 2015, at 04:10 AM