Click here to load reader
Upload
widoyo-ph
View
485
Download
1
Embed Size (px)
Citation preview
Source Code Management
Widoyo<[email protected]>
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