From: <jbo...@li...> - 2005-12-16 12:54:05
|
Author: aron.gombas Date: 2005-12-16 07:53:54 -0500 (Fri, 16 Dec 2005) New Revision: 1823 Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/model/ScmRepositoryChange.java trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java trunk/labs/kosmos/web-portlet/pages/svn_monitoring_activity_details.jsp Log: Files modified are counted on log entries Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/model/ScmRepositoryChange.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/model/ScmRepositoryChange.java 2005-12-16 12:28:50 UTC (rev 1822) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/model/ScmRepositoryChange.java 2005-12-16 12:53:54 UTC (rev 1823) @@ -15,17 +15,31 @@ * @version $Id$ */ public class ScmRepositoryChange { - /** Date of the change. */ - public Date date; - /** Author of the change. */ - public String author; + /** Date of this change. */ + private Date date; + /** Author of this change. */ + private String author; /** Change log message. */ - public String message; + private String message; + + /** Number of files added during this change. */ + private int addedFiles; + /** Number of files deleted during this change. */ + private int deletedFiles; + /** Number of files modified during this change. */ + private int modifiedFiles; + /** Number of files replaced during this change. */ + private int replacedFiles; - public ScmRepositoryChange(Date date, String author, String message) { + public ScmRepositoryChange(Date date, String author, String message, int addedFiles, int deletedFiles, int modifiedFiles, int replacedFiles) { this.date = date; this.author = author; this.message = message; + + this.addedFiles = addedFiles; + this.deletedFiles = deletedFiles; + this.modifiedFiles = modifiedFiles; + this.replacedFiles = replacedFiles; } public String getAuthor() { @@ -39,8 +53,24 @@ public String getMessage() { return message; } + + public int getAddedFiles() { + return addedFiles; + } - /** Returns its age in milliseconds. */ + public int getDeletedFiles() { + return deletedFiles; + } + + public int getModifiedFiles() { + return modifiedFiles; + } + + public int getReplacedFiles() { + return replacedFiles; + } + + /** Returns its age in milliseconds. */ public long getAge() { return new Date().getTime() - date.getTime(); } Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java 2005-12-16 12:28:50 UTC (rev 1822) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java 2005-12-16 12:53:54 UTC (rev 1823) @@ -246,11 +246,6 @@ continue; } - // save basic stats - if (stats.createdDate == null) - stats.createdDate = logEntry.getDate(); - stats.commits.add(new ScmRepositoryChange(logEntry.getDate(), logEntry.getAuthor(), logEntry.getMessage()));// TODO pass "(+1 -1 0 0)" string here - // count commits-over-period and author-over-period long ageInMillis = now - logEntry.getDate().getTime(); @@ -283,27 +278,44 @@ // count file-dependent stats Map changedPaths = logEntry.getChangedPaths(); + int addedFiles = 0; + int deletedFiles = 0; + int modifiedFiles = 0; + int replacedFiles = 0; if(changedPaths.size() > 0) { for(Iterator it = changedPaths.keySet().iterator(); it.hasNext();) { SVNLogEntryPath logEntryPath = (SVNLogEntryPath)changedPaths.get(it.next()); + char type = logEntryPath.getType(); // skip copied branches - if(logEntryPath.getCopyPath() != null) + if(logEntryPath.getCopyPath() != null)// TODO can this fix the physFileNo+phyDirNo != countedDirEntryNo problem? continue; + // TODO merge this method with the 2adder stuff + switch(type) { + case 'A': addedFiles++; break; // 'add' + case 'D': deletedFiles++; break;// 'delete' + case 'M': modifiedFiles++; break; // 'modify' + case 'R': replacedFiles++; break; // 'replace' + } + // count commits-per-file Integer commitsPerCurrentFile = commitsPerFileMap.get(logEntryPath.getPath()); commitsPerFileMap.put(logEntryPath.getPath(), (commitsPerCurrentFile == null) ? 1 : commitsPerCurrentFile + 1); // count files-per-week TimeSeriesDataItem repoEntriesPerCurrentWeek = stats.repoEntriesPerWeek.getDataItem(commitWeek); - char type = logEntryPath.getType(); if(repoEntriesPerCurrentWeek != null) stats.repoEntriesPerWeek.addOrUpdate(commitWeek, repoEntriesPerCurrentWeek.getValue().intValue() + commitTypeToAdder(type)); else stats.repoEntriesPerWeek.add(commitWeek, commitTypeToAdder(type)); } } + + // save basic stats + if (stats.createdDate == null) + stats.createdDate = logEntry.getDate(); + stats.commits.add(new ScmRepositoryChange(logEntry.getDate(), logEntry.getAuthor(), logEntry.getMessage(), addedFiles, deletedFiles, modifiedFiles, replacedFiles)); } // validate Modified: trunk/labs/kosmos/web-portlet/pages/svn_monitoring_activity_details.jsp =================================================================== --- trunk/labs/kosmos/web-portlet/pages/svn_monitoring_activity_details.jsp 2005-12-16 12:28:50 UTC (rev 1822) +++ trunk/labs/kosmos/web-portlet/pages/svn_monitoring_activity_details.jsp 2005-12-16 12:53:54 UTC (rev 1823) @@ -47,7 +47,7 @@ <tr id="row-<portlet:namespace/>-0-<c:out value="${status.index}"/>" style="display: none" class="portlet-section-alternate"> </c:otherwise> </c:choose> - <td><c:out value="${commit.message}"/></td> + <td><c:out value="${commit.message}"/><br/>(+<c:out value="${commit.addedFiles}"/> -<c:out value="${commit.deletedFiles}"/> ~<c:out value="${commit.modifiedFiles}"/> /<c:out value="${commit.replacedFiles}"/>)</td> <td><c:out value="${commit.author}"/></td> <td> <c:if test="${commit.ageInDays == 0}"><span class="portlet-msg-alert"></c:if> |