⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vssoper.java

📁 java操作VSS的操作封装 封装了VSS的一系列操作
💻 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 + -