Last-modified: 2010-01-08 (金) 12:12:01 (5437d)

 指定したフォルダ配下にCheckOutされているsubversionリポジトリを全て更新したい場合に。

//
// 指定したフォルダ配下にCheckOutされているsubversionリポジトリを全て更新する
//
// [前提] svnコマンドにPATHが通っていること。
//
// @author Jomora(kazuhiko@jomura.net)
// @version 2010.01.08 初版作成

// subversionリポジトリを再帰検索する親フォルダ
var targetFolder = "C:\\repos_local";

//**Start Encode**

//main
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var shell = WScript.CreateObject("WScript.Shell");
var rootFolderObj = fso.GetFolder(targetFolder);

UpdateFolder(rootFolderObj);

WScript.Quit(0);

//functions

function UpdateFolder(folderObj) {
	if (fso.FolderExists(folderObj.Path + "\\.svn")) {
		execUpdate(folderObj);
	} else {
		var j = new Enumerator(folderObj.SubFolders);
		for (; !j.atEnd(); j.moveNext()) {
			UpdateFolder(j.item());
		}
	}
}

function execUpdate(folderObj) {
	command = "svn update " + folderObj.Path;
	WScript.StdOut.WriteLine(command);
	var oExec = shell.Exec(command);

	var files = oExec.StdOut;
	var buff;
	var quit = false;
	while(true) {
		while(!files.AtEndOfStream) {
			buff = files.ReadAll();
			WScript.StdOut.WriteLine(buff);
		}
		if(quit) {
			break;
		}
		quit = (oExec.Status == 1);
		WScript.Sleep(100);
	}
}

添付ファイル: fileSvnUpdateAll.js 6355件 [詳細]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS