OpenCVS
Ray Lai
Who is Ray? Why is Ray?
- OpenBSD developer
 
- OpenRCS/OpenCVS developer
 
- CVS user
 
- Subversion user
 
 
Version Control
- Keeps track of file changes
 
- How did the file look yesterday?
 
- How did the project look last year?
 
- “Who broke the tree?!?!”
 
 
Version Control
Common commands:
- Check in files
 
- Check out files
 
- See file changes (diff)
 
- See why files were changed (log)
 
 
Version Control
Repository
- Current copies of files
 
- Past copies of files
 
- What changed?
 
- Why was it changed?
 
 
Version Control
Repository
- Secure
 
- Stable
 
- Robust
 
- Recoverable
 
 
RCS
Early version control system
- One file at a time
 
- Local repository
 
- Simple text file format
 
- Supports common commands
 
 
CVS
RCS’s successor
- Multiple files and directories
 
- Remote repository
 
- RCS file repository
 
- Very popular
 
 
Subversion
CVS’s successor?
- Rename
 
- Atomic commits
 
- Change sets
 
- New repository formats
 
 
OpenBSD
“Free, Functional, Secure”
- Security
 
- CVS repository
 
- BSD licensed
 
- Ray@OpenBSD.org
 
 
OpenCVS
“Free, Functional, Secure”
- Security
 
- CVS repository
 
- BSD licensed
 
- GNU unmaintained
 
 
OpenCVS
Don’t fix what’s not broken
- Worked for years
 
- Basic commands there
 
- Repository migration pain
 
- RCS file format
 
 
OpenRCS
One small step…
- RCS files
 
- Simple and direct
 
- Replace GNU
 
- Maintain ourselves
 
 
Subversion
Why?
- CVS people
 
- Rename
 
- Atomic commits
 
- Change sets
 
 
Subversion
Complex
- HTTP
 
- Complicated backends
 
- Kitchen sink
 
- Hard to secure
 
 
Subversion
HTTP-based WebDAV/DeltaV protocol
- New protocols
 
- Riding on HTTP
 
- Benefits?
 
 
Subversion
Berkeley DB 
- Binary file
 
- Old format
 
- Known issues
 
- Storing revisions in new format
 
 
Subversion
FSFS
- New format
 
- Each revision is one file
 
 
CVS
RCS Files
- Simple text files
 
- Easy recovery
 
- RCS tools
 
- Extensible
 
 
CVS
Essentials:
- cvs ci
 
- cvs co
 
- cvs diff
 
- cvs log
 
 
OpenCVS
Some Subversion features can be copied…
- Atomic commits coming soon
 
- Others, but…
 
- Not until GNU CVS replaced!
 
 
OpenCVS
- Complexity != security
 
- Simplicity easier to secure
 
- Simple, proven protocol
 
- Extensible
 
- Protect your repository!
 
 
Questions?
Thanks
- OpenCVS: joris@, niallo@, xsa@
 
- NYC*BUG
 
- Jen
 
 
Please donate!
- OpenBSD needs donations!
 
- Hackathons help development
 
- Hardware and bandwidth costs
 
- No OpenCVS without OpenBSD
 
- http://OpenBSD.org/donations.html