0

Good morning guys. This time a general question about versioning tools. In my sw house 15 people works on ACU COBOL, producing a management software for pharmacy. I'm the only .NET guy, working on other integration sw. This management sw is composed by 300-400 programs, and my colleague often modify and release programs in spare zip packages; the philosophy is similar to "rolling release" in Linux distribution.

In this kind of working environment, how versioning tool can be the best? Now they don't use any versioning tool, so they have no preconcepts: just a new thing to learn and use. They need to track changes to the programs using sort of tags, so when they have to publish a fix (a zip package) they can go in repository and get tagged modified programs to achieve a particular request. We are thinking about Mercurial and Trac, but I'd like to know from other developers if there are better tools to manage our particular working and release flow.

Thank you!
Nando


Thank you VonC! I'll try to explein better our needs.

Well, tracking history is important for us, so VCS (a DVCS like Mercurial) can be a good choice.

Now source management is done by hand: there's a folder that we use as a main trunk, and where developer do their work. When working to resolve a bug or implementing new "urgent" feature requests (we work with pharmacies, affected by thousands of different laws we cannot ignore…), they write down on an Excel (!) spreadsheet which programs are affected by their work; when done, they compile these programs in release mode, build the zip, then they publish it on a our custom web app, where our sw distributor can get it and publish it on their custom frontend, where their clients (using our management sw) can get the updates.

We need to keep track about this kind of working method:

  • Bug o urgent feature to implement ->
  • generate a Ticket (issue, track, call it like you want, but a comment where to register work done in natural language and where help desk –not developer– can understand work done) ->
  • work & debug ->
  • tag (like “fix-123”) programs affected by this Ticket ->
  • commit in main trunk ->
  • get only modified programs, searching by tag “fix-123” ->
  • compile only these programs ->
  • build the zip and release (in our custom way, this is not important).
  • Mercurial can be a solution, but I only want to know if anyone else had these same problems and how resolved them.

    Thank you!
    Nando

    Ferdinando Santacroce
    • 1,047
    • 3
    • 12
    • 31

    1 Answers1

    0

    I would advice to differentiate:

    • source management (managed in a VCS repository, either a central one with Subversion, or a decentralized one with Mercurial or Git: see differences between DVCS and CVCS). Many more issues with setting up a VCS in a corporate environment are listed in this SO answer.
    • release management (with binary artifacts like your zips, better managed in a more general repository like a maven one with Nexus).
      The fact that you release often means you will have to "cleanup" some old release you don't need anymore (and which eats, release after release, your disk space as well as your backups): it is much easier to remove old artifact in a Maven repo (for instance) than in any VCS tool (which are designed to retain the history!)
    Community
    • 1
    • 1
    VonC
    • 1,262,500
    • 529
    • 4,410
    • 5,250