0000: 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 70 74 0d $engine JScript.
0010: 0a 24 75 6e 61 6d 65 20 64 76 63 73 5f 62 7a 72 .$uname dvcs_bzr
0020: 0d 0a 24 64 6e 61 6d 65 20 42 61 63 6b 65 6e 64 ..$dname Backend
0030: 20 64 76 63 73 20 ea 20 62 7a 72 0d 0a 24 61 64 dvcs . bzr..$ad
0040: 64 69 6e 20 67 6c 6f 62 61 6c 0d 0a 0d 0a 2f 2f din global....//
0050: 20 28 63 29 20 d1 ee f1 ed e0 20 c5 e2 e3 e5 ed (c) ..... .....
0060: e8 e9 20 73 68 65 6e 6a 61 20 61 74 20 73 6f 73 .. shenja at sos
0070: 6e 61 2e 7a 70 2e 75 61 0d 0a 2f 2f 20 d1 ea f0 na.zp.ua..// ...
0080: e8 ef f2 20 2d 20 42 61 63 6b 65 6e 64 20 ea 20 ... - Backend .
0090: 62 7a 72 20 e4 eb ff 20 ee f2 ee e1 f0 e0 e6 e5 bzr ... ........
00a0: ed e8 ff 20 e2 e5 f0 f1 e8 ee ed ed ee e3 ee 20 ... ...........
00b0: ea ee ed f2 f0 ee eb ff 2e 20 0d 0a 0d 0a 67 6c ......... ....gl
00c0: 6f 62 61 6c 2e 63 6f 6e 6e 65 63 74 47 6c 6f 62 obal.connectGlob
00d0: 61 6c 73 28 53 65 6c 66 53 63 72 69 70 74 29 0d als(SelfScript).
00e0: 0a 0d 0a 2f 2f 20 e5 f1 eb e8 20 ed e5 20 f1 ee ...// .... .. ..
00f0: e7 e4 e0 e5 f2 fc f1 ff 20 66 73 6f 2c 20 ed e5 ........ fso, ..
0100: ee e1 f5 ee e4 e8 ec ee 20 e2 20 f1 e4 e5 eb e0 ........ . .....
0110: f2 fc 20 e2 20 63 3a 5c 77 69 6e 64 6f 77 73 5c .. . c:\windows\
0120: 73 79 73 74 65 6d 33 32 20 0d 0a 2f 2f 20 72 65 system32 ..// re
0130: 67 73 76 72 33 32 2e 65 78 65 20 73 63 72 72 75 gsvr32.exe scrru
0140: 6e 2e 64 6c 6c 20 0d 0a 2f 2f 20 ef ee f1 eb e5 n.dll ..// .....
0150: 20 fd f2 ee e3 ee 20 66 73 6f 20 e7 e0 f0 e0 e1 ..... fso .....
0160: ee f2 e0 e5 f2 2e 20 c2 ee 20 e2 f1 e5 ec 20 e2 ...... .. .... .
0170: e8 ed ee e2 e0 f2 e0 20 ea ee f0 ef ee f0 e0 f6 ....... ........
0180: e8 ff 20 e4 ee e1 f0 e0 20 68 74 74 70 3a 2f 2f .. ..... http://
0190: 73 6f 63 69 61 6c 2e 74 65 63 68 6e 65 74 2e 6d social.technet.m
01a0: 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 46 6f 72 icrosoft.com/For
01b0: 75 6d 73 2f 72 75 2f 77 69 6e 64 6f 77 73 73 65 ums/ru/windowsse
01c0: 72 76 65 72 72 75 2f 74 68 72 65 61 64 2f 32 38 rverru/thread/28
01d0: 64 35 35 39 30 30 2d 31 34 35 62 2d 34 36 36 62 d55900-145b-466b
01e0: 2d 39 33 64 34 2d 37 34 65 30 38 30 30 36 63 37 -93d4-74e08006c7
01f0: 32 66 0d 0a 76 61 72 20 46 53 4f 20 3d 20 6e 65 2f..var FSO = ne
0200: 77 20 41 63 74 69 76 65 58 4f 62 6a 65 63 74 28 w ActiveXObject(
0210: 22 53 63 72 69 70 74 69 6e 67 2e 46 69 6c 65 53 "Scripting.FileS
0220: 79 73 74 65 6d 4f 62 6a 65 63 74 22 29 3b 0d 0a ystemObject");..
0230: 0d 0a 76 61 72 20 57 73 68 53 68 65 6c 6c 20 3d ..var WshShell =
0240: 20 6e 65 77 20 41 63 74 69 76 65 58 4f 62 6a 65 new ActiveXObje
0250: 63 74 28 22 57 53 63 72 69 70 74 2e 53 68 65 6c ct("WScript.Shel
0260: 6c 22 29 3b 0d 0a 76 61 72 20 54 65 6d 70 44 69 l");..var TempDi
0270: 72 20 3d 20 57 73 68 53 68 65 6c 6c 2e 45 78 70 r = WshShell.Exp
0280: 61 6e 64 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 74 andEnvironmentSt
0290: 72 69 6e 67 73 28 22 25 74 65 6d 70 25 22 29 20 rings("%temp%")
02a0: 2b 20 22 5c 5c 22 3b 0d 0a 76 61 72 20 6d 61 69 + "\\";..var mai
02b0: 6e 46 6f 6c 64 65 72 20 3d 20 70 72 6f 66 69 6c nFolder = profil
02c0: 65 52 6f 6f 74 2e 67 65 74 56 61 6c 75 65 28 22 eRoot.getValue("
02d0: 53 6e 65 67 6f 70 61 74 2f 4d 61 69 6e 46 6f 6c Snegopat/MainFol
02e0: 64 65 72 22 29 0d 0a 0d 0a 76 61 72 20 d1 ee ee der")....var ...
02f0: f2 e2 e5 f2 f1 f2 e2 e8 e5 d4 e0 e9 eb ee e2 c8 ................
0300: d1 f2 e0 f2 f3 f1 ee e2 20 3d 20 5b 5d 3b 0d 0a ........ = [];..
0310: 0d 0a 76 61 72 20 50 61 74 68 54 6f 4f 75 74 70 ..var PathToOutp
0320: 75 74 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 ut = TempDir + "
0330: 62 7a 72 73 74 61 74 75 73 2e 74 78 74 22 20 2f bzrstatus.txt" /
0340: 2f 20 cf e8 f8 e5 ec 20 31 d1 20 f4 e0 e9 eb 20 / ..... 1. ....
0350: e2 20 75 74 66 2d 38 2c 20 e2 fb e2 ee e4 e8 ec . utf-8, .......
0360: 20 f2 f3 e4 e0 20 f1 f2 e0 f2 f3 f1 20 66 6f 73 .... ...... fos
0370: 73 69 6c 20 ef ee f1 eb e5 20 fd f2 ee e3 ee 20 sil ..... .....
0380: f7 e8 f2 e0 e5 ec 20 e5 e3 ee 2e 20 0d 0a 76 61 ...... .... ..va
0390: 72 20 50 61 74 68 54 6f 42 61 74 20 3d 20 54 65 r PathToBat = Te
03a0: 6d 70 44 69 72 20 2b 20 22 62 7a 72 54 72 75 65 mpDir + "bzrTrue
03b0: 2e 62 61 74 22 0d 0a 0d 0a 66 75 6e 63 74 69 6f .bat"....functio
03c0: 6e 20 62 7a 72 5f 67 65 74 52 6f 6f 74 43 61 74 n bzr_getRootCat
03d0: 61 6c 6f 67 28 70 61 74 68 29 7b 0d 0a 20 20 20 alog(path){..
03e0: 20 76 61 72 20 72 65 73 75 6c 74 20 3d 20 22 22 var result = ""
03f0: 3b 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72 20 ;.. for (var
0400: 6b 65 79 20 69 6e 20 d1 ee ee f2 e2 e5 f2 f1 f2 key in .........
0410: e2 e8 e5 d4 e0 e9 eb ee e2 c8 d1 f2 e0 f2 f3 f1 ................
0420: ee e2 29 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 ..){.. if
0430: 20 28 70 61 74 68 2e 69 6e 64 65 78 4f 66 28 6b (path.indexOf(k
0440: 65 79 29 21 3d 2d 31 29 20 7b 0d 0a 20 20 20 20 ey)!=-1) {..
0450: 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d result =
0460: 20 6b 65 79 0d 0a 20 20 20 20 20 20 20 20 20 20 key..
0470: 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20 20 20 break..
0480: 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 69 }.. }.. i
0490: 66 20 28 72 65 73 75 6c 74 3d 3d 75 6e 64 65 66 f (result==undef
04a0: 69 6e 65 64 29 20 7b 0d 0a 20 20 20 20 20 20 20 ined) {..
04b0: 20 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28 22 var f = v8New("
04c0: 46 69 6c 65 22 2c 20 70 61 74 68 29 3b 0d 0a 20 File", path);..
04d0: 20 20 20 20 20 20 20 69 66 20 28 66 2e 45 78 69 if (f.Exi
04e0: 73 74 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 st()) {..
04f0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 ..
0500: 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d var TextDoc =
0510: 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 v8New("TextDocu
0520: 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 20 20 20 ment");..
0530: 20 20 20 20 20 54 65 78 74 44 6f 63 2e c7 e0 ef TextDoc....
0540: e8 f1 e0 f2 fc 28 50 61 74 68 54 6f 4f 75 74 70 .....(PathToOutp
0550: 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 ut, "UTF-8");..
0560: 20 20 20 20 20 20 20 20 20 20 20 ec eb ca e0 f2 .....
0570: e0 eb ee e3 20 3d 20 66 2e 50 61 74 68 3b 0d 0a .... = f.Path;..
0580: 20 20 20 20 20 20 20 20 20 20 20 20 54 65 78 74 Text
0590: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 Doc.AddLine('cd
05a0: 2f 64 22 27 20 2b ec eb ca e0 f2 e0 eb ee e3 20 /d"' +.........
05b0: 2b 27 22 27 29 0d 0a 20 20 20 20 20 20 20 20 20 +'"')..
05c0: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
05d0: 6e 65 28 27 62 7a 72 20 69 6e 66 6f 20 3e 3e 20 ne('bzr info >>
05e0: 22 27 2b 50 61 74 68 54 6f 4f 75 74 70 75 74 2b "'+PathToOutput+
05f0: 27 22 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 '"');..
0600: 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 TextDoc.Write
0610: 28 50 61 74 68 54 6f 42 61 74 2c 20 27 63 70 38 (PathToBat, 'cp8
0620: 36 36 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 66');..
0630: 20 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 ErrCode = Wsh
0640: 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 Shell.Run('"'+Pa
0650: 74 68 54 6f 42 61 74 2b 27 22 27 2c 20 30 2c 20 thToBat+'"', 0,
0660: 31 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 1)..
0670: 54 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 TextDoc.Read(Pat
0680: 68 54 6f 4f 75 74 70 75 74 2c 20 22 55 54 46 2d hToOutput, "UTF-
0690: 38 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 8");..
06a0: 20 20 69 66 20 28 54 65 78 74 44 6f 63 2e 4c 69 if (TextDoc.Li
06b0: 6e 65 43 6f 75 6e 74 28 29 20 3d 3d 20 30 29 20 neCount() == 0)
06c0: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
06d0: 20 20 20 72 65 74 75 72 6e 20 22 22 20 2f 2f f7 return "" //.
06e0: f2 ee 20 f2 ee 20 ef ee f8 eb ee 20 ed e5 20 f2 .. .. ..... .. .
06f0: e0 ea 2e 20 0d 0a 20 20 20 20 20 20 20 20 20 20 ... ..
0700: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 }.. ..
0710: 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 69 var i
0720: 3d 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 =0;..
0730: 20 66 6f 72 20 28 76 61 72 20 69 3d 31 3b 20 69 for (var i=1; i
0740: 3c 3d 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 6f <=TextDoc.LineCo
0750: 75 6e 74 28 29 3b 20 69 2b 2b 29 0d 0a 20 20 20 unt(); i++)..
0760: 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 {..
0770: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
0780: 72 20 3d 20 54 65 78 74 44 6f 63 2e 47 65 74 4c r = TextDoc.GetL
0790: 69 6e 65 28 69 29 3b 0d 0a 20 20 20 20 20 20 20 ine(i);..
07a0: 20 20 20 20 20 20 20 20 20 72 65 20 3d 20 6e 65 re = ne
07b0: 77 20 52 65 67 45 78 70 28 2f 2e 2a 72 6f 6f 74 w RegExp(/.*root
07c0: 3a 5c 73 28 2e 2a 29 2f 29 3b 0d 0a 20 20 20 20 :\s(.*)/);..
07d0: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
07e0: 6d 61 74 68 65 73 20 3d 20 72 2e 6d 61 74 63 68 mathes = r.match
07f0: 28 72 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 (re);..
0800: 20 20 20 20 20 20 20 69 66 20 28 6d 61 74 68 65 if (mathe
0810: 73 20 26 26 20 6d 61 74 68 65 73 2e 6c 65 6e 67 s && mathes.leng
0820: 74 68 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 th) {..
0830: 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 70 rootp
0840: 61 74 68 20 3d 20 6d 61 74 68 65 73 5b 31 5d 2e ath = mathes[1].
0850: 72 65 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 27 replace(/\//g, '
0860: 5c 5c 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 \\');..
0870: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 72 if (r
0880: 6f 6f 74 70 61 74 68 2e 73 75 62 73 74 72 28 30 ootpath.substr(0
0890: 2c 31 29 20 3d 3d 20 22 2e 22 29 20 72 6f 6f 74 ,1) == ".") root
08a0: 70 61 74 68 20 3d 20 ec eb ca e0 f2 e0 eb ee e3 path = .........
08b0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
08c0: 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 result =
08d0: 72 6f 6f 74 70 61 74 68 3b 0d 0a 20 20 20 20 20 rootpath;..
08e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d1 .
08f0: ee ee f2 e2 e5 f2 f1 f2 e2 e8 e5 d4 e0 e9 eb ee ................
0900: e2 c8 d1 f2 e0 f2 f3 f1 ee e2 5b 72 65 73 75 6c ..........[resul
0910: 74 5d 20 3d 20 7b 7d 3b 0d 0a 20 20 20 20 20 20 t] = {};..
0920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
0930: 65 61 6b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 eak..
0940: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 }..
0950: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 }..
0960: 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 TextDoc.Clear
0970: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ();..
0980: 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 TextDoc.Write(P
0990: 61 74 68 54 6f 4f 75 74 70 75 74 2c 20 22 55 54 athToOutput, "UT
09a0: 46 2d 38 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 F-8");..
09b0: 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 }.. }.. re
09c0: 74 75 72 6e 20 72 65 73 75 6c 74 0d 0a 7d 20 2f turn result..} /
09d0: 2f 62 7a 72 5f 67 65 74 52 6f 6f 74 43 61 74 61 /bzr_getRootCata
09e0: 6c 6f 67 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 log....function
09f0: 62 7a 72 5f 74 65 73 74 28 70 61 74 68 54 6f 43 bzr_test(pathToC
0a00: 61 74 61 6c 6f 67 29 20 7b 0d 0a 20 20 20 20 0d atalog) {.. .
0a10: 0a 20 20 20 20 76 61 72 20 66 20 3d 20 76 38 4e . var f = v8N
0a20: 65 77 28 22 46 69 6c 65 22 2c 20 70 61 74 68 54 ew("File", pathT
0a30: 6f 43 61 74 61 6c 6f 67 29 3b 0d 0a 20 20 20 20 oCatalog);..
0a40: 69 66 20 28 21 66 2e 45 78 69 73 74 28 29 29 20 if (!f.Exist())
0a50: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 0d 0a return false; ..
0a60: 20 20 20 20 69 66 20 28 21 66 2e 49 73 44 69 72 if (!f.IsDir
0a70: 65 63 74 6f 72 79 28 29 29 20 72 65 74 75 72 6e ectory()) return
0a80: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 76 61 72 false;.. var
0a90: 20 66 20 3d 20 76 38 4e 65 77 28 22 46 69 6c 65 f = v8New("File
0aa0: 22 2c 20 46 53 4f 2e 42 75 69 6c 64 50 61 74 68 ", FSO.BuildPath
0ab0: 28 70 61 74 68 54 6f 43 61 74 61 6c 6f 67 2c 20 (pathToCatalog,
0ac0: 27 2e 62 7a 72 27 29 29 3b 0d 0a 20 20 20 20 69 '.bzr'));.. i
0ad0: 66 20 28 21 66 2e 45 78 69 73 74 28 29 29 20 7b f (!f.Exist()) {
0ae0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
0af0: 20 66 61 6c 73 65 0d 0a 20 20 20 20 7d 0d 0a 20 false.. }..
0b00: 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 0d 0a return true..
0b10: 7d 20 2f 2f 62 7a 72 5f 74 65 73 74 0d 0a 0d 0a } //bzr_test....
0b20: 66 75 6e 63 74 69 6f 6e 20 62 7a 72 5f 67 65 74 function bzr_get
0b30: 53 74 61 74 75 73 46 6f 72 43 61 74 61 6c 6f 67 StatusForCatalog
0b40: 28 70 61 74 68 54 6f 43 61 74 61 6c 6f 67 2c 20 (pathToCatalog,
0b50: 56 61 6c 75 65 54 61 62 6c 65 73 46 69 6c 65 73 ValueTablesFiles
0b60: 29 20 7b 0d 0a 0d 0a 20 20 20 20 d1 ee ee f2 e2 ) {.... .....
0b70: e5 f2 f1 f2 e2 e8 e5 d4 e0 e9 eb ee e2 c8 d1 f2 ................
0b80: e0 f2 f3 f1 ee e2 5b 70 61 74 68 54 6f 43 61 74 ......[pathToCat
0b90: 61 6c 6f 67 5d 20 3d 20 7b 7d 3b 0d 0a 20 20 20 alog] = {};..
0ba0: 20 0d 0a 20 20 20 20 76 61 72 20 d1 ee ee f2 e2 .. var .....
0bb0: e5 f2 f1 f2 e2 e8 e5 d1 f2 e0 f2 f3 f1 ee e2 20 ...............
0bc0: 3d 20 d1 ee ee f2 e2 e5 f2 f1 f2 e2 e8 e5 d4 e0 = ..............
0bd0: e9 eb ee e2 c8 d1 f2 e0 f2 f3 f1 ee e2 5b 70 61 .............[pa
0be0: 74 68 54 6f 43 61 74 61 6c 6f 67 5d 3b 0d 0a 20 thToCatalog];..
0bf0: 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d var TextDoc =
0c00: 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 v8New("TextDocu
0c10: 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 ment");.. Tex
0c20: 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 tDoc.Write(PathT
0c30: 6f 4f 75 74 70 75 74 2c 20 22 55 54 46 2d 38 22 oOutput, "UTF-8"
0c40: 29 0d 0a 20 20 20 20 76 61 72 20 54 65 78 74 44 ).. var TextD
0c50: 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 78 74 oc = v8New("Text
0c60: 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 Document");..
0c70: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
0c80: 28 27 63 64 20 2f 64 20 22 27 20 2b 70 61 74 68 ('cd /d "' +path
0c90: 54 6f 43 61 74 61 6c 6f 67 2b 27 22 27 29 3b 0d ToCatalog+'"');.
0ca0: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 . TextDoc.Add
0cb0: 4c 69 6e 65 28 27 62 7a 72 20 73 74 61 74 75 73 Line('bzr status
0cc0: 20 2d 53 20 3e 3e 20 22 27 2b 50 61 74 68 54 6f -S >> "'+PathTo
0cd0: 4f 75 74 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 Output+'"');..
0ce0: 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 TextDoc.Write(
0cf0: 50 61 74 68 54 6f 42 61 74 2c 20 22 63 70 38 36 PathToBat, "cp86
0d00: 36 22 29 3b 0d 0a 20 20 20 20 45 72 72 43 6f 64 6");.. ErrCod
0d10: 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e e = WshShell.Run
0d20: 28 27 22 27 2b 50 61 74 68 54 6f 42 61 74 2b 27 ('"'+PathToBat+'
0d30: 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 20 "', 0, 1)..
0d40: 20 20 20 20 20 20 20 2f 2f 54 65 78 74 44 6f 63 //TextDoc
0d50: 2e 52 65 61 64 28 50 61 74 68 54 6f 4f 75 74 70 .Read(PathToOutp
0d60: 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 ut, "UTF-8");..
0d70: 20 20 20 20 20 20 20 20 20 20 20 54 65 78 74 44 TextD
0d80: 6f 63 2e 52 65 61 64 28 50 61 74 68 54 6f 4f 75 oc.Read(PathToOu
0d90: 74 70 75 74 2c 20 22 63 70 38 36 36 20 22 29 3b tput, "cp866 ");
0da0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 .. if
0db0: 20 28 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 6f (TextDoc.LineCo
0dc0: 75 6e 74 28 29 20 3d 3d 20 30 29 20 7b 0d 0a 20 unt() == 0) {..
0dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 r
0de0: 65 74 75 72 6e 20 66 61 6c 73 65 20 2f 2f f7 f2 eturn false //..
0df0: ee 20 f2 ee 20 ef ee f8 eb ee 20 ed e5 20 f2 e0 . .. ..... .. ..
0e00: ea 2e 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 .. ..
0e10: 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 }..
0e20: 76 61 72 20 69 3d 30 3b 0d 0a 20 20 20 20 20 20 var i=0;..
0e30: 20 20 20 20 20 20 72 65 20 3d 20 6e 65 77 20 52 re = new R
0e40: 65 67 45 78 70 28 2f 2e 2a 28 4d 7c 4e 7c 44 7c egExp(/.*(M|N|D|
0e50: 5c 3f 29 5c 73 2a 28 2e 2a 29 2f 29 3b 0d 0a 20 \?)\s*(.*)/);..
0e60: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 ..
0e70: 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 for (va
0e80: 72 20 69 3d 31 3b 20 69 3c 3d 54 65 78 74 44 6f r i=1; i<=TextDo
0e90: 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 3b 20 69 c.LineCount(); i
0ea0: 2b 2b 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ++)..
0eb0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
0ec0: 20 20 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 var r = Text
0ed0: 44 6f 63 2e 47 65 74 4c 69 6e 65 28 69 29 3b 0d Doc.GetLine(i);.
0ee0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
0ef0: 20 76 61 72 20 6d 61 74 68 65 73 20 3d 20 72 2e var mathes = r.
0f00: 6d 61 74 63 68 28 72 65 29 3b 0d 0a 20 20 20 20 match(re);..
0f10: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
0f20: 6d 61 74 68 65 73 20 26 26 20 6d 61 74 68 65 73 mathes && mathes
0f30: 2e 6c 65 6e 67 74 68 29 20 7b 0d 0a 20 20 20 20 .length) {..
0f40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f50: 66 69 6c 65 6e 61 6d 65 20 3d 20 22 22 2b 6d 61 filename = ""+ma
0f60: 74 68 65 73 5b 32 5d 0d 0a 20 20 20 20 20 20 20 thes[2]..
0f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c fil
0f80: 65 6e 61 6d 65 20 3d 20 66 69 6c 65 6e 61 6d 65 ename = filename
0f90: 2e 72 65 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 .replace(/\//g,
0fa0: 27 5c 5c 27 29 3b 20 0d 0a 20 20 20 20 20 20 20 '\\'); ..
0fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 swi
0fc0: 74 63 68 20 28 6d 61 74 68 65 73 5b 31 5d 29 20 tch (mathes[1])
0fd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0fe0: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 {..
0ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1000: 20 63 61 73 65 20 22 4d 22 3a 0d 0a 20 20 20 20 case "M":..
1010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1020: 20 20 20 20 d1 ee ee f2 e2 e5 f2 f1 f2 e2 e8 e5 ............
1030: d1 f2 e0 f2 f3 f1 ee e2 5b 46 53 4f 2e 42 75 69 ........[FSO.Bui
1040: 6c 64 50 61 74 68 28 70 61 74 68 54 6f 43 61 74 ldPath(pathToCat
1050: 61 6c 6f 67 2c 20 66 69 6c 65 6e 61 6d 65 29 5d alog, filename)]
1060: 3d 20 22 45 44 49 54 45 44 22 0d 0a 20 20 20 20 = "EDITED"..
1070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1080: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 break;..
1090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
10a0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 ..
10b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ca
10c0: 73 65 20 22 4e 22 3a 0d 0a 20 20 20 20 20 20 20 se "N":..
10d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
10e0: 20 d1 ee ee f2 e2 e5 f2 f1 f2 e2 e8 e5 d1 f2 e0 ...............
10f0: f2 f3 f1 ee e2 5b 46 53 4f 2e 42 75 69 6c 64 50 .....[FSO.BuildP
1100: 61 74 68 28 70 61 74 68 54 6f 43 61 74 61 6c 6f ath(pathToCatalo
1110: 67 2c 20 66 69 6c 65 6e 61 6d 65 29 5d 3d 20 22 g, filename)]= "
1120: 41 44 44 45 44 22 0d 0a 20 20 20 20 20 20 20 20 ADDED"..
1130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1140: 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 break;..
1150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1160: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
1170: 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 22 case "
1180: 3f 22 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ?":..
1190: 20 20 20 20 20 20 20 20 20 20 20 20 20 d1 ee ee ...
11a0: f2 e2 e5 f2 f1 f2 e2 e8 e5 d1 f2 e0 f2 f3 f1 ee ................
11b0: e2 5b 46 53 4f 2e 42 75 69 6c 64 50 61 74 68 28 .[FSO.BuildPath(
11c0: 70 61 74 68 54 6f 43 61 74 61 6c 6f 67 2c 20 66 pathToCatalog, f
11d0: 69 6c 65 6e 61 6d 65 29 5d 3d 20 22 4e 4f 54 56 ilename)]= "NOTV
11e0: 45 52 53 49 4f 4e 45 44 22 0d 0a 20 20 20 20 20 ERSIONED"..
11f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1200: 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 break;..
1210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1220: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ..
1230: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 cas
1240: 65 20 22 44 22 3a 0d 0a 20 20 20 20 20 20 20 20 e "D":..
1250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1260: d1 ee ee f2 e2 e5 f2 f1 f2 e2 e8 e5 d1 f2 e0 f2 ................
1270: f3 f1 ee e2 5b 46 53 4f 2e 42 75 69 6c 64 50 61 ....[FSO.BuildPa
1280: 74 68 28 70 61 74 68 54 6f 43 61 74 61 6c 6f 67 th(pathToCatalog
1290: 2c 20 66 69 6c 65 6e 61 6d 65 29 5d 3d 20 22 44 , filename)]= "D
12a0: 45 4c 45 54 45 44 22 0d 0a 20 20 20 20 20 20 20 ELETED"..
12b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12c0: 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 break;..
12d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a }..
12e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12f0: 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0d 0a 20 continue;..
1300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
1310: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d .. }.
1320: 0a 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 72 . .. r
1330: 65 74 75 72 6e 20 74 72 75 65 0d 0a 7d 20 2f 2f eturn true..} //
1340: 62 7a 72 5f 67 65 74 53 74 61 74 75 73 46 6f 72 bzr_getStatusFor
1350: 43 61 74 61 6c 6f 67 0d 0a 0d 0a 66 75 6e 63 74 Catalog....funct
1360: 69 6f 6e 20 62 7a 72 5f 67 65 74 46 69 6c 65 53 ion bzr_getFileS
1370: 74 61 74 75 73 28 70 61 74 68 54 6f 43 61 74 61 tatus(pathToCata
1380: 6c 6f 67 2c 20 70 61 74 68 54 6f 46 69 6c 65 29 log, pathToFile)
1390: 7b 0d 0a 20 20 20 20 76 61 72 20 eb ca e0 f2 e0 {.. var .....
13a0: eb ee e3 20 3d 20 70 61 74 68 54 6f 43 61 74 61 ... = pathToCata
13b0: 6c 6f 67 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f log.. var roo
13c0: 74 43 61 74 61 6c 6f 67 20 3d 20 62 7a 72 5f 67 tCatalog = bzr_g
13d0: 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 61 etRootCatalog(pa
13e0: 74 68 54 6f 46 69 6c 65 29 0d 0a 20 20 20 20 0d thToFile).. .
13f0: 0a 20 20 20 20 d1 ee ee f2 e2 e5 f2 f1 e2 e8 e5 . ...........
1400: d4 e0 e9 eb ee e2 20 3d 20 d1 ee ee f2 e2 e5 f2 ...... = .......
1410: f1 f2 e2 e8 e5 d4 e0 e9 eb ee e2 c8 d1 f2 e0 f2 ................
1420: f3 f1 ee e2 5b 72 6f 6f 74 43 61 74 61 6c 6f 67 ....[rootCatalog
1430: 5d 3b 0d 0a 20 20 20 20 69 66 20 28 d1 ee ee f2 ];.. if (....
1440: e2 e5 f2 f1 e2 e8 e5 d4 e0 e9 eb ee e2 20 3d 3d ............. ==
1450: 20 75 6e 64 65 66 69 6e 65 64 29 20 72 65 74 75 undefined) retu
1460: 72 6e 20 6e 75 6c 6c 20 0d 0a 20 20 20 20 0d 0a rn null .. ..
1470: 20 20 20 20 72 65 74 75 72 6e 20 28 d1 ee ee f2 return (....
1480: e2 e5 f2 f1 e2 e8 e5 d4 e0 e9 eb ee e2 5b 70 61 .............[pa
1490: 74 68 54 6f 46 69 6c 65 5d 20 3d 3d 20 75 6e 64 thToFile] == und
14a0: 65 66 69 6e 65 64 29 20 3f 20 6e 75 6c 6c 20 3a efined) ? null :
14b0: 20 d1 ee ee f2 e2 e5 f2 f1 e2 e8 e5 d4 e0 e9 eb ...............
14c0: ee e2 5b 70 61 74 68 54 6f 46 69 6c 65 5d 0d 0a ..[pathToFile]..
14d0: 20 20 20 20 0d 0a 7d 20 2f 2f 62 7a 72 5f 67 65 ..} //bzr_ge
14e0: 74 46 69 6c 65 53 74 61 74 75 73 0d 0a 0d 0a 66 tFileStatus....f
14f0: 75 6e 63 74 69 6f 6e 20 62 7a 72 5f 61 64 64 28 unction bzr_add(
1500: 70 61 74 68 54 6f 46 69 6c 65 2c 20 70 61 72 61 pathToFile, para
1510: 6d 32 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 72 m2) {.. var r
1520: 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 62 7a 72 ootCatalog = bzr
1530: 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 _getRootCatalog(
1540: 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 pathToFile);..
1550: 20 20 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28 var f = v8New(
1560: 22 46 69 6c 65 22 2c 20 70 61 74 68 54 6f 46 69 "File", pathToFi
1570: 6c 65 29 3b 0d 0a 20 20 20 20 69 66 20 28 66 2e le);.. if (f.
1580: 49 73 44 69 72 65 63 74 6f 72 79 28 29 29 20 7b IsDirectory()) {
1590: 0d 0a 20 20 20 20 20 20 20 20 70 61 74 68 54 6f .. pathTo
15a0: 46 69 6c 65 20 3d 20 27 2e 27 0d 0a 20 20 20 20 File = '.'..
15b0: 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 } else {..
15c0: 20 20 70 61 74 68 54 6f 46 69 6c 65 20 3d 20 27 pathToFile = '
15d0: 22 27 2b 70 61 74 68 54 6f 46 69 6c 65 2b 27 22 "'+pathToFile+'"
15e0: 27 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a '.. }.. ..
15f0: 20 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 var TextDoc
1600: 3d 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 = v8New("TextDoc
1610: 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 ument");.. Te
1620: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 xtDoc.AddLine('c
1630: 64 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 d /d "'+rootCata
1640: 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 20 20 54 65 log+'"').. Te
1650: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 62 xtDoc.AddLine('b
1660: 7a 72 20 61 64 64 20 27 20 2b 70 61 74 68 54 6f zr add ' +pathTo
1670: 46 69 6c 65 29 3b 0d 0a 20 20 20 20 54 65 78 74 File);.. Text
1680: 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f Doc.Write(PathTo
1690: 42 61 74 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a Bat, 'cp866');..
16a0: 20 20 20 20 0d 0a 20 20 20 20 54 65 78 74 44 6f .. TextDo
16b0: 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 c.Clear();..
16c0: 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 ErrCode = WshShe
16d0: 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 ll.Run('"'+PathT
16e0: 6f 42 61 74 2b 27 22 27 2c 20 30 2c 20 31 29 0d oBat+'"', 0, 1).
16f0: 0a 20 20 20 20 72 65 74 75 72 6e 20 45 72 72 43 . return ErrC
1700: 6f 64 65 0d 0a 7d 20 2f 2f 62 7a 72 5f 61 64 64 ode..} //bzr_add
1710: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 7a 72 ....function bzr
1720: 5f 72 75 6e 28 70 61 74 68 54 6f 46 69 6c 65 29 _run(pathToFile)
1730: 7b 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 {.. var rootC
1740: 61 74 61 6c 6f 67 20 3d 20 62 7a 72 5f 67 65 74 atalog = bzr_get
1750: 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 68 RootCatalog(path
1760: 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 ToFile);.. va
1770: 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 r TextDoc = v8Ne
1780: 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 w("TextDocument"
1790: 29 3b 0d 0a 20 20 20 20 c7 e0 ef f3 f1 f2 e8 f2 );.. ........
17a0: fc cf f0 e8 eb ee e6 e5 ed e8 e5 28 27 62 7a 72 ...........('bzr
17b0: 20 65 78 70 6c 6f 72 65 72 20 22 27 2b 72 6f 6f explorer "'+roo
17c0: 74 43 61 74 61 6c 6f 67 2b 27 22 27 2c 20 22 22 tCatalog+'"', ""
17d0: 2c 20 66 61 6c 73 65 29 3b 0d 0a 20 20 20 20 54 , false);.. T
17e0: 65 78 74 44 6f 63 20 3d 20 6e 75 6c 6c 3b 0d 0a extDoc = null;..
17f0: 7d 20 2f 2f 62 7a 72 5f 72 75 6e 0d 0a 0d 0a 66 } //bzr_run....f
1800: 75 6e 63 74 69 6f 6e 20 62 7a 72 5f 67 65 74 46 unction bzr_getF
1810: 69 6c 65 41 74 52 65 76 69 73 69 6f 6e 28 70 61 ileAtRevision(pa
1820: 74 68 54 6f 46 69 6c 65 2c 20 72 65 76 29 7b 0d thToFile, rev){.
1830: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 54 . .. var T
1840: 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 extDoc = v8New("
1850: 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d TextDocument");.
1860: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e c7 e0 ef . TextDoc....
1870: e8 f1 e0 f2 fc 28 50 61 74 68 54 6f 4f 75 74 70 .....(PathToOutp
1880: 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 ut, "UTF-8");..
1890: 20 20 20 0d 0a 20 20 20 20 76 61 72 20 66 20 3d .. var f =
18a0: 20 76 38 4e 65 77 28 22 46 69 6c 65 22 2c 20 70 v8New("File", p
18b0: 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 athToFile);..
18c0: 20 69 66 20 28 21 66 2e 45 78 69 73 74 28 29 29 if (!f.Exist())
18d0: 20 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 .. {..
18e0: 20 20 4d 65 73 73 61 67 65 28 22 20 f4 e0 e9 eb Message(" ....
18f0: e0 20 f4 e8 e7 e8 f7 e5 f1 ea e8 20 ed e5 20 f1 . ......... .. .
1900: f3 f9 e5 f1 f2 e2 f3 e5 f2 2e 2e 2e 22 29 20 0d ............") .
1910: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
1920: 6e 75 6c 6c 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 null;.. }..
1930: 20 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f var rootCatalo
1940: 67 20 3d 20 62 7a 72 5f 67 65 74 52 6f 6f 74 43 g = bzr_getRootC
1950: 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 69 6c atalog(pathToFil
1960: 65 29 0d 0a 20 20 20 20 69 66 20 28 72 65 76 2e e).. if (rev.
1970: 6c 65 6e 67 74 68 20 21 3d 30 29 20 7b 0d 0a 20 length !=0) {..
1980: 20 20 20 20 20 20 20 76 61 72 20 66 69 6c 65 72 var filer
1990: 65 76 20 3d 20 46 53 4f 2e 42 75 69 6c 64 50 61 ev = FSO.BuildPa
19a0: 74 68 28 54 65 6d 70 44 69 72 2c 20 72 65 76 2b th(TempDir, rev+
19b0: 66 2e c8 ec ff 29 3b 0d 0a 20 20 20 20 20 20 20 f....);..
19c0: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
19d0: 28 27 63 64 20 2f 64 20 22 27 20 2b 72 6f 6f 74 ('cd /d "' +root
19e0: 43 61 74 61 6c 6f 67 20 2b 27 22 27 29 0d 0a 20 Catalog +'"')..
19f0: 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 41 TextDoc.A
1a00: 64 64 4c 69 6e 65 28 27 62 7a 72 20 63 61 74 20 ddLine('bzr cat
1a10: 2d 72 20 27 2b 72 65 76 20 2b 27 20 22 27 2b 70 -r '+rev +' "'+p
1a20: 61 74 68 54 6f 46 69 6c 65 20 2b 27 22 20 3e 20 athToFile +'" >
1a30: 27 20 2b 20 66 69 6c 65 72 65 76 29 0d 0a 20 20 ' + filerev)..
1a40: 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 TextDoc.Wr
1a50: 69 74 65 28 50 61 74 68 54 6f 42 61 74 2c 20 27 ite(PathToBat, '
1a60: 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 20 20 cp866');..
1a70: 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 TextDoc.Clear(
1a80: 29 3b 0d 0a 20 20 20 20 20 20 20 20 45 72 72 43 );.. ErrC
1a90: 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e 52 ode = WshShell.R
1aa0: 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 74 un('"'+PathToBat
1ab0: 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 +'"', 0, 1)..
1ac0: 20 20 20 20 20 72 65 74 75 72 6e 20 66 69 6c 65 return file
1ad0: 72 65 76 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 rev;.. }..
1ae0: 20 72 65 74 75 72 6e 20 6e 75 6c 6c 0d 0a 7d 20 return null..}
1af0: 2f 2f 62 7a 72 5f 67 65 74 46 69 6c 65 41 74 52 //bzr_getFileAtR
1b00: 65 76 69 73 69 6f 6e 0d 0a 0d 0a 0d 0a 66 75 6e evision......fun
1b10: 63 74 69 6f 6e 20 62 7a 72 5f 63 6f 6d 6d 69 74 ction bzr_commit
1b20: 28 70 61 74 68 54 6f 46 69 6c 65 2c 20 6d 65 73 (pathToFile, mes
1b30: 73 61 67 65 29 20 7b 0d 0a 20 20 20 20 76 61 72 sage) {.. var
1b40: 20 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 62 rootCatalog = b
1b50: 7a 72 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f zr_getRootCatalo
1b60: 67 28 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a g(pathToFile);..
1b70: 20 20 20 20 76 61 72 20 74 65 6d 70 66 69 6c 65 var tempfile
1b80: 20 3d 20 47 65 74 54 65 6d 70 46 69 6c 65 4e 61 = GetTempFileNa
1b90: 6d 65 28 22 74 78 74 22 29 3b 0d 0a 20 20 20 20 me("txt");..
1ba0: 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28 22 46 var f = v8New("F
1bb0: 69 6c 65 22 2c 20 70 61 74 68 54 6f 46 69 6c 65 ile", pathToFile
1bc0: 29 3b 0d 0a 20 20 20 20 69 66 20 28 66 2e 49 73 );.. if (f.Is
1bd0: 44 69 72 65 63 74 6f 72 79 28 29 29 20 7b 0d 0a Directory()) {..
1be0: 20 20 20 20 20 20 20 20 70 61 74 68 54 6f 46 69 pathToFi
1bf0: 6c 65 20 3d 20 27 27 0d 0a 20 20 20 20 7d 20 65 le = ''.. } e
1c00: 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 70 lse {.. p
1c10: 61 74 68 54 6f 46 69 6c 65 20 3d 20 27 22 27 2b athToFile = '"'+
1c20: 70 61 74 68 54 6f 46 69 6c 65 2b 27 22 27 0d 0a pathToFile+'"'..
1c30: 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 20 54 }.. var T
1c40: 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 extDoc = v8New("
1c50: 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d TextDocument");.
1c60: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 . TextDoc.Add
1c70: 4c 69 6e 65 28 27 63 64 20 2f 64 20 22 27 2b 72 Line('cd /d "'+r
1c80: 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d ootCatalog+'"').
1c90: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 . TextDoc.Add
1ca0: 4c 69 6e 65 28 27 62 7a 72 20 63 6f 6d 6d 69 74 Line('bzr commit
1cb0: 20 27 20 2b 70 61 74 68 54 6f 46 69 6c 65 2b 27 ' +pathToFile+'
1cc0: 20 2d 2d 66 69 6c 65 3d 22 27 2b 74 65 6d 70 66 --file="'+tempf
1cd0: 69 6c 65 2b 27 22 27 29 3b 0d 0a 20 20 20 20 54 ile+'"');.. T
1ce0: 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 extDoc.AddLine('
1cf0: 65 78 69 74 27 29 3b 0d 0a 20 20 20 20 0d 0a 20 exit');.. ..
1d00: 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 TextDoc.Write
1d10: 28 50 61 74 68 54 6f 42 61 74 2c 20 27 63 70 38 (PathToBat, 'cp8
1d20: 36 36 27 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 66');.. ..
1d30: 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 TextDoc.Clear()
1d40: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 53 ;.. TextDoc.S
1d50: 65 74 54 65 78 74 28 6d 65 73 73 61 67 65 29 3b etText(message);
1d60: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 .. TextDoc.Wr
1d70: 69 74 65 28 74 65 6d 70 66 69 6c 65 2c 20 27 75 ite(tempfile, 'u
1d80: 74 66 2d 38 27 29 3b 0d 0a 20 20 20 20 45 72 72 tf-8');.. Err
1d90: 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e Code = WshShell.
1da0: 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 Run('"'+PathToBa
1db0: 74 2b 27 22 27 2c 20 31 2c 20 31 29 0d 0a 20 20 t+'"', 1, 1)..
1dc0: 20 20 72 65 74 75 72 6e 20 45 72 72 43 6f 64 65 return ErrCode
1dd0: 0d 0a 7d 20 2f 2f 62 7a 72 5f 63 6f 6d 6d 69 74 ..} //bzr_commit
1de0: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 7a 72 ....function bzr
1df0: 5f 67 65 74 46 69 6c 65 50 61 74 68 54 6f 44 69 _getFilePathToDi
1e00: 66 66 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d ff(param1, param
1e10: 32 29 20 7b 20 2f 2f f2 e5 ea f3 f9 e0 ff 20 e2 2) { //....... .
1e20: e5 f0 f1 e8 ff 20 f4 e0 e9 eb e0 20 f1 20 ef f0 ..... ..... . ..
1e30: e5 e4 fb e4 f3 f9 e5 e9 2e 2e 2e 0d 0a 20 20 20 .............
1e40: 20 0d 0a 20 20 20 20 76 61 72 20 54 65 78 74 44 .. var TextD
1e50: 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 78 74 oc = v8New("Text
1e60: 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 Document");..
1e70: 20 54 65 78 74 44 6f 63 2e c7 e0 ef e8 f1 e0 f2 TextDoc........
1e80: fc 28 50 61 74 68 54 6f 4f 75 74 70 75 74 2c 20 .(PathToOutput,
1e90: 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 2f "UTF-8");.. /
1ea0: 2f 20 e2 ee e7 e2 f0 e0 f9 e0 f2 fc 20 e1 f3 e4 / .......... ...
1eb0: e5 ec 20 f1 f2 f0 f3 ea f2 f0 f3 2c 20 70 61 74 .. ........, pat
1ec0: 68 31 20 e8 20 70 61 74 68 32 20 0d 0a 20 20 20 h1 . path2 ..
1ed0: 20 76 61 72 20 70 61 74 68 54 6f 46 69 6c 65 20 var pathToFile
1ee0: 3d 20 70 61 72 61 6d 31 3b 0d 0a 20 20 20 20 76 = param1;.. v
1ef0: 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d ar rootCatalog =
1f00: 20 62 7a 72 5f 67 65 74 52 6f 6f 74 43 61 74 61 bzr_getRootCata
1f10: 6c 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 29 3b log(pathToFile);
1f20: 0d 0a 20 20 20 20 70 61 72 61 6d 32 2e 69 6e 73 .. param2.ins
1f30: 65 72 74 28 22 70 61 74 68 31 22 2c 20 70 61 74 ert("path1", pat
1f40: 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 70 hToFile);.. p
1f50: 61 72 61 6d 32 2e 69 6e 73 65 72 74 28 22 70 61 aram2.insert("pa
1f60: 74 68 32 22 2c 20 22 22 29 3b 0d 0a 20 20 20 20 th2", "");..
1f70: 0d 0a 20 20 20 20 76 61 72 20 66 20 3d 20 76 38 .. var f = v8
1f80: 4e 65 77 28 22 46 69 6c 65 22 2c 20 70 61 74 68 New("File", path
1f90: 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 69 66 ToFile);.. if
1fa0: 20 28 21 66 2e 45 78 69 73 74 28 29 29 20 72 65 (!f.Exist()) re
1fb0: 74 75 72 6e 20 66 61 6c 73 65 0d 0a 20 20 20 20 turn false..
1fc0: 76 61 72 20 70 61 74 68 32 20 3d 20 47 65 74 54 var path2 = GetT
1fd0: 65 6d 70 46 69 6c 65 4e 61 6d 65 28 66 2e 45 78 empFileName(f.Ex
1fe0: 74 65 6e 73 69 6f 6e 2e 73 75 62 73 74 72 28 31 tension.substr(1
1ff0: 29 29 3b 0d 0a 20 20 20 20 2f 2f 20 c7 e0 ef f3 ));.. // ....
2000: f1 e8 ec 20 73 68 65 6c 6c 20 e8 20 ed e0 e9 e4 ... shell . ....
2010: e5 ec 20 e2 e5 f0 f1 e8 e8 20 f4 e0 e9 eb ee e2 .. ...... ......
2020: 2e 20 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e . .. TextDoc.
2030: 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 54 65 Clear();.. Te
2040: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 xtDoc.AddLine('c
2050: 64 20 2f 64 20 22 27 20 2b 72 6f 6f 74 43 61 74 d /d "' +rootCat
2060: 61 6c 6f 67 20 2b 27 22 27 29 0d 0a 20 20 20 20 alog +'"')..
2070: 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 TextDoc.AddLine(
2080: 27 62 7a 72 20 63 61 74 20 22 27 2b 70 61 74 68 'bzr cat "'+path
2090: 54 6f 46 69 6c 65 2b 27 22 20 3e 20 22 27 20 2b ToFile+'" > "' +
20a0: 70 61 74 68 32 2b 27 22 27 29 3b 0d 0a 20 20 20 path2+'"');..
20b0: 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 TextDoc.Write(P
20c0: 61 74 68 54 6f 42 61 74 2c 20 27 63 70 38 36 36 athToBat, 'cp866
20d0: 27 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 45 ');.. .. E
20e0: 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c rrCode = WshShel
20f0: 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f l.Run('"'+PathTo
2100: 42 61 74 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a Bat+'"', 0, 1)..
2110: 20 20 20 20 76 61 72 20 66 20 3d 20 76 38 4e 65 var f = v8Ne
2120: 77 28 22 46 69 6c 65 22 2c 20 70 61 74 68 32 29 w("File", path2)
2130: 3b 0d 0a 20 20 20 20 69 66 20 28 21 66 2e 45 78 ;.. if (!f.Ex
2140: 69 73 74 28 29 29 20 7b 20 2f 2f 20 d4 e0 e9 eb ist()) { // ....
2150: 20 e1 f3 e4 e5 f2 20 e2 f1 e5 20 f0 e0 e2 ed ee ..... ... .....
2160: 2c 20 ed ee 20 ef f3 f1 f2 ee e9 2e 20 c4 f3 ec , .. ....... ...
2170: e0 fe 20 ef f0 ee f1 f2 ff f2 2e 20 0d 0a 20 20 .. ........ ..
2180: 20 20 20 20 20 20 4d 65 73 73 61 67 65 28 22 cd Message(".
2190: e5 f3 e4 e0 f7 ed e0 ff 20 ef ee ef fb f2 ea e0 ........ .......
21a0: 20 f1 ee e7 e4 e0 f2 fc 20 f4 e0 e9 eb 20 f1 20 ....... .... .
21b0: ef ee f1 eb e5 e4 ed e5 e9 20 e2 e5 f0 f1 e8 e5 ......... ......
21c0: e9 21 22 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 .!");.. }..
21d0: 20 20 0d 0a 20 20 20 20 70 61 72 61 6d 32 2e 69 .. param2.i
21e0: 6e 73 65 72 74 28 22 70 61 74 68 32 22 2c 20 70 nsert("path2", p
21f0: 61 74 68 32 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 ath2);.. ..
2200: 20 20 72 65 74 75 72 6e 20 74 72 75 65 0d 0a 7d return true..}
2210: 20 2f 2f 62 7a 72 5f 67 65 74 46 69 6c 65 50 61 //bzr_getFilePa
2220: 74 68 54 6f 44 69 66 66 0d 0a 0d 0a 66 75 6e 63 thToDiff....func
2230: 74 69 6f 6e 20 62 7a 72 5f 72 65 6d 6f 76 65 28 tion bzr_remove(
2240: 70 61 74 68 54 6f 46 69 6c 65 29 20 7b 0d 0a 20 pathToFile) {..
2250: 20 20 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c var rootCatal
2260: 6f 67 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 og = fossil_getR
2270: 6f 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 ootCatalog(pathT
2280: 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 oFile);.. var
2290: 20 66 20 3d 20 76 38 4e 65 77 28 22 46 69 6c 65 f = v8New("File
22a0: 22 2c 20 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d ", pathToFile);.
22b0: 0a 20 20 20 20 69 66 20 28 66 2e 49 73 44 69 72 . if (f.IsDir
22c0: 65 63 74 6f 72 79 28 29 29 20 7b 0d 0a 20 20 20 ectory()) {..
22d0: 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 return fals
22e0: 65 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a e.. }.. ..
22f0: 20 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 var TextDoc
2300: 3d 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 = v8New("TextDoc
2310: 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 ument");.. Te
2320: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 xtDoc.AddLine('c
2330: 64 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 d /d "'+rootCata
2340: 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 20 20 54 65 log+'"').. Te
2350: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 62 xtDoc.AddLine('b
2360: 7a 72 20 72 65 6d 6f 76 65 20 22 27 20 2b 70 61 zr remove "' +pa
2370: 74 68 54 6f 46 69 6c 65 2b 27 22 27 29 3b 0d 0a thToFile+'"');..
2380: 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 TextDoc.Writ
2390: 65 28 50 61 74 68 54 6f 42 61 74 2c 20 27 63 70 e(PathToBat, 'cp
23a0: 38 36 36 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 866');.. Text
23b0: 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 Doc.Clear();..
23c0: 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 ErrCode = WshS
23d0: 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 hell.Run('"'+Pat
23e0: 68 54 6f 42 61 74 2b 27 22 27 2c 20 30 2c 20 31 hToBat+'"', 0, 1
23f0: 29 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 45 72 ).. return Er
2400: 72 43 6f 64 65 0d 0a 7d 20 2f 2f 62 7a 72 5f 72 rCode..} //bzr_r
2410: 65 6d 6f 76 65 0d 0a 0d 0a 66 75 6e 63 74 69 6f emove....functio
2420: 6e 20 62 7a 72 5f 72 65 76 65 72 74 28 70 61 74 n bzr_revert(pat
2430: 68 54 6f 46 69 6c 65 2c 20 76 65 72 29 20 7b 0d hToFile, ver) {.
2440: 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 61 74 . var rootCat
2450: 61 6c 6f 67 20 3d 20 62 7a 72 5f 67 65 74 52 6f alog = bzr_getRo
2460: 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f otCatalog(pathTo
2470: 46 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 File);.. var
2480: 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 TextDoc = v8New(
2490: 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b "TextDocument");
24a0: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e c7 e0 .. TextDoc...
24b0: ef e8 f1 e0 f2 fc 28 50 61 74 68 54 6f 42 61 74 ......(PathToBat
24c0: 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 , "UTF-8");..
24d0: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
24e0: 28 27 63 64 20 2f 64 22 27 20 2b 72 6f 6f 74 43 ('cd /d"' +rootC
24f0: 61 74 61 6c 6f 67 20 2b 27 22 27 29 0d 0a 20 20 atalog +'"')..
2500: 20 20 76 61 72 20 63 6d 64 20 3d 20 28 76 65 72 var cmd = (ver
2510: 2e 6c 65 6e 67 74 68 3e 30 29 20 3f 20 27 62 7a .length>0) ? 'bz
2520: 72 20 72 65 76 65 72 74 20 2d 72 20 27 2b 76 65 r revert -r '+ve
2530: 72 2b 27 20 22 27 20 2b 70 61 74 68 54 6f 46 69 r+' "' +pathToFi
2540: 6c 65 2b 27 22 27 20 3a 20 27 62 7a 72 20 72 65 le+'"' : 'bzr re
2550: 76 65 72 74 20 20 22 27 20 2b 70 61 74 68 54 6f vert "' +pathTo
2560: 46 69 6c 65 2b 27 22 27 3b 0d 0a 20 20 20 20 54 File+'"';.. T
2570: 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 63 extDoc.AddLine(c
2580: 6d 64 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f md);.. TextDo
2590: 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 61 c.Write(PathToBa
25a0: 74 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 t, 'cp866');..
25b0: 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 TextDoc.Clear(
25c0: 29 3b 0d 0a 20 20 20 20 45 72 72 43 6f 64 65 20 );.. ErrCode
25d0: 3d 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 = WshShell.Run('
25e0: 22 27 2b 50 61 74 68 54 6f 42 61 74 2b 27 22 27 "'+PathToBat+'"'
25f0: 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 72 65 74 , 0, 1).. ret
2600: 75 72 6e 20 45 72 72 43 6f 64 65 0d 0a 7d 20 2f urn ErrCode..} /
2610: 2f 62 7a 72 5f 72 65 76 65 72 74 0d 0a 0d 0a 0d /bzr_revert.....
2620: 0a 66 75 6e 63 74 69 6f 6e 20 62 7a 72 5f 67 65 .function bzr_ge
2630: 74 4c 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 2c tLog(pathToFile,
2640: 20 6c 69 6d 69 74 29 20 7b 20 2f 2f e5 f1 eb e8 limit) { //....
2650: 20 ea e0 f2 e0 eb ee e3 2c 20 f2 ee e3 e4 e0 20 ......., .....
2660: e8 ed f4 ee f0 ec e0 f6 e8 ff 20 e4 eb ff 20 ea .......... ... .
2670: e0 f2 e0 eb ee e3 e0 2c 20 e5 f1 eb e8 20 f4 e0 ......., .... ..
2680: e9 eb 2c 20 f2 ee e3 e4 e0 20 eb ee e3 20 e4 eb .., ..... ... ..
2690: ff 20 f4 e0 e9 eb e0 2e 20 0d 0a 20 20 20 20 2f . ...... .. /
26a0: 2f c2 ee e7 e2 f0 e0 f9 e0 e5 ec 20 ec e0 f1 f1 /.......... ....
26b0: e8 e2 20 f1 ee 20 f1 f2 f3 f0 ea f2 f3 f0 ee e9 .. .. ..........
26c0: 3a 0d 0a 20 20 20 20 2f 2f 20 61 72 72 61 72 79 :.. // arrary
26d0: 5b 30 5d 5b 27 76 65 72 73 69 6f 6e 27 3a 31 32 [0]['version':12
26e0: 32 33 33 33 2c 20 27 63 6f 6d 6d 65 6e 74 27 3a 2333, 'comment':
26f0: 22 d7 e5 20 f2 ee 20 ed e0 ef e8 f1 e0 eb e8 22 ".. .. ........"
2700: 2c 20 27 61 75 74 68 6f 72 27 3a 22 73 6f 73 6e , 'author':"sosn
2710: 61 22 2c 20 27 64 61 74 65 27 3a 22 32 30 31 32 a", 'date':"2012
2720: 2d 30 34 2d 30 31 22 5d 0d 0a 20 20 20 20 76 61 -04-01"].. va
2730: 72 20 72 65 73 75 6c 74 20 3d 20 5b 5d 0d 0a 20 r result = []..
2740: 20 20 20 66 20 3d 20 76 38 4e 65 77 28 22 46 69 f = v8New("Fi
2750: 6c 65 22 2c 20 70 61 74 68 54 6f 46 69 6c 65 29 le", pathToFile)
2760: 3b 0d 0a 20 20 20 20 69 66 20 28 21 66 2e 45 78 ;.. if (!f.Ex
2770: 69 73 74 28 29 29 20 72 65 74 75 72 6e 20 72 65 ist()) return re
2780: 73 75 6c 74 0d 0a 20 20 20 20 2f 2f cf f0 ee e2 sult.. //....
2790: e5 f0 e8 ec 2c 20 e5 f1 f2 fc 20 eb e8 20 ee ed ...., .... .. ..
27a0: 20 ef ee e4 20 e2 e5 f0 f1 e8 ee ed ed fb ec 20 ... ..........
27b0: ea ee ed f2 f0 ee eb e5 ec 20 f3 20 ed e0 f1 2e ......... . ....
27c0: 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 61 .. var rootCa
27d0: 74 61 6c 6f 67 20 3d 20 62 7a 72 5f 67 65 74 52 talog = bzr_getR
27e0: 6f 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 ootCatalog(pathT
27f0: 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 oFile);.. var
2800: 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 TextDoc = v8New
2810: 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 ("TextDocument")
2820: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ;.. TextDoc.A
2830: 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 22 27 ddLine('cd /d "'
2840: 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 22 27 +rootCatalog+'"'
2850: 29 3b 0d 0a 20 20 20 20 69 66 20 28 21 66 2e 49 );.. if (!f.I
2860: 73 44 69 72 65 63 74 6f 72 79 28 29 29 20 7b 0d sDirectory()) {.
2870: 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 . TextDoc
2880: 2e 41 64 64 4c 69 6e 65 28 27 62 7a 72 20 6c 6f .AddLine('bzr lo
2890: 67 20 2d 53 20 2d 2d 6c 69 6e 65 20 2d 6c 20 27 g -S --line -l '
28a0: 2b 6c 69 6d 69 74 2b 27 20 27 2b 70 61 74 68 54 +limit+' '+pathT
28b0: 6f 46 69 6c 65 20 2b 27 20 3e 20 22 27 2b 50 61 oFile +' > "'+Pa
28c0: 74 68 54 6f 4f 75 74 70 75 74 2b 27 22 27 29 3b thToOutput+'"');
28d0: 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a .. } else {..
28e0: 20 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e TextDoc.
28f0: 41 64 64 4c 69 6e 65 28 27 62 7a 72 20 6c 6f 67 AddLine('bzr log
2900: 20 2d 53 20 2d 2d 6c 69 6e 65 20 2d 6c 20 27 2b -S --line -l '+
2910: 6c 69 6d 69 74 2b 27 20 3e 20 22 27 2b 50 61 74 limit+' > "'+Pat
2920: 68 54 6f 4f 75 74 70 75 74 2b 27 22 27 29 3b 0d hToOutput+'"');.
2930: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 54 65 78 74 . }.. Text
2940: 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f Doc.Write(PathTo
2950: 42 61 74 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a Bat, 'cp866');..
2960: 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 ErrCode = Ws
2970: 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 hShell.Run('"'+P
2980: 61 74 68 54 6f 42 61 74 2b 27 22 27 2c 20 30 2c athToBat+'"', 0,
2990: 20 31 29 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 1).. TextDoc
29a0: 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 54 .Clear();.. T
29b0: 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 68 extDoc.Read(Path
29c0: 54 6f 4f 75 74 70 75 74 2c 20 22 63 70 38 36 36 ToOutput, "cp866
29d0: 22 29 3b 0d 0a 20 20 20 20 69 66 20 28 54 65 78 ");.. if (Tex
29e0: 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 tDoc.LineCount()
29f0: 20 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 20 20 20 == 0) {..
2a00: 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 return res
2a10: 75 6c 74 20 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 ult .. }..
2a20: 20 0d 0a 20 20 20 20 76 61 72 20 69 6e 64 65 78 .. var index
2a30: 3d 30 3b 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 =0;.. for (va
2a40: 72 20 69 3d 31 3b 20 69 3c 3d 54 65 78 74 44 6f r i=1; i<=TextDo
2a50: 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 3b 20 69 c.LineCount(); i
2a60: 2b 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 ++).. {..
2a70: 20 20 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 var r = Text
2a80: 44 6f 63 2e 47 65 74 4c 69 6e 65 28 69 29 3b 0d Doc.GetLine(i);.
2a90: 0a 20 20 20 20 20 20 20 20 76 61 72 20 72 65 20 . var re
2aa0: 3d 20 6e 65 77 20 52 65 67 45 78 70 28 2f 28 5c = new RegExp(/(\
2ab0: 64 2a 29 3a 5c 73 28 2e 2a 29 5c 73 28 5b 30 2d d*):\s(.*)\s([0-
2ac0: 39 5d 7b 34 7d 2d 5b 30 2d 39 5d 7b 32 7d 2d 5b 9]{4}-[0-9]{2}-[
2ad0: 30 2d 39 5d 7b 32 7d 29 5c 73 28 2e 2a 29 2f 29 0-9]{2})\s(.*)/)
2ae0: 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6d ;.. var m
2af0: 61 74 68 65 73 20 3d 20 72 2e 6d 61 74 63 68 28 athes = r.match(
2b00: 72 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 re);.. if
2b10: 20 28 6d 61 74 68 65 73 20 26 26 20 6d 61 74 68 (mathes && math
2b20: 65 73 2e 6c 65 6e 67 74 68 29 20 7b 0d 0a 20 20 es.length) {..
2b30: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 fd f2 ee // ...
2b40: 20 ef e5 f0 e2 e0 ff 20 f1 f2 f0 ee ea e0 2c 20 ...... ......,
2b50: e4 e0 eb fc f8 e5 20 ef ee e9 e4 e5 f2 20 69 64 ...... ...... id
2b60: 20 f0 e5 e2 e8 e7 e8 20 e8 20 f2 2e e4 2e 0d 0a ...... . ......
2b70: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 resu
2b80: 6c 74 5b 69 6e 64 65 78 5d 20 3d 20 7b 22 76 65 lt[index] = {"ve
2b90: 72 73 69 6f 6e 22 3a 6d 61 74 68 65 73 5b 31 5d rsion":mathes[1]
2ba0: 2c 20 22 63 6f 6d 6d 65 6e 74 22 3a 27 27 2b 6d , "comment":''+m
2bb0: 61 74 68 65 73 5b 34 5d 2c 20 22 64 61 74 65 22 athes[4], "date"
2bc0: 3a 6d 61 74 68 65 73 5b 33 5d 2c 20 22 61 75 74 :mathes[3], "aut
2bd0: 68 6f 72 22 3a 6d 61 74 68 65 73 5b 32 5d 7d 0d hor":mathes[2]}.
2be0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 . ind
2bf0: 65 78 2b 2b 3b 0d 0a 20 20 20 20 20 20 20 20 7d ex++;.. }
2c00: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 72 .. }.. ..r
2c10: 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 20 20 20 eturn result;
2c20: 20 0d 0a 7d 20 2f 2f 20 66 6f 73 73 69 6c 5f 67 ..} // fossil_g
2c30: 65 74 4c 6f 67 0d 0a 0d 0a 66 75 6e 63 74 69 6f etLog....functio
2c40: 6e 20 62 7a 72 5f 67 65 74 49 6e 66 6f 28 70 61 n bzr_getInfo(pa
2c50: 74 68 54 6f 46 69 6c 65 2c 20 76 65 72 29 20 7b thToFile, ver) {
2c60: 0d 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 .. var result
2c70: 20 3d 20 7b 22 63 6f 6d 6d 65 6e 74 22 3a 22 22 = {"comment":""
2c80: 2c 20 22 66 69 6c 65 73 22 3a 5b 5d 7d 0d 0a 20 , "files":[]}..
2c90: 20 20 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c var rootCatal
2ca0: 6f 67 20 3d 20 62 7a 72 5f 67 65 74 52 6f 6f 74 og = bzr_getRoot
2cb0: 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 69 Catalog(pathToFi
2cc0: 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 54 65 le);.. var Te
2cd0: 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 xtDoc = v8New("T
2ce0: 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a extDocument");..
2cf0: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
2d00: 69 6e 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f ine('cd /d "'+ro
2d10: 6f 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a otCatalog+'"')..
2d20: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
2d30: 69 6e 65 28 27 62 7a 72 20 6c 6f 67 20 2d 53 20 ine('bzr log -S
2d40: 2d 2d 73 68 6f 77 2d 69 64 73 20 2d 76 20 2d 72 --show-ids -v -r
2d50: 27 2b 76 65 72 20 2b 27 20 20 3e 20 22 27 2b 50 '+ver +' > "'+P
2d60: 61 74 68 54 6f 4f 75 74 70 75 74 2b 27 22 27 29 athToOutput+'"')
2d70: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 .. TextDoc.Wr
2d80: 69 74 65 28 50 61 74 68 54 6f 42 61 74 2c 20 27 ite(PathToBat, '
2d90: 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 45 72 cp866');.. Er
2da0: 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c rCode = WshShell
2db0: 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 .Run('"'+PathToB
2dc0: 61 74 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 at+'"', 0, 1)..
2dd0: 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 TextDoc.Clear
2de0: 28 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 ();.. TextDoc
2df0: 2e 52 65 61 64 28 50 61 74 68 54 6f 4f 75 74 70 .Read(PathToOutp
2e00: 75 74 2c 20 22 63 70 38 36 36 22 29 3b 0d 0a 20 ut, "cp866");..
2e10: 20 20 20 69 66 20 28 54 65 78 74 44 6f 63 2e 4c if (TextDoc.L
2e20: 69 6e 65 43 6f 75 6e 74 28 29 20 3d 3d 20 30 29 ineCount() == 0)
2e30: 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 {.. retu
2e40: 72 6e 20 72 65 73 75 6c 74 20 0d 0a 20 20 20 20 rn result ..
2e50: 7d 0d 0a 20 20 20 20 76 61 72 20 69 6e 64 65 78 }.. var index
2e60: 3d 30 3b 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 =0;.. for (va
2e70: 72 20 69 3d 31 3b 20 69 3c 3d 54 65 78 74 44 6f r i=1; i<=TextDo
2e80: 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 3b 20 69 c.LineCount(); i
2e90: 2b 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 ++).. {..
2ea0: 20 20 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 var r = Text
2eb0: 44 6f 63 2e 47 65 74 4c 69 6e 65 28 69 29 3b 0d Doc.GetLine(i);.
2ec0: 0a 20 20 20 20 20 20 20 20 72 65 5f 66 69 6c 65 . re_file
2ed0: 73 20 3d 20 6e 65 77 20 52 65 67 45 78 70 28 2f s = new RegExp(/
2ee0: 5c 73 2a 28 41 7c 44 7c 4d 29 5c 73 2b 28 2e 2b \s*(A|D|M)\s+(.+
2ef0: 29 5c 73 28 5c 53 2a 2d 5b 30 2d 39 5d 7b 31 34 )\s(\S*-[0-9]{14
2f00: 7d 2d 5c 53 2b 29 2f 29 3b 0d 0a 20 20 20 20 20 }-\S+)/);..
2f10: 20 20 20 76 61 72 20 6d 61 74 68 65 73 20 3d 20 var mathes =
2f20: 72 2e 6d 61 74 63 68 28 72 65 5f 66 69 6c 65 73 r.match(re_files
2f30: 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 );.. if (
2f40: 6d 61 74 68 65 73 20 26 26 20 6d 61 74 68 65 73 mathes && mathes
2f50: 2e 6c 65 6e 67 74 68 29 20 7b 0d 0a 20 20 20 20 .length) {..
2f60: 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 5b 27 result['
2f70: 66 69 6c 65 73 27 5d 5b 69 6e 64 65 78 5d 20 3d files'][index] =
2f80: 20 7b 22 76 65 72 73 69 6f 6e 22 3a 76 65 72 2c {"version":ver,
2f90: 20 22 66 69 6c 65 22 3a 27 27 2b 6d 61 74 68 65 "file":''+mathe
2fa0: 73 5b 32 5d 2c 20 22 73 74 61 74 75 73 22 3a 6d s[2], "status":m
2fb0: 61 74 68 65 73 5b 31 5d 2c 20 22 66 75 6c 6c 70 athes[1], "fullp
2fc0: 61 74 68 22 3a 46 53 4f 2e 42 75 69 6c 64 50 61 ath":FSO.BuildPa
2fd0: 74 68 28 72 6f 6f 74 43 61 74 61 6c 6f 67 2c 20 th(rootCatalog,
2fe0: 6d 61 74 68 65 73 5b 32 5d 2e 72 65 70 6c 61 63 mathes[2].replac
2ff0: 65 28 2f 5c 2f 2f 67 2c 20 27 5c 5c 27 29 29 7d e(/\//g, '\\'))}
3000: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e .. in
3010: 64 65 78 2b 2b 3b 0d 0a 20 20 20 20 20 20 20 20 dex++;..
3020: 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 }.. }.. re
3030: 73 75 6c 74 5b 22 63 6f 6d 6d 65 6e 74 22 5d 20 sult["comment"]
3040: 3d 20 54 65 78 74 44 6f 63 2e 47 65 74 54 65 78 = TextDoc.GetTex
3050: 74 28 29 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e t();.. return
3060: 20 72 65 73 75 6c 74 0d 0a 7d 0d 0a 0d 0a 66 75 result..}....fu
3070: 6e 63 74 69 6f 6e 20 62 7a 72 5f 67 65 74 4c 69 nction bzr_getLi
3080: 73 74 42 72 61 6e 63 68 28 70 61 74 68 54 6f 46 stBranch(pathToF
3090: 69 6c 65 2c 20 69 6e 64 65 78 29 20 7b 0d 0a 20 ile, index) {..
30a0: 20 20 20 0d 0a 20 20 20 20 2f 2f 20 e4 eb ff 20 .. // ...
30b0: 62 7a 72 20 e2 ee e7 e2 f0 e0 f9 e0 f2 fc 20 e1 bzr .......... .
30c0: f3 e4 e5 f2 20 ee f2 ec e5 ed f3 2c 20 ef f0 e8 .... ......, ...
30d0: 20 fd f2 ee ec 20 e2 fb e7 fb e2 e0 f2 fc 20 62 .... ........ b
30e0: 7a 72 20 71 63 6f 6c 6f 73 77 69 74 63 68 20 e4 zr qcoloswitch .
30f0: eb ff 20 ea e0 f2 e0 eb ee e3 e0 2e 20 0d 0a 20 .. ......... ..
3100: 20 20 20 76 61 72 20 72 65 73 75 6c 74 20 3d 20 var result =
3110: 66 61 6c 73 65 3b 0d 0a 20 20 20 20 76 61 72 20 false;.. var
3120: 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 62 7a rootCatalog = bz
3130: 72 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 r_getRootCatalog
3140: 28 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 (pathToFile);..
3150: 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d var TextDoc =
3160: 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 v8New("TextDocu
3170: 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 ment");.. Tex
3180: 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 tDoc.AddLine('cd
3190: 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c /d "'+rootCatal
31a0: 6f 67 2b 27 22 27 29 3b 0d 0a 20 20 20 20 54 65 og+'"');.. Te
31b0: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 62 xtDoc.AddLine('b
31c0: 7a 72 20 71 63 6f 6c 6f 73 77 69 74 63 68 27 29 zr qcoloswitch')
31d0: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ;.. TextDoc.A
31e0: 64 64 4c 69 6e 65 28 27 65 78 69 74 27 29 3b 0d ddLine('exit');.
31f0: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 . TextDoc.Wri
3200: 74 65 28 50 61 74 68 54 6f 42 61 74 2c 20 27 63 te(PathToBat, 'c
3210: 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 45 72 72 p866');.. Err
3220: 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e Code = WshShell.
3230: 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 Run('"'+PathToBa
3240: 74 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 t+'"', 0, 1)..
3250: 20 20 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 .. return r
3260: 65 73 75 6c 74 3b 0d 0a 20 20 20 20 0d 0a 7d 0d esult;.. ..}.
3270: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 62 7a 72 5f ...function bzr_
3280: 73 77 69 74 68 42 72 61 6e 63 68 20 28 70 61 74 swithBranch (pat
3290: 68 54 6f 46 69 6c 65 2c 20 62 72 61 6e 63 68 29 hToFile, branch)
32a0: 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 {.. .. re
32b0: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d turn true;..}...
32c0: 0a 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 42 61 .....function Ba
32d0: 63 6b 65 6e 64 5f 62 7a 72 28 63 6f 6d 6d 61 6e ckend_bzr(comman
32e0: 64 2c 20 70 61 72 61 6d 31 2c 20 70 61 72 61 6d d, param1, param
32f0: 32 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 72 65 2) {.. var re
3300: 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 sult = false;..
3310: 20 20 20 2f 2f 4d 65 73 73 61 67 65 28 22 20 42 //Message(" B
3320: 61 63 6b 65 6e 64 5f 62 7a 72 20 22 20 2b 20 63 ackend_bzr " + c
3330: 6f 6d 6d 61 6e 64 29 0d 0a 20 20 20 20 73 77 69 ommand).. swi
3340: 74 63 68 20 28 63 6f 6d 6d 61 6e 64 29 20 0d 0a tch (command) ..
3350: 20 20 20 20 7b 0d 0a 20 20 20 20 63 61 73 65 20 {.. case
3360: 22 43 41 54 41 4c 4f 47 53 54 41 54 55 53 22 3a "CATALOGSTATUS":
3370: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 c4 ee e1 .. // ...
3380: e0 e2 eb ff e5 ec 20 e2 20 f5 e2 ee f1 f2 20 ef ...... . ..... .
3390: ee e4 ef e8 f1 fc 2e 0d 0a 20 20 20 20 20 20 20 .........
33a0: 20 72 65 73 75 6c 74 20 3d 20 62 7a 72 5f 67 65 result = bzr_ge
33b0: 74 53 74 61 74 75 73 46 6f 72 43 61 74 61 6c 6f tStatusForCatalo
33c0: 67 28 70 61 72 61 6d 31 2c 20 22 22 29 3b 0d 0a g(param1, "");..
33d0: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a break;..
33e0: 20 20 20 20 63 61 73 65 20 22 46 49 4c 45 53 54 case "FILEST
33f0: 41 54 55 53 22 3a 0d 0a 20 20 20 20 20 20 20 20 ATUS":..
3400: 72 65 73 75 6c 74 20 3d 20 62 7a 72 5f 67 65 74 result = bzr_get
3410: 46 69 6c 65 53 74 61 74 75 73 28 70 61 72 61 6d FileStatus(param
3420: 31 2c 20 70 61 72 61 6d 32 29 0d 0a 20 20 20 20 1, param2)..
3430: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 break;..
3440: 63 61 73 65 20 22 47 45 54 46 49 4c 45 53 4d 49 case "GETFILESMI
3450: 53 53 55 4e 47 22 3a 0d 0a 20 20 20 20 20 20 20 SSUNG":..
3460: 20 2f 2f 72 65 73 75 6c 74 20 3d 20 7b 7d 20 2f //result = {} /
3470: 2f c7 e0 e3 eb f3 f8 ea e0 2e 20 0d 0a 20 20 20 /......... ..
3480: 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 break;..
3490: 20 63 61 73 65 20 22 44 49 46 46 22 3a 0d 0a 20 case "DIFF":..
34a0: 20 20 20 20 20 20 20 2f 2f 72 65 73 75 6c 74 20 //result
34b0: 3d 20 62 7a 72 5f 67 65 74 46 69 6c 65 50 61 74 = bzr_getFilePat
34c0: 68 54 6f 44 69 66 66 28 70 61 72 61 6d 31 2c 20 hToDiff(param1,
34d0: 70 61 72 61 6d 32 29 0d 0a 20 20 20 20 20 20 20 param2)..
34e0: 20 4d 65 73 73 61 67 65 28 22 c7 e0 e3 eb f3 f8 Message("......
34f0: ea e0 2c 20 e5 f9 e5 20 ed e5 20 f0 e5 e0 eb e8 .., ... .. .....
3500: e7 ee e2 e0 ed e0 20 ea ee ec e0 ed e4 e0 20 44 ...... ....... D
3510: 49 46 46 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 IFF");..
3520: 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 65 break;.. case
3530: 20 22 41 44 44 22 3a 0d 0a 20 20 20 20 20 20 20 "ADD":..
3540: 20 72 65 73 75 6c 74 20 3d 20 62 7a 72 5f 61 64 result = bzr_ad
3550: 64 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d 32 d(param1, param2
3560: 29 0d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b ).. break
3570: 3b 0d 0a 20 20 20 20 63 61 73 65 20 22 54 45 53 ;.. case "TES
3580: 54 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 T":.. res
3590: 75 6c 74 20 3d 20 62 7a 72 5f 74 65 73 74 28 70 ult = bzr_test(p
35a0: 61 72 61 6d 31 29 0d 0a 20 20 20 20 20 20 20 20 aram1)..
35b0: 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 65 break;.. case
35c0: 20 22 52 55 4e 22 3a 0d 0a 20 20 20 20 20 20 20 "RUN":..
35d0: 20 72 65 73 75 6c 74 20 3d 20 62 7a 72 5f 72 75 result = bzr_ru
35e0: 6e 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d 32 n(param1, param2
35f0: 29 0d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b ).. break
3600: 3b 0d 0a 20 20 20 20 63 61 73 65 20 22 53 48 4f ;.. case "SHO
3610: 57 4c 4f 47 22 3a 20 2f 2f 20 f1 f2 e0 f0 ee e5 WLOG": // ......
3620: 2c 20 ef ee ea e0 20 ee f1 f2 e0 e2 eb ff e5 ec , .... .........
3630: 2e 20 0d 0a 20 20 20 20 20 20 20 20 2f 2f 72 65 . .. //re
3640: 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 73 68 sult = fossil_sh
3650: 6f 77 6c 6f 67 28 70 61 72 61 6d 31 29 3b 0d 0a owlog(param1);..
3660: 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 break..
3670: 20 20 20 63 61 73 65 20 22 53 48 4f 57 44 49 46 case "SHOWDIF
3680: 46 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 F":.. res
3690: 75 6c 74 20 3d 20 62 7a 72 5f 67 65 74 46 69 6c ult = bzr_getFil
36a0: 65 50 61 74 68 54 6f 44 69 66 66 28 70 61 72 61 ePathToDiff(para
36b0: 6d 31 2c 20 70 61 72 61 6d 32 29 3b 0d 0a 20 20 m1, param2);..
36c0: 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 break..
36d0: 20 63 61 73 65 20 22 44 45 4c 45 54 45 22 3a 0d case "DELETE":.
36e0: 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 . result
36f0: 3d 20 62 7a 72 5f 72 65 6d 6f 76 65 28 70 61 72 = bzr_remove(par
3700: 61 6d 31 29 0d 0a 20 20 20 20 20 20 20 20 62 72 am1).. br
3710: 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 52 eak.. case "R
3720: 45 56 45 52 54 22 3a 0d 0a 20 20 20 20 20 20 20 EVERT":..
3730: 20 72 65 73 75 6c 74 20 3d 20 62 7a 72 5f 72 65 result = bzr_re
3740: 76 65 72 74 28 70 61 72 61 6d 31 2c 20 70 61 72 vert(param1, par
3750: 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 am2);.. b
3760: 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 reak.. case "
3770: 43 4f 4d 4d 49 54 22 3a 0d 0a 20 20 20 20 20 20 COMMIT":..
3780: 20 20 72 65 73 75 6c 74 20 3d 20 62 7a 72 5f 63 result = bzr_c
3790: 6f 6d 6d 69 74 28 70 61 72 61 6d 31 2c 20 70 61 ommit(param1, pa
37a0: 72 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 ram2);..
37b0: 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 break.. case
37c0: 22 47 45 54 46 49 4c 45 41 54 52 45 56 49 53 49 "GETFILEATREVISI
37d0: 4f 4e 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 ON":.. re
37e0: 73 75 6c 74 20 3d 20 62 7a 72 5f 67 65 74 46 69 sult = bzr_getFi
37f0: 6c 65 41 74 52 65 76 69 73 69 6f 6e 28 70 61 72 leAtRevision(par
3800: 61 6d 31 2c 20 70 61 72 61 6d 32 29 0d 0a 20 20 am1, param2)..
3810: 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 break..
3820: 20 63 61 73 65 20 22 47 45 54 4c 4f 47 22 3a 0d case "GETLOG":.
3830: 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 . result
3840: 3d 20 62 7a 72 5f 67 65 74 4c 6f 67 28 70 61 72 = bzr_getLog(par
3850: 61 6d 31 2c 20 70 61 72 61 6d 32 29 3b 0d 0a 20 am1, param2);..
3860: 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 break..
3870: 20 20 63 61 73 65 20 22 47 45 54 49 4e 46 4f 22 case "GETINFO"
3880: 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c :.. resul
3890: 74 20 3d 20 62 7a 72 5f 67 65 74 49 6e 66 6f 28 t = bzr_getInfo(
38a0: 70 61 72 61 6d 31 2c 20 70 61 72 61 6d 32 29 3b param1, param2);
38b0: 0d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d .. break.
38c0: 0a 20 20 20 20 63 61 73 65 20 22 47 45 54 4c 49 . case "GETLI
38d0: 53 54 42 52 41 4e 43 48 22 3a 0d 0a 20 20 20 20 STBRANCH":..
38e0: 20 20 20 20 72 65 73 75 6c 74 20 3d 20 62 7a 72 result = bzr
38f0: 5f 67 65 74 4c 69 73 74 42 72 61 6e 63 68 28 70 _getListBranch(p
3900: 61 72 61 6d 31 29 3b 20 2f 2f e2 ee e7 e2 f0 e0 aram1); //......
3910: f9 e0 e5 ec 20 72 65 73 75 6c 74 20 7b 22 76 61 .... result {"va
3920: 6c 75 65 6c 69 73 74 22 3a 76 38 4e 65 77 28 22 luelist":v8New("
3930: 56 61 6c 75 65 4c 69 73 74 22 29 2c 20 22 69 6e ValueList"), "in
3940: 64 65 78 22 3a 20 e8 ed e4 e5 ea f1 20 e2 e5 f2 dex": ...... ...
3950: ea e8 20 f2 e5 ea f3 f9 e5 e9 7d 20 e8 eb e8 20 .. .......} ...
3960: 66 61 6c 73 65 2e 2e 2e 0d 0a 20 20 20 20 20 20 false.....
3970: 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 break.. cas
3980: 65 20 22 53 57 49 54 48 42 52 41 4e 43 48 22 3a e "SWITHBRANCH":
3990: 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 .. result
39a0: 20 3d 20 62 7a 72 5f 73 77 69 74 68 42 72 61 6e = bzr_swithBran
39b0: 63 68 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d ch(param1, param
39c0: 32 29 3b 20 2f 2f e2 fb ef ee eb ed ff e5 f2 20 2); //.........
39d0: e4 e5 e9 f1 f2 e2 e8 e5 2e 2e 2e 20 e2 ee e7 e2 ........... ....
39e0: f0 e0 f9 e0 e5 f2 20 74 72 75 65 20 7c 7c 20 66 ...... true || f
39f0: 61 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 62 72 alse.. br
3a00: 65 61 6b 3b 0d 0a 0d 0a 20 20 20 20 7d 0d 0a 20 eak;.... }..
3a10: 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 return result
3a20: 0d 0a 7d 20 2f 2f 42 61 63 6b 65 6e 64 5f 62 7a ..} //Backend_bz
3a30: 72 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 47 65 r....function Ge
3a40: 74 42 61 63 6b 65 6e 64 28 29 20 7b 0d 0a 20 20 tBackend() {..
3a50: 20 20 72 65 74 75 72 6e 20 42 61 63 6b 65 6e 64 return Backend
3a60: 5f 62 7a 72 0d 0a 7d 20 2f 2f 47 65 74 42 61 63 _bzr..} //GetBac
3a70: 6b 65 6e 64 0d 0a kend..