Hex Artifact Content Вы: nobody
Вход

Artifact 2f1e3449d5705c0a84087ae044096d0551bca1f6:


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