OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 24 Апрель, 2024 18:46

Часовой пояс: UTC + 3 часа




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

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 18:08
Сообщения: 76
Существуют ли системы контроля версий для нетекстовых форматов файлов? - дабы с Blackbox-ом их использовать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 23 Ноябрь, 2006 10:31 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Subversion - использую давно, отлично работает как с текстом, так и с нетекстом. Бесплатная, open source. Есть скрипт для сравнения .odc файлов с помощью BlackBox, могу поделиться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 23 Ноябрь, 2006 14:35 

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


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 23 Ноябрь, 2006 22:34 
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: Вторник, 24 Март, 2009 23:54 

Зарегистрирован: Суббота, 27 Декабрь, 2008 16:10
Сообщения: 3
и как бы заполучить этот скрипт?
и инструкцию по применению!)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: Четверг, 02 Апрель, 2009 17:35 

Зарегистрирован: Вторник, 25 Март, 2008 23:04
Сообщения: 81
Откуда: Львів
GIT
http://los-t.livejournal.com/tag/git+guts


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системы контроля версий
СообщениеДобавлено: Суббота, 25 Апрель, 2009 11:14 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
В помощь пользователям 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).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB