Hi,
we have several branches in our project. In that branches we needed to change reports in parallel. The reports are checked in as files and versioned through our SCM.
The problem comes when trying to merge different branches (and thus: reports)
The problem is that despite sometimes only small changes were made, the diff shows massive changes, so the diff is useless.
That's probably due to the designer's save behaviour.
We try to avoid working in parallel on the reports in certain branches, but sometimes it's neccessary. Currently we must change all reports by hand, which is obviously not good.
#1 - is there are possibility to "normalize" the report file, so diff makes sense again?
#2 - is there a best practice how to handle such a situation?
EDIT: one thing that the designer changes is the order of the properties of the business objects. I was able to build a small repair program that orders all properties, so that there are no false positives in the diff, but the "Ref"s are still a problem. I guess when saving the designer it starts enumerating from zero, so the refs between two report versions can be completely different when some objects are inserted into the reports at different positions.
Thank's for help.
Best Practice for Versioning and Merging
Re: Best Practice for Versioning and Merging
Hello.
Our report templates are stored in XML format.
There is a powerful XML comparing tool -- Altova DiffDog.
Please, try it.
Thank you.
Our report templates are stored in XML format.
There is a powerful XML comparing tool -- Altova DiffDog.
Please, try it.
Thank you.
Re: Best Practice for Versioning and Merging
Yes, Altova is a pretty powerful comparing tool, but in this case it didn't help more than WinMerge I was using.
I can work around that property sorting issue by re-ordering the XML in a small tool, but the "Ref" issue is still a problem:
for example in one file I have a line like that:
<MyBusinessObjectBlabla Ref="66" type="Stimulsoft.Report.Dictionary.StiBusinessObject" isKey="true">
And in the other file:
<MyBusinessObjectBlabla Ref="64" type="Stimulsoft.Report.Dictionary.StiBusinessObject" isKey="true">
This affects not only one element, but occurs hundreds of times.
Changing this IDs manually is not doable.
I know it's a tough issue. Maybe there is some completely other option then merging the xml code?
For the business objects it was OK to add them again from scratch (actually to throw a away one report version and re-apply all changes manually), but for design elements such as a new table, it's horrible.
I can work around that property sorting issue by re-ordering the XML in a small tool, but the "Ref" issue is still a problem:
for example in one file I have a line like that:
<MyBusinessObjectBlabla Ref="66" type="Stimulsoft.Report.Dictionary.StiBusinessObject" isKey="true">
And in the other file:
<MyBusinessObjectBlabla Ref="64" type="Stimulsoft.Report.Dictionary.StiBusinessObject" isKey="true">
This affects not only one element, but occurs hundreds of times.
Changing this IDs manually is not doable.
I know it's a tough issue. Maybe there is some completely other option then merging the xml code?
For the business objects it was OK to add them again from scratch (actually to throw a away one report version and re-apply all changes manually), but for design elements such as a new table, it's horrible.
Re: Best Practice for Versioning and Merging
Hello.
There is another way out. It's a ReportComparer tool that you could find in our distributive.
Thank you.
There is another way out. It's a ReportComparer tool that you could find in our distributive.
Thank you.