team tools

set of scripts for performing delivers and rebases on child branches of repositories of distributed version controll systems (VCS).


since projects are nowdays very often created using distributed development, it is essential to make it as easy and error-prone as possible.

proposed idea assumes that each repository has its parent repository (except for the main one of course ;)). there are two operations defined on them:

  1. rebase – gets new code from parent repository and merges it into child repository.
  2. deliver – gets new code from child repository and merges with code from parent repository. to make things more secure in terms of team work it is possible to attach build process (for example build process) that will build merged code before making it available for others. having this done we have much higher chance that parent branch will be always compilable and others will not waist their time fixing our syntax errors, after they rebase.

the idea of branches, delivers and rebases illustrates following picture.

configuration and usage

NOTE: currently only Bazaar VCS is supported.

after downloading team_tools file extract it there will be bzr directory inside. read bzr/README for details of preparation. in general config file (example available inside bzr directory) has to be put into project root and deliver/rebase scripts should be called from branch's root directory (you can put them in somewhere in $PATH or just link hem to project's root).

from now on all you have to do is call rebase to get remote changes available locally (non-trivial merges are solved using kdiff3 tool) and deliver to put your code into parent making them visible for others.


currently available version is v1.0.1 - team_tools.tar.bz2.

release notes


  • updated link to project's page.
  • rebase does NOT pull when no merge is required - this makes reviews easier and it more intuitive for users (i.e. revno will always grow).


  • rebase pulls when no merge is required.


  • build now by default runs count(CPU)+1 threads in make.
  • deliver now fails if there are not-versioned files - this prevents situation when not-complete code is delivered.
  • defauolt build script now checks for tabulators and trailing spaces in sources.
  • gcc and intel toolchains are now tested by default and used during build if present.


  • merging directories now work as it should, with respect to version history of an element.
  • merging is more robust now.
  • added automatic detection of CPUs count for paraller builds when delivering.
  • fixed config files names in example.


  • fixed bug with silent non-rebasing when host hostname of parent is invalid.
  • comments in delivery script updated.
  • build config is now in a separate file, which is not-user specific, therefore can be added to repository.
  • added 2nd license: revised BSD.
  • branch is now updated before checking for changes.
  • added updating of tree on rebase (usefull if tree is not up to date).
  • removed annoying message about updating remote tree.
  • merging only non-trivial merges from now on.
  • fixed bug with non-removing merge.log under normal circumstances.
  • added more conflicting situations to supported set.
  • more comments have been added, to make life easier for users.
  • modified example configuration to provide build_project funciton for deliver script.
  • added rebase script for bzr.
  • added deliver scirpt for bzr.
prjs/team_tools/team_tools.txt · Last modified: 2021/06/15 20:09 by
Back to top
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0