[Insight-developers] Question: proper integration of third party sources?

Matt McCormick matt.mccormick at kitware.com
Wed Mar 20 13:28:14 EDT 2013


On Thu, Mar 14, 2013 at 7:27 PM, Williams, Norman K
<norman-k-williams at uiowa.edu> wrote:
> I've been working on a patch for ITK that incorporates the
> double-conversion library from Google.
>
> http://review.source.kitware.com/#/c/9983/
>
>
> Part of the process of doing this addition is to define a procedure to
> incorporate new changes from the upstream Google repository.  Prompted by
> Brad King, I came up with a methodology that would do this in an orderly
> fashion. I documented this in
> Modules/ThirdParty/DoubleConversion/README-ITK.cmake.
>
> Brad King pointed out, correctly, that this method would not properly
> capture the change history with respect to the Google repository.  He
> pointed me to the procedure used for VXL.  I found that his procedure was
> beyond my understanding of git, but what I believe is happening is this:
>
> Create a branch in the ITK repository in which the unmodified VXL source
> is checked in. The ITK-local changes to VXL, if any are based off the head
> of that branch.  When a new version of VXL is incorporated, the new
> version is checked in at the head of that branch.  Then the changes are
> merged into ITK proper.
>
> There are some things about this process I'm not sure I understand:
>
> 1. Is this compatible with the Gerrit topic paradigm?  It seems as though
> the gerrit-merge, which merges a monolithic patch branch into ITK proper,
> doesn't allow for keeping the update branches around.  It isn't clear to
> me how the merge branches are maintained. It looks as though the
> intermediate checkin branches go away after the merge, when the new source
> is pushed back to the ITK master repository.  But I'm not sure?

I think Github is a good place to keep these kinds of branches.

>
> 2. Is there a simpler way to go about this?  I keep trying to think of how
> I'd go about this and keep hitting the wall on my git knowledge.  Brad's
> method works for him, I'm sure, but when I try and follow his instructions
> I end up with a tree that's a big mess, and not what we want.

'git subtree' is a very nice tool for this kind of thing.  It is
included with recent version of Git, but the help is not reached with
'git help subtree' (for my version).  Instead

  less /usr/share/doc/git-1.8.1.5/git-subtree.txt.bz2

has very nice documentation with examples.

HTH,
Matt


> --
> Kent Williams norman-k-williams at uiowa.edu
>
>
>
>
>
>
> ________________________________
> Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
> ________________________________
> _______________________________________________
> 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.php
>
> 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