[Insight-developers] ITKv4: Features vs Clean up

Bill Lorensen bill.lorensen at gmail.com
Wed Jul 6 08:44:57 EDT 2011


Rupert,

What version of git are you using?

You should not be getting this error:
> Setting pushurl for origin.
> error: Unknown subcommand: set-url
> usage: git remote [-v | --verbose]
>   or: git remote add [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
>   or: git remote rename <old> <new>
>   or: git remote rm <name>
>   or: git remote set-head <name> [-a | -d | <branch>]
>   or: git remote show [-n] <name>
>   or: git remote prune [-n | --dry-run] <name>
>   or: git remote [-v | --verbose] update [-p | --prune] [group]
>
>    -v, --verbose         be verbose

On Wed, Jul 6, 2011 at 7:58 AM, Rupert Brooks <rupert.brooks at gmail.com> wrote:
> Sorry folks. I've banged my head on this for a while, but im stuck and
> need help with Gerrit.  I'm stuck at the point of checking out the
> change set for code review.
>
> I've blown away my ITK repo and started from scratch - which is just
> to Git clone, followed by the SetupForDevelopment script.  That script
> is able to successfully connect to Gerrit via my SSH public key, or so
> it claims.
>
> Then i tried to check out a change from Gerrit.  Both http and ssh
> hang up on me.  However, i did manage to learn that
>
> This is machine specific - on a different machine (unfortunately not
> one i want to use do to the code review) it works fine.  The machine
> giving me trouble is using NAT behind a router.  All outgoing ports
> are open as far as i know.  If the machine is trying to call me back
> on a different port though it wont get through.  But my reading of the
> docs doesnt suggest this is the case.
>
> I can SSH into review.source.kitware.com.  (on port 22 or 29418) It
> gives me the polite message about no interactive shells and kicks me
> off, but it works.
>
> Im stuck - a full transcript of my session is below (http doesnt work
> either - see bottom of log).  I'm stumped.  Its probably a bonehead
> mistake, but i really cant see it.
>
> Thanks
> Rupert
>
>
> --------------------------------------------------------------
> Rupert Brooks
> rupert.brooks at gmail.comrupert@morrigan:~/src$ rm -rf ITK
> rupert at morrigan:~/src$ git clone git://itk.org/ITK.git
> Initialized empty Git repository in /home/rupert/src/ITK/.git/
> remote: Counting objects: 266120, done.
> remote: Compressing objects: 100% (52062/52062), done.
> remote: Total 266120 (delta 212285), reused 265846 (delta 212103)
> Receiving objects: 100% (266120/266120), 63.10 MiB | 248 KiB/s, done.
> Resolving deltas: 100% (212285/212285), done.
> rupert at morrigan:~/src$ cd ITK
> rupert at morrigan:~/src/ITK$ ./Utilities/SetupForDevelopment.sh
> Initializing and downloading submodules...
> Submodule 'Testing/Data' (git://itk.org/ITKData.git) registered for
> path 'Testing/Data'
> Initialized empty Git repository in
> /home/rupert/src/ITK/Testing/Data/.git/
> remote: Counting objects: 4544, done.
> remote: Compressing objects: 100% (2144/2144), done.
> remote: Total 4544 (delta 2370), reused 4544 (delta 2370)
> Receiving objects: 100% (4544/4544), 38.96 MiB | 257 KiB/s, done.
> Resolving deltas: 100% (2370/2370), done.
> Submodule path 'Testing/Data': checked out
> '60004079ec937f051555a0b2e2489893a853a869'
> Done.
>
> Setting pushurl for origin.
> error: Unknown subcommand: set-url
> usage: git remote [-v | --verbose]
>   or: git remote add [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
>   or: git remote rename <old> <new>
>   or: git remote rm <name>
>   or: git remote set-head <name> [-a | -d | <branch>]
>   or: git remote show [-n] <name>
>   or: git remote prune [-n | --dry-run] <name>
>   or: git remote [-v | --verbose] update [-p | --prune] [group]
>
>    -v, --verbose         be verbose
>
>
> Checking basic user information...
> Your commits will have the following author:
>
>  Rupert Brooks <rupert.brooks at gmail.com>
>
> Is the author name and email address above correct? [Y/n] y
>
> Setting up git hooks...
> Initialized empty Git repository in /home/rupert/src/ITK/.git/hooks/.git/
> Pulling the hooks...
> remote: Counting objects: 135, done.
> remote: Compressing objects: 100% (56/56), done.
> remote: Total 135 (delta 76), reused 134 (delta 75)
> Receiving objects: 100% (135/135), 29.38 KiB, done.
> Resolving deltas: 100% (76/76), done.
> From ..
>  * remote branch     origin/hooks -> FETCH_HEAD
> Setting up the uncrustify hook...
> Setting up the KWStyle hook...
> Setting up ITK hook chaining: prepare-commit-msg, commit-msg, pre-commit
> Done.
>
> Setting up useful Git aliases...
> Would you like general Git aliases to be global? [y/N]:y
>
> Setting up Gerrit...
> Gerrit is a code review system that works with Git.
>
> In order to use Gerrit, an account must be registered at the review site:
>
>  http://review.source.kitware.com/p/ITK
>
> In order to register you need an OpenID
>
>  http://openid.net/get-an-openid/
>
> Enter your gerrit user (set in Gerrit Settings/Profile) [rupert]: Rupert
>
> Configuring 'gerrit' remote with user 'Rupert'...
>
> For more information on Gerrit usage, see
>
>  http://www.itk.org/Wiki/ITK/Gerrit
> Would you like to verify authentication to Gerrit? [y/N]: y
>
> Fetching from gerrit to test SSH key configuration (Settings/SSH Public Keys)
> Enter passphrase for key '/home/rupert/.ssh/id_rsa':
> From Rupert at review.source.kitware.com:ITK
>  * [new branch]      hooks      -> gerrit/hooks
>  * [new branch]      master     -> gerrit/master
>  * [new branch]      release    -> gerrit/release
> Done.
>
> Configuring GerritId hook...
> This hook automatically add a "Change-Id" footer to commit messages
> to make interaction with Gerrit easier.
> To disable this feature, run
>
>  git config hooks.GerritId false
>
> Done.
>
> Setting up the topic stage...
> Configuring the topic stage remote...
> Do you want to test push access itk.org? [y/N]: n
> Done.
>
> Suggesting git tips...
>
> A dynamic, informative Git shell prompt can be obtained by sourcing the git
> bash-completion script in your ~/.bashrc.  Set the PS1 environmental variable as
> suggested in the comments at the top of the bash-completion script.  You may
> need to install the bash-completion package from your distribution to obtain the
> script.
>
>
> A merge tool can be configured with
>
>  git config merge.tool <toolname>
>
> For more information, see
>
>  git help mergetool
>
>
> ITK comes with a pre-commit hook to help committed code to conform to the ITK
> Style Guidelines (See Documentation/Style.pdf).  When committing code, it can be
> passed through uncrustify (http://uncrustify.sourceforge.net).  However, this
> feature is disabled by default.  To enable this feature,
>
>  git config --bool hooks.uncrustify true
>
> Done.
>
> rupert at morrigan:~/src/ITK$ git fetch
> http://review.source.kitware.com/p/ITK refs/changes/58/1958/5
> fatal: http://review.source.kitware.com/p/ITK/info/refs download error
> - The requested URL returned error: 403
> rupert at morrigan:~/src/ITK$ git fetch
> ssh://review.source.kitware.com/p/ITK refs/changes/58/1958/5
> Enter passphrase for key '/home/rupert/.ssh/id_rsa':
> fatal: '/p/ITK': not a Gerrit project
> fatal: The remote end hung up unexpectedly
> rupert at morrigan:~/src/ITK$ ssh review.source.kitware.com
> Enter passphrase for key '/home/rupert/.ssh/id_rsa':
>
>  ****    Welcome to Gerrit Code Review    ****
>
>  Hi Rupert Brooks, you have successfully connected over SSH.
>
>  Unfortunately, interactive shells are disabled.
>  To clone a hosted Git repository, use:
>
>  git clone ssh://Rupert@review.source.kitware.com:29418/REPOSITORY_NAME.git
>
> Connection to review.source.kitware.com closed.
> rupert at morrigan:~/src/ITK$ git fetch
> ssh://Rupert@review.source.kitware.com/p/ITK refs/changes/58/1958/5
> Enter passphrase for key '/home/rupert/.ssh/id_rsa':
> fatal: '/p/ITK': not a Gerrit project
> fatal: The remote end hung up unexpectedly
> rupert at morrigan:~/src/ITK$ git fetch
> ssh://Rupert@review.source.kitware.com:p/ITK refs/changes/58/1958/5
> ssh: Could not resolve hostname review.source.kitware.com:p: Name or
> service not known
> fatal: The remote end hung up unexpectedly
> rupert at morrigan:~/src/ITK$ git fetch
> ssh://Rupert@review.source.kitware.com/~/p/ITK refs/changes/58/1958/5
> Enter passphrase for key '/home/rupert/.ssh/id_rsa':
> fatal: '~/p/ITK': not a Gerrit project
> fatal: The remote end hung up unexpectedly
> rupert at morrigan:~/src/ITK$ ssh -p 29418 Rupert at review.source.kitware.com
> Enter passphrase for key '/home/rupert/.ssh/id_rsa':
>
>  ****    Welcome to Gerrit Code Review    ****
>
>  Hi Rupert Brooks, you have successfully connected over SSH.
>
>  Unfortunately, interactive shells are disabled.
>  To clone a hosted Git repository, use:
>
>  git clone ssh://Rupert@review.source.kitware.com:29418/REPOSITORY_NAME.git
>
> Connection to review.source.kitware.com closed.
> rupert at morrigan:~/src/ITK$ git fetch
> http://review.source.kitware.com/~/p/ITK refs/changes/58/1958/5
> fatal: http://review.source.kitware.com/~/p/ITK/info/refs not found:
> did you run git update-server-info on the server?
>
>
>
>
>
> On Mon, Jul 4, 2011 at 07:58, Rupert Brooks <rupert.brooks at gmail.com> wrote:
>> Bill,
>>
>> The more i read about git, the more convinced i am, despite the
>> learning curve.  Its a steep one though.
>>
>> Yes, i saw that line and used it.  I have studied it a bit more this
>> morning. The first command on that line
>> gives me trouble this morning - as written its
>>
>> git fetch http://review.source.kitware.com/p/ITK refs/changes/51/1551/1
>>
>> which to me says get from the repository named p/ITK on revew.kitware
>> etc a branch named refs/changes/51/1551/1
>>
>> However this fails with the following
>> rupert at morrigan:~/src/ITK$ git fetch
>> http://review.source.kitware.com/p/ITK refs/changes/51/1551/1
>> fatal: http://review.source.kitware.com/p/ITK/info/refs download error
>> - The requested URL returned error: 403
>>
>> I could interpret this as needed quotes around
>> "http://review.source.kitware.com/p/ITK refs/changes/51/1551/1" but
>> this gives
>> me a different error
>>
>> fatal: Couldn't find remote ref HEAD
>>
>> using ssh gives me slightly different errors.
>> rupert at morrigan:~/src/ITK$ git fetch
>> http://review.source.kitware.com/p/ITK refs/changes/51/1551/1
>> fatal: http://review.source.kitware.com/p/ITK/info/refs download error
>> - The requested URL returned error: 403
>> rupert at morrigan:~/src/ITK$ git fetch
>> ssh://review.source.kitware.com/p/ITK refs/changes/51/1551/1
>> Enter passphrase for key '/home/rupert/.ssh/id_rsa':
>> fatal: '/p/ITK': not a Gerrit project
>> fatal: The remote end hung up unexpectedly
>>
>> After reading a lot of docs, i'm fairly convinced that this is the
>> right command to use (In any case, i copied it from Gerritt).
>> But i'm not confident enough in my git understanding to say for sure.
>>
>> Just in case its relevant
>> rupert at morrigan:~/src/ITK$ git --version
>> git version 1.6.3.3
>> rupert at morrigan:~/src/ITK$ uname -a
>> Linux morrigan 2.6.31-22-generic #73-Ubuntu SMP Fri Feb 11 19:18:05
>> UTC 2011 x86_64 GNU/Linux
>>
>> Happy Independence Day - these matters can easily wait till tomorrow.
>>
>> Rupert
>>
>> --------------------------------------------------------------
>> Rupert Brooks
>> rupert.brooks at gmail.com
>>
>>
>>
>>
>> On Sun, Jul 3, 2011 at 15:46, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>> Rupert,
>>>
>>> There is a button to the right of the gerrit download line. It will
>>> copy the download line and you can paste it.
>>>
>>> There is a bit of a learning cure. But it will be worth it.
>>>
>>> This comes from a guy that hates change...
>>>
>>> Bill
>>>
>>> On Sun, Jul 3, 2011 at 3:40 PM, Rupert Brooks <rupert.brooks at gmail.com> wrote:
>>>> Thanks Bill
>>>>
>>>> ssh gave me a less cryptic error at least, so i realized it was the
>>>> space in ITK refs that was causing the 403 error.  I've gotten
>>>> farther, but i realize i need to study git a lot more closely.  It may
>>>> take a while....  Its sunny here, so it may also wait due to good
>>>> weather :-)
>>>>
>>>> Rupert
>>>> --------------------------------------------------------------
>>>> Rupert Brooks
>>>> rupert.brooks at gmail.com
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, Jul 3, 2011 at 14:49, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>>> Rupert,
>>>>>
>>>>> There are 3 different ways to pull from gerrit: Anonymous HTTP, SSH
>>>>> and HTTP. I recall that I had intermittent problems with the HTTP a
>>>>> while back. I always use SSH.
>>>>>
>>>>> You could try your original again and see if it works. Or try the other two.
>>>>>
>>>>> Bill
>>>>>
>>>>> On Sun, Jul 3, 2011 at 2:27 PM, Rupert Brooks <rupert.brooks at gmail.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Ok - I was game to try this (specifically reviewing the BSpline one),
>>>>>> but im having some trouble with the version control system.  I
>>>>>> apologize in advance for my Git ignorance.
>>>>>>
>>>>>> I set up ITK -git for developers as described on the wiki.  I wrote a
>>>>>> little use case of my own for BSpline.  What i want to do is
>>>>>>
>>>>>> 1 - build / run my usecase against the master
>>>>>> 2 - check out the modification described in Gerrit
>>>>>> 3 - build run my usecase with the mod.
>>>>>> 4 - switch back and forth as needed poking it until i  feel i understand
>>>>>> 5 - comment intelligently (hopefully)
>>>>>>
>>>>>> Im stuck on 2.  This usage of the revision control doesnt seem to be
>>>>>> described in the Wiki - there is how to make some local changes and
>>>>>> push them to Gerrit, but not how to pull from gerrit and review a
>>>>>> change, then change back.
>>>>>>
>>>>>> I tried the git commands listed in the gerrit change, but that went
>>>>>> nowhere with the following error.
>>>>>>
>>>>>> rupert at morrigan:~/src/ITK$ git fetch
>>>>>> http://review.source.kitware.com/p/ITK refs/changes/56/1856/7 && git
>>>>>> checkout FETCH_HEAD -b BSplineRegistrationRefactoring
>>>>>> fatal: http://review.source.kitware.com/p/ITK/info/refs download error
>>>>>> - The requested URL returned error: 403
>>>>>>
>>>>>> Its also not clear to me how I would switch back, although im guessing
>>>>>> git checkout master
>>>>>>
>>>>>> should do the job
>>>>>>
>>>>>> Is there a wiki doc walking through this common use case for the
>>>>>> Revision control system?
>>>>>>
>>>>>> Cheers
>>>>>> Rupert
>>>>>>
>>>>>> --------------------------------------------------------------
>>>>>> Rupert Brooks
>>>>>> rupert.brooks at gmail.com
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Jun 30, 2011 at 09:31, Nicholas Tustison <ntustison at gmail.com> wrote:
>>>>>>> Hi Rupert,
>>>>>>>
>>>>>>> Much of the work is in the RegistrationRefactoring branch on github
>>>>>>> as mentioned.  However, more-or-less self-encapsulated units are
>>>>>>> currently on gerrit and you're certainly welcome to review them.  For
>>>>>>> example, some fundamental fixes to the B-spline deformable transform
>>>>>>> and initializer are proposed here
>>>>>>>
>>>>>>> http://review.source.kitware.com/#change,1856
>>>>>>>
>>>>>>> Additionally, a good chunk of the point set metric refactoring/enhancements
>>>>>>> are proposed here
>>>>>>>
>>>>>>> http://review.source.kitware.com/#change,1976
>>>>>>>
>>>>>>> I don't know if they fall within your interest but we're always looking for
>>>>>>> feedback.
>>>>>>>
>>>>>>> Nick
>>>>>>>
>>>>>>>
>>>>>>> On Jun 30, 2011, at 9:19 AM, Rupert Brooks wrote:
>>>>>>>
>>>>>>>> Procrastinate for two weeks.  Absolutely ;-)
>>>>>>>>
>>>>>>>> The latter part of the email seems to suggest though that it might
>>>>>>>> help if i follow along during the process of putting the refactored
>>>>>>>> code into ITK4.  I assume this would best be done via the Gerrit
>>>>>>>> review process.  If i understand correctly, whats in
>>>>>>>> RegistrationRefactoring will soon be pushed to the ITKV4 master.  Is
>>>>>>>> this the right way to proceed?
>>>>>>>>
>>>>>>>> Rupert
>>>>>>>>
>>>>>>>>
>>>>>>>> --------------------------------------------------------------
>>>>>>>> Rupert Brooks
>>>>>>>> rupert.brooks at gmail.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Jun 30, 2011 at 08:27, Johnson, Hans J <hans-johnson at uiowa.edu> wrote:
>>>>>>>>> Rupert and Brian,
>>>>>>>>>
>>>>>>>>> I have a proposal:
>>>>>>>>>
>>>>>>>>> Rupert:  Would you be able to wait two weeks to do your review?  We just
>>>>>>>>> finished our ITKv4 developers meeting, and there will be a lot of action
>>>>>>>>> in the next two weeks to bring this directly into ITKv4.
>>>>>>>>>
>>>>>>>>> Brian:  Could we help get the current alpha pieces pushed into ITKv4
>>>>>>>>> proper?
>>>>>>>>>
>>>>>>>>> ==========================
>>>>>>>>> I am concerned about getting distracted from the primary goal of getting
>>>>>>>>> the registration into ITKv4 directly.
>>>>>>>>>
>>>>>>>>> Hans: I was planning to do extensive registration testing, and external
>>>>>>>>> tool code refactoring to match the ITKv4 registration framework during the
>>>>>>>>> second 1/2 of July. If Rupert and Hans could assist Brian's team in
>>>>>>>>> getting the source code moved and integrated with ITKv4 between now and
>>>>>>>>> July 15, then we will be more efficient in identifying use case problems
>>>>>>>>> related to algorithmic and api problems.
>>>>>>>>>
>>>>>>>>> Does this timeline work for the two of you?
>>>>>>>>>
>>>>>>>>> Hans
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 6/30/11 7:12 AM, "Rupert Brooks" <rupert.brooks at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Brian,
>>>>>>>>>>
>>>>>>>>>> This looks very interesting.  I hope you dont mind a few questions.
>>>>>>>>>> If theres a written document to refer me to, feel free.
>>>>>>>>>>
>>>>>>>>>> I've been reading this:
>>>>>>>>>> http://www.itk.org/Wiki/ITK_Release_4/Enhancing_Image_Registration_Framewo
>>>>>>>>>> rk
>>>>>>>>>> but i have trouble mapping it to what i see in the GIT.
>>>>>>>>>>
>>>>>>>>>> I'm having some trouble identifying all the diffs between the
>>>>>>>>>> Registration branch and current ITK master, but it seems to me that
>>>>>>>>>> most is in Modules/Registration/Refactoring.  Would that be the case?
>>>>>>>>>> Is this ImageToObjectRegistration framework intended to replace one or
>>>>>>>>>> more of the current Parametric / PDE / FEM registration frameworks, or
>>>>>>>>>> to be in parallel with them.   Or, to ask my question another way - I
>>>>>>>>>> currently have some feedback / commentary regarding
>>>>>>>>>> itkOptimizer.h and its children...
>>>>>>>>>> itkCompositeTransform.txx
>>>>>>>>>> itkImageToImageMetric.txx
>>>>>>>>>> itkNormalizedCorrelationImageToImageMetric.txx
>>>>>>>>>> which are in Modules/Registration/Common
>>>>>>>>>>
>>>>>>>>>> Currently in RegistrationRefactoringNew these seem to be the same as
>>>>>>>>>> in master.  Will the new refactored framework replace these classes,
>>>>>>>>>> so i shouldnt spend any time fiddling with them, or is it more or less
>>>>>>>>>> independent.
>>>>>>>>>>
>>>>>>>>>> I've only had about half an hour to look at it, and i havent had time
>>>>>>>>>> to compile it yet, so i may be about to embarrass myself with a stupid
>>>>>>>>>> question.  I'll ask anyway.  A core fundamental refactoring - looking
>>>>>>>>>> at the example you pointed me to - is that the update to the
>>>>>>>>>> parameters seems to have been pushed down all the way to the
>>>>>>>>>> transform, via the metric in the middle.  This is a very interesting
>>>>>>>>>> choice - for transforms such as the versor transform, which must
>>>>>>>>>> remain on a manifold that doesnt embed well in Euclidean space, this
>>>>>>>>>> removes the constraint issue from the optimizer. However - it did make
>>>>>>>>>> me wonder - what if i want to do anything other than gradient descent?
>>>>>>>>>> Also, it seems to force the computation to complete an entire
>>>>>>>>>> computation of the gradient, and hold it in memory, even though for a
>>>>>>>>>> local transform, it may be possible to perform the same update without
>>>>>>>>>> ever actually creating the whole gradient object in memory at once?
>>>>>>>>>>
>>>>>>>>>> I saw tantalizing pieces of GPU registration code commented out.  Is
>>>>>>>>>> that in process somewhere?
>>>>>>>>>>
>>>>>>>>>> In any case, i will spend more time on it which should hopefully lead
>>>>>>>>>> to more intelligent commentary, over the weekend.
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> Rupert
>>>>>>>>>> --------------------------------------------------------------
>>>>>>>>>> Rupert Brooks
>>>>>>>>>> rupert.brooks at gmail.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Jun 29, 2011 at 21:13, brian avants <stnava at gmail.com> wrote:
>>>>>>>>>>> rupert
>>>>>>>>>>>
>>>>>>>>>>> help is very welcome.
>>>>>>>>>>>
>>>>>>>>>>> refactored registration framework is here:
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/picslITK/ITK4_topics/tree/RegistrationRefactoringNew
>>>>>>>>>>>
>>>>>>>>>>> take a look at :
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ITK4_topics/Modules/Registration/Refactoring/test/itkDemonsImageToImageOb
>>>>>>>>>>> jectRegistrationTest.cxx
>>>>>>>>>>>
>>>>>>>>>>> which gives an example of a demons registration run in the standard
>>>>>>>>>>> framework.  the framework is changing, though, so realize what's there
>>>>>>>>>>> now is a mid-stream snapshot.
>>>>>>>>>>>
>>>>>>>>>>> brian
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Jun 29, 2011 at 8:59 PM, Rupert Brooks
>>>>>>>>>>> <rupert.brooks at gmail.com> wrote:
>>>>>>>>>>>> Hi Luis and everyone,
>>>>>>>>>>>>
>>>>>>>>>>>> As a pretty heavy user of ITK, I'm interested in helping out as well.
>>>>>>>>>>>> At the moment im working on some registration problems and im trying
>>>>>>>>>>>> to explore the refactored registration framework in ITK 4.
>>>>>>>>>>>> As im going through the current master, im noticing various things
>>>>>>>>>>>> ranging from typos to classes that seem to have gotten left behind to
>>>>>>>>>>>> questionable math.  I'd be happy to give this information as feedback
>>>>>>>>>>>> or fixes if its helpful.
>>>>>>>>>>>>
>>>>>>>>>>>> So question 1 - is the registration refactoring well represented in
>>>>>>>>>>>> ITK master, or is there more work elsewhere?  Is this the right time
>>>>>>>>>>>> to review it from a user perspective or is it premature?
>>>>>>>>>>>>
>>>>>>>>>>>> Question 2 - whats the best way to proceed?  Do i need to configure
>>>>>>>>>>>> Gerrit access, etc as a developer to contribute to the textual notes
>>>>>>>>>>>> you mentioned?
>>>>>>>>>>>>
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>> Rupert
>>>>>>>>>>>> --------------------------------------------------------------
>>>>>>>>>>>> Rupert Brooks
>>>>>>>>>>>> rupert.brooks at gmail.com
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Jun 3, 2011 at 09:46, Luis Ibanez <luis.ibanez at kitware.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> Hi Tom,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks for volunteering.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> The plans for the global clean up are here:
>>>>>>>>>>>>> http://www.itk.org/Wiki/ITK_Release_4/Global_Code_Review
>>>>>>>>>>>>>
>>>>>>>>>>>>> The procedure is described here
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://www.itk.org/Wiki/ITK_Release_4/Modularization/Code_Reviews/Proce
>>>>>>>>>>>>> ss#Git-Based
>>>>>>>>>>>>>
>>>>>>>>>>>>> Essentially:
>>>>>>>>>>>>>
>>>>>>>>>>>>> We have a duplicate Git repository
>>>>>>>>>>>>> https://github.com/InsightSoftwareConsortium/itk-retroactive-review
>>>>>>>>>>>>>
>>>>>>>>>>>>> that contains a .txt file for every source code file in ITK.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Instead of making bug entries in MANTIS,
>>>>>>>>>>>>> just edit those .txt files, and commit them.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Of course, if some issues are actual bugs,
>>>>>>>>>>>>> please feel free to report them in MANTIS.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> More comments below...
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Jun 3, 2011 at 5:11 AM, Tom Vercauteren
>>>>>>>>>>>>> <tom.vercauteren at m4x.org> wrote:
>>>>>>>>>>>>>> Hi Luis,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I would like to help in the cleanup process (especially for the code
>>>>>>>>>>>>>> I
>>>>>>>>>>>>>> worked on in the past) but have unfortunately very little time for
>>>>>>>>>>>>>> it.
>>>>>>>>>>>>>> The least I could do is pinpoint some places that I believe require
>>>>>>>>>>>>>> cleanup. The problem is I don't really know if such a task is wanted
>>>>>>>>>>>>>> and if so, how it should be done. Should I file bug reports  for each
>>>>>>>>>>>>>> cleanup task and mark them as feature requests? But then, who would
>>>>>>>>>>>>>> be
>>>>>>>>>>>>>> in charge of triaging these feature requests? Are other more
>>>>>>>>>>>>>> effective
>>>>>>>>>>>>>> options available?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://www.itk.org/Wiki/ITK_Release_4/Modularization/Code_Reviews/Proce
>>>>>>>>>>>>> ss#Git-Based
>>>>>>>>>>>>> https://github.com/InsightSoftwareConsortium/itk-retroactive-review
>>>>>>>>>>>>>
>>>>>>>>>>>>>> For the time being, there are a least a few places on the top of my
>>>>>>>>>>>>>> head that require cleanup (some of which might be considered as
>>>>>>>>>>>>>> features depending on how you look at it). Sorted by order of
>>>>>>>>>>>>>> importance:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 1) Bad design in ImportImageContainer.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> https://github.com/Kitware/ITK/blob/master/Modules/Core/Common/include
>>>>>>>>>>>>>> /itkImportImageContainer.h
>>>>>>>>>>>>>> The memory allocation and deallocation functions have an inconsistent
>>>>>>>>>>>>>> signature. One uses a member and the others returns a pointer:
>>>>>>>>>>>>>>  virtual TElement * AllocateElements(ElementIdentifier size) const;
>>>>>>>>>>>>>>  virtual void DeallocateManagedMemory();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> This makes it really difficult to override the class in a correct
>>>>>>>>>>>>>> manner. I have actually stumped into a bug in
>>>>>>>>>>>>>> TestImportImageContainer
>>>>>>>>>>>>>> coming from this design issue ( that I haven't filed yet :( )
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> https://github.com/Kitware/ITK/blob/master/Modules/Core/Common/test/it
>>>>>>>>>>>>>> kFactoryTestLib.cxx
>>>>>>>>>>>>>> With this TestImportImageContainer class, reallocating an image will
>>>>>>>>>>>>>> fail. This is bad since it will most certainly be the first thing
>>>>>>>>>>>>>> people will look at when trying to override the default memory
>>>>>>>>>>>>>> handling of ITK.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Fair enough...
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2) The unicode filename problem on windows.
>>>>>>>>>>>>>> Most of the low-level code necessary to deal with unicode filenames
>>>>>>>>>>>>>> through utf-8 encoding is already in the repository but it isn't used
>>>>>>>>>>>>>> yet. What still need to be done is use this low-level code for all IO
>>>>>>>>>>>>>> operations. More detail in:
>>>>>>>>>>>>>> http://www.itk.org/Bug/view.php?id=9623
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 3) There are a lot of useless vector-specific classes that were
>>>>>>>>>>>>>> introduced probably for MSVC 6. It might be the right time to merge
>>>>>>>>>>>>>> them back into the corresponding "scalar" classes.
>>>>>>>>>>>>>> http://itk.org/Bug/view.php?id=2712
>>>>>>>>>>>>>> http://www.itk.org/Wiki/ITK_Release_4/Wish_List#Image_Registration
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes,
>>>>>>>>>>>>> Cory, Arnaud, Gaetan and Brad L. have been improving
>>>>>>>>>>>>> the support for multiple components...
>>>>>>>>>>>>> We need raise the priority of this one,
>>>>>>>>>>>>> since it is so fundamental for
>>>>>>>>>>>>> Microscopy and for Remote Sensing.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 4) Some default options are not the most meaningful ones:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://www.itk.org/Wiki/ITK_Release_4/Wish_List#Backward_compatibility
>>>>>>>>>>>>>> _and_cleanup
>>>>>>>>>>>>>> For example Gaussian smoothing uses either a sigma defined in terms
>>>>>>>>>>>>>> of
>>>>>>>>>>>>>> physical space or pixel space depending on its implementation
>>>>>>>>>>>>>> (discrete versus recursive).
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yeap, the API is inconsistent.
>>>>>>>>>>>>> Plus some take Sigma, while others take Variance...
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 5) Others inconsistencies
>>>>>>>>>>>>>> http://www.itk.org/Bug/view.php?id=7351
>>>>>>>>>>>>>> http://www.itk.org/Bug/view.php?id=8944
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://www.itk.org/Wiki/ITK_Release_4/Wish_List#Make_the_boundary_cond
>>>>>>>>>>>>>> itions_usage_consistent_across_the_toolkit
>>>>>>>>>>>>>> For example the behavior of the interpolators outside the image
>>>>>>>>>>>>>> domain
>>>>>>>>>>>>>> is not practical. This is one of the reason why I implemented
>>>>>>>>>>>>>> VectorLinearInterpolateNearestNeighborExtrapolateImageFunction
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> https://github.com/Kitware/ITK/blob/master/Modules/Nonunit/Review/incl
>>>>>>>>>>>>>> ude/itkVectorLinearInterpolateNearestNeighborExtrapolateImageFunction.
>>>>>>>>>>>>>> h
>>>>>>>>>>>>>> Ideally, the functionnality of this class should be handled by
>>>>>>>>>>>>>> LinearInterpolateImageFunction.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hope this helps,
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> It certainly does.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>   Many Thanks
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>        Luis
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> -----------------------------
>>>>>>>>>>>>>> Tom
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Jun 2, 2011 at 15:06, Luis Ibanez <luis.ibanez at kitware.com>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> I want to second Brad L. comment regarding
>>>>>>>>>>>>>>> our current misplaced focus on ITKv4.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> There is a disproportionate number of changes
>>>>>>>>>>>>>>> that are introducing new features in the toolkit,
>>>>>>>>>>>>>>> when we are supposed to be focused on cleaning
>>>>>>>>>>>>>>> up and restructuring for the next 10 years.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I suggest that we prioritize every patch in Gerrit
>>>>>>>>>>>>>>> based on whether it is:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 1) Bug fix
>>>>>>>>>>>>>>> 2) Clean up resulting from code reviews
>>>>>>>>>>>>>>> 3) Needed for refactoring (FEM, Regist, LevelSets)
>>>>>>>>>>>>>>> ....
>>>>>>>>>>>>>>> 99) New features
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> We have limited time and resources to do all
>>>>>>>>>>>>>>> the refactoring and revision of ITKv4 and we
>>>>>>>>>>>>>>> are being side-tracked dealing with changes
>>>>>>>>>>>>>>> that are not part of the ITKv4 charter.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>       Luis
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> 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
>>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> 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
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> 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
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ________________________________
>>>>>>>>> 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.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
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> 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