On Fri, May 7, 2010 at 5:42 AM, Brad Allen <bradallen137@gmail.com> wrote:
Well, I am looking for stories here from other organizations as a source of lessons. However, maybe it would help if I spent more time describing what we're trying to accomplish.
We're a medium size software product company (over 100 employees), the supported platforms are Linux and Windows servers, and most of our package dependencies are internal. However, we also have third party open source dependencies.
For what is is worth keep a central repository for dependencies (either external or internally produced) and enforce it with an iron fist or thinks will go pretty quickly out of control (project A depends on project B and project C on project B' but projectB and projectB' cannot be used at the same time).
With a DVCS it makes sense to have multiple repositories (a repo for each package, er, I mean 'module distribution'), though we do have a centralized workflow with a central server containing all the repos.
You may be interested to take a look how Chrome manages it's dependencies with gclient - "A script for managing a workspace with modular dependencies that are each checked out independently from different repositories". http://dev.chromium.org/developers/how-tos/depottools A little bit tweaked it can be used to track newer commits in source repositories to give you a hint when a checkpoint in your config file can be moved forward. Starting with this you may further mark packages as autoupdating etc. -- anatoly t.