~jan0sch/was-ist-eigentlich-darcs
Showing details for patch 00a6feca1807a7b9886a1315b5fe18eefc50fc6e.
diff -rN -u old-was-ist-eigentlich-darcs/slides.tex new-was-ist-eigentlich-darcs/slides.tex --- old-was-ist-eigentlich-darcs/slides.tex 2024-11-21 12:28:09.561121891 +0000 +++ new-was-ist-eigentlich-darcs/slides.tex 2024-11-21 12:28:09.561121891 +0000 @@ -37,6 +37,7 @@ \item Mercurial (verteilt) \item Darcs (verteilt) \item Pijul (verteilt) + \item Fossil (verteilt \textit{und} Tickets etc.pp. mit drin) \item Das kann den ganzen Tag so weitergehen. ;-) \end{itemize} \end{alertblock} @@ -110,7 +111,9 @@ \begin{itemize} \item Patches meist zeilengenau erfaßbar \item damit [fast] keine Notwendigkeit für Branches mehr - \item detaillierte Fragen beim Commit (record) + \item detaillierte Änderungserfassung beim Commit (record) + \item Patches für einen Tag (Release) einzeln auswählbar + \item Abhängigkeiten zwischen Patches veränderbar \end{itemize} \end{frame} @@ -123,13 +126,18 @@ \item lokal behoben \item aber kann nicht per Push gesendet werden, da nicht snapshot-basiert \end{itemize} - \item Signieren von Patches funktioniert nur wirklich mit GnuPG + \item darcs clone bei großen Repos nicht so schnell wie andere DVCS + \item häufig lokaler Index "kaputt" + \begin{itemize} + \item leicht zu beheben: \mintinline{bash}{darcs check / repair} + \end{itemize} \item darcs send schwieriger aufzusetzen als git send-email \item das sog. "exponential merge problem" \begin{itemize} \item tritt eigentlich seit Version 2 nicht mehr auf \end{itemize} \end{enumerate} + Außerdem gibt es kein "force push", aber ist das wirklich ein Nachteil? \end{frame} \begin{frame}{Patch vs. Snapshot} @@ -147,6 +155,7 @@ \begin{itemize} \item durch interne Komprimierung reduziert \end{itemize} + \item häufiger Konflikte bei unterschiedlichem \textit{HEAD} \end{itemize} \end{frame} @@ -154,10 +163,7 @@ \begin{frame}{Flexibleres Arbeiten mit Darcs} \begin{enumerate} - \item kleinere Patches - \begin{itemize} - \item leichter einzelne Änderungen zu Patches zusammenzufassen - \end{itemize} + \item Commit von "Hunks" statt ganzen Dateien $\rightarrow$ kleinere Patches \item weniger (keine) Gedanken um Merge-Konflikte \begin{itemize} \item a.k.a. "Bin ich auf dem aktuellen HEAD?" @@ -166,14 +172,48 @@ \begin{itemize} \item a.k.a. selektives Auswählen der Änderungen für einen Patch \end{itemize} - \item flexiblere Tagging + \item flexibleres Tagging \begin{itemize} \item manuelle Auswahl der Patches, die zu einem Patch gehören sollen \end{itemize} - \item Kommandos arbeiten auf einzelnen Änderungen ("Hunks") nicht auf ganzen Dateien \end{enumerate} \end{frame} +\begin{frame}{kleinere Patches} + Die Auswahl von einzelnen Änderungen (Hunks) erleichtert es: + \begin{itemize} + \item gezielt Änderungen in einem Commit zusammenzufassen + \item bzw. Änderungen auszulassen + \end{itemize} +\end{frame} + +\begin{frame}{weniger (keine) Gedanken um Merge-Konflikte} + Es gibt auch noch Merge-Konflikte, aber eher selten, da: + \begin{itemize} + \item kleinere (bessere?) Patches + \item nicht ganz so wichtig auf dem gleichen Stand zu sein + \end{itemize} + Letztlich: Dadurch, daß Konflikte bzw. deren Lösungen halt nicht im Repo + auftauchen, wird man da sehr viel sensibler für. ;-) +\end{frame} + +\begin{frame}{"spontane" Zweige ("spontaneous branches")} + Die gezielte Auswahl von Änderungen macht es möglich, daß an mehreren + Dingen zeitgleich gearbeitet werden kann. + \begin{itemize} + \item hat natürlich Grenzen + \end{itemize} +\end{frame} + +\begin{frame}{flexibleres Tagging} + \mintinline{bash}{darcs tag} + \begin{itemize} + \item per Vorgabe alle Patches seit dem letzten Tag + \item aber auch gezielte Auswahl möglich + \item ermöglicht einfachen Release auch wenn schon andere Patches mit drin sind + \end{itemize} +\end{frame} + \begin{frame}{Weniger "Gedanken um das VCS-Tooling"} \begin{itemize} \item intuitivere Bedienung @@ -203,13 +243,19 @@ \end{enumerate} \end{frame} -\begin{frame}[standout]{Fazit} +\begin{frame}{Fazit} \begin{itemize} \item macht \textit{mehr Spaß} / funktioniert für mich intuitiver - \item ist kein Allheilmittel (auch darcs hat Ecken und Kanten) - \item E-Mail als Medium für Patches wiederentdeckt ;-) + \item ist kein Allheilmittel + \item E-Mail als Medium für Patches wiederentdeckt \item der Kopf ist freier als mit Git \end{itemize} - \Large{Probiert es einfach mal aus, es lohnt sich!} + \center{\Large{Probiert es einfach mal aus, es lohnt sich!}}\\ +\end{frame} + +\begin{frame}[standout]{} + \Huge{Vielen Dank!}\\ + \small{http://darcs.net - Darcs Homepage}\\ + \small{https://darcsbook.acmelabs.space/ - The Darcs Book} \end{frame} \end{document}