def update_history(history)
      parse unless parsed?
      @release = history.delete(:release)
      history.each do |(significance,message)|
        changes[significance] << message
      end
      rewrite
    end
def update_history(history)
      parse unless parsed?
      @release = history.delete(:release)
      history.each do |(significance,message)|
        changes[significance] << message
      end
      rewrite
    end
Update the release history with new release information.
 Accepts a hash with any (or all) of four key-value pairs.
 [:major] a message describing a major change
 [:major] a message describing a minor change
 [:patch] a message describing a bugfix or other tiny change
 [:release] indicates this history should be updated for a new release, if present. If true, the release has no name, but if a string is provided the release will be annotated with the string

 To add multiple history entries of the same type, call
 this method mutiple times.

 *Note*: this method rewrites the entire IO instance to
 prepend the new history information.