[ros-users] Rosco - ros.org checkout tool

Ken Conley kwc at willowgarage.com
Thu Aug 18 23:36:24 UTC 2011

On Thu, Aug 18, 2011 at 4:23 PM, Ibrahim Awwal
<ibrahim.awwal at berkeley.edu> wrote:
> Wow, that was an interesting coincidence. I guess I didn't really search
> hard to see whether something like this existed. Hadn't considered branches
> though, that's something to keep in mind. I think your tool is actually
> better than mine with that in mind, mine could be replaced with a call to
> yours and roslocate. I think one possible modification to your rosco to
> make it just as easy as mine would be to have it check if the file argument
> exists, and if not try running roslocate with that first argument as the
> package name, and then read that snippet in and process it as usual.

I'd rather avoid ambiguous cases as they've bitten me in the past, so how about:

# checkout a package/stack, uses same options and roslocate
rosco foo --distro=unstable
rosco foo --distro=electric --dev

# checkout all entries in a rosinstall file
rosco -r foo.rosinstall
rosco --rosinstall foo.rosinstall

# pipe output from roslocate directly
roslocate info eigen --distro=unstable | rosco

If you're interested, we could write a REP together and package either
as part of rosinstall or as a separate standalone tool.  I imagine it
would be a fairly short REP.  It reminds me that I have a draft for
the roslocate tool that I can circulate as well so that we can
finalize/vote on the API.

 - Ken

> -Ibrahim
> On Thu, 18 Aug 2011 16:08:17 -0700, Ken Conley <kwc at willowgarage.com>
> wrote:
>> Here's a different take on a similar idea.  It would be great to
>> combine into one tool as I think they are coming from the same
>> motivation of "gimme the code".
>> https://code.ros.org/lurker/message/20110713.092005.2f102738.en.html
>> To summarize:
>> # checkout all entries in foo.rosinstall to this directory
>> rosco foo.rosinstall
>> # lookup snippet for eigen and check it out
>> roslocate info eigen --distro=unstable | rosco
>> script here:
>> https://kforge.ros.org/kwc/rosco/raw-file/437f02319ff3/rosco
>> The main distinction is my version takes in a rosinstall fragment
>> either as a filename or piped output.  The piped output may not be as
>> straightforward as yours for people to grok.
>> The main upgrade that yours would need is to deal with branches/tags
>> properly.  Many of the git/hg URIs require a specific branch.  Also,
>> you often need to distinguish between the released version of a
>> package vs. the development branch.
>> cheers,
>> Ken
>> On Thu, Aug 18, 2011 at 3:30 PM, Ibrahim Awwal
>> <ibrahim.awwal at berkeley.edu> wrote:
>>> ... Because life's too short to spend time copying URLs off of ros.org
>>> wiki
>>> pages...
>>> So, in a bout of severe laziness I wrote a tiny bash script to
>>> automatically
>>> checkout a package/stack that's listed on ros.org. I affectionately
> call
>>> it
>>> rosco, short for ros checkout. You can grab it here:
>>> https://gist.github.com/1155414 . If someone like this already exists,
> I
>>> will feel slightly foolish, but it took me a handful of minutes to
> write
>>> so
>>> it's already saved me enough time to have been worth writing. It's
> pretty
>>> simple, stick it somewhere in your path (probably want to rename it to
>>> rosco
>>> and make it executable for ease of use) and then just give it the name
> of
>>> the package or stack you want to install. For example, all you need to
>>> do to
>>> check out the 3d_navigation stack (can't wait until it works btw!) is
>>> type
>>> `rosco 3d_navigation`, and it will look up the repository information
>>> automatically and check it out. Currently supports svn, git, and hg,
>>> because
>>> those were the three that I noticed, haven't really found any
> exhaustive
>>> list of VCS software that's used in ROS packages though, mainly due to
>>> lack
>>> of trying (although I guess I could probably script that too). Depends
> on
>>> roslocate being on your PATH (which I guess comes as part of
> rosinstall).
>>> Happy coding!
>>> --
>>> -Ibrahim Awwal
>>> _______________________________________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/listinfo/ros-users
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
> --
> -Ibrahim Awwal
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

More information about the ros-users mailing list