Hex Artifact Content Вы: nobody
Вход

Artifact d17d8e0f9ecb100a4fef3082d5fcd52c605a271f:


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