COS 598C / HLS 598 - Reconstructing the Thera Frescoes |
Spring 2007 |
Course home | Outline and lecture notes | Resources |
We strongly encourage participants of the seminar to keep all project related code in our source code repository, accessible as a Subversion repository under:
svn+ssh://opus.cs.princeton.edu/n/fs/thera/admin/repos/thera/trunkFor an initial check-out call:
svn checkout svn+ssh://opus.cs.princeton.edu/n/fs/thera/admin/repos/thera/trunk theraAs a matter of convenience, you may want to set up public key ssh access to opus in order to avoid having to type in your password on each call of svn.
The Subversion revision control system is very similar to CVS but
comes with advanced
features, such as the possibility to move
or rename files and directories. For those not familiar with
Subversion we recommend the following documentation:
svn update.
svn commit -m "any comments on your recent changes"Please include meaningful commit messages, and don't break the build -- violation of either rule will result in public humiliation at the next available opportunity :-).
svn add new-files-or-directories. Note an important difference to CVS: directories and their content are added recursively.
svn move from toThis command should basically replace mv within the repository.
svn status.
Finally, there are also a couple of graphical user interfaces to Subversion. Here is a selection:
The organizational structure of the repository should be rather self-explanatory. The repository contains three top directories:
thera/data thera/doc thera/srcSo far, all source code should go to thera/src; thera/data should only be used for smaller amounts of data or for data where revision control makes sense.
Download the latest Qt version here: For this project, we assume Qt version 4.2 or higher. The installation is straight forward on most systems. However, the Qt installation on Windows requires a patch to work with MS Visual Studio, see below.
Our goal is to support Linux, Win32, and Mac OS X platforms, that is, try to avoid compiler-specific constructs and system-dependent calls; use Qt's platform abstraction mechanisms instead. The entire source tree is compilable via:
cd thera/src qmake makeInclude your own project by adding its subdirectory to thera/src/src.pro.
Win32: On Windows, the build process differs slightly. Use
qmake -spec win32-msvc.net
to produce MS Visual Studio .NET 2005 project files (.vcproj) that
have to be compiled using Visual Studio. In order to recursively convert all .pro in thera/src/ to .vcproj call:
cd thera/src qmake -spec win32-msvc.net -rTo build an application, open the application's .vcproj file and manually add all the .vcprojs of all required libraries to the current VS solution. Don't forget to set Project dependencies within the solution. The resulting solution should compile without further modification. If you want to change compiler settings, search paths, etc.,
Win32 Visual .NET 2005 Installation: Do not install the MS Visual .NET Service Pack 1 Beta, as it contains a bug that causes inherited template classes with nested types to no longer work. You may, however, install the latest security fixes.
Win32 Qt Installation: In order to make Qt support MS Visual
Studio .NET 2005, an inofficial
patch is required. Download
the patch acs-4.2.2-patch1.zip from sourceforge.net. Install Qt as follows:
Start->Programs->...->Visual Studio Tools), not from cmd.exe, call:
installpatch42.bat qconfigure msvc2005 nmake
Larger amounts of project-related data should be stored in the Thera project directory:
/n/fs/thera/(Or \\fs\thera from Windows or SMB/CIFS clients, respectively.) This directory is backed up but does not provide revision control. If possible, please change your umask using
umask 0002before you start accessing the project directory. You may include this call in your .bashrc, or whatever login script applies. This is important, as otherwise we will run into arbitrary access permission issues. Files created by you should have at least the following permissions:
drwxrwsr-x 2 tweyrich thera 512 Feb 5 15:04 my-directory -rw-rw-r-- 1 tweyrich thera 0 Feb 5 21:56 any-fileWhen accessing the project directory via Samba, the umask is likely to be set correctly -- at least for Samba mounts from Mac OS X this seems to be the case.
Users accessing the project directory have to be in the Unix group thera, which will automatically be arranged for members of the seminar.