Dries Harnie

Structuur II
Version control
Dries Harnie
Thursday 2 October 14
Wat is version control?
Version control is any
practice that tracks and
provides control over
changes to source code.
Thursday 2 October 14
Waarom version control?
“Oei, ik heb wat liggen prutsen en nu werkt er niks meer”
“Ik moet X nog doen maar ik durf het niet kapot maken”
(vijf minuten voor de deadline)
“AARGH! MAKE CLEAN HEEFT MIJN FILES WEGGEGOOID!”
“Re: Re: Re: Re: Final version (.ZIP attached)”
Thursday 2 October 14
Waarom geen backups?
Thursday 2 October 14
Waarom geen backups?
Thursday 2 October 14
Terminologie
Commit|Revision: momentopname van het project
Repository: verzamelplaats voor commits
Working copy: direct aanpasbare kopie van repository
Branch: een alternatieve reeks van commits
Thursday 2 October 14
Git
git-scm.com
Distributed VCS
Integratie met Eclipse/XCode
GitHub
Thursday 2 October 14
http://git-scm.com/doc
Thursday 2 October 14
Nieuwe repository maken
Thursday 2 October 14
Nieuwe repository maken
Thursday 2 October 14
De eerste commit
Thursday 2 October 14
De eerste commit
Thursday 2 October 14
Nieuwe files toevoegen
Thursday 2 October 14
Nieuwe files toevoegen
Thursday 2 October 14
Nieuwe files toevoegen
Thursday 2 October 14
Nieuwe files toevoegen (ctd)
Thursday 2 October 14
Nieuwe files toevoegen (ctd)
Thursday 2 October 14
Oeps...
Thursday 2 October 14
Oeps...
Thursday 2 October 14
Oeps...
Thursday 2 October 14
Geschiedenis van de repository
Thursday 2 October 14
Workflow
Initieel:
Team→Share project (git init)
Team→Ignore→Debug/Release (edit .gitignore)
Team→Commit (git add; git commit)
Later:
Team→Add (git add) [indien nodig]
Team→Commit (git commit)
Thursday 2 October 14
Tijd voor wat oefeningen
Thursday 2 October 14
Communicatie: Push
Thursday 2 October 14
Communicatie: Push
Thursday 2 October 14
Communicatie: Push
Thursday 2 October 14
Branches
Letterlijk: “zijtakken” van het project
Onafhankelijke reeksen van commits
Je kan op elk moment naar een andere branch!
Typisch gebruikt voor zogeheten “topic branches”:
Experimenten of ingrijpende veranderingen
In dit voorbeeld: een Franse vertaling
Thursday 2 October 14
Branching
Thursday 2 October 14
Merging
Thursday 2 October 14
Merging
Thursday 2 October 14
Een iets groter project (Tower)
Thursday 2 October 14
Conclusie
“Oei, ik heb wat liggen prutsen en nu werkt er niks meer”
“Ik moet X nog doen maar ik durf het niet kapot maken”
(vijf minuten voor de deadline)
“AARGH! MAKE CLEAN HEEFT MIJN FILES WEGGEGOOID!”
“Re: Re: Re: Re: Final version (.ZIP attached)”
Thursday 2 October 14
Conclusie
t
i
m
m
“Oei, ik heb wat
liggen
prutsen en nu werkt er niks meer”
o
c
g it
“Ik moet X nog doen maar ik durf het niet kapot maken”
(vijf minuten voor de deadline)
“AARGH! MAKE CLEAN HEEFT MIJN FILES WEGGEGOOID!”
“Re: Re: Re: Re: Final version (.ZIP attached)”
Thursday 2 October 14
Conclusie
t
i
m
m
“Oei, ik heb wat
liggen
prutsen en nu werkt er niks meer”
o
c
g it
h
c
n
“Ik moet X nog doen maar b
ik durf
het
niet kapot maken”
a
r
g it
(vijf minuten voor de deadline)
“AARGH! MAKE CLEAN HEEFT MIJN FILES WEGGEGOOID!”
“Re: Re: Re: Re: Final version (.ZIP attached)”
Thursday 2 October 14
Conclusie
t
i
m
m
“Oei, ik heb wat
liggen
prutsen en nu werkt er niks meer”
o
c
g it
h
c
n
“Ik moet X nog doen maar b
ik durf
het
niet kapot maken”
a
r
g it
(vijf minuten voor de deadline)
t
r
e
v
e
r
“AARGH! MAKE
CLEAN
HEEFT
MIJN
FILES
WEGGEGOOID!”
t
i
g
“Re: Re: Re: Re: Final version (.ZIP attached)”
Thursday 2 October 14
Conclusie
t
i
m
m
“Oei, ik heb wat
liggen
prutsen en nu werkt er niks meer”
o
c
g it
h
c
n
“Ik moet X nog doen maar b
ik durf
het
niet kapot maken”
a
r
g it
(vijf minuten voor de deadline)
t
r
e
v
e
r
“AARGH! MAKE
CLEAN
HEEFT
MIJN
FILES
WEGGEGOOID!”
t
i
g
l
l
u
“Re: Re: Re: Re: Finalh
version
(.ZIP attached)”
p
/
s
u
p
t
gi
Thursday 2 October 14