Hi Jose, On 30 Aug 2011, at 5:43PM, Jose Luis Rivero wrote: > On 08/29/2011 06:25 PM, Lorenz Mösenlechner wrote: >> Hi, >> >> normally, people develop in trunk and whenever the code is ready, a >> release is done. >> >> Normally, related packages are packed together into stacks. When a >> release is done, the stack's version number is increased and the >> current dev-branch (trunk in most cases) is tagged. For instance, when >> the new version 1.3 of stack foo is released, the tag tags/foo-1.3 is >> created. In addition, a branchs named according to the ros distro >> names the release is done against is created, >> e.g. branches/diamondback. >> > > Thanks for the info Lorenz, never heard about that release scripts > before. are there many institution repositories working this way? > > The model sounds quite reasonable but we have seen an inconvenience to > manage developing this way: > > Every time you make a tag (or a branch) subversion is going to copy the > code in the corresponding directories (branches/ tags/) inside the repo. > This means you will have a repo with duplicates directories for packages > in branches/ trunk/ and tags, right? > > Seeing the way rospack finds packages (mostly leaving the filesystem to > decide the order to loop subdirs contained in entries of > ROS_PACKAGE_PATH) if you make something like a roscd, it could make you > to land on branches/ or tags/ instead of desired trunk. You do not normally check out the entire repository. Instead, you check out trunk and use the switch command as necessary: http://svnbook.red-bean.com/en/1.0/re27.html Similarly, when you tag a release, it exists on the repository but not your machine, so you won't run into this problem. Cheers, Jeremiah