About
fv_2007
Agile innovative developer with deep insight into lots of platforms, technologies and protocols. Absolute “early adopter” in Web 2.0 technologies and more. Large professional network and eagerly talking about architecture, strategy, design patterns, restful ressources, object-oriented thinking and modeling languages such as PML. Special interest in programminglanguages constructs, knowledge on languages like Smalltalk, Erlang, Java, Clojure, Scala, Ruby... read more
Comments
Language

Clearcase Cleartool April 28, 2011 08:20 about 1 year ago

I en tidligere blog kom jeg til at skrive om cleartool som er den linje baserede version af versionstyringssystemet ClearCase. Efterfølgende har jeg noteret mig flere mails med sjove og underholdende kommentare om ClearCase.

ClearCase er versionstyringssystemerens svar på Dansk Folkeparti, de får skylden for alt ondt. Men det synes jeg ikke altid er helt fair. Efter min mening kommer den væsentligste del af kritikken mod ClearCase fra mennesker der enten ikke interssere sig for kode versionering eller fra mennesker hvis arbejdeproces er autonom. Hvis man læser Fowler’s blog om versionskontrol systemer er ClearCase klart det mest krævende versionstyringssystem når det gælder skills. Det betyder jo helt reelt at det teniske fundament bør være højt hvis man vil bruge ClearCase. Hvorvidt dette er en fordel eller ulempe kan man så tænke over.

the basics

I ClearCase udføres alt arbejde i et view. Et view er en udviklers syn på det samlede system i en version. ClearCase er et server baseret system hvilket vil sige at man må være i kontakt med en server instans. View’et er en version af mange baselines der er bundet på en intergrationsstrøm hvor mange udviklere har et eller flere views. Et view kan have flere aktiviter der kan aflevere udafhængigt. En aktivitet er i størrelse lig med en defekt eller en udviklingsopgave på 2 til 3 dage. Det er muligt at checke filer ud og ind under en aktivitet. Alle filer der checkes ud bliver en del af aktivitetens changeset. Man aflevere en aktivitet ved at lave en baseline og deliver den til intergrationsstømmen. Man kan rekommende en baseline hvorefter alle får den med når de rebase deres view. Der findes flere typer af metoder til at styre kode kvalitet i ct. Man kan fx “lable” sin kode med forskellige defineret prefixed som fx Main Baseline der tagger at alle branch’ed er merge tilbage i hovedsporet. Der er også en “Release-Line Baseline” der er en baseline klartgjort til release.

cleartool

Alt dette og en masse mere kan styres gennem den grafiske brugergrænseflade men under huden findes kernesystemet der gør det muligt. cleartool.

Her er de mest almindelige cleartool commands jeg bruger.. Men først bør du sætte et alias

alias ct='cleartool'

ct rebase -recommended # rebase last baseline
ct rebase -complete # complete rebase
ct ls -r | grep hijacked # find hijacked files
ct co file # checkout file
ct unco file # undo checkout
ct lsbl # list baseline's
ct lsactivity # list activity
ct pwv # print working view
ct catcs # config specs
ct lsco # list checkout's
ct lsco -me # list my checkout's
ct lsco -me -recurse # list checkout's directory
ct lsco -user FVI # list checkout from user fvi
ct lsco -cview # list checkout's from here
ct describe file # file information
ct co -c "Comment" file # check out element
ct ci -ide -c "Comment" file # Checkin element, override if ide'tical
ct lsh file # file change history
ct lsvtree [-g] file # file version tree
ct diff -pred file # differences between this and pred version
ct setact -none # clear activity
ct lsact # list activties
ct rmact -f activity # remove a activity
ct setact activity # set an activity
ct lsact -cac -s # info current activity
ct lsco -me -cview -all # list files by me in the current view.
ct find ./ -branch 'brtype(branch-name)' -print # list files of the specified branch name.
ct lsprivate # list private files in current view

grep -rl "implements Validatable " * | xargs cleartool co
grep -rl "implements Validatable " * | xargs sed -i ‘s/implements Validatable /implements Validatable, java.io.Serializable /g’

grep -rl “, java.io.Serializable” * | xargs cleartool ci -c “Added Serializable”

cl lsview -long -cview # list current uuid
cl rmview -uuid 30:c5:a4 -avobs # lease bad view

cl deliver -status

ct mkact -headline "PO-2385: Defect "

find . -print | xargs cleartool mkelem -mkpath -nc # recursively add all files and directories

ct find . -exec ‘cleartool ci -nc $CLEARCASE_PN’ # recursively checkin all files (and directories) in the current directory.

There can be only one “source”, the rest is just like more Agent Smith’s


By Frank Vilhelmsen - 1 tag: clearcase - Add comment