This is about http://www.bitbucket.org/RonnyPfannschmidt/anyvc/
Workdir Control
This is every basic command that interfaces with a vcs working directory
- commit a set of file with a commit message
- add new file/set of files
- move a file/set of files
- remove a file/set of files
- revert a file/set of files to the old content of the revision assigned to the workdir
- listings of the changestates of files in the workdir (added, removed, clean, ....)
Not implemented is
- copy a file/set of files cause that didn't yet occur as use-case
Implementations
- Tested
- hg
- git
- bzr
- svn
- darcs
- untested
- monotone
History interfacing
This is everything for interfacing with history Its not yet implemented and there are various weird/ugly issues.
Issues
- not all vcs's share the idea of ordered atomic commits
- darcs has patch theory stuff (checkpoints can be viewed as atomic thing)
- tla has weird broken patch stuff
- cvs has single-file version numbers
- some vcs's don't have true tags/branches (ie first-class)
- svn uses copy to mimic them
- horror for inferencing proper branch history
- people use nonstandard layouts (which just kills any sane approach to work with it in automated ways)
- svn uses copy to mimic them
General things
- all reasonable vcs's have a dag as history model
Whats of interest ?!
- Repositories
- Revisions/Commits
- parent's
- child's
What could we do
- update working directory to revision
- doesn't work for bzr -> use branch switch if possible?
- show history graph
- pull history from other repositories
- push history to other repositories
- initialize merge
- damn tricky for svn/cvs/darcs
- monotone is/was using out of working directory merge by default
