Code Management & Version Control

Use "a" key to toggle between single page and slideshow modes. Use the space bar or right arrow for next slide,
left arrow to back up.

Configuration Management

SCM Goals

Complicating Factors

SCM Models

Handling Concurrent Updates

SCM Concepts

  • Version/revision numbers
  • Timestamps
  • Releases
  • Repository
  • Baseline/Trunk/Mainline
  • Branches/Forks
  • Change list, or patch
  • Checkout = get local working copy (locked, or not?)
  • Export/Import
  • Commit
  • Conflict (superficial, vs. deep)
  • Merge
  • Trunks
  • Tag = attached to files represents a snapshot in time (a configuration)
  • Working copy, or "sandbox"

SCM Tools

Workflows

"Story branch" pattern with git

  1. Choose a feature/task/story to work on, and mark it as being worked on (presumes a workflow tool is being used)
  2. Git a fresh copy of the baseline code tree
    git checkout master
    git pull
  3. Make a branch to work in
    git checkout -b storybranch
  4. Write a test for the feature/story
  5. Make changes to the code, commiting often
    git commit -am "summary of what changes I made just now"
  6. When the test passes, do another commit, and cycle back to step 4, until the feature/story is believed to be complete
  7. Merge with master
    1. Review changes
      git diff master
    2. Merge changes
      git checkout master
      git pull
      git checkout storybranch
      git rebase master
    3. Do this frequently, to keep in sync. with other changes.

  8. Correct any conflicts, and repeat until convergence
  9. Push new version back to the trunk
    git checkout master
    git merge storybranch
    git push
    git checkout storybranch
    This presumes there are no merge conflicts.

Combined from Agile git and the story branch pattern and Hack && Ship

Notes:

Task Tracking Tools

References

p