On Thu, May 1, 2014 at 3:24 AM, Tully Foote wrote: > 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. > > Tully > > On Thu, May 1, 2014 at 1:04 AM, Michael Ferguson wrote: > >> Wow! Easy indeed! >> >> 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. >> >> -Fergs >> >> >> On Thu, May 1, 2014 at 1:01 AM, William Woodall wrote: >> >>> I went ahead and did it, this is what I did: >>> >>> $ git clone https://github.com/ros-gbp/bfl-release.git >>> $ cd bfl-release >>> $ git checkout master >>> $ cp -r hydro indigo >>> $ git add indigo >>> $ git commit -m "create indigo patch folder with indigo package.xml >>> template" >>> $ git-bloom-config copy hydro indigo >>> $ git-bloom-config edit indigo >>> ... change settings for indigo >>> ... change rosdistro to indigo >>> ... change patches directory to indigo >>> $ bloom-release -r indigo -t indigo bfl >>> ... give it the release repo: https://github.com/ros-gbp/bfl-release.git >>> ... push with force if needed for tags >>> ... push changes but don't open pull request >>> $ cd .. >>> $ rm -rf bfl-release >>> $ git clone https://github.com/ros-gbp/bfl-release.git >>> $ cd bfl-release >>> $ python -c "from bloom.git import track_branches; track_branches()" >>> ... This tracks all remote branches locally >>> $ git branch >>> ... go to each indigo patch branch and copy over any patches from the >>> hydro equivalents >>> ... probably just need patches/release/.../bfl and patches/debian/.../bfl >>> ... for instance: >>> $ git ls-tree --name-only -r patches/release/hydro/bfl | grep '\.patch' >>> | xargs -I {} sh -c 'git show patches/release/hydro/bfl:"$1" > "$1"' -- {} >>> $ git add ./*.patch >>> $ git commit -m "migrating patches from hydro" >>> $ git push origin patches/release/indigo/bfl >>> ... Once you have migrated any patches you need, bloom-release and pull >>> request >>> $ bloom-release -r indigo -t indigo bfl >>> ... give it the release repo: https://github.com/ros-gbp/bfl-release.git >>> >>> https://github.com/ros/rosdistro/pull/4079 >>> >>> And "it's that easy"! :) >>> >>> 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. >>> >>> We can copy this to ros-release as well. >>> >>> 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. 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. I guess my only other option is recreating all the patches by hand. Any other suggestions? -- joq