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 69 66 20 28 72 65 76 2e 6c 65 6e . if (rev.len
3370: 67 74 68 20 21 3d 30 29 20 7b 0d 0a 20 20 20 20 gth !=0) {..
3380: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 66 69 .. var fi
3390: 6c 65 72 65 76 20 3d 20 46 53 4f 2e 42 75 69 6c lerev = FSO.Buil
33a0: 64 50 61 74 68 28 54 65 6d 70 44 69 72 2c 20 72 dPath(TempDir, r
33b0: 65 76 2b 66 2e d0 98 d0 bc d1 8f 29 3b 0d 0a 20 ev+f.......);..
33c0: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
33d0: 20 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 .. TextD
33e0: 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f oc.AddLine('cd /
33f0: 64 20 22 27 20 2b 72 6f 6f 74 43 61 74 61 6c 6f d "' +rootCatalo
3400: 67 20 2b 27 22 27 29 0d 0a 20 20 20 20 20 20 20 g +'"')..
3410: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
3420: 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 2b 27 20 (PathToFossil+'
3430: 72 65 76 65 72 74 20 2d 72 20 27 2b 72 65 76 20 revert -r '+rev
3440: 2b 27 20 22 27 2b 70 61 74 68 54 6f 46 69 6c 65 +' "'+pathToFile
3450: 20 2b 27 22 20 27 29 0d 0a 20 20 20 20 20 20 20 +'" ')..
3460: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
3470: 28 27 63 6f 70 79 20 2f 59 20 22 27 2b 70 61 74 ('copy /Y "'+pat
3480: 68 54 6f 46 69 6c 65 20 2b 27 22 20 22 27 2b 66 hToFile +'" "'+f
3490: 69 6c 65 72 65 76 2b 27 22 27 29 0d 0a 20 20 20 ilerev+'"')..
34a0: 20 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 TextDoc.Add
34b0: 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 Line(PathToFossi
34c0: 6c 2b 27 20 75 6e 64 6f 20 22 27 2b 70 61 74 68 l+' undo "'+path
34d0: 54 6f 46 69 6c 65 20 2b 27 22 20 27 29 0d 0a 20 ToFile +'" ')..
34e0: 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 57 TextDoc.W
34f0: 72 69 74 65 28 50 61 74 68 54 6f 42 61 74 46 6f rite(PathToBatFo
3500: 73 73 69 6c 2c 20 27 63 70 38 36 36 27 29 3b 0d ssil, 'cp866');.
3510: 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 . TextDoc
3520: 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 20 .Clear();..
3530: 20 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 ErrCode = Wsh
3540: 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 Shell.Run('"'+Pa
3550: 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 thToBatFossil+'"
3560: 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 20 20 ', 0, 1)..
3570: 20 20 72 65 74 75 72 6e 20 66 69 6c 65 72 65 76 return filerev
3580: 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 ;.. }.. re
3590: 74 75 72 6e 20 6e 75 6c 6c 0d 0a 7d 20 2f 2f 66 turn null..} //f
35a0: 6f 73 73 69 6c 5f 67 65 74 46 69 6c 65 41 74 52 ossil_getFileAtR
35b0: 65 76 69 73 69 6f 6e 0d 0a 0d 0a 66 75 6e 63 74 evision....funct
35c0: 69 6f 6e 20 66 6f 73 73 69 6c 5f 67 65 74 46 69 ion fossil_getFi
35d0: 6c 65 50 61 74 68 54 6f 44 69 66 66 28 70 61 72 lePathToDiff(par
35e0: 61 6d 31 2c 20 70 61 72 61 6d 32 29 20 7b 20 2f am1, param2) { /
35f0: 2f d1 82 d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f 20 /..............
3600: d0 b2 d0 b5 d1 80 d1 81 d0 b8 d1 8f 20 d1 84 d0 ............ ...
3610: b0 d0 b9 d0 bb d0 b0 20 d1 81 20 d0 bf d1 80 d0 ....... .. .....
3620: b5 d0 b4 d1 8b d0 b4 d1 83 d1 89 d0 b5 d0 b9 2e ................
3630: 2e 2e 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 .... .. va
3640: 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 r PathToFossilOu
3650: 74 70 75 74 20 3d 20 54 65 6d 70 44 69 72 20 2b tput = TempDir +
3660: 20 22 66 6f 73 73 69 6c 73 74 61 74 75 73 2e 74 "fossilstatus.t
3670: 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 xt" // .........
3680: bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 . 1.. ........ .
3690: b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 . utf-8, .......
36a0: be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 ....... ........
36b0: 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f ............ fo
36c0: 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 ssil ..........
36d0: d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 .......... .....
36e0: 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 ....... .......
36f0: 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 6f .. var PathTo
3700: 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 6d 70 BatFossil = Temp
3710: 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 72 75 Dir + "fossilTru
3720: 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 61 72 20 e.bat".. var
3730: 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 TextDoc = v8New(
3740: 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b "TextDocument");
3750: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e d0 97 .. TextDoc...
3760: d0 b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c 28 50 ..............(P
3770: 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 athToFossilOutpu
3780: 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 t, "UTF-8");..
3790: 20 20 2f 2f 20 d0 b2 d0 be d0 b7 d0 b2 d1 80 d0 // ...........
37a0: b0 d1 89 d0 b0 d1 82 d1 8c 20 d0 b1 d1 83 d0 b4 ......... ......
37b0: d0 b5 d0 bc 20 d1 81 d1 82 d1 80 d1 83 d0 ba d1 .... ...........
37c0: 82 d1 80 d1 83 2c 20 70 61 74 68 31 20 d0 b8 20 ....., path1 ..
37d0: 70 61 74 68 32 20 0d 0a 20 20 20 20 76 61 72 20 path2 .. var
37e0: 70 61 74 68 54 6f 46 69 6c 65 20 3d 20 70 61 72 pathToFile = par
37f0: 61 6d 31 3b 0d 0a 20 20 20 20 76 61 72 20 72 6f am1;.. var ro
3800: 6f 74 43 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 otCatalog = foss
3810: 69 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f il_getRootCatalo
3820: 67 28 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a g(pathToFile);..
3830: 20 20 20 20 70 61 72 61 6d 32 2e 69 6e 73 65 72 param2.inser
3840: 74 28 22 70 61 74 68 31 22 2c 20 70 61 74 68 54 t("path1", pathT
3850: 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 70 61 72 oFile);.. par
3860: 61 6d 32 2e 69 6e 73 65 72 74 28 22 70 61 74 68 am2.insert("path
3870: 32 22 2c 20 22 22 29 3b 0d 0a 20 20 20 20 2f 2a 2", "");.. /*
3880: 20 0d 0a 0d 0a d0 9f d0 be d0 ba d0 b0 20 d0 bd ............ ..
3890: d0 b5 20 d0 b7 d0 b0 d0 b1 d1 8b d0 bb 2c 20 d0 .. .........., .
38a0: ba d0 b0 d0 ba 20 d0 bd d0 b0 d0 bc 20 d0 b2 d1 ..... ...... ...
38b0: 8b d1 82 d0 b0 d1 89 d0 b8 d1 82 d1 8c 20 d0 b2 ............. ..
38c0: d0 b0 d1 80 d0 b8 d0 b0 d0 bd d1 82 20 d1 81 d1 ............ ...
38d0: 82 d0 b0 d1 80 d1 8b d0 b9 20 d1 84 d0 b0 d0 b9 ......... ......
38e0: d0 bb d0 b0 2e 2e 2e 0d 0a d0 90 d0 bb d0 b3 d0 ................
38f0: be d1 80 d0 b8 d1 82 d0 bc d0 a2 d0 b0 d0 ba d0 ................
3900: be d0 b2 3a 0d 0a 66 6f 73 73 69 6c 20 66 69 6e ...:..fossil fin
3910: 66 6f 20 2d 62 20 74 65 73 74 2e 74 78 74 0d 0a fo -b test.txt..
3920: 5b 43 4f 44 45 5d 0d 0a 37 37 30 34 64 33 33 32 [CODE]..7704d332
3930: 37 38 20 32 30 31 32 2d 30 32 2d 30 37 20 53 6f 78 2012-02-07 So
3940: 73 6e 61 20 27 62 6c 61 6c 27 0d 0a 5b 2f 43 4f sna 'blal'..[/CO
3950: 44 45 5d 0d 0a d0 b4 d0 bb d1 8f 20 d0 bf d0 b5 DE]........ ....
3960: d1 80 d0 b2 d0 be d0 b9 20 d1 80 d0 b5 d0 b2 d0 ........ .......
3970: b8 d0 b7 d0 b8 d0 b8 20 0d 0a 66 6f 73 73 69 6c ....... ..fossil
3980: 20 66 69 6e 66 6f 20 2d 70 20 2d 72 20 37 37 30 finfo -p -r 770
3990: 34 64 33 33 32 37 38 20 74 65 73 74 2e 74 78 74 4d33278 test.txt
39a0: 20 20 3e 20 62 6c 61 62 6c 61 2e 74 78 74 0d 0a > blabla.txt..
39b0: d0 b4 d0 bb d1 8f 20 d0 b2 d1 82 d0 be d1 80 d0 ...... .........
39c0: be d0 b9 20 d1 80 d0 b5 d0 b2 d0 b8 d0 b7 d0 b8 ... ............
39d0: 0d 0a 66 6f 73 73 69 6c 20 72 65 76 65 72 74 20 ..fossil revert
39e0: 2d 72 20 37 37 30 34 64 33 33 32 37 38 20 74 65 -r 7704d33278 te
39f0: 73 74 2e 74 78 74 0d 0a 63 6f 70 79 20 74 65 73 st.txt..copy tes
3a00: 74 2e 74 78 74 20 3e 20 62 6c 61 62 6c 61 2e 74 t.txt > blabla.t
3a10: 78 74 0d 0a d0 b4 d0 b0 2c 20 d0 b4 d0 b0 20 d0 xt......, .... .
3a20: b2 d1 81 d0 b5 20 d1 87 d0 b5 d1 80 d0 b5 d0 b7 ..... ..........
3a30: 20 d0 be d0 b4 d0 bd d0 be 20 d0 bc d0 b5 d1 81 ........ ......
3a40: d1 82 d0 be 2e 2e 2e 2e 0d 0a 20 2a 2f 0d 0a 20 .......... */..
3a50: 20 20 20 76 61 72 20 72 20 3d 20 22 22 3b 20 2f var r = ""; /
3a60: 2f 20 d0 a2 d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f / ..............
3a70: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 bf ............ ..
3a80: d1 80 d0 be d1 87 d0 b8 d1 82 d0 b0 d0 bd d0 bd ................
3a90: d0 b0 d1 8f 0d 0a 20 20 20 20 76 61 72 20 76 65 ...... var ve
3aa0: 72 31 20 3d 20 27 27 20 2f 2f 20 d0 9d d0 be d0 r1 = '' // .....
3ab0: bc d0 b5 d1 80 20 d0 b2 d0 b5 d1 80 d1 81 d0 b8 ..... ..........
3ac0: d0 b8 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0 b3 d0 .. .............
3ad0: be 20 d1 84 d0 b0 d0 b9 d0 bb d0 b0 0d 0a 20 20 . ............
3ae0: 20 20 76 61 72 20 76 65 72 31 73 68 61 31 20 3d var ver1sha1 =
3af0: 20 27 27 20 2f 2f 73 68 61 31 20 d0 bf d0 b5 d1 '' //sha1 .....
3b00: 80 d0 b2 d0 be d0 b3 d0 be 20 d1 84 d0 b0 d0 b9 ......... ......
3b10: d0 bb d0 b0 20 d0 b2 20 d0 b1 d0 b0 d0 b7 d0 b5 .... .. ........
3b20: 20 66 6f 73 73 69 6c 0d 0a 20 20 20 20 0d 0a 20 fossil.. ..
3b30: 20 20 20 2f 2f 20 d0 97 d0 b0 d0 bf d1 83 d1 81 // ..........
3b40: d0 b8 d0 bc 20 73 68 65 6c 6c 20 d0 b8 20 d0 bd .... shell .. ..
3b50: d0 b0 d0 b9 d0 b4 d0 b5 d0 bc 20 d0 b2 d0 b5 d1 .......... .....
3b60: 80 d1 81 d0 b8 d0 b8 20 d1 84 d0 b0 d0 b9 d0 bb ....... ........
3b70: d0 be d0 b2 2e 20 0d 0a 20 20 20 20 54 65 78 74 ..... .. Text
3b80: 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 Doc.Clear();..
3b90: 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e TextDoc.AddLin
3ba0: 65 28 27 63 64 20 2f 64 20 22 27 20 2b 72 6f 6f e('cd /d "' +roo
3bb0: 74 43 61 74 61 6c 6f 67 20 2b 27 22 27 29 0d 0a tCatalog +'"')..
3bc0: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
3bd0: 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 6c ine(PathToFossil
3be0: 2b 27 20 66 69 6e 66 6f 20 2d 62 20 2d 2d 6c 69 +' finfo -b --li
3bf0: 6d 69 74 20 31 20 22 27 2b 70 61 74 68 54 6f 46 mit 1 "'+pathToF
3c00: 69 6c 65 2b 27 22 20 3e 20 22 27 20 2b 50 61 74 ile+'" > "' +Pat
3c10: 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2b hToFossilOutput+
3c20: 27 22 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 '"');.. TextD
3c30: 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 oc.Write(PathToB
3c40: 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 atFossil, 'cp866
3c50: 27 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 45 ');.. .. E
3c60: 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c rrCode = WshShel
3c70: 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f l.Run('"'+PathTo
3c80: 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 BatFossil+'"', 0
3c90: 2c 20 31 29 0d 0a 20 20 20 20 54 65 78 74 44 6f , 1).. TextDo
3ca0: 63 2e 52 65 61 64 28 50 61 74 68 54 6f 46 6f 73 c.Read(PathToFos
3cb0: 73 69 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 2d silOutput, "UTF-
3cc0: 38 22 29 3b 0d 0a 20 20 20 20 69 66 20 28 54 65 8");.. if (Te
3cd0: 78 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 xtDoc.LineCount(
3ce0: 29 20 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 20 20 ) == 0) {..
3cf0: 20 20 20 4d 65 73 73 61 67 65 20 28 22 20 31 20 Message (" 1
3d00: d0 ba d0 be d0 bc d0 bc d0 b0 d0 bd d0 b4 d0 b0 ................
3d10: 20 d0 be d1 82 d1 80 d0 b0 d0 b1 d0 be d1 82 d0 ...............
3d20: b0 d0 bb d0 b0 2c 20 d0 bd d0 be 20 d0 b2 d1 8b ....., .... ....
3d30: d0 b2 d0 be d0 b4 20 d0 bd d0 b5 20 d0 b7 d0 b0 ...... .... ....
3d40: d0 bf d0 b8 d1 81 d0 b0 d0 bb d1 81 d1 8f 2c 20 ..............,
3d50: d0 bd d0 b0 d0 b4 d0 be 20 d0 be d1 82 d0 bb d0 ........ .......
3d60: b0 d0 b4 d0 b8 d1 82 d1 8c 21 22 29 0d 0a 20 20 .........!")..
3d70: 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c return fal
3d80: 73 65 20 2f 2f d1 87 d1 82 d0 be 20 d1 82 d0 be se //...... ....
3d90: 20 d0 bf d0 be d1 88 d0 bb d0 be 20 d0 bd d0 b5 .......... ....
3da0: 20 d1 82 d0 b0 d0 ba 2e 20 0d 0a 20 20 20 20 7d ....... .. }
3db0: 0d 0a 20 20 20 20 69 66 20 28 54 65 78 74 44 6f .. if (TextDo
3dc0: 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 29 20 3e 20 c.LineCount() >
3dd0: 30 29 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 0){.. var
3de0: 20 72 20 3d 20 54 65 78 74 44 6f 63 2e 47 65 74 r = TextDoc.Get
3df0: 4c 69 6e 65 28 31 29 0d 0a 20 20 20 20 20 20 20 Line(1)..
3e00: 20 69 66 20 28 72 2e 69 6e 64 65 78 4f 66 28 22 if (r.indexOf("
3e10: 6e 6f 20 68 69 73 74 6f 72 79 20 66 6f 72 20 66 no history for f
3e20: 69 6c 65 22 29 20 3e 3d 30 29 20 7b 0d 0a 20 20 ile") >=0) {..
3e30: 20 20 20 20 20 20 20 20 20 20 4d 65 73 73 61 67 Messag
3e40: 65 28 22 d0 a4 d0 b0 d0 b9 d0 bb 20 d0 bd d0 b5 e("........ ....
3e50: 20 d0 bd d0 b0 d1 85 d0 be d0 b4 d0 b8 d0 bb d1 ...............
3e60: 81 d1 8f 20 d0 bf d0 be d0 b4 20 d0 b2 d0 b5 d1 ... ...... .....
3e70: 80 d1 81 d0 b8 d0 be d0 bd d0 bd d1 8b d0 bc 20 ...............
3e80: d0 ba d0 be d0 bd d1 82 d1 80 d0 be d0 bb d0 b5 ................
3e90: d0 bc 2c 20 d0 bd d0 b5 20 d1 81 d1 87 d0 b5 d0 .., .... .......
3ea0: bc 20 d1 81 d1 80 d0 b0 d0 b2 d0 bd d0 b8 d0 b2 . ..............
3eb0: d0 b0 d1 82 d1 8c 2e 22 29 3b 0d 0a 20 20 20 20 .......");..
3ec0: 20 20 20 20 20 20 20 20 70 61 72 61 6d 32 2e 69 param2.i
3ed0: 6e 73 65 72 74 28 22 70 61 74 68 31 22 2c 20 70 nsert("path1", p
3ee0: 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 athToFile);..
3ef0: 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 32 2e param2.
3f00: 69 6e 73 65 72 74 28 22 70 61 74 68 32 22 2c 20 insert("path2",
3f10: 22 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 "");..
3f20: 20 20 72 65 74 75 72 6e 20 70 61 72 61 6d 32 3b return param2;
3f30: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 .. }..
3f40: 20 20 20 20 20 76 65 72 31 20 3d 20 72 2e 73 70 ver1 = r.sp
3f50: 6c 69 74 28 27 20 27 29 5b 30 5d 0d 0a 20 20 20 lit(' ')[0]..
3f60: 20 7d 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e }.. TextDoc.
3f70: 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 54 65 Clear();.. Te
3f80: 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 xtDoc.Write(Path
3f90: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 ToFossilOutput,
3fa0: 22 55 54 46 2d 38 22 29 3b 0d 0a 0d 0a 20 20 20 "UTF-8");....
3fb0: 20 69 66 20 28 76 65 72 31 20 3d 3d 20 6e 75 6c if (ver1 == nul
3fc0: 6c 20 7c 7c 20 76 65 72 31 20 3d 3d 20 22 22 29 l || ver1 == "")
3fd0: 20 7b 4d 65 73 73 61 67 65 28 22 76 65 72 20 31 {Message("ver 1
3fe0: 20 d0 bd d0 b5 20 d0 bd d0 b0 d1 88 d0 bb d0 b8 .... ..........
3ff0: 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 d0 be 22 29 3b ............");
4000: 20 72 65 74 75 72 6e 20 3b 7d 0d 0a 20 20 20 20 return ;}..
4010: 76 61 72 20 66 69 6c 65 32 54 6f 44 69 66 66 20 var file2ToDiff
4020: 3d 20 66 6f 73 73 69 6c 5f 67 65 74 46 69 6c 65 = fossil_getFile
4030: 41 74 52 65 76 69 73 69 6f 6e 28 70 61 74 68 54 AtRevision(pathT
4040: 6f 46 69 6c 65 2c 20 76 65 72 31 29 3b 0d 0a 20 oFile, ver1);..
4050: 20 20 20 69 66 20 28 66 69 6c 65 32 54 6f 44 69 if (file2ToDi
4060: 66 66 20 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 66 69 ff == null || fi
4070: 6c 65 32 54 6f 44 69 66 66 20 3d 3d 20 22 22 29 le2ToDiff == "")
4080: 20 7b 4d 65 73 73 61 67 65 28 22 d0 9d d0 b5 20 {Message("....
4090: d1 81 d0 bc d0 be d0 b3 d0 bb d0 b8 20 d0 bf d0 ............ ...
40a0: be d0 bb d1 83 d1 87 d0 b8 d1 82 d1 8c 20 d1 84 ............. ..
40b0: d0 b0 d0 b9 d0 bb 20 d0 bd d1 83 d0 b6 d0 bd d0 ...... .........
40c0: be d0 b9 20 d1 80 d0 b5 d0 b2 d0 b8 d0 b7 d0 b8 ... ............
40d0: d0 b8 22 20 2b 20 76 65 72 31 29 3b 20 72 65 74 .." + ver1); ret
40e0: 75 72 6e 20 3b 7d 0d 0a 20 20 20 20 70 61 72 61 urn ;}.. para
40f0: 6d 32 2e 69 6e 73 65 72 74 28 22 70 61 74 68 32 m2.insert("path2
4100: 22 2c 20 66 69 6c 65 32 54 6f 44 69 66 66 29 3b ", file2ToDiff);
4110: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 74 75 .. .. retu
4120: 72 6e 20 74 72 75 65 0d 0a 7d 20 2f 2f 67 65 74 rn true..} //get
4130: 46 69 6c 65 50 61 74 68 54 6f 44 69 66 66 0d 0a FilePathToDiff..
4140: 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 ..function fossi
4150: 6c 5f 61 64 64 28 70 61 74 68 54 6f 46 69 6c 65 l_add(pathToFile
4160: 2c 20 70 61 72 61 6d 32 29 20 7b 0d 0a 20 20 20 , param2) {..
4170: 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 var rootCatalog
4180: 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f = fossil_getRoo
4190: 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 tCatalog(pathToF
41a0: 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 66 ile);.. var f
41b0: 20 3d 20 76 38 4e 65 77 28 22 46 69 6c 65 22 2c = v8New("File",
41c0: 20 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 pathToFile);..
41d0: 20 20 20 69 66 20 28 66 2e 49 73 44 69 72 65 63 if (f.IsDirec
41e0: 74 6f 72 79 28 29 29 20 7b 0d 0a 20 20 20 20 20 tory()) {..
41f0: 20 20 20 70 61 74 68 54 6f 46 69 6c 65 20 3d 20 pathToFile =
4200: 27 2e 27 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 '.'.. } else
4210: 7b 0d 0a 20 20 20 20 20 20 20 20 70 61 74 68 54 {.. pathT
4220: 6f 46 69 6c 65 20 3d 20 27 22 27 2b 70 61 74 68 oFile = '"'+path
4230: 54 6f 46 69 6c 65 2b 27 22 27 0d 0a 20 20 20 20 ToFile+'"'..
4240: 7d 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 }.. var PathT
4250: 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 oFossilOutput =
4260: 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 TempDir + "fossi
4270: 6c 73 74 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 lstatus.txt" //
4280: d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 .......... 1.. .
4290: 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 ....... .. utf-8
42a0: 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc , ..............
42b0: 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 ........ ......
42c0: d1 82 d1 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf ...... fossil ..
42d0: d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 ........ .......
42e0: b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc ... ............
42f0: 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 ....... .. v
4300: 61 72 20 50 61 74 68 54 6f 42 61 74 46 6f 73 73 ar PathToBatFoss
4310: 69 6c 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 il = TempDir + "
4320: 66 6f 73 73 69 6c 54 72 75 65 2e 62 61 74 22 0d fossilTrue.bat".
4330: 0a 20 20 20 20 76 61 72 20 54 65 78 74 44 6f 63 . var TextDoc
4340: 20 3d 20 76 38 4e 65 77 28 22 54 65 78 74 44 6f = v8New("TextDo
4350: 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 cument");.. T
4360: 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 extDoc.AddLine('
4370: 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 cd /d "'+rootCat
4380: 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 20 20 54 alog+'"').. T
4390: 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 extDoc.AddLine(P
43a0: 61 74 68 54 6f 46 6f 73 73 69 6c 20 2b 27 20 61 athToFossil +' a
43b0: 64 64 20 27 20 2b 70 61 74 68 54 6f 46 69 6c 65 dd ' +pathToFile
43c0: 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e );.. TextDoc.
43d0: 57 72 69 74 65 28 50 61 74 68 54 6f 42 61 74 46 Write(PathToBatF
43e0: 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 27 29 3b ossil, 'cp866');
43f0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 54 65 78 74 .. .. Text
4400: 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 Doc.Clear();..
4410: 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 ErrCode = WshS
4420: 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 hell.Run('"'+Pat
4430: 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 hToBatFossil+'"'
4440: 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 72 65 74 , 0, 1).. ret
4450: 75 72 6e 20 45 72 72 43 6f 64 65 0d 0a 7d 20 2f urn ErrCode..} /
4460: 2f 66 6f 73 73 69 6c 5f 61 64 64 0d 0a 0d 0a 66 /fossil_add....f
4470: 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 72 unction fossil_r
4480: 75 6e 28 70 61 74 68 54 6f 46 69 6c 65 29 7b 0d un(pathToFile){.
4490: 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 61 74 . var rootCat
44a0: 61 6c 6f 67 20 3d 20 66 6f 73 73 69 6c 5f 67 65 alog = fossil_ge
44b0: 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 tRootCatalog(pat
44c0: 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 76 hToFile);.. v
44d0: 61 72 20 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f ar PathToFossilO
44e0: 75 74 70 75 74 20 3d 20 54 65 6d 70 44 69 72 20 utput = TempDir
44f0: 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 75 73 2e + "fossilstatus.
4500: 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 txt" // ........
4510: d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 .. 1.. ........
4520: d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 .. utf-8, ......
4530: d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 ........ .......
4540: b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 . ............ f
4550: 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 ossil ..........
4560: 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 .......... ....
4570: d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e ........ .......
4580: 20 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 54 .. var PathT
4590: 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 6d oBatFossil = Tem
45a0: 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 72 pDir + "fossilTr
45b0: 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 61 72 ue.bat".. var
45c0: 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 TextDoc = v8New
45d0: 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 ("TextDocument")
45e0: 3b 0d 0a 20 20 20 20 76 61 72 20 61 62 73 70 61 ;.. var abspa
45f0: 74 68 20 3d 20 46 53 4f 2e 47 65 74 41 62 73 6f th = FSO.GetAbso
4600: 6c 75 74 65 50 61 74 68 4e 61 6d 65 28 50 61 74 lutePathName(Pat
4610: 68 54 6f 46 6f 73 73 69 6c 29 3b 0d 0a 20 20 20 hToFossil);..
4620: 20 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28 27 var f = v8New('
4630: 46 69 6c 65 27 2c 20 61 62 73 70 61 74 68 29 3b File', abspath);
4640: 0d 0a 20 20 20 20 69 66 20 28 66 2e 45 78 69 73 .. if (f.Exis
4650: 74 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 t()) {..
4660: 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 TextDoc.AddLine(
4670: 27 50 41 54 48 20 3d 20 25 50 41 54 48 25 3b 27 'PATH = %PATH%;'
4680: 2b 66 2e 50 61 74 68 2b 27 22 27 29 3b 0d 0a 20 +f.Path+'"');..
4690: 20 20 20 7d 0d 0a 20 20 20 20 54 65 78 74 44 6f }.. TextDo
46a0: 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 c.AddLine('cd /d
46b0: 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 2b "'+rootCatalog+
46c0: 27 22 27 29 0d 0a 20 20 20 20 54 65 78 74 44 6f '"').. TextDo
46d0: 63 2e 41 64 64 4c 69 6e 65 28 27 73 74 61 72 74 c.AddLine('start
46e0: 20 63 6d 64 2e 65 78 65 27 29 0d 0a 20 20 20 20 cmd.exe')..
46f0: 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 TextDoc.Write(Pa
4700: 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 thToBatFossil, '
4710: 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 d0 97 cp866');.. ..
4720: d0 b0 d0 bf d1 83 d1 81 d1 82 d0 b8 d1 82 d1 8c ................
4730: d0 9f d1 80 d0 b8 d0 bb d0 be d0 b6 d0 b5 d0 bd ................
4740: d0 b8 d0 b5 28 50 61 74 68 54 6f 42 61 74 46 6f ....(PathToBatFo
4750: 73 73 69 6c 2c 20 22 22 2c 20 74 72 75 65 29 3b ssil, "", true);
4760: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 20 3d 20 .. TextDoc =
4770: 6e 75 6c 6c 3b 0d 0a 7d 20 2f 2f 66 6f 73 73 69 null;..} //fossi
4780: 6c 5f 72 75 6e 0d 0a 0d 0a 66 75 6e 63 74 69 6f l_run....functio
4790: 6e 20 66 6f 73 73 69 6c 5f 67 65 74 46 69 6c 65 n fossil_getFile
47a0: 53 74 61 74 75 73 28 70 61 74 68 54 6f 43 61 74 Status(pathToCat
47b0: 61 6c 6f 67 2c 20 70 61 74 68 54 6f 46 69 6c 65 alog, pathToFile
47c0: 29 7b 0d 0a 20 20 20 20 76 61 72 20 d0 bb d0 9a ){.. var ....
47d0: d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d 20 70 ............ = p
47e0: 61 74 68 54 6f 43 61 74 61 6c 6f 67 0d 0a 20 20 athToCatalog..
47f0: 20 20 69 66 20 28 d0 a1 d0 be d0 be d1 82 d0 b2 if (..........
4800: d0 b5 d1 82 d1 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a4 ................
4810: d0 b0 d0 b9 d0 bb d0 be d0 b2 d0 98 d0 a1 d1 82 ................
4820: d0 b0 d1 82 d1 83 d1 81 d0 be d0 b2 5b d0 bb d0 ............[...
4830: 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 5d 20 3d .............] =
4840: 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 7b 0d 0a = undefined) {..
4850: 20 20 20 20 20 20 20 20 4d 65 73 73 61 67 65 28 Message(
4860: 22 47 65 74 20 73 74 61 74 75 73 20 66 6f 72 20 "Get status for
4870: 22 20 2b 20 70 61 74 68 54 6f 43 61 74 61 6c 6f " + pathToCatalo
4880: 67 20 2b 20 22 20 22 2b d0 a1 d0 be d0 be d1 82 g + " "+........
4890: d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d0 b8 d0 b5 ................
48a0: d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 d0 98 d0 a1 ................
48b0: d1 82 d0 b0 d1 82 d1 83 d1 81 d0 be d0 b2 5b d0 ..............[.
48c0: bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 5d ...............]
48d0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 );.. var
48e0: 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 PathToFossilOutp
48f0: 75 74 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 ut = TempDir + "
4900: 66 6f 73 73 69 6c 73 74 61 74 75 73 2e 74 78 74 fossilstatus.txt
4910: 22 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 " // ..........
4920: 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 1.. ........ ..
4930: 75 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 utf-8, .........
4940: b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 ..... ........ .
4950: 81 d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f 73 73 ........... foss
4960: 69 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 d1 8d il .......... ..
4970: d1 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 ........ .......
4980: b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a ..... ....... ..
4990: 20 20 20 20 20 20 20 20 76 61 72 20 50 61 74 68 var Path
49a0: 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 65 ToBatFossil = Te
49b0: 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 54 mpDir + "fossilT
49c0: 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 20 20 rue.bat"..
49d0: 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d 20 var TextDoc =
49e0: 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d v8New("TextDocum
49f0: 65 6e 74 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 ent");..
4a00: 54 65 78 74 44 6f 63 2e d0 97 d0 b0 d0 bf d0 b8 TextDoc.........
4a10: d1 81 d0 b0 d1 82 d1 8c 28 50 61 74 68 54 6f 46 ........(PathToF
4a20: 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 22 55 54 ossilOutput, "UT
4a30: 46 2d 38 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 F-8");..
4a40: 76 61 72 20 d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb var ............
4a50: d0 be d0 b3 20 3d 22 22 3b 0d 0a 20 20 20 20 20 .... ="";..
4a60: 20 20 20 2f 2f 69 66 20 28 d0 bb d0 9a d0 b0 d1 //if (.......
4a70: 82 d0 b0 d0 bb d0 be d0 b3 20 3d 3d 20 27 27 29 ......... == '')
4a80: 20 7b 20 2f 2f d0 be d0 bf d1 80 d0 b5 d0 b4 d0 { //...........
4a90: b5 d0 bb d0 b8 d0 bc 20 d1 82 d0 b5 d0 ba d1 83 ....... ........
4aa0: d1 89 d0 b8 d0 b9 20 52 4f 4f 54 20 d0 ba d0 b0 ...... ROOT ....
4ab0: d1 82 d0 b0 d0 bb d0 be d0 b3 20 d0 b4 d0 bb d1 .......... .....
4ac0: 8f 20 66 6f 73 73 69 6c 20 0d 0a 20 20 20 20 20 . fossil ..
4ad0: 20 20 20 76 61 72 20 d0 bc d0 bb d0 9a d0 b0 d1 var .........
4ae0: 82 d0 b0 d0 bb d0 be d0 b3 20 3d 20 70 61 74 68 ......... = path
4af0: 54 6f 43 61 74 61 6c 6f 67 3b 0d 0a 20 20 20 20 ToCatalog;..
4b00: 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c TextDoc.AddL
4b10: 69 6e 65 28 27 63 64 20 2f 64 22 27 20 2b d0 bc ine('cd /d"' +..
4b20: d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 ................
4b30: 20 2b 27 22 27 29 0d 0a 20 20 20 20 20 20 20 20 +'"')..
4b40: 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 TextDoc.AddLine(
4b50: 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 2b 27 20 PathToFossil +'
4b60: 73 74 61 74 75 73 20 3e 20 22 27 2b 50 61 74 68 status > "'+Path
4b70: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2b 27 ToFossilOutput+'
4b80: 22 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 54 65 "');.. Te
4b90: 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 xtDoc.Write(Path
4ba0: 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 ToBatFossil, 'cp
4bb0: 38 36 36 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 866');..
4bc0: 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 ErrCode = WshShe
4bd0: 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 ll.Run('"'+PathT
4be0: 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 oBatFossil+'"',
4bf0: 30 2c 20 31 29 0d 0a 20 20 20 20 20 20 20 20 54 0, 1).. T
4c00: 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 68 extDoc.Read(Path
4c10: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 ToFossilOutput,
4c20: 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 20 "UTF-8");..
4c30: 20 20 20 69 66 20 28 54 65 78 74 44 6f 63 2e 4c if (TextDoc.L
4c40: 69 6e 65 43 6f 75 6e 74 28 29 20 3d 3d 20 30 29 ineCount() == 0)
4c50: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
4c60: 4d 65 73 73 61 67 65 20 28 22 d0 ba d0 be d0 bc Message ("......
4c70: d0 bc d0 b0 d0 bd d0 b4 d0 b0 20 d0 be d1 82 d1 .......... .....
4c80: 80 d0 b0 d0 b1 d0 be d1 82 d0 b0 d0 bb d0 b0 2c ...............,
4c90: 20 d0 bd d0 be 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 .... ..........
4ca0: 20 d0 bd d0 b5 20 d0 b7 d0 b0 d0 bf d0 b8 d1 81 .... ..........
4cb0: d0 b0 d0 bb d1 81 d1 8f 2c 20 d0 bd d0 b0 d0 b4 ........, ......
4cc0: d0 be 20 d0 be d1 82 d0 bb d0 b0 d0 b4 d0 b8 d1 .. .............
4cd0: 82 d1 8c 21 22 29 0d 0a 20 20 20 20 20 20 20 20 ...!")..
4ce0: 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 20 return null
4cf0: 2f 2f d1 87 d1 82 d0 be 20 d1 82 d0 be 20 d0 bf //...... .... ..
4d00: d0 be d1 88 d0 bb d0 be 20 d0 bd d0 b5 20 d1 82 ........ .... ..
4d10: d0 b0 d0 ba 2e 20 0d 0a 20 20 20 20 20 20 20 20 ..... ..
4d20: 7d 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 }.. var i
4d30: 3d 30 3b 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 =0;.. for
4d40: 20 28 76 61 72 20 69 3d 31 3b 20 69 3c 3d 54 65 (var i=1; i<=Te
4d50: 78 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e 74 28 xtDoc.LineCount(
4d60: 29 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 20 20 20 ); i++)..
4d70: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
4d80: 76 61 72 20 72 20 3d 20 54 65 78 74 44 6f 63 2e var r = TextDoc.
4d90: 47 65 74 4c 69 6e 65 28 69 29 3b 0d 0a 20 20 20 GetLine(i);..
4da0: 20 20 20 20 20 20 20 20 20 69 66 20 28 72 2e 69 if (r.i
4db0: 6e 64 65 78 4f 66 28 22 6c 6f 63 61 6c 2d 72 6f ndexOf("local-ro
4dc0: 6f 74 3a 22 29 21 3d 2d 31 29 7b 20 2f 2f 20 d0 ot:")!=-1){ // .
4dd0: b2 d1 81 d0 b5 20 d0 bd d0 b0 d1 88 d0 bb d0 b8 ..... ..........
4de0: 2c 20 d1 82 d0 b5 d0 bf d0 b5 d1 80 d1 8c 20 0d , ............ .
4df0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
4e00: 20 20 20 20 20 d0 bc d0 bb d0 9a d0 b0 d1 82 d0 ...........
4e10: b0 d0 bb d0 be d0 b3 20 20 3d 20 72 2e 73 70 6c ....... = r.spl
4e20: 69 74 28 27 20 20 20 27 29 5b 31 5d 3b 0d 0a 20 it(' ')[1];..
4e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4e40: 20 20 20 d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 .............
4e50: be d0 b3 20 3d 20 d0 bc d0 bb d0 9a d0 b0 d1 82 ... = ..........
4e60: d0 b0 d0 bb d0 be d0 b3 2e 72 65 70 6c 61 63 65 .........replace
4e70: 28 2f 5c 2f 2f 67 2c 20 27 5c 5c 27 29 3b 0d 0a (/\//g, '\\');..
4e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4e90: 20 20 20 20 d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb ............
4ea0: d0 be d0 b3 20 3d 20 d0 bb d0 9a d0 b0 d1 82 d0 .... = .........
4eb0: b0 d0 bb d0 be d0 b3 2e 73 75 62 73 74 72 28 30 ........substr(0
4ec0: 2c 20 d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be , ..............
4ed0: d0 b3 2e 6c 65 6e 67 74 68 2d 31 29 3b 0d 0a 20 ...length-1);..
4ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4ef0: 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 break;..
4f00: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
4f10: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 54 65 78 }.. Tex
4f20: 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 tDoc.Clear();..
4f30: 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 57 TextDoc.W
4f40: 72 69 74 65 28 50 61 74 68 54 6f 46 6f 73 73 69 rite(PathToFossi
4f50: 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 2d 38 22 lOutput, "UTF-8"
4f60: 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d );.. }.. .
4f70: 0a 20 20 20 20 d0 a1 d0 be d0 be d1 82 d0 b2 d0 . ...........
4f80: b5 d1 82 d1 81 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 ................
4f90: b9 d0 bb d0 be d0 b2 20 3d 20 d0 a1 d0 be d0 be ....... = ......
4fa0: d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d0 b8 ................
4fb0: d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 d0 98 ................
4fc0: d0 a1 d1 82 d0 b0 d1 82 d1 83 d1 81 d0 be d0 b2 ................
4fd0: 5b d0 bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 [...............
4fe0: b3 5d 3b 0d 0a 20 20 20 20 69 66 20 28 d0 a1 d0 .];.. if (...
4ff0: be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 d0 ................
5000: b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 20 ...............
5010: 3d 3d 20 75 6e 64 65 66 69 6e 65 64 29 20 72 65 == undefined) re
5020: 74 75 72 6e 20 6e 75 6c 6c 20 0d 0a 20 20 20 20 turn null ..
5030: 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 28 d0 a1 .. return (..
5040: d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 ................
5050: d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 ................
5060: 5b 70 61 74 68 54 6f 46 69 6c 65 5d 20 3d 3d 20 [pathToFile] ==
5070: 75 6e 64 65 66 69 6e 65 64 29 20 3f 20 6e 75 6c undefined) ? nul
5080: 6c 20 3a 20 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 l : ............
5090: d1 82 d1 81 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 ................
50a0: d0 bb d0 be d0 b2 5b 70 61 74 68 54 6f 46 69 6c ......[pathToFil
50b0: 65 5d 0d 0a 20 20 20 20 0d 0a 7d 20 2f 2f 66 6f e].. ..} //fo
50c0: 73 73 69 6c 5f 67 65 74 46 69 6c 65 53 74 61 74 ssil_getFileStat
50d0: 75 73 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 us....function f
50e0: 6f 73 73 69 6c 5f 72 65 76 65 72 74 28 70 61 74 ossil_revert(pat
50f0: 68 54 6f 46 69 6c 65 2c 20 76 65 72 29 20 7b 0d hToFile, ver) {.
5100: 0a 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 ... var rootC
5110: 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 69 6c 5f atalog = fossil_
5120: 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 getRootCatalog(p
5130: 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 athToFile);..
5140: 20 76 61 72 20 66 20 3d 20 76 38 4e 65 77 28 22 var f = v8New("
5150: 46 69 6c 65 22 2c 20 70 61 74 68 54 6f 46 69 6c File", pathToFil
5160: 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 50 61 74 e);.. var Pat
5170: 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 20 hToFossilOutput
5180: 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 = TempDir + "fos
5190: 73 69 6c 73 74 61 74 75 73 2e 74 78 74 22 20 2f silstatus.txt" /
51a0: 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 / .......... 1..
51b0: 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 ........ .. utf
51c0: 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 -8, ............
51d0: d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 .. ........ ....
51e0: d0 b0 d1 82 d1 83 d1 81 20 66 6f 73 73 69 6c 20 ........ fossil
51f0: d0 bf d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 .......... .....
5200: be d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 ..... ..........
5210: d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 .. ....... ..
5220: 20 76 61 72 20 50 61 74 68 54 6f 42 61 74 46 6f var PathToBatFo
5230: 73 73 69 6c 20 3d 20 54 65 6d 70 44 69 72 20 2b ssil = TempDir +
5240: 20 22 66 6f 73 73 69 6c 54 72 75 65 2e 62 61 74 "fossilTrue.bat
5250: 22 0d 0a 20 20 20 20 76 61 72 20 54 65 78 74 44 ".. var TextD
5260: 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 78 74 oc = v8New("Text
5270: 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 Document");..
5280: 20 54 65 78 74 44 6f 63 2e d0 97 d0 b0 d0 bf d0 TextDoc........
5290: b8 d1 81 d0 b0 d1 82 d1 8c 28 50 61 74 68 54 6f .........(PathTo
52a0: 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 22 55 FossilOutput, "U
52b0: 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 54 65 78 TF-8");.. Tex
52c0: 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 tDoc.AddLine('cd
52d0: 20 2f 64 22 27 20 2b 72 6f 6f 74 43 61 74 61 6c /d"' +rootCatal
52e0: 6f 67 20 2b 27 22 27 29 0d 0a 20 20 20 20 76 61 og +'"').. va
52f0: 72 20 63 6d 64 20 3d 20 28 76 65 72 2e 6c 65 6e r cmd = (ver.len
5300: 67 74 68 3e 30 29 20 3f 20 27 27 2b 50 61 74 68 gth>0) ? ''+Path
5310: 54 6f 46 6f 73 73 69 6c 20 2b 27 20 72 65 76 65 ToFossil +' reve
5320: 72 74 20 2d 72 20 27 2b 76 65 72 2b 27 20 22 27 rt -r '+ver+' "'
5330: 20 2b 70 61 74 68 54 6f 46 69 6c 65 2b 27 22 27 +pathToFile+'"'
5340: 20 3a 20 27 27 2b 50 61 74 68 54 6f 46 6f 73 73 : ''+PathToFoss
5350: 69 6c 20 2b 27 20 72 65 76 65 72 74 20 20 22 27 il +' revert "'
5360: 20 2b 70 61 74 68 54 6f 46 69 6c 65 2b 27 22 27 +pathToFile+'"'
5370: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ;.. TextDoc.A
5380: 64 64 4c 69 6e 65 28 63 6d 64 29 3b 0d 0a 20 20 ddLine(cmd);..
5390: 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 TextDoc.Write(
53a0: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c PathToBatFossil,
53b0: 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 'cp866');..
53c0: 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b TextDoc.Clear();
53d0: 0d 0a 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 .. ErrCode =
53e0: 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 WshShell.Run('"'
53f0: 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c +PathToBatFossil
5400: 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 +'"', 0, 1)..
5410: 20 72 65 74 75 72 6e 20 45 72 72 43 6f 64 65 0d return ErrCode.
5420: 0a 7d 20 2f 2f 66 6f 73 73 69 6c 5f 72 65 76 65 .} //fossil_reve
5430: 72 74 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 rt....function f
5440: 6f 73 73 69 6c 5f 64 65 6c 65 74 65 28 70 61 74 ossil_delete(pat
5450: 68 54 6f 46 69 6c 65 29 20 7b 0d 0a 20 20 20 20 hToFile) {..
5460: 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 20 var rootCatalog
5470: 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f 74 = fossil_getRoot
5480: 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 69 Catalog(pathToFi
5490: 6c 65 29 3b 0d 0a 20 20 20 20 2f 2f 76 61 72 20 le);.. //var
54a0: 66 20 3d 20 76 38 4e 65 77 28 22 46 69 6c 65 22 f = v8New("File"
54b0: 2c 20 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a , pathToFile);..
54c0: 20 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f var PathToFo
54d0: 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d ssilOutput = Tem
54e0: 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 pDir + "fossilst
54f0: 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 atus.txt" // ...
5500: b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 ....... 1.. ....
5510: d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 .... .. utf-8, .
5520: b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 ............. ..
5530: d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 ...... .........
5540: 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 ... fossil .....
5550: 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be ..... ..........
5560: 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 ............ ..
5570: d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 20 ..... .. var
5580: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 PathToBatFossil
5590: 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 = TempDir + "fos
55a0: 73 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 silTrue.bat"..
55b0: 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d 20 var TextDoc =
55c0: 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d v8New("TextDocum
55d0: 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 ent");.. Text
55e0: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 Doc.AddLine('cd
55f0: 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f /d "'+rootCatalo
5600: 67 2b 27 22 27 29 0d 0a 20 20 20 20 54 65 78 74 g+'"').. Text
5610: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 Doc.AddLine(Path
5620: 54 6f 46 6f 73 73 69 6c 20 2b 27 20 64 65 6c 65 ToFossil +' dele
5630: 20 22 27 20 2b 70 61 74 68 54 6f 46 69 6c 65 2b "' +pathToFile+
5640: 27 22 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 '"');.. TextD
5650: 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 oc.Write(PathToB
5660: 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 atFossil, 'cp866
5670: 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 ');.. TextDoc
5680: 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 45 .Clear();.. E
5690: 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c rrCode = WshShel
56a0: 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f l.Run('"'+PathTo
56b0: 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 BatFossil+'"', 0
56c0: 2c 20 31 29 0d 0a 20 20 20 20 72 65 74 75 72 6e , 1).. return
56d0: 20 45 72 72 43 6f 64 65 0d 0a 7d 20 2f 2f 66 6f ErrCode..} //fo
56e0: 73 73 69 6c 5f 64 65 6c 65 74 65 0d 0a 0d 0a 66 ssil_delete....f
56f0: 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 63 unction fossil_c
5700: 6f 6d 6d 69 74 28 70 61 74 68 54 6f 46 69 6c 65 ommit(pathToFile
5710: 2c 20 6d 65 73 73 61 67 65 29 20 7b 0d 0a 20 20 , message) {..
5720: 20 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f var rootCatalo
5730: 67 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f g = fossil_getRo
5740: 6f 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f otCatalog(pathTo
5750: 46 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 File);.. var
5760: 74 65 6d 70 66 69 6c 65 20 3d 20 47 65 74 54 65 tempfile = GetTe
5770: 6d 70 46 69 6c 65 4e 61 6d 65 28 22 74 78 74 22 mpFileName("txt"
5780: 29 3b 0d 0a 20 20 20 20 76 61 72 20 66 20 3d 20 );.. var f =
5790: 76 38 4e 65 77 28 22 46 69 6c 65 22 2c 20 70 61 v8New("File", pa
57a0: 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 20 thToFile);..
57b0: 69 66 20 28 66 2e 49 73 44 69 72 65 63 74 6f 72 if (f.IsDirector
57c0: 79 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 y()) {..
57d0: 70 61 74 68 54 6f 46 69 6c 65 20 3d 20 27 27 0d pathToFile = ''.
57e0: 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 . } else {..
57f0: 20 20 20 20 20 20 20 70 61 74 68 54 6f 46 69 6c pathToFil
5800: 65 20 3d 20 27 22 27 2b 70 61 74 68 54 6f 46 69 e = '"'+pathToFi
5810: 6c 65 2b 27 22 27 0d 0a 20 20 20 20 7d 0d 0a 20 le+'"'.. }..
5820: 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f 73 var PathToFos
5830: 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 silOutput = Temp
5840: 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 Dir + "fossilsta
5850: 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 tus.txt" // ....
5860: d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 ...... 1.. .....
5870: b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 ... .. utf-8, ..
5880: d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 ............ ...
5890: 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 ..... ..........
58a0: d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 .. fossil ......
58b0: d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 .... ..........
58c0: d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 ............ ...
58d0: b3 d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 20 50 .... .. var P
58e0: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d athToBatFossil =
58f0: 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 TempDir + "foss
5900: 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 ilTrue.bat"..
5910: 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d 20 76 var TextDoc = v
5920: 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d 65 8New("TextDocume
5930: 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 nt");.. TextD
5940: 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f oc.AddLine('cd /
5950: 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 d "'+rootCatalog
5960: 2b 27 22 27 29 0d 0a 20 20 20 20 54 65 78 74 44 +'"').. TextD
5970: 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 oc.AddLine(PathT
5980: 6f 46 6f 73 73 69 6c 20 2b 27 20 63 6f 6d 6d 69 oFossil +' commi
5990: 74 20 27 20 2b 70 61 74 68 54 6f 46 69 6c 65 2b t ' +pathToFile+
59a0: 27 20 2d 4d 20 22 27 2b 74 65 6d 70 66 69 6c 65 ' -M "'+tempfile
59b0: 2b 27 22 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 +'"');.. Text
59c0: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 65 78 69 Doc.AddLine('exi
59d0: 74 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f t');.. TextDo
59e0: 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 61 c.Write(PathToBa
59f0: 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 27 tFossil, 'cp866'
5a00: 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 54 65 );.. .. Te
5a10: 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a xtDoc.Clear();..
5a20: 20 20 20 20 54 65 78 74 44 6f 63 2e 53 65 74 54 TextDoc.SetT
5a30: 65 78 74 28 6d 65 73 73 61 67 65 29 3b 0d 0a 20 ext(message);..
5a40: 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 TextDoc.Write
5a50: 28 74 65 6d 70 66 69 6c 65 2c 20 27 75 74 66 2d (tempfile, 'utf-
5a60: 38 27 29 3b 0d 0a 20 20 20 20 45 72 72 43 6f 64 8');.. ErrCod
5a70: 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e e = WshShell.Run
5a80: 28 27 22 27 2b 50 61 74 68 54 6f 42 61 74 46 6f ('"'+PathToBatFo
5a90: 73 73 69 6c 2b 27 22 27 2c 20 31 2c 20 31 29 3b ssil+'"', 1, 1);
5aa0: 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 45 72 72 .. return Err
5ab0: 43 6f 64 65 0d 0a 7d 20 2f 2f 66 6f 73 73 69 6c Code..} //fossil
5ac0: 5f 63 6f 6d 6d 69 74 0d 0a 0d 0a 66 75 6e 63 74 _commit....funct
5ad0: 69 6f 6e 20 66 6f 73 73 69 6c 5f 73 68 6f 77 6c ion fossil_showl
5ae0: 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 29 20 7b og(pathToFile) {
5af0: 20 2f 2f d0 b2 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 //.............
5b00: bd d0 be 2c 20 d0 bd d0 b0 d0 b4 d0 be 20 d0 bd ..., ........ ..
5b10: d0 b0 d1 80 d0 b8 d1 81 d0 be d0 b2 d0 b0 d1 82 ................
5b20: d1 8c 20 d0 ba d1 80 d0 b0 d1 81 d0 b8 d0 b2 d1 .. .............
5b30: 8e 20 d1 84 d0 be d1 80 d0 bc d1 83 2e 20 0d 0a . ........... ..
5b40: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 72 6f .. var ro
5b50: 6f 74 43 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 otCatalog = foss
5b60: 69 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f il_getRootCatalo
5b70: 67 28 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a g(pathToFile);..
5b80: 20 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f var PathToFo
5b90: 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d ssilOutput = Tem
5ba0: 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 pDir + "fossilst
5bb0: 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 atus.txt" // ...
5bc0: b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 ....... 1.. ....
5bd0: d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 .... .. utf-8, .
5be0: b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 ............. ..
5bf0: d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 ...... .........
5c00: 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 ... fossil .....
5c10: 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be ..... ..........
5c20: 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 ............ ..
5c30: d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 20 ..... .. var
5c40: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 PathToBatFossil
5c50: 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 = TempDir + "fos
5c60: 73 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 silTrue.bat"..
5c70: 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d 20 var TextDoc =
5c80: 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d v8New("TextDocum
5c90: 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 ent");.. Text
5ca0: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 Doc.AddLine('cd
5cb0: 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f /d "'+rootCatalo
5cc0: 67 2b 27 22 27 29 0d 0a 20 20 20 20 54 65 78 74 g+'"').. Text
5cd0: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 Doc.AddLine(Path
5ce0: 54 6f 46 6f 73 73 69 6c 2b 27 20 75 69 27 29 0d ToFossil+' ui').
5cf0: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 . TextDoc.Wri
5d00: 74 65 28 50 61 74 68 54 6f 42 61 74 46 6f 73 73 te(PathToBatFoss
5d10: 69 6c 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 il, 'cp866');..
5d20: 20 20 20 d0 97 d0 b0 d0 bf d1 83 d1 81 d1 82 d0 .............
5d30: b8 d1 82 d1 8c d0 9f d1 80 d0 b8 d0 bb d0 be d0 ................
5d40: b6 d0 b5 d0 bd d0 b8 d0 b5 28 50 61 74 68 54 6f .........(PathTo
5d50: 42 61 74 46 6f 73 73 69 6c 29 3b 0d 0a 7d 20 2f BatFossil);..} /
5d60: 2f 66 6f 73 73 69 6c 5f 73 68 6f 77 6c 6f 67 0d /fossil_showlog.
5d70: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 ...function foss
5d80: 69 6c 5f 67 65 74 4c 6f 67 28 70 61 74 68 54 6f il_getLog(pathTo
5d90: 46 69 6c 65 2c 20 6c 69 6d 69 74 29 20 7b 20 2f File, limit) { /
5da0: 2f d0 b5 d1 81 d0 bb d0 b8 20 d0 ba d0 b0 d1 82 /........ ......
5db0: d0 b0 d0 bb d0 be d0 b3 2c 20 d1 82 d0 be d0 b3 ........, ......
5dc0: d0 b4 d0 b0 20 d0 b8 d0 bd d1 84 d0 be d1 80 d0 .... ...........
5dd0: bc d0 b0 d1 86 d0 b8 d1 8f 20 d0 b4 d0 bb d1 8f ......... ......
5de0: 20 d0 ba d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0 ...............
5df0: b0 2c 20 d0 b5 d1 81 d0 bb d0 b8 20 d1 84 d0 b0 ., ........ ....
5e00: d0 b9 d0 bb 2c 20 d1 82 d0 be d0 b3 d0 b4 d0 b0 ...., ..........
5e10: 20 d0 bb d0 be d0 b3 20 d0 b4 d0 bb d1 8f 20 d1 ...... ...... .
5e20: 84 d0 b0 d0 b9 d0 bb d0 b0 2e 20 0d 0a 20 20 20 .......... ..
5e30: 20 2f 2f d0 92 d0 be d0 b7 d0 b2 d1 80 d0 b0 d1 //.............
5e40: 89 d0 b0 d0 b5 d0 bc 20 d0 bc d0 b0 d1 81 d1 81 ....... ........
5e50: d0 b8 d0 b2 20 d1 81 d0 be 20 d1 81 d1 82 d1 83 .... .... ......
5e60: d1 80 d0 ba d1 82 d1 83 d1 80 d0 be d0 b9 3a 0d ..............:.
5e70: 0a 20 20 20 20 2f 2f 20 61 72 72 61 72 79 5b 30 . // arrary[0
5e80: 5d 5b 27 76 65 72 73 69 6f 6e 27 3a 31 32 32 33 ]['version':1223
5e90: 33 33 2c 20 27 63 6f 6d 6d 65 6e 74 27 3a 22 d0 33, 'comment':".
5ea0: a7 d0 b5 20 d1 82 d0 be 20 d0 bd d0 b0 d0 bf d0 ... .... .......
5eb0: b8 d1 81 d0 b0 d0 bb d0 b8 22 2c 20 27 61 75 74 .........", 'aut
5ec0: 68 6f 72 27 3a 22 73 6f 73 6e 61 22 2c 20 27 64 hor':"sosna", 'd
5ed0: 61 74 65 27 3a 22 32 30 31 32 2d 30 34 2d 30 31 ate':"2012-04-01
5ee0: 22 5d 0d 0a 20 20 20 20 76 61 72 20 72 65 73 75 "].. var resu
5ef0: 6c 74 20 3d 20 5b 5d 0d 0a 20 20 20 20 2f 2f 7b lt = [].. //{
5f00: 20 46 49 58 4d 45 3a 20 d1 83 d0 bc d0 bd d0 be FIXME: ........
5f10: d0 b6 d0 b0 d0 b5 d0 bc 20 d0 ba d0 b2 d0 be 20 ........ ......
5f20: d0 ba d0 be d0 bc d0 bc d0 b8 d1 82 d0 be d0 b2 ................
5f30: 20 d0 bd d0 b0 20 32 2c 20 d1 81 d1 87 d0 b8 d1 .... 2, .......
5f40: 82 d0 b0 d0 b5 d0 bc 20 d0 bf d1 80 d0 b8 d0 b1 ....... ........
5f50: d0 bb d0 b8 d0 b7 d0 b8 d1 82 d0 b5 d0 bb d1 8c ................
5f60: d0 bd d0 be 20 32 20 d1 81 d1 82 d1 80 d0 be d0 .... 2 .........
5f70: ba d0 b8 20 d0 bd d0 b0 20 31 20 d0 ba d0 be d0 ... .... 1 .....
5f80: bc d0 bc d0 b8 d1 82 2e 0d 0a 20 20 20 20 2f 2f .......... //
5f90: 20 d0 b2 20 66 6f 73 73 69 6c 20 d0 b5 d1 81 d1 .. fossil .....
5fa0: 82 d1 8c 20 d0 be d1 88 d0 b8 d0 b1 d0 ba d0 b0 ... ............
5fb0: 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b0 20 d0 b2 ............ ..
5fc0: 20 d0 ba d0 be d0 bc d0 bc d0 b0 d0 bd d0 b4 d0 ...............
5fd0: bd d1 83 d1 8e 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
5fe0: d1 83 20 d0 ba d0 b2 d0 be 2e 20 d1 81 d1 82 d1 .. ....... .....
5ff0: 80 d0 be d0 ba 20 d0 b0 20 d0 bd d0 b5 20 d0 ba ..... .. .... ..
6000: d0 b2 d0 be 20 d0 ba d0 be d0 bc d0 bc d0 b8 d1 .... ...........
6010: 82 d0 be d0 b2 2e 0d 0a 20 20 20 20 2f 2f 20 d0 ........ // .
6020: b5 d1 81 d1 82 d1 8c 2c 20 d0 b4 d0 b0 d0 b6 d0 ......., .......
6030: b5 20 d0 bf d0 b0 d1 82 d1 87 0d 0a 20 20 20 20 . ..........
6040: 2f 2f 20 68 74 74 70 3a 2f 2f 77 77 77 2e 66 6f // http://www.fo
6050: 73 73 69 6c 2d 73 63 6d 2e 6f 72 67 2f 69 6e 64 ssil-scm.org/ind
6060: 65 78 2e 68 74 6d 6c 2f 69 6e 66 6f 2f 33 65 35 ex.html/info/3e5
6070: 38 62 38 63 65 61 66 20 20 0d 0a 20 20 20 20 2f 8b8ceaf .. /
6080: 2f 7d 0d 0a 20 20 20 20 6c 69 6d 69 74 20 3d 20 /}.. limit =
6090: 6c 69 6d 69 74 2a 32 3b 0d 0a 20 20 20 20 0d 0a limit*2;.. ..
60a0: 20 20 20 20 66 20 3d 20 76 38 4e 65 77 28 22 46 f = v8New("F
60b0: 69 6c 65 22 2c 20 70 61 74 68 54 6f 46 69 6c 65 ile", pathToFile
60c0: 29 3b 0d 0a 20 20 20 20 69 66 20 28 21 66 2e 45 );.. if (!f.E
60d0: 78 69 73 74 28 29 29 20 72 65 74 75 72 6e 20 72 xist()) return r
60e0: 65 73 75 6c 74 0d 0a 20 20 20 20 2f 2f d0 9f d1 esult.. //...
60f0: 80 d0 be d0 b2 d0 b5 d1 80 d0 b8 d0 bc 2c 20 d0 ............., .
6100: b5 d1 81 d1 82 d1 8c 20 d0 bb d0 b8 20 d0 be d0 ....... .... ...
6110: bd 20 d0 bf d0 be d0 b4 20 d0 b2 d0 b5 d1 80 d1 . ...... .......
6120: 81 d0 b8 d0 be d0 bd d0 bd d1 8b d0 bc 20 d0 ba ............. ..
6130: d0 be d0 bd d1 82 d1 80 d0 be d0 bb d0 b5 d0 bc ................
6140: 20 d1 83 20 d0 bd d0 b0 d1 81 2e 0d 0a 20 20 20 .. .........
6150: 20 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 var rootCatalog
6160: 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f = fossil_getRoo
6170: 74 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 tCatalog(pathToF
6180: 69 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 50 ile);.. var P
6190: 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 athToFossilOutpu
61a0: 74 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 t = TempDir + "f
61b0: 6f 73 73 69 6c 73 74 61 74 75 73 2e 74 78 74 22 ossilstatus.txt"
61c0: 20 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 // .......... 1
61d0: d0 a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 .. ........ .. u
61e0: 74 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 tf-8, ..........
61f0: d0 b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 .... ........ ..
6200: d1 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f 73 73 69 .......... fossi
6210: 6c 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 l .......... ...
6220: 82 d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 ....... ........
6230: d0 b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 .... ....... ..
6240: 20 20 20 76 61 72 20 50 61 74 68 54 6f 42 61 74 var PathToBat
6250: 46 6f 73 73 69 6c 20 3d 20 54 65 6d 70 44 69 72 Fossil = TempDir
6260: 20 2b 20 22 66 6f 73 73 69 6c 54 72 75 65 2e 62 + "fossilTrue.b
6270: 61 74 22 0d 0a 20 20 20 20 76 61 72 20 54 65 78 at".. var Tex
6280: 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 tDoc = v8New("Te
6290: 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 xtDocument");..
62a0: 20 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 TextDoc.AddLi
62b0: 6e 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f ne('cd /d "'+roo
62c0: 74 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 tCatalog+'"')..
62d0: 20 20 20 2f 2f d0 bf d0 be d0 ba d0 b0 20 d0 b1 //........ ..
62e0: d1 83 d0 b4 d0 b5 d0 bc 20 d0 bd d0 be d1 80 d0 ........ .......
62f0: bc d0 b0 d0 bb d1 8c d0 bd d0 be 20 d0 b2 d0 be ........... ....
6300: d0 b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d1 82 d1 8c ................
6310: 20 d1 82 d0 be d0 bb d1 8c d0 ba d0 be 20 d0 b4 ............ ..
6320: d0 bb d1 8f 20 d1 84 d0 b0 d0 b9 d0 bb d0 b0 2c .... ..........,
6330: 20 d0 bd d0 b0 d0 b4 d0 be 20 d1 81 d0 bf d1 80 ........ ......
6340: d0 be d1 81 d0 b8 d1 82 d1 8c 20 d1 81 d0 be d0 .......... .....
6350: b2 d0 b5 d1 82 d0 b0 20 d0 bf d1 80 d0 be 20 d0 ....... ...... .
6360: bf d0 b0 d1 80 d1 81 d0 b8 d0 bd d0 b3 20 d0 be ............. ..
6370: d0 b1 d1 89 d0 b5 d0 b9 20 d0 b8 d1 81 d1 82 d0 ........ .......
6380: be d1 80 d0 b8 d0 b8 2e 2e 2e 0d 0a 20 20 20 20 ............
6390: 69 66 20 28 21 66 2e 49 73 44 69 72 65 63 74 6f if (!f.IsDirecto
63a0: 72 79 28 29 29 20 7b 20 2f 2f d0 94 d0 bb d1 8f ry()) { //......
63b0: 20 d1 84 d0 b0 d0 b9 d0 bb d0 be d0 b2 20 d0 be ............ ..
63c0: d1 81 d1 82 d0 b0 d0 b2 d0 bb d1 8f d0 b5 d0 bc ................
63d0: 20 d1 81 d1 82 d0 b0 d1 80 d1 8b d0 b9 20 d0 b2 ............ ..
63e0: d0 b0 d1 80 d0 b8 d0 b0 d0 bd d1 82 2c 20 d0 b2 ............, ..
63f0: 20 74 69 6d 65 6c 69 6e 65 20 d0 bd d0 b5 d1 82 timeline ......
6400: 20 d0 b2 d0 be d0 b7 d0 bc d0 be d0 b6 d0 bd d0 ...............
6410: be d1 81 d1 82 d0 b8 20 d0 be d1 82 d1 84 d0 b8 ....... ........
6420: d0 bb d1 8c d1 82 d1 80 d0 be d0 b2 d0 b0 d1 82 ................
6430: d1 8c 20 d1 81 d1 80 d0 b0 d0 b7 d1 83 20 d0 bf .. .......... ..
6440: d0 be 20 d1 84 d0 b0 d0 b9 d0 bb d0 b0 d0 bc 2e .. .............
6450: 20 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 d0 .. var .
6460: 9f d1 83 d1 82 d1 8c d0 9e d1 82 d0 bd d0 be d1 ................
6470: 81 d0 b8 d1 82 d0 b5 d0 bb d1 8c d0 bd d0 be d0 ................
6480: 9a d0 be d1 80 d0 bd d0 b5 d0 b2 d0 be d0 b3 d0 ................
6490: be d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0 ................
64a0: b0 20 3d 20 70 61 74 68 54 6f 46 69 6c 65 2e 72 . = pathToFile.r
64b0: 65 70 6c 61 63 65 28 72 6f 6f 74 43 61 74 61 6c eplace(rootCatal
64c0: 6f 67 2b 27 5c 5c 27 2c 20 27 27 29 3b 0d 0a 20 og+'\\', '');..
64d0: 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 41 TextDoc.A
64e0: 64 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 ddLine(PathToFos
64f0: 73 69 6c 2b 27 20 66 69 6e 66 6f 20 2d 6c 20 2d sil+' finfo -l -
6500: 2d 6c 69 6d 69 74 20 27 2b 6c 69 6d 69 74 2b 27 -limit '+limit+'
6510: 20 22 27 2b d0 9f d1 83 d1 82 d1 8c d0 9e d1 82 "'+............
6520: d0 bd d0 be d1 81 d0 b8 d1 82 d0 b5 d0 bb d1 8c ................
6530: d0 bd d0 be d0 9a d0 be d1 80 d0 bd d0 b5 d0 b2 ................
6540: d0 be d0 b3 d0 be d0 9a d0 b0 d1 82 d0 b0 d0 bb ................
6550: d0 be d0 b3 d0 b0 20 2b 27 22 20 3e 20 22 27 2b ...... +'" > "'+
6560: 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 PathToFossilOutp
6570: 75 74 2b 27 22 27 29 0d 0a 20 20 20 20 20 20 20 ut+'"')..
6580: 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 TextDoc.Write(P
6590: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 athToBatFossil,
65a0: 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 20 'cp866');..
65b0: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 45 72 72 .. Err
65c0: 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e Code = WshShell.
65d0: 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 Run('"'+PathToBa
65e0: 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 2c 20 tFossil+'"', 0,
65f0: 31 29 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 1).. Text
6600: 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 0d 0a Doc.Clear();....
6610: 20 20 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e TextDoc.
6620: 52 65 61 64 28 50 61 74 68 54 6f 46 6f 73 73 69 Read(PathToFossi
6630: 6c 4f 75 74 70 75 74 2c 20 22 55 54 46 2d 38 22 lOutput, "UTF-8"
6640: 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 );.. if (
6650: 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e TextDoc.LineCoun
6660: 74 28 29 20 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 t() == 0) {..
6670: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
6680: 72 65 73 75 6c 74 20 0d 0a 20 20 20 20 20 20 20 result ..
6690: 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 }.. ..
66a0: 20 20 20 20 20 20 72 65 20 3d 20 6e 65 77 20 52 re = new R
66b0: 65 67 45 78 70 28 2f 28 5c 64 7b 34 7d 2d 5c 64 egExp(/(\d{4}-\d
66c0: 7b 32 7d 2d 5c 64 7b 32 7d 29 5c 73 5c 5b 28 5b {2}-\d{2})\s\[([
66d0: 30 2d 39 61 2d 66 5d 7b 31 30 7d 29 5c 5d 5c 73 0-9a-f]{10})\]\s
66e0: 28 28 2e 7c 5c 73 29 2a 3f 29 5c 28 75 73 65 72 ((.|\s)*?)\(user
66f0: 3a 5c 73 2b 28 2e 2b 29 2c 5c 73 2b 61 72 74 69 :\s+(.+),\s+arti
6700: 66 61 63 74 2f 67 29 3b 0d 0a 20 20 20 20 20 20 fact/g);..
6710: 20 20 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 .. var
6720: 72 20 3d 20 54 65 78 74 44 6f 63 2e d0 9f d0 be r = TextDoc.....
6730: d0 bb d1 83 d1 87 d0 b8 d1 82 d1 8c d0 a2 d0 b5 ................
6740: d0 ba d1 81 d1 82 28 29 3b 0d 0a 20 20 20 20 20 ......();..
6750: 20 20 20 76 61 72 20 6d 61 74 63 68 65 73 3b 0d var matches;.
6760: 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 6e 64 . var ind
6770: 65 78 3d 30 3b 0d 0a 20 20 20 20 20 20 20 20 77 ex=0;.. w
6780: 68 69 6c 65 20 28 28 6d 61 74 63 68 65 73 20 3d hile ((matches =
6790: 20 72 65 2e 65 78 65 63 28 72 29 29 20 21 3d 20 re.exec(r)) !=
67a0: 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 7b null).. {
67b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .. re
67c0: 73 75 6c 74 5b 69 6e 64 65 78 5d 20 3d 20 7b 22 sult[index] = {"
67d0: 76 65 72 73 69 6f 6e 22 3a 6d 61 74 63 68 65 73 version":matches
67e0: 5b 32 5d 2c 20 22 63 6f 6d 6d 65 6e 74 22 3a 27 [2], "comment":'
67f0: 27 2b 6d 61 74 63 68 65 73 5b 33 5d 2e 72 65 70 '+matches[3].rep
6800: 6c 61 63 65 28 2f 5c 73 7b 32 2c 7d 7c 5c 6e 2f lace(/\s{2,}|\n/
6810: 67 2c 20 22 20 22 29 2c 20 22 64 61 74 65 22 3a g, " "), "date":
6820: 6d 61 74 63 68 65 73 5b 31 5d 2c 20 22 61 75 74 matches[1], "aut
6830: 68 6f 72 22 3a 6d 61 74 63 68 65 73 5b 35 5d 7d hor":matches[5]}
6840: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e .. in
6850: 64 65 78 2b 2b 3b 0d 0a 20 20 20 20 20 20 20 20 dex++;..
6860: 7d 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 20 }.. } else {
6870: 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 6f .. TextDo
6880: 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 6f c.AddLine(PathTo
6890: 46 6f 73 73 69 6c 2b 27 20 6a 73 6f 6e 20 74 69 Fossil+' json ti
68a0: 6d 65 6c 69 6e 65 20 63 68 65 63 6b 69 6e 20 2d meline checkin -
68b0: 2d 6c 69 6d 69 74 20 27 2b 6c 69 6d 69 74 2b 27 -limit '+limit+'
68c0: 20 20 3e 27 2b 27 20 22 27 2b 50 61 74 68 54 6f >'+' "'+PathTo
68d0: 46 6f 73 73 69 6c 4f 75 74 70 75 74 2b 27 22 27 FossilOutput+'"'
68e0: 29 0d 0a 20 20 20 20 20 20 20 20 54 65 78 74 44 ).. TextD
68f0: 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 6f 42 oc.Write(PathToB
6900: 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 36 36 atFossil, 'cp866
6910: 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 ');.. ..
6920: 20 20 20 20 20 20 20 45 72 72 43 6f 64 65 20 3d ErrCode =
6930: 20 57 73 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 WshShell.Run('"
6940: 27 2b 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 '+PathToBatFossi
6950: 6c 2b 27 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 l+'"', 0, 1)..
6960: 20 20 20 20 20 20 54 65 78 74 44 6f 63 2e 43 6c TextDoc.Cl
6970: 65 61 72 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 ear();..
6980: 54 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 TextDoc.Read(Pat
6990: 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c hToFossilOutput,
69a0: 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 "UTF-8");..
69b0: 20 20 20 20 64 65 62 75 67 67 65 72 0d 0a 20 20 debugger..
69c0: 20 20 20 20 20 20 6a 73 6f 6e 6f 75 74 70 75 74 jsonoutput
69d0: 20 3d 20 54 65 78 74 44 6f 63 2e 47 65 74 54 65 = TextDoc.GetTe
69e0: 78 74 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 6a xt();.. j
69f0: 73 6f 6e 6f 62 6a 65 63 74 20 3d 20 65 76 61 6c sonobject = eval
6a00: 28 27 28 27 2b 6a 73 6f 6e 6f 75 74 70 75 74 2b ('('+jsonoutput+
6a10: 27 29 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 ')');.. i
6a20: 66 20 28 21 28 6a 73 6f 6e 6f 62 6a 65 63 74 2e f (!(jsonobject.
6a30: 72 65 73 75 6c 74 43 6f 64 65 20 3d 3d 20 75 6e resultCode == un
6a40: 64 65 66 69 6e 65 64 29 29 0d 0a 20 20 20 20 20 defined))..
6a50: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 return re
6a60: 73 75 6c 74 0d 0a 20 20 20 20 20 20 20 20 69 66 sult.. if
6a70: 20 28 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 6f (TextDoc.LineCo
6a80: 75 6e 74 28 29 20 3d 3d 20 30 29 20 7b 0d 0a 20 unt() == 0) {..
6a90: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
6aa0: 6e 20 72 65 73 75 6c 74 20 0d 0a 20 20 20 20 20 n result ..
6ab0: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 69 66 }.. if
6ac0: 20 28 6a 73 6f 6e 6f 62 6a 65 63 74 2e 70 61 79 (jsonobject.pay
6ad0: 6c 6f 61 64 2e 74 69 6d 65 6c 69 6e 65 20 3d 3d load.timeline ==
6ae0: 20 75 6e 64 65 66 69 6e 65 64 29 20 0d 0a 20 20 undefined) ..
6af0: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
6b00: 20 72 65 73 75 6c 74 0d 0a 20 20 20 20 20 20 20 result..
6b10: 20 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 .. for (
6b20: 76 61 72 20 69 3d 30 3b 20 69 3c 6a 73 6f 6e 6f var i=0; i<jsono
6b30: 62 6a 65 63 74 2e 70 61 79 6c 6f 61 64 2e 74 69 bject.payload.ti
6b40: 6d 65 6c 69 6e 65 2e 6c 65 6e 67 74 68 3b 20 69 meline.length; i
6b50: 2b 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 ++) {..
6b60: 20 20 20 76 61 72 20 74 69 6d 65 6c 69 6e 65 20 var timeline
6b70: 3d 20 6a 73 6f 6e 6f 62 6a 65 63 74 2e 70 61 79 = jsonobject.pay
6b80: 6c 6f 61 64 2e 74 69 6d 65 6c 69 6e 65 5b 69 5d load.timeline[i]
6b90: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 ;.. v
6ba0: 61 72 20 64 61 74 65 20 3d 20 6e 65 77 20 44 61 ar date = new Da
6bb0: 74 65 28 74 69 6d 65 6c 69 6e 65 2e 74 69 6d 65 te(timeline.time
6bc0: 73 74 61 6d 70 29 3b 0d 0a 20 20 20 20 20 20 20 stamp);..
6bd0: 20 20 20 20 20 72 65 73 75 6c 74 5b 69 5d 20 3d result[i] =
6be0: 20 7b 22 76 65 72 73 69 6f 6e 22 3a 74 69 6d 65 {"version":time
6bf0: 6c 69 6e 65 2e 75 75 69 64 2c 20 22 63 6f 6d 6d line.uuid, "comm
6c00: 65 6e 74 22 3a 27 28 27 2b 74 69 6d 65 6c 69 6e ent":'('+timelin
6c10: 65 2e 74 61 67 73 5b 30 5d 2b 27 29 27 2b 27 20 e.tags[0]+')'+'
6c20: 27 2b 74 69 6d 65 6c 69 6e 65 2e 63 6f 6d 6d 65 '+timeline.comme
6c30: 6e 74 2c 20 22 64 61 74 65 22 3a 27 27 20 2b 64 nt, "date":'' +d
6c40: 61 74 65 2e 74 6f 53 74 72 69 6e 67 28 29 2c 20 ate.toString(),
6c50: 22 61 75 74 68 6f 72 22 3a 74 69 6d 65 6c 69 6e "author":timelin
6c60: 65 2e 75 73 65 72 7d 0d 0a 20 20 20 20 20 20 20 e.user}..
6c70: 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 }.. ..
6c80: 20 20 20 20 20 20 2f 2f 20 76 61 72 20 72 65 20 // var re
6c90: 3d 20 6e 65 77 20 52 65 67 45 78 70 28 2f 3d 3d = new RegExp(/==
6ca0: 3d 5c 73 28 28 32 30 5c 64 5c 64 29 2d 28 30 5b =\s((20\d\d)-(0[
6cb0: 31 2d 39 5d 7c 32 5b 30 31 32 5d 29 2d 28 30 5b 1-9]|2[012])-(0[
6cc0: 31 2d 39 5d 7c 5b 31 32 5d 5b 30 2d 39 5d 7c 33 1-9]|[12][0-9]|3
6cd0: 5b 30 31 5d 29 29 5c 73 3d 3d 3d 28 28 5c 6e 28 [01]))\s===((\n(
6ce0: 28 5b 30 31 5d 5b 30 2d 39 5d 7c 32 5b 30 2d 33 ([01][0-9]|2[0-3
6cf0: 5d 29 3a 28 5b 30 2d 35 5d 5b 30 2d 39 5d 29 3a ]):([0-5][0-9]):
6d00: 28 5b 30 2d 35 5d 5b 30 2d 39 5d 29 29 5c 73 5c ([0-5][0-9]))\s\
6d10: 5b 28 5b 30 2d 39 61 2d 66 5d 7b 31 30 7d 29 5c [([0-9a-f]{10})\
6d20: 5d 5c 73 28 28 2e 7c 5c 73 29 2a 3f 29 5c 28 75 ]\s((.|\s)*?)\(u
6d30: 73 65 72 3a 5c 73 2b 28 2e 2b 29 5c 73 2b 74 61 ser:\s+(.+)\s+ta
6d40: 67 73 3a 5c 73 2b 28 5c 77 2b 29 5c 29 29 2b 29 gs:\s+(\w+)\))+)
6d50: 2f 67 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 /g).. //
6d60: 76 61 72 20 72 65 5f 63 6f 6d 6d 65 6e 74 20 3d var re_comment =
6d70: 20 6e 65 77 20 52 65 67 45 78 70 28 2f 28 28 5b new RegExp(/(([
6d80: 30 31 5d 5b 30 2d 39 5d 7c 32 5b 30 2d 33 5d 29 01][0-9]|2[0-3])
6d90: 3a 28 5b 30 2d 35 5d 5b 30 2d 39 5d 29 3a 28 5b :([0-5][0-9]):([
6da0: 30 2d 35 5d 5b 30 2d 39 5d 29 29 5c 73 5c 5b 28 0-5][0-9]))\s\[(
6db0: 5b 30 2d 39 61 2d 66 5d 7b 31 30 7d 29 5c 5d 5c [0-9a-f]{10})\]\
6dc0: 73 28 28 2e 7c 5c 73 29 2a 3f 29 5c 28 75 73 65 s((.|\s)*?)\(use
6dd0: 72 3a 5c 73 2b 28 2e 2b 29 5c 73 2b 74 61 67 73 r:\s+(.+)\s+tags
6de0: 3a 5c 73 2b 28 5c 77 2b 29 5c 29 2f 67 29 3b 0d :\s+(\w+)\)/g);.
6df0: 0a 20 20 20 20 20 20 20 20 2f 2f 20 76 61 72 20 . // var
6e00: 72 20 3d 20 54 65 78 74 44 6f 63 2e d0 9f d0 be r = TextDoc.....
6e10: d0 bb d1 83 d1 87 d0 b8 d1 82 d1 8c d0 a2 d0 b5 ................
6e20: d0 ba d1 81 d1 82 28 29 3b 0d 0a 20 20 20 20 20 ......();..
6e30: 20 20 20 2f 2f 20 76 61 72 20 6d 61 74 63 68 65 // var matche
6e40: 73 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 76 s;.. // v
6e50: 61 72 20 69 6e 64 65 78 3d 30 3b 0d 0a 20 20 20 ar index=0;..
6e60: 20 20 20 20 20 2f 2f 64 65 62 75 67 67 65 72 3b //debugger;
6e70: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 68 69 .. // whi
6e80: 6c 65 20 28 28 6d 61 74 63 68 65 73 20 3d 20 72 le ((matches = r
6e90: 65 2e 65 78 65 63 28 72 29 29 20 21 3d 20 6e 75 e.exec(r)) != nu
6ea0: 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 ll).. //
6eb0: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f {.. /
6ec0: 2f 20 76 61 72 20 6d 61 74 63 68 65 73 5f 63 6f / var matches_co
6ed0: 6d 6d 65 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 mment;..
6ee0: 20 20 20 20 2f 2f 20 76 61 72 20 74 65 78 74 20 // var text
6ef0: 3d 20 6d 61 74 63 68 65 73 5b 35 5d 0d 0a 20 20 = matches[5]..
6f00: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 68 69 // whi
6f10: 6c 65 20 28 28 6d 61 74 63 68 65 73 5f 63 6f 6d le ((matches_com
6f20: 6d 65 6e 74 20 3d 20 72 65 5f 63 6f 6d 6d 65 6e ment = re_commen
6f30: 74 2e 65 78 65 63 28 74 65 78 74 29 29 20 21 3d t.exec(text)) !=
6f40: 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 20 20 20 null)..
6f50: 20 20 20 20 2f 2f 20 7b 0d 0a 20 20 20 20 20 20 // {..
6f60: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 2f 2a 20 // /*
6f70: 76 61 72 20 63 6d 64 20 3d 20 22 22 3b 0d 0a 20 var cmd = "";..
6f80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f /
6f90: 2f 20 66 6f 72 20 28 76 61 72 20 69 3d 31 3b 20 / for (var i=1;
6fa0: 69 20 3c 20 6d 61 74 63 68 65 73 5f 63 6f 6d 6d i < matches_comm
6fb0: 65 6e 74 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 ent.length; i++)
6fc0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
6fd0: 20 20 20 20 20 20 2f 2f 20 76 61 72 20 63 6d 64 // var cmd
6fe0: 20 3d 20 63 6d 64 20 2b 20 22 20 22 2b 69 2b 22 = cmd + " "+i+"
6ff0: 20 2d 20 22 2b 6d 61 74 63 68 65 73 5f 63 6f 6d - "+matches_com
7000: 6d 65 6e 74 5b 69 5d 20 2a 2f 0d 0a 20 20 20 20 ment[i] */..
7010: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 ..
7020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f //
7030: 20 72 65 73 75 6c 74 5b 69 6e 64 65 78 5d 20 3d result[index] =
7040: 20 7b 22 76 65 72 73 69 6f 6e 22 3a 6d 61 74 63 {"version":matc
7050: 68 65 73 5f 63 6f 6d 6d 65 6e 74 5b 35 5d 2c 20 hes_comment[5],
7060: 22 63 6f 6d 6d 65 6e 74 22 3a 27 28 27 2b 6d 61 "comment":'('+ma
7070: 74 63 68 65 73 5f 63 6f 6d 6d 65 6e 74 5b 39 5d tches_comment[9]
7080: 2b 27 29 27 2b 27 20 27 2b 6d 61 74 63 68 65 73 +')'+' '+matches
7090: 5f 63 6f 6d 6d 65 6e 74 5b 36 5d 2c 20 22 64 61 _comment[6], "da
70a0: 74 65 22 3a 27 27 20 2b 6d 61 74 63 68 65 73 5b te":'' +matches[
70b0: 31 5d 2b 27 20 27 2b 6d 61 74 63 68 65 73 5f 63 1]+' '+matches_c
70c0: 6f 6d 6d 65 6e 74 5b 31 5d 2c 20 22 61 75 74 68 omment[1], "auth
70d0: 6f 72 22 3a 6d 61 74 63 68 65 73 5f 63 6f 6d 6d or":matches_comm
70e0: 65 6e 74 5b 38 5d 7d 0d 0a 20 20 20 20 20 20 20 ent[8]}..
70f0: 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6e 64 65 // inde
7100: 78 2b 2b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 x++;..
7110: 20 20 2f 2f 20 7d 0d 0a 20 20 20 20 20 20 20 20 // }..
7120: 2f 2f 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 // }.. }..
7130: 20 0d 0a 72 65 74 75 72 6e 20 72 65 73 75 6c 74 ..return result
7140: 3b 20 20 20 20 0d 0a 7d 20 2f 2f 20 66 6f 73 73 ; ..} // foss
7150: 69 6c 5f 67 65 74 4c 6f 67 0d 0a 0d 0a 66 75 6e il_getLog....fun
7160: 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 67 65 74 ction fossil_get
7170: 49 6e 66 6f 28 70 61 74 68 54 6f 46 69 6c 65 2c Info(pathToFile,
7180: 20 76 65 72 29 20 7b 0d 0a 20 20 20 20 76 61 72 ver) {.. var
7190: 20 72 65 73 75 6c 74 20 3d 20 7b 22 63 6f 6d 6d result = {"comm
71a0: 65 6e 74 22 3a 22 22 2c 20 22 66 69 6c 65 73 22 ent":"", "files"
71b0: 3a 5b 5d 7d 0d 0a 20 20 20 20 76 61 72 20 72 6f :[]}.. var ro
71c0: 6f 74 43 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 otCatalog = foss
71d0: 69 6c 5f 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f il_getRootCatalo
71e0: 67 28 70 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a g(pathToFile);..
71f0: 20 20 20 20 76 61 72 20 50 61 74 68 54 6f 46 6f var PathToFo
7200: 73 73 69 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d ssilOutput = Tem
7210: 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 pDir + "fossilst
7220: 61 74 75 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 atus.txt" // ...
7230: b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 ....... 1.. ....
7240: d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 .... .. utf-8, .
7250: b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 ............. ..
7260: d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 ...... .........
7270: 83 d1 81 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 ... fossil .....
7280: 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be ..... ..........
7290: 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 ............ ..
72a0: d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 76 61 72 20 ..... .. var
72b0: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 PathToBatFossil
72c0: 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 = TempDir + "fos
72d0: 73 69 6c 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 silTrue.bat"..
72e0: 20 20 76 61 72 20 54 65 78 74 44 6f 63 20 3d 20 var TextDoc =
72f0: 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d v8New("TextDocum
7300: 65 6e 74 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 ent");.. Text
7310: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 Doc.AddLine('cd
7320: 2f 64 20 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f /d "'+rootCatalo
7330: 67 2b 27 22 27 29 0d 0a 20 20 20 20 2f 2f 76 61 g+'"').. //va
7340: 72 20 d0 9f d1 83 d1 82 d1 8c d0 9e d1 82 d0 bd r ..............
7350: d0 be d1 81 d0 b8 d1 82 d0 b5 d0 bb d1 8c d0 bd ................
7360: d0 be d0 9a d0 be d1 80 d0 bd d0 b5 d0 b2 d0 be ................
7370: d0 b3 d0 be d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be ................
7380: d0 b3 d0 b0 20 3d 20 70 61 74 68 54 6f 46 69 6c .... = pathToFil
7390: 65 2e 72 65 70 6c 61 63 65 28 72 6f 6f 74 43 61 e.replace(rootCa
73a0: 74 61 6c 6f 67 2b 27 5c 5c 27 2c 20 27 27 29 3b talog+'\\', '');
73b0: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 64 .. TextDoc.Ad
73c0: 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 dLine(PathToFoss
73d0: 69 6c 2b 27 20 69 6e 66 6f 20 20 27 2b 76 65 72 il+' info '+ver
73e0: 20 2b 27 20 3e 20 22 27 2b 50 61 74 68 54 6f 46 +' > "'+PathToF
73f0: 6f 73 73 69 6c 4f 75 74 70 75 74 2b 27 22 27 29 ossilOutput+'"')
7400: 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 .. TextDoc.Wr
7410: 69 74 65 28 50 61 74 68 54 6f 42 61 74 46 6f 73 ite(PathToBatFos
7420: 73 69 6c 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a sil, 'cp866');..
7430: 20 20 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 ErrCode = Ws
7440: 68 53 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 hShell.Run('"'+P
7450: 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 athToBatFossil+'
7460: 22 27 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 54 "', 0, 1).. T
7470: 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d extDoc.Clear();.
7480: 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 52 65 61 . TextDoc.Rea
7490: 64 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 d(PathToFossilOu
74a0: 74 70 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d tput, "UTF-8");.
74b0: 0a 20 20 20 20 72 65 73 75 6c 74 5b 22 63 6f 6d . result["com
74c0: 6d 65 6e 74 22 5d 20 3d 20 54 65 78 74 44 6f 63 ment"] = TextDoc
74d0: 2e 47 65 74 54 65 78 74 28 29 3b 0d 0a 20 20 20 .GetText();..
74e0: 20 54 65 78 74 44 6f 63 2e 43 6c 65 61 72 28 29 TextDoc.Clear()
74f0: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ;.. TextDoc.A
7500: 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 22 27 ddLine('cd /d "'
7510: 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 22 27 +rootCatalog+'"'
7520: 29 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 41 ).. TextDoc.A
7530: 64 64 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 ddLine(PathToFos
7540: 73 69 6c 2b 27 20 74 69 6d 65 6c 69 6e 65 20 27 sil+' timeline '
7550: 2b 76 65 72 20 2b 27 20 2d 6e 20 31 20 2d 73 68 +ver +' -n 1 -sh
7560: 6f 77 66 69 6c 65 73 20 2d 74 20 63 69 20 3e 20 owfiles -t ci >
7570: 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f "'+PathToFossilO
7580: 75 74 70 75 74 2b 27 22 27 29 0d 0a 20 20 20 20 utput+'"')..
7590: 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 50 61 TextDoc.Write(Pa
75a0: 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 thToBatFossil, '
75b0: 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 45 72 cp866');.. Er
75c0: 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 6c 6c rCode = WshShell
75d0: 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 .Run('"'+PathToB
75e0: 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 30 2c atFossil+'"', 0,
75f0: 20 31 29 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 1).. TextDoc
7600: 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 54 .Clear();.. T
7610: 65 78 74 44 6f 63 2e 52 65 61 64 28 50 61 74 68 extDoc.Read(Path
7620: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 2c 20 ToFossilOutput,
7630: 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 20 20 69 "UTF-8");.. i
7640: 66 20 28 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 f (TextDoc.LineC
7650: 6f 75 6e 74 28 29 20 3d 3d 20 30 29 20 7b 0d 0a ount() == 0) {..
7660: 20 20 20 20 20 20 20 20 2f 2f 4d 65 73 73 61 67 //Messag
7670: 65 28 22 20 30 22 29 3b 0d 0a 20 20 20 20 20 20 e(" 0");..
7680: 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 20 return result
7690: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 76 61 72 .. }.. var
76a0: 20 69 6e 64 65 78 3d 30 3b 0d 0a 20 20 20 20 66 index=0;.. f
76b0: 6f 72 20 28 76 61 72 20 69 3d 31 3b 20 69 3c 3d or (var i=1; i<=
76c0: 54 65 78 74 44 6f 63 2e 4c 69 6e 65 43 6f 75 6e TextDoc.LineCoun
76d0: 74 28 29 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b t(); i++).. {
76e0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 72 20 .. var r
76f0: 3d 20 54 65 78 74 44 6f 63 2e 47 65 74 4c 69 6e = TextDoc.GetLin
7700: 65 28 69 29 3b 0d 0a 20 20 20 20 20 20 20 20 2f e(i);.. /
7710: 2a 20 69 66 20 28 72 2e 6c 65 6e 67 74 68 20 3e * if (r.length >
7720: 20 30 29 20 26 26 20 28 72 5b 30 5d 3d 3d 27 46 0) && (r[0]=='F
7730: 27 29 20 7b 20 2f 2f d1 84 d0 b0 d0 b9 d0 bb 0d ') { //.........
7740: 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
7750: 20 61 72 20 3d 20 72 2e 73 70 6c 69 74 28 27 20 ar = r.split('
7760: 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 20 2a ');.. } *
7770: 2f 0d 0a 20 20 20 20 20 20 20 20 2f 2f 69 66 20 /.. //if
7780: 28 72 2e 69 6e 64 65 78 4f 66 28 22 66 69 6c 65 (r.indexOf("file
7790: 20 6f 75 74 73 69 64 65 20 6f 66 22 29 21 3d 2d outside of")!=-
77a0: 31 29 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 1) return result
77b0: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 72 65 20 3d .. //re =
77c0: 20 6e 65 77 20 52 65 67 45 78 70 28 2f 28 46 29 new RegExp(/(F)
77d0: 5c 73 28 5c 53 2a 29 5c 73 28 5c 53 2a 29 2f 29 \s(\S*)\s(\S*)/)
77e0: 3b 0d 0a 20 20 20 20 20 20 20 20 72 65 20 3d 20 ;.. re =
77f0: 6e 65 77 20 52 65 67 45 78 70 28 2f 5c 73 2a 28 new RegExp(/\s*(
7800: 45 44 49 54 45 44 7c 41 44 44 45 44 7c 44 45 4c EDITED|ADDED|DEL
7810: 45 54 45 44 29 5c 73 28 2e 2a 29 2f 29 3b 0d 0a ETED)\s(.*)/);..
7820: 20 20 20 20 20 20 20 20 76 61 72 20 6d 61 74 68 var math
7830: 65 73 20 3d 20 72 2e 6d 61 74 63 68 28 72 65 29 es = r.match(re)
7840: 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 4d 65 73 ;.. //Mes
7850: 73 61 67 65 28 22 20 31 22 29 3b 20 0d 0a 20 20 sage(" 1"); ..
7860: 20 20 20 20 20 20 69 66 20 28 6d 61 74 68 65 73 if (mathes
7870: 20 26 26 20 6d 61 74 68 65 73 2e 6c 65 6e 67 74 && mathes.lengt
7880: 68 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 h) {..
7890: 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..
78a0: 2f 2f 4d 65 73 73 61 67 65 28 22 20 32 22 20 2b //Message(" 2" +
78b0: 20 6d 61 74 68 65 73 5b 31 5d 29 3b 0d 0a 20 20 mathes[1]);..
78c0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f d0 bc d0 //...
78d0: bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2e ................
78e0: 72 65 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 27 replace(/\//g, '
78f0: 5c 5c 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 \\')..
7900: 20 20 66 75 6c 6c 70 61 74 68 66 69 6c 65 20 3d fullpathfile =
7910: 20 6d 61 74 68 65 73 5b 32 5d 2e 72 65 70 6c 61 mathes[2].repla
7920: 63 65 28 2f 5c 5c 73 2f 67 2c 20 27 20 27 29 20 ce(/\\s/g, ' ')
7930: 2f 2f d0 bf d1 80 d0 be d0 b1 d0 b5 d0 bb 20 d1 //............ .
7940: 82 d0 b0 d0 ba 20 66 6f 73 73 69 6c 20 d0 be d1 ..... fossil ...
7950: 82 d0 be d0 b1 d1 80 d0 b0 d0 b6 d0 b0 d0 b5 d1 ................
7960: 82 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....
7970: 2f 2f 66 75 6c 6c 70 61 74 68 66 69 6c 65 20 3d //fullpathfile =
7980: 20 66 75 6c 6c 70 61 74 68 66 69 6c 65 2e 72 65 fullpathfile.re
7990: 70 6c 61 63 65 28 2f 5c 2f 2f 67 2c 20 27 5c 5c place(/\//g, '\\
79a0: 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ');..
79b0: 20 72 65 73 75 6c 74 5b 27 66 69 6c 65 73 27 5d result['files']
79c0: 5b 69 6e 64 65 78 5d 20 3d 20 7b 22 76 65 72 73 [index] = {"vers
79d0: 69 6f 6e 22 3a 76 65 72 2c 20 22 66 69 6c 65 22 ion":ver, "file"
79e0: 3a 27 27 2b 66 75 6c 6c 70 61 74 68 66 69 6c 65 :''+fullpathfile
79f0: 2c 20 22 73 74 61 74 75 73 22 3a 6d 61 74 68 65 , "status":mathe
7a00: 73 5b 31 5d 2c 20 22 66 75 6c 6c 70 61 74 68 22 s[1], "fullpath"
7a10: 3a 46 53 4f 2e 42 75 69 6c 64 50 61 74 68 28 72 :FSO.BuildPath(r
7a20: 6f 6f 74 43 61 74 61 6c 6f 67 2c 20 66 75 6c 6c ootCatalog, full
7a30: 70 61 74 68 66 69 6c 65 2e 72 65 70 6c 61 63 65 pathfile.replace
7a40: 28 2f 5c 2f 2f 67 2c 20 27 5c 5c 27 29 29 7d 0d (/\//g, '\\'))}.
7a50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 . ind
7a60: 65 78 2b 2b 3b 0d 0a 20 20 20 20 20 20 20 20 7d ex++;.. }
7a70: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 72 65 74 .. }.. ret
7a80: 75 72 6e 20 72 65 73 75 6c 74 0d 0a 7d 0d 0a 0d urn result..}...
7a90: 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c .function fossil
7aa0: 5f 67 65 74 4c 69 73 74 42 72 61 6e 63 68 28 70 _getListBranch(p
7ab0: 61 74 68 54 6f 46 69 6c 65 2c 20 69 6e 64 65 78 athToFile, index
7ac0: 29 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 ) {.. .. r
7ad0: 65 73 75 6c 74 20 3d 20 7b 22 76 61 6c 75 65 6c esult = {"valuel
7ae0: 69 73 74 22 3a 76 38 4e 65 77 28 22 56 61 6c 75 ist":v8New("Valu
7af0: 65 4c 69 73 74 22 29 2c 20 22 69 6e 64 65 78 22 eList"), "index"
7b00: 3a 2d 31 7d 0d 0a 20 20 20 20 2f 2f 72 65 73 75 :-1}.. //resu
7b10: 6c 74 20 3d 20 76 38 4e 65 77 28 22 56 61 6c 75 lt = v8New("Valu
7b20: 65 4c 69 73 74 22 29 3b 0d 0a 20 20 20 20 76 61 eList");.. va
7b30: 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 20 3d 20 r rootCatalog =
7b40: 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f 74 43 61 fossil_getRootCa
7b50: 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 69 6c 65 talog(pathToFile
7b60: 29 3b 0d 0a 20 20 20 20 76 61 72 20 50 61 74 68 );.. var Path
7b70: 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 20 3d ToFossilOutput =
7b80: 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 TempDir + "foss
7b90: 69 6c 73 74 61 74 75 73 2e 74 78 74 22 20 2f 2f ilstatus.txt" //
7ba0: 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 a1 20 .......... 1..
7bb0: d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 74 66 2d ........ .. utf-
7bc0: 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d0 8, .............
7bd0: bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 82 d0 . ........ .....
7be0: b0 d1 82 d1 83 d1 81 20 66 6f 73 73 69 6c 20 d0 ....... fossil .
7bf0: bf d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 82 d0 be ......... ......
7c00: d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 d0 b5 d0 .... ...........
7c10: bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 20 20 20 . ....... ..
7c20: 76 61 72 20 50 61 74 68 54 6f 42 61 74 46 6f 73 var PathToBatFos
7c30: 73 69 6c 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 sil = TempDir +
7c40: 22 66 6f 73 73 69 6c 54 72 75 65 2e 62 61 74 22 "fossilTrue.bat"
7c50: 0d 0a 20 20 20 20 76 61 72 20 54 65 78 74 44 6f .. var TextDo
7c60: 63 20 3d 20 76 38 4e 65 77 28 22 54 65 78 74 44 c = v8New("TextD
7c70: 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 20 20 ocument");..
7c80: 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 TextDoc.AddLine(
7c90: 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 43 61 'cd /d "'+rootCa
7ca0: 74 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 20 20 talog+'"')..
7cb0: 2f 2f 76 61 72 20 d0 9f d1 83 d1 82 d1 8c d0 9e //var ..........
7cc0: d1 82 d0 bd d0 be d1 81 d0 b8 d1 82 d0 b5 d0 bb ................
7cd0: d1 8c d0 bd d0 be d0 9a d0 be d1 80 d0 bd d0 b5 ................
7ce0: d0 b2 d0 be d0 b3 d0 be d0 9a d0 b0 d1 82 d0 b0 ................
7cf0: d0 bb d0 be d0 b3 d0 b0 20 3d 20 70 61 74 68 54 ........ = pathT
7d00: 6f 46 69 6c 65 2e 72 65 70 6c 61 63 65 28 72 6f oFile.replace(ro
7d10: 6f 74 43 61 74 61 6c 6f 67 2b 27 5c 5c 27 2c 20 otCatalog+'\\',
7d20: 27 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f '');.. TextDo
7d30: 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 6f c.AddLine(PathTo
7d40: 46 6f 73 73 69 6c 2b 27 20 62 72 61 6e 63 68 20 Fossil+' branch
7d50: 20 3e 20 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 > "'+PathToFoss
7d60: 69 6c 4f 75 74 70 75 74 2b 27 22 27 29 0d 0a 20 ilOutput+'"')..
7d70: 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 TextDoc.Write
7d80: 28 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c (PathToBatFossil
7d90: 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 , 'cp866');..
7da0: 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 ErrCode = WshSh
7db0: 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 ell.Run('"'+Path
7dc0: 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c ToBatFossil+'"',
7dd0: 20 30 2c 20 31 29 0d 0a 20 20 20 20 54 65 78 74 0, 1).. Text
7de0: 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 Doc.Clear();..
7df0: 20 20 54 65 78 74 44 6f 63 2e 52 65 61 64 28 50 TextDoc.Read(P
7e00: 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 athToFossilOutpu
7e10: 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 20 t, "UTF-8");..
7e20: 20 20 76 61 72 20 72 65 20 3d 20 6e 65 77 20 52 var re = new R
7e30: 65 67 45 78 70 28 2f 28 5c 73 2a 7c 5c 2a 5c 73 egExp(/(\s*|\*\s
7e40: 29 28 5c 53 2a 29 5c 6e 2f 67 29 3b 0d 0a 20 20 )(\S*)\n/g);..
7e50: 20 20 76 61 72 20 72 20 3d 20 54 65 78 74 44 6f var r = TextDo
7e60: 63 2e d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d1 82 c...............
7e70: d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 82 28 29 3b 0d ............();.
7e80: 0a 20 20 20 20 76 61 72 20 6d 61 74 63 68 65 73 . var matches
7e90: 3b 0d 0a 20 20 20 20 76 61 72 20 69 6e 64 65 78 ;.. var index
7ea0: 3d 30 3b 0d 0a 20 20 20 20 2f 2f 64 65 62 75 67 =0;.. //debug
7eb0: 67 65 72 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 ger;.. while
7ec0: 28 28 6d 61 74 63 68 65 73 20 3d 20 72 65 2e 65 ((matches = re.e
7ed0: 78 65 63 28 72 29 29 20 21 3d 20 6e 75 6c 6c 29 xec(r)) != null)
7ee0: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 .. {..
7ef0: 20 72 65 73 75 6c 74 5b 27 76 61 6c 75 65 6c 69 result['valueli
7f00: 73 74 27 5d 2e 61 64 64 28 6d 61 74 63 68 65 73 st'].add(matches
7f10: 5b 32 5d 2c 20 6d 61 74 63 68 65 73 5b 32 5d 29 [2], matches[2])
7f20: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 .. if (ma
7f30: 74 63 68 65 73 5b 31 5d 2e 69 6e 64 65 78 4f 66 tches[1].indexOf
7f40: 28 22 5c 2a 22 29 21 3d 2d 31 29 20 72 65 73 75 ("\*")!=-1) resu
7f50: 6c 74 5b 22 69 6e 64 65 78 22 5d 3d 69 6e 64 65 lt["index"]=inde
7f60: 78 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 64 65 x;.. inde
7f70: 78 2b 2b 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 x++;.. }..
7f80: 20 2f 2f d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8 d0 //.............
7f90: bc 20 d1 81 d1 8e d0 b4 d0 b0 20 d0 ba d0 be d0 . ........ .....
7fa0: bc d0 bc d0 b0 d0 bd d0 b4 d1 8b 20 d1 81 d0 be ........... ....
7fb0: d0 b7 d0 b4 d0 b0 d0 bd d0 b8 d1 8f 20 d0 bd d0 ............ ...
7fc0: be d0 b2 d0 be d0 b9 20 d0 b2 d0 b5 d1 82 d0 ba ....... ........
7fd0: d0 b8 2e 2e 2e 0d 0a 20 20 20 20 72 65 73 75 6c ....... resul
7fe0: 74 5b 27 76 61 6c 75 65 6c 69 73 74 27 5d 2e 61 t['valuelist'].a
7ff0: 64 64 28 22 4e 45 57 42 52 41 4e 43 48 22 2c 20 dd("NEWBRANCH",
8000: 22 d0 9d d0 be d0 b2 d0 b0 d1 8f 20 d0 b2 d0 b5 ".......... ....
8010: d1 82 d0 ba d0 b0 22 29 3b 0d 0a 20 20 20 20 72 ......");.. r
8020: 65 73 75 6c 74 5b 27 76 61 6c 75 65 6c 69 73 74 esult['valuelist
8030: 27 5d 2e 61 64 64 28 22 4e 45 57 42 52 41 4e 43 '].add("NEWBRANC
8040: 48 50 52 49 56 41 54 45 22 2c 20 22 d0 9d d0 be HPRIVATE", "....
8050: d0 b2 d0 b0 d1 8f 20 d0 bf d1 80 d0 b8 d0 b2 d0 ...... .........
8060: b0 d1 82 d0 bd d0 b0 d1 8f 20 d0 b2 d0 b5 d1 82 ......... ......
8070: d0 ba d0 b0 22 29 3b 0d 0a 20 20 20 20 0d 0a 20 ....");.. ..
8080: 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 return result
8090: 3b 0d 0a 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 66 75 ;.. ..}....fu
80a0: 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c 5f 73 77 nction fossil_sw
80b0: 69 74 68 42 72 61 6e 63 68 20 28 70 61 74 68 54 ithBranch (pathT
80c0: 6f 46 69 6c 65 2c 20 62 72 61 6e 63 68 29 20 7b oFile, branch) {
80d0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69 66 20 28 .. .. if (
80e0: 28 62 72 61 6e 63 68 20 3d 3d 20 22 4e 45 57 42 (branch == "NEWB
80f0: 52 41 4e 43 48 22 29 20 7c 7c 20 28 62 72 61 6e RANCH") || (bran
8100: 63 68 20 3d 3d 20 22 4e 45 57 42 52 41 4e 43 48 ch == "NEWBRANCH
8110: 50 52 49 56 41 54 45 22 29 29 20 72 65 74 75 72 PRIVATE")) retur
8120: 6e 20 66 6f 73 73 69 6c 5f 63 72 65 61 74 65 42 n fossil_createB
8130: 72 61 6e 63 68 28 70 61 74 68 54 6f 46 69 6c 65 ranch(pathToFile
8140: 2c 20 62 72 61 6e 63 68 29 3b 0d 0a 20 20 20 20 , branch);..
8150: 76 61 72 20 72 6f 6f 74 43 61 74 61 6c 6f 67 20 var rootCatalog
8160: 3d 20 66 6f 73 73 69 6c 5f 67 65 74 52 6f 6f 74 = fossil_getRoot
8170: 43 61 74 61 6c 6f 67 28 70 61 74 68 54 6f 46 69 Catalog(pathToFi
8180: 6c 65 29 3b 0d 0a 20 20 20 20 76 61 72 20 50 61 le);.. var Pa
8190: 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 75 74 thToFossilOutput
81a0: 20 3d 20 54 65 6d 70 44 69 72 20 2b 20 22 66 6f = TempDir + "fo
81b0: 73 73 69 6c 73 74 61 74 75 73 2e 74 78 74 22 20 ssilstatus.txt"
81c0: 2f 2f 20 d0 9f d0 b8 d1 88 d0 b5 d0 bc 20 31 d0 // .......... 1.
81d0: a1 20 d1 84 d0 b0 d0 b9 d0 bb 20 d0 b2 20 75 74 . ........ .. ut
81e0: 66 2d 38 2c 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 f-8, ...........
81f0: b8 d0 bc 20 d1 82 d1 83 d0 b4 d0 b0 20 d1 81 d1 ... ........ ...
8200: 82 d0 b0 d1 82 d1 83 d1 81 20 66 6f 73 73 69 6c ......... fossil
8210: 20 d0 bf d0 be d1 81 d0 bb d0 b5 20 d1 8d d1 82 .......... ....
8220: d0 be d0 b3 d0 be 20 d1 87 d0 b8 d1 82 d0 b0 d0 ...... .........
8230: b5 d0 bc 20 d0 b5 d0 b3 d0 be 2e 20 0d 0a 20 20 ... ....... ..
8240: 20 20 76 61 72 20 50 61 74 68 54 6f 42 61 74 46 var PathToBatF
8250: 6f 73 73 69 6c 20 3d 20 54 65 6d 70 44 69 72 20 ossil = TempDir
8260: 2b 20 22 66 6f 73 73 69 6c 54 72 75 65 2e 62 61 + "fossilTrue.ba
8270: 74 22 0d 0a 20 20 20 20 76 61 72 20 54 65 78 74 t".. var Text
8280: 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54 65 78 Doc = v8New("Tex
8290: 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a 20 20 tDocument");..
82a0: 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e TextDoc.AddLin
82b0: 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 e('cd /d "'+root
82c0: 43 61 74 61 6c 6f 67 2b 27 22 27 29 0d 0a 20 20 Catalog+'"')..
82d0: 20 20 2f 2f 76 61 72 20 d0 9f d1 83 d1 82 d1 8c //var ........
82e0: d0 9e d1 82 d0 bd d0 be d1 81 d0 b8 d1 82 d0 b5 ................
82f0: d0 bb d1 8c d0 bd d0 be d0 9a d0 be d1 80 d0 bd ................
8300: d0 b5 d0 b2 d0 be d0 b3 d0 be d0 9a d0 b0 d1 82 ................
8310: d0 b0 d0 bb d0 be d0 b3 d0 b0 20 3d 20 70 61 74 .......... = pat
8320: 68 54 6f 46 69 6c 65 2e 72 65 70 6c 61 63 65 28 hToFile.replace(
8330: 72 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 5c 5c 27 rootCatalog+'\\'
8340: 2c 20 27 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 , '');.. Text
8350: 44 6f 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 Doc.AddLine(Path
8360: 54 6f 46 6f 73 73 69 6c 2b 27 20 75 70 64 61 74 ToFossil+' updat
8370: 65 20 27 2b 20 62 72 61 6e 63 68 20 2b 27 20 3e e '+ branch +' >
8380: 20 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c "'+PathToFossil
8390: 4f 75 74 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 Output+'"');..
83a0: 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 65 28 TextDoc.Write(
83b0: 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 6c 2c PathToBatFossil,
83c0: 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 20 20 'cp866');..
83d0: 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 68 65 ErrCode = WshShe
83e0: 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 68 54 ll.Run('"'+PathT
83f0: 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 2c 20 oBatFossil+'"',
8400: 30 2c 20 31 29 0d 0a 20 20 20 20 54 65 78 74 44 0, 1).. TextD
8410: 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 oc.Clear();..
8420: 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d return true;..}
8430: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 ....function fos
8440: 73 69 6c 5f 63 72 65 61 74 65 42 72 61 6e 63 68 sil_createBranch
8450: 28 70 61 74 68 54 6f 46 69 6c 65 2c 20 62 72 61 (pathToFile, bra
8460: 6e 63 68 2c 20 74 79 70 65 29 20 7b 0d 0a 20 20 nch, type) {..
8470: 20 20 0d 0a 20 20 20 20 76 61 72 20 6e 61 6d 65 .. var name
8480: 20 3d 20 22 22 3b 0d 0a 20 20 20 20 76 61 72 20 = "";.. var
8490: 63 68 65 63 6b 69 6e 20 3d 20 22 22 3b 0d 0a 20 checkin = "";..
84a0: 20 20 20 69 66 20 28 74 79 70 65 20 3d 3d 20 75 if (type == u
84b0: 6e 64 65 66 69 6e 65 64 29 20 74 79 70 65 20 3d ndefined) type =
84c0: 20 27 27 3b 0d 0a 20 20 20 20 69 66 20 28 62 72 '';.. if (br
84d0: 61 6e 63 68 20 3d 3d 20 22 4e 45 57 42 52 41 4e anch == "NEWBRAN
84e0: 43 48 50 52 49 56 41 54 45 22 29 20 7b 0d 0a 20 CHPRIVATE") {..
84f0: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
8500: 20 74 79 70 65 20 3d 20 22 2d 2d 70 72 69 76 61 type = "--priva
8510: 74 65 22 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 te";.. }..
8520: 20 0d 0a 20 20 20 20 69 66 20 28 28 62 72 61 6e .. if ((bran
8530: 63 68 20 3d 3d 20 22 4e 45 57 42 52 41 4e 43 48 ch == "NEWBRANCH
8540: 22 29 20 7c 7c 20 28 62 72 61 6e 63 68 20 3d 3d ") || (branch ==
8550: 20 22 4e 45 57 42 52 41 4e 43 48 50 52 49 56 41 "NEWBRANCHPRIVA
8560: 54 45 22 29 29 7b 0d 0a 20 20 20 20 20 20 20 20 TE")){..
8570: 76 61 72 20 76 62 73 20 3d 20 61 64 64 69 6e 73 var vbs = addins
8580: 2e 62 79 55 6e 69 71 75 65 4e 61 6d 65 28 22 76 .byUniqueName("v
8590: 62 73 22 29 2e 6f 62 6a 65 63 74 0d 0a 20 20 20 bs").object..
85a0: 20 20 20 20 20 76 62 73 2e 76 61 72 30 20 3d 20 vbs.var0 =
85b0: 22 22 3b 20 76 62 73 2e 76 61 72 31 20 3d 20 22 ""; vbs.var1 = "
85c0: d0 92 d0 b2 d0 b5 d0 b4 d0 b8 d1 82 d0 b5 20 d0 .............. .
85d0: b8 d0 bc d1 8f 20 d0 b2 d0 b5 d1 82 d0 ba d0 b8 ..... ..........
85e0: 22 3b 20 76 62 73 2e 76 61 72 32 20 3d 20 30 2c "; vbs.var2 = 0,
85f0: 20 76 62 73 2e 76 61 72 33 20 3d 20 66 61 6c 73 vbs.var3 = fals
8600: 65 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 e;.. if (
8610: 76 62 73 2e 44 6f 45 76 61 6c 28 22 49 6e 70 75 vbs.DoEval("Inpu
8620: 74 53 74 72 69 6e 67 28 76 61 72 30 2c 20 76 61 tString(var0, va
8630: 72 31 2c 20 76 61 72 32 2c 20 76 61 72 33 29 22 r1, var2, var3)"
8640: 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 )) {..
8650: 20 20 76 61 72 20 6d 65 73 73 61 67 65 20 20 3d var message =
8660: 20 76 62 73 2e 76 61 72 30 3b 0d 0a 20 20 20 20 vbs.var0;..
8670: 20 20 20 20 20 20 20 20 6e 61 6d 65 20 3d 20 6d name = m
8680: 65 73 73 61 67 65 3b 0d 0a 20 20 20 20 20 20 20 essage;..
8690: 20 7d 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b }.. } else {
86a0: 0d 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 20 3d .. name =
86b0: 20 62 72 61 6e 63 68 3b 0d 0a 20 20 20 20 7d 0d branch;.. }.
86c0: 0a 20 20 20 20 0d 0a 20 20 20 20 69 66 20 28 6e . .. if (n
86d0: 61 6d 65 2e 6c 65 6e 67 74 68 3d 3d 30 29 20 7b ame.length==0) {
86e0: 0d 0a 20 20 20 20 20 20 20 20 4d 65 73 73 61 67 .. Messag
86f0: 65 28 27 d0 98 d0 bc d1 8f 20 d0 b2 d0 b5 d1 82 e('...... ......
8700: d0 ba d0 b8 20 d0 b4 d0 bb d1 8f 20 d1 81 d0 be .... ...... ....
8710: d0 b7 d0 b4 d0 b0 d0 bd d0 b8 d1 8f 20 d0 bf d1 ............ ...
8720: 83 d1 81 d1 82 d0 be d0 b5 2e 27 29 3b 0d 0a 20 ..........');..
8730: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 return fa
8740: 6c 73 65 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 lse;.. }..
8750: 20 0d 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 43 .. var rootC
8760: 61 74 61 6c 6f 67 20 3d 20 66 6f 73 73 69 6c 5f atalog = fossil_
8770: 67 65 74 52 6f 6f 74 43 61 74 61 6c 6f 67 28 70 getRootCatalog(p
8780: 61 74 68 54 6f 46 69 6c 65 29 3b 0d 0a 20 20 20 athToFile);..
8790: 20 76 61 72 20 50 61 74 68 54 6f 46 6f 73 73 69 var PathToFossi
87a0: 6c 4f 75 74 70 75 74 20 3d 20 54 65 6d 70 44 69 lOutput = TempDi
87b0: 72 20 2b 20 22 66 6f 73 73 69 6c 73 74 61 74 75 r + "fossilstatu
87c0: 73 2e 74 78 74 22 20 2f 2f 20 d0 9f d0 b8 d1 88 s.txt" // ......
87d0: d0 b5 d0 bc 20 31 d0 a1 20 d1 84 d0 b0 d0 b9 d0 .... 1.. .......
87e0: bb 20 d0 b2 20 75 74 66 2d 38 2c 20 d0 b2 d1 8b . .. utf-8, ....
87f0: d0 b2 d0 be d0 b4 d0 b8 d0 bc 20 d1 82 d1 83 d0 .......... .....
8800: b4 d0 b0 20 d1 81 d1 82 d0 b0 d1 82 d1 83 d1 81 ... ............
8810: 20 66 6f 73 73 69 6c 20 d0 bf d0 be d1 81 d0 bb fossil ........
8820: d0 b5 20 d1 8d d1 82 d0 be d0 b3 d0 be 20 d1 87 .. .......... ..
8830: d0 b8 d1 82 d0 b0 d0 b5 d0 bc 20 d0 b5 d0 b3 d0 .......... .....
8840: be 2e 20 0d 0a 20 20 20 20 76 61 72 20 50 61 74 .. .. var Pat
8850: 68 54 6f 42 61 74 46 6f 73 73 69 6c 20 3d 20 54 hToBatFossil = T
8860: 65 6d 70 44 69 72 20 2b 20 22 66 6f 73 73 69 6c empDir + "fossil
8870: 54 72 75 65 2e 62 61 74 22 0d 0a 20 20 20 20 76 True.bat".. v
8880: 61 72 20 54 65 78 74 44 6f 63 20 3d 20 76 38 4e ar TextDoc = v8N
8890: 65 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 ew("TextDocument
88a0: 22 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 ");.. TextDoc
88b0: 2e 41 64 64 4c 69 6e 65 28 27 63 64 20 2f 64 20 .AddLine('cd /d
88c0: 22 27 2b 72 6f 6f 74 43 61 74 61 6c 6f 67 2b 27 "'+rootCatalog+'
88d0: 22 27 29 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f "');.. TextDo
88e0: 63 2e 41 64 64 4c 69 6e 65 28 50 61 74 68 54 6f c.AddLine(PathTo
88f0: 46 6f 73 73 69 6c 20 2b 27 20 73 74 61 74 75 73 Fossil +' status
8900: 20 3e 20 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 > "'+PathToFoss
8910: 69 6c 4f 75 74 70 75 74 2b 27 22 27 29 3b 0d 0a ilOutput+'"');..
8920: 20 20 20 20 54 65 78 74 44 6f 63 2e 57 72 69 74 TextDoc.Writ
8930: 65 28 50 61 74 68 54 6f 42 61 74 46 6f 73 73 69 e(PathToBatFossi
8940: 6c 2c 20 27 63 70 38 36 36 27 29 3b 0d 0a 20 20 l, 'cp866');..
8950: 20 20 45 72 72 43 6f 64 65 20 3d 20 57 73 68 53 ErrCode = WshS
8960: 68 65 6c 6c 2e 52 75 6e 28 27 22 27 2b 50 61 74 hell.Run('"'+Pat
8970: 68 54 6f 42 61 74 46 6f 73 73 69 6c 2b 27 22 27 hToBatFossil+'"'
8980: 2c 20 30 2c 20 31 29 0d 0a 20 20 20 20 54 65 78 , 0, 1).. Tex
8990: 74 44 6f 63 2e 43 6c 65 61 72 28 29 3b 0d 0a 20 tDoc.Clear();..
89a0: 20 20 20 54 65 78 74 44 6f 63 2e 52 65 61 64 28 TextDoc.Read(
89b0: 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f 75 74 70 PathToFossilOutp
89c0: 75 74 2c 20 22 55 54 46 2d 38 22 29 3b 0d 0a 20 ut, "UTF-8");..
89d0: 20 20 20 76 61 72 20 72 65 20 3d 20 6e 65 77 20 var re = new
89e0: 52 65 67 45 78 70 28 2f 5e 63 68 65 63 6b 6f 75 RegExp(/^checkou
89f0: 74 3a 5c 73 2a 28 5c 77 2a 29 5c 73 2a 2f 6d 29 t:\s*(\w*)\s*/m)
8a00: 3b 0d 0a 20 20 20 20 76 61 72 20 72 20 3d 20 54 ;.. var r = T
8a10: 65 78 74 44 6f 63 2e d0 9f d0 be d0 bb d1 83 d1 extDoc..........
8a20: 87 d0 b8 d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 ................
8a30: 82 28 29 3b 0d 0a 20 20 20 20 76 61 72 20 6d 61 .();.. var ma
8a40: 74 63 68 65 73 20 3d 20 72 2e 6d 61 74 63 68 28 tches = r.match(
8a50: 72 65 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 re);.. ..
8a60: 69 66 20 28 6d 61 74 63 68 65 73 20 26 26 20 6d if (matches && m
8a70: 61 74 63 68 65 73 2e 6c 65 6e 67 74 68 29 20 7b atches.length) {
8a80: 0d 0a 20 20 20 20 20 20 20 20 63 68 65 63 6b 69 .. checki
8a90: 6e 20 3d 20 6d 61 74 63 68 65 73 5b 31 5d 3b 0d n = matches[1];.
8aa0: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 . }.. ..
8ab0: 20 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e TextDoc.AddLin
8ac0: 65 28 27 63 64 20 2f 64 20 22 27 2b 72 6f 6f 74 e('cd /d "'+root
8ad0: 43 61 74 61 6c 6f 67 2b 27 22 27 29 3b 0d 0a 20 Catalog+'"');..
8ae0: 20 20 20 2f 2f 54 65 78 74 44 6f 63 2e 41 64 64 //TextDoc.Add
8af0: 4c 69 6e 65 28 50 61 74 68 54 6f 46 6f 73 73 69 Line(PathToFossi
8b00: 6c 20 2b 27 20 62 72 61 6e 63 68 20 6e 65 77 20 l +' branch new
8b10: 27 2b 6e 61 6d 65 2b 27 20 27 2b 63 68 65 63 6b '+name+' '+check
8b20: 69 6e 2b 27 20 27 2b 74 79 70 65 2b 27 20 3e 20 in+' '+type+' >
8b30: 22 27 2b 50 61 74 68 54 6f 46 6f 73 73 69 6c 4f "'+PathToFossilO
8b40: 75 74 70 75 74 2b 27 22 27 29 3b 0d 0a 20 20 20 utput+'"');..
8b50: 20 54 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 TextDoc.AddLine
8b60: 28 50 61 74 68 54 6f 46 6f 73 73 69 6c 20 2b 27 (PathToFossil +'
8b70: 20 62 72 61 6e 63 68 20 6e 65 77 20 27 2b 6e 61 branch new '+na
8b80: 6d 65 2b 27 20 27 2b 63 68 65 63 6b 69 6e 2b 27 me+' '+checkin+'
8b90: 20 27 2b 74 79 70 65 29 3b 0d 0a 20 20 20 20 54 '+type);.. T
8ba0: 65 78 74 44 6f 63 2e 41 64 64 4c 69 6e 65 28 27 extDoc.AddLine('
8bb0: 65 78 69 74 27 29 3b 0d 0a 20 20 20 20 54 65 78 exit');.. Tex
8bc0: 74 44 6f 63 2e 57 72 69 74 65 28 50 61 74 68 54 tDoc.Write(PathT
8bd0: 6f 42 61 74 46 6f 73 73 69 6c 2c 20 27 63 70 38 oBatFossil, 'cp8
8be0: 36 36 27 29 3b 0d 0a 20 20 20 20 45 72 72 43 6f 66');.. ErrCo
8bf0: 64 65 20 3d 20 57 73 68 53 68 65 6c 6c 2e 52 75 de = WshShell.Ru
8c00: 6e 28 27 22 27 2b 50 61 74 68 54 6f 42 61 74 46 n('"'+PathToBatF
8c10: 6f 73 73 69 6c 2b 27 22 27 2c 20 31 2c 20 31 29 ossil+'"', 1, 1)
8c20: 3b 0d 0a 20 20 20 20 54 65 78 74 44 6f 63 2e 43 ;.. TextDoc.C
8c30: 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 66 6f 73 lear();.. fos
8c40: 73 69 6c 5f 73 77 69 74 68 42 72 61 6e 63 68 28 sil_swithBranch(
8c50: 70 61 74 68 54 6f 46 69 6c 65 2c 20 6e 61 6d 65 pathToFile, name
8c60: 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65 );.. .. re
8c70: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d turn true;..}...
8c80: 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 73 73 69 6c .function fossil
8c90: 5f 67 65 74 4d 69 73 73 69 6e 67 46 69 6c 65 73 _getMissingFiles
8ca0: 28 70 61 74 68 54 6f 46 69 6c 65 29 20 7b 0d 0a (pathToFile) {..
8cb0: 20 20 20 20 76 61 72 20 d0 bb d0 9a d0 b0 d1 82 var ........
8cc0: d0 b0 d0 bb d0 be d0 b3 20 3d 20 70 61 74 68 54 ........ = pathT
8cd0: 6f 46 69 6c 65 0d 0a 20 20 20 20 76 61 72 20 72 oFile.. var r
8ce0: 65 73 75 6c 74 20 3d 20 5b 5d 0d 0a 20 20 20 20 esult = []..
8cf0: 69 66 20 28 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 if (............
8d00: d1 82 d1 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 ................
8d10: d0 b9 d0 bb d0 be d0 b2 d0 98 d0 a1 d1 82 d0 b0 ................
8d20: d1 82 d1 83 d1 81 d0 be d0 b2 5b d0 bb d0 9a d0 ..........[.....
8d30: b0 d1 82 d0 b0 d0 bb d0 be d0 b3 5d 20 3d 3d 20 ...........] ==
8d40: 75 6e 64 65 66 69 6e 65 64 29 20 72 65 74 75 72 undefined) retur
8d50: 6e 20 72 65 73 75 6c 74 0d 0a 20 20 20 20 d0 a1 n result.. ..
8d60: d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 ................
8d70: d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 ................
8d80: 20 3d 20 d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 = .............
8d90: 82 d1 81 d1 82 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 ................
8da0: b9 d0 bb d0 be d0 b2 d0 98 d0 a1 d1 82 d0 b0 d1 ................
8db0: 82 d1 83 d1 81 d0 be d0 b2 5b d0 bb d0 9a d0 b0 .........[......
8dc0: d1 82 d0 b0 d0 bb d0 be d0 b3 5d 3b 0d 0a 20 20 ..........];..
8dd0: 20 20 69 66 20 28 d0 a1 d0 be d0 be d1 82 d0 b2 if (..........
8de0: d0 b5 d1 82 d1 81 d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 ................
8df0: d0 b9 d0 bb d0 be d0 b2 20 3d 3d 20 75 6e 64 65 ........ == unde
8e00: 66 69 6e 65 64 29 20 72 65 74 75 72 6e 20 72 65 fined) return re
8e10: 73 75 6c 74 0d 0a 20 20 20 20 76 61 72 20 69 6e sult.. var in
8e20: 64 65 78 20 3d 20 30 3b 0d 0a 20 20 20 20 66 6f dex = 0;.. fo
8e30: 72 20 28 76 61 72 20 6b 65 79 20 69 6e 20 d0 a1 r (var key in ..
8e40: d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d0 b2 ................
8e50: d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be d0 b2 ................
8e60: 29 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 ){.. if (
8e70: d0 a1 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 ................
8e80: d0 b2 d0 b8 d0 b5 d0 a4 d0 b0 d0 b9 d0 bb d0 be ................
8e90: d0 b2 5b 6b 65 79 5d 3d 3d 22 44 45 4c 45 54 45 ..[key]=="DELETE
8ea0: 44 22 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 D") {..
8eb0: 20 20 20 72 65 73 75 6c 74 5b 69 6e 64 65 78 5d result[index]
8ec0: 20 3d 20 6b 65 79 2e 72 65 70 6c 61 63 65 28 d0 = key.replace(.
8ed0: bb d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 2b ...............+
8ee0: 22 5c 5c 22 2c 20 27 27 29 3b 0d 0a 20 20 20 20 "\\", '');..
8ef0: 20 20 20 20 20 20 20 20 69 6e 64 65 78 2b 2b 3b index++;
8f00: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 .. }..
8f10: 20 7d 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 }.. return r
8f20: 65 73 75 6c 74 0d 0a 7d 0d 0a 0d 0a 0d 0a 66 75 esult..}......fu
8f30: 6e 63 74 69 6f 6e 20 42 61 63 6b 65 6e 64 5f 66 nction Backend_f
8f40: 6f 73 73 69 6c 28 63 6f 6d 6d 61 6e 64 2c 20 70 ossil(command, p
8f50: 61 72 61 6d 31 2c 20 70 61 72 61 6d 32 29 20 7b aram1, param2) {
8f60: 0d 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 .. var result
8f70: 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 73 = false;.. s
8f80: 77 69 74 63 68 20 28 63 6f 6d 6d 61 6e 64 29 20 witch (command)
8f90: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 63 61 73 .. {.. cas
8fa0: 65 20 22 43 41 54 41 4c 4f 47 53 54 41 54 55 53 e "CATALOGSTATUS
8fb0: 22 3a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 d0 ":.. // .
8fc0: 94 d0 be d0 b1 d0 b0 d0 b2 d0 bb d1 8f d0 b5 d0 ................
8fd0: bc 20 d0 b2 20 d1 85 d0 b2 d0 be d1 81 d1 82 20 . .. ..........
8fe0: d0 bf d0 be d0 b4 d0 bf d0 b8 d1 81 d1 8c 2e 0d ................
8ff0: 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 . result
9000: 3d 20 66 6f 73 73 69 6c 5f 67 65 74 53 74 61 74 = fossil_getStat
9010: 75 73 46 6f 72 43 61 74 61 6c 6f 67 28 70 61 72 usForCatalog(par
9020: 61 6d 31 2c 20 22 22 29 3b 0d 0a 20 20 20 20 20 am1, "");..
9030: 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 break;.. c
9040: 61 73 65 20 22 46 49 4c 45 53 54 41 54 55 53 22 ase "FILESTATUS"
9050: 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c :.. resul
9060: 74 20 3d 20 66 6f 73 73 69 6c 5f 67 65 74 46 69 t = fossil_getFi
9070: 6c 65 53 74 61 74 75 73 28 70 61 72 61 6d 31 2c leStatus(param1,
9080: 20 70 61 72 61 6d 32 29 0d 0a 20 20 20 20 20 20 param2)..
9090: 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 break;.. ca
90a0: 73 65 20 22 47 45 54 46 49 4c 45 53 44 45 4c 45 se "GETFILESDELE
90b0: 54 45 44 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 TED":.. r
90c0: 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 67 esult = fossil_g
90d0: 65 74 4d 69 73 73 69 6e 67 46 69 6c 65 73 28 70 etMissingFiles(p
90e0: 61 72 61 6d 31 29 3b 0d 0a 20 20 20 20 20 20 20 aram1);..
90f0: 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 break;.. cas
9100: 65 20 22 44 49 46 46 22 3a 0d 0a 20 20 20 20 20 e "DIFF":..
9110: 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 result = foss
9120: 69 6c 5f 67 65 74 46 69 6c 65 50 61 74 68 54 6f il_getFilePathTo
9130: 44 69 66 66 28 70 61 72 61 6d 31 2c 20 70 61 72 Diff(param1, par
9140: 61 6d 32 29 0d 0a 20 20 20 20 20 20 20 20 62 72 am2).. br
9150: 65 61 6b 3b 0d 0a 20 20 20 20 63 61 73 65 20 22 eak;.. case "
9160: 41 44 44 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 ADD":.. r
9170: 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 61 esult = fossil_a
9180: 64 64 28 70 61 72 61 6d 31 2c 20 70 61 72 61 6d dd(param1, param
9190: 32 29 0d 0a 20 20 20 20 20 20 20 20 62 72 65 61 2).. brea
91a0: 6b 3b 0d 0a 20 20 20 20 63 61 73 65 20 22 54 45 k;.. case "TE
91b0: 53 54 22 3a 0d 0a 20 20 20 20 20 20 20 20 72 65 ST":.. re
91c0: 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f 74 65 sult = fossil_te
91d0: 73 74 28 70 61 72 61 6d 31 29 0d 0a 20 20 20 20 st(param1)..
91e0: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 break;..
91f0: 63 61 73 65 20 22 52 55 4e 22 3a 0d 0a 20 20 20 case "RUN":..
9200: 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f result = fo
9210: 73 73 69 6c 5f 72 75 6e 28 70 61 72 61 6d 31 2c ssil_run(param1,
9220: 20 70 61 72 61 6d 32 29 0d 0a 20 20 20 20 20 20 param2)..
9230: 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 63 61 break;.. ca
9240: 73 65 20 22 53 48 4f 57 4c 4f 47 22 3a 0d 0a 20 se "SHOWLOG":..
9250: 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 result =
9260: 66 6f 73 73 69 6c 5f 73 68 6f 77 6c 6f 67 28 70 fossil_showlog(p
9270: 61 72 61 6d 31 29 3b 0d 0a 20 20 20 20 20 20 20 aram1);..
9280: 20 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 break.. case
9290: 20 22 53 48 4f 57 44 49 46 46 22 3a 0d 0a 20 20 "SHOWDIFF":..
92a0: 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 66 result = f
92b0: 6f 73 73 69 6c 5f 67 65 74 46 69 6c 65 50 61 74 ossil_getFilePat
92c0: 68 54 6f 44 69 66 66 28 70 61 72 61 6d 31 2c 20 hToDiff(param1,
92d0: 70 61 72 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 param2);..
92e0: 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 break.. cas
92f0: 65 20 22 44 45 4c 45 54 45 22 3a 0d 0a 20 20 20 e "DELETE":..
9300: 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f result = fo
9310: 73 73 69 6c 5f 64 65 6c 65 74 65 28 70 61 72 61 ssil_delete(para
9320: 6d 31 29 0d 0a 20 20 20 20 20 20 20 20 62 72 65 m1).. bre
9330: 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 52 45 ak.. case "RE
9340: 56 45 52 54 22 3a 0d 0a 20 20 20 20 20 20 20 20 VERT":..
9350: 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c 5f result = fossil_
9360: 72 65 76 65 72 74 28 70 61 72 61 6d 31 2c 20 70 revert(param1, p
9370: 61 72 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 20 aram2);..
9380: 20 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 break.. case
9390: 20 22 43 4f 4d 4d 49 54 22 3a 0d 0a 20 20 20 20 "COMMIT":..
93a0: 20 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 result = fos
93b0: 73 69 6c 5f 63 6f 6d 6d 69 74 28 70 61 72 61 6d sil_commit(param
93c0: 31 2c 20 70 61 72 61 6d 32 29 3b 0d 0a 20 20 20 1, param2);..
93d0: 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 break..
93e0: 63 61 73 65 20 22 47 45 54 46 49 4c 45 41 54 52 case "GETFILEATR
93f0: 45 56 49 53 49 4f 4e 22 3a 0d 0a 20 20 20 20 20 EVISION":..
9400: 20 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 result = foss
9410: 69 6c 5f 67 65 74 46 69 6c 65 41 74 52 65 76 69 il_getFileAtRevi
9420: 73 69 6f 6e 28 70 61 72 61 6d 31 2c 20 70 61 72 sion(param1, par
9430: 61 6d 32 29 0d 0a 20 20 20 20 20 20 20 20 62 72 am2).. br
9440: 65 61 6b 0d 0a 20 20 20 20 63 61 73 65 20 22 47 eak.. case "G
9450: 45 54 4c 4f 47 22 3a 0d 0a 20 20 20 20 20 20 20 ETLOG":..
9460: 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 6c result = fossil
9470: 5f 67 65 74 4c 6f 67 28 70 61 72 61 6d 31 2c 20 _getLog(param1,
9480: 70 61 72 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 param2);..
9490: 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 break.. cas
94a0: 65 20 22 47 45 54 49 4e 46 4f 22 3a 0d 0a 20 20 e "GETINFO":..
94b0: 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 66 result = f
94c0: 6f 73 73 69 6c 5f 67 65 74 49 6e 66 6f 28 70 61 ossil_getInfo(pa
94d0: 72 61 6d 31 2c 20 70 61 72 61 6d 32 29 3b 0d 0a ram1, param2);..
94e0: 20 20 20 20 20 20 20 20 62 72 65 61 6b 0d 0a 20 break..
94f0: 20 20 20 63 61 73 65 20 22 47 45 54 4c 49 53 54 case "GETLIST
9500: 42 52 41 4e 43 48 22 3a 0d 0a 20 20 20 20 20 20 BRANCH":..
9510: 20 20 72 65 73 75 6c 74 20 3d 20 66 6f 73 73 69 result = fossi
9520: 6c 5f 67 65 74 4c 69 73 74 42 72 61 6e 63 68 28 l_getListBranch(
9530: 70 61 72 61 6d 31 29 3b 20 2f 2f d0 b2 d0 be d0 param1); //.....
9540: b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0 bc 20 ...............
9550: 72 65 73 75 6c 74 20 7b 22 76 61 6c 75 65 6c 69 result {"valueli
9560: 73 74 22 3a 76 38 4e 65 77 28 22 56 61 6c 75 65 st":v8New("Value
9570: 4c 69 73 74 22 29 2c 20 22 69 6e 64 65 78 22 3a List"), "index":
9580: 20 d0 b8 d0 bd d0 b4 d0 b5 d0 ba d1 81 20 d0 b2 ............ ..
9590: d0 b5 d1 82 d0 ba d0 b8 20 d1 82 d0 b5 d0 ba d1 ........ .......
95a0: 83 d1 89 d0 b5 d0 b9 7d 0d 0a 20 20 20 20 20 20 .......}..
95b0: 20 20 62 72 65 61 6b 0d 0a 20 20 20 20 63 61 73 break.. cas
95c0: 65 20 22 53 57 49 54 48 42 52 41 4e 43 48 22 3a e "SWITHBRANCH":
95d0: 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 .. result
95e0: 20 3d 20 66 6f 73 73 69 6c 5f 73 77 69 74 68 42 = fossil_swithB
95f0: 72 61 6e 63 68 28 70 61 72 61 6d 31 2c 20 70 61 ranch(param1, pa
9600: 72 61 6d 32 29 3b 0d 0a 20 20 20 20 20 20 20 20 ram2);..
9610: 62 72 65 61 6b 3b 0d 0a 20 20 20 20 7d 0d 0a 20 break;.. }..
9620: 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 return result
9630: 0d 0a 7d 20 2f 2f 42 61 63 6b 65 6e 64 5f 66 6f ..} //Backend_fo
9640: 73 73 69 6c 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e ssil....function
9650: 20 47 65 74 42 61 63 6b 65 6e 64 28 29 20 7b 0d GetBackend() {.
9660: 0a 20 20 20 20 72 65 74 75 72 6e 20 42 61 63 6b . return Back
9670: 65 6e 64 5f 66 6f 73 73 69 6c 0d 0a 7d 20 2f 2f end_fossil..} //
9680: 47 65 74 42 61 63 6b 65 6e 64 0d 0a 0d 0a 66 75 GetBackend....fu
9690: 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c nction getDefaul
96a0: 74 4d 61 63 72 6f 73 28 29 20 7b 0d 0a 20 20 20 tMacros() {..
96b0: 20 72 65 74 75 72 6e 20 27 d0 9d d0 b0 d1 81 d1 return '.......
96c0: 82 d1 80 d0 be d0 ba d0 b0 46 6f 73 73 69 6c 27 .........Fossil'
96d0: 0d 0a 7d 20 2f 2f 67 65 74 44 65 66 61 75 6c 74 ..} //getDefault
96e0: 4d 61 63 72 6f 73 0d 0a Macros..