Ruby Source Control Management API

From WhyNotWiki

Jump to: navigation, search

Revision control software  edit   (Category  edit) Aliases: version control, source control, source code management, SCM


Extending Subversion with Ruby  edit   (Category  edit)


http://rscm.rubyforge.org/

[edit] How it works

Weak! It's just a big wrapper for the standard svn command-line client.

So this Ruby code:

revisions = scm.revisions(Time.utc(2007, 01, 10, 12, 34, 22))
revisions.each do |revision|
  pp revision
end

just runs this command in the background:

/home/tyler/code/gemables/svn-ruby tyler$ svn log --verbose  --revision {"2007-01-10 12:34:22"}:{"2036-01-01 00:00:00"} http://code/gemables

#<RSCM::Revision:0xb7dc1984
 @files=
  [#<RSCM::RevisionFile:0xb7dc0250
    @developer=nil,
    @message=nil,
    @native_revision_identifier=2237,
    @path="shared_tasks/generators",
    @previous_native_revision_identifier=2236,
    @status="DELETED",
    @time=nil>,
   #<RSCM::RevisionFile:0xb7dbf8a0
    @developer=nil,
    @message=nil,
    @native_revision_identifier=2237,
    @path="plugins/shared_rails_tasks/generators",
    @previous_native_revision_identifier=2236,
    @status="MOVED",
    @time=nil>],
 @identifier=2237,
 @message="Accidentally added this to the wrong project",
 @time=Tue Feb 06 03:05:15 UTC 2007>
#<RSCM::Revision:0xb7dbef04
 @developer="tyler",
 @files=
  [#<RSCM::RevisionFile:0xb7dbdd34
    @developer=nil,
    @message=nil,
    @native_revision_identifier=2253,
    @path="template/Rakefile",
    @previous_native_revision_identifier=2252,
    @status="MODIFIED",
    @time=nil>],
 @identifier=2253,
 @message="",
 @time=Wed Feb 07 00:21:13 UTC 2007>

[edit] Using it

Personal tools