README in rscm-0.3.10 vs README in rscm-0.3.11
- old
+ new
@@ -1,11 +1,11 @@
-= RSCM - Ruby Source Control Management (0.3.10)
+= RSCM - Ruby Source Control Management (0.3.11)
-RSCM is to SCM what DBI/JDBC/ODBC are to databases - an SCM-independent API for accessing different SCMs. The features are roughly:
+RSCM is to SCM what DBI/JDBC/ODBC are to databases - an SCM-independent API for accessing different SCMs. The high level features are roughly:
* Check out a working copy (with possibility to specify branch/date/label)
-* Get changesets (changesets are emulated for non-transactional SCMs like CVS and StarTeam)
+* Get revisions (changesets) (Emulated for non-transactional SCMs like CVS, ClearCase and StarTeam)
* Get diffs
* Add and commit files
* Manipluate triggers
Although RSCM's main focus is operations on a working copy of an SCM repository, the API also allows some level of interaction
@@ -20,11 +20,11 @@
(You may need administer access to do this on a POSIX system).
If you want the latest and greatest, you can get the sources, which live alongside DamageControl's sources:
* See the DamageControl Developer Guide at http://hieraki.lavalamp.ca/
-== Team
+== Contributors
* Aslak Hellesoy - All
* Steven Baker - Monotone
* Jon Tirsen - CVS, Subversion
* Yogi Kulkarni - Perforce
@@ -50,19 +50,17 @@
* DamageControl - http://damagecontrol.codehaus.org. DamageControl adds a web interface to RSCM and tons of other features for continuous integration.
== Sample usage
-Here is an example of how to use RSCM to get a list of changesets from a CVS repository:
+Here is an example of how to use RSCM to get a list of revisions (aka changesets) from a subversion repository:
require 'rscm'
- scm = RSCM::Subversion.new("svn://some.server/some/path/trunk", "trunk")
- scm.checkout_dir = "/my/working/copy"
-
- scm.checkout
- revisions = scm.revisions(Time.utc(2004, 11, 10, 12, 34, 22))
+ scm = RSCM::Subversion.new("svn://some.server/some/path/trunk")
+ # What follows would look the same for any supported SCM
+ revisions = scm.revisions(Time.utc(2004, 11, 10, 12, 34, 22)) # For Subversion, you can also pass a revision number (int)
revisions.each do |revision|
puts revision # or do something more funky with it
end
=== Using visitors
@@ -74,22 +72,16 @@
def visit_revisions(revisions); end
def visit_revision(revision); end
def visit_file(revision_file); end
-=== Getting diffs
-
-RSCM allows you to get diffs for changesets. See the DamageControl sources for more detailed
-examples (DamageControl persists diffs to disk and presents them as colourised diffs in its
-user interface).
-
== Future plans
=== Cross-SCM synchronisation
RSCM could be used as a tool to migrate files from one SCM to another (of a different type)
-while keeping the history. -Similar to cvs2svn.
+while keeping the history. -Similar to cvs2svn or http://nautilus.homeip.net/~lele/projects/tailor/
RSCM could also be used as a continuous synchronisation service between SCMs. This can be very useful
when you have to work with an SCM and you'd rather use a different one. RSCM could synchronise between
the central SCM and one that you set up on your local machine.
@@ -167,11 +159,11 @@
NOTE: If the SCM doesn't have a command line utility (unlikely) or a 3rd party Ruby API, but instead
provides libraries (perhaps in C), then you should consider writing a Ruby C extension
instead.
If the SCM has a Java interface, you can take the same approach as for StarTeam. There are
-Java classes for ChangeSets that allow easy interaction between Ruby and Java over YAML.
+Java classes for Revisions that allow easy interaction between Ruby and Java over YAML.
You can reuse these classes for other Java based SCMs (if there are any, I don't know).
== Web interface (DamageControl only)
DamageControl automatically detects new SCM classes in RSCM and generates a default web interface.
@@ -186,10 +178,10 @@
Now change to the RSCM root directory and type
rake gem
-This will create a gem for RSCM. To install this gem, you have to change to the pgk directory and type
+This will create a gem for RSCM. To install this gem, you have to change to the pkg directory and type
- sudo gem install pkg/rscm-0.3.0.gem
+ sudo gem install pkg/rscm-0.3.11.gem
Now you can use RSCM in other Ruby apps with a simple require 'rscm'.