📄 vssoper.java
字号:
package otherTools.versionControlTools.vss;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.optional.vss.MSVSS;
import org.apache.tools.ant.taskdefs.optional.vss.MSVSSADD;
import org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN;
import org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT;
import org.apache.tools.ant.taskdefs.optional.vss.MSVSSCP;
import org.apache.tools.ant.taskdefs.optional.vss.MSVSSCREATE;
import org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET;
import org.apache.tools.ant.types.Path;
public class VSSOper {
private static Project prj = new Project();
private static String strSsDir = "D:/Developer/VSS/win32";
private static String strLogin = "hubo,goodluck";
private static String strServerPath = "D:/Developer/VSS";
private static String strVssPath = "$/database/zypx";
private static String strLocalPath = "d:/VSS/zypx";
private static String strVssAddPath = "$/database/zypx";
private static Path localpath = null;
public static void main(String[] args) {
setStrLocalPath(strLocalPath);
// vssCheckOut(true,false);
// vssCheckIn(true,false);
// vssAdd(strVssAddPath,true,false);
// vssCreate(strVssAddPath);
vssDelete(strVssAddPath);
System.out.println("操作结束!");
}
private static void initMSVSS(MSVSS vss) {
vss.setSsdir(strSsDir);
vss.setLogin(strLogin);
vss.setServerpath(strServerPath);
vss.setVsspath(strVssPath);
vss.setProject(prj);
}
/*
* 从VSS上get文件
*
* 经验: 调试get时,如果没有设置localpath的路径,则会报 return code of 100,但又不会报出具体什么错误。
* 如果将出错时的CMD语句:ss Get $/database/zypx -GL -I- -R -Yhubo,******** 拿去执行,则会报
* Invalid DOS path 意思是说get时设置的存放的本地路径为空
*/
public static void vssGet(boolean blnRecursive) {
MSVSSGET vssGet = new MSVSSGET();
initMSVSS(vssGet);
vssGet.setLocalpath(localpath);
vssGet.setRecursive(blnRecursive); // 是否递归
vssGet.execute();
}
/*
* 从VSS上checkOut文件
*/
public static void vssCheckOut(boolean blnRecursive, boolean blnGetLocalCopy) {
MSVSSCHECKOUT vssCheckout = new MSVSSCHECKOUT();
initMSVSS(vssCheckout);
vssCheckout.setLocalpath(localpath);
vssCheckout.setRecursive(blnRecursive); // 是否递归
vssCheckout.setGetLocalCopy(blnGetLocalCopy); // 是否从VSS上取下
vssCheckout.execute();
}
/*
* 向VSS上checkIn文件
*/
public static void vssCheckIn(boolean blnRecursive, boolean blnWritable) {
MSVSSCHECKIN vssCheckin = new MSVSSCHECKIN();
initMSVSS(vssCheckin);
vssCheckin.setLocalpath(localpath);
vssCheckin.setRecursive(blnRecursive); // 是否递归
vssCheckin.setWritable(blnWritable); // checkIn后该文件是否可读
vssCheckin.execute();
}
/*
* 向VSS上Add文件
*/
public static void vssAdd(String strVssPath, boolean blnRecursive,
boolean blnWritable) {
MSVSSADD vssAdd = new MSVSSADD();
initMSVSS(vssAdd);
vssAdd.setLocalpath(localpath);
vssAdd.setRecursive(blnRecursive); // 是否递归
vssAdd.setWritable(blnWritable); // checkIn后该文件是否可读
vssCP(strVssPath); // 修改当前目录
vssAdd.execute();
}
// 修改当前项目,对add相当有用。因为add需要只会将文件增加到当前目录
public static void vssCP(String strVssPath) {
MSVSSCP vssCP = new MSVSSCP();
initMSVSS(vssCP);
vssCP.setVsspath(strVssPath);
vssCP.execute();
}
public static void vssCreate(String strVssPath) {
MSVSSCREATE vssCreate = new MSVSSCREATE();
initMSVSS(vssCreate);
vssCreate.setVsspath(strVssPath);
vssCreate.execute();
}
// D:\Developer\VSS\win32\ss delete $/database/hah -I- -Yhubo,goodluck
public static void vssDelete(String strVssPath) {
String strVssCmd = strSsDir + "/ss " + "delete " + strVssAddPath
+ " -I- -Y" + strLogin;
System.out.println(strVssCmd);
try {
Process process = Runtime.getRuntime().exec(
"cmd.exe /c start " + strVssCmd);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getStrSsDir() {
return strSsDir;
}
public static void setStrSsDir(String strSsDir) {
VSSOper.strSsDir = strSsDir;
}
public static String getStrLogin() {
return strLogin;
}
public static void setStrLogin(String strLogin) {
VSSOper.strLogin = strLogin;
}
public static String getStrServerPath() {
return strServerPath;
}
public static void setStrServerPath(String strServerPath) {
VSSOper.strServerPath = strServerPath;
}
public static String getStrVssPath() {
return strVssPath;
}
public static void setStrVssPath(String strVssPath) {
VSSOper.strVssPath = strVssPath;
}
public static String getStrLocalPath() {
return strLocalPath;
}
public static void setStrLocalPath(String strLocalPath) {
VSSOper.strLocalPath = strLocalPath;
VSSOper.localpath = new Path(prj, strLocalPath);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -