The Linux distillery
Bringing the world of Linux to you, David cuts through the tech and shows you how it works and how to use it, in terms that apply to any distro. RSS
IT NEWS     Energy      iTWire Technology Feature - Virtualisation
Technology news and Jobs arrow The Linux distillery arrow Compiling and contributing to the Linux/open source subversion
Compiling and contributing to the Linux/open source subversion PDF E-mail
User Rating: / 1
PoorBest 
by David M Williams   
Monday, 03 December 2007
Many of the best-organised software projects around the world are the legions of free and open source offerings. This is in part due to one reason, namely the tight use of source code control and versioning systems to keep the code base clean and in a known state. If you’ve wanted access to the latest build of your favourite apps or if you want to contribute your own mods, the key is to master the source control suite. I’ll introduce Subversion and show you it’s actually pretty simple.
There’s a good reason for using such a package, especially when many developers are working on a project. The bulk of all computer software is made of many individual and modular files which attempt to self-contain the source code for specific functionality. It may be that some files are dedicated to database handling, others to the user interface, others to enforcing rules and logic and so on.

Version control software – and let’s call it VCS from here on – enforces that code be “checked out” and back in again. Traditionally, only one person can check out a module at a time. This means that one extremely common risk is mitigated immediately, namely the problem where two programmers independently change the same source code file, and whoever saves first loses their mods completely when the second person saves. Using this type of VCS the second person cannot check out the file if somebody has already checked it out.

You can think of checking a file out as being similar to checking a book out of a library. Obviously, nobody else can borrow that book if it has been taken out. It must be returned. However, there is one fundamental difference. Checking a file out of a VCS does not remove it. Any number of people can still request a copy of the file, as it was when last checked in. This is good because it permits other programmers or interested parties to get a copy of the source code at any time.

These parties will not be able to put any modifications back into the VCS, though. Only the person with the checked out file can submit their modifications, and they do this when they check the file back in. At that time, the VCS updates its version count for the file, includes the new code, and makes the file available to be checked out again, whether by the same programmer as before or someone else, and whether it happens straight away or months or years later.

Other VCS systems have a different way of thinking; in a complex project it’s unjustifiable to lock a whole file even if someone is working on just one function in it. So, these VCS systems allow the code to be checked out by anyone and then merge all updates that come back in to maintain a seamless single code base despite when and where changes occur. In this case, think of the safety tag system in use at industrial sites; you don’t dare turn a piece of equipment on if somebody has a safety tag on it. However, there’s nothing stopping many people putting their own safety tag on the equipment because they need to work on it too. They all work on different parts, and remove their own tag when they finish. At the completion of the work, many people have performed actions (or made changes) and these have effectively been “merged” into a single whole.

Best of all, the version control system maintains a record of what has been altered when a file is checked back in. The developer is encouraged to write a helpful annotation describing, at a high-level, the purpose for their modifications but even without this the system can reconstruct any previous version and show exactly what differs between it and any other version, be it the latest or not.



 
< Next story in category   Previous story in the category >
iTWire Technology feature

Virtualisation

dollsmaximise your infrastructure, maximise your business

Read more...



Search the web
Search iTWire

 
You don't need to login to post a comment





Lost Password?
No account yet? Register
Subscribe to our free daily newsletter.
Business Innovation Forum
July 24 (8:00 am) - July 25 (1:30 pm), 2008
Business Innovation Forum: a morning of innovative thinking that will help you gain business resu...

Broadband 2008
July 24 (8:45 am) - July 25 (11:59 pm), 2008
Broadband Australia 2008 The original forum for debating the future of Australia’s broadband i...

The Rapidly Emerging Mobile Media Market
July 24, 2008 (All Day)
Mobile media is the way of the future, and by 2015, it is expected that it will be the major reve...

Start Mid Year Technical Communication at Swinburne University
July 25 (9:00 am) - July 30 (11:59 pm), 2008
Last week to apply for Swinburne University’s online postgraduate Technical Communication courses...

Lean Six Sigma Black Belt Certification Workshop
July 25 (9:00 am) - July 27 (11:59 pm), 2008
eXample Consulting Group is conducting an immensely practical LEAN SIX SIGMA BLACK BELT TRAINING ...

Usability Fundamentals Training Course [Sydney]
July 28 (9:00 am) - July 29 (11:59 pm), 2008
The success of your website is inextricably linked to how well-versed those involved in the devel...

SAUG Summit 2008
July 29 (8:30 am) - July 31 (11:59 pm), 2008
The SAP Australian User Group (SAUG) "The Next Step..." Where do we go from here?...

ISEB ISTQB Foundation Certificate in Software Testing - Melbourne
July 29 (9:00 am) - July 31 (11:59 pm), 2008
This is the first internationallly accepted industry accreditation for software testing. It has b...

Open Publish Conference
July 30 (9:00 am) - July 31 (11:59 pm), 2008
Open Publish 2008 will be focusing on management and implementation issues relating to publishing...

Web 3.0: Mobile & the Semantic Web
July 30, 2008 (9:30 am - 12:00 pm)
part 2 of the 4 part semantic web forum series Speakers: - Jennifer Wilson, Principal, Lean F...
New event listings
SolidWorks Innovation Day (Melbourne and Adelaide)
October 17, 2008 (All Day)
Hosted by Intercad, SolidWorks’ Innovation Days will give designers, engineers and manufacturers ...

SolidWorks Innovation Day (Sydney)
October 16, 2008 (All Day)
Hosted by Intercad, SolidWorks’ Innovation Days will give designers, engineers and manufacturers ...

SolidWorks Innovation Day (Brisbane and Perth)
October 15, 2008 (All Day)
Hosted by Intercad, SolidWorks’ Innovation Days will give designers, engineers and manufacturers ...

LIXI Industry Forum 2008
September 10, 2008 (All Day)
Wednesday, 10 September 2008 The Westin Sydney The second annual major industry event for the...

Mobile Feast!
August 22, 2008 (All Day)
Join us as we discuss all things mobile! The history of technology tells us that the true inno...

The Business of Digital Content - Melbourne
August 5, 2008 (All Day)
The Business of Digital Content Melbourne – August 5, 2008 Extract maximum value from your...

View Full Calendar
Subscribe to our free daily e-newsletter
Contact , Register , Advertise with iTWire , Links , About iTWire , Feedback , Post your jobs , Events , iTWire site map , Start Blogging , MyBlogLog page
Industry Releases , Submit your release now