0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 64 76 63 73 5f pt..$uname dvcs_
0020: 66 6f 73 73 69 6c 0d 0a 24 64 6e 61 6d 65 20 42 fossil..$dname B
0030: 61 63 6b 65 6e 64 20 d0 ba 20 64 76 63 73 20 66 ackend .. dvcs f
0040: 6f 73 73 69 6c 0d 0a 24 61 64 64 69 6e 20 67 6c ossil..$addin gl
0050: 6f 62 61 6c 0d 0a 0d 0a 2f 2f 20 28 63 29 20 d0 obal....// (c) .
0060: a1 d0 be d1 81 d0 bd d0 b0 20 d0 95 d0 b2 d0 b3 ......... ......
0070: d0 b5 d0 bd d0 b8 d0 b9 20 73 68 65 6e 6a 61 20 ........ shenja
0080: 61 74 20 73 6f 73 6e 61 2e 7a 70 2e 75 61 0d 0a at sosna.zp.ua..
0090: 2f 2f 20 d0 a1 d0 ba d1 80 d0 b8 d0 bf d1 82 20 // ............
00a0: 2d 20 42 61 63 6b 65 6e 64 20 d0 ba 20 66 6f 73 - Backend .. fos
00b0: 73 69 6c 20 d0 b4 d0 bb d1 8f 20 d0 be d1 82 d0 sil ...... .....
00c0: be d0 b1 d1 80 d0 b0 d0 b6 d0 b5 d0 bd d0 b8 d1 ................
00d0: 8f 20 d0 b2 d0 b5 d1 80 d1 81 d0 b8 d0 be d0 bd . ..............
00e0: d0 bd d0 be d0 b3 d0 be 20 d0 ba d0 be d0 bd d1 ........ .......
00f0: 82 d1 80 d0 be d0 bb d1 8f 2e 20 0d 0a 0d 0a 67 .......... ....g
0100: 6c 6f 62 61 6c 2e 63 6f 6e 6e 65 63 74 47 6c 6f lobal.connectGlo
0110: 62 61 6c 73 28 53 65 6c 66 53 63 72 69 70 74 29 bals(SelfScript)
0120: 0d 0a 0d 0a 76 61 72 20 70 66 46 6f 73 73 69 6c ....var pfFossil
0130: 50 61 74 68 20 20 20 20 20 20 20 20 20 20 20 20 Path
0140: 20 20 20 20 20 20 20 20 3d 20 22 45 78 74 46 69 = "ExtFi
0150: 6c 65 73 44 56 43 53 2f 66 6f 73 73 69 6c 70 61 lesDVCS/fossilpa
0160: 74 68 22 0d 0a 76 61 72 20 70 66 46 6f 73 73 69 th"..var pfFossi
0170: 6c 50 61 74 68 42 61 73 65 20 20 20 20 20 20 20 lPathBase
0180: 20 20 20 20 20 20 20 20 20 3d 20 22 45 78 74 46 = "ExtF
0190: 69 6c 65 73 44 56 43 53 2f 66 6f 73 73 69 6c 70 ilesDVCS/fossilp
01a0: 61 74 68 62 61 73 65 22 0d 0a 70 72 6f 66 69 6c athbase"..profil
01b0: 65 52 6f 6f 74 2e 63 72 65 61 74 65 56 61 6c 75 eRoot.createValu
01c0: 65 28 70 66 46 6f 73 73 69 6c 50 61 74 68 2c 20 e(pfFossilPath,
01d0: 22 2e 5c 5c 66 6f 73 73 69 6c 2e 65 78 65 22 2c ".\\fossil.exe",
01e0: 20 70 66 6c 53 6e 65 67 6f 70 61 74 29 20 2f 2f pflSnegopat) //
01f0: d0 bf d0 be 20 d1 83 d0 bc d0 be d0 bb d1 87 d0 .... ...........
0200: b0 d0 bd d0 b8 d1 8e 20 d0 b1 d1 83 d0 b4 d0 b5 ....... ........
0210: d0 bc 20 d1 83 d0 ba d0 b0 d0 b7 d1 8b d0 b2 d0 .. .............
0220: b0 d1 82 d1 8c 20 d0 bf d1 83 d1 82 d1 8c 20 d0 ..... ........ .
0230: ba 20 66 6f 73 73 69 6c 20 d0 be d1 82 d0 bd d0 . fossil .......
0240: be d1 81 d0 b8 d1 82 d0 b5 d0 bb d1 8c d0 bd d0 ................
0250: be 20 d0 ba d0 be d1 80 d0 bd d1 8f 2e 20 0d 0a . ........... ..
0260: 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 63 72 65 61 profileRoot.crea
0270: 74 65 56 61 6c 75 65 28 70 66 46 6f 73 73 69 6c teValue(pfFossil
0280: 50 61 74 68 42 61 73 65 2c 20 22 22 2c 20 70 66 PathBase, "", pf
0290: 6c 42 61 73 65 29 0d 0a 0d 0a 2f 2f 20 d0 9d d0 lBase)....// ...
02a0: b0 d1 81 d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 20 ...............
02b0: d0 b4 d0 bb d1 8f 20 66 6f 73 73 69 6c 20 0d 0a ...... fossil ..
02c0: 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c var PathToFossil
02d0: 20 3d 20 22 22 3b 0d 0a 76 61 72 20 d0 bc 50 61 = "";..var ..Pa
02e0: 74 68 54 6f 46 6f 73 73 69 6c 42 61 73 65 20 3d thToFossilBase =
02f0: 20 22 22 3b 0d 0a 76 61 72 20 d0 bc 50 61 74 68 "";..var ..Path
0300: 54 6f 46 6f 73 73 69 6c 20 20 3d 20 22 22 3b 0d ToFossil = "";.
0310: 0a d0 bc 50 61 74 68 54 6f 46 6f 73 73 69 6c 42 ...PathToFossilB
0320: 61 73 65 20 3d 20 70 72 6f 66 69 6c 65 52 6f 6f ase = profileRoo
0330: 74 2e 67 65 74 56 61 6c 75 65 28 70 66 46 6f 73 t.getValue(pfFos
0340: 73 69 6c 50 61 74 68 42 61 73 65 29 0d 0a d0 bc silPathBase)....
0350: 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 3d 20 70 PathToFossil = p
0360: 72 6f 66 69 6c 65 52 6f 6f 74 2e 67 65 74 56 61 rofileRoot.getVa
0370: 6c 75 65 28 70 66 46 6f 73 73 69 6c 50 61 74 68 lue(pfFossilPath
0380: 29 0d 0a 2f 2f 20 d0 b5 d1 81 d0 bb d0 b8 20 d0 )..// ........ .
0390: bd d0 b5 20 d1 81 d0 be d0 b7 d0 b4 d0 b0 d0 b5 ... ............
03a0: d1 82 d1 8c d1 81 d1 8f 20 66 73 6f 2c 20 d0 bd ........ fso, ..
03b0: d0 b5 d0 be d0 b1 d1 85 d0 be d0 b4 d0 b8 d0 bc ................
03c0: d0 be 20 d0 b2 20 d1 81 d0 b4 d0 b5 d0 bb d0 b0 .. .. ..........
03d0: d1 82 d1 8c 20 d0 b2 20 63 3a 5c 77 69 6e 64 6f .... .. c:\windo
03e0: 77 73 5c 73 79 73 74 65 6d 33 32 20 0d 0a 2f 2f ws\system32 ..//
03f0: 20 72 65 67 73 76 72 33 32 2e 65 78 65 20 73 63 regsvr32.exe sc
0400: 72 72 75 6e 2e 64 6c 6c 20 0d 0a 2f 2f 20 d0 bf rrun.dll ..// ..
0410: d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 ........ .......
0420: b3 d0 be 20 66 73 6f 20 d0 b7 d0 b0 d1 80 d0 b0 ... fso ........
0430: d0 b1 d0 be d1 82 d0 b0 d0 b5 d1 82 2e 20 d0 92 ............. ..
0440: d0 be 20 d0 b2 d1 81 d0 b5 d0 bc 20 d0 b2 d0 b8 .. ........ ....
0450: d0 bd d0 be d0 b2 d0 b0 d1 82 d0 b0 20 d0 ba d0 ............ ...
0460: be d1 80 d0 bf d0 be d1 80 d0 b0 d1 86 d0 b8 d1 ................
0470: 8f 20 d0 b4 d0 be d0 b1 d1 80 d0 b0 20 68 74 74 . .......... htt
0480: 70 3a 2f 2f 73 6f 63 69 61 6c 2e 74 65 63 68 6e p://social.techn
0490: 65 74 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d et.microsoft.com
04a0: 2f 46 6f 72 75 6d 73 2f 72 75 2f 77 69 6e 64 6f /Forums/ru/windo
04b0: 77 73 73 65 72 76 65 72 72 75 2f 74 68 72 65 61 wsserverru/threa
04c0: 64 2f 32 38 64 35 35 39 30 30 2d 31 34 35 62 2d d/28d55900-145b-
04d0: 34 36 36 62 2d 39 33 64 34 2d 37 34 65 30 38 30 466b-93d4-74e080
04e0: 30 36 63 37 32 66 0d 0a 76 61 72 20 46 53 4f 20 06c72f..var FSO
04f0: 3d 20 6e 65 77 20 41 63 74 69 76 65 58 4f 62 6a = new ActiveXObj
0500: 65 63 74 28 22 53 63 72 69 70 74 69 6e 67 2e 46 ect("Scripting.F
0510: 69 6c 65 53 79 73 74 65 6d 4f 62 6a 65 63 74 22 ileSystemObject"
0520: 29 3b 0d 0a 0d 0a 69 66 20 28 d0 bc 50 61 74 68 );....if (..Path
0530: 54 6f 46 6f 73 73 69 6c 42 61 73 65 21 3d 27 27 ToFossilBase!=''
0540: 29 7b 0d 0a 20 20 20 20 69 66 20 28 d0 bc 50 61 ){.. if (..Pa
0550: 74 68 54 6f 46 6f 73 73 69 6c 42 61 73 65 2e 73 thToFossilBase.s
0560: 75 62 73 74 72 28 30 2c 31 29 20 3d 3d 20 22 2e ubstr(0,1) == ".
0570: 22 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 ") {.. va
0580: 72 20 d0 bc 50 61 74 68 54 6f 46 6f 73 73 69 6c r ..PathToFossil
0590: 42 61 73 65 20 3d 20 46 53 4f 2e 47 65 74 41 62 Base = FSO.GetAb
05a0: 73 6f 6c 75 74 65 50 61 74 68 4e 61 6d 65 28 46 solutePathName(F
05b0: 53 4f 2e 62 75 69 6c 64 50 61 74 68 28 6d 61 69 SO.buildPath(mai
05c0: 6e 46 6f 6c 64 65 72 2c 20 d0 bc 50 61 74 68 54 nFolder, ..PathT
05d0: 6f 46 6f 73 73 69 6c 42 61 73 65 29 29 0d 0a 20 oFossilBase))..
05e0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 }.. va
05f0: 72 20 66 20 3d 20 76 38 4e 65 77 28 22 46 69 6c r f = v8New("Fil
0600: 65 22 2c 20 d0 bc 50 61 74 68 54 6f 46 6f 73 73 e", ..PathToFoss
0610: 69 6c 42 61 73 65 29 3b 20 0d 0a 20 20 20 20 69 ilBase); .. i
0620: 66 20 28 66 2e 45 78 69 73 74 28 29 29 20 7b 0d f (f.Exist()) {.
0630: 0a 20 20 20 20 20 20 20 20 50 61 74 68 54 6f 46 . PathToF
0640: 6f 73 73 69 6c 20 3d 20 d0 bc 50 61 74 68 54 6f ossil = ..PathTo
0650: 46 6f 73 73 69 6c 42 61 73 65 3b 0d 0a 20 20 20 FossilBase;..
0660: 20 7d 0d 0a 7d 0d 0a 69 66 20 28 50 61 74 68 54 }..}..if (PathT
0670: 6f 46 6f 73 73 69 6c 3d 3d 27 27 20 26 26 20 d0 oFossil=='' && .
0680: bc 50 61 74 68 54 6f 46 6f 73 73 69 6c 21 3d 27 .PathToFossil!='
0690: 27 29 20 7b 20 2f 2f d0 bf d1 80 d0 be d1 87 d1 ') { //.........
06a0: 82 d0 b5 d0 bc 20 d0 bd d0 b0 d1 81 d1 82 d1 80 ..... ..........
06b0: d0 be d0 b9 d0 ba d0 b8 20 d1 81 d0 bd d0 b5 d0 ........ .......
06c0: b3 d0 be d0 bf d0 b0 d1 82 d0 b0 0d 0a 20 20 20 .............
06d0: 20 69 66 20 28 d0 bc 50 61 74 68 54 6f 46 6f 73 if (..PathToFos
06e0: 73 69 6c 2e 73 75 62 73 74 72 28 30 2c 31 29 20 sil.substr(0,1)
06f0: 3d 3d 20 22 2e 22 29 20 7b 0d 0a 20 20 20 20 20 == ".") {..
0700: 20 20 20 76 61 72 20 d0 bc 50 61 74 68 54 6f 46 var ..PathToF
0710: 6f 73 73 69 6c 20 3d 20 46 53 4f 2e 47 65 74 41 ossil = FSO.GetA
0720: 62 73 6f 6c 75 74 65 50 61 74 68 4e 61 6d 65 28 bsolutePathName(
0730: 46 53 4f 2e 62 75 69 6c 64 50 61 74 68 28 6d 61 FSO.buildPath(ma
0740: 69 6e 46 6f 6c 64 65 72 2c 20 d0 bc 50 61 74 68 inFolder, ..Path
0750: 54 6f 46 6f 73 73 69 6c 29 29 0d 0a 20 20 20 20 ToFossil))..
0760: 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 20 66 }.. var f
0770: 20 3d 20 76 38 4e 65 77 28 22 46 69 6c 65 22 2c = v8New("File",
0780: 20 d0 bc 50 61 74 68 54 6f 46 6f 73 73 69 6c 29 ..PathToFossil)
0790: 3b 20 0d 0a 20 20 20 20 69 66 20 28 66 2e 45 78 ; .. if (f.Ex
07a0: 69 73 74 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 ist()) {..
07b0: 20 20 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 3d PathToFossil =
07c0: 20 d0 bc 50 61 74 68 54 6f 46 6f 73 73 69 6c 3b ..PathToFossil;
07d0: 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 69 66 20 28 .. }..}..if (
07e0: 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 3d 3d 20 PathToFossil ==
07f0: 27 27 29 20 7b 0d 0a 20 20 20 20 d0 bc 50 61 74 '') {.. ..Pat
0800: 68 54 6f 46 6f 73 73 69 6c 20 3d 20 22 66 6f 73 hToFossil = "fos
0810: 73 69 6c 2e 65 78 65 22 3b 0d 0a 20 20 20 20 50 sil.exe";.. P
0820: 61 74 68 54 6f 46 6f 73 73 69 6c 20 3d 20 d0 bc athToFossil = ..
0830: 50 61 74 68 54 6f 46 6f 73 73 69 6c 3b 0d 0a 7d PathToFossil;..}
0840: 0d 0a 69 66 20 28 50 61 74 68 54 6f 46 6f 73 73 ..if (PathToFoss
0850: 69 6c 2e 69 6e 64 65 78 4f 66 28 22 20 22 29 21 il.indexOf(" ")!
0860: 3d 2d 31 29 20 7b 0d 0a 20 20 20 20 50 61 74 68 =-1) {.. Path
0870: 54 6f 46 6f 73 73 69 6c 20 3d 20 27 22 27 2b 50 ToFossil = '"'+P
0880: 61 74 68 54 6f 46 6f 73 73 69 6c 2b 27 22 27 0d athToFossil+'"'.
0890: 0a 7d 0d 0a 0d 0a 0d 0a 76 61 72 20 46 6f 72 52 .}......var ForR
08a0: 65 61 64 69 6e 67 20 3d 20 31 2c 20 46 6f 72 57 eading = 1, ForW
08b0: 72 69 74 69 6e 67 20 3d 20 32 2c 20 46 6f 72 41 riting = 2, ForA
08c0: 70 70 65 6e 64 69 6e 67 20 3d 20 38 3b 0d 0a 76 ppending = 8;..v
08d0: 61 72 20 57 73 68 53 68 65 6c 6c 20 3d 20 6e 65 ar WshShell = ne
08e0: 77 20 41 63 74 69 76 65 58 4f 62 6a 65 63 74 28 w ActiveXObject(
08f0: 22 57 53 63 72 69 70 74 2e 53 68 65 6c 6c 22 29 "WScript.Shell")
0900: 3b 0d 0a 76 61 72 20 54 65 6d 70 44 69 72 20 3d ;..var TempDir =
0910: 20 57 73 68 53 68 65 6c 6c 2e 45 78 70 61 6e 64 WshShell.Expand
0920: 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 74 72 69 6e EnvironmentStrin
0930: 67 73 28 22 25 74 65 6d 70 25 22 29 20 2b 20 22 gs("%temp%") + "
0940: 5c 5c 22 3b 0d 0a 76 61 72 20 6d 61 69 6e 46 6f \\";..var mainFo
0950: 6c 64 65 72 20 3d 20 70 72 6f 66 69 6c 65 52 6f lder = profileRo
0960: 6f 74 2e 67 65 74 56 61 6c 75 65 28 22 53 6e 65 ot.getValue("Sne
0970: 67 6f 70 61 74 2f 4d 61 69 6e 46 6f 6c 64 65 72 gopat/MainFolder
0980: 22 29 0d 0a 0d 0a 76 61 72 20 d0 a1 d0 be d0 be ")....var ......
0990: d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d0 b8 ................
09a0: d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 d0 98 ................
09b0: d0 a1 d1 82 d0 b0 d1 82 d1 83 d1 81 d0 be d0 b2 ................
09c0: 20 3d 20 5b 5d 3b 0d 0a 0d 0a 76 61 72 20 d0 bc = [];....var ..
09d0: d0 a4 d0 be d1 80 d0 bc d0 b0 d0 9d d0 b0 d1 81 ................
09e0: d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 3d 6e 75 6c ............=nul
09f0: 6c 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 l....function ma
0a00: 63 72 6f 73 d0 9d d0 b0 d1 81 d1 82 d1 80 d0 be cros............
0a10: d0 ba d0 b0 46 6f 73 73 69 6c 28 29 7b 0d 0a 20 ....Fossil(){..
0a20: 20 20 20 76 61 72 20 70 61 74 68 54 6f 46 6f 72 var pathToFor
0a30: 6d 3d 53 65 6c 66 53 63 72 69 70 74 2e 66 75 6c m=SelfScript.ful
0a40: 6c 50 61 74 68 2e 72 65 70 6c 61 63 65 28 2f 6a lPath.replace(/j
0a50: 73 24 2f 2c 20 27 73 73 66 27 29 0d 0a 20 20 20 s$/, 'ssf')..
0a60: 20 d0 bc d0 a4 d0 be d1 80 d0 bc d0 b0 d0 9d d0 ...............
0a70: b0 d1 81 d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 3d ...............=
0a80: 6c 6f 61 64 53 63 72 69 70 74 46 6f 72 6d 28 70 loadScriptForm(p
0a90: 61 74 68 54 6f 46 6f 72 6d 2c 20 53 65 6c 66 53 athToForm, SelfS
0aa0: 63 72 69 70 74 2e 73 65 6c 66 29 20 2f 2f 20 d0 cript.self) // .
0ab0: 9e d0 b1 d1 80 d0 b0 d0 b1 d0 be d1 82 d0 ba d1 ................
0ac0: 83 20 d1 81 d0 be d0 b1 d1 8b d1 82 d0 b8 d0 b9 . ..............
0ad0: 20 d1 84 d0 be d1 80 d0 bc d1 8b 20 d0 bf d1 80 .......... ....
0ae0: d0 b8 d0 b2 d1 8f d0 b6 d0 b5 d0 bc 20 d0 ba 20 ............ ..
0af0: d1 81 d0 b0 d0 bc d0 be d0 bc d1 83 20 d1 81 d0 ............ ...
0b00: ba d1 80 d0 b8 d0 bf d1 82 d1 83 0d 0a 20 20 20 .............
0b10: 20 d0 bc d0 a4 d0 be d1 80 d0 bc d0 b0 d0 9d d0 ...............
0b20: b0 d1 81 d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 2e ................
0b30: d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d1 8c d0 9c ................
0b40: d0 be d0 b4 d0 b0 d0 bb d1 8c d0 bd d0 be 28 29 ..............()
0b50: 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 ..}....function
0b60: d0 bc d0 97 d0 b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 ................
0b70: d1 8c d0 9d d0 b0 d1 81 d1 82 d1 80 d0 be d0 b9 ................
0b80: d0 ba d0 b8 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 ....()..{.. v
0b90: 61 72 20 46 6f 73 73 69 6c 53 6e 65 67 6f 70 61 ar FossilSnegopa
0ba0: 74 20 3d 20 d0 bc d0 a4 d0 be d1 80 d0 bc d0 b0 t = ............
0bb0: d0 9d d0 b0 d1 81 d1 82 d1 80 d0 be d0 b9 d0 ba ................
0bc0: d0 b8 2e 63 6d 64 53 6e 65 67 6f 70 61 74 3b 0d ...cmdSnegopat;.
0bd0: 0a 20 20 20 20 76 61 72 20 46 6f 73 73 69 6c 42 . var FossilB
0be0: 61 73 65 20 3d 20 d0 bc d0 a4 d0 be d1 80 d0 bc ase = ..........
0bf0: d0 b0 d0 9d d0 b0 d1 81 d1 82 d1 80 d0 be d0 b9 ................
0c00: d0 ba d0 b8 2e 63 6d 64 42 61 73 65 3b 0d 0a 20 .....cmdBase;..
0c10: 20 20 20 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 73 profileRoot.s
0c20: 65 74 56 61 6c 75 65 28 70 66 46 6f 73 73 69 6c etValue(pfFossil
0c30: 50 61 74 68 2c 20 46 6f 73 73 69 6c 53 6e 65 67 Path, FossilSneg
0c40: 6f 70 61 74 29 0d 0a 20 20 20 20 70 72 6f 66 69 opat).. profi
0c50: 6c 65 52 6f 6f 74 2e 73 65 74 56 61 6c 75 65 28 leRoot.setValue(
0c60: 70 66 46 6f 73 73 69 6c 50 61 74 68 42 61 73 65 pfFossilPathBase
0c70: 2c 20 46 6f 73 73 69 6c 42 61 73 65 29 0d 0a 7d , FossilBase)..}
0c80: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 d0 9d d0 ....function ...
0c90: b0 d1 81 d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 d0 ................
0ca0: 9f d1 80 d0 b8 d0 9e d1 82 d0 ba d1 80 d1 8b d1 ................
0cb0: 82 d0 b8 d0 b8 28 29 0d 0a 7b 0d 0a 20 20 20 20 .....()..{..
0cc0: d0 bc d0 a4 d0 be d1 80 d0 bc d0 b0 d0 9d d0 b0 ................
0cd0: d1 81 d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 2e 63 ...............c
0ce0: 6d 64 53 6e 65 67 6f 70 61 74 3d d0 bc 50 61 74 mdSnegopat=..Pat
0cf0: 68 54 6f 46 6f 73 73 69 6c 0d 0a 20 20 20 20 d0 hToFossil.. .
0d00: bc d0 a4 d0 be d1 80 d0 bc d0 b0 d0 9d d0 b0 d1 ................
0d10: 81 d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 2e 63 6d ..............cm
0d20: 64 42 61 73 65 3d d0 bc 50 61 74 68 54 6f 46 6f dBase=..PathToFo
0d30: 73 73 69 6c 42 61 73 65 0d 0a 7d 0d 0a 0d 0a 66 ssilBase..}....f
0d40: 75 6e 63 74 69 6f 6e 20 63 6d 64 53 6e 65 67 6f unction cmdSnego
0d50: 70 61 74 d0 9d d0 b0 d1 87 d0 b0 d0 bb d0 be d0 pat.............
0d60: 92 d1 8b d0 b1 d0 be d1 80 d0 b0 28 d0 ad d0 bb ...........(....
0d70: d0 b5 d0 bc d0 b5 d0 bd d1 82 2c 20 d0 a1 d1 82 .........., ....
0d80: d0 b0 d0 bd d0 b4 d0 b0 d1 80 d1 82 d0 bd d0 b0 ................
0d90: d1 8f d0 9e d0 b1 d1 80 d0 b0 d0 b1 d0 be d1 82 ................
0da0: d0 ba d0 b0 29 20 7b 0d 0a 20 20 20 20 d0 bb d0 ....) {.. ...
0db0: a4 d0 b0 d0 b9 d0 bb 3d d0 bc d0 92 d1 8b d0 b1 .......=........
0dc0: d1 80 d0 b0 d1 82 d1 8c d0 a4 d0 b0 d0 b9 d0 bb ................
0dd0: 28 29 0d 0a 20 20 20 20 69 66 28 d0 bb d0 a4 d0 ().. if(.....
0de0: b0 d0 b9 d0 bb 3d 3d 22 22 29 20 72 65 74 75 72 .....=="") retur
0df0: 6e 0d 0a 20 20 20 20 d0 ad d0 bb d0 b5 d0 bc d0 n.. .........
0e00: b5 d0 bd d1 82 2e 76 61 6c 2e d0 97 d0 bd d0 b0 ......val.......
0e10: d1 87 d0 b5 d0 bd d0 b8 d0 b5 3d d0 bb d0 a4 d0 ..........=.....
0e20: b0 d0 b9 d0 bb 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 .......}....func
0e30: 74 69 6f 6e 20 63 6d 64 42 61 73 65 d0 9d d0 b0 tion cmdBase....
0e40: d1 87 d0 b0 d0 bb d0 be d0 92 d1 8b d0 b1 d0 be ................
0e50: d1 80 d0 b0 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 ....(...........
0e60: bd d1 82 2c 20 d0 a1 d1 82 d0 b0 d0 bd d0 b4 d0 ..., ...........
0e70: b0 d1 80 d1 82 d0 bd d0 b0 d1 8f d0 9e d0 b1 d1 ................
0e80: 80 d0 b0 d0 b1 d0 be d1 82 d0 ba d0 b0 29 20 7b .............) {
0e90: 0d 0a 20 20 20 20 d0 bb d0 a4 d0 b0 d0 b9 d0 bb .. ..........
0ea0: 3d d0 bc d0 92 d1 8b d0 b1 d1 80 d0 b0 d1 82 d1 =...............
0eb0: 8c d0 a4 d0 b0 d0 b9 d0 bb 28 29 0d 0a 20 20 20 .........()..
0ec0: 20 69 66 28 d0 bb d0 a4 d0 b0 d0 b9 d0 bb 3d 3d if(..........==
0ed0: 22 22 29 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 "") return..
0ee0: d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 2e 76 ...............v
0ef0: 61 6c 2e d0 97 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 al..............
0f00: b8 d0 b5 3d d0 bb d0 a4 d0 b0 d0 b9 d0 bb 0d 0a ...=............
0f10: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 d0 9a }....function ..
0f20: d0 bd d0 be d0 bf d0 ba d0 b0 d0 97 d0 b0 d0 bf ................
0f30: d0 b8 d1 81 d0 b0 d1 82 d1 8c d0 9d d0 b0 d0 b6 ................
0f40: d0 b0 d1 82 d0 b8 d0 b5 28 d0 9a d0 bd d0 be d0 ........(.......
0f50: bf d0 ba d0 b0 29 20 7b 0d 0a 20 20 20 20 d0 bc .....) {.. ..
0f60: d0 97 d0 b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c ................
0f70: d0 9d d0 b0 d1 81 d1 82 d1 80 d0 be d0 b9 d0 ba ................
0f80: d0 b8 28 29 3b 0d 0a 20 20 20 20 d0 bc d0 a4 d0 ..();.. .....
0f90: be d1 80 d0 bc d0 b0 d0 9d d0 b0 d1 81 d1 82 d1 ................
0fa0: 80 d0 be d0 b9 d0 ba d0 b8 2e d0 97 d0 b0 d0 ba ................
0fb0: d1 80 d1 8b d1 82 d1 8c 28 29 3b 0d 0a 7d 0d 0a ........();..}..
0fc0: 0d 0a 66 75 6e 63 74 69 6f 6e 20 d0 bc d0 92 d1 ..function .....
0fd0: 8b d0 b1 d1 80 d0 b0 d1 82 d1 8c d0 a4 d0 b0 d0 ................
0fe0: b9 d0 bb 28 29 0d 0a 7b 0d 0a 20 20 20 20 d0 94 ...()..{.. ..
0ff0: d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 9e d1 82 d0 ba ................
1000: d1 80 d1 8b d1 82 d0 b8 d1 8f d0 a4 d0 b0 d0 b9 ................
1010: d0 bb d0 b0 3d 76 38 4e 65 77 28 22 d0 94 d0 b8 ....=v8New("....
1020: d0 b0 d0 bb d0 be d0 b3 d0 92 d1 8b d0 b1 d0 be ................
1030: d1 80 d0 b0 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 22 2c ..............",
1040: 20 d0 a0 d0 b5 d0 b6 d0 b8 d0 bc d0 94 d0 b8 d0 ...............
1050: b0 d0 bb d0 be d0 b3 d0 b0 d0 92 d1 8b d0 b1 d0 ................
1060: be d1 80 d0 b0 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e ................
1070: d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 d0 b5 ................
1080: 29 0d 0a 20 20 20 20 2f 2f d0 94 d0 b8 d0 b0 d0 ).. //.......
1090: bb d0 be d0 b3 d0 9e d1 82 d0 ba d1 80 d1 8b d1 ................
10a0: 82 d0 b8 d1 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e ................
10b0: d0 9f d0 be d0 bb d0 bd d0 be d0 b5 d0 98 d0 bc ................
10c0: d1 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 20 3d 20 22 ............ = "
10d0: 22 0d 0a 20 20 20 20 d0 94 d0 b8 d0 b0 d0 bb d0 ".. .........
10e0: be d0 b3 d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d0 ................
10f0: b8 d1 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 97 ................
1100: d0 b0 d0 b3 d0 be d0 bb d0 be d0 b2 d0 be d0 ba ................
1110: 20 3d 20 22 d0 92 d1 8b d0 b1 d0 b5 d1 80 d0 b8 = "............
1120: d1 82 d0 b5 20 d1 84 d0 b0 d0 b9 d0 bb 20 d1 81 .... ........ ..
1130: 20 66 6f 73 73 69 6c 20 22 0d 0a 20 20 20 20 69 fossil ".. i
1140: 66 28 d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 9e f(..............
1150: d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 d1 8f d0 a4 ................
1160: d0 b0 d0 b9 d0 bb d0 b0 2e d0 92 d1 8b d0 b1 d1 ................
1170: 80 d0 b0 d1 82 d1 8c 28 29 3d 3d 66 61 6c 73 65 .......()==false
1180: 29 20 72 65 74 75 72 6e 20 22 22 0d 0a 20 20 20 ) return ""..
1190: 20 72 65 74 75 72 6e 20 d0 94 d0 b8 d0 b0 d0 bb return ........
11a0: d0 be d0 b3 d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 ................
11b0: d0 b8 d1 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 ................
11c0: 9f d0 be d0 bb d0 bd d0 be d0 b5 d0 98 d0 bc d1 ................
11d0: 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 0d 0a 7d 0d 0a .............}..
11e0: 0d 0a 66 75 6e 63 74 69 6f 6e 20 d0 a1 d0 be d0 ..function .....
11f0: b7 d0 b4 d0 b0 d1 82 d1 8c d0 a0 d0 b5 d0 be d0 ................
1200: bf d0 b7 d0 b8 d1 82 d0 be d1 80 d0 b8 d0 b9 d0 ................
1210: 9d d0 b0 d0 b6 d0 b0 d1 82 d0 b8 d0 b5 28 d0 9a .............(..
1220: d0 bd d0 be d0 bf d0 ba d0 b0 29 20 7b 20 0d 0a ..........) { ..
1230: 20 20 20 20 d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 ............
1240: d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 d1 8f ................
1250: d0 a4 d0 b0 d0 b9 d0 bb d0 b0 3d 76 38 4e 65 77 ..........=v8New
1260: 28 22 d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 92 ("..............
1270: d1 8b d0 b1 d0 be d1 80 d0 b0 d0 a4 d0 b0 d0 b9 ................
1280: d0 bb d0 b0 22 2c 20 d0 a0 d0 b5 d0 b6 d0 b8 d0 ....", .........
1290: bc d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 b0 d0 ................
12a0: 92 d1 8b d0 b1 d0 be d1 80 d0 b0 d0 a4 d0 b0 d0 ................
12b0: b9 d0 bb d0 b0 2e 53 61 76 65 29 3b 0d 0a 20 20 ......Save);..
12c0: 20 20 d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 9e ..............
12d0: d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 d1 8f d0 a4 ................
12e0: d0 b0 d0 b9 d0 bb d0 b0 2e d0 97 d0 b0 d0 b3 d0 ................
12f0: be d0 bb d0 be d0 b2 d0 be d0 ba 20 3d 20 22 d0 ........... = ".
1300: 92 d1 8b d0 b1 d0 b5 d1 80 d0 b8 d1 82 d0 b5 20 ...............
1310: d1 84 d0 b0 d0 b9 d0 bb 2c 20 d0 b4 d0 bb d1 8f ........, ......
1320: 20 d1 81 d0 be d0 b7 d0 b4 d0 b0 d0 bd d0 b8 d1 ...............
1330: 8f 20 d1 80 d0 b5 d0 bf d0 be d0 b7 d0 b8 d1 82 . ..............
1340: d0 b0 d1 80 d0 b8 d1 8f 20 22 3b 0d 0a 20 20 20 ........ ";..
1350: 20 69 66 28 d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 if(............
1360: d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 d1 8f ................
1370: d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 92 d1 8b d0 ................
1380: b1 d1 80 d0 b0 d1 82 d1 8c 28 29 29 20 7b 0d 0a .........()) {..
1390: 20 20 20 20 20 20 20 20 76 61 72 20 50 61 74 68 var Path
13a0: 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 ToBatFossil = Te
13b0: 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 mpDir + "fossilT
13c0: 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 20 20 rue.bat"..
13d0: 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 var PathToFoss
13e0: 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 ilOutput = TempD
13f0: 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 ir + "fossilstat
1400: 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 us.txt" // .....
1410: 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 ..... 1.. ......
1420: d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 .. .. utf-8, ...
1430: 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 ........... ....
1440: d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 .... ...........
1450: 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 . fossil .......
1460: bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 ... .......... .
1470: 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 ........... ....
1480: d0 be 2e 20 0d 0a 20 20 20 20 20 20 20 20 76 61 ... .. va
1490: 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 r TextDoc = v8Ne
14a0: 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 w("TextDocument"
14b0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 );.. Text
14c0: 44 6f 63 2e d0 97 d0 b0 d0 bf d0 b8 d1 81 d0 b0 Doc.............
14d0: d1 82 d1 8c 28 50 61 74 68 54 6f 46 6f 73 73 69 ....(PathToFossi
14e0: 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 2d 38 22 lOutput, "UTF-8"
14f0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 76 61 );.. //va
1500: 72 20 70 61 74 68 54 6f 43 61 74 61 6c 6f 67 20 r pathToCatalog
1510: 3d 20 66 2e 50 61 74 68 3b 0d 0a 20 20 20 20 20 = f.Path;..
1520: 20 20 20 2f 2f 54 65 78 74 44 6f 63 2e 41 64 64 //TextDoc.Add
1530: 4c 69 6e 65 28 27 63 64 20 2f 64 22 27 20 2b d0 Line('cd /d"' +.
1540: bc d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 ................
1550: b3 20 2b 27 22 27 29 0d 0a 20 20 20 20 20 20 20 . +'"')..
1560: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
1570: 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 2b 27 (PathToFossil +'
1580: 20 6e 65 77 20 22 27 2b d0 94 d0 b8 d0 b0 d0 bb new "'+........
1590: d0 be d0 b3 d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 ................
15a0: d0 b8 d1 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 ................
15b0: 9f d0 be d0 bb d0 bd d0 be d0 b5 d0 98 d0 bc d1 ................
15c0: 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2b 27 22 27 29 ...........+'"')
15d0: 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 ;.. TextD
15e0: 6f 63 2e 41 64 64 4c 69 6e 65 28 22 65 78 69 74 oc.AddLine("exit
15f0: 22 29 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 ").. Text
1600: 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f Doc.Write(PathTo
1610: 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 BatFossil, 'cp86
1620: 36 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 45 72 6');.. Er
1630: 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c rCode = WshShell
1640: 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 .Run('"'+PathToB
1650: 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 31 2c atFossil+'"', 1,
1660: 20 31 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 1);.. }..}..
1670: 0d 0a 66 75 6e 63 74 69 6f 6e 20 d0 9e d1 82 d0 ..function .....
1680: ba d1 80 d1 8b d1 82 d1 8c d0 a0 d0 b5 d0 bf d0 ................
1690: be d0 9d d0 b0 d0 b6 d0 b0 d1 82 d0 b8 d0 b5 28 ...............(
16a0: d0 9a d0 bd d0 be d0 bf d0 ba d0 b0 29 20 7b 20 ............) {
16b0: 0d 0a 20 20 20 20 d0 bb d0 a4 d0 b0 d0 b9 d0 bb .. ..........
16c0: 3d d0 bc d0 92 d1 8b d0 b1 d1 80 d0 b0 d1 82 d1 =...............
16d0: 8c d0 a4 d0 b0 d0 b9 d0 bb 28 29 0d 0a 20 20 20 .........()..
16e0: 20 69 66 28 d0 bb d0 a4 d0 b0 d0 b9 d0 bb 3d 3d if(..........==
16f0: 22 22 29 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 "") return..
1700: d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 9e d1 82 ................
1710: d0 ba d1 80 d1 8b d1 82 d0 b8 d1 8f d0 a4 d0 b0 ................
1720: d0 b9 d0 bb d0 b0 3d 76 38 4e 65 77 28 22 d0 94 ......=v8New("..
1730: d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 92 d1 8b d0 b1 ................
1740: d0 be d1 80 d0 b0 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 ................
1750: 22 2c 20 d0 a0 d0 b5 d0 b6 d0 b8 d0 bc d0 94 d0 ", .............
1760: b8 d0 b0 d0 bb d0 be d0 b3 d0 b0 d0 92 d1 8b d0 ................
1770: b1 d0 be d1 80 d0 b0 d0 a4 d0 b0 d0 b9 d0 bb d0 ................
1780: b0 2e d0 92 d1 8b d0 b1 d0 be d1 80 d0 9a d0 b0 ................
1790: d1 82 d0 b0 d0 bb d0 be d0 b3 d0 b0 29 3b 0d 0a ............);..
17a0: 20 20 20 20 d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 ............
17b0: d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 d1 8f ................
17c0: d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 97 d0 b0 d0 ................
17d0: b3 d0 be d0 bb d0 be d0 b2 d0 be d0 ba 20 3d 20 ............. =
17e0: 22 d0 92 d1 8b d0 b1 d0 b5 d1 80 d0 b8 d1 82 d0 "...............
17f0: b5 20 d0 ba d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 . ..............
1800: 2c 20 d0 ba d1 83 d0 b4 d0 b0 20 d0 be d1 82 d0 , ........ .....
1810: ba d1 80 d1 8b d1 82 d1 8c 20 d1 80 d0 b5 d0 bf ......... ......
1820: d0 be d0 b7 d0 b8 d1 82 d0 be d1 80 d0 b8 d0 b9 ................
1830: 20 22 3b 0d 0a 20 20 20 20 69 66 28 d0 94 d0 b8 ";.. if(....
1840: d0 b0 d0 bb d0 be d0 b3 d0 9e d1 82 d0 ba d1 80 ................
1850: d1 8b d1 82 d0 b8 d1 8f d0 a4 d0 b0 d0 b9 d0 bb ................
1860: d0 b0 2e d0 92 d1 8b d0 b1 d1 80 d0 b0 d1 82 d1 ................
1870: 8c 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 .()) {..
1880: 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c var PathToFossil
1890: 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 69 72 Output = TempDir
18a0: 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 75 73 + "fossilstatus
18b0: 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 .txt" // .......
18c0: b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb ... 1.. ........
18d0: 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 .. utf-8, .....
18e0: b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 ......... ......
18f0: d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 .. ............
1900: 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 fossil .........
1910: b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 . .......... ...
1920: b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be ......... ......
1930: 2e 20 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 . .. var
1940: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 PathToBatFossil
1950: 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 = TempDir + "fos
1960: 73 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 silTrue.bat"..
1970: 20 20 20 20 20 20 76 61 72 20 54 65 78 74 44 6f var TextDo
1980: 63 20 3d 20 76 38 4e 65 77 28 22 54 65 78 74 44 c = v8New("TextD
1990: 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 ocument");..
19a0: 20 20 20 20 54 65 78 74 44 6f 63 2e d0 97 d0 b0 TextDoc.....
19b0: d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c 28 50 61 74 ............(Pat
19c0: 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c hToFossilOutput,
19d0: 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 "UTF-8");..
19e0: 20 20 20 20 2f 2f 76 61 72 20 70 61 74 68 54 6f //var pathTo
19f0: 43 61 74 61 6c 6f 67 20 3d 20 66 2e 50 61 74 68 Catalog = f.Path
1a00: 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 ;.. TextD
1a10: 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f oc.AddLine('cd /
1a20: 64 20 22 27 20 2b d0 94 d0 b8 d0 b0 d0 bb d0 be d "' +..........
1a30: d0 b3 d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 ................
1a40: d1 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 9a d0 ................
1a50: b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 2b 27 22 27 ........... +'"'
1a60: 29 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 );.. Text
1a70: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 Doc.AddLine(Path
1a80: 54 6f 46 6f 73 73 69 6c 20 2b 27 20 6f 70 65 6e ToFossil +' open
1a90: 20 22 27 2b d0 bb d0 a4 d0 b0 d0 b9 d0 bb 2b 27 "'+..........+'
1aa0: 22 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 "');.. Te
1ab0: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 22 65 xtDoc.AddLine("e
1ac0: 78 69 74 22 29 0d 0a 20 20 20 20 20 20 20 20 54 xit").. T
1ad0: 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 extDoc.Write(Pat
1ae0: 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 hToBatFossil, 'c
1af0: 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 20 20 20 p866');..
1b00: 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 ErrCode = WshSh
1b10: 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 ell.Run('"'+Path
1b20: 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c ToBatFossil+'"',
1b30: 20 31 2c 20 31 29 3b 0d 0a 20 20 20 20 7d 0d 0a 1, 1);.. }..
1b40: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 d0 97 }....function ..
1b50: d0 b0 d0 bf d1 83 d1 81 d1 82 d0 b8 d1 82 d1 8c ................
1b60: 46 6f 73 73 69 6c d0 9d d0 b0 d0 b6 d0 b0 d1 82 Fossil..........
1b70: d0 b8 d0 b5 28 d0 9a d0 bd d0 be d0 bf d0 ba d0 ....(...........
1b80: b0 29 20 7b 20 0d 0a 20 20 20 20 66 6f 73 73 69 .) { .. fossi
1b90: 6c 5f 72 75 6e 28 6d 61 69 6e 46 6f 6c 64 65 72 l_run(mainFolder
1ba0: 29 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 66 75 6e 63 74 );..}......funct
1bb0: 69 6f 6e 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f ion fossil_getRo
1bc0: 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 68 29 7b otCatalog(path){
1bd0: 0d 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 .. var result
1be0: 20 3d 20 22 22 3b 0d 0a 20 20 20 20 66 6f 72 20 = "";.. for
1bf0: 28 76 61 72 20 6b 65 79 20 69 6e 20 d0 a1 d0 be (var key in ....
1c00: d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 ................
1c10: d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 ................
1c20: d0 98 d0 a1 d1 82 d0 b0 d1 82 d1 83 d1 81 d0 be ................
1c30: d0 b2 29 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 ..){.. if
1c40: 20 28 70 61 74 68 2e 69 6e 64 65 78 4f 66 28 6b (path.indexOf(k
1c50: 65 79 29 21 3d 2d 31 29 20 7b 0d 0a 20 20 20 20 ey)!=-1) {..
1c60: 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d result =
1c70: 20 6b 65 79 0d 0a 20 20 20 20 20 20 20 20 20 20 key..
1c80: 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 20 20 20 break..
1c90: 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 69 }.. }.. i
1ca0: 66 20 28 72 65 73 75 6c 74 3d 3d 75 6e 64 65 66 f (result==undef
1cb0: 69 6e 65 64 29 20 7b 0d 0a 20 20 20 20 20 20 20 ined) {..
1cc0: 20 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28 22 var f = v8New("
1cd0: 46 69 6c 65 22 2c 20 70 61 74 68 29 3b 0d 0a 20 File", path);..
1ce0: 20 20 20 20 20 20 20 69 66 20 28 66 2e 45 78 69 if (f.Exi
1cf0: 73 74 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 st()) {..
1d00: 20 20 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 var PathToF
1d10: 6f 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 ossilOutput = Te
1d20: 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 mpDir + "fossils
1d30: 74 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f tatus.txt" // ..
1d40: d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 ........ 1.. ...
1d50: b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 ..... .. utf-8,
1d60: d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 .............. .
1d70: 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 ....... ........
1d80: d1 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be .... fossil ....
1d90: d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 ...... .........
1da0: be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 . ............ .
1db0: b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 20 20 20 ...... ..
1dc0: 20 20 20 20 20 76 61 72 20 50 61 74 68 54 6f 42 var PathToB
1dd0: 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 6d 70 44 atFossil = TempD
1de0: 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 72 75 65 ir + "fossilTrue
1df0: 2e 62 61 74 22 0d 0a 20 20 20 20 20 20 20 20 20 .bat"..
1e00: 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d var TextDoc =
1e10: 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 v8New("TextDocu
1e20: 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 20 20 20 ment");..
1e30: 20 20 20 20 20 54 65 78 74 44 6f 63 2e d0 97 d0 TextDoc....
1e40: b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c 28 50 61 .............(Pa
1e50: 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 thToFossilOutput
1e60: 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 , "UTF-8");..
1e70: 20 20 20 20 20 20 20 20 20 2f 2f 76 61 72 20 70 //var p
1e80: 61 74 68 54 6f 43 61 74 61 6c 6f 67 20 3d 20 66 athToCatalog = f
1e90: 2e 50 61 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 .Path;..
1ea0: 20 20 20 20 d0 bc d0 bb d0 9a d0 b0 d1 82 d0 b0 ............
1eb0: d0 bb d0 be d0 b3 20 3d 20 66 2e 50 61 74 68 3b ...... = f.Path;
1ec0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 65 .. Te
1ed0: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 xtDoc.AddLine('c
1ee0: 64 20 2f 64 22 27 20 2b d0 bc d0 bb d0 9a d0 b0 d /d"' +........
1ef0: d1 82 d0 b0 d0 bb d0 be d0 b3 20 2b 27 22 27 29 .......... +'"')
1f00: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 65 .. Te
1f10: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 xtDoc.AddLine(Pa
1f20: 74 68 54 6f 46 6f 73 73 69 6c 20 2b 27 20 73 74 thToFossil +' st
1f30: 61 74 75 73 20 3e 3e 20 22 27 2b 50 61 74 68 54 atus >> "'+PathT
1f40: 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2b 27 22 oFossilOutput+'"
1f50: 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ');..
1f60: 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 TextDoc.Write(P
1f70: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 athToBatFossil,
1f80: 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 20 'cp866');..
1f90: 20 20 20 20 20 20 20 45 72 72 43 6f 64 65 20 3d ErrCode =
1fa0: 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 WshShell.Run('"
1fb0: 27 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 '+PathToBatFossi
1fc0: 6c 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 l+'"', 0, 1)..
1fd0: 20 20 20 20 20 20 20 20 20 20 54 65 78 74 44 6f TextDo
1fe0: 63 2e 52 65 61 64 28 50 61 74 68 54 6f 46 6f 73 c.Read(PathToFos
1ff0: 73 69 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 2d silOutput, "UTF-
2000: 38 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 8");..
2010: 20 20 69 66 20 28 54 65 78 74 44 6f 63 2e 4c 69 if (TextDoc.Li
2020: 6e 65 43 6f 75 6e 74 28 29 20 3d 3d 20 30 29 20 neCount() == 0)
2030: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
2040: 20 20 20 4d 65 73 73 61 67 65 20 28 22 d0 ba d0 Message ("...
2050: be d0 bc d0 bc d0 b0 d0 bd d0 b4 d0 b0 20 d0 be ............. ..
2060: d1 82 d1 80 d0 b0 d0 b1 d0 be d1 82 d0 b0 d0 bb ................
2070: d0 b0 2c 20 d0 bd d0 be 20 d0 b2 d1 8b d0 b2 d0 .., .... .......
2080: be d0 b4 20 d0 bd d0 b5 20 d0 b7 d0 b0 d0 bf d0 ... .... .......
2090: b8 d1 81 d0 b0 d0 bb d1 81 d1 8f 2c 20 d0 bd d0 ..........., ...
20a0: b0 d0 b4 d0 be 20 d0 be d1 82 d0 bb d0 b0 d0 b4 ..... ..........
20b0: d0 b8 d1 82 d1 8c 21 22 29 0d 0a 20 20 20 20 20 ......!")..
20c0: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
20d0: 6e 20 22 22 20 2f 2f d1 87 d1 82 d0 be 20 d1 82 n "" //...... ..
20e0: d0 be 20 d0 bf d0 be d1 88 d0 bb d0 be 20 d0 bd .. .......... ..
20f0: d0 b5 20 d1 82 d0 b0 d0 ba 2e 20 0d 0a 20 20 20 .. ....... ..
2100: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 }..
2110: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 ..
2120: 20 20 76 61 72 20 69 3d 30 3b 0d 0a 20 20 20 20 var i=0;..
2130: 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 for (var
2140: 20 69 3d 31 3b 20 69 3c 3d 54 65 78 74 44 6f 63 i=1; i<=TextDoc
2150: 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 3b 20 69 2b .LineCount(); i+
2160: 2b 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 +)..
2170: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
2180: 20 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 44 var r = TextD
2190: 6f 63 2e 47 65 74 4c 69 6e 65 28 69 29 3b 0d 0a oc.GetLine(i);..
21a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21b0: 69 66 20 28 72 2e 69 6e 64 65 78 4f 66 28 22 6c if (r.indexOf("l
21c0: 6f 63 61 6c 2d 72 6f 6f 74 3a 22 29 21 3d 2d 31 ocal-root:")!=-1
21d0: 29 7b 20 2f 2f 20 d0 b2 d1 81 d0 b5 20 d0 bd d0 ){ // ...... ...
21e0: b0 d1 88 d0 bb d0 b8 2c 20 d1 82 d0 b5 d0 bf d0 ......., .......
21f0: b5 d1 80 d1 8c 20 0d 0a 20 20 20 20 20 20 20 20 ..... ..
2200: 20 20 20 20 20 20 20 20 20 20 20 20 d0 bc d0 bb ....
2210: d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 20 ..............
2220: 3d 20 72 2e 73 70 6c 69 74 28 27 20 20 20 27 29 = r.split(' ')
2230: 5b 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 [1];..
2240: 20 20 20 20 20 20 20 20 20 20 d0 bb d0 9a d0 b0 ......
2250: d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d 20 d0 bc d0 .......... = ...
2260: bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2e ................
2270: 72 65 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 27 replace(/\//g, '
2280: 5c 5c 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 \\');..
2290: 20 20 20 20 20 20 20 20 20 20 20 d0 bb d0 9a d0 .....
22a0: b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d 20 d0 bb ........... = ..
22b0: d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2e 73 ...............s
22c0: 75 62 73 74 72 28 30 2c 20 d0 bb d0 9a d0 b0 d1 ubstr(0, .......
22d0: 82 d0 b0 d0 bb d0 be d0 b3 2e 6c 65 6e 67 74 68 ..........length
22e0: 2d 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 -1);..
22f0: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
2300: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
2310: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 }..
2320: 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 }..
2330: 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b TextDoc.Clear();
2340: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 65 .. Te
2350: 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 xtDoc.Write(Path
2360: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 ToFossilOutput,
2370: 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 20 "UTF-8");..
2380: 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 result =
2390: d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 ................
23a0: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 .. }..
23b0: 20 7d 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 }.. return r
23c0: 65 73 75 6c 74 0d 0a 7d 20 2f 2f 66 6f 73 73 69 esult..} //fossi
23d0: 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 l_getRootCatalog
23e0: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 ....function fos
23f0: 73 69 6c 5f 74 65 73 74 28 70 61 74 68 54 6f 43 sil_test(pathToC
2400: 61 74 61 6c 6f 67 29 20 7b 0d 0a 20 20 20 20 0d atalog) {.. .
2410: 0a 20 20 20 20 76 61 72 20 66 20 3d 20 76 38 4e . var f = v8N
2420: 65 77 28 22 46 69 6c 65 22 2c 20 70 61 74 68 54 ew("File", pathT
2430: 6f 43 61 74 61 6c 6f 67 29 3b 0d 0a 20 20 20 20 oCatalog);..
2440: 69 66 20 28 21 66 2e 45 78 69 73 74 28 29 29 20 if (!f.Exist())
2450: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 20 0d 0a return false; ..
2460: 20 20 20 20 69 66 20 28 21 66 2e 49 73 44 69 72 if (!f.IsDir
2470: 65 63 74 6f 72 79 28 29 29 20 72 65 74 75 72 6e ectory()) return
2480: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 69 66 20 false;.. if
2490: 28 21 46 53 4f 2e 46 69 6c 65 45 78 69 73 74 73 (!FSO.FileExists
24a0: 28 46 53 4f 2e 42 75 69 6c 64 50 61 74 68 28 70 (FSO.BuildPath(p
24b0: 61 74 68 54 6f 43 61 74 61 6c 6f 67 2c 20 27 5f athToCatalog, '_
24c0: 46 4f 53 53 49 4c 5f 27 29 29 29 20 72 65 74 75 FOSSIL_'))) retu
24d0: 72 6e 20 66 61 6c 73 65 3b 20 2f 2f d0 b5 d1 81 rn false; //....
24e0: d1 82 d1 8c 20 d1 84 d0 b0 d0 b9 d0 bb 2c 20 d1 .... ........, .
24f0: 82 d0 be d0 b3 d0 b4 d0 b0 20 d0 bf d1 80 d0 be ......... ......
2500: d0 b1 d1 83 d0 b5 d0 bc 2e 20 d0 92 d0 be d0 b7 ......... ......
2510: d0 bc d0 be d0 b6 d0 bd d0 b0 20 d0 bf d1 80 d0 .......... .....
2520: be d0 b1 d0 bb d0 b5 d0 bc d0 b0 20 d1 81 20 d1 ........... .. .
2530: 82 d0 b5 d0 bc 2c 20 d1 87 d1 82 d0 be 20 5f 46 ....., ...... _F
2540: 4f 53 53 49 4c 5f 20 d1 83 d0 ba d0 b0 d0 b7 d1 OSSIL_ .........
2550: 8b d0 b2 d0 b0 d0 b5 d1 82 20 d1 83 20 d1 81 d0 ......... .. ...
2560: b5 d0 b1 d1 8f 20 d0 bf d1 83 d1 82 d1 8c 20 d0 ..... ........ .
2570: ba 20 d0 bd d0 b5 d1 81 d1 83 d1 89 d0 b5 d1 81 . ..............
2580: d1 82 d0 b2 d1 8e d1 89 d0 b5 d0 bc d1 83 20 d1 .............. .
2590: 80 d0 b5 d0 bf d0 be d0 b7 d0 b8 d1 82 d0 b0 d1 ................
25a0: 80 d0 b8 d1 8e 2e 0d 0a 20 20 20 20 0d 0a 20 20 ........ ..
25b0: 20 20 72 65 74 75 72 6e 20 74 72 75 65 0d 0a 7d return true..}
25c0: 20 2f 2f 66 6f 73 73 69 6c 5f 74 65 73 74 0d 0a //fossil_test..
25d0: 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 ..function fossi
25e0: 6c 5f 67 65 74 53 74 61 74 75 73 46 6f 72 43 61 l_getStatusForCa
25f0: 74 61 6c 6f 67 28 70 61 74 68 54 6f 43 61 74 61 talog(pathToCata
2600: 6c 6f 67 2c 20 56 61 6c 75 65 54 61 62 6c 65 73 log, ValueTables
2610: 46 69 6c 65 73 29 20 7b 0d 0a 0d 0a 20 20 20 20 Files) {....
2620: d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 ................
2630: d1 82 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb ................
2640: d0 be d0 b2 d0 98 d0 a1 d1 82 d0 b0 d1 82 d1 83 ................
2650: d1 81 d0 be d0 b2 5b 70 61 74 68 54 6f 43 61 74 ......[pathToCat
2660: 61 6c 6f 67 5d 20 3d 20 7b 7d 3b 0d 0a 20 20 20 alog] = {};..
2670: 20 0d 0a 20 20 20 20 76 61 72 20 d0 a1 d0 be d0 .. var .....
2680: be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d0 ................
2690: b8 d0 b5 d0 a1 d1 82 d0 b0 d1 82 d1 83 d1 81 d0 ................
26a0: be d0 b2 20 3d 20 d0 a1 d0 be d0 be d1 82 d0 b2 ... = ..........
26b0: d0 b5 d1 82 d1 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a4 ................
26c0: d0 b0 d0 b9 d0 bb d0 be d0 b2 d0 98 d0 a1 d1 82 ................
26d0: d0 b0 d1 82 d1 83 d1 81 d0 be d0 b2 5b 70 61 74 ............[pat
26e0: 68 54 6f 43 61 74 61 6c 6f 67 5d 3b 0d 0a 20 20 hToCatalog];..
26f0: 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 var PathToFoss
2700: 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 ilOutput = TempD
2710: 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 ir + "fossilstat
2720: 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 us.txt" // .....
2730: 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 ..... 1.. ......
2740: d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 .. .. utf-8, ...
2750: 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 ........... ....
2760: d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 .... ...........
2770: 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 . fossil .......
2780: bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 ... .......... .
2790: 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 ........... ....
27a0: d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 20 50 61 ... .. var Pa
27b0: 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 thToBatFossil =
27c0: 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 TempDir + "fossi
27d0: 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 lTrue.bat"..
27e0: 76 61 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 var TextDoc = v8
27f0: 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e New("TextDocumen
2800: 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f t");.. TextDo
2810: 63 2e 41 64 64 4c 69 6e 65 28 22 d0 92 d1 80 d0 c.AddLine(".....
2820: b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d0 b9 20 d1 84 ............. ..
2830: d0 b0 d0 b9 d0 bb 20 d0 b4 d0 bb d1 8f 20 66 6f ...... ...... fo
2840: 73 73 69 6c 22 29 3b 0d 0a 20 20 20 20 54 65 78 ssil");.. Tex
2850: 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 tDoc.Write(PathT
2860: 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 22 oFossilOutput, "
2870: 55 54 46 2d 38 22 29 0d 0a 20 20 20 20 76 61 72 UTF-8").. var
2880: 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 TextDoc = v8New
2890: 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 ("TextDocument")
28a0: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ;.. TextDoc.A
28b0: 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 22 27 ddLine('cd /d "'
28c0: 20 2b 70 61 74 68 54 6f 43 61 74 61 6c 6f 67 2b +pathToCatalog+
28d0: 27 22 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 '"');.. TextD
28e0: 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 oc.AddLine(PathT
28f0: 6f 46 6f 73 73 69 6c 20 2b 27 20 73 74 61 74 75 oFossil +' statu
2900: 73 20 3e 3e 20 22 27 2b 50 61 74 68 54 6f 46 6f s >> "'+PathToFo
2910: 73 73 69 6c 4f 75 74 70 75 74 2b 27 22 27 29 3b ssilOutput+'"');
2920: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 .. TextDoc.Ad
2930: 64 4c 69 6e 65 28 27 65 63 68 6f 20 4e 4f 54 56 dLine('echo NOTV
2940: 45 52 53 49 4f 4e 45 44 3e 3e 20 22 27 2b 50 61 ERSIONED>> "'+Pa
2950: 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 thToFossilOutput
2960: 2b 27 22 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 +'"');.. Text
2970: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 Doc.AddLine(Path
2980: 54 6f 46 6f 73 73 69 6c 2b 27 20 65 78 74 72 61 ToFossil+' extra
2990: 73 20 3e 3e 20 22 27 2b 50 61 74 68 54 6f 46 6f s >> "'+PathToFo
29a0: 73 73 69 6c 4f 75 74 70 75 74 2b 27 22 27 29 3b ssilOutput+'"');
29b0: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 .. TextDoc.Ad
29c0: 64 4c 69 6e 65 28 27 65 63 68 6f 20 45 4e 44 4e dLine('echo ENDN
29d0: 4f 54 56 45 52 53 49 4f 4e 45 44 3e 3e 20 22 27 OTVERSIONED>> "'
29e0: 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 +PathToFossilOut
29f0: 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 20 20 54 put+'"');.. T
2a00: 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 extDoc.Write(Pat
2a10: 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 22 63 hToBatFossil, "c
2a20: 70 38 36 36 22 29 3b 0d 0a 20 20 20 20 45 72 72 p866");.. Err
2a30: 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e Code = WshShell.
2a40: 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 Run('"'+PathToBa
2a50: 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 2c 20 tFossil+'"', 0,
2a60: 31 29 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 1).. TextDoc.
2a70: 52 65 61 64 28 50 61 74 68 54 6f 46 6f 73 73 69 Read(PathToFossi
2a80: 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 2d 38 22 lOutput, "UTF-8"
2a90: 29 3b 0d 0a 20 20 20 20 69 66 20 28 54 65 78 74 );.. if (Text
2aa0: 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 20 Doc.LineCount()
2ab0: 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 20 20 20 20 == 0) {..
2ac0: 20 4d 65 73 73 61 67 65 20 28 22 d0 ba d0 be d0 Message (".....
2ad0: bc d0 bc d0 b0 d0 bd d0 b4 d0 b0 20 d0 be d1 82 ........... ....
2ae0: d1 80 d0 b0 d0 b1 d0 be d1 82 d0 b0 d0 bb d0 b0 ................
2af0: 2c 20 d0 bd d0 be 20 d0 b2 d1 8b d0 b2 d0 be d0 , .... .........
2b00: b4 20 d0 bd d0 b5 20 d0 b7 d0 b0 d0 bf d0 b8 d1 . .... .........
2b10: 81 d0 b0 d0 bb d1 81 d1 8f 2c 20 d0 bd d0 b0 d0 ........., .....
2b20: b4 d0 be 20 d0 be d1 82 d0 bb d0 b0 d0 b4 d0 b8 ... ............
2b30: d1 82 d1 8c 21 22 29 0d 0a 20 20 20 20 20 20 20 ....!")..
2b40: 20 72 65 74 75 72 6e 20 66 61 6c 73 65 20 2f 2f return false //
2b50: d1 87 d1 82 d0 be 20 d1 82 d0 be 20 d0 bf d0 be ...... .... ....
2b60: d1 88 d0 bb d0 be 20 d0 bd d0 b5 20 d1 82 d0 b0 ...... .... ....
2b70: d0 ba 2e 20 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 ... .. }..
2b80: 20 76 61 72 20 72 65 20 3d 20 6e 65 77 20 52 65 var re = new Re
2b90: 67 45 78 70 28 2f 28 41 44 44 45 44 5f 42 59 5f gExp(/(ADDED_BY_
2ba0: 4d 45 52 47 45 7c 55 50 44 41 54 45 44 5f 42 59 MERGE|UPDATED_BY
2bb0: 5f 4d 45 52 47 45 7c 44 45 4c 45 54 45 44 5f 42 _MERGE|DELETED_B
2bc0: 59 5f 4d 45 52 47 45 7c 41 44 44 45 44 7c 45 44 Y_MERGE|ADDED|ED
2bd0: 49 54 45 44 7c 41 44 44 45 44 7c 4d 49 53 53 49 ITED|ADDED|MISSI
2be0: 4e 47 7c 74 61 67 73 3a 29 5c 73 2a 28 2e 2a 29 NG|tags:)\s*(.*)
2bf0: 5c 6e 2f 67 29 0d 0a 20 20 20 20 76 61 72 20 72 \n/g).. var r
2c00: 20 3d 20 54 65 78 74 44 6f 63 2e d0 9f d0 be d0 = TextDoc......
2c10: bb d1 83 d1 87 d0 b8 d1 82 d1 8c d0 a2 d0 b5 d0 ................
2c20: ba d1 81 d1 82 28 29 3b 0d 0a 20 20 20 20 76 61 .....();.. va
2c30: 72 20 6d 61 74 63 68 65 73 3b 0d 0a 20 20 20 20 r matches;..
2c40: 76 61 72 20 69 6e 64 65 78 3d 30 3b 0d 0a 20 20 var index=0;..
2c50: 20 20 77 68 69 6c 65 20 28 28 6d 61 74 63 68 65 while ((matche
2c60: 73 20 3d 20 72 65 2e 65 78 65 63 28 72 29 29 20 s = re.exec(r))
2c70: 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 7b 0d != null).. {.
2c80: 0a 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d . filenam
2c90: 65 20 3d 20 6d 61 74 63 68 65 73 5b 32 5d 3b 0d e = matches[2];.
2ca0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 74 . if (mat
2cb0: 63 68 65 73 5b 31 5d 2e 69 6e 64 65 78 4f 66 28 ches[1].indexOf(
2cc0: 27 74 61 67 73 27 29 21 3d 2d 31 29 7b 0d 0a 20 'tags')!=-1){..
2cd0: 20 20 20 20 20 20 20 20 20 20 20 d0 a1 d0 be d0 .....
2ce0: be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d0 ................
2cf0: b8 d0 b5 d0 a1 d1 82 d0 b0 d1 82 d1 83 d1 81 d0 ................
2d00: be d0 b2 5b 70 61 74 68 54 6f 43 61 74 61 6c 6f ...[pathToCatalo
2d10: 67 5d 3d 66 69 6c 65 6e 61 6d 65 3b 0d 0a 20 20 g]=filename;..
2d20: 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e contin
2d30: 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a ue;.. }..
2d40: 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 74 63 if (matc
2d50: 68 65 73 5b 31 5d 20 3d 3d 20 27 4d 49 53 53 49 hes[1] == 'MISSI
2d60: 4e 47 27 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 NG'){..
2d70: 20 20 20 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 .............
2d80: 82 d1 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a1 d1 82 d0 ................
2d90: b0 d1 82 d1 83 d1 81 d0 be d0 b2 5b 46 53 4f 2e ...........[FSO.
2da0: 42 75 69 6c 64 50 61 74 68 28 70 61 74 68 54 6f BuildPath(pathTo
2db0: 43 61 74 61 6c 6f 67 2c 20 66 69 6c 65 6e 61 6d Catalog, filenam
2dc0: 65 2e 72 65 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c e.replace(/\//g,
2dd0: 20 27 5c 5c 27 29 29 5d 3d 20 22 44 45 4c 45 54 '\\'))]= "DELET
2de0: 45 44 22 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ED"..
2df0: 20 63 6f 6e 74 69 6e 75 65 3b 0d 0a 20 20 20 20 continue;..
2e00: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 d0 }.. .
2e10: a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 ................
2e20: 82 d0 b2 d0 b8 d0 b5 d0 a1 d1 82 d0 b0 d1 82 d1 ................
2e30: 83 d1 81 d0 be d0 b2 5b 46 53 4f 2e 42 75 69 6c .......[FSO.Buil
2e40: 64 50 61 74 68 28 70 61 74 68 54 6f 43 61 74 61 dPath(pathToCata
2e50: 6c 6f 67 2c 20 66 69 6c 65 6e 61 6d 65 2e 72 65 log, filename.re
2e60: 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 27 5c 5c place(/\//g, '\\
2e70: 27 29 29 5d 3d 20 6d 61 74 63 68 65 73 5b 31 5d '))]= matches[1]
2e80: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 .. }.. var
2e90: 20 72 65 20 3d 20 6e 65 77 20 52 65 67 45 78 70 re = new RegExp
2ea0: 28 2f 4e 4f 54 56 45 52 53 49 4f 4e 45 44 5c 73 (/NOTVERSIONED\s
2eb0: 2a 5c 6e 28 28 2e 7c 5c 73 29 2a 3f 29 45 4e 44 *\n((.|\s)*?)END
2ec0: 4e 4f 54 56 45 52 53 49 4f 4e 45 44 2f 67 29 3b NOTVERSIONED/g);
2ed0: 0d 0a 20 20 20 20 76 61 72 20 72 65 5f 6e 6f 74 .. var re_not
2ee0: 76 65 72 73 69 6f 6e 65 74 20 3d 20 6e 65 77 20 versionet = new
2ef0: 52 65 67 45 78 70 28 2f 5e 28 2e 2a 29 5c 6e 2f RegExp(/^(.*)\n/
2f00: 67 6d 29 3b 0d 0a 20 20 20 20 76 61 72 20 6d 61 gm);.. var ma
2f10: 74 63 68 65 73 3b 0d 0a 20 20 20 20 76 61 72 20 tches;.. var
2f20: 69 6e 64 65 78 3d 30 3b 0d 0a 20 20 20 20 77 68 index=0;.. wh
2f30: 69 6c 65 20 28 28 6d 61 74 63 68 65 73 20 3d 20 ile ((matches =
2f40: 72 65 2e 65 78 65 63 28 72 29 29 20 21 3d 20 6e re.exec(r)) != n
2f50: 75 6c 6c 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 ull).. {..
2f60: 20 20 20 20 20 76 61 72 20 6d 61 74 63 68 65 73 var matches
2f70: 5f 63 6f 6d 6d 65 6e 74 3b 0d 0a 20 20 20 20 20 _comment;..
2f80: 20 20 20 76 61 72 20 74 65 78 74 20 3d 20 6d 61 var text = ma
2f90: 74 63 68 65 73 5b 31 5d 0d 0a 20 20 20 20 20 20 tches[1]..
2fa0: 20 20 77 68 69 6c 65 20 28 28 6d 61 74 63 68 65 while ((matche
2fb0: 73 5f 63 6f 6d 6d 65 6e 74 20 3d 20 72 65 5f 6e s_comment = re_n
2fc0: 6f 74 76 65 72 73 69 6f 6e 65 74 2e 65 78 65 63 otversionet.exec
2fd0: 28 74 65 78 74 29 29 20 21 3d 20 6e 75 6c 6c 29 (text)) != null)
2fe0: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 .. {..
2ff0: 20 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d filenam
3000: 65 20 3d 20 6d 61 74 63 68 65 73 5f 63 6f 6d 6d e = matches_comm
3010: 65 6e 74 5b 31 5d 3b 0d 0a 20 20 20 20 20 20 20 ent[1];..
3020: 20 20 20 20 20 d0 a1 d0 be d0 be d1 82 d0 b2 d0 ...........
3030: b5 d1 82 d1 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a1 d1 ................
3040: 82 d0 b0 d1 82 d1 83 d1 81 d0 be d0 b2 5b 46 53 .............[FS
3050: 4f 2e 42 75 69 6c 64 50 61 74 68 28 70 61 74 68 O.BuildPath(path
3060: 54 6f 43 61 74 61 6c 6f 67 2c 20 66 69 6c 65 6e ToCatalog, filen
3070: 61 6d 65 2e 72 65 70 6c 61 63 65 28 2f 5c 2f 2f ame.replace(/\//
3080: 67 2c 20 27 5c 5c 27 29 29 5d 3d 20 22 4e 4f 54 g, '\\'))]= "NOT
3090: 56 45 52 53 49 4f 4e 45 44 22 0d 0a 20 20 20 20 VERSIONED"..
30a0: 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 }.. }..
30b0: 20 20 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 74 .. return t
30c0: 72 75 65 0d 0a 7d 20 2f 2f 66 6f 73 73 69 6c 5f rue..} //fossil_
30d0: 67 65 74 53 74 61 74 75 73 46 6f 72 43 61 74 61 getStatusForCata
30e0: 6c 6f 67 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 log....function
30f0: 66 6f 73 73 69 6c 5f 67 65 74 46 69 6c 65 41 74 fossil_getFileAt
3100: 52 65 76 69 73 69 6f 6e 28 70 61 74 68 54 6f 46 Revision(pathToF
3110: 69 6c 65 2c 20 72 65 76 29 7b 0d 0a 20 20 20 20 ile, rev){..
3120: 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c var PathToFossil
3130: 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 69 72 Output = TempDir
3140: 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 75 73 + "fossilstatus
3150: 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 .txt" // .......
3160: b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb ... 1.. ........
3170: 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 .. utf-8, .....
3180: b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 ......... ......
3190: d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 .. ............
31a0: 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 fossil .........
31b0: b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 . .......... ...
31c0: b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be ......... ......
31d0: 2e 20 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 . .. var Path
31e0: 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 ToBatFossil = Te
31f0: 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 mpDir + "fossilT
3200: 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 61 rue.bat".. va
3210: 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 r TextDoc = v8Ne
3220: 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 w("TextDocument"
3230: 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e );.. TextDoc.
3240: d0 97 d0 b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c ................
3250: 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 (PathToFossilOut
3260: 70 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a put, "UTF-8");..
3270: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 66 20 .. var f
3280: 3d 20 76 38 4e 65 77 28 22 46 69 6c 65 22 2c 20 = v8New("File",
3290: 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 pathToFile);..
32a0: 20 20 69 66 20 28 21 66 2e 45 78 69 73 74 28 29 if (!f.Exist()
32b0: 29 20 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 ) .. {..
32c0: 20 20 20 4d 65 73 73 61 67 65 28 22 20 d1 84 d0 Message(" ...
32d0: b0 d0 b9 d0 bb d0 b0 20 d1 84 d0 b8 d0 b7 d0 b8 ....... ........
32e0: d1 87 d0 b5 d1 81 d0 ba d0 b8 20 d0 bd d0 b5 20 .......... ....
32f0: d1 81 d1 83 d1 89 d0 b5 d1 81 d1 82 d0 b2 d1 83 ................
3300: d0 b5 d1 82 2e 2e 2e 22 29 20 0d 0a 20 20 20 20 .......") ..
3310: 20 20 20 20 72 65 74 75 72 6e 20 6e 65 6c 6c 0d return nell.
3320: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 20 . }.. var
3330: 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 66 6f rootCatalog = fo
3340: 73 73 69 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 ssil_getRootCata
3350: 6c 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 29 0d log(pathToFile).
3360: 0a 20 20 20 20 2f 2f 4d 65 73 73 61 67 65 28 22 . //Message("
3370: 22 2b 70 61 74 68 54 6f 46 69 6c 65 29 0d 0a 20 "+pathToFile)..
3380: 20 20 20 0d 0a 20 20 20 20 69 66 20 28 72 65 76 .. if (rev
3390: 2e 6c 65 6e 67 74 68 20 21 3d 30 29 20 7b 0d 0a .length !=0) {..
33a0: 20 20 20 20 20 20 20 20 2f 2f 64 65 62 75 67 67 //debugg
33b0: 65 72 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 er.. Text
33c0: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 Doc.AddLine('cd
33d0: 2f 64 20 22 27 20 2b 72 6f 6f 74 43 61 74 61 6c /d "' +rootCatal
33e0: 6f 67 20 2b 27 22 27 29 0d 0a 20 20 20 20 20 20 og +'"')..
33f0: 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e TextDoc.AddLin
3400: 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 2b 27 e(PathToFossil+'
3410: 20 61 72 74 69 66 61 63 74 20 27 2b 72 65 76 20 artifact '+rev
3420: 2b 27 20 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 +' "'+PathToFoss
3430: 69 6c 4f 75 74 70 75 74 20 2b 27 22 20 27 29 0d ilOutput +'" ').
3440: 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 . TextDoc
3450: 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 61 74 .Write(PathToBat
3460: 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 27 29 Fossil, 'cp866')
3470: 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 ;.. TextD
3480: 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 oc.Clear();..
3490: 20 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 57 ErrCode = W
34a0: 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b shShell.Run('"'+
34b0: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b PathToBatFossil+
34c0: 27 22 27 2c 20 30 2c 20 31 29 3b 0d 0a 20 20 20 '"', 0, 1);..
34d0: 20 20 20 20 20 54 65 78 74 44 6f 63 2e 52 65 61 TextDoc.Rea
34e0: 64 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 d(PathToFossilOu
34f0: 74 70 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d tput, "UTF-8");.
3500: 0a 20 20 20 20 20 20 20 20 69 66 20 28 54 65 78 . if (Tex
3510: 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 tDoc.LineCount()
3520: 20 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 20 20 20 == 0) {..
3530: 20 20 20 20 20 20 4d 65 73 73 61 67 65 20 28 22 Message ("
3540: d0 ba d0 be d0 bc d0 bc d0 b0 d0 bd d0 b4 d0 b0 ................
3550: 20 d0 be d1 82 d1 80 d0 b0 d0 b1 d0 be d1 82 d0 ...............
3560: b0 d0 bb d0 b0 2c 20 d0 bd d0 be 20 d0 b2 d1 8b ....., .... ....
3570: d0 b2 d0 be d0 b4 20 d0 bd d0 b5 20 d0 b7 d0 b0 ...... .... ....
3580: d0 bf d0 b8 d1 81 d0 b0 d0 bb d1 81 d1 8f 2c 20 ..............,
3590: d0 bd d0 b0 d0 b4 d0 be 20 d0 be d1 82 d0 bb d0 ........ .......
35a0: b0 d0 b4 d0 b8 d1 82 d1 8c 21 22 29 0d 0a 20 20 .........!")..
35b0: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
35c0: 20 66 61 6c 73 65 20 2f 2f d1 87 d1 82 d0 be 20 false //......
35d0: d1 82 d0 be 20 d0 bf d0 be d1 88 d0 bb d0 be 20 .... ..........
35e0: d0 bd d0 b5 20 d1 82 d0 b0 d0 ba 2e 20 0d 0a 20 .... ....... ..
35f0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
3600: 20 20 72 65 53 74 72 20 3d 20 22 5e 46 5c 5c 73 reStr = "^F\\s
3610: 22 2b 70 61 74 68 54 6f 46 69 6c 65 2e 72 65 70 "+pathToFile.rep
3620: 6c 61 63 65 28 72 6f 6f 74 43 61 74 61 6c 6f 67 lace(rootCatalog
3630: 2b 27 5c 5c 27 2c 20 27 27 29 2b 22 5c 5c 73 28 +'\\', '')+"\\s(
3640: 5b 30 2d 39 2c 61 2d 7a 5d 7b 34 30 7d 29 5c 5c [0-9,a-z]{40})\\
3650: 73 2a 24 22 0d 0a 20 20 20 20 20 20 20 20 76 61 s*$".. va
3660: 72 20 72 65 20 3d 20 6e 65 77 20 52 65 67 45 78 r re = new RegEx
3670: 70 28 72 65 53 74 72 2c 27 67 6d 27 29 0d 0a 20 p(reStr,'gm')..
3680: 20 20 20 20 20 20 20 76 61 72 20 72 20 3d 20 54 var r = T
3690: 65 78 74 44 6f 63 2e d0 9f d0 be d0 bb d1 83 d1 extDoc..........
36a0: 87 d0 b8 d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 ................
36b0: 82 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a .();.. ..
36c0: 20 20 20 20 20 20 20 20 76 61 72 20 6d 61 74 63 var matc
36d0: 68 65 73 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 hes;.. va
36e0: 72 20 61 72 74 69 66 61 63 74 49 64 20 3d 20 22 r artifactId = "
36f0: 22 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 ";.. var
3700: 69 6e 64 65 78 3d 30 3b 0d 0a 20 20 20 20 20 20 index=0;..
3710: 20 20 77 68 69 6c 65 20 28 28 6d 61 74 63 68 65 while ((matche
3720: 73 20 3d 20 72 65 2e 65 78 65 63 28 72 29 29 20 s = re.exec(r))
3730: 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 != null)..
3740: 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 {..
3750: 20 76 61 72 20 61 72 74 69 66 61 63 74 49 64 20 var artifactId
3760: 3d 20 6d 61 74 63 68 65 73 5b 31 5d 3b 0d 0a 20 = matches[1];..
3770: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
3780: 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 ;.. }..
3790: 20 20 20 20 20 20 76 61 72 20 66 69 6c 65 72 65 var filere
37a0: 76 20 3d 20 46 53 4f 2e 42 75 69 6c 64 50 61 74 v = FSO.BuildPat
37b0: 68 28 54 65 6d 70 44 69 72 2c 20 72 65 76 2b 66 h(TempDir, rev+f
37c0: 2e d0 98 d0 bc d1 8f 29 3b 0d 0a 20 20 20 20 20 .......);..
37d0: 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 TextDoc.Clear
37e0: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 ();.. if
37f0: 28 61 72 74 69 66 61 63 74 49 64 2e 6c 65 6e 67 (artifactId.leng
3800: 74 68 3d 3d 30 29 7b 0d 0a 20 20 20 20 20 20 20 th==0){..
3810: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 ..
3820: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
3830: 6e 65 28 27 63 64 20 2f 64 20 22 27 20 2b 72 6f ne('cd /d "' +ro
3840: 6f 74 43 61 74 61 6c 6f 67 20 2b 27 22 27 29 3b otCatalog +'"');
3850: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 65 .. Te
3860: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 xtDoc.AddLine(Pa
3870: 74 68 54 6f 46 6f 73 73 69 6c 2b 27 20 72 65 76 thToFossil+' rev
3880: 65 72 74 20 2d 72 20 27 2b 72 65 76 20 2b 27 20 ert -r '+rev +'
3890: 22 27 2b 70 61 74 68 54 6f 46 69 6c 65 20 2b 27 "'+pathToFile +'
38a0: 22 20 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 " ')..
38b0: 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e TextDoc.AddLin
38c0: 65 28 27 63 6f 70 79 20 2f 59 20 22 27 2b 70 61 e('copy /Y "'+pa
38d0: 74 68 54 6f 46 69 6c 65 20 2b 27 22 20 22 27 2b thToFile +'" "'+
38e0: 66 69 6c 65 72 65 76 2b 27 22 27 29 0d 0a 20 20 filerev+'"')..
38f0: 20 20 20 20 20 20 20 20 20 20 54 65 78 74 44 6f TextDo
3900: 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 6f c.AddLine(PathTo
3910: 46 6f 73 73 69 6c 2b 27 20 75 6e 64 6f 20 22 27 Fossil+' undo "'
3920: 2b 70 61 74 68 54 6f 46 69 6c 65 20 2b 27 22 20 +pathToFile +'"
3930: 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ')..
3940: 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 TextDoc.Write(Pa
3950: 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 thToBatFossil, '
3960: 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 20 20 cp866');..
3970: 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 43 6c TextDoc.Cl
3980: 65 61 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 ear();..
3990: 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 ErrCode = Ws
39a0: 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 hShell.Run('"'+P
39b0: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 athToBatFossil+'
39c0: 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 20 "', 0, 1)..
39d0: 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 } else {..
39e0: 20 20 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 TextDoc
39f0: 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 .AddLine('cd /d
3a00: 22 27 20 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 20 "' +rootCatalog
3a10: 2b 27 22 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 +'"');..
3a20: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
3a30: 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c ine(PathToFossil
3a40: 2b 27 20 61 72 74 69 66 61 63 74 20 27 2b 61 72 +' artifact '+ar
3a50: 74 69 66 61 63 74 49 64 20 2b 27 20 22 27 2b 66 tifactId +' "'+f
3a60: 69 6c 65 72 65 76 20 2b 27 22 20 27 29 0d 0a 20 ilerev +'" ')..
3a70: 20 20 20 20 20 20 20 20 20 20 20 54 65 78 74 44 TextD
3a80: 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 oc.Write(PathToB
3a90: 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 atFossil, 'cp866
3aa0: 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ');..
3ab0: 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 TextDoc.Clear()
3ac0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 ;.. E
3ad0: 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c rrCode = WshShel
3ae0: 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f l.Run('"'+PathTo
3af0: 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 BatFossil+'"', 0
3b00: 2c 20 31 29 0d 0a 20 20 20 20 20 20 20 20 7d 0d , 1).. }.
3b10: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
3b20: 66 69 6c 65 72 65 76 3b 0d 0a 20 20 20 20 7d 0d filerev;.. }.
3b30: 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c . return null
3b40: 0d 0a 7d 20 2f 2f 66 6f 73 73 69 6c 5f 67 65 74 ..} //fossil_get
3b50: 46 69 6c 65 41 74 52 65 76 69 73 69 6f 6e 0d 0a FileAtRevision..
3b60: 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 ..function fossi
3b70: 6c 5f 67 65 74 46 69 6c 65 50 61 74 68 54 6f 44 l_getFilePathToD
3b80: 69 66 66 28 70 61 72 61 6d 31 2c 20 70 61 72 61 iff(param1, para
3b90: 6d 32 29 20 7b 20 2f 2f d1 82 d0 b5 d0 ba d1 83 m2) { //........
3ba0: d1 89 d0 b0 d1 8f 20 d0 b2 d0 b5 d1 80 d1 81 d0 ...... .........
3bb0: b8 d1 8f 20 d1 84 d0 b0 d0 b9 d0 bb d0 b0 20 d1 ... .......... .
3bc0: 81 20 d0 bf d1 80 d0 b5 d0 b4 d1 8b d0 b4 d1 83 . ..............
3bd0: d1 89 d0 b5 d0 b9 2e 2e 2e 0d 0a 20 20 20 20 0d ........... .
3be0: 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 . var PathToF
3bf0: 6f 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 ossilOutput = Te
3c00: 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 mpDir + "fossils
3c10: 74 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f tatus.txt" // ..
3c20: d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 ........ 1.. ...
3c30: b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 ..... .. utf-8,
3c40: d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 .............. .
3c50: 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 ....... ........
3c60: d1 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be .... fossil ....
3c70: d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 ...... .........
3c80: be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 . ............ .
3c90: b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 ...... .. var
3ca0: 20 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c PathToBatFossil
3cb0: 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f = TempDir + "fo
3cc0: 73 73 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 ssilTrue.bat"..
3cd0: 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d var TextDoc =
3ce0: 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 v8New("TextDocu
3cf0: 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 ment");.. Tex
3d00: 74 44 6f 63 2e d0 97 d0 b0 d0 bf d0 b8 d1 81 d0 tDoc............
3d10: b0 d1 82 d1 8c 28 50 61 74 68 54 6f 46 6f 73 73 .....(PathToFoss
3d20: 69 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 2d 38 ilOutput, "UTF-8
3d30: 22 29 3b 0d 0a 20 20 20 20 2f 2f 20 d0 b2 d0 be ");.. // ....
3d40: d0 b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d1 82 d1 8c ................
3d50: 20 d0 b1 d1 83 d0 b4 d0 b5 d0 bc 20 d1 81 d1 82 .......... ....
3d60: d1 80 d1 83 d0 ba d1 82 d1 80 d1 83 2c 20 70 61 ............, pa
3d70: 74 68 31 20 d0 b8 20 70 61 74 68 32 20 0d 0a 20 th1 .. path2 ..
3d80: 20 20 20 76 61 72 20 70 61 74 68 54 6f 46 69 6c var pathToFil
3d90: 65 20 3d 20 70 61 72 61 6d 31 3b 0d 0a 20 20 20 e = param1;..
3da0: 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 var rootCatalog
3db0: 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f = fossil_getRoo
3dc0: 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 tCatalog(pathToF
3dd0: 69 6c 65 29 3b 0d 0a 20 20 20 20 70 61 72 61 6d ile);.. param
3de0: 32 2e 69 6e 73 65 72 74 28 22 70 61 74 68 31 22 2.insert("path1"
3df0: 2c 20 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a , pathToFile);..
3e00: 20 20 20 20 70 61 72 61 6d 32 2e 69 6e 73 65 72 param2.inser
3e10: 74 28 22 70 61 74 68 32 22 2c 20 22 22 29 3b 0d t("path2", "");.
3e20: 0a 20 20 20 20 2f 2a 20 0d 0a 0d 0a d0 9f d0 be . /* ........
3e30: d0 ba d0 b0 20 d0 bd d0 b5 20 d0 b7 d0 b0 d0 b1 .... .... ......
3e40: d1 8b d0 bb 2c 20 d0 ba d0 b0 d0 ba 20 d0 bd d0 ...., ...... ...
3e50: b0 d0 bc 20 d0 b2 d1 8b d1 82 d0 b0 d1 89 d0 b8 ... ............
3e60: d1 82 d1 8c 20 d0 b2 d0 b0 d1 80 d0 b8 d0 b0 d0 .... ...........
3e70: bd d1 82 20 d1 81 d1 82 d0 b0 d1 80 d1 8b d0 b9 ... ............
3e80: 20 d1 84 d0 b0 d0 b9 d0 bb d0 b0 2e 2e 2e 0d 0a ...............
3e90: d0 90 d0 bb d0 b3 d0 be d1 80 d0 b8 d1 82 d0 bc ................
3ea0: d0 a2 d0 b0 d0 ba d0 be d0 b2 3a 0d 0a 66 6f 73 ..........:..fos
3eb0: 73 69 6c 20 66 69 6e 66 6f 20 2d 62 20 74 65 73 sil finfo -b tes
3ec0: 74 2e 74 78 74 0d 0a 5b 43 4f 44 45 5d 0d 0a 37 t.txt..[CODE]..7
3ed0: 37 30 34 64 33 33 32 37 38 20 32 30 31 32 2d 30 704d33278 2012-0
3ee0: 32 2d 30 37 20 53 6f 73 6e 61 20 27 62 6c 61 6c 2-07 Sosna 'blal
3ef0: 27 0d 0a 5b 2f 43 4f 44 45 5d 0d 0a d0 b4 d0 bb '..[/CODE]......
3f00: d1 8f 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0 b9 20 .. ............
3f10: d1 80 d0 b5 d0 b2 d0 b8 d0 b7 d0 b8 d0 b8 20 0d .............. .
3f20: 0a 66 6f 73 73 69 6c 20 66 69 6e 66 6f 20 2d 70 .fossil finfo -p
3f30: 20 2d 72 20 37 37 30 34 64 33 33 32 37 38 20 74 -r 7704d33278 t
3f40: 65 73 74 2e 74 78 74 20 20 3e 20 62 6c 61 62 6c est.txt > blabl
3f50: 61 2e 74 78 74 0d 0a d0 b4 d0 bb d1 8f 20 d0 b2 a.txt........ ..
3f60: d1 82 d0 be d1 80 d0 be d0 b9 20 d1 80 d0 b5 d0 .......... .....
3f70: b2 d0 b8 d0 b7 d0 b8 0d 0a 66 6f 73 73 69 6c 20 .........fossil
3f80: 72 65 76 65 72 74 20 2d 72 20 37 37 30 34 64 33 revert -r 7704d3
3f90: 33 32 37 38 20 74 65 73 74 2e 74 78 74 0d 0a 63 3278 test.txt..c
3fa0: 6f 70 79 20 74 65 73 74 2e 74 78 74 20 3e 20 62 opy test.txt > b
3fb0: 6c 61 62 6c 61 2e 74 78 74 0d 0a d0 b4 d0 b0 2c labla.txt......,
3fc0: 20 d0 b4 d0 b0 20 d0 b2 d1 81 d0 b5 20 d1 87 d0 .... ...... ...
3fd0: b5 d1 80 d0 b5 d0 b7 20 d0 be d0 b4 d0 bd d0 be ....... ........
3fe0: 20 d0 bc d0 b5 d1 81 d1 82 d0 be 2e 2e 2e 2e 0d ...............
3ff0: 0a 20 2a 2f 0d 0a 20 20 20 20 76 61 72 20 72 20 . */.. var r
4000: 3d 20 22 22 3b 20 2f 2f 20 d0 a2 d0 b5 d0 ba d1 = ""; // .......
4010: 83 d1 89 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
4020: d0 ba d0 b0 20 d0 bf d1 80 d0 be d1 87 d0 b8 d1 .... ...........
4030: 82 d0 b0 d0 bd d0 bd d0 b0 d1 8f 0d 0a 20 20 20 .............
4040: 20 76 61 72 20 76 65 72 31 20 3d 20 27 27 20 2f var ver1 = '' /
4050: 2f 20 d0 9d d0 be d0 bc d0 b5 d1 80 20 d0 b2 d0 / .......... ...
4060: b5 d1 80 d1 81 d0 b8 d0 b8 20 d0 bf d0 b5 d1 80 ......... ......
4070: d0 b2 d0 be d0 b3 d0 be 20 d1 84 d0 b0 d0 b9 d0 ........ .......
4080: bb d0 b0 0d 0a 20 20 20 20 76 61 72 20 76 65 72 ..... var ver
4090: 31 73 68 61 31 20 3d 20 27 27 20 2f 2f 73 68 61 1sha1 = '' //sha
40a0: 31 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0 b3 d0 be 1 ..............
40b0: 20 d1 84 d0 b0 d0 b9 d0 bb d0 b0 20 d0 b2 20 d0 .......... .. .
40c0: b1 d0 b0 d0 b7 d0 b5 20 66 6f 73 73 69 6c 0d 0a ....... fossil..
40d0: 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 97 d0 .. // ...
40e0: b0 d0 bf d1 83 d1 81 d0 b8 d0 bc 20 73 68 65 6c ........... shel
40f0: 6c 20 d0 b8 20 d0 bd d0 b0 d0 b9 d0 b4 d0 b5 d0 l .. ...........
4100: bc 20 d0 b2 d0 b5 d1 80 d1 81 d0 b8 d0 b8 20 d1 . ............ .
4110: 84 d0 b0 d0 b9 d0 bb d0 be d0 b2 2e 20 0d 0a 20 ............ ..
4120: 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 TextDoc.Clear
4130: 28 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 ();.. TextDoc
4140: 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 .AddLine('cd /d
4150: 22 27 20 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 20 "' +rootCatalog
4160: 2b 27 22 27 29 0d 0a 20 20 20 20 54 65 78 74 44 +'"').. TextD
4170: 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 oc.AddLine(PathT
4180: 6f 46 6f 73 73 69 6c 2b 27 20 66 69 6e 66 6f 20 oFossil+' finfo
4190: 2d 62 20 2d 2d 6c 69 6d 69 74 20 31 20 22 27 2b -b --limit 1 "'+
41a0: 70 61 74 68 54 6f 46 69 6c 65 2b 27 22 20 3e 20 pathToFile+'" >
41b0: 22 27 20 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c "' +PathToFossil
41c0: 4f 75 74 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 Output+'"');..
41d0: 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 TextDoc.Write(
41e0: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c PathToBatFossil,
41f0: 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 'cp866');..
4200: 0d 0a 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 .. ErrCode =
4210: 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 WshShell.Run('"'
4220: 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c +PathToBatFossil
4230: 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 +'"', 0, 1)..
4240: 20 54 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 TextDoc.Read(Pa
4250: 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 thToFossilOutput
4260: 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 , "UTF-8");..
4270: 20 69 66 20 28 54 65 78 74 44 6f 63 2e 4c 69 6e if (TextDoc.Lin
4280: 65 43 6f 75 6e 74 28 29 20 3d 3d 20 30 29 20 7b eCount() == 0) {
4290: 0d 0a 20 20 20 20 20 20 20 20 4d 65 73 73 61 67 .. Messag
42a0: 65 20 28 22 20 31 20 d0 ba d0 be d0 bc d0 bc d0 e (" 1 .........
42b0: b0 d0 bd d0 b4 d0 b0 20 d0 be d1 82 d1 80 d0 b0 ....... ........
42c0: d0 b1 d0 be d1 82 d0 b0 d0 bb d0 b0 2c 20 d0 bd ............, ..
42d0: d0 be 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 20 d0 bd .. .......... ..
42e0: d0 b5 20 d0 b7 d0 b0 d0 bf d0 b8 d1 81 d0 b0 d0 .. .............
42f0: bb d1 81 d1 8f 2c 20 d0 bd d0 b0 d0 b4 d0 be 20 ....., ........
4300: d0 be d1 82 d0 bb d0 b0 d0 b4 d0 b8 d1 82 d1 8c ................
4310: 21 22 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 !").. ret
4320: 75 72 6e 20 66 61 6c 73 65 20 2f 2f d1 87 d1 82 urn false //....
4330: d0 be 20 d1 82 d0 be 20 d0 bf d0 be d1 88 d0 bb .. .... ........
4340: d0 be 20 d0 bd d0 b5 20 d1 82 d0 b0 d0 ba 2e 20 .. .... .......
4350: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 69 66 20 .. }.. if
4360: 28 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 (TextDoc.LineCou
4370: 6e 74 28 29 20 3e 20 30 29 7b 0d 0a 20 20 20 20 nt() > 0){..
4380: 20 20 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 var r = Text
4390: 44 6f 63 2e 47 65 74 4c 69 6e 65 28 31 29 0d 0a Doc.GetLine(1)..
43a0: 20 20 20 20 20 20 20 20 69 66 20 28 72 2e 69 6e if (r.in
43b0: 64 65 78 4f 66 28 22 6e 6f 20 68 69 73 74 6f 72 dexOf("no histor
43c0: 79 20 66 6f 72 20 66 69 6c 65 22 29 20 3e 3d 30 y for file") >=0
43d0: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ) {..
43e0: 20 4d 65 73 73 61 67 65 28 22 d0 a4 d0 b0 d0 b9 Message("......
43f0: d0 bb 20 d0 bd d0 b5 20 d0 bd d0 b0 d1 85 d0 be .. .... ........
4400: d0 b4 d0 b8 d0 bb d1 81 d1 8f 20 d0 bf d0 be d0 .......... .....
4410: b4 20 d0 b2 d0 b5 d1 80 d1 81 d0 b8 d0 be d0 bd . ..............
4420: d0 bd d1 8b d0 bc 20 d0 ba d0 be d0 bd d1 82 d1 ...... .........
4430: 80 d0 be d0 bb d0 b5 d0 bc 2c 20 d0 bd d0 b5 20 ........., ....
4440: d1 81 d1 87 d0 b5 d0 bc 20 d1 81 d1 80 d0 b0 d0 ........ .......
4450: b2 d0 bd d0 b8 d0 b2 d0 b0 d1 82 d1 8c 2e 22 29 ..............")
4460: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 ;.. p
4470: 61 72 61 6d 32 2e 69 6e 73 65 72 74 28 22 70 61 aram2.insert("pa
4480: 74 68 31 22 2c 20 70 61 74 68 54 6f 46 69 6c 65 th1", pathToFile
4490: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
44a0: 70 61 72 61 6d 32 2e 69 6e 73 65 72 74 28 22 70 param2.insert("p
44b0: 61 74 68 32 22 2c 20 22 22 29 3b 0d 0a 20 20 20 ath2", "");..
44c0: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
44d0: 70 61 72 61 6d 32 3b 0d 0a 20 20 20 20 20 20 20 param2;..
44e0: 20 7d 0d 0a 20 20 20 20 20 20 20 20 76 65 72 31 }.. ver1
44f0: 20 3d 20 72 2e 73 70 6c 69 74 28 27 20 27 29 5b = r.split(' ')[
4500: 30 5d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 54 0].. }.. T
4510: 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d extDoc.Clear();.
4520: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 . TextDoc.Wri
4530: 74 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f te(PathToFossilO
4540: 75 74 70 75 74 2c 20 22 55 54 46 2d 38 22 29 3b utput, "UTF-8");
4550: 0d 0a 0d 0a 20 20 20 20 69 66 20 28 76 65 72 31 .... if (ver1
4560: 20 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 76 65 72 31 == null || ver1
4570: 20 3d 3d 20 22 22 29 20 7b 4d 65 73 73 61 67 65 == "") {Message
4580: 28 22 76 65 72 20 31 20 d0 bd d0 b5 20 d0 bd d0 ("ver 1 .... ...
4590: b0 d1 88 d0 bb d0 b8 20 d0 bd d0 b8 d1 87 d0 b5 ....... ........
45a0: d0 b3 d0 be 22 29 3b 20 72 65 74 75 72 6e 20 3b ...."); return ;
45b0: 7d 0d 0a 20 20 20 20 76 61 72 20 66 69 6c 65 32 }.. var file2
45c0: 54 6f 44 69 66 66 20 3d 20 66 6f 73 73 69 6c 5f ToDiff = fossil_
45d0: 67 65 74 46 69 6c 65 41 74 52 65 76 69 73 69 6f getFileAtRevisio
45e0: 6e 28 70 61 74 68 54 6f 46 69 6c 65 2c 20 76 65 n(pathToFile, ve
45f0: 72 31 29 3b 0d 0a 20 20 20 20 69 66 20 28 66 69 r1);.. if (fi
4600: 6c 65 32 54 6f 44 69 66 66 20 3d 3d 20 6e 75 6c le2ToDiff == nul
4610: 6c 20 7c 7c 20 66 69 6c 65 32 54 6f 44 69 66 66 l || file2ToDiff
4620: 20 3d 3d 20 22 22 29 20 7b 4d 65 73 73 61 67 65 == "") {Message
4630: 28 22 d0 9d d0 b5 20 d1 81 d0 bc d0 be d0 b3 d0 (".... .........
4640: bb d0 b8 20 d0 bf d0 be d0 bb d1 83 d1 87 d0 b8 ... ............
4650: d1 82 d1 8c 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 bd .... ........ ..
4660: d1 83 d0 b6 d0 bd d0 be d0 b9 20 d1 80 d0 b5 d0 .......... .....
4670: b2 d0 b8 d0 b7 d0 b8 d0 b8 22 20 2b 20 76 65 72 ........." + ver
4680: 31 29 3b 20 72 65 74 75 72 6e 20 3b 7d 0d 0a 20 1); return ;}..
4690: 20 20 20 70 61 72 61 6d 32 2e 69 6e 73 65 72 74 param2.insert
46a0: 28 22 70 61 74 68 32 22 2c 20 66 69 6c 65 32 54 ("path2", file2T
46b0: 6f 44 69 66 66 29 3b 0d 0a 20 20 20 20 0d 0a 20 oDiff);.. ..
46c0: 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 0d 0a return true..
46d0: 7d 20 2f 2f 67 65 74 46 69 6c 65 50 61 74 68 54 } //getFilePathT
46e0: 6f 44 69 66 66 0d 0a 0d 0a 66 75 6e 63 74 69 6f oDiff....functio
46f0: 6e 20 66 6f 73 73 69 6c 5f 61 64 64 28 70 61 74 n fossil_add(pat
4700: 68 54 6f 46 69 6c 65 2c 20 70 61 72 61 6d 32 29 hToFile, param2)
4710: 20 7b 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 {.. var root
4720: 43 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 69 6c Catalog = fossil
4730: 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 _getRootCatalog(
4740: 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 pathToFile);..
4750: 20 20 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28 var f = v8New(
4760: 22 46 69 6c 65 22 2c 20 70 61 74 68 54 6f 46 69 "File", pathToFi
4770: 6c 65 29 3b 0d 0a 20 20 20 20 69 66 20 28 66 2e le);.. if (f.
4780: 49 73 44 69 72 65 63 74 6f 72 79 28 29 29 20 7b IsDirectory()) {
4790: 0d 0a 20 20 20 20 20 20 20 20 70 61 74 68 54 6f .. pathTo
47a0: 46 69 6c 65 20 3d 20 27 2e 27 0d 0a 20 20 20 20 File = '.'..
47b0: 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 } else {..
47c0: 20 20 70 61 74 68 54 6f 46 69 6c 65 20 3d 20 27 pathToFile = '
47d0: 22 27 2b 70 61 74 68 54 6f 46 69 6c 65 2b 27 22 "'+pathToFile+'"
47e0: 27 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 '.. }.. va
47f0: 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 r PathToFossilOu
4800: 74 70 75 74 20 3d 20 54 65 6d 70 44 69 72 20 2b tput = TempDir +
4810: 20 22 66 6f 73 73 69 6c 73 74 61 74 75 73 2e 74 "fossilstatus.t
4820: 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 xt" // .........
4830: bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 . 1.. ........ .
4840: b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 . utf-8, .......
4850: be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 ....... ........
4860: 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f ............ fo
4870: 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 ssil ..........
4880: d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 .......... .....
4890: 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 ....... .......
48a0: 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 6f .. var PathTo
48b0: 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 6d 70 BatFossil = Temp
48c0: 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 72 75 Dir + "fossilTru
48d0: 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 61 72 20 e.bat".. var
48e0: 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 TextDoc = v8New(
48f0: 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b "TextDocument");
4900: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 .. TextDoc.Ad
4910: 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 22 27 2b dLine('cd /d "'+
4920: 72 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 rootCatalog+'"')
4930: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 .. TextDoc.Ad
4940: 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 dLine(PathToFoss
4950: 69 6c 20 2b 27 20 61 64 64 20 27 20 2b 70 61 74 il +' add ' +pat
4960: 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 54 hToFile);.. T
4970: 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 extDoc.Write(Pat
4980: 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 hToBatFossil, 'c
4990: 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 0d 0a 20 p866');.. ..
49a0: 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 TextDoc.Clear
49b0: 28 29 3b 0d 0a 20 20 20 20 45 72 72 43 6f 64 65 ();.. ErrCode
49c0: 20 3d 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 = WshShell.Run(
49d0: 27 22 27 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 '"'+PathToBatFos
49e0: 73 69 6c 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a sil+'"', 0, 1)..
49f0: 20 20 20 20 72 65 74 75 72 6e 20 45 72 72 43 6f return ErrCo
4a00: 64 65 0d 0a 7d 20 2f 2f 66 6f 73 73 69 6c 5f 61 de..} //fossil_a
4a10: 64 64 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 dd....function f
4a20: 6f 73 73 69 6c 5f 72 75 6e 28 70 61 74 68 54 6f ossil_run(pathTo
4a30: 46 69 6c 65 29 7b 0d 0a 20 20 20 20 76 61 72 20 File){.. var
4a40: 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 66 6f rootCatalog = fo
4a50: 73 73 69 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 ssil_getRootCata
4a60: 6c 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 29 3b log(pathToFile);
4a70: 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 6f .. var PathTo
4a80: 46 6f 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 FossilOutput = T
4a90: 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c empDir + "fossil
4aa0: 73 74 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 status.txt" // .
4ab0: 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 ......... 1.. ..
4ac0: d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c ...... .. utf-8,
4ad0: 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 ..............
4ae0: d1 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 ........ .......
4af0: 82 d1 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 ..... fossil ...
4b00: be d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 ....... ........
4b10: d0 be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 .. ............
4b20: d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 61 ....... .. va
4b30: 72 20 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 r PathToBatFossi
4b40: 6c 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 l = TempDir + "f
4b50: 6f 73 73 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a ossilTrue.bat"..
4b60: 20 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 var TextDoc
4b70: 3d 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 = v8New("TextDoc
4b80: 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 76 61 ument");.. va
4b90: 72 20 61 62 73 70 61 74 68 20 3d 20 46 53 4f 2e r abspath = FSO.
4ba0: 47 65 74 41 62 73 6f 6c 75 74 65 50 61 74 68 4e GetAbsolutePathN
4bb0: 61 6d 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c ame(PathToFossil
4bc0: 29 3b 0d 0a 20 20 20 20 76 61 72 20 66 20 3d 20 );.. var f =
4bd0: 76 38 4e 65 77 28 27 46 69 6c 65 27 2c 20 61 62 v8New('File', ab
4be0: 73 70 61 74 68 29 3b 0d 0a 20 20 20 20 69 66 20 spath);.. if
4bf0: 28 66 2e 45 78 69 73 74 28 29 29 20 7b 0d 0a 20 (f.Exist()) {..
4c00: 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 41 TextDoc.A
4c10: 64 64 4c 69 6e 65 28 27 50 41 54 48 20 3d 20 25 ddLine('PATH = %
4c20: 50 41 54 48 25 3b 27 2b 66 2e 50 61 74 68 2b 27 PATH%;'+f.Path+'
4c30: 22 27 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 "');.. }..
4c40: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
4c50: 28 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 43 ('cd /d "'+rootC
4c60: 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 20 atalog+'"')..
4c70: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
4c80: 28 27 73 74 61 72 74 20 63 6d 64 2e 65 78 65 27 ('start cmd.exe'
4c90: 29 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 57 ).. TextDoc.W
4ca0: 72 69 74 65 28 50 61 74 68 54 6f 42 61 74 46 6f rite(PathToBatFo
4cb0: 73 73 69 6c 2c 20 27 63 70 38 36 36 27 29 3b 0d ssil, 'cp866');.
4cc0: 0a 20 20 20 20 d0 97 d0 b0 d0 bf d1 83 d1 81 d1 . ...........
4cd0: 82 d0 b8 d1 82 d1 8c d0 9f d1 80 d0 b8 d0 bb d0 ................
4ce0: be d0 b6 d0 b5 d0 bd d0 b8 d0 b5 28 50 61 74 68 ...........(Path
4cf0: 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 22 22 2c ToBatFossil, "",
4d00: 20 74 72 75 65 29 3b 0d 0a 20 20 20 20 54 65 78 true);.. Tex
4d10: 74 44 6f 63 20 3d 20 6e 75 6c 6c 3b 0d 0a 7d 20 tDoc = null;..}
4d20: 2f 2f 66 6f 73 73 69 6c 5f 72 75 6e 0d 0a 0d 0a //fossil_run....
4d30: 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f function fossil_
4d40: 67 65 74 46 69 6c 65 53 74 61 74 75 73 28 70 61 getFileStatus(pa
4d50: 74 68 54 6f 43 61 74 61 6c 6f 67 2c 20 70 61 74 thToCatalog, pat
4d60: 68 54 6f 46 69 6c 65 29 7b 0d 0a 20 20 20 20 76 hToFile){.. v
4d70: 61 72 20 d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 ar .............
4d80: be d0 b3 20 3d 20 70 61 74 68 54 6f 43 61 74 61 ... = pathToCata
4d90: 6c 6f 67 0d 0a 20 20 20 20 69 66 20 28 d0 a1 d0 log.. if (...
4da0: be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 ................
4db0: b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 ................
4dc0: b2 d0 98 d0 a1 d1 82 d0 b0 d1 82 d1 83 d1 81 d0 ................
4dd0: be d0 b2 5b d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb ...[............
4de0: d0 be d0 b3 5d 20 3d 3d 20 75 6e 64 65 66 69 6e ....] == undefin
4df0: 65 64 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 4d ed) {.. M
4e00: 65 73 73 61 67 65 28 22 47 65 74 20 73 74 61 74 essage("Get stat
4e10: 75 73 20 66 6f 72 20 22 20 2b 20 70 61 74 68 54 us for " + pathT
4e20: 6f 43 61 74 61 6c 6f 67 20 2b 20 22 20 22 2b d0 oCatalog + " "+.
4e30: a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 ................
4e40: 82 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 ................
4e50: be d0 b2 d0 98 d0 a1 d1 82 d0 b0 d1 82 d1 83 d1 ................
4e60: 81 d0 be d0 b2 5b d0 bb d0 9a d0 b0 d1 82 d0 b0 .....[..........
4e70: d0 bb d0 be d0 b3 5d 29 3b 0d 0a 20 20 20 20 20 ......]);..
4e80: 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f 73 var PathToFos
4e90: 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 silOutput = Temp
4ea0: 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 Dir + "fossilsta
4eb0: 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 tus.txt" // ....
4ec0: d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 ...... 1.. .....
4ed0: b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 ... .. utf-8, ..
4ee0: d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 ............ ...
4ef0: 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 ..... ..........
4f00: d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 .. fossil ......
4f10: d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 .... ..........
4f20: d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 ............ ...
4f30: b3 d0 be 2e 20 0d 0a 20 20 20 20 20 20 20 20 76 .... .. v
4f40: 61 72 20 50 61 74 68 54 6f 42 61 74 46 6f 73 73 ar PathToBatFoss
4f50: 69 6c 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 il = TempDir + "
4f60: 66 6f 73 73 69 6c 54 72 75 65 2e 62 61 74 22 0d fossilTrue.bat".
4f70: 0a 20 20 20 20 20 20 20 20 76 61 72 20 54 65 78 . var Tex
4f80: 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 tDoc = v8New("Te
4f90: 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 xtDocument");..
4fa0: 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e d0 TextDoc..
4fb0: 97 d0 b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c 28 ...............(
4fc0: 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 PathToFossilOutp
4fd0: 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 ut, "UTF-8");..
4fe0: 20 20 20 20 20 20 20 76 61 72 20 d0 bb d0 9a d0 var .....
4ff0: b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d 22 22 3b ........... ="";
5000: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 69 66 20 28 .. //if (
5010: d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 ................
5020: 20 3d 3d 20 27 27 29 20 7b 20 2f 2f d0 be d0 bf == '') { //....
5030: d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b8 d0 bc 20 d1 .............. .
5040: 82 d0 b5 d0 ba d1 83 d1 89 d0 b8 d0 b9 20 52 4f ............. RO
5050: 4f 54 20 d0 ba d0 b0 d1 82 d0 b0 d0 bb d0 be d0 OT .............
5060: b3 20 d0 b4 d0 bb d1 8f 20 66 6f 73 73 69 6c 20 . ...... fossil
5070: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 d0 bc .. var ..
5080: d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 ................
5090: 20 3d 20 70 61 74 68 54 6f 43 61 74 61 6c 6f 67 = pathToCatalog
50a0: 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 ;.. TextD
50b0: 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f oc.AddLine('cd /
50c0: 64 22 27 20 2b d0 bc d0 bb d0 9a d0 b0 d1 82 d0 d"' +...........
50d0: b0 d0 bb d0 be d0 b3 20 2b 27 22 27 29 0d 0a 20 ....... +'"')..
50e0: 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 41 TextDoc.A
50f0: 64 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 ddLine(PathToFos
5100: 73 69 6c 20 2b 27 20 73 74 61 74 75 73 20 3e 20 sil +' status >
5110: 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f "'+PathToFossilO
5120: 75 74 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 20 utput+'"');..
5130: 20 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 TextDoc.Wri
5140: 74 65 28 50 61 74 68 54 6f 42 61 74 46 6f 73 73 te(PathToBatFoss
5150: 69 6c 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 il, 'cp866');..
5160: 20 20 20 20 20 20 20 45 72 72 43 6f 64 65 20 3d ErrCode =
5170: 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 WshShell.Run('"
5180: 27 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 '+PathToBatFossi
5190: 6c 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 l+'"', 0, 1)..
51a0: 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 52 65 TextDoc.Re
51b0: 61 64 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f ad(PathToFossilO
51c0: 75 74 70 75 74 2c 20 22 55 54 46 2d 38 22 29 3b utput, "UTF-8");
51d0: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 54 65 .. if (Te
51e0: 78 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 xtDoc.LineCount(
51f0: 29 20 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 20 20 ) == 0) {..
5200: 20 20 20 20 20 20 20 4d 65 73 73 61 67 65 20 28 Message (
5210: 22 d0 ba d0 be d0 bc d0 bc d0 b0 d0 bd d0 b4 d0 "...............
5220: b0 20 d0 be d1 82 d1 80 d0 b0 d0 b1 d0 be d1 82 . ..............
5230: d0 b0 d0 bb d0 b0 2c 20 d0 bd d0 be 20 d0 b2 d1 ......, .... ...
5240: 8b d0 b2 d0 be d0 b4 20 d0 bd d0 b5 20 d0 b7 d0 ....... .... ...
5250: b0 d0 bf d0 b8 d1 81 d0 b0 d0 bb d1 81 d1 8f 2c ...............,
5260: 20 d0 bd d0 b0 d0 b4 d0 be 20 d0 be d1 82 d0 bb ........ ......
5270: d0 b0 d0 b4 d0 b8 d1 82 d1 8c 21 22 29 0d 0a 20 ..........!")..
5280: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
5290: 6e 20 6e 75 6c 6c 20 2f 2f d1 87 d1 82 d0 be 20 n null //......
52a0: d1 82 d0 be 20 d0 bf d0 be d1 88 d0 bb d0 be 20 .... ..........
52b0: d0 bd d0 b5 20 d1 82 d0 b0 d0 ba 2e 20 0d 0a 20 .... ....... ..
52c0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
52d0: 20 20 76 61 72 20 69 3d 30 3b 0d 0a 20 20 20 20 var i=0;..
52e0: 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d 31 for (var i=1
52f0: 3b 20 69 3c 3d 54 65 78 74 44 6f 63 2e 4c 69 6e ; i<=TextDoc.Lin
5300: 65 43 6f 75 6e 74 28 29 3b 20 69 2b 2b 29 0d 0a eCount(); i++)..
5310: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 {..
5320: 20 20 20 20 20 20 20 76 61 72 20 72 20 3d 20 54 var r = T
5330: 65 78 74 44 6f 63 2e 47 65 74 4c 69 6e 65 28 69 extDoc.GetLine(i
5340: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
5350: 69 66 20 28 72 2e 69 6e 64 65 78 4f 66 28 22 6c if (r.indexOf("l
5360: 6f 63 61 6c 2d 72 6f 6f 74 3a 22 29 21 3d 2d 31 ocal-root:")!=-1
5370: 29 7b 20 2f 2f 20 d0 b2 d1 81 d0 b5 20 d0 bd d0 ){ // ...... ...
5380: b0 d1 88 d0 bb d0 b8 2c 20 d1 82 d0 b5 d0 bf d0 ......., .......
5390: b5 d1 80 d1 8c 20 0d 0a 20 20 20 20 20 20 20 20 ..... ..
53a0: 20 20 20 20 20 20 20 20 20 20 20 20 d0 bc d0 bb ....
53b0: d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 20 ..............
53c0: 3d 20 72 2e 73 70 6c 69 74 28 27 20 20 20 27 29 = r.split(' ')
53d0: 5b 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 [1];..
53e0: 20 20 20 20 20 20 20 20 20 20 d0 bb d0 9a d0 b0 ......
53f0: d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d 20 d0 bc d0 .......... = ...
5400: bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2e ................
5410: 72 65 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 27 replace(/\//g, '
5420: 5c 5c 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 \\');..
5430: 20 20 20 20 20 20 20 20 20 20 20 d0 bb d0 9a d0 .....
5440: b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d 20 d0 bb ........... = ..
5450: d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2e 73 ...............s
5460: 75 62 73 74 72 28 30 2c 20 d0 bb d0 9a d0 b0 d1 ubstr(0, .......
5470: 82 d0 b0 d0 bb d0 be d0 b3 2e 6c 65 6e 67 74 68 ..........length
5480: 2d 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 -1);..
5490: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
54a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d .. }.
54b0: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 . }..
54c0: 20 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 TextDoc.Clea
54d0: 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 r();.. Te
54e0: 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 xtDoc.Write(Path
54f0: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 ToFossilOutput,
5500: 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 7d "UTF-8");.. }
5510: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 d0 a1 d0 be .. .. ....
5520: d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 d0 b8 ................
5530: d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 20 3d .............. =
5540: 20 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 ...............
5550: 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 ................
5560: bb d0 be d0 b2 d0 98 d0 a1 d1 82 d0 b0 d1 82 d1 ................
5570: 83 d1 81 d0 be d0 b2 5b d0 bb d0 9a d0 b0 d1 82 .......[........
5580: d0 b0 d0 bb d0 be d0 b3 5d 3b 0d 0a 20 20 20 20 ........];..
5590: 69 66 20 28 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 if (............
55a0: d1 82 d1 81 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 ................
55b0: d0 bb d0 be d0 b2 20 3d 3d 20 75 6e 64 65 66 69 ...... == undefi
55c0: 6e 65 64 29 20 72 65 74 75 72 6e 20 6e 75 6c 6c ned) return null
55d0: 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 74 .. .. ret
55e0: 75 72 6e 20 28 d0 a1 d0 be d0 be d1 82 d0 b2 d0 urn (...........
55f0: b5 d1 82 d1 81 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 ................
5600: b9 d0 bb d0 be d0 b2 5b 70 61 74 68 54 6f 46 69 .......[pathToFi
5610: 6c 65 5d 20 3d 3d 20 75 6e 64 65 66 69 6e 65 64 le] == undefined
5620: 29 20 3f 20 6e 75 6c 6c 20 3a 20 d0 a1 d0 be d0 ) ? null : .....
5630: be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 d0 b8 d0 ................
5640: b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 5b 70 61 .............[pa
5650: 74 68 54 6f 46 69 6c 65 5d 0d 0a 20 20 20 20 0d thToFile].. .
5660: 0a 7d 20 2f 2f 66 6f 73 73 69 6c 5f 67 65 74 46 .} //fossil_getF
5670: 69 6c 65 53 74 61 74 75 73 0d 0a 0d 0a 66 75 6e ileStatus....fun
5680: 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 72 65 76 ction fossil_rev
5690: 65 72 74 28 70 61 74 68 54 6f 46 69 6c 65 2c 20 ert(pathToFile,
56a0: 76 65 72 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61 ver) {.... va
56b0: 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 r rootCatalog =
56c0: 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f 74 43 61 fossil_getRootCa
56d0: 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 talog(pathToFile
56e0: 29 3b 0d 0a 20 20 20 20 76 61 72 20 66 20 3d 20 );.. var f =
56f0: 76 38 4e 65 77 28 22 46 69 6c 65 22 2c 20 70 61 v8New("File", pa
5700: 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 thToFile);..
5710: 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c var PathToFossil
5720: 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 69 72 Output = TempDir
5730: 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 75 73 + "fossilstatus
5740: 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 .txt" // .......
5750: b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb ... 1.. ........
5760: 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 .. utf-8, .....
5770: b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 ......... ......
5780: d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 .. ............
5790: 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 fossil .........
57a0: b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 . .......... ...
57b0: b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be ......... ......
57c0: 2e 20 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 . .. var Path
57d0: 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 ToBatFossil = Te
57e0: 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 mpDir + "fossilT
57f0: 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 61 rue.bat".. va
5800: 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 r TextDoc = v8Ne
5810: 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 w("TextDocument"
5820: 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e );.. TextDoc.
5830: d0 97 d0 b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c ................
5840: 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 (PathToFossilOut
5850: 70 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a put, "UTF-8");..
5860: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
5870: 69 6e 65 28 27 63 64 20 2f 64 22 27 20 2b 72 6f ine('cd /d"' +ro
5880: 6f 74 43 61 74 61 6c 6f 67 20 2b 27 22 27 29 0d otCatalog +'"').
5890: 0a 20 20 20 20 76 61 72 20 63 6d 64 20 3d 20 28 . var cmd = (
58a0: 76 65 72 2e 6c 65 6e 67 74 68 3e 30 29 20 3f 20 ver.length>0) ?
58b0: 27 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 ''+PathToFossil
58c0: 2b 27 20 72 65 76 65 72 74 20 2d 72 20 27 2b 76 +' revert -r '+v
58d0: 65 72 2b 27 20 22 27 20 2b 70 61 74 68 54 6f 46 er+' "' +pathToF
58e0: 69 6c 65 2b 27 22 27 20 3a 20 27 27 2b 50 61 74 ile+'"' : ''+Pat
58f0: 68 54 6f 46 6f 73 73 69 6c 20 2b 27 20 72 65 76 hToFossil +' rev
5900: 65 72 74 20 20 22 27 20 2b 70 61 74 68 54 6f 46 ert "' +pathToF
5910: 69 6c 65 2b 27 22 27 3b 0d 0a 20 20 20 20 54 65 ile+'"';.. Te
5920: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 63 6d xtDoc.AddLine(cm
5930: 64 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 d);.. TextDoc
5940: 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 61 74 .Write(PathToBat
5950: 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 27 29 Fossil, 'cp866')
5960: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 43 ;.. TextDoc.C
5970: 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 45 72 72 lear();.. Err
5980: 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e Code = WshShell.
5990: 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 Run('"'+PathToBa
59a0: 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 2c 20 tFossil+'"', 0,
59b0: 31 29 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 45 1).. return E
59c0: 72 72 43 6f 64 65 0d 0a 7d 20 2f 2f 66 6f 73 73 rrCode..} //foss
59d0: 69 6c 5f 72 65 76 65 72 74 0d 0a 0d 0a 66 75 6e il_revert....fun
59e0: 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 64 65 6c ction fossil_del
59f0: 65 74 65 28 70 61 74 68 54 6f 46 69 6c 65 29 20 ete(pathToFile)
5a00: 7b 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 {.. var rootC
5a10: 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 69 6c 5f atalog = fossil_
5a20: 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 getRootCatalog(p
5a30: 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 athToFile);..
5a40: 20 2f 2f 76 61 72 20 66 20 3d 20 76 38 4e 65 77 //var f = v8New
5a50: 28 22 46 69 6c 65 22 2c 20 70 61 74 68 54 6f 46 ("File", pathToF
5a60: 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 50 ile);.. var P
5a70: 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 athToFossilOutpu
5a80: 74 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 t = TempDir + "f
5a90: 6f 73 73 69 6c 73 74 61 74 75 73 2e 74 78 74 22 ossilstatus.txt"
5aa0: 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 // .......... 1
5ab0: d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 .. ........ .. u
5ac0: 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 tf-8, ..........
5ad0: d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 .... ........ ..
5ae0: d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f 73 73 69 .......... fossi
5af0: 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 l .......... ...
5b00: 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 ....... ........
5b10: d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 .... ....... ..
5b20: 20 20 20 76 61 72 20 50 61 74 68 54 6f 42 61 74 var PathToBat
5b30: 46 6f 73 73 69 6c 20 3d 20 54 65 6d 70 44 69 72 Fossil = TempDir
5b40: 20 2b 20 22 66 6f 73 73 69 6c 54 72 75 65 2e 62 + "fossilTrue.b
5b50: 61 74 22 0d 0a 20 20 20 20 76 61 72 20 54 65 78 at".. var Tex
5b60: 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 tDoc = v8New("Te
5b70: 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 xtDocument");..
5b80: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
5b90: 6e 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f ne('cd /d "'+roo
5ba0: 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 tCatalog+'"')..
5bb0: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
5bc0: 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 ne(PathToFossil
5bd0: 2b 27 20 64 65 6c 65 20 22 27 20 2b 70 61 74 68 +' dele "' +path
5be0: 54 6f 46 69 6c 65 2b 27 22 27 29 3b 0d 0a 20 20 ToFile+'"');..
5bf0: 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 TextDoc.Write(
5c00: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c PathToBatFossil,
5c10: 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 'cp866');..
5c20: 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b TextDoc.Clear();
5c30: 0d 0a 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 .. ErrCode =
5c40: 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 WshShell.Run('"'
5c50: 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c +PathToBatFossil
5c60: 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 +'"', 0, 1)..
5c70: 20 72 65 74 75 72 6e 20 45 72 72 43 6f 64 65 0d return ErrCode.
5c80: 0a 7d 20 2f 2f 66 6f 73 73 69 6c 5f 64 65 6c 65 .} //fossil_dele
5c90: 74 65 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 te....function f
5ca0: 6f 73 73 69 6c 5f 63 6f 6d 6d 69 74 28 70 61 74 ossil_commit(pat
5cb0: 68 54 6f 46 69 6c 65 2c 20 6d 65 73 73 61 67 65 hToFile, message
5cc0: 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f ) {.. var roo
5cd0: 74 43 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 69 tCatalog = fossi
5ce0: 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 l_getRootCatalog
5cf0: 28 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 (pathToFile);..
5d00: 20 20 20 76 61 72 20 74 65 6d 70 66 69 6c 65 20 var tempfile
5d10: 3d 20 47 65 74 54 65 6d 70 46 69 6c 65 4e 61 6d = GetTempFileNam
5d20: 65 28 22 74 78 74 22 29 3b 0d 0a 20 20 20 20 76 e("txt");.. v
5d30: 61 72 20 66 20 3d 20 76 38 4e 65 77 28 22 46 69 ar f = v8New("Fi
5d40: 6c 65 22 2c 20 70 61 74 68 54 6f 46 69 6c 65 29 le", pathToFile)
5d50: 3b 0d 0a 20 20 20 20 69 66 20 28 66 2e 49 73 44 ;.. if (f.IsD
5d60: 69 72 65 63 74 6f 72 79 28 29 29 20 7b 0d 0a 20 irectory()) {..
5d70: 20 20 20 20 20 20 20 70 61 74 68 54 6f 46 69 6c pathToFil
5d80: 65 20 3d 20 27 27 0d 0a 20 20 20 20 7d 20 65 6c e = ''.. } el
5d90: 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 70 61 se {.. pa
5da0: 74 68 54 6f 46 69 6c 65 20 3d 20 27 22 27 2b 70 thToFile = '"'+p
5db0: 61 74 68 54 6f 46 69 6c 65 2b 27 22 27 0d 0a 20 athToFile+'"'..
5dc0: 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 20 50 61 }.. var Pa
5dd0: 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 thToFossilOutput
5de0: 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f = TempDir + "fo
5df0: 73 73 69 6c 73 74 61 74 75 73 2e 74 78 74 22 20 ssilstatus.txt"
5e00: 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 // .......... 1.
5e10: a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 74 . ........ .. ut
5e20: 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 f-8, ...........
5e30: b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 ... ........ ...
5e40: 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f 73 73 69 6c ......... fossil
5e50: 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 82 .......... ....
5e60: d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 d0 ...... .........
5e70: b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 20 ... ....... ..
5e80: 20 20 76 61 72 20 50 61 74 68 54 6f 42 61 74 46 var PathToBatF
5e90: 6f 73 73 69 6c 20 3d 20 54 65 6d 70 44 69 72 20 ossil = TempDir
5ea0: 2b 20 22 66 6f 73 73 69 6c 54 72 75 65 2e 62 61 + "fossilTrue.ba
5eb0: 74 22 0d 0a 20 20 20 20 76 61 72 20 54 65 78 74 t".. var Text
5ec0: 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 78 Doc = v8New("Tex
5ed0: 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 tDocument");..
5ee0: 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e TextDoc.AddLin
5ef0: 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 e('cd /d "'+root
5f00: 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 Catalog+'"')..
5f10: 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e TextDoc.AddLin
5f20: 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 2b e(PathToFossil +
5f30: 27 20 63 6f 6d 6d 69 74 20 27 20 2b 70 61 74 68 ' commit ' +path
5f40: 54 6f 46 69 6c 65 2b 27 20 2d 4d 20 22 27 2b 74 ToFile+' -M "'+t
5f50: 65 6d 70 66 69 6c 65 2b 27 22 27 29 3b 0d 0a 20 empfile+'"');..
5f60: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
5f70: 6e 65 28 27 65 78 69 74 27 29 3b 0d 0a 20 20 20 ne('exit');..
5f80: 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 TextDoc.Write(P
5f90: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 athToBatFossil,
5fa0: 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 0d 'cp866');.. .
5fb0: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 . TextDoc.Cle
5fc0: 61 72 28 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 ar();.. TextD
5fd0: 6f 63 2e 53 65 74 54 65 78 74 28 6d 65 73 73 61 oc.SetText(messa
5fe0: 67 65 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f ge);.. TextDo
5ff0: 63 2e 57 72 69 74 65 28 74 65 6d 70 66 69 6c 65 c.Write(tempfile
6000: 2c 20 27 75 74 66 2d 38 27 29 3b 0d 0a 20 20 20 , 'utf-8');..
6010: 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 ErrCode = WshSh
6020: 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 ell.Run('"'+Path
6030: 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c ToBatFossil+'"',
6040: 20 31 2c 20 31 29 3b 0d 0a 20 20 20 20 72 65 74 1, 1);.. ret
6050: 75 72 6e 20 45 72 72 43 6f 64 65 0d 0a 7d 20 2f urn ErrCode..} /
6060: 2f 66 6f 73 73 69 6c 5f 63 6f 6d 6d 69 74 0d 0a /fossil_commit..
6070: 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 ..function fossi
6080: 6c 5f 73 68 6f 77 6c 6f 67 28 70 61 74 68 54 6f l_showlog(pathTo
6090: 46 69 6c 65 29 20 7b 20 2f 2f d0 b2 d1 80 d0 b5 File) { //......
60a0: d0 bc d0 b5 d0 bd d0 bd d0 be 2c 20 d0 bd d0 b0 .........., ....
60b0: d0 b4 d0 be 20 d0 bd d0 b0 d1 80 d0 b8 d1 81 d0 .... ...........
60c0: be d0 b2 d0 b0 d1 82 d1 8c 20 d0 ba d1 80 d0 b0 ......... ......
60d0: d1 81 d0 b8 d0 b2 d1 8e 20 d1 84 d0 be d1 80 d0 ........ .......
60e0: bc d1 83 2e 20 0d 0a 20 20 20 20 0d 0a 20 20 20 .... .. ..
60f0: 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 var rootCatalog
6100: 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f = fossil_getRoo
6110: 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 tCatalog(pathToF
6120: 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 50 ile);.. var P
6130: 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 athToFossilOutpu
6140: 74 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 t = TempDir + "f
6150: 6f 73 73 69 6c 73 74 61 74 75 73 2e 74 78 74 22 ossilstatus.txt"
6160: 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 // .......... 1
6170: d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 .. ........ .. u
6180: 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 tf-8, ..........
6190: d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 .... ........ ..
61a0: d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f 73 73 69 .......... fossi
61b0: 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 l .......... ...
61c0: 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 ....... ........
61d0: d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 .... ....... ..
61e0: 20 20 20 76 61 72 20 50 61 74 68 54 6f 42 61 74 var PathToBat
61f0: 46 6f 73 73 69 6c 20 3d 20 54 65 6d 70 44 69 72 Fossil = TempDir
6200: 20 2b 20 22 66 6f 73 73 69 6c 54 72 75 65 2e 62 + "fossilTrue.b
6210: 61 74 22 0d 0a 20 20 20 20 76 61 72 20 54 65 78 at".. var Tex
6220: 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 tDoc = v8New("Te
6230: 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 xtDocument");..
6240: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
6250: 6e 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f ne('cd /d "'+roo
6260: 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 tCatalog+'"')..
6270: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
6280: 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 2b ne(PathToFossil+
6290: 27 20 75 69 27 29 0d 0a 20 20 20 20 54 65 78 74 ' ui').. Text
62a0: 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f Doc.Write(PathTo
62b0: 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 BatFossil, 'cp86
62c0: 36 27 29 3b 0d 0a 20 20 20 20 d0 97 d0 b0 d0 bf 6');.. ......
62d0: d1 83 d1 81 d1 82 d0 b8 d1 82 d1 8c d0 9f d1 80 ................
62e0: d0 b8 d0 bb d0 be d0 b6 d0 b5 d0 bd d0 b8 d0 b5 ................
62f0: 28 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c (PathToBatFossil
6300: 29 3b 0d 0a 7d 20 2f 2f 66 6f 73 73 69 6c 5f 73 );..} //fossil_s
6310: 68 6f 77 6c 6f 67 0d 0a 0d 0a 66 75 6e 63 74 69 howlog....functi
6320: 6f 6e 20 66 6f 73 73 69 6c 5f 67 65 74 4c 6f 67 on fossil_getLog
6330: 28 70 61 74 68 54 6f 46 69 6c 65 2c 20 6c 69 6d (pathToFile, lim
6340: 69 74 29 20 7b 20 2f 2f d0 b5 d1 81 d0 bb d0 b8 it) { //........
6350: 20 d0 ba d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2c ..............,
6360: 20 d1 82 d0 be d0 b3 d0 b4 d0 b0 20 d0 b8 d0 bd .......... ....
6370: d1 84 d0 be d1 80 d0 bc d0 b0 d1 86 d0 b8 d1 8f ................
6380: 20 d0 b4 d0 bb d1 8f 20 d0 ba d0 b0 d1 82 d0 b0 ...... ........
6390: d0 bb d0 be d0 b3 d0 b0 2c 20 d0 b5 d1 81 d0 bb ........, ......
63a0: d0 b8 20 d1 84 d0 b0 d0 b9 d0 bb 2c 20 d1 82 d0 .. ........, ...
63b0: be d0 b3 d0 b4 d0 b0 20 d0 bb d0 be d0 b3 20 d0 ....... ...... .
63c0: b4 d0 bb d1 8f 20 d1 84 d0 b0 d0 b9 d0 bb d0 b0 ..... ..........
63d0: 2e 20 0d 0a 20 20 20 20 2f 2f d0 92 d0 be d0 b7 . .. //......
63e0: d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0 bc 20 d0 .............. .
63f0: bc d0 b0 d1 81 d1 81 d0 b8 d0 b2 20 d1 81 d0 be ........... ....
6400: 20 d1 81 d1 82 d1 83 d1 80 d0 ba d1 82 d1 83 d1 ...............
6410: 80 d0 be d0 b9 3a 0d 0a 20 20 20 20 2f 2f 20 61 .....:.. // a
6420: 72 72 61 72 79 5b 30 5d 5b 27 76 65 72 73 69 6f rrary[0]['versio
6430: 6e 27 3a 31 32 32 33 33 33 2c 20 27 63 6f 6d 6d n':122333, 'comm
6440: 65 6e 74 27 3a 22 d0 a7 d0 b5 20 d1 82 d0 be 20 ent':".... ....
6450: d0 bd d0 b0 d0 bf d0 b8 d1 81 d0 b0 d0 bb d0 b8 ................
6460: 22 2c 20 27 61 75 74 68 6f 72 27 3a 22 73 6f 73 ", 'author':"sos
6470: 6e 61 22 2c 20 27 64 61 74 65 27 3a 22 32 30 31 na", 'date':"201
6480: 32 2d 30 34 2d 30 31 22 5d 0d 0a 20 20 20 20 76 2-04-01"].. v
6490: 61 72 20 72 65 73 75 6c 74 20 3d 20 5b 5d 0d 0a ar result = []..
64a0: 20 20 20 20 2f 2f 7b 20 46 49 58 4d 45 3a 20 d1 //{ FIXME: .
64b0: 83 d0 bc d0 bd d0 be d0 b6 d0 b0 d0 b5 d0 bc 20 ...............
64c0: d0 ba d0 b2 d0 be 20 d0 ba d0 be d0 bc d0 bc d0 ...... .........
64d0: b8 d1 82 d0 be d0 b2 20 d0 bd d0 b0 20 32 2c 20 ....... .... 2,
64e0: d1 81 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 .............. .
64f0: bf d1 80 d0 b8 d0 b1 d0 bb d0 b8 d0 b7 d0 b8 d1 ................
6500: 82 d0 b5 d0 bb d1 8c d0 bd d0 be 20 32 20 d1 81 ........... 2 ..
6510: d1 82 d1 80 d0 be d0 ba d0 b8 20 d0 bd d0 b0 20 .......... ....
6520: 31 20 d0 ba d0 be d0 bc d0 bc d0 b8 d1 82 2e 0d 1 ..............
6530: 0a 20 20 20 20 2f 2f 20 d0 b2 20 66 6f 73 73 69 . // .. fossi
6540: 6c 20 d0 b5 d1 81 d1 82 d1 8c 20 d0 be d1 88 d0 l ........ .....
6550: b8 d0 b1 d0 ba d0 b0 20 d0 b2 d1 8b d0 b2 d0 be ....... ........
6560: d0 b4 d0 b0 20 d0 b2 20 d0 ba d0 be d0 bc d0 bc .... .. ........
6570: d0 b0 d0 bd d0 b4 d0 bd d1 83 d1 8e 20 d1 81 d1 ............ ...
6580: 82 d1 80 d0 be d0 ba d1 83 20 d0 ba d0 b2 d0 be ......... ......
6590: 2e 20 d1 81 d1 82 d1 80 d0 be d0 ba 20 d0 b0 20 . .......... ..
65a0: d0 bd d0 b5 20 d0 ba d0 b2 d0 be 20 d0 ba d0 be .... ...... ....
65b0: d0 bc d0 bc d0 b8 d1 82 d0 be d0 b2 2e 0d 0a 20 ...............
65c0: 20 20 20 2f 2f 20 d0 b5 d1 81 d1 82 d1 8c 2c 20 // ........,
65d0: d0 b4 d0 b0 d0 b6 d0 b5 20 d0 bf d0 b0 d1 82 d1 ........ .......
65e0: 87 0d 0a 20 20 20 20 2f 2f 20 68 74 74 70 3a 2f ... // http:/
65f0: 2f 77 77 77 2e 66 6f 73 73 69 6c 2d 73 63 6d 2e /www.fossil-scm.
6600: 6f 72 67 2f 69 6e 64 65 78 2e 68 74 6d 6c 2f 69 org/index.html/i
6610: 6e 66 6f 2f 33 65 35 38 62 38 63 65 61 66 20 20 nfo/3e58b8ceaf
6620: 0d 0a 20 20 20 20 2f 2f 7d 0d 0a 20 20 20 20 6c .. //}.. l
6630: 69 6d 69 74 20 3d 20 6c 69 6d 69 74 2a 32 3b 0d imit = limit*2;.
6640: 0a 20 20 20 20 0d 0a 20 20 20 20 66 20 3d 20 76 . .. f = v
6650: 38 4e 65 77 28 22 46 69 6c 65 22 2c 20 70 61 74 8New("File", pat
6660: 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 69 hToFile);.. i
6670: 66 20 28 21 66 2e 45 78 69 73 74 28 29 29 20 72 f (!f.Exist()) r
6680: 65 74 75 72 6e 20 72 65 73 75 6c 74 0d 0a 20 20 eturn result..
6690: 20 20 2f 2f d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 //............
66a0: d0 b8 d0 bc 2c 20 d0 b5 d1 81 d1 82 d1 8c 20 d0 ...., ........ .
66b0: bb d0 b8 20 d0 be d0 bd 20 d0 bf d0 be d0 b4 20 ... .... ......
66c0: d0 b2 d0 b5 d1 80 d1 81 d0 b8 d0 be d0 bd d0 bd ................
66d0: d1 8b d0 bc 20 d0 ba d0 be d0 bd d1 82 d1 80 d0 .... ...........
66e0: be d0 bb d0 b5 d0 bc 20 d1 83 20 d0 bd d0 b0 d1 ....... .. .....
66f0: 81 2e 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 .... var root
6700: 43 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 69 6c Catalog = fossil
6710: 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 _getRootCatalog(
6720: 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 pathToFile);..
6730: 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 var PathToFoss
6740: 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 ilOutput = TempD
6750: 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 ir + "fossilstat
6760: 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 us.txt" // .....
6770: 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 ..... 1.. ......
6780: d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 .. .. utf-8, ...
6790: 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 ........... ....
67a0: d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 .... ...........
67b0: 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 . fossil .......
67c0: bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 ... .......... .
67d0: 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 ........... ....
67e0: d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 20 50 61 ... .. var Pa
67f0: 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 thToBatFossil =
6800: 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 TempDir + "fossi
6810: 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 lTrue.bat"..
6820: 76 61 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 var TextDoc = v8
6830: 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e New("TextDocumen
6840: 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f t");.. TextDo
6850: 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 c.AddLine('cd /d
6860: 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 2b "'+rootCatalog+
6870: 27 22 27 29 0d 0a 20 20 20 20 2f 2f d0 bf d0 be '"').. //....
6880: d0 ba d0 b0 20 d0 b1 d1 83 d0 b4 d0 b5 d0 bc 20 .... ..........
6890: d0 bd d0 be d1 80 d0 bc d0 b0 d0 bb d1 8c d0 bd ................
68a0: d0 be 20 d0 b2 d0 be d0 b7 d0 b2 d1 80 d0 b0 d1 .. .............
68b0: 89 d0 b0 d1 82 d1 8c 20 d1 82 d0 be d0 bb d1 8c ....... ........
68c0: d0 ba d0 be 20 d0 b4 d0 bb d1 8f 20 d1 84 d0 b0 .... ...... ....
68d0: d0 b9 d0 bb d0 b0 2c 20 d0 bd d0 b0 d0 b4 d0 be ......, ........
68e0: 20 d1 81 d0 bf d1 80 d0 be d1 81 d0 b8 d1 82 d1 ...............
68f0: 8c 20 d1 81 d0 be d0 b2 d0 b5 d1 82 d0 b0 20 d0 . ............ .
6900: bf d1 80 d0 be 20 d0 bf d0 b0 d1 80 d1 81 d0 b8 ..... ..........
6910: d0 bd d0 b3 20 d0 be d0 b1 d1 89 d0 b5 d0 b9 20 .... ..........
6920: d0 b8 d1 81 d1 82 d0 be d1 80 d0 b8 d0 b8 2e 2e ................
6930: 2e 0d 0a 20 20 20 20 69 66 20 28 21 66 2e 49 73 ... if (!f.Is
6940: 44 69 72 65 63 74 6f 72 79 28 29 29 20 7b 20 2f Directory()) { /
6950: 2f d0 94 d0 bb d1 8f 20 d1 84 d0 b0 d0 b9 d0 bb /...... ........
6960: d0 be d0 b2 20 d0 be d1 81 d1 82 d0 b0 d0 b2 d0 .... ...........
6970: bb d1 8f d0 b5 d0 bc 20 d1 81 d1 82 d0 b0 d1 80 ....... ........
6980: d1 8b d0 b9 20 d0 b2 d0 b0 d1 80 d0 b8 d0 b0 d0 .... ...........
6990: bd d1 82 2c 20 d0 b2 20 74 69 6d 65 6c 69 6e 65 ..., .. timeline
69a0: 20 d0 bd d0 b5 d1 82 20 d0 b2 d0 be d0 b7 d0 bc ...... ........
69b0: d0 be d0 b6 d0 bd d0 be d1 81 d1 82 d0 b8 20 d0 .............. .
69c0: be d1 82 d1 84 d0 b8 d0 bb d1 8c d1 82 d1 80 d0 ................
69d0: be d0 b2 d0 b0 d1 82 d1 8c 20 d1 81 d1 80 d0 b0 ......... ......
69e0: d0 b7 d1 83 20 d0 bf d0 be 20 d1 84 d0 b0 d0 b9 .... .... ......
69f0: d0 bb d0 b0 d0 bc 2e 20 0d 0a 20 20 20 20 20 20 ....... ..
6a00: 20 20 76 61 72 20 d0 9f d1 83 d1 82 d1 8c d0 9e var ..........
6a10: d1 82 d0 bd d0 be d1 81 d0 b8 d1 82 d0 b5 d0 bb ................
6a20: d1 8c d0 bd d0 be d0 9a d0 be d1 80 d0 bd d0 b5 ................
6a30: d0 b2 d0 be d0 b3 d0 be d0 9a d0 b0 d1 82 d0 b0 ................
6a40: d0 bb d0 be d0 b3 d0 b0 20 3d 20 70 61 74 68 54 ........ = pathT
6a50: 6f 46 69 6c 65 2e 72 65 70 6c 61 63 65 28 72 6f oFile.replace(ro
6a60: 6f 74 43 61 74 61 6c 6f 67 2b 27 5c 5c 27 2c 20 otCatalog+'\\',
6a70: 27 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 '');.. Te
6a80: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 xtDoc.AddLine(Pa
6a90: 74 68 54 6f 46 6f 73 73 69 6c 2b 27 20 66 69 6e thToFossil+' fin
6aa0: 66 6f 20 2d 6c 20 2d 2d 6c 69 6d 69 74 20 27 2b fo -l --limit '+
6ab0: 6c 69 6d 69 74 2b 27 20 22 27 2b d0 9f d1 83 d1 limit+' "'+.....
6ac0: 82 d1 8c d0 9e d1 82 d0 bd d0 be d1 81 d0 b8 d1 ................
6ad0: 82 d0 b5 d0 bb d1 8c d0 bd d0 be d0 9a d0 be d1 ................
6ae0: 80 d0 bd d0 b5 d0 b2 d0 be d0 b3 d0 be d0 9a d0 ................
6af0: b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0 b0 20 2b 27 ............. +'
6b00: 22 20 3e 20 22 27 2b 50 61 74 68 54 6f 46 6f 73 " > "'+PathToFos
6b10: 73 69 6c 4f 75 74 70 75 74 2b 27 22 27 29 0d 0a silOutput+'"')..
6b20: 20 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e TextDoc.
6b30: 57 72 69 74 65 28 50 61 74 68 54 6f 42 61 74 46 Write(PathToBatF
6b40: 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 27 29 3b ossil, 'cp866');
6b50: 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 .. ..
6b60: 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 ErrCode = Ws
6b70: 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 hShell.Run('"'+P
6b80: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 athToBatFossil+'
6b90: 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 20 "', 0, 1)..
6ba0: 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 TextDoc.Clear
6bb0: 28 29 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 54 ();.... T
6bc0: 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 68 extDoc.Read(Path
6bd0: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 ToFossilOutput,
6be0: 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 20 "UTF-8");..
6bf0: 20 20 20 69 66 20 28 54 65 78 74 44 6f 63 2e 4c if (TextDoc.L
6c00: 69 6e 65 43 6f 75 6e 74 28 29 20 3d 3d 20 30 29 ineCount() == 0)
6c10: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
6c20: 72 65 74 75 72 6e 20 72 65 73 75 6c 74 20 0d 0a return result ..
6c30: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 }..
6c40: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 72 65 20 .. re
6c50: 3d 20 6e 65 77 20 52 65 67 45 78 70 28 2f 28 5c = new RegExp(/(\
6c60: 64 7b 34 7d 2d 5c 64 7b 32 7d 2d 5c 64 7b 32 7d d{4}-\d{2}-\d{2}
6c70: 29 5c 73 5c 5b 28 5b 30 2d 39 61 2d 66 5d 7b 31 )\s\[([0-9a-f]{1
6c80: 30 7d 29 5c 5d 5c 73 28 28 2e 7c 5c 73 29 2a 3f 0})\]\s((.|\s)*?
6c90: 29 5c 28 75 73 65 72 3a 5c 73 2b 28 2e 2b 29 2c )\(user:\s+(.+),
6ca0: 5c 73 2b 61 72 74 69 66 61 63 74 2f 67 29 3b 0d \s+artifact/g);.
6cb0: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 . ..
6cc0: 20 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 44 var r = TextD
6cd0: 6f 63 2e d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d1 oc..............
6ce0: 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 82 28 29 3b .............();
6cf0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6d 61 .. var ma
6d00: 74 63 68 65 73 3b 0d 0a 20 20 20 20 20 20 20 20 tches;..
6d10: 76 61 72 20 69 6e 64 65 78 3d 30 3b 0d 0a 20 20 var index=0;..
6d20: 20 20 20 20 20 20 77 68 69 6c 65 20 28 28 6d 61 while ((ma
6d30: 74 63 68 65 73 20 3d 20 72 65 2e 65 78 65 63 28 tches = re.exec(
6d40: 72 29 29 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 r)) != null)..
6d50: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 {..
6d60: 20 20 20 20 20 72 65 73 75 6c 74 5b 69 6e 64 65 result[inde
6d70: 78 5d 20 3d 20 7b 22 76 65 72 73 69 6f 6e 22 3a x] = {"version":
6d80: 6d 61 74 63 68 65 73 5b 32 5d 2c 20 22 63 6f 6d matches[2], "com
6d90: 6d 65 6e 74 22 3a 27 27 2b 6d 61 74 63 68 65 73 ment":''+matches
6da0: 5b 33 5d 2e 72 65 70 6c 61 63 65 28 2f 5c 73 7b [3].replace(/\s{
6db0: 32 2c 7d 7c 5c 6e 2f 67 2c 20 22 20 22 29 2c 20 2,}|\n/g, " "),
6dc0: 22 64 61 74 65 22 3a 6d 61 74 63 68 65 73 5b 31 "date":matches[1
6dd0: 5d 2c 20 22 61 75 74 68 6f 72 22 3a 6d 61 74 63 ], "author":matc
6de0: 68 65 73 5b 35 5d 7d 0d 0a 20 20 20 20 20 20 20 hes[5]}..
6df0: 20 20 20 20 20 69 6e 64 65 78 2b 2b 3b 0d 0a 20 index++;..
6e00: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 20 }.. }
6e10: 65 6c 73 65 20 7b 20 0d 0a 20 20 20 20 20 20 20 else { ..
6e20: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
6e30: 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 2b 27 20 (PathToFossil+'
6e40: 74 69 6d 65 6c 69 6e 65 20 2d 74 20 63 69 20 2d timeline -t ci -
6e50: 6e 20 27 2b 6c 69 6d 69 74 2b 27 20 20 3e 27 2b n '+limit+' >'+
6e60: 27 20 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 ' "'+PathToFossi
6e70: 6c 4f 75 74 70 75 74 2b 27 22 27 29 0d 0a 20 20 lOutput+'"')..
6e80: 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 TextDoc.Wr
6e90: 69 74 65 28 50 61 74 68 54 6f 42 61 74 46 6f 73 ite(PathToBatFos
6ea0: 73 69 6c 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a sil, 'cp866');..
6eb0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
6ec0: 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 ErrCode = WshS
6ed0: 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 hell.Run('"'+Pat
6ee0: 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 hToBatFossil+'"'
6ef0: 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 20 20 20 , 0, 1)..
6f00: 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 TextDoc.Clear()
6f10: 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 ;.. TextD
6f20: 6f 63 2e 52 65 61 64 28 50 61 74 68 54 6f 46 6f oc.Read(PathToFo
6f30: 73 73 69 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 ssilOutput, "UTF
6f40: 2d 38 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 -8");.. i
6f50: 66 20 28 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 f (TextDoc.LineC
6f60: 6f 75 6e 74 28 29 20 3d 3d 20 30 29 20 7b 0d 0a ount() == 0) {..
6f70: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
6f80: 72 6e 20 72 65 73 75 6c 74 20 0d 0a 20 20 20 20 rn result ..
6f90: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d }.. .
6fa0: 0a 20 20 20 20 20 20 20 20 76 61 72 20 72 65 20 . var re
6fb0: 3d 20 6e 65 77 20 52 65 67 45 78 70 28 2f 3d 3d = new RegExp(/==
6fc0: 3d 5c 73 28 28 32 30 5c 64 5c 64 29 2d 28 30 5b =\s((20\d\d)-(0[
6fd0: 31 2d 39 5d 7c 32 5b 30 31 32 5d 29 2d 28 30 5b 1-9]|2[012])-(0[
6fe0: 31 2d 39 5d 7c 5b 31 32 5d 5b 30 2d 39 5d 7c 33 1-9]|[12][0-9]|3
6ff0: 5b 30 31 5d 29 29 5c 73 3d 3d 3d 28 28 5c 6e 28 [01]))\s===((\n(
7000: 28 5b 30 31 5d 5b 30 2d 39 5d 7c 32 5b 30 2d 33 ([01][0-9]|2[0-3
7010: 5d 29 3a 28 5b 30 2d 35 5d 5b 30 2d 39 5d 29 3a ]):([0-5][0-9]):
7020: 28 5b 30 2d 35 5d 5b 30 2d 39 5d 29 29 5c 73 5c ([0-5][0-9]))\s\
7030: 5b 28 5b 30 2d 39 61 2d 66 5d 7b 31 30 7d 29 5c [([0-9a-f]{10})\
7040: 5d 5c 73 28 28 2e 7c 5c 73 29 2a 3f 29 5c 28 75 ]\s((.|\s)*?)\(u
7050: 73 65 72 3a 5c 73 2b 28 2e 2b 29 5c 73 2b 74 61 ser:\s+(.+)\s+ta
7060: 67 73 3a 5c 73 2b 28 5c 77 2b 29 5c 29 29 2b 29 gs:\s+(\w+)\))+)
7070: 2f 67 29 0d 0a 20 20 20 20 20 20 20 20 76 61 72 /g).. var
7080: 20 72 65 5f 63 6f 6d 6d 65 6e 74 20 3d 20 6e 65 re_comment = ne
7090: 77 20 52 65 67 45 78 70 28 2f 28 28 5b 30 31 5d w RegExp(/(([01]
70a0: 5b 30 2d 39 5d 7c 32 5b 30 2d 33 5d 29 3a 28 5b [0-9]|2[0-3]):([
70b0: 30 2d 35 5d 5b 30 2d 39 5d 29 3a 28 5b 30 2d 35 0-5][0-9]):([0-5
70c0: 5d 5b 30 2d 39 5d 29 29 5c 73 5c 5b 28 5b 30 2d ][0-9]))\s\[([0-
70d0: 39 61 2d 66 5d 7b 31 30 7d 29 5c 5d 5c 73 28 28 9a-f]{10})\]\s((
70e0: 2e 7c 5c 73 29 2a 3f 29 5c 28 75 73 65 72 3a 5c .|\s)*?)\(user:\
70f0: 73 2b 28 2e 2b 29 5c 73 2b 74 61 67 73 3a 5c 73 s+(.+)\s+tags:\s
7100: 2b 28 5c 77 2b 29 5c 29 2f 67 29 3b 0d 0a 20 20 +(\w+)\)/g);..
7110: 20 20 20 20 20 20 76 61 72 20 72 20 3d 20 54 65 var r = Te
7120: 78 74 44 6f 63 2e d0 9f d0 be d0 bb d1 83 d1 87 xtDoc...........
7130: d0 b8 d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 82 ................
7140: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 ();.. var
7150: 20 6d 61 74 63 68 65 73 3b 0d 0a 20 20 20 20 20 matches;..
7160: 20 20 20 76 61 72 20 69 6e 64 65 78 3d 30 3b 0d var index=0;.
7170: 0a 20 20 20 20 20 20 20 20 2f 2f 64 65 62 75 67 . //debug
7180: 67 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 77 68 ger;.. wh
7190: 69 6c 65 20 28 28 6d 61 74 63 68 65 73 20 3d 20 ile ((matches =
71a0: 72 65 2e 65 78 65 63 28 72 29 29 20 21 3d 20 6e re.exec(r)) != n
71b0: 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d ull).. {.
71c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
71d0: 20 6d 61 74 63 68 65 73 5f 63 6f 6d 6d 65 6e 74 matches_comment
71e0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 ;.. v
71f0: 61 72 20 74 65 78 74 20 3d 20 6d 61 74 63 68 65 ar text = matche
7200: 73 5b 35 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 s[5]..
7210: 20 20 77 68 69 6c 65 20 28 28 6d 61 74 63 68 65 while ((matche
7220: 73 5f 63 6f 6d 6d 65 6e 74 20 3d 20 72 65 5f 63 s_comment = re_c
7230: 6f 6d 6d 65 6e 74 2e 65 78 65 63 28 74 65 78 74 omment.exec(text
7240: 29 29 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 )) != null)..
7250: 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 {..
7260: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2a 20 76 /* v
7270: 61 72 20 63 6d 64 20 3d 20 22 22 3b 0d 0a 20 20 ar cmd = "";..
7280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f fo
7290: 72 20 28 76 61 72 20 69 3d 31 3b 20 69 20 3c 20 r (var i=1; i <
72a0: 6d 61 74 63 68 65 73 5f 63 6f 6d 6d 65 6e 74 2e matches_comment.
72b0: 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 0d 0a 20 20 length; i++)..
72c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
72d0: 20 20 76 61 72 20 63 6d 64 20 3d 20 63 6d 64 20 var cmd = cmd
72e0: 2b 20 22 20 22 2b 69 2b 22 20 2d 20 22 2b 6d 61 + " "+i+" - "+ma
72f0: 74 63 68 65 73 5f 63 6f 6d 6d 65 6e 74 5b 69 5d tches_comment[i]
7300: 20 2a 2f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 */..
7310: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 ..
7320: 20 20 20 20 20 20 20 72 65 73 75 6c 74 5b 69 6e result[in
7330: 64 65 78 5d 20 3d 20 7b 22 76 65 72 73 69 6f 6e dex] = {"version
7340: 22 3a 6d 61 74 63 68 65 73 5f 63 6f 6d 6d 65 6e ":matches_commen
7350: 74 5b 35 5d 2c 20 22 63 6f 6d 6d 65 6e 74 22 3a t[5], "comment":
7360: 27 28 27 2b 6d 61 74 63 68 65 73 5f 63 6f 6d 6d '('+matches_comm
7370: 65 6e 74 5b 39 5d 2b 27 29 27 2b 27 20 27 2b 6d ent[9]+')'+' '+m
7380: 61 74 63 68 65 73 5f 63 6f 6d 6d 65 6e 74 5b 36 atches_comment[6
7390: 5d 2c 20 22 64 61 74 65 22 3a 27 27 20 2b 6d 61 ], "date":'' +ma
73a0: 74 63 68 65 73 5b 31 5d 2b 27 20 27 2b 6d 61 74 tches[1]+' '+mat
73b0: 63 68 65 73 5f 63 6f 6d 6d 65 6e 74 5b 31 5d 2c ches_comment[1],
73c0: 20 22 61 75 74 68 6f 72 22 3a 6d 61 74 63 68 65 "author":matche
73d0: 73 5f 63 6f 6d 6d 65 6e 74 5b 38 5d 7d 0d 0a 20 s_comment[8]}..
73e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
73f0: 6e 64 65 78 2b 2b 3b 0d 0a 20 20 20 20 20 20 20 ndex++;..
7400: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 }..
7410: 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a }.. }.. ..
7420: 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 20 20 return result;
7430: 20 20 0d 0a 7d 20 2f 2f 20 66 6f 73 73 69 6c 5f ..} // fossil_
7440: 67 65 74 4c 6f 67 0d 0a 0d 0a 66 75 6e 63 74 69 getLog....functi
7450: 6f 6e 20 66 6f 73 73 69 6c 5f 67 65 74 49 6e 66 on fossil_getInf
7460: 6f 28 70 61 74 68 54 6f 46 69 6c 65 2c 20 76 65 o(pathToFile, ve
7470: 72 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 72 65 r) {.. var re
7480: 73 75 6c 74 20 3d 20 7b 22 63 6f 6d 6d 65 6e 74 sult = {"comment
7490: 22 3a 22 22 2c 20 22 66 69 6c 65 73 22 3a 5b 5d ":"", "files":[]
74a0: 7d 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 }.. var rootC
74b0: 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 69 6c 5f atalog = fossil_
74c0: 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 getRootCatalog(p
74d0: 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 athToFile);..
74e0: 20 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 69 var PathToFossi
74f0: 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 69 lOutput = TempDi
7500: 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 75 r + "fossilstatu
7510: 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 s.txt" // ......
7520: d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 .... 1.. .......
7530: bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b . .. utf-8, ....
7540: d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 .......... .....
7550: b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 ... ............
7560: 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb fossil ........
7570: d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 .. .......... ..
7580: d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 .......... .....
7590: be 2e 20 0d 0a 20 20 20 20 76 61 72 20 50 61 74 .. .. var Pat
75a0: 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 hToBatFossil = T
75b0: 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c empDir + "fossil
75c0: 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 True.bat".. v
75d0: 61 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e ar TextDoc = v8N
75e0: 65 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 ew("TextDocument
75f0: 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 ");.. TextDoc
7600: 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 .AddLine('cd /d
7610: 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 "'+rootCatalog+'
7620: 22 27 29 0d 0a 20 20 20 20 2f 2f 76 61 72 20 d0 "').. //var .
7630: 9f d1 83 d1 82 d1 8c d0 9e d1 82 d0 bd d0 be d1 ................
7640: 81 d0 b8 d1 82 d0 b5 d0 bb d1 8c d0 bd d0 be d0 ................
7650: 9a d0 be d1 80 d0 bd d0 b5 d0 b2 d0 be d0 b3 d0 ................
7660: be d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0 ................
7670: b0 20 3d 20 70 61 74 68 54 6f 46 69 6c 65 2e 72 . = pathToFile.r
7680: 65 70 6c 61 63 65 28 72 6f 6f 74 43 61 74 61 6c eplace(rootCatal
7690: 6f 67 2b 27 5c 5c 27 2c 20 27 27 29 3b 0d 0a 20 og+'\\', '');..
76a0: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
76b0: 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 2b ne(PathToFossil+
76c0: 27 20 69 6e 66 6f 20 20 27 2b 76 65 72 20 2b 27 ' info '+ver +'
76d0: 20 3e 20 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 > "'+PathToFoss
76e0: 69 6c 4f 75 74 70 75 74 2b 27 22 27 29 0d 0a 20 ilOutput+'"')..
76f0: 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 TextDoc.Write
7700: 28 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c (PathToBatFossil
7710: 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 , 'cp866');..
7720: 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 ErrCode = WshSh
7730: 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 ell.Run('"'+Path
7740: 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c ToBatFossil+'"',
7750: 20 30 2c 20 31 29 0d 0a 20 20 20 20 54 65 78 74 0, 1).. Text
7760: 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 Doc.Clear();..
7770: 20 20 54 65 78 74 44 6f 63 2e 52 65 61 64 28 50 TextDoc.Read(P
7780: 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 athToFossilOutpu
7790: 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 t, "UTF-8");..
77a0: 20 20 72 65 73 75 6c 74 5b 22 63 6f 6d 6d 65 6e result["commen
77b0: 74 22 5d 20 3d 20 54 65 78 74 44 6f 63 2e 47 65 t"] = TextDoc.Ge
77c0: 74 54 65 78 74 28 29 3b 0d 0a 20 20 20 20 54 65 tText();.. Te
77d0: 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a xtDoc.Clear();..
77e0: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
77f0: 69 6e 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f ine('cd /d "'+ro
7800: 6f 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a otCatalog+'"')..
7810: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
7820: 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c ine(PathToFossil
7830: 2b 27 20 74 69 6d 65 6c 69 6e 65 20 27 2b 76 65 +' timeline '+ve
7840: 72 20 2b 27 20 2d 6e 20 31 20 2d 73 68 6f 77 66 r +' -n 1 -showf
7850: 69 6c 65 73 20 2d 74 20 63 69 20 3e 20 22 27 2b iles -t ci > "'+
7860: 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 PathToFossilOutp
7870: 75 74 2b 27 22 27 29 0d 0a 20 20 20 20 54 65 78 ut+'"').. Tex
7880: 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 tDoc.Write(PathT
7890: 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 oBatFossil, 'cp8
78a0: 36 36 27 29 3b 0d 0a 20 20 20 20 45 72 72 43 6f 66');.. ErrCo
78b0: 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e 52 75 de = WshShell.Ru
78c0: 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 74 46 n('"'+PathToBatF
78d0: 6f 73 73 69 6c 2b 27 22 27 2c 20 30 2c 20 31 29 ossil+'"', 0, 1)
78e0: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 43 6c .. TextDoc.Cl
78f0: 65 61 72 28 29 3b 0d 0a 20 20 20 20 54 65 78 74 ear();.. Text
7900: 44 6f 63 2e 52 65 61 64 28 50 61 74 68 54 6f 46 Doc.Read(PathToF
7910: 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 22 55 54 ossilOutput, "UT
7920: 46 2d 38 22 29 3b 0d 0a 20 20 20 20 69 66 20 28 F-8");.. if (
7930: 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e TextDoc.LineCoun
7940: 74 28 29 20 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 t() == 0) {..
7950: 20 20 20 20 20 2f 2f 4d 65 73 73 61 67 65 28 22 //Message("
7960: 20 30 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 72 0");.. r
7970: 65 74 75 72 6e 20 72 65 73 75 6c 74 20 0d 0a 20 eturn result ..
7980: 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 20 69 6e }.. var in
7990: 64 65 78 3d 30 3b 0d 0a 20 20 20 20 66 6f 72 20 dex=0;.. for
79a0: 28 76 61 72 20 69 3d 31 3b 20 69 3c 3d 54 65 78 (var i=1; i<=Tex
79b0: 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 tDoc.LineCount()
79c0: 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20 ; i++).. {..
79d0: 20 20 20 20 20 20 20 76 61 72 20 72 20 3d 20 54 var r = T
79e0: 65 78 74 44 6f 63 2e 47 65 74 4c 69 6e 65 28 69 extDoc.GetLine(i
79f0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2a 20 69 );.. /* i
7a00: 66 20 28 72 2e 6c 65 6e 67 74 68 20 3e 20 30 29 f (r.length > 0)
7a10: 20 26 26 20 28 72 5b 30 5d 3d 3d 27 46 27 29 20 && (r[0]=='F')
7a20: 7b 20 2f 2f d1 84 d0 b0 d0 b9 d0 bb 0d 0a 20 20 { //..........
7a30: 20 20 20 20 20 20 20 20 20 20 76 61 72 20 61 72 var ar
7a40: 20 3d 20 72 2e 73 70 6c 69 74 28 27 20 27 29 3b = r.split(' ');
7a50: 0d 0a 20 20 20 20 20 20 20 20 7d 20 2a 2f 0d 0a .. } */..
7a60: 20 20 20 20 20 20 20 20 2f 2f 69 66 20 28 72 2e //if (r.
7a70: 69 6e 64 65 78 4f 66 28 22 66 69 6c 65 20 6f 75 indexOf("file ou
7a80: 74 73 69 64 65 20 6f 66 22 29 21 3d 2d 31 29 20 tside of")!=-1)
7a90: 72 65 74 75 72 6e 20 72 65 73 75 6c 74 0d 0a 20 return result..
7aa0: 20 20 20 20 20 20 20 2f 2f 72 65 20 3d 20 6e 65 //re = ne
7ab0: 77 20 52 65 67 45 78 70 28 2f 28 46 29 5c 73 28 w RegExp(/(F)\s(
7ac0: 5c 53 2a 29 5c 73 28 5c 53 2a 29 2f 29 3b 0d 0a \S*)\s(\S*)/);..
7ad0: 20 20 20 20 20 20 20 20 72 65 20 3d 20 6e 65 77 re = new
7ae0: 20 52 65 67 45 78 70 28 2f 5c 73 2a 28 45 44 49 RegExp(/\s*(EDI
7af0: 54 45 44 7c 41 44 44 45 44 7c 44 45 4c 45 54 45 TED|ADDED|DELETE
7b00: 44 29 5c 73 28 2e 2a 29 2f 29 3b 0d 0a 20 20 20 D)\s(.*)/);..
7b10: 20 20 20 20 20 76 61 72 20 6d 61 74 68 65 73 20 var mathes
7b20: 3d 20 72 2e 6d 61 74 63 68 28 72 65 29 3b 0d 0a = r.match(re);..
7b30: 20 20 20 20 20 20 20 20 2f 2f 4d 65 73 73 61 67 //Messag
7b40: 65 28 22 20 31 22 29 3b 20 0d 0a 20 20 20 20 20 e(" 1"); ..
7b50: 20 20 20 69 66 20 28 6d 61 74 68 65 73 20 26 26 if (mathes &&
7b60: 20 6d 61 74 68 65 73 2e 6c 65 6e 67 74 68 29 20 mathes.length)
7b70: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d {.. .
7b80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 4d . //M
7b90: 65 73 73 61 67 65 28 22 20 32 22 20 2b 20 6d 61 essage(" 2" + ma
7ba0: 74 68 65 73 5b 31 5d 29 3b 0d 0a 20 20 20 20 20 thes[1]);..
7bb0: 20 20 20 20 20 20 20 20 2f 2f d0 bc d0 bb d0 9a //......
7bc0: d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2e 72 65 70 .............rep
7bd0: 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 27 5c 5c 27 lace(/\//g, '\\'
7be0: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 ).. f
7bf0: 75 6c 6c 70 61 74 68 66 69 6c 65 20 3d 20 6d 61 ullpathfile = ma
7c00: 74 68 65 73 5b 32 5d 2e 72 65 70 6c 61 63 65 28 thes[2].replace(
7c10: 2f 5c 5c 73 2f 67 2c 20 27 20 27 29 20 2f 2f d0 /\\s/g, ' ') //.
7c20: bf d1 80 d0 be d0 b1 d0 b5 d0 bb 20 d1 82 d0 b0 ........... ....
7c30: d0 ba 20 66 6f 73 73 69 6c 20 d0 be d1 82 d0 be .. fossil ......
7c40: d0 b1 d1 80 d0 b0 d0 b6 d0 b0 d0 b5 d1 82 2e 0d ................
7c50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 66 . //f
7c60: 75 6c 6c 70 61 74 68 66 69 6c 65 20 3d 20 66 75 ullpathfile = fu
7c70: 6c 6c 70 61 74 68 66 69 6c 65 2e 72 65 70 6c 61 llpathfile.repla
7c80: 63 65 28 2f 5c 2f 2f 67 2c 20 27 5c 5c 27 29 3b ce(/\//g, '\\');
7c90: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .. re
7ca0: 73 75 6c 74 5b 27 66 69 6c 65 73 27 5d 5b 69 6e sult['files'][in
7cb0: 64 65 78 5d 20 3d 20 7b 22 76 65 72 73 69 6f 6e dex] = {"version
7cc0: 22 3a 76 65 72 2c 20 22 66 69 6c 65 22 3a 27 27 ":ver, "file":''
7cd0: 2b 66 75 6c 6c 70 61 74 68 66 69 6c 65 2c 20 22 +fullpathfile, "
7ce0: 73 74 61 74 75 73 22 3a 6d 61 74 68 65 73 5b 31 status":mathes[1
7cf0: 5d 2c 20 22 66 75 6c 6c 70 61 74 68 22 3a 46 53 ], "fullpath":FS
7d00: 4f 2e 42 75 69 6c 64 50 61 74 68 28 72 6f 6f 74 O.BuildPath(root
7d10: 43 61 74 61 6c 6f 67 2c 20 66 75 6c 6c 70 61 74 Catalog, fullpat
7d20: 68 66 69 6c 65 2e 72 65 70 6c 61 63 65 28 2f 5c hfile.replace(/\
7d30: 2f 2f 67 2c 20 27 5c 5c 27 29 29 7d 0d 0a 20 20 //g, '\\'))}..
7d40: 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 2b index+
7d50: 2b 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 +;.. }..
7d60: 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 75 72 6e }.. return
7d70: 20 72 65 73 75 6c 74 0d 0a 7d 0d 0a 0d 0a 66 75 result..}....fu
7d80: 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 67 65 nction fossil_ge
7d90: 74 4c 69 73 74 42 72 61 6e 63 68 28 70 61 74 68 tListBranch(path
7da0: 54 6f 46 69 6c 65 2c 20 69 6e 64 65 78 29 20 7b ToFile, index) {
7db0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 73 75 .. .. resu
7dc0: 6c 74 20 3d 20 7b 22 76 61 6c 75 65 6c 69 73 74 lt = {"valuelist
7dd0: 22 3a 76 38 4e 65 77 28 22 56 61 6c 75 65 4c 69 ":v8New("ValueLi
7de0: 73 74 22 29 2c 20 22 69 6e 64 65 78 22 3a 2d 31 st"), "index":-1
7df0: 7d 0d 0a 20 20 20 20 2f 2f 72 65 73 75 6c 74 20 }.. //result
7e00: 3d 20 76 38 4e 65 77 28 22 56 61 6c 75 65 4c 69 = v8New("ValueLi
7e10: 73 74 22 29 3b 0d 0a 20 20 20 20 76 61 72 20 72 st");.. var r
7e20: 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 66 6f 73 ootCatalog = fos
7e30: 73 69 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c sil_getRootCatal
7e40: 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d og(pathToFile);.
7e50: 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 . var PathToF
7e60: 6f 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 ossilOutput = Te
7e70: 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 mpDir + "fossils
7e80: 74 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f tatus.txt" // ..
7e90: d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 ........ 1.. ...
7ea0: b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 ..... .. utf-8,
7eb0: d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 .............. .
7ec0: 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 ....... ........
7ed0: d1 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be .... fossil ....
7ee0: d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 ...... .........
7ef0: be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 . ............ .
7f00: b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 ...... .. var
7f10: 20 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c PathToBatFossil
7f20: 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f = TempDir + "fo
7f30: 73 73 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 ssilTrue.bat"..
7f40: 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d var TextDoc =
7f50: 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 v8New("TextDocu
7f60: 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 ment");.. Tex
7f70: 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 tDoc.AddLine('cd
7f80: 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c /d "'+rootCatal
7f90: 6f 67 2b 27 22 27 29 0d 0a 20 20 20 20 2f 2f 76 og+'"').. //v
7fa0: 61 72 20 d0 9f d1 83 d1 82 d1 8c d0 9e d1 82 d0 ar .............
7fb0: bd d0 be d1 81 d0 b8 d1 82 d0 b5 d0 bb d1 8c d0 ................
7fc0: bd d0 be d0 9a d0 be d1 80 d0 bd d0 b5 d0 b2 d0 ................
7fd0: be d0 b3 d0 be d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 ................
7fe0: be d0 b3 d0 b0 20 3d 20 70 61 74 68 54 6f 46 69 ..... = pathToFi
7ff0: 6c 65 2e 72 65 70 6c 61 63 65 28 72 6f 6f 74 43 le.replace(rootC
8000: 61 74 61 6c 6f 67 2b 27 5c 5c 27 2c 20 27 27 29 atalog+'\\', '')
8010: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ;.. TextDoc.A
8020: 64 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 ddLine(PathToFos
8030: 73 69 6c 2b 27 20 62 72 61 6e 63 68 20 20 3e 20 sil+' branch >
8040: 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f "'+PathToFossilO
8050: 75 74 70 75 74 2b 27 22 27 29 0d 0a 20 20 20 20 utput+'"')..
8060: 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 TextDoc.Write(Pa
8070: 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 thToBatFossil, '
8080: 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 45 72 cp866');.. Er
8090: 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c rCode = WshShell
80a0: 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 .Run('"'+PathToB
80b0: 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 2c atFossil+'"', 0,
80c0: 20 31 29 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 1).. TextDoc
80d0: 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 54 .Clear();.. T
80e0: 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 68 extDoc.Read(Path
80f0: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 ToFossilOutput,
8100: 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 76 "UTF-8");.. v
8110: 61 72 20 72 65 20 3d 20 6e 65 77 20 52 65 67 45 ar re = new RegE
8120: 78 70 28 2f 28 5c 73 2a 7c 5c 2a 5c 73 29 28 5c xp(/(\s*|\*\s)(\
8130: 53 2a 29 5c 6e 2f 67 29 3b 0d 0a 20 20 20 20 76 S*)\n/g);.. v
8140: 61 72 20 72 20 3d 20 54 65 78 74 44 6f 63 2e d0 ar r = TextDoc..
8150: 9f d0 be d0 bb d1 83 d1 87 d0 b8 d1 82 d1 8c d0 ................
8160: a2 d0 b5 d0 ba d1 81 d1 82 28 29 3b 0d 0a 20 20 .........();..
8170: 20 20 76 61 72 20 6d 61 74 63 68 65 73 3b 0d 0a var matches;..
8180: 20 20 20 20 76 61 72 20 69 6e 64 65 78 3d 30 3b var index=0;
8190: 0d 0a 20 20 20 20 2f 2f 64 65 62 75 67 67 65 72 .. //debugger
81a0: 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 28 6d ;.. while ((m
81b0: 61 74 63 68 65 73 20 3d 20 72 65 2e 65 78 65 63 atches = re.exec
81c0: 28 72 29 29 20 21 3d 20 6e 75 6c 6c 29 0d 0a 20 (r)) != null)..
81d0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 {.. re
81e0: 73 75 6c 74 5b 27 76 61 6c 75 65 6c 69 73 74 27 sult['valuelist'
81f0: 5d 2e 61 64 64 28 6d 61 74 63 68 65 73 5b 32 5d ].add(matches[2]
8200: 2c 20 6d 61 74 63 68 65 73 5b 32 5d 29 0d 0a 20 , matches[2])..
8210: 20 20 20 20 20 20 20 69 66 20 28 6d 61 74 63 68 if (match
8220: 65 73 5b 31 5d 2e 69 6e 64 65 78 4f 66 28 22 5c es[1].indexOf("\
8230: 2a 22 29 21 3d 2d 31 29 20 72 65 73 75 6c 74 5b *")!=-1) result[
8240: 22 69 6e 64 65 78 22 5d 3d 69 6e 64 65 78 3b 0d "index"]=index;.
8250: 0a 20 20 20 20 20 20 20 20 69 6e 64 65 78 2b 2b . index++
8260: 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 2f 2f ;.. }.. //
8270: d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8 d0 bc 20 d1 .............. .
8280: 81 d1 8e d0 b4 d0 b0 20 d0 ba d0 be d0 bc d0 bc ....... ........
8290: d0 b0 d0 bd d0 b4 d1 8b 20 d1 81 d0 be d0 b7 d0 ........ .......
82a0: b4 d0 b0 d0 bd d0 b8 d1 8f 20 d0 bd d0 be d0 b2 ......... ......
82b0: d0 be d0 b9 20 d0 b2 d0 b5 d1 82 d0 ba d0 b8 2e .... ...........
82c0: 2e 2e 0d 0a 20 20 20 20 72 65 73 75 6c 74 5b 27 .... result['
82d0: 76 61 6c 75 65 6c 69 73 74 27 5d 2e 61 64 64 28 valuelist'].add(
82e0: 22 4e 45 57 42 52 41 4e 43 48 22 2c 20 22 d0 9d "NEWBRANCH", "..
82f0: d0 be d0 b2 d0 b0 d1 8f 20 d0 b2 d0 b5 d1 82 d0 ........ .......
8300: ba d0 b0 22 29 3b 0d 0a 20 20 20 20 72 65 73 75 ...");.. resu
8310: 6c 74 5b 27 76 61 6c 75 65 6c 69 73 74 27 5d 2e lt['valuelist'].
8320: 61 64 64 28 22 4e 45 57 42 52 41 4e 43 48 50 52 add("NEWBRANCHPR
8330: 49 56 41 54 45 22 2c 20 22 d0 9d d0 be d0 b2 d0 IVATE", ".......
8340: b0 d1 8f 20 d0 bf d1 80 d0 b8 d0 b2 d0 b0 d1 82 ... ............
8350: d0 bd d0 b0 d1 8f 20 d0 b2 d0 b5 d1 82 d0 ba d0 ...... .........
8360: b0 22 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 .");.. ..
8370: 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0d 0a return result;..
8380: 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 ..}....funct
8390: 69 6f 6e 20 66 6f 73 73 69 6c 5f 73 77 69 74 68 ion fossil_swith
83a0: 42 72 61 6e 63 68 20 28 70 61 74 68 54 6f 46 69 Branch (pathToFi
83b0: 6c 65 2c 20 62 72 61 6e 63 68 29 20 7b 0d 0a 20 le, branch) {..
83c0: 20 20 20 0d 0a 20 20 20 20 69 66 20 28 28 62 72 .. if ((br
83d0: 61 6e 63 68 20 3d 3d 20 22 4e 45 57 42 52 41 4e anch == "NEWBRAN
83e0: 43 48 22 29 20 7c 7c 20 28 62 72 61 6e 63 68 20 CH") || (branch
83f0: 3d 3d 20 22 4e 45 57 42 52 41 4e 43 48 50 52 49 == "NEWBRANCHPRI
8400: 56 41 54 45 22 29 29 20 72 65 74 75 72 6e 20 66 VATE")) return f
8410: 6f 73 73 69 6c 5f 63 72 65 61 74 65 42 72 61 6e ossil_createBran
8420: 63 68 28 70 61 74 68 54 6f 46 69 6c 65 2c 20 62 ch(pathToFile, b
8430: 72 61 6e 63 68 29 3b 0d 0a 20 20 20 20 76 61 72 ranch);.. var
8440: 20 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 66 rootCatalog = f
8450: 6f 73 73 69 6c 5f 67 65 74 52 6f 6f 74 43 61 74 ossil_getRootCat
8460: 61 6c 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 29 alog(pathToFile)
8470: 3b 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 ;.. var PathT
8480: 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 oFossilOutput =
8490: 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 TempDir + "fossi
84a0: 6c 73 74 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 lstatus.txt" //
84b0: d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 .......... 1.. .
84c0: 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 ....... .. utf-8
84d0: 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc , ..............
84e0: 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 ........ ......
84f0: d1 82 d1 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf ...... fossil ..
8500: d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 ........ .......
8510: b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc ... ............
8520: 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 ....... .. v
8530: 61 72 20 50 61 74 68 54 6f 42 61 74 46 6f 73 73 ar PathToBatFoss
8540: 69 6c 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 il = TempDir + "
8550: 66 6f 73 73 69 6c 54 72 75 65 2e 62 61 74 22 0d fossilTrue.bat".
8560: 0a 20 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 . var TextDoc
8570: 20 3d 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f = v8New("TextDo
8580: 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 cument");.. T
8590: 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 extDoc.AddLine('
85a0: 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 cd /d "'+rootCat
85b0: 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 20 20 2f alog+'"').. /
85c0: 2f 76 61 72 20 d0 9f d1 83 d1 82 d1 8c d0 9e d1 /var ...........
85d0: 82 d0 bd d0 be d1 81 d0 b8 d1 82 d0 b5 d0 bb d1 ................
85e0: 8c d0 bd d0 be d0 9a d0 be d1 80 d0 bd d0 b5 d0 ................
85f0: b2 d0 be d0 b3 d0 be d0 9a d0 b0 d1 82 d0 b0 d0 ................
8600: bb d0 be d0 b3 d0 b0 20 3d 20 70 61 74 68 54 6f ....... = pathTo
8610: 46 69 6c 65 2e 72 65 70 6c 61 63 65 28 72 6f 6f File.replace(roo
8620: 74 43 61 74 61 6c 6f 67 2b 27 5c 5c 27 2c 20 27 tCatalog+'\\', '
8630: 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 ');.. TextDoc
8640: 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 .AddLine(PathToF
8650: 6f 73 73 69 6c 2b 27 20 75 70 64 61 74 65 20 27 ossil+' update '
8660: 2b 20 62 72 61 6e 63 68 20 2b 27 20 3e 20 22 27 + branch +' > "'
8670: 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 +PathToFossilOut
8680: 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 20 20 54 put+'"');.. T
8690: 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 extDoc.Write(Pat
86a0: 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 hToBatFossil, 'c
86b0: 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 45 72 72 p866');.. Err
86c0: 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e Code = WshShell.
86d0: 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 Run('"'+PathToBa
86e0: 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 2c 20 tFossil+'"', 0,
86f0: 31 29 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 1).. TextDoc.
8700: 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 72 65 Clear();.. re
8710: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d turn true;..}...
8720: 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c .function fossil
8730: 5f 63 72 65 61 74 65 42 72 61 6e 63 68 28 70 61 _createBranch(pa
8740: 74 68 54 6f 46 69 6c 65 2c 20 62 72 61 6e 63 68 thToFile, branch
8750: 2c 20 74 79 70 65 29 20 7b 0d 0a 20 20 20 20 0d , type) {.. .
8760: 0a 20 20 20 20 76 61 72 20 6e 61 6d 65 20 3d 20 . var name =
8770: 22 22 3b 0d 0a 20 20 20 20 76 61 72 20 63 68 65 "";.. var che
8780: 63 6b 69 6e 20 3d 20 22 22 3b 0d 0a 20 20 20 20 ckin = "";..
8790: 69 66 20 28 74 79 70 65 20 3d 3d 20 75 6e 64 65 if (type == unde
87a0: 66 69 6e 65 64 29 20 74 79 70 65 20 3d 20 27 27 fined) type = ''
87b0: 3b 0d 0a 20 20 20 20 69 66 20 28 62 72 61 6e 63 ;.. if (branc
87c0: 68 20 3d 3d 20 22 4e 45 57 42 52 41 4e 43 48 50 h == "NEWBRANCHP
87d0: 52 49 56 41 54 45 22 29 20 7b 0d 0a 20 20 20 20 RIVATE") {..
87e0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 74 79 .. ty
87f0: 70 65 20 3d 20 22 2d 2d 70 72 69 76 61 74 65 22 pe = "--private"
8800: 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a ;.. }.. ..
8810: 20 20 20 20 69 66 20 28 28 62 72 61 6e 63 68 20 if ((branch
8820: 3d 3d 20 22 4e 45 57 42 52 41 4e 43 48 22 29 20 == "NEWBRANCH")
8830: 7c 7c 20 28 62 72 61 6e 63 68 20 3d 3d 20 22 4e || (branch == "N
8840: 45 57 42 52 41 4e 43 48 50 52 49 56 41 54 45 22 EWBRANCHPRIVATE"
8850: 29 29 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 )){.. var
8860: 20 76 62 73 20 3d 20 61 64 64 69 6e 73 2e 62 79 vbs = addins.by
8870: 55 6e 69 71 75 65 4e 61 6d 65 28 22 76 62 73 22 UniqueName("vbs"
8880: 29 2e 6f 62 6a 65 63 74 0d 0a 20 20 20 20 20 20 ).object..
8890: 20 20 76 62 73 2e 76 61 72 30 20 3d 20 22 22 3b vbs.var0 = "";
88a0: 20 76 62 73 2e 76 61 72 31 20 3d 20 22 d0 92 d0 vbs.var1 = "...
88b0: b2 d0 b5 d0 b4 d0 b8 d1 82 d0 b5 20 d0 b8 d0 bc ........... ....
88c0: d1 8f 20 d0 b2 d0 b5 d1 82 d0 ba d0 b8 22 3b 20 .. ..........";
88d0: 76 62 73 2e 76 61 72 32 20 3d 20 30 2c 20 76 62 vbs.var2 = 0, vb
88e0: 73 2e 76 61 72 33 20 3d 20 66 61 6c 73 65 3b 0d s.var3 = false;.
88f0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 76 62 73 . if (vbs
8900: 2e 44 6f 45 76 61 6c 28 22 49 6e 70 75 74 53 74 .DoEval("InputSt
8910: 72 69 6e 67 28 76 61 72 30 2c 20 76 61 72 31 2c ring(var0, var1,
8920: 20 76 61 72 32 2c 20 76 61 72 33 29 22 29 29 20 var2, var3)"))
8930: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 {.. v
8940: 61 72 20 6d 65 73 73 61 67 65 20 20 3d 20 76 62 ar message = vb
8950: 73 2e 76 61 72 30 3b 0d 0a 20 20 20 20 20 20 20 s.var0;..
8960: 20 20 20 20 20 6e 61 6d 65 20 3d 20 6d 65 73 73 name = mess
8970: 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d age;.. }.
8980: 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 . } else {..
8990: 20 20 20 20 20 20 20 6e 61 6d 65 20 3d 20 62 72 name = br
89a0: 61 6e 63 68 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 anch;.. }..
89b0: 20 20 0d 0a 20 20 20 20 69 66 20 28 6e 61 6d 65 .. if (name
89c0: 2e 6c 65 6e 67 74 68 3d 3d 30 29 20 7b 0d 0a 20 .length==0) {..
89d0: 20 20 20 20 20 20 20 4d 65 73 73 61 67 65 28 27 Message('
89e0: d0 98 d0 bc d1 8f 20 d0 b2 d0 b5 d1 82 d0 ba d0 ...... .........
89f0: b8 20 d0 b4 d0 bb d1 8f 20 d1 81 d0 be d0 b7 d0 . ...... .......
8a00: b4 d0 b0 d0 bd d0 b8 d1 8f 20 d0 bf d1 83 d1 81 ......... ......
8a10: d1 82 d0 be d0 b5 2e 27 29 3b 0d 0a 20 20 20 20 .......');..
8a20: 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 return false
8a30: 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a ;.. }.. ..
8a40: 20 20 20 20 76 61 72 20 72 6f 6f 74 43 61 74 61 var rootCata
8a50: 6c 6f 67 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 log = fossil_get
8a60: 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 68 RootCatalog(path
8a70: 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 ToFile);.. va
8a80: 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 r PathToFossilOu
8a90: 74 70 75 74 20 3d 20 54 65 6d 70 44 69 72 20 2b tput = TempDir +
8aa0: 20 22 66 6f 73 73 69 6c 73 74 61 74 75 73 2e 74 "fossilstatus.t
8ab0: 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 xt" // .........
8ac0: bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 . 1.. ........ .
8ad0: b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 . utf-8, .......
8ae0: be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 ....... ........
8af0: 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f ............ fo
8b00: 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 ssil ..........
8b10: d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 .......... .....
8b20: 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 ....... .......
8b30: 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 6f .. var PathTo
8b40: 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 6d 70 BatFossil = Temp
8b50: 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 72 75 Dir + "fossilTru
8b60: 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 61 72 20 e.bat".. var
8b70: 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 TextDoc = v8New(
8b80: 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b "TextDocument");
8b90: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 .. TextDoc.Ad
8ba0: 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 22 27 2b dLine('cd /d "'+
8bb0: 72 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 rootCatalog+'"')
8bc0: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ;.. TextDoc.A
8bd0: 64 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 ddLine(PathToFos
8be0: 73 69 6c 20 2b 27 20 73 74 61 74 75 73 20 3e 20 sil +' status >
8bf0: 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f "'+PathToFossilO
8c00: 75 74 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 20 utput+'"');..
8c10: 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 TextDoc.Write(P
8c20: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 athToBatFossil,
8c30: 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 45 'cp866');.. E
8c40: 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c rrCode = WshShel
8c50: 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f l.Run('"'+PathTo
8c60: 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 BatFossil+'"', 0
8c70: 2c 20 31 29 0d 0a 20 20 20 20 54 65 78 74 44 6f , 1).. TextDo
8c80: 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 c.Clear();..
8c90: 54 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 TextDoc.Read(Pat
8ca0: 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c hToFossilOutput,
8cb0: 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 "UTF-8");..
8cc0: 76 61 72 20 72 65 20 3d 20 6e 65 77 20 52 65 67 var re = new Reg
8cd0: 45 78 70 28 2f 5e 63 68 65 63 6b 6f 75 74 3a 5c Exp(/^checkout:\
8ce0: 73 2a 28 5c 77 2a 29 5c 73 2a 2f 6d 29 3b 0d 0a s*(\w*)\s*/m);..
8cf0: 20 20 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 var r = Text
8d00: 44 6f 63 2e d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 Doc.............
8d10: d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 82 28 29 ..............()
8d20: 3b 0d 0a 20 20 20 20 76 61 72 20 6d 61 74 63 68 ;.. var match
8d30: 65 73 20 3d 20 72 2e 6d 61 74 63 68 28 72 65 29 es = r.match(re)
8d40: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69 66 20 ;.. .. if
8d50: 28 6d 61 74 63 68 65 73 20 26 26 20 6d 61 74 63 (matches && matc
8d60: 68 65 73 2e 6c 65 6e 67 74 68 29 20 7b 0d 0a 20 hes.length) {..
8d70: 20 20 20 20 20 20 20 63 68 65 63 6b 69 6e 20 3d checkin =
8d80: 20 6d 61 74 63 68 65 73 5b 31 5d 3b 0d 0a 20 20 matches[1];..
8d90: 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 54 }.. .. T
8da0: 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 extDoc.AddLine('
8db0: 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 cd /d "'+rootCat
8dc0: 61 6c 6f 67 2b 27 22 27 29 3b 0d 0a 20 20 20 20 alog+'"');..
8dd0: 2f 2f 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e //TextDoc.AddLin
8de0: 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 2b e(PathToFossil +
8df0: 27 20 62 72 61 6e 63 68 20 6e 65 77 20 27 2b 6e ' branch new '+n
8e00: 61 6d 65 2b 27 20 27 2b 63 68 65 63 6b 69 6e 2b ame+' '+checkin+
8e10: 27 20 27 2b 74 79 70 65 2b 27 20 3e 20 22 27 2b ' '+type+' > "'+
8e20: 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 PathToFossilOutp
8e30: 75 74 2b 27 22 27 29 3b 0d 0a 20 20 20 20 54 65 ut+'"');.. Te
8e40: 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 xtDoc.AddLine(Pa
8e50: 74 68 54 6f 46 6f 73 73 69 6c 20 2b 27 20 62 72 thToFossil +' br
8e60: 61 6e 63 68 20 6e 65 77 20 27 2b 6e 61 6d 65 2b anch new '+name+
8e70: 27 20 27 2b 63 68 65 63 6b 69 6e 2b 27 20 27 2b ' '+checkin+' '+
8e80: 74 79 70 65 29 3b 0d 0a 20 20 20 20 54 65 78 74 type);.. Text
8e90: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 65 78 69 Doc.AddLine('exi
8ea0: 74 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f t');.. TextDo
8eb0: 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 61 c.Write(PathToBa
8ec0: 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 27 tFossil, 'cp866'
8ed0: 29 3b 0d 0a 20 20 20 20 45 72 72 43 6f 64 65 20 );.. ErrCode
8ee0: 3d 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 = WshShell.Run('
8ef0: 22 27 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 73 "'+PathToBatFoss
8f00: 69 6c 2b 27 22 27 2c 20 31 2c 20 31 29 3b 0d 0a il+'"', 1, 1);..
8f10: 20 20 20 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 TextDoc.Clea
8f20: 72 28 29 3b 0d 0a 20 20 20 20 66 6f 73 73 69 6c r();.. fossil
8f30: 5f 73 77 69 74 68 42 72 61 6e 63 68 28 70 61 74 _swithBranch(pat
8f40: 68 54 6f 46 69 6c 65 2c 20 6e 61 6d 65 29 3b 0d hToFile, name);.
8f50: 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 74 75 72 . .. retur
8f60: 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 66 75 n true;..}....fu
8f70: 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 67 65 nction fossil_ge
8f80: 74 4d 69 73 73 69 6e 67 46 69 6c 65 73 28 70 61 tMissingFiles(pa
8f90: 74 68 54 6f 46 69 6c 65 29 20 7b 0d 0a 20 20 20 thToFile) {..
8fa0: 20 76 61 72 20 d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 var ...........
8fb0: bb d0 be d0 b3 20 3d 20 70 61 74 68 54 6f 46 69 ..... = pathToFi
8fc0: 6c 65 0d 0a 20 20 20 20 76 61 72 20 72 65 73 75 le.. var resu
8fd0: 6c 74 20 3d 20 5b 5d 0d 0a 20 20 20 20 69 66 20 lt = [].. if
8fe0: 28 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 (...............
8ff0: 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 ................
9000: bb d0 be d0 b2 d0 98 d0 a1 d1 82 d0 b0 d1 82 d1 ................
9010: 83 d1 81 d0 be d0 b2 5b d0 bb d0 9a d0 b0 d1 82 .......[........
9020: d0 b0 d0 bb d0 be d0 b3 5d 20 3d 3d 20 75 6e 64 ........] == und
9030: 65 66 69 6e 65 64 29 20 72 65 74 75 72 6e 20 72 efined) return r
9040: 65 73 75 6c 74 0d 0a 20 20 20 20 d0 a1 d0 be d0 esult.. .....
9050: be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 d0 b8 d0 ................
9060: b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 20 3d 20 ............. =
9070: d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 ................
9080: d1 82 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb ................
9090: d0 be d0 b2 d0 98 d0 a1 d1 82 d0 b0 d1 82 d1 83 ................
90a0: d1 81 d0 be d0 b2 5b d0 bb d0 9a d0 b0 d1 82 d0 ......[.........
90b0: b0 d0 bb d0 be d0 b3 5d 3b 0d 0a 20 20 20 20 69 .......];.. i
90c0: 66 20 28 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 f (.............
90d0: 82 d1 81 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 ................
90e0: bb d0 be d0 b2 20 3d 3d 20 75 6e 64 65 66 69 6e ..... == undefin
90f0: 65 64 29 20 72 65 74 75 72 6e 20 72 65 73 75 6c ed) return resul
9100: 74 0d 0a 20 20 20 20 76 61 72 20 69 6e 64 65 78 t.. var index
9110: 20 3d 20 30 3b 0d 0a 20 20 20 20 66 6f 72 20 28 = 0;.. for (
9120: 76 61 72 20 6b 65 79 20 69 6e 20 d0 a1 d0 be d0 var key in .....
9130: be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 d0 b8 d0 ................
9140: b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 29 7b 0d .............){.
9150: 0a 20 20 20 20 20 20 20 20 69 66 20 28 d0 a1 d0 . if (...
9160: be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 d0 ................
9170: b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 5b ...............[
9180: 6b 65 79 5d 3d 3d 22 44 45 4c 45 54 45 44 22 29 key]=="DELETED")
9190: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
91a0: 72 65 73 75 6c 74 5b 69 6e 64 65 78 5d 20 3d 20 result[index] =
91b0: 6b 65 79 2e 72 65 70 6c 61 63 65 28 d0 bb d0 9a key.replace(....
91c0: d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2b 22 5c 5c ............+"\\
91d0: 22 2c 20 27 27 29 3b 0d 0a 20 20 20 20 20 20 20 ", '');..
91e0: 20 20 20 20 20 69 6e 64 65 78 2b 2b 3b 0d 0a 20 index++;..
91f0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d }.. }.
9200: 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 . return resu
9210: 6c 74 0d 0a 7d 0d 0a 0d 0a 0d 0a 66 75 6e 63 74 lt..}......funct
9220: 69 6f 6e 20 42 61 63 6b 65 6e 64 5f 66 6f 73 73 ion Backend_foss
9230: 69 6c 28 63 6f 6d 6d 61 6e 64 2c 20 70 61 72 61 il(command, para
9240: 6d 31 2c 20 70 61 72 61 6d 32 29 20 7b 0d 0a 20 m1, param2) {..
9250: 20 20 20 76 61 72 20 72 65 73 75 6c 74 20 3d 20 var result =
9260: 66 61 6c 73 65 3b 0d 0a 20 20 20 20 73 77 69 74 false;.. swit
9270: 63 68 20 28 63 6f 6d 6d 61 6e 64 29 20 0d 0a 20 ch (command) ..
9280: 20 20 20 7b 0d 0a 20 20 20 20 63 61 73 65 20 22 {.. case "
9290: 43 41 54 41 4c 4f 47 53 54 41 54 55 53 22 3a 0d CATALOGSTATUS":.
92a0: 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 94 d0 be . // ....
92b0: d0 b1 d0 b0 d0 b2 d0 bb d1 8f d0 b5 d0 bc 20 d0 .............. .
92c0: b2 20 d1 85 d0 b2 d0 be d1 81 d1 82 20 d0 bf d0 . .......... ...
92d0: be d0 b4 d0 bf d0 b8 d1 81 d1 8c 2e 0d 0a 20 20 ..............
92e0: 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 66 result = f
92f0: 6f 73 73 69 6c 5f 67 65 74 53 74 61 74 75 73 46 ossil_getStatusF
9300: 6f 72 43 61 74 61 6c 6f 67 28 70 61 72 61 6d 31 orCatalog(param1
9310: 2c 20 22 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 , "");..
9320: 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 65 break;.. case
9330: 20 22 46 49 4c 45 53 54 41 54 55 53 22 3a 0d 0a "FILESTATUS":..
9340: 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d result =
9350: 20 66 6f 73 73 69 6c 5f 67 65 74 46 69 6c 65 53 fossil_getFileS
9360: 74 61 74 75 73 28 70 61 72 61 6d 31 2c 20 70 61 tatus(param1, pa
9370: 72 61 6d 32 29 0d 0a 20 20 20 20 20 20 20 20 62 ram2).. b
9380: 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 65 20 reak;.. case
9390: 22 47 45 54 46 49 4c 45 53 44 45 4c 45 54 45 44 "GETFILESDELETED
93a0: 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 ":.. resu
93b0: 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 4d lt = fossil_getM
93c0: 69 73 73 69 6e 67 46 69 6c 65 73 28 70 61 72 61 issingFiles(para
93d0: 6d 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 72 m1);.. br
93e0: 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 65 20 22 eak;.. case "
93f0: 44 49 46 46 22 3a 0d 0a 20 20 20 20 20 20 20 20 DIFF":..
9400: 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f result = fossil_
9410: 67 65 74 46 69 6c 65 50 61 74 68 54 6f 44 69 66 getFilePathToDif
9420: 66 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d 32 f(param1, param2
9430: 29 0d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b ).. break
9440: 3b 0d 0a 20 20 20 20 63 61 73 65 20 22 41 44 44 ;.. case "ADD
9450: 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 ":.. resu
9460: 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 61 64 64 28 lt = fossil_add(
9470: 70 61 72 61 6d 31 2c 20 70 61 72 61 6d 32 29 0d param1, param2).
9480: 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d . break;.
9490: 0a 20 20 20 20 63 61 73 65 20 22 54 45 53 54 22 . case "TEST"
94a0: 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c :.. resul
94b0: 74 20 3d 20 66 6f 73 73 69 6c 5f 74 65 73 74 28 t = fossil_test(
94c0: 70 61 72 61 6d 31 29 0d 0a 20 20 20 20 20 20 20 param1)..
94d0: 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 break;.. cas
94e0: 65 20 22 52 55 4e 22 3a 0d 0a 20 20 20 20 20 20 e "RUN":..
94f0: 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 result = fossi
9500: 6c 5f 72 75 6e 28 70 61 72 61 6d 31 2c 20 70 61 l_run(param1, pa
9510: 72 61 6d 32 29 0d 0a 20 20 20 20 20 20 20 20 62 ram2).. b
9520: 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 65 20 reak;.. case
9530: 22 53 48 4f 57 4c 4f 47 22 3a 0d 0a 20 20 20 20 "SHOWLOG":..
9540: 20 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 result = fos
9550: 73 69 6c 5f 73 68 6f 77 6c 6f 67 28 70 61 72 61 sil_showlog(para
9560: 6d 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 72 m1);.. br
9570: 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 53 eak.. case "S
9580: 48 4f 57 44 49 46 46 22 3a 0d 0a 20 20 20 20 20 HOWDIFF":..
9590: 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 result = foss
95a0: 69 6c 5f 67 65 74 46 69 6c 65 50 61 74 68 54 6f il_getFilePathTo
95b0: 44 69 66 66 28 70 61 72 61 6d 31 2c 20 70 61 72 Diff(param1, par
95c0: 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 am2);.. b
95d0: 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 reak.. case "
95e0: 44 45 4c 45 54 45 22 3a 0d 0a 20 20 20 20 20 20 DELETE":..
95f0: 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 result = fossi
9600: 6c 5f 64 65 6c 65 74 65 28 70 61 72 61 6d 31 29 l_delete(param1)
9610: 0d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d .. break.
9620: 0a 20 20 20 20 63 61 73 65 20 22 52 45 56 45 52 . case "REVER
9630: 54 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 T":.. res
9640: 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 72 65 76 ult = fossil_rev
9650: 65 72 74 28 70 61 72 61 6d 31 2c 20 70 61 72 61 ert(param1, para
9660: 6d 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 72 m2);.. br
9670: 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 43 eak.. case "C
9680: 4f 4d 4d 49 54 22 3a 0d 0a 20 20 20 20 20 20 20 OMMIT":..
9690: 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c result = fossil
96a0: 5f 63 6f 6d 6d 69 74 28 70 61 72 61 6d 31 2c 20 _commit(param1,
96b0: 70 61 72 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 param2);..
96c0: 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 break.. cas
96d0: 65 20 22 47 45 54 46 49 4c 45 41 54 52 45 56 49 e "GETFILEATREVI
96e0: 53 49 4f 4e 22 3a 0d 0a 20 20 20 20 20 20 20 20 SION":..
96f0: 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f result = fossil_
9700: 67 65 74 46 69 6c 65 41 74 52 65 76 69 73 69 6f getFileAtRevisio
9710: 6e 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d 32 n(param1, param2
9720: 29 0d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b ).. break
9730: 0d 0a 20 20 20 20 63 61 73 65 20 22 47 45 54 4c .. case "GETL
9740: 4f 47 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 OG":.. re
9750: 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 67 65 sult = fossil_ge
9760: 74 4c 6f 67 28 70 61 72 61 6d 31 2c 20 70 61 72 tLog(param1, par
9770: 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 am2);.. b
9780: 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 reak.. case "
9790: 47 45 54 49 4e 46 4f 22 3a 0d 0a 20 20 20 20 20 GETINFO":..
97a0: 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 result = foss
97b0: 69 6c 5f 67 65 74 49 6e 66 6f 28 70 61 72 61 6d il_getInfo(param
97c0: 31 2c 20 70 61 72 61 6d 32 29 3b 0d 0a 20 20 20 1, param2);..
97d0: 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 break..
97e0: 63 61 73 65 20 22 47 45 54 4c 49 53 54 42 52 41 case "GETLISTBRA
97f0: 4e 43 48 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 NCH":.. r
9800: 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 67 esult = fossil_g
9810: 65 74 4c 69 73 74 42 72 61 6e 63 68 28 70 61 72 etListBranch(par
9820: 61 6d 31 29 3b 20 2f 2f d0 b2 d0 be d0 b7 d0 b2 am1); //........
9830: d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0 bc 20 72 65 73 ............ res
9840: 75 6c 74 20 7b 22 76 61 6c 75 65 6c 69 73 74 22 ult {"valuelist"
9850: 3a 76 38 4e 65 77 28 22 56 61 6c 75 65 4c 69 73 :v8New("ValueLis
9860: 74 22 29 2c 20 22 69 6e 64 65 78 22 3a 20 d0 b8 t"), "index": ..
9870: d0 bd d0 b4 d0 b5 d0 ba d1 81 20 d0 b2 d0 b5 d1 .......... .....
9880: 82 d0 ba d0 b8 20 d1 82 d0 b5 d0 ba d1 83 d1 89 ..... ..........
9890: d0 b5 d0 b9 7d 0d 0a 20 20 20 20 20 20 20 20 62 ....}.. b
98a0: 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 reak.. case "
98b0: 53 57 49 54 48 42 52 41 4e 43 48 22 3a 0d 0a 20 SWITHBRANCH":..
98c0: 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 result =
98d0: 66 6f 73 73 69 6c 5f 73 77 69 74 68 42 72 61 6e fossil_swithBran
98e0: 63 68 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d ch(param1, param
98f0: 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 62 72 65 2);.. bre
9900: 61 6b 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 ak;.. }..
9910: 72 65 74 75 72 6e 20 72 65 73 75 6c 74 0d 0a 7d return result..}
9920: 20 2f 2f 42 61 63 6b 65 6e 64 5f 66 6f 73 73 69 //Backend_fossi
9930: 6c 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 47 65 l....function Ge
9940: 74 42 61 63 6b 65 6e 64 28 29 20 7b 0d 0a 20 20 tBackend() {..
9950: 20 20 72 65 74 75 72 6e 20 42 61 63 6b 65 6e 64 return Backend
9960: 5f 66 6f 73 73 69 6c 0d 0a 7d 20 2f 2f 47 65 74 _fossil..} //Get
9970: 42 61 63 6b 65 6e 64 0d 0a 0d 0a 66 75 6e 63 74 Backend....funct
9980: 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 4d 61 ion getDefaultMa
9990: 63 72 6f 73 28 29 20 7b 0d 0a 20 20 20 20 72 65 cros() {.. re
99a0: 74 75 72 6e 20 27 d0 9d d0 b0 d1 81 d1 82 d1 80 turn '..........
99b0: d0 be d0 ba d0 b0 46 6f 73 73 69 6c 27 0d 0a 7d ......Fossil'..}
99c0: 20 2f 2f 67 65 74 44 65 66 61 75 6c 74 4d 61 63 //getDefaultMac
99d0: 72 6f 73 0d 0a ros..