darcs - Aula Polska

Transkrypt

darcs - Aula Polska
łatki
darcs w praktyce
darcs
system kontroli wersji dla wybrednych
Paweł Kołodziej <[email protected]>
16 grudnia 2008
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
teoria łatek
Teoria
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
teoria łatek
łatka
zmiany w plikach
zależności od innych łatek
nazwa, data, autor
repozytorium
zbiór łatek
porządek łatek wyznaczony przez ich wzajemne zależności
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
teoria łatek
łatka
zmiany w plikach
zależności od innych łatek
nazwa, data, autor
repozytorium
zbiór łatek
porządek łatek wyznaczony przez ich wzajemne zależności
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
teoria łatek
teoria łatek
teoria łatek
inspirowana operatorami z mechaniki kwantowej
łatki komutują lub nie
łatki i łatki odwrotne
teoria określa, czy można wziąć jedną łatkę, nie biorąc innej,
oraz jak to zrobić
camp
http://projects.haskell.org/camp/
We are working towards a specification of the theory, a formal
proof that it is correct, and an open source (BSD license)
implementation.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
teoria łatek
teoria łatek
teoria łatek
inspirowana operatorami z mechaniki kwantowej
łatki komutują lub nie
łatki i łatki odwrotne
teoria określa, czy można wziąć jedną łatkę, nie biorąc innej,
oraz jak to zrobić
camp
http://projects.haskell.org/camp/
We are working towards a specification of the theory, a formal
proof that it is correct, and an open source (BSD license)
implementation.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
Praktyka
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
tworzenie repozytorium
darcs init --darcs-2
darcs get http://darcs.net/
cache łatek
Każde repozytorium jest niezależną gałęzią (branchem).
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
tworzenie repozytorium
darcs init --darcs-2
darcs get http://darcs.net/
cache łatek
Każde repozytorium jest niezależną gałęzią (branchem).
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
rejestrowanie lokalnych zmian
darcs add plik2.txt
darcs remove plik2.txt
darcs mv staryPlik.txt nowyPlik.txt
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
rejestrowanie lokalnych zmian
darcs add plik2.txt
darcs remove plik2.txt
darcs mv staryPlik.txt nowyPlik.txt
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
rejestrowanie lokalnych zmian
darcs add plik2.txt
darcs remove plik2.txt
darcs mv staryPlik.txt nowyPlik.txt
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs record
hunk ./plik.txt 1
+tekst dodany na poczatku pliku
Shall I record this change? (1/3)
hunk ./plik.txt 4
+tekst dodany w srodku
Shall I record this change? (2/3)
[ynWsfvpxdaqjk],
or ? for help:
y
[ynWsfvpxdaqjk],
or ? for help:
y
hunk ./plik.txt 7
+tekst na koncu
Shall I record this change? (3/3)
[ynWsfvpxdaqjk],
or ? for help:
What is the patch name? kilka nowych linii
Do you want to add a long comment? [yn] n
Finished recording patch ’kilka nowych linii’
Paweł Kołodziej <[email protected]>
darcs
y
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs record
hunk ./plik.txt 1
+tekst dodany na poczatku pliku
Shall I record this change? (1/3)
hunk ./plik.txt 4
+tekst dodany w srodku
Shall I record this change? (2/3)
[ynWsfvpxdaqjk],
or ? for help:
y
[ynWsfvpxdaqjk],
or ? for help:
y
hunk ./plik.txt 7
+tekst na koncu
Shall I record this change? (3/3)
[ynWsfvpxdaqjk],
or ? for help:
What is the patch name? kilka nowych linii
Do you want to add a long comment? [yn] n
Finished recording patch ’kilka nowych linii’
Paweł Kołodziej <[email protected]>
darcs
y
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs record
hunk ./plik.txt 1
+tekst dodany na poczatku pliku
Shall I record this change? (1/3)
hunk ./plik.txt 4
+tekst dodany w srodku
Shall I record this change? (2/3)
[ynWsfvpxdaqjk],
or ? for help:
y
[ynWsfvpxdaqjk],
or ? for help:
y
hunk ./plik.txt 7
+tekst na koncu
Shall I record this change? (3/3)
[ynWsfvpxdaqjk],
or ? for help:
What is the patch name? kilka nowych linii
Do you want to add a long comment? [yn] n
Finished recording patch ’kilka nowych linii’
Paweł Kołodziej <[email protected]>
darcs
y
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs record
hunk ./plik.txt 1
+tekst dodany na poczatku pliku
Shall I record this change? (1/3)
hunk ./plik.txt 4
+tekst dodany w srodku
Shall I record this change? (2/3)
[ynWsfvpxdaqjk],
or ? for help:
y
[ynWsfvpxdaqjk],
or ? for help:
y
hunk ./plik.txt 7
+tekst na koncu
Shall I record this change? (3/3)
[ynWsfvpxdaqjk],
or ? for help:
What is the patch name? kilka nowych linii
Do you want to add a long comment? [yn] n
Finished recording patch ’kilka nowych linii’
Paweł Kołodziej <[email protected]>
darcs
y
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs record
hunk ./plik.txt 1
+tekst dodany na poczatku pliku
Shall I record this change? (1/3)
hunk ./plik.txt 4
+tekst dodany w srodku
Shall I record this change? (2/3)
[ynWsfvpxdaqjk],
or ? for help:
y
[ynWsfvpxdaqjk],
or ? for help:
y
hunk ./plik.txt 7
+tekst na koncu
Shall I record this change? (3/3)
[ynWsfvpxdaqjk],
or ? for help:
What is the patch name? kilka nowych linii
Do you want to add a long comment? [yn] n
Finished recording patch ’kilka nowych linii’
Paweł Kołodziej <[email protected]>
darcs
y
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs record
hunk ./plik.txt 1
+tekst dodany na poczatku pliku
Shall I record this change? (1/3)
hunk ./plik.txt 4
+tekst dodany w srodku
Shall I record this change? (2/3)
[ynWsfvpxdaqjk],
or ? for help:
y
[ynWsfvpxdaqjk],
or ? for help:
y
hunk ./plik.txt 7
+tekst na koncu
Shall I record this change? (3/3)
[ynWsfvpxdaqjk],
or ? for help:
What is the patch name? kilka nowych linii
Do you want to add a long comment? [yn] n
Finished recording patch ’kilka nowych linii’
Paweł Kołodziej <[email protected]>
darcs
y
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs pull ../test1/
Pulling from "../test1"...
Sun Dec 14 17:31:03 CET 2008 [email protected]
* important bugfix (#2168)
Shall I pull this patch? (1/3) [ynWsfvpxdaqjk],
or ? for help: y
Sun Dec 14 17:31:57 CET 2008 [email protected]
* new feature - not finished yet
Shall I pull this patch? (2/3) [ynWsfvpxdaqjk],
or ? for help: n
Sun Dec 14 17:32:10 CET 2008 [email protected]
* typo
Shall I pull this patch? (3/3) [ynWsfvpxdaqjk],
or ? for help: y
Finished pulling and applying.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs pull ../test1/
Pulling from "../test1"...
Sun Dec 14 17:31:03 CET 2008 [email protected]
* important bugfix (#2168)
Shall I pull this patch? (1/3) [ynWsfvpxdaqjk],
or ? for help: y
Sun Dec 14 17:31:57 CET 2008 [email protected]
* new feature - not finished yet
Shall I pull this patch? (2/3) [ynWsfvpxdaqjk],
or ? for help: n
Sun Dec 14 17:32:10 CET 2008 [email protected]
* typo
Shall I pull this patch? (3/3) [ynWsfvpxdaqjk],
or ? for help: y
Finished pulling and applying.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs pull ../test1/
Pulling from "../test1"...
Sun Dec 14 17:31:03 CET 2008 [email protected]
* important bugfix (#2168)
Shall I pull this patch? (1/3) [ynWsfvpxdaqjk],
or ? for help: y
Sun Dec 14 17:31:57 CET 2008 [email protected]
* new feature - not finished yet
Shall I pull this patch? (2/3) [ynWsfvpxdaqjk],
or ? for help: n
Sun Dec 14 17:32:10 CET 2008 [email protected]
* typo
Shall I pull this patch? (3/3) [ynWsfvpxdaqjk],
or ? for help: y
Finished pulling and applying.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
darcs pull ../test1/
Pulling from "../test1"...
Sun Dec 14 17:31:03 CET 2008 [email protected]
* important bugfix (#2168)
Shall I pull this patch? (1/3) [ynWsfvpxdaqjk],
or ? for help: y
Sun Dec 14 17:31:57 CET 2008 [email protected]
* new feature - not finished yet
Shall I pull this patch? (2/3) [ynWsfvpxdaqjk],
or ? for help: n
Sun Dec 14 17:32:10 CET 2008 [email protected]
* typo
Shall I pull this patch? (3/3) [ynWsfvpxdaqjk],
or ? for help: y
Finished pulling and applying.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
przesyłanie łatek
pull (lokalnie, http, ssh)
push (lokalnie, ssh)
apply (email)
send (email)
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
przesyłanie łatek
pull (lokalnie, http, ssh)
push (lokalnie, ssh)
apply (email)
send (email)
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
konflikty
pull
Konflikty przy pull zostaną oznaczone. Po ich naprawieniu należy
nagrać zmianę (darcs record).
push
Należy zrobić pull, rozwiązać konflikty i push.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
konflikty
pull
Konflikty przy pull zostaną oznaczone. Po ich naprawieniu należy
nagrać zmianę (darcs record).
push
Należy zrobić pull, rozwiązać konflikty i push.
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
drobiazgi
darcs tag
dodanie łatki, która jawnie zależy od wszystkich innych
darcs changes
lista wszystkich łatek z repozytorium
darcs whatsnew
lokalnie niezarejestrowane zmiany
darcs revert
porzucenie wszystkich niezarejestrowanych zmian
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
wydajność
repozytorium ghc: 20 000 łatek
darcs get : 3 minuty
darcs whatsnew: 1s
darcs chnages 2s
darcs get -t tag (2608 łatek wstecz) 3.5 minuty
darcs get -t tag (6077 łatek wstecz) 13 minut
darcs pull (2608 łatek) : 1.5 minuty
darcs pull (6077 łatek) : 2.5 minuty
Paweł Kołodziej <[email protected]>
darcs
łatki
darcs w praktyce
tworzenie repozytorium
rejestrowanie lokalnych zmian
praktyka łatek
wydajność
materiały
http://darcs.net
manual http://darcs.net/manual/
camp http://projects.haskell.org/camp/
Understanding darcs
http://en.wikibooks.org/wiki/Understanding darcs
Paweł Kołodziej <[email protected]>
darcs