Формат .fr3 неудобен при использовании контроля версий

Vasily GrechishnikovVasily Grechishnikov г. Воронеж
отредактировано 14:43 Раздел: FastReport 4.0
Добрый день!


Формат .fr3 чрезвычайно неудобен если используется контроль версий в проекте.

Пример:

Фрагмент diff'а приведен ниже.
=== изменён файл loader/reports/cb/РецептКачествоИЦены.fr3
--- loader/reports/cb/РецептКачествоИЦены.fr3 2008-12-15 13:47:22 +0000
+++ loader/reports/cb/РецептКачествоИЦены.fr3 2009-01-22 05:13:30 +0000

<?xml version="1.0" encoding="utf-8"?>
-<TfrxReport Version="4.6.1" DotMatrixReport="False" IniFile="\Software\Fast Reports" PreviewOptions.Buttons="2047" PreviewOptions.Zoom="1" PrintOptions.Printer="Default" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="38148,4866698958" ReportOptions.Description.Text="" ReportOptions.LastChange="39765,6802798843" ScriptLanguage="PascalScript" ScriptText.Text="var
Delta: Extended;
PropFmt: string;
v: boolean;

procedure
SetupForBAVPrint;
begin

SubReportBAV.Visible := True;

if (not <СогласованиеКач>) then begin
Delta := 60;

QltMinHeader.Visible := False;
QltMin.Visible := False;
QltMaxHeader.Visible := False;
QltMax.Visible :=


проблема в том что в поле -<TfrxReport Version="4.6.1" DotMatrixReport="False" IniFile="\Software\Fast
хранятся все настройки FR, плюс скрипты.
Изменение лишь одной опции либо скрипта приводит к изменению строки, а большинстово систем контроля версий оперируют строками как
минимальной структорной единицей исходного текста.
Данные в виде одной строки чрезвычайно трудно анализировать.

Мое предложение вставлять символперевода строки после каждого поля заголовка.
Это очень облегчит использование средств контроля версий.
Я пользуюсь bazaar, но уверен что проблема стоит для 90% систем контроля версий.


<TfrxReport Version="4.6.1"
DotMatrixReport="False"
IniFile="\Software\Fast Reports"
PreviewOptions.Buttons="2047"
PreviewOptions.Zoom="1"
PrintOptions.Printer="Default"
PrintOptions.PrintOnSheet="0"
ReportOptions.CreateDate="38148,4866698958"
ReportOptions.Description.Text=""
ReportOptions.LastChange="39765,6802798843"
ScriptLanguage="PascalScript"
ScriptText.Text="var

Delta: Extended;

PropFmt: string;

v: boolean;


procedure
SetupForBAVPrint;
begin

SubReportBAV.Visible := True;

if (not <СогласованиеКач>) then begin
Delta := 60;

QltMinHeader.Visible := False;
QltMin.Visible := False;
QltMaxHeader.Visible := False;
QltMax.Visible :=

Комментарии

  • отредактировано 14:43
    Поддерживаю запрос.
    Пользуюсь STARTEAM, те же неудобства - невозможно визуально отследить, что же изменилось в строке длиной в 1..2 кб и более.
  • Vasily GrechishnikovVasily Grechishnikov г. Воронеж
    отредактировано 14:43
    andreymx написал: »
    Поддерживаю запрос.
    Пользуюсь STARTEAM, те же неудобства - невозможно визуально отследить, что же изменилось в строке длиной в 1..2 кб и более.

    Как ни странно но следующий патч делает почто то что я хочу.
    Минус не хватает красоты получающегося файла.
    И я не совсем понимаю последствия
    - SpecChars = ;
    + SpecChars = ;

    к чему это может привести.

    === modified file 'Source/frxXML.pas'
    --- Source/frxXML.pas 2009-01-26 13:37:41 +0000
    +++ Source/frxXML.pas 2009-01-26 11:55:44 +0000


    function frxStrToXML(const s: String): String;
    const
    - SpecChars = ;
    + SpecChars = ;
    var
    i, lenRes, resI, ch: Integer;
    pRes: PChar;

    === modified file 'Source/frxXMLSerializer.pas'
    --- Source/frxXMLSerializer.pas 2009-01-26 13:37:41 +0000
    +++ Source/frxXMLSerializer.pas 2009-01-26 13:40:20 +0000

    except
    end;
    end;
    -
    +
    begin
    { speed optimized code. affects the speed of loading prepared page in the preview }
    len := Length(s);

    Value := Copy(s, start, i - start);
    Inc(i);

    + if ((Name[1] = #13) and
    + (Name[2] = #10)) then
    + Name := Trim(Copy(Name, 3, 4096));
    +
    Obj1 := Obj;

    { check multiple properties }

    if Flag then
    Result := Result + s
    else
    - Result := Result + ' ' + Add + PropList.Name + '="' + s + '"';
    + Result := Result + ' ' + Add + PropList.Name + '="' + s + '"' +
    + #13 + #10;
    end;

    if Obj is TfrxCustomMemoView then

  • отредактировано 14:43
    Vasily Grechishnikov написал: »
    Как ни странно, но следующий патч делает почто то что я хочу.
    Добрый день!
    Следующий патч - Вы имеете в виду очередной релиз Фаста или что-то другое?
  • отредактировано 14:43
    имеется в виду именно то что идет после строки
    === modified file 'Source/frxXML.pas'

    это формат patch-файлов, работая с системами контроля версий вы должны знать этот формат :)

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.