You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.9 KiB

  1. Lerntagebuch für Programmiermethoden und -werkzeuge von Philipp Hartmann
  2. # SU4 16.11.2022
  3. ## Lernzeiele (Was waren die wesentlichen Inhaltlichen Punkte der letzten Vorlesung - Stichpunktartig)
  4. - Sourcecodemanagement
  5. -- Einfache Navigation
  6. -- Permanter Zugang zum letzten Arbeitszustand
  7. -- Zugang zu verschiedenen Zuständen des Codes
  8. -- Speichert nur die Änderung
  9. - Möglichkeiten zur Sicherung des Sourcecodes
  10. -- zip archiv
  11. -- Internetkopien
  12. -- lokale Kopien
  13. - Zentralisierte SCM
  14. -- Vorteile:
  15. - jeder Commit ist für alle Verfügbar
  16. - jeder weiß wer am Projekt gearbeitet hat
  17. - einfaches backup und Wiederherstellung
  18. - unendliche Ressourcen für das Repository
  19. -- Nachteile:
  20. - zentrale Instanz ist notwendig
  21. - "locking" verhindert paralleles Arbeiten
  22. - "branching" und "merging" ist direkt für alle sichtbar
  23. - kein Offline arbeit möglich
  24. - Verteiltes SCM
  25. -- Vorteile:
  26. - kein zentraler Server nötig
  27. - mehrere remotes möglich
  28. - funktioniert ohne permanente Netzwerkverbindung
  29. - implizierte Backups
  30. - offline Arbeit /lokale "Experimente" bleiben Privat
  31. --Nachteile
  32. - lokaler Verlauf ist nicht synchron
  33. - kein Schutz gegen gleichzeitige Änderungen
  34. - Git Konzept
  35. - basiert auf Veränerungen nicht auf Dateien
  36. - commits/eingaben sind durch SHA geschützt
  37. - branches sind labels mit commits
  38. - staging area (Änderungen werden angesammelt bis sich ein commit lohnt
  39. - Commits
  40. - clean commits
  41. - sollten klein sein um Konflikte leichter zu lösen
  42. - "cherry peak" Veränderungen sind leicht zu finden
  43. - Branches (master)
  44. - unendliche Laufzeit
  45. - bestimmt einen verantwortlichen Committer
  46. - kommen vom initial commit
  47. - alle commits im master branch müssen clean sein, denn dieser geht an die Kunden
  48. - merge
  49. -- Vorteile:
  50. - verlauf visualisiert parallele Arbeit
  51. - konfliktlösung nur einmal pro merge
  52. - konfigurierbare automatische Konflikt lösung
  53. --Nachteile:
  54. - komplexer Verlauf
  55. - konfliktlösung zwischen den finalen Zuständen
  56. - rebase
  57. -- Vorteile:
  58. - "clean" Verlaufsgraph (Alle Merkmale aufeinanderfolgenden commits)
  59. - konfliktlösung pro Commit weniger Änderungen auf einmal
  60. -- Nachteile:
  61. - verlauf zeigt keine timeline an was wann gemacht worden ist
  62. - jeder commit kann Konflikte mit sich bringen
  63. ## Erkenntnis (Was kann ich für das Gruppenprojekt anwenden -2-3 Sätze)
  64. Ich kenne jetzt das Konzept von Git und weiß wie ich es im Gruppenprojekt verwenden kann.
  65. Außerdem weiß ich jetzt wie ein clean commit aussieht und weiß welche branches es gibt um mein Gruppenprojekt sauber und übersichtlicher zu halten.
  66. ## Wiederholung (Einen Begriff/Ein Thema erklären - 2-3 Sätze)
  67. Begriff erklären: merge
  68. - Man vergleicht mehrerer Änderungen, welche an verschiedenen Versionen derselben Datei getätigt worden sind
  69. - Ein Besipiel sind das Zusammenführen von Textdateien oder Verzeichnisstrukturen
  70. ##Kritik (Kritik oder Lob für den Dozenten - Optional 2-3 Sätze
  71. Nichts