You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2007/11/21 10:59:23 UTC
svn commit: r597013 - /incubator/cxf/trunk/bin/DoMerges.java
Author: mmao
Date: Wed Nov 21 01:59:22 2007
New Revision: 597013
URL: http://svn.apache.org/viewvc?rev=597013&view=rev
Log:
* Support windows platform ;)
Modified:
incubator/cxf/trunk/bin/DoMerges.java
Modified: incubator/cxf/trunk/bin/DoMerges.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/bin/DoMerges.java?rev=597013&r1=597012&r2=597013&view=diff
==============================================================================
--- incubator/cxf/trunk/bin/DoMerges.java (original)
+++ incubator/cxf/trunk/bin/DoMerges.java Wed Nov 21 01:59:22 2007
@@ -22,24 +22,24 @@
/* dkulp - Stupid little program I use to help merge changes from
- trunk to the fixes branches. It requires the svnmerge.py be
- available on the path. Grab the latest from:
- http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge/
- (of course, that then requries python installed and whatever else svnmerge.py
- needs.) It also requires the command line version of svn.
-
- Basically, svnmerge.py does all the work, but this little wrapper
- thing will display the commit logs, prompt if you want to merge/block/ignore
- each commit, prompt for commit (so you can resolve any conflicts first),
- etc....
-
- Yes - doing this in python itself (or perl or even bash itself or ruby or ...)
- would probably be better. However, I'd then need to spend time
- learning python/ruby/etc... that I just don't have time to do right now.
- What is more productive: Taking 30 minutes to bang this out in Java or
- spending a couple days learning another language that would allow me to
- bang it out in 15 minutes?
- */
+ trunk to the fixes branches. It requires the svnmerge.py be
+ available on the path. Grab the latest from:
+ http://svn.collab.net/repos/svn/trunk/contrib/client-side/svnmerge/
+ (of course, that then requries python installed and whatever else svnmerge.py
+ needs.) It also requires the command line version of svn.
+
+ Basically, svnmerge.py does all the work, but this little wrapper
+ thing will display the commit logs, prompt if you want to merge/block/ignore
+ each commit, prompt for commit (so you can resolve any conflicts first),
+ etc....
+
+ Yes - doing this in python itself (or perl or even bash itself or ruby or ...)
+ would probably be better. However, I'd then need to spend time
+ learning python/ruby/etc... that I just don't have time to do right now.
+ What is more productive: Taking 30 minutes to bang this out in Java or
+ spending a couple days learning another language that would allow me to
+ bang it out in 15 minutes?
+*/
public class DoMerges {
public static boolean auto = false;
@@ -94,7 +94,7 @@
p.waitFor();
- p = Runtime.getRuntime().exec(new String[] {"svnmerge.py", "avail"});
+ p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svnmerge.py", "avail"}));
reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
line = reader.readLine();
@@ -163,7 +163,7 @@
switch (c) {
case 'M':
- p = Runtime.getRuntime().exec(new String[] {"svnmerge.py", "merge", "-r", ver});
+ p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svnmerge.py", "merge", "-r", ver}));
reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
line = reader.readLine();
while (line != null) {
@@ -184,7 +184,7 @@
doCommit();
break;
case 'B':
- p = Runtime.getRuntime().exec(new String[] {"svnmerge.py", "block", "-r", ver});
+ p = Runtime.getRuntime().exec(getCommandLine(new String[] {"svnmerge.py", "block", "-r", ver}));
reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
line = reader.readLine();
while (line != null) {
@@ -208,5 +208,21 @@
break;
}
}
+ }
+
+ private static String[] getCommandLine(String[] args) {
+ List<String> argLine = new ArrayList<String>();
+ if (isWindows()) {
+ argLine.add("cmd.exe");
+ argLine.add("/c");
+ }
+
+ argLine.addAll(Arrays.asList(args));
+ System.out.println("Running " + argLine + "...");
+ return argLine.toArray(new String[argLine.size()]);
+ }
+
+ private static boolean isWindows() {
+ return System.getProperty("os.name").toLowerCase().indexOf("windows") != -1;
}
}