We use Subversion.
Good process:
1. Get up-to-date
2. Build
3. Never work on broken build
4. Develop
5. Build
6. Local testing
7. Commit
8. Resolve conflicts immediately
update and commit:
- Get up-to-date before working on a file.
- Do not commit if code doesn't pass local testing or won't even compile.
- Immediately commit after completing a piece of functionality.
- One commit for one purpose. One purpose into one commit.
- Do not commit any artifacts auto-generated out of the building pr0cess(e.g. program binary).
comments:
- Make sure all commit contain comments.
- About comment convention, an example:
- New, Bug or Refactor should be the prefix. e.g.:
- New I20120305_C032: Add a new control for DateofBirth.
- Bug I20120307_D021: Fix save scan result will quit the application bug.
- Refactor: Extract the version check procedure into a new function.
tag and release:
- Create tag for release to customer.
- Release program file(binary) backup on server with the name has tag name (or SVN revision) in it.