version control systems in meld



Hi all,

It's high time meld supported svn and arch properly. Right now it's
difficult to do because it involves copying and munging cvsview.py which
is a nightmare for maintenance and not good for users either. (for
instance CVS labels appear in the SVN browser)

I'd like to start a project which will abstract the bones of many source
control systems. Meld would definitely gain from such a modularised
system and it could even be useful outside of meld too.

Here's a strawman proposal for a version control module which is enough
for meld and only requires two methods to be implemented. It's quite
biased towards CVS since thats what I am familiar with, so I'd love to
hear in particular comments about where it doesn't quite fit.


version.listdir(path_to_dir)

Return a list of names which are the entries at the given path. This
list may contain entries which are not in os.listdir() e.g. removed
entries.


version.stat(path)

For a single item, return an object with the following attributes

state: One of the following states.
"Normal" Checked out and unchanged
"Ignored" Explicitly ignored (i.e. .cvsignore)
"Unknown" Exists locally but not added to repository
"Newly added" Added locally but not yet committed
"Modified" Locally modified
"Conflict" Contains merge conflict
"Removed" Removed from control and local filesystem
"Missing" Checked out but missing from local filesystem

tag: symbolic tag ("testing_branch")

version: version string ("1.3.4.1" or "1236")

Stephen.
-- 
Stephen Kennedy <stevek gnome org>
http://meld.sf.net visual diff and merge




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]