CVSandCGIProduction specifics

From Odwiki

Jump to: navigation, search

Back to the CVS and CGI Production



CVS in the CGI environment

Special considerations must be given to the configuration of any development environment, but unique to the creation of computer generated imagery are such things as the wide use of binary files, multiple user environments, cross platform issues, to name a few. Here are a few tips and notes on some of these subjects:


The issue of binary files The production of CG imagery can sometimes involve a number of binary files, other then the output of the rendering process. Perhaps file formats for texture files, depth and shadow maps, and others need to be maintained by an application more appropriate for media resource management, CVS by it's very nature is designed for ASCII based files such as source code in software development.

Files needing special consideration: Image files Texture files (.rat and .tx files) DSO's (shader DSO's, custom RIB DSO's, etc.) Depth and Shadow maps Motion capture data files Any arbitrary "channel data"


Multi-user environment

A feature in CVS called "watches" provides users a way to communicate about who is working on what files at any given time. By setting a "watch" on a file, the user can have CVS notify them if anyone else starts to work on it. Notification is usually done via email but other methods may be implemented depending on your site's needs. To enable the use of "watches", a few administrative files in the $CVSROOT must be edited, namely the notify file to enable notification, and the users file to map a CVS username to an email address (the checkoutlist file needs to have the users file listed in it because the standard CVS distribution does not contain the users file).

The process of using "watches" is quite simple. After checking out a copy of the files to be worked on, the user first "adds" the files with a CVS watch command (see example below) then issues a CVS edit command before actually starting to work on the files. If any other user has checked out the same files and issued the watch commands, they would be notified as soon as any user did the same or tries to commit the newly changed files.


CVS commands for multi-user "activity coordination":

Turn on or off read-only checkouts of files and add or remove notification of actions:

watch [on off add remove ] [ options ] [ files ... ]

Prepare to edit a watched file:

edit [ options ] [ files ... ]

Undo an edit command:

unedit [ options ] [ files ... ]

See who is currntly watching a file:

watchers [ options ] [ files ... ]

See who is currently editing a watched file:

editors [ options ] [ files ... ]


Example: Three users, kem, mstory and bmace, are working on a project that uses the same SLIM palette, CCB.splt, which contains a number of RenderMan shaders being used by all users.

After checking out all the project files, bmace puts a "watch" on the CCB.splt file and finds that mstory currently has a watch on the file as well:

earth bmace-87% cvs watchers CCB.splt
CCB.splt kem edit unedit commit tedit tunedit tcommit
earth bmace-91% cvs watch add CCB.splt
earth bmace-92% cvs edit CCB.splt
earth bmace-93% cvs watchers CCB.splt
CCB.splt bmace edit unedit commit tedit tunedit tcommit
kem edit unedit commit tedit tunedit tcommit

Then mstory issues a CVS edit command on the CCB.splt and starts editing:

pluto mstory-96% cvs watch add CCB.splt
pluto mstory-96% cvs edit CCB.splt
pluto mstory-97% cvs watchers CCB.splt
CCB.splt bmace edit unedit commit tedit tunedit tcommit
mstory edit unedit commit tedit tunedit tcommit
kem edit unedit commit tedit tunedit tcommit
earth bmace-77% cvs editors
CCB.splt kem Mon Jan 21 14:38:11 2002 GMT neptune /hosts/venus/usr/people/kem/shaders
mstory Mon Jan 21 14:39:16 2002 GMT pluto /media/people/mstory/shaders
bmace Mon Jan 21 14:39:58 2002 GMT earth /tmp_mnt/hosts/venus/usr/people/bmace/shaders

bmace then receives new mail announcing that mstory has placed a "watch edit" on the CCB.splt file and in fact committed the file(bmace should run a CVS update command to get the new version of the file including changes made by mstory):

venus bmace-65% Mail
Mail version SGI.950426. Type ? for help.
"/usr/mail/bmace": 6 messages 2 new
1 <mstory@pluto> Sun Jan 20 09:09 CVS notification
2 <mstory@pluto> Sun Jan 20 09:10 CVS notification
>N 3<mstory@pluto> Sun Jan 20 09:20 CVS notification
N 4<mstory@pluto> Sun Jan 20 09:21 CVS notification
&
Message 3:
From mstory@pluto Sun Jan 20 09:20:09 2002
Date: Sun, 20 Jan 2002 09:18:54 -0500 (MST)
From: Mark Story <mstory@pluto>
To: bmace
Subject: CVS notification
NAZMA_shaders CCB.splt
---
Triggered edit watch on /hosts/venus/usr/local/cvsroot/NAZMA_shaders
By mstory
&
Message 4:
From mstory@pluto Sun Jan 20 09:21:59 2002
Date: Sun, 20 Jan 2002 09:20:44 -0500 (MST)
From: Mark Story <mstory@pluto>
To: bmace
Subject: CVS notification
NAZMA_shaders CCB.splt
---
Triggered commit watch on /hosts/venus/usr/local/cvsroot/NAZMA_shaders
By mstory


TODO:

Utilities to help Ground rules Resolving conflicts File locking options (RCS file reserves)


Ease of use

Production scripts (procedures, aliases and command scripts) Automating CVS procedures Integrating CVS into application work flow

TODO:

Examples

© 2009 od[force].net | advertise