belongs_to :user
has_many :changes, :dependent => :delete_all
has_and_belongs_to_many :issues
+ has_and_belongs_to_many :parents,
+ :class_name => "Changeset",
+ :join_table => "#{table_name_prefix}changeset_parents#{table_name_suffix}",
+ :association_foreign_key => 'parent_id', :foreign_key => 'changeset_id'
+ has_and_belongs_to_many :children,
+ :class_name => "Changeset",
+ :join_table => "#{table_name_prefix}changeset_parents#{table_name_suffix}",
+ :association_foreign_key => 'changeset_id', :foreign_key => 'parent_id'
acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.format_identifier}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))},
:description => :long_comments,
--- /dev/null
+class CreateChangesetParents < ActiveRecord::Migration
+ def self.up
+ create_table :changeset_parents, :id => false do |t|
+ t.column :changeset_id, :integer, :null => false
+ t.column :parent_id, :integer, :null => false
+ end
+ add_index :changeset_parents, [:changeset_id], :unique => false, :name => :changeset_parents_changeset_ids
+ add_index :changeset_parents, [:parent_id], :unique => false, :name => :changeset_parents_parent_ids
+ end
+
+ def self.down
+ drop_table :changeset_parents
+ end
+end