<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 1, 2014 at 3:24 AM, Tully Foote <span dir="ltr"><<a href="mailto:tfoote@osrfoundation.org" target="_blank">tfoote@osrfoundation.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">For 3rdparty package maintainers looking to port a patched package forward to a new rosdistro here's what William did to port BFL forward into indigo from hydro. <div>
<br></div><div class="gmail_quote"><div class="gmail_extra">

<div>Tully<br><br></div><div><div><div class="gmail_quote">On Thu, May 1, 2014 at 1:04 AM, Michael Ferguson <span dir="ltr"><<a href="mailto:mfergs7@gmail.com" target="_blank">mfergs7@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr">Wow! Easy indeed!<div><br></div><div>Thanks for going ahead and cranking that out -- I would have never figured that out. I agree, copying that to the mailing list would probably be helpful to anyone who ends up maintaining one of these kind of packages down the road.</div>





<div><br></div><div>-Fergs</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 1, 2014 at 1:01 AM, William Woodall <span dir="ltr"><<a href="mailto:wjwwood@gmail.com" target="_blank">wjwwood@gmail.com</a>></span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">I went ahead and did it, this is what I did:<div>


<br></div><div>$ git clone <a href="https://github.com/ros-gbp/bfl-release.git" target="_blank">https://github.com/ros-gbp/bfl-release.git</a></div>


<div>$ cd bfl-release</div>

<div>$ git checkout master</div><div>$ cp -r hydro indigo</div><div>$ git add indigo</div><div>$ git commit -m "create indigo patch folder with indigo package.xml template"</div><div>$ git-bloom-config copy hydro indigo</div>







<div>$ git-bloom-config edit indigo</div><div>... change settings for indigo</div><div>... change rosdistro to indigo</div><div>... change patches directory to indigo</div><div>$ bloom-release -r indigo -t indigo bfl</div>







<div>... give it the release repo: <a href="https://github.com/ros-gbp/bfl-release.git" target="_blank">https://github.com/ros-gbp/bfl-release.git</a></div><div>... push with force if needed for tags</div><div>... push changes but don't open pull request</div>







<div>$ cd ..</div><div>$ rm -rf bfl-release</div><div>$ git clone <a href="https://github.com/ros-gbp/bfl-release.git" target="_blank">https://github.com/ros-gbp/bfl-release.git</a></div><div>$ cd bfl-release</div><div>$ python -c "from bloom.git import track_branches; track_branches()"</div>







<div>... This tracks all remote branches locally</div><div>$ git branch</div><div>... go to each indigo patch branch and copy over any patches from the hydro equivalents</div><div>... probably just need patches/release/.../bfl and patches/debian/.../bfl</div>







<div>... for instance:</div><div>$ git ls-tree --name-only -r patches/release/hydro/bfl | grep '\.patch' | xargs -I {} sh -c 'git show patches/release/hydro/bfl:"$1" > "$1"' -- {}</div>







<div>$ git add ./*.patch</div><div>$ git commit -m "migrating patches from hydro"</div><div>$ git push origin patches/release/indigo/bfl</div><div>... Once you have migrated any patches you need, bloom-release and pull request</div>







<div>$ bloom-release -r indigo -t indigo bfl</div><div>... give it the release repo: <a href="https://github.com/ros-gbp/bfl-release.git" target="_blank">https://github.com/ros-gbp/bfl-release.git</a><br></div><div><br></div>





<div><a href="https://github.com/ros/rosdistro/pull/4079" target="_blank">https://github.com/ros/rosdistro/pull/4079</a><br>

</div><div><br></div><div>And "it's that easy"! :)</div><div><br></div><div>Unfortunately this is pretty tedious and error prone and not well documented, but it should only affect a handful of cases and I've often considered a tool to help with this, but always shied away from it because I think the cost out weighs the benefit.</div>







<div><br></div><div>We can copy this to ros-release as well.</div></div><div class="gmail_extra"><br></div></blockquote></div></div></div></div></blockquote></div></div></div></div></div></div></blockquote></div><div><br>
</div><div>Thanks for posting. I can follow the first half reasonably well. But, after erasing the local clone and creating it again, I have no idea why to do that or what is going on.<div><br></div><div>I need to do something similar for libfreenect. I don't think I can follow William's example well enough for it to work. I expect I could easily destroy that release repository. </div>
<div><br></div><div>I guess my only other option is recreating all the patches by hand. Any other suggestions?</div></div><div>-- <br></div> joq
</div></div>