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)

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