В помощь пользователям Subversion для работы с документами BlackBox...
Вот мои файлы сценариев, которые я успешно использую совместно с TortoiseSVN для сравнения и слияния измененных файлов.
Файл "diff-odc.js":
Код:
// Copyright (c) Alexander Iljin, 2006
var objArgs,num,sBaseDoc,sNewDoc,objScript,shell;
objArgs = WScript.Arguments;
num = objArgs.length;
if (num < 2)
{
WScript.Echo("Usage: [CScript | WScript] diff-odc.js base.odc new.odc");
WScript.Quit(1);
}
sBaseDoc = objArgs(0);
sNewDoc = objArgs(1);
objScript = new ActiveXObject("Scripting.FileSystemObject");
if ( ! objScript.FileExists(sBaseDoc))
{
WScript.Echo("File " + sBaseDoc + " does not exist. Cannot compare the documents.");
Wscript.Quit(1);
}
if ( ! objScript.FileExists(sNewDoc))
{
WScript.Echo("File " + sNewDoc +" does not exist. Cannot compare the documents.");
Wscript.Quit(1);
}
objScript = null;
shell = WScript.CreateObject("WScript.Shell");
shell.Run("\""+sBaseDoc+"\"");
WScript.Sleep(1000);
shell.Run("\""+sNewDoc+"\"");
WScript.Sleep(1000);
shell.AppActivate("BlackBox");
shell.SendKeys("{F9}");
shell = null;
Файл "merge-odc.js":
Код:
// Copyright (c) Alexander Iljin, 2006
var objArgs,num,sTheirDoc,sMyDoc,sBaseDoc,objScript,WSHShell,Exec;
objArgs = WScript.Arguments;
num = objArgs.length;
if (num < 3)
{
WScript.Echo("Usage: [CScript | WScript] merge-odc.js theirs.odc mine.odc base.odc");
WScript.Quit(1);
}
sTheirDoc=objArgs(0);
sMyDoc=objArgs(1);
sBaseDoc=objArgs(2);
objScript = new ActiveXObject("Scripting.FileSystemObject")
if ( ! objScript.FileExists(sTheirDoc))
{
WScript.Echo("File " + sTheirDoc +" does not exist. Cannot compare the documents.");
Wscript.Quit(1);
}
if ( ! objScript.FileExists(sMyDoc))
{
WScript.Echo("File " + sMyDoc +" does not exist. Cannot compare the documents.");
Wscript.Quit(1);
}
if ( ! objScript.FileExists(sBaseDoc))
{
WScript.Echo("File " + sBaseDoc +" does not exist. Cannot compare the documents.");
Wscript.Quit(1);
}
objScript = null
WSHShell = WScript.CreateObject("WScript.Shell");
Exec = WSHShell.Exec("cmd /c copy \""+sBaseDoc+"\" \""+sBaseDoc+".odc\"");
while (Exec.Status == 0)
{ WScript.Sleep(100); }
WSHShell.Run("\""+sBaseDoc+".odc\"");
WScript.Sleep(1000);
Exec = WSHShell.Exec("cmd /c copy \""+sTheirDoc+"\" \""+sTheirDoc+".odc\"");
while (Exec.Status == 0)
{ WScript.Sleep(100); }
WSHShell.Run("\""+sTheirDoc+".odc\"");
WScript.Sleep(1000);
Exec = WSHShell.Exec("cmd /c copy \""+sMyDoc+"\" \""+sMyDoc+".odc\"");
while (Exec.Status == 0)
{ WScript.Sleep(100); }
WSHShell.Run("\""+sMyDoc+".odc\"");
WScript.Sleep(1000);
WSHShell.AppActivate("BlackBox");
WSHShell.SendKeys("{F9}");
WSHShell = null;
Настройка TortoiseSVN для использования данных файлов.
Оба файла следует поместить в каталог "TortoiseSVN\Diff-Scripts".
Кликнуть правой кнопкой по любому каталогу, выбрать в контекстном меню "TortoiseSVN - Settings". Далее перейти на страницу "Diff viewer", нажать кнопку "Advanced". Добавить к списку расширение "*.odc" со следующей командной строкой:
Код:
wscript.exe "d:\Program Files\DevTools\TortoiseSVN\Diff-Scripts\diff-odc.js" %base %mine //E:javascript
(подставьте ваш путь к TortoiseSVN).
На странице "Merge Tool" нажать кнопку "Advanced", добавить расширение "*.odc" со следующей командной строкой:
Код:
wscript.exe "d:\Program Files\DevTools\TortoiseSVN\Diff-Scripts\merge-odc.js" %merged %theirs %mine %base //E:javascript
(подставьте ваш путь к TortoiseSVN).