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 Needs:
- 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?
CVS & Subversion
ssh
- Secure
- Reliable
- Proven
- “Swiss army knife” - anil@
Subversion
Berkeley DB
- Binary file
- Old format
- Known issues
- Storing revisions in new format
Subversion
FSFS
- Solves some Berkeley DB issues
- Each revision is one file
- New format
CVS
RCS Files
- Simple text files
- Easy recovery
- RCS tools or vi
- Extensible
CVS
Essentials:
- cvs commit
- cvs checkout
- cvs diff
- cvs log
OpenCVS
Some Subversion features can be copied…
- Atomic commits coming soon
- Others, but…
- Not until OpenCVS is fully functional!
OpenCVS
- Complexity != security
- Simple code is easier to secure and maintain
- Simple, proven protocol
- Extensible
- Protect your repository!
Questions?
Thanks
- OpenCVS: joris@, niallo@, xsa@
- BSDCan
- Jen
Please donate!
- OpenBSD needs donations!
- Hackathons help development
- Hardware and bandwidth costs
- No OpenCVS without OpenBSD
- http://OpenBSD.org/donations.html