Wednesday, November 12, 2008

Version Control with Tortoise SVN (part - 2)

TortoiseSVN Visual Studio Integration

Download the following Subversion.zip files which contains some settings files for VS2005 and VS2008
http://www.esnips.com/doc/6fe6f31e-ae60-4838-9be7-6fe22661d0e0/subversionhttp://www.esnips.com/SignInAction.ns?action=forcesign

The settings file gives you a new toolbar, a new menu, and new items on the context menus in the solution view.  You get some nice TortoiseSVN standard icons to make it even easier.

This all works with Visual Studio 2005 and 2008 (and even the Express Editions), along with a standard installation of TortoiseSVN.  Unless you want to edit the commandline in the External Tools I recommend installing TortoiseSVN to the default location.

It’s quick to set up, just go to your “Tools” menu and choose “Import and Export Settings” and follow the instructions. Ensure the tick box for which settings to import are all ticked.  If the settings don’t work first time, try again, as Visual Studio can be a bit flaky when loading.  It will replace your External Tools because they have to be stored in the correct numbered slot due to the way they are implemented in Visual Studio.

Files contained in the Subversion.zip files :

SubversionMenu.vssettings

This is a settings file for Visual Studio 2008.  This adds a menu to the IDE for TortoiseSVN with the appropriate icons.

SubversionMenuToolbar.vssettings

This is a settings file for Visual Studio 2008.  This adds a menu for TortoiseSVN as well as a toolbar using the appropriate icons.

SubversionMenuToolbarContexts.vssettings

This is a settings file for Visual Studio 2008.  This adds not only the menu and toolbar, but also adds the items to the appropriate context menus for files and solutions.

SubversionMenuToolbarContextsVS2005.vssettings

This provides the menu, toolbar and context menus for TortoiseSVN in Visual Studio 2005.

SubversionInstall.vbs

Use this file if you want the external tools only.  These will be appended to the list, otherwise use the settings files.  Don’t use in addition to the settings file.

This simply installs a set of External Tools into Visual Studio for common TortoiseSVN operations. It can be installed on versions above Visual Studio.NET (version 7.0). Currently it is configured for Visual Studio 2008 (version 9.0), to make it work on other versions change the variable “strVisualStudioVersionNumber” as outlined in the file’s comments.

Also, if you have installed TortoiseSVN in a non-default location, make sure that you change the variable “strTortoiseSVNBin” to the correct binary path. Make sure that the backslashes are doubled up.

Supported TortoiseSVN operations

The following Subversion/TortoiseSVN features are covered in the integration:

  • Commit - Commit the files to the repository
  • Update - Update the current working version
  • History - Get the history for the selected file
  • Diff - Get the diff compared to the base version
  • Blame - Find out who committed the crimes in the file
  • Revert - Undo local changes
  • Modifications - Check to see if any files have been modified
  • Edit Conflicts - Edit the conflicts that arise from merging/updating
  • Resolve - Mark the file as resolved for conflicts
  • Repository - View the repository on the server
  • Project History - Get the history of the entire project
  • Add Solution - Add the solution being edited to source control
  • Branch/Tag - Perform a branch or tag on the current working copy
  • Settings - Set up TortoiseSVN

 

References:
1. tortoiseSVN
https://www.projects.dev2dev.bea.com/Subversion%20Clients/TortoiseSVN.html

Tuesday, November 11, 2008

Some Diff/Merge Tools

If the tools we provide don't do what you need, try one of the many open-source or commercial programs available. Everyone has their own favourites, and this list is by no means complete, but here are a few that you might consider:
WinMerge
WinMerge [http://winmerge.sourceforge.net/] is a great open-source diff tool which can also handle directories.
Perforce Merge
Perforce is a commercial RCS, but you can download the diff/merge tool for free. Get more information from Perforce [http://www.perforce.com/perforce/products/merge.html].

KDiff3
KDiff3 is a free diff tool which can also handle directories. You can download it from here [http://kdiff3.sf.net/].
ExamDiff
ExamDiff Standard is freeware. It can handle files but not directories. ExamDiff Pro is share ware and adds a number of goodies including directory diff and editing capability. In both flavours, version 3.2 and above can handle unicode. You can download them from PrestoSoft [http://www.prestosoft.com/].
Beyond Compare
Similar to ExamDiff Pro, this is an excellent shareware diff tool which can handle directory diffs and unicode. Download it from Scooter Software http://www.scootersoftware.com/].
Araxis Merge
Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparision in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis [http://www.araxis.com/merge/index.html].
SciTE
This text editor includes syntax colouring for unified diffs, making them much easier to read. Download it from Scintilla [http://www.scintilla.org/SciTEDownload.html].
Notepad2
Notepad2 is designed as a replacement for the standard Windows Notepad program, and is based on the Scintilla open-source edit control. As well as being good for viewing unified diffs, it is much better than the Windows notepad for most jobs. Download it for free here [http://www.flos-freeware.ch/notepad2.html].

Sunday, November 9, 2008

Virtualization : Tools and Terminologies

Virtual machine technology applies to both server and client hardware. Virtual machine technology enables multiple operating systems to run concurrently on a single machine. In particular, Hyper-V, a key feature of Windows Server 2008, enables one or more operating systems to run simultaneously on the same physical system. Today, many x86-based operating systems are supported by Virtual PC 2007, Virtual Server 2005, and Hyper-V.


What is virtual machine technology used for?
Virtual machine technology serves a variety of purposes. It enables hardware consolidation, because multiple operating systems can run on one computer. Key applications for virtual machine technology include cross-platform integration as well as the following:
Server consolidation. If several servers run applications that consume only a fraction of the available resources, virtual machine technology can be used to enable them to run side by side on a single server, even if they require different versions of the operating system or middleware.
Consolidation for development and testing environments. Each virtual machine acts as a separate environment, which reduces risk and enables developers to quickly recreate different operating system configurations or compare versions of applications designed for different operating systems. In addition, a developer can test early development versions of an application in a virtual machine without fear of destabilizing the system for other users.
Legacy application re-hosting. Legacy operating systems and applications can run on new hardware along with more recent operating systems and applications.
Simplify disaster and recovery. Virtual machine technology can be used as part of a disaster and recovery plan that requires application portability and flexibility across hardware platforms.
Moving to a dynamic datacenter. Hyper-V, along with systems management solutions, helps you to now create a dynamic IT environment that not only enables you to react to problems more efficiently but also to create a proactive and self-managing IT management solution.

Virtual PC lets you create separate virtual machines on your Windows desktop, each of which virtualizes the hardware of a complete physical computer. Use virtual machines to run operating systems such as MS-DOS, Windows, and OS/2. You can run multiple operating systems at once on a single physical computer and switch between them as easily as switching applications—instantly, with a mouse click. Virtual PC is perfect for any scenario in which you need to support multiple operating systems, whether you use it for tech support, legacy application support, training, or just for consolidating physical computers.

Virtual PC provides a time-saving and cost-saving solution anywhere users must run multiple operating systems. Use Virtual PC in the following scenarios:
Ease Migration: Run legacy applications in a virtual machine instead of delaying the deployment of a new operating system just because of application incompatibility. Test your migration plans using virtual machines instead of actual physical computers.
Do More in Less Time: Support staff can run multiple operating systems on a single physical computer and switch between them easily. They can also restore virtual machines to their previous state almost instantly. Train students on multiple operating systems and virtual networks instead of purchasing and supporting additional computers.
Streamline Deployment: Test software on different operating systems more easily. One crashing application or operating system doesn’t affect others.
Accelerate Development: Increase quality assurance by testing and documenting your software on multiple operating systems using virtual machines. Decrease time-to-market by reducing reconfiguration time.



Configurability
After installing Virtual PC, you can configure it to suit your requirements. Virtual PC has a number of settings that control how the product interacts with the physical computer, allocates resources, and so on.
Easy installation
Virtual PC is simple to install. Any administrator can run the Virtual PC guided setup program, and installation doesn’t require a reboot. The first time Virtual PC starts, it guides you through the process of creating the first virtual machine.
Standardization
Configure and test upgrades and installations on virtual machines, and then you can deploy throughout your company a standard configuration that avoids problems caused by minor differences between hardware platforms.
Convenience
Users switch between operating systems as easily as they switch between applications. They simply click the window containing the virtual machine. They can pause individual virtual machines so they stop using CPU cycles on the physical computer. They can also save virtual machines to disk and restore them at a later time. The restoration process normally takes a few seconds—much faster than restarting the guest operating system.
Host integration
Users can copy, paste, drag, and drop between guest and host. Virtual PC provides additions that you install in a guest operating system to enable this functionality.













function popWin(url){
spawn = window.open(url,'newWin','width=800,height=600,top=0,left=0,location=yes,toolbar=yes,status=true,scrollbars=yes,resizable=yes,fullscreen=no,menubar=no,directories=no');
spawn.focus();
}
Virtualization in Education When it comes to desktop computing in education, flexibility is key. Students, faculty and staff want to be able to access their own data, securely, from all of these locations. This white paper discusses how virtualization technology can help connect educators and students to applications and information from almost any device. »
Step Up Your game: Global Delivery Capabilities for the Electronics Industry How can your business meet the ever-increasing demands of end users and still make a healthy profit? IBM takes a look at innovation's role in driving business objectives and helping electronics enterprises move forward in a lightning fast marketplace. »
Innovation in Action Innovation is powering the energy and utilities network. Get plugged in with the "Innovation in Action: The Energy & Utilities Project" book from Montgomery Research Inc. and IBM. »
The Agile CFO: Enabling the Innovation Path to Growth Agile CFOs are realizing that they hold a unique and critical position in enabling innovation that matters. CFOs should expand their roles from an historically oriented stance to a proactive participant in driving innovation, change and growth. CFOs who do stand to drive their companies into leadership positions. This paper proposed several actions financial executives can take to become agile CFOs. »
Leveraging Web 2.0 to Accelerate New Service Ideas Learn how telecoms can harness Web 2.0 technologies to help visualize, develop and roll out new services. Get IBM's point of view on how to leverage the power of collaboration in a Web 2.0 environment now! »


In virtualization technology, hypervisor is a software program that manages multiple OS (or multiple instances of the same OS) on a single computer system. The hypervisor manages the system's processor, memory, and other resources to allocate what each operating system requires. Hypervisors are designed for a particular processor architecture and may also be called virtualization managers.