Uploaded image for project: 'Maven SCM'
  1. Maven SCM
  2. SCM-649

Enhance SCM changelog model to hold more data about changes

    XMLWordPrintableJSON

Details

    • Patch

    Description

      Hello,

      I would like to get more information from SCM changelog command, and attached patches contain my proposal doing some part of this.
      There are separate patches for model and for GIT and SVN implementations, I hope it makes them easier to review.
      New functionality is mostly covered with tests.

      Summary of proposed enhancements:

      ChangeFile.java:

      • added: ScmFileStatus action
      • added: String originalName
      • added: String originalRevision
      • they all included in toString()

      ScmFileStatus.java:

      • added: RENAMED = new ScmFileStatus( "renamed" );
      • added: COPIED = new ScmFileStatus( "copied" );

      ChangeSet.java:

      • added: String parentRevision
      • added: Set<String> mergedRevisions
      • both added to toString()
      • both added to toXML() + those from ChangeFile - all values stored in elements not attributes just like the others

      GIT implementation notes (GitChangeLogConsumer):

      • besides parsing the "whatchanged" command, now the consumer can handle also many options of the "log" command and harvest most of its provided info.
        In particular, the output of "git log --format=raw -C --raw --no-abbrev" can be parsed.
      • there is a potential to simply enable parsing for some more information like committer, committerDate and treeHash, which I didn't yet (as GIT-only stuff it may require separate discussion)

      SVN implementation notes (SvnChangeLogConsumer):

      • svn action "A" (Add) translates to "added" or "copied" depending of presence of originalFile
      • svn action "M" (Modified) always translates to "modified" no matter if there is an originalFile; any opinions about this ?
      • svn action "R" (Replace) translates to "updated" which IMHO has sufficiently close semantic

      Attachments

        1. scm-richmodel-model.patch
          9 kB
          Petr Kozelka
        2. scm-richmodel-svn.patch
          7 kB
          Petr Kozelka
        3. scm-richmodel-git.patch
          13 kB
          Petr Kozelka
        4. scm-richmodel-bazaar.patch
          5 kB
          Petr Kozelka

        Activity

          People

            olamy Olivier Lamy
            pkozelka Petr Kozelka
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: