~jan0sch/was-ist-eigentlich-darcs

Showing details for patch 00a6feca1807a7b9886a1315b5fe18eefc50fc6e.
2023-07-05 (Wed), 7:33 AM - Jens Grassel - 00a6feca1807a7b9886a1315b5fe18eefc50fc6e

Überarbeitung

Summary of changes
1 files modified with 58 lines added and 12 lines removed
  • slides.tex with 58 added and 12 removed lines
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-05-18 14:13:24.169066001 +0000
+++ new-was-ist-eigentlich-darcs/slides.tex	2024-05-18 14:13:24.169066001 +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}