Hex Artifact Content Вы: nobody
Вход

Artifact 0d649299cda999f0e499ee14c7e4a3dfb0a25f83:


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