Click here to register.
      

Adventures in migrating solutions

Design Squid
Other Design Articles
Adventures in migrating solutions
sno · 10/1/2009 3:41 pm
Design Squid

I was once tied to Subversion and all was good.  I was mostly happy in my little repository scheme, peeking out occasionally to see that there were other, more complex versioning systems out there.  I liked my simpler world and never faced a need to change.

WebGUI changed all that.  As a developer at Plain Black working on WebGUI, I was faced with the challenge of getting to know GIT.  Versioning has never been the same for me.

There are tutorials for a number of GIT features, but one capability that leaps out at me as having particularly incomplete coverage is GIT diff.  Knowing the change status of files between committed, staged, and local is valuable information.  Unfortunately, most tutorials rarely cover the full range of options provided by this powerful core feature.  Finding the right combination of incantations and using them effectively can provide interesting information and open the door to powerful code mobility.

GIT diff can produce information in a variety of forms, from repository state to patches.  The most important patch type is the default unified diff output that has become the most used exchange format.  By building patches, one can test changes that won't permanently affect the work space.  This can be useful when WebGUI may be at different stable release points in installed locations or environments.

I'm still building my knowledge of GIT diff and a tutorial here would be premature and misplaced.  Yet it is clear that in a multi-release market, GIT diff assists by providing an extremely versatile way to siphon off pieces of advanced development for personal use.  A widely accessible output format provides the means for transporting improvements from one environment to another.

Obviously, When applying these opportunities to WebGUI code, there are caveats when making changes like this which are not to be taken lightly.  The WebGUI upgrade process is built around working from a known foundation.  Changing that foundation can present risks.  Upgrade processing provides additional support for modifying the working environment by fixing, improving, or altering the database tables and records.  It is good coding practice, and safer for your WebGUI environment, if you develop side-by-side with WebGUI code rather than on WebGUI core.

This warning applies to all development environments, not just WebGUI.  However, when used intelligently and with forethought, GIT diff can enhance code transport and provide integration options across your development environment.

Stephen Opal

·
Stick
Lock
Subscribe