OberonCore
https://forum.oberoncore.ru/

Системы контроля версий
https://forum.oberoncore.ru/viewtopic.php?f=23&t=343
Страница 1 из 1

Автор:  Cardinal [ Среда, 22 Ноябрь, 2006 19:04 ]
Заголовок сообщения:  Системы контроля версий

Существуют ли системы контроля версий для нетекстовых форматов файлов? - дабы с Blackbox-ом их использовать

Автор:  Александр Ильин [ Четверг, 23 Ноябрь, 2006 10:31 ]
Заголовок сообщения: 

Subversion - использую давно, отлично работает как с текстом, так и с нетекстом. Бесплатная, open source. Есть скрипт для сравнения .odc файлов с помощью BlackBox, могу поделиться.

Автор:  Cardinal [ Четверг, 23 Ноябрь, 2006 14:35 ]
Заголовок сообщения: 

Александр Ильин писал(а):
Subversion - использую давно, отлично работает как с текстом, так и с нетекстом. Бесплатная, open source. Есть скрипт для сравнения .odc файлов с помощью BlackBox, могу поделиться.


Всё-таки решил поставить себе darcs. Мне больше подходит именно она. Только мне пока не ясно, как отобразить на экране разницу в версиях одного файла, не читаема она для формата файлов Blackbox. Как такая задача решается в SVN?

Автор:  Александр Ильин [ Четверг, 23 Ноябрь, 2006 22:34 ]
Заголовок сообщения: 

Cardinal писал(а):
Всё-таки решил поставить себе darcs. Мне больше подходит именно она. Только мне пока не ясно, как отобразить на экране разницу в версиях одного файла, не читаема она для формата файлов Blackbox. Как такая задача решается в SVN?

Решается тоже нечитаемо. Просто я SVN использую не напрямую (в чистом виде он работает только из командной строки), а через GUI клиент, встраивающийся в контекстное меню Проводника. Клиент называется TortoiseSVN, тоже бесплатный open source. В нем можно расширение файла связать со сценарием (текстовый командный файл, аналог ДОСовских .bat), который будет выполняться при желании "сравнить" два файла. Я написал сценарий, который открывает оба файла в BlackBox и запускает сравнение текста (как по клавише F9). В результате двойной щелчок по изменившемуся файлу в диалоге "Commit" открывает BlackBox и подсвечивает первое различие в тексте. Повторно нажимая F9 можно перебрать все остальные различия до конца файла. Недостаток - встроенное сравнение текстов в BlackBox игнорирует различия в форматировании (жирный, цветной и пр.), но для текстов программ вполне адекватно.

Автор:  paulcurl [ Вторник, 24 Март, 2009 23:54 ]
Заголовок сообщения:  Re: Системы контроля версий

и как бы заполучить этот скрипт?
и инструкцию по применению!)

Автор:  Ihor [ Четверг, 02 Апрель, 2009 17:35 ]
Заголовок сообщения:  Re: Системы контроля версий

GIT
http://los-t.livejournal.com/tag/git+guts

Автор:  Александр Ильин [ Суббота, 25 Апрель, 2009 11:14 ]
Заголовок сообщения:  Re: Системы контроля версий

В помощь пользователям 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).

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/