Source code management

Preview:

Citation preview

Source Code Management

Widoyo<widoyo@gmail.com>

Agenda

Software CharacteristicSoftware ChangesTraditional MethodVersion ControlDistributed Version ControlCentralized Version ControlBranchingCommon Term in SCMDaily use of git

Software Characteristic

Software running well on a certain conditionSoftware are easy to breakSoftware are easy to modifySoftware are an abstract things Bugs may be found at later time

Software Changes

New FeaturesFound BugsEnvironment changesRequest to change

Traditional Method

Save into New name or Save the old one into archive nameMaking new directory to hold the old oneProblems:

No standard way to log changes Difficult to identify which the fresh (newest) one More complicated when working on Team

coba-asli.php/aplikasi-v1//aplikasi-v2/mycode-060908.rbmycode-020908.rb

Version Control

To log changesTo prevent overwriting each otherTo tag a set of software code, release codeAs a code repository

Centralized Version Control

Code repository are reside on a central placeIdeal for Team that working on the same projectProduct examples:

Concurrent Version System (CVS)Subversion (SVN)Source Safe?

Distributed Version Control

Repository are placed any whereIdeal for individual developer or small projectProduct examples (most of them are centralized too):

GIT BazaarMercurical

Branching

a line of development that exists independently of another line, yet still shares a common history

Common Term in SCM

Repository --Storage of current and historical codeCheck-in / Commit -- commit changes, write logCheck-out -- getting the sourceBranch -- making different line of developmentConflict, Resolve --changes are made on the same sourceBaseline, Trunk, Master -- Main line of developmentTag -- labeling snapshot of sourceLog --notes given by developer on changesHead -- the most recent commitRevision, Version --state at point in time Import -- copying local directory tree into repositoryExport --similar to checkout without metadata ofversion control

Daily Use of GIT

Initiate repositoryimport project (file(s) or Directory)checkoutcode - test iterationCommit - writing logs hereTag - labelingBranchMergeLogDiff

Starting Using git

Install, ONLY available on Linux:(Write your codeInitiate RepositoryAdd your code into repocode-compile-testCommit the changesTagand ... JUST Use it!

< 10 minutesgit show

my hello Project

Further Reading

http://www.kernel.org/pub/software/scm/git/docs/

Thank you

Recommended