[cmake-developers] Patch to support SVN externals in CTest update

Xavier Besseron xavier.besseron at uni.lu
Fri Aug 24 08:50:12 EDT 2012


Hello,

I have split my changes in a series of small patches. Please find them
in attachment.
I have made sure that everything is compiling correctly and that the
CTest.UpdateSVN test runs successfully between each of them.



Some comments about the testing:
- Most of the code path added by these patches is executed by the
current test. Indeed with this design, the root svn repository and the
svn external repositories just use the same SVNInfo structure and the
same function calls.
- The issue (ie incorrect author and revision number for each modified
file) is currently not tested for any of the version control system.
Probably this should be added, but this requires some work.
- The current organization of the ctest_update() testing uses some
common scripts between the different version control system. I don't
know yet if it is possible to add tests with svn externals in this
organization without breaking the test for the other VC.

If I am not too busy, I will try to follow up on the testing part in
the coming weeks.

Let me know if you have any question or comment.

Xavier





On Mon, Jul 30, 2012 at 3:56 PM, Brad King <brad.king at kitware.com> wrote:
> On 07/30/2012 09:45 AM, Xavier Besseron wrote:
>> I am affected by the issue in bug 12630
>> (http://public.kitware.com/Bug/view.php?id=12630), so I prepared a
>> patch.
>
> Thanks for working on this!
>
>> This patch adds support for svn externals during CTest update. I
>> tested it successfully  with svn 1.6/1.7, Linux/Windows and with
>> nested externals as well.
>>
>> Summary of the modifications:
>>     - Add SVNInfo structure to hold info about each repository
>>     - Get the list of external repositories (using 'svn status' and
>> ExternalParser)
>>     - Run 'svn info' for all repositories, before and after the update
>>     - Run 'svn log' for all repositories
>>     - Build the correct path for all updated files (ie add the
>> external prefix and remove the svn base)
>>
>> Let me know if you have any questions or comments.
>
> The changes will be much easier to review in smaller pieces.
> Please split this patch into a series.  For example, the first
> patch should add the SVNInfo infrastructure with no functional
> changes.  Each step in the series should still compile and
> pass the UpdateSVN test.
>
> Separately, please also extend the UpdateSVN test to exercise
> the new functionality.
>
> Thanks,
> -Brad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-the-new-SVNInfo-structure.patch
Type: application/octet-stream
Size: 2492 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120824/ddba72ea/attachment-0014.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Extend-the-SVN-Revision-structure-to-include-info-ab.patch
Type: application/octet-stream
Size: 810 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120824/ddba72ea/attachment-0015.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Add-the-Repositories-list-and-the-RootInfo-pointer.patch
Type: application/octet-stream
Size: 994 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120824/ddba72ea/attachment-0016.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-Create-the-SVNInfo-for-the-root-repository.patch
Type: application/octet-stream
Size: 978 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120824/ddba72ea/attachment-0017.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-Use-the-SVNInfo-structure-instead-of-the-fields-URL-.patch
Type: application/octet-stream
Size: 12835 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120824/ddba72ea/attachment-0018.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-Add-a-LoadExternal-function-and-an-ExternalParser-cl.patch
Type: application/octet-stream
Size: 3206 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120824/ddba72ea/attachment-0019.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-Call-LoadExternals-and-perform-operations-on-all-ele.patch
Type: application/octet-stream
Size: 3657 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120824/ddba72ea/attachment-0020.obj>


More information about the cmake-developers mailing list