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

#ref(SvnUpdateAll.js);

 //
 // 指定したフォルダ配下にCheckOutされているsubversionリポジトリを全て更新する
 //
 // [前提] svnコマンドにPATHが通っていること。
 //
 // @author Jomora(kazuhiko@jomura.net)
 // @version 2010.01.08 初版作成
 
 // subversionリポジトリを再帰検索する親フォルダ
 var targetFolder = "C:\\livalit";
 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);
 	}
 }

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