You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bo...@apache.org on 2005/02/15 12:12:15 UTC
cvs commit: ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn SvnChangeLogParser.java SvnChangeLogTask.java SvnChangeLogWriter.java SvnEntry.java
bodewig 2005/02/15 03:12:15
Modified: proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn
SvnChangeLogParser.java SvnChangeLogTask.java
SvnChangeLogWriter.java SvnEntry.java
Log:
Add more info on paths, don't accumulate information, msg -> message
Revision Changes Path
1.2 +5 -4 ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnChangeLogParser.java
Index: SvnChangeLogParser.java
===================================================================
RCS file: /home/cvs/ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnChangeLogParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SvnChangeLogParser.java 14 Feb 2005 13:28:33 -0000 1.1
+++ SvnChangeLogParser.java 15 Feb 2005 11:12:15 -0000 1.2
@@ -98,7 +98,7 @@
//We have ended changelog for that particular revision
//so we can save it
final int end
- = message.length() - lineSeparator.length(); //was -1
+ = message.length() - lineSeparator.length();
message = message.substring(0, end);
saveEntry();
status = GET_REVISION_LINE;
@@ -147,8 +147,8 @@
// ignore
} else if (line.equals("")) {
status = GET_MESSAGE;
- } else {
- paths.add(line.substring(5));
+ } else if (line.length() > 5) {
+ paths.add(new SvnEntry.Path(line.substring(5), line.charAt(3)));
}
}
@@ -159,6 +159,7 @@
SvnEntry entry = new SvnEntry(date, revision, author, message,
paths);
entries.add(entry);
+ reset();
}
/**
1.2 +5 -4 ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnChangeLogTask.java
Index: SvnChangeLogTask.java
===================================================================
RCS file: /home/cvs/ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnChangeLogTask.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SvnChangeLogTask.java 14 Feb 2005 13:28:33 -0000 1.1
+++ SvnChangeLogTask.java 15 Feb 2005 11:12:15 -0000 1.2
@@ -46,7 +46,7 @@
* <font color=#0000ff><!-- Root element --></font>
* <font color=#6a5acd><!ELEMENT</font> changelog <font color=#ff00ff>(entry</font><font color=#ff00ff>+</font><font color=#ff00ff>)</font><font color=#6a5acd>></font>
* <font color=#0000ff><!-- SVN Entry --></font>
- * <font color=#6a5acd><!ELEMENT</font> entry <font color=#ff00ff>(date,time,revision,author,file</font><font color=#ff00ff>+,msg</font><font color=#ff00ff>,msg)</font><font color=#6a5acd>></font>
+ * <font color=#6a5acd><!ELEMENT</font> entry <font color=#ff00ff>(date,time,revision,author,path</font><font color=#ff00ff>+,msg</font><font color=#ff00ff>,msg)</font><font color=#6a5acd>></font>
* <font color=#0000ff><!-- Date of svn entry --></font>
* <font color=#6a5acd><!ELEMENT</font> date <font color=#ff00ff>(#PCDATA)</font><font color=#6a5acd>></font>
* <font color=#0000ff><!-- Time of svn entry --></font>
@@ -55,10 +55,11 @@
* <font color=#6a5acd><!ELEMENT</font> author <font color=#ff00ff>(#PCDATA)</font><font color=#6a5acd>></font>
* <font color=#0000ff><!-- commit message --></font>
* <font color=#6a5acd><!ELEMENT</font> msg <font color=#ff00ff>(#PCDATA)</font><font color=#6a5acd>></font>
- * <font color=#0000ff><!-- List of files affected --></font>
- * <font color=#6a5acd><!ELEMENT</font> file <font color=#ff00ff>(name</font><font color=#ff00ff>?</font><font color=#ff00ff>)</font><font color=#6a5acd>></font>
- * <font color=#0000ff><!-- Name of the file --></font>
+ * <font color=#0000ff><!-- List of paths affected --></font>
+ * <font color=#6a5acd><!ELEMENT</font> path <font color=#ff00ff>(name,action)</font><font color=#ff00ff></font><font color=#ff00ff>)</font><font color=#6a5acd>></font>
+ * <font color=#0000ff><!-- Name of the path --></font>
* <font color=#6a5acd><!ELEMENT</font> name <font color=#ff00ff>(#PCDATA)</font><font color=#6a5acd>></font>
+ * <font color=#6a5acd><!ELEMENT</font> action <font color=#ff00ff>(added|modified|deleted)</font><font color=#6a5acd>></font>
* <font color=#0000ff><!-- Revision number --></font>
* <font color=#6a5acd><!ELEMENT</font> revision <font color=#ff00ff>(#PCDATA)</font><font color=#6a5acd>></font>
* </pre>
1.2 +10 -7 ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnChangeLogWriter.java
Index: SvnChangeLogWriter.java
===================================================================
RCS file: /home/cvs/ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnChangeLogWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SvnChangeLogWriter.java 14 Feb 2005 13:28:33 -0000 1.1
+++ SvnChangeLogWriter.java 15 Feb 2005 11:12:15 -0000 1.2
@@ -65,16 +65,19 @@
+ "</time>");
output.println("\t\t<author><![CDATA[" + entry.getAuthor()
+ "]]></author>");
- output.println("\t\t<revision><![CDATA[" + entry.getRevision()
- + "]]></revision>");
+ output.println("\t\t<revision>" + entry.getRevision()
+ + "</revision>");
- String[] paths = entry.getPaths();
+ SvnEntry.Path[] paths = entry.getPaths();
for (int i = 0; i < paths.length; i++) {
- output.println("\t\t<file>");
- output.println("\t\t\t<name><![CDATA[" + paths[i] + "]]></name>");
- output.println("\t\t</file>");
+ output.println("\t\t<path>");
+ output.println("\t\t\t<name><![CDATA[" + paths[i].getName()
+ + "]]></name>");
+ output.println("\t\t\t<action>" + paths[i].getActionDescription()
+ + "</action>");
+ output.println("\t\t</path>");
}
- output.println("\t\t<msg><![CDATA[" + entry.getMessage() + "]]></msg>");
+ output.println("\t\t<message><![CDATA[" + entry.getMessage() + "]]></message>");
output.println("\t</entry>");
}
}
1.2 +52 -4 ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnEntry.java
Index: SvnEntry.java
===================================================================
RCS file: /home/cvs/ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnEntry.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SvnEntry.java 14 Feb 2005 13:28:33 -0000 1.1
+++ SvnEntry.java 15 Feb 2005 11:12:15 -0000 1.2
@@ -60,8 +60,8 @@
* @param path the path to add
* @param revision the revision
*/
- public void addPath(final String name) {
- paths.add(name);
+ public void addPath(final String name, final char action) {
+ paths.add(new Path(name, action));
}
/**
@@ -108,8 +108,56 @@
* Gets the paths in this SvnEntry
* @return the files
*/
- public String[] getPaths() {
- return (String[]) paths.toArray(new String[paths.size()]);
+ public Path[] getPaths() {
+ return (Path[]) paths.toArray(new Path[paths.size()]);
+ }
+
+ public static class Path {
+
+ private static final char ADDED_MARKER = 'A';
+ private static final char MODIFIED_MARKER = 'M';
+ private static final char DELETED_MARKER = 'D';
+
+ public static final int ADDED = 0;
+ public static final int MODIFIED = 1;
+ public static final int DELETED = 2;
+
+ private static final String[] ACTIONS = {
+ "added", "modified", "deleted",
+ };
+
+ private final String name;
+ private final int action;
+
+ public Path(final String name, final char actionChar) {
+ this.name = name;
+ switch (actionChar) {
+ case ADDED_MARKER:
+ action = ADDED;
+ break;
+ case MODIFIED_MARKER:
+ action = MODIFIED;
+ break;
+ case DELETED_MARKER:
+ action = DELETED;
+ break;
+ default:
+ throw new IllegalArgumentException("Unkown action; "
+ + actionChar);
+ }
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getAction() {
+ return action;
+ }
+
+ public String getActionDescription() {
+ return ACTIONS[action];
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org