Today is Sunday, 10th March 2019

Archive for January, 2011

Subversion Cheat Sheet

Here’s a cheat sheet I developed for Subversion. Enjoy!

Checking out codesvn checkout theURL thePath
Checking out a specific revisionsvn checkout -r theRev theURL
Updating a working copysvn update
Adding files to repositorysvn add thePath
Ignoring files in a directorysvn propedit svn:ignore thePath
Showing changes to a file or directorysvn diff thePath
Showing most recent changes to a filesvn diff -r PREV:BASE theFile
Creating a patch filesvn diff > myPatchFile
Applying a patch filepatch -p0 -i myPatchFile
Checking in changessvn commit -m "my message"
Checking the status of a working copysvn status
Showing updates pending from repositorysvn status --show-updates
Creating a release tagsvn copy svn://yourserver/project svn://yourserver/project/tags/release-v1.0
Checking out a release tagsvn checkout svn://yourserver/project/tags/release-v1.0
Creating a branchsvn copy svn://yourserver/project svn://yourserver/project/branches/v1.0
Checking out a branchsvn checkout svn://yourserver/project/branches/v1.0
Importing a project into repositorycd yourproject
svn import svn://yourserver/yourproject/trunk
Manually creating directories for a projectsvn mkdir svn://yourserver/yourproject/trunk/mysillydir

Book Recommendation

For further information on Subversion, I’d recommend this book:

Continuous Integration: Technical Practices

In software engineering, continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.

– Source: Wikipedia

Build Software At Every Change

  • Automate builds
  • Separate build scripts from IDE
  • Centralize software assets
  • Use consistent directory structure
  • Use a dedicated build machine
  • Use a CI server
  • Run integration builds
  • Stage builds

Continuous Database Integration

  • Automate database integration
  • Use a local database sandbox
  • Use version control for db assets
  • Give developers access to modify db
  • Make DBA part of dev team

Continuous Inspection

  • Reduce code complexity
  • Perform design reviews continuously
  • Maintain code standards with code audits
  • Reduce duplicate code
  • Assess code coverage

Continuous Testing

  • Automate tests: unit, component, functional
  • Run faster tests first
  • Write test for defects
  • Make component tests repeatable

Continuous Deployment

  • Release working software, any time
  • Produce a clean environment
  • Label each build
  • Run all tests
  • Create feedback reports
  • Possess capability to roll back release

Book Recommendation

If you are interested in continuous integration, then I would highly recommend the book.