[Insight-developers] ITK CVS ->Git

Hans Johnson hans-johnson at uiowa.edu
Thu Jul 22 12:07:50 EDT 2010


Brad,

This looks like an excellent plan.  Thank you for the explicit description
of what will happen, and the rational for these choices.

I will defer to your judgment on the pacing of making these changes.  It
will be great to have our hands on the git repository soon.

Regards,
Hans
 


On 7/22/10 10:50 AM, "Brad King" <brad.king at kitware.com> wrote:

> Hi Folks,
> 
> I'm nearly finished with the one-shot history conversion of ITK from
> CVS to Git.  I'm preparing 3 repositories:
> 
>  - The main toolkit (currently "Insight" under cvsroot)
>  - The applications (currently "InsightApplications" under cvsroot)
>  - The data submodule (currently inside "Insight/Testing/Data" under cvs)
> 
> I chose to extract the Testing/Data directory as a Git submodule and
> retroactively write the main toolkit's history to refer to it on matching
> commits.  This reduces the main toolkit repository size by a lot, and
> will help us move the test data out to a separate module later anyway.
> We can still reproduce any old version of the tree because every main
> toolkit commit refers to the exact version of the data that it needs.
> 
> I've done something similar to the old Unsupported, Auxiliary, Applications,
> and Examples (back when it was applications) directories.  They refer
> to the applications repository as a submodule for versions of the main
> toolkit when they were in the main tree.  This allows the new applications
> repository to share the full history of the applications even from before
> they built as an outside project.  It also keeps the applications history
> objects out of the main toolkit repository while still allowing us to
> reproduce trees from back then.
> 
> There are a few decisions to be made:
> 
> -------------------------------------------------------------------------
> (1) We need to freeze CVS repository commits so that I can convert the
> last few changes (and the 3.20 branch) that have come in since I last
> synced from the CVS server.  Unlike release freezes, *nobody* will have
> commit access, and it will never un-freeze.  We need to select a schedule
> of events for the final transition.
> 
>  (a) Freeze CVS
>  (b) Final CVS->Git conversion
>  (c) Enable Git repositories
>  (d) Update web pages and add developer docs on the Wiki
>  (e) Update all dashboard submission clients to fetch from Git
> 
> I can do steps (a), (b), and (c) during the course of two days or so
> after the freeze.  I'll coordinate step (d) with Luis.  Step (e) will
> need help from everyone maintaining a dashboard submission.
> 
>  (e.1) Install CMake 2.8.2 or later.  This is needed for its Git
>  support in ctest_update().  It can work with 2.8.0 and 2.8.1 if
>  we put some helper code in the dashboard scripts but it is much
>  easier to use 2.8.2.  Fix cron jobs to run the dashboard script
>  with the newer CTest.
> 
>  (e.2) Update the dashboard client scripts.  For VTK (and CMake)
>  we now use a "vtk_common.cmake" ("cmake_common.cmake") dashboard
>  script helper.  It contains the main dashboard client logic to
>  keep machine-specific scripts small.  This is an opportunity to
>  simplify all our scripts by creating "itk_common.cmake".
> 
> Step (e) will leave the dashboard in disarray for a while, so I propose
> that even after (c) we do not publish any non-fix changes.
> 
> I propose to begin with step (a) tomorrow morning (Friday, July 23).
> That way we can spend next week cleaning up dashboard clients.
> 
> -------------------------------------------------------------------------
> (2) We need to choose the new URLs at which the ITK Git repositories
> will appear.  Note that the part between the last '/' and '.git' will
> serve as the default local directory name for "git clone".  However,
> the data repo will generally not need to be cloned explicitly.  It will
> be cloned inside the main source by the "git submodule" porcelain.
> 
> To preserve the same names we're using in CVS, the URLs would be:
> 
>   git://itk.org/Insight.git              (main)
>   git://itk.org/InsightApplications.git  (apps)
>   git://itk.org/InsightData.git          (data)
> 
> Alternatively we could take this opportunity to make the URLs
> shorter (better for slides!):
> 
>   git://itk.org/ITK.git                  (main)
>   git://itk.org/ITKApps.git              (apps)
>   git://itk.org/ITKData.git              (data)
> 
> One other idea is to rename the main repository to match that
> used for the release tarballs:
> 
>   git://itk.org/InsightToolkit.git       (main)
> 
> but this makes it even longer!
> 
> FYI, there will be "http://" equivalents of all the URLs to enable
> clones through restrictive firewalls.
> 
> Comments?
> -Brad
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers



More information about the Insight-developers mailing list