An Introduction to Makefile.
about 23 slides to present you a quick start to the make utility, its usage and working principles. Some tips/examples in order to understand and write your own
Makefiles.
In this presentation you will learn why this utility continues to hold its top position in project build software, despite many younger competitors.
Visit Do you know Magazine : https://www.facebook.com/douknowmagazine
An Introduction to Makefile.
about 23 slides to present you a quick start to the make utility, its usage and working principles. Some tips/examples in order to understand and write your own
Makefiles.
In this presentation you will learn why this utility continues to hold its top position in project build software, despite many younger competitors.
Visit Do you know Magazine : https://www.facebook.com/douknowmagazine
Git is a distributed revision control system that is widely used in the software development industry. The presentation was used in a lecture delivered in BITS-Pilani, India. The lecture served as a basic crash course on Git.
First, it sets off with a guide to install and configure git on various platforms.
Then, the basic working concepts of Git are explained.
This is followed by a detailed step-by-step guided demonstration of a sample workflow in Git.
Afterwards, Some auxillary commands that are frequently used are discussed briefly.
Finally, basic concepts of branching and merging are detailed.
The presentation ends with a few possible merge conflicts that occur in Git.
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
Breve introduzione a GIT:
. Iniziare un nuovo progetto o clonarne uno esistente
. primi commit e comandi base
. esempi di utilizzo
Autore: Valerio Radice
tag line:
Tutorial GIT ITA italiano
Immer mehr Open-Source-Projekte benutzen Git. Der Vorteil ist klar: Viele Entwickler arbeiten weltweit verteilt, zeitlich versetzt und nur lose gesteuert an einem Projekt. Das passt hervorragend zum dezentralen Ansatz von Git. Git untersützt die benötigten Workflows für eine solche Projektorganisation hervorragend - denn dafür wurde es entwickelt.
Der Vortrag diskutiert die Fragen, die sich bei der Einführung von Git im eigenen Unternehmen stellen:
- Welche Vorteile bringt Git für In-House-Projekte und Produktentwicklungen?
- Wie geht man vor, wenn man Git einführen möchte?
- Mit welchen Problemen ist beim Umstieg zu rechnen?
- Sind die gleichen Workflows, die in der Open-Source-Welt funktionieren auch für die Unternehmenswelt sinnvoll?
Am Beginn des Vortrages gibt es einem kurzen Einstieg in Git, so dass auch Git-Unerfahrene eine Idee von den Fähigkeiten einer dezentralen Versionsverwaltung erhalten.
Abendvortrag oose Innovative Informatik GmbH, Tower Falkenried-Piazza, Straßenbahnring 7, 20251 Hamburg
Git is a distributed revision control system that is widely used in the software development industry. The presentation was used in a lecture delivered in BITS-Pilani, India. The lecture served as a basic crash course on Git.
First, it sets off with a guide to install and configure git on various platforms.
Then, the basic working concepts of Git are explained.
This is followed by a detailed step-by-step guided demonstration of a sample workflow in Git.
Afterwards, Some auxillary commands that are frequently used are discussed briefly.
Finally, basic concepts of branching and merging are detailed.
The presentation ends with a few possible merge conflicts that occur in Git.
This is a presentation give to the Vancouver Drupal users group about moving to GIT as a version control system for a small development team. The presentation details the workflow we settled on, and the git flow method for branch management. You can see a video of the presentation here - http://www.ustream.tv/recorded/13544036
Breve introduzione a GIT:
. Iniziare un nuovo progetto o clonarne uno esistente
. primi commit e comandi base
. esempi di utilizzo
Autore: Valerio Radice
tag line:
Tutorial GIT ITA italiano
Immer mehr Open-Source-Projekte benutzen Git. Der Vorteil ist klar: Viele Entwickler arbeiten weltweit verteilt, zeitlich versetzt und nur lose gesteuert an einem Projekt. Das passt hervorragend zum dezentralen Ansatz von Git. Git untersützt die benötigten Workflows für eine solche Projektorganisation hervorragend - denn dafür wurde es entwickelt.
Der Vortrag diskutiert die Fragen, die sich bei der Einführung von Git im eigenen Unternehmen stellen:
- Welche Vorteile bringt Git für In-House-Projekte und Produktentwicklungen?
- Wie geht man vor, wenn man Git einführen möchte?
- Mit welchen Problemen ist beim Umstieg zu rechnen?
- Sind die gleichen Workflows, die in der Open-Source-Welt funktionieren auch für die Unternehmenswelt sinnvoll?
Am Beginn des Vortrages gibt es einem kurzen Einstieg in Git, so dass auch Git-Unerfahrene eine Idee von den Fähigkeiten einer dezentralen Versionsverwaltung erhalten.
Abendvortrag oose Innovative Informatik GmbH, Tower Falkenried-Piazza, Straßenbahnring 7, 20251 Hamburg
Konzepte, Funktionsweise & Best Practices
Diese Session langweilt Sie nicht mit einer weiteren, oberflächlichen Einführung, sondern nutzt direkt ihre bisherigen Erfahrungen als professioneller Anwender von Subversion & Co. für einen fundierten Einblick in die Vorteile und Funktionsweise von Git. Dazu wagen wir einen Blick unter die Motorhaube und erschließen uns daraus Best-Practices für das Projekt z.B. zum Umgang mit Branches. Ein kurzer Blick auf die attraktive Toollandschaft rund um Git und Erfahrungen zu Stolperfallen bei seinem Einsatz z.B. unter Windows runden die Session ab.
Zielpublikum: Entwickler und Architekten
Voraussetzungen: Erfahrungen mit Versionsverwaltungsystemen
Schwierigkeitsgrad: Fortgeschritten
Sie lernen:
Der Zuhörer erhält als Git-Neuling oder Einsteiger eine fundierte Hinführung zu Git speziell im Hintergrund für den Einsatz im professionellen Umfeld. Er lernt damit welche Faszination hinter dem Buzzword Git steckt, aber auch wo diese ihre Grenzen hat. Dazu diskutieren wir seine Funktionsweise und führen ganz praktische Stolperfallen und schwierige Erfahrungen (Windows Einsatz, hohe Lernkurve, History-Rewriting) auf der einen Seite an, auf der anderen Seite aber auch die Mehrwerte & innovativen Lösungen die sich rund um Git bieten.
Campixx 2015: Shop SEO Battle - modified vs. PrestaShop vs. shopwaresinngold
Wir präsentieren die Folien unseres Workshops auf der SEO Campixx 2015 in Berlin:
Der große Shop-Battle: Shopware, Modified und Prestashop – wer gewinnt das SEO-Duell
Workshop von Johannes Reimann & Marco Zinsmeister
Ecrire son business-plan - Garanti 0% BullShit - Par Guilhem BertholetGuilhem Bertholet
L'ebook sur le business plan, écrit par un entrepreneur pour les entrepreneurs, garanti sans bullshit !
Foncez le découvrir !
Et découvrez le blog de l'auteur, Guilhem Bertholet : http://www.guilhembertholet.com
Les outils SEO à utiliser en 2013 - Seo CampusAltiref
Le Top 20 (et quelques) des outils SEO à utiliser en 2013. Support de conférence au SEO Campus 2013. Par Alexandra Martin (http://www.miss-seo-girl.com) et Marie Pourreyron, consultante SEO Altiref (http://www.mar1e.fr et http://www.altiref.com). Retrouvez tous les liens directs vers les outils ici http://www.mar1e.fr/seo-campus-2013-2258
Enquete regionsjob chercher un emploi en 2013HelloWork
A quoi ressemble la recherche d'emploi en 2013 ? RegionsJob a mené l'enquête auprès de 14 000 candidats pour connaître leur quotidien. Voici les résultats.
Der Fjord Trends Report 2016 ist da! Zum neunten Mal veröffentlichen wir unsere jährlichen Einschätzungen zu den Auswirkungen aufkommender Technologien. Wir beleuchten die neuesten und wichtigsten digitalen Entwicklungen, die Unternehmen, Organisationen und die Gesellschaft in naher Zukunft verändern werden – und erläutern, welche Chancen sich daraus ergeben.
Grundlage der FJORD Trends 2016 ist die geballte Expertise unserer 750 Designer und Strategen weltweit. In monatelangen Recherchen, Diskussionen und Debatten haben wir unsere Erfahrungen zusammengetragen und in zehn Schlüsselentwicklungen zusammengefasst. Wir glauben, dass 2016 ein weiteres entscheidendes Jahr für die Digitalisierung wird und einschneidende Entwicklungen für Organisationen und Anwender bereithält.
Im FJORD Trends 2016 Report erfahren Sie mehr über die Big-Data-Etikette und den zukunftsfähigenr Umgang mit Daten; die wachsende Bedeutung von Employee Experience (EX) Design; das Verschwinden der Apps und die wahre Stärke von Wearables, Nearables und anderen Geräten, die zuhören.
Den vollständigen FJORD Trends Report 2016 finden Sie unten – viel Spaß beim Lesen! Besuchen Sie uns auch auf trends.fjordnet.com und folgen Sie #FjordTrends
Weitere Informationen zu Fjord und der Trends Studie finden Sie hier: http://trends.fjordnet.com/
Online-Strategie und Content-Marketing - authentisch Kunden begeistern und Um...Viktoria Trosien
Einführung in Online-Strategie und Content-Marketing. Folien zum Intensivworkshop in dem Sie lernen, wie Sie mit einer authentischen Strategie Kunden begeistern und Umsätze steigern. Teil 1 von 2. Trainerin: Viktoria Trosien - Weitere Termine unter www.vindoura.com/workshops
---
Sie wollen Ihre Kunden über die digitalen & sozialen Medien erreichen, sie auf sich aufmerksam machen, sie an sich binden und/ oder Ihre Produkte verkaufen? Sie wünschen sich eine klare, authentische und konsistente Strategie, die sie noch dazu selbst und mit geringen Mitteln umsetzen können? Sie sind bereit, sich dafür ins Zeug zu legen und aktiv zu werden?
Dann sind die Intensiv-Workshops „Online-Strategien & -Marketing für Kreative“ das Richtige für Sie! Hier erarbeiten Sie sich konkrete Strategien und Handlungspläne, die Sie sofort praktisch nutzen können. Sie erhalten Einblick in Instrumente und Trends, sowie realistische Einschätzungen zu verschiedenen Kanälen und deren Nutzen. Sie erlernen konkrete Kniffe für die praktische Umsetzung. Sie werden durch Aufgaben vor, während und nach dem Workshop gefordert. Zudem profitieren Sie von Anregungen und Feedback der anderen TeilnehmerInnen und einer erfahrenen Beraterin. Am Ende haben Sie mittels eines systematischen Leitfadens Ihre eigene Online-Strategie entwickelt bzw. verfeinert und können diese für Ihren Erfolg im Web anwenden.
---
Teil 1: Sie werden eine zu Ihnen passende Online- Strategie erarbeiten, die Ihre Marke und Ihr Produktversprechen klar verständlich im digitalen Raum positioniert. Sie formulieren messbare Ziele, entwickeln eine Kommunikations- und Marketing-Strategie und wählen passende Kanäle und Maßnahmen aus, die realistisch in ihr Zeitbudget passen. Am Ende halten Sie Ihr Online-Strategie-Poster und Ihren Maßnahmenplan für die nächsten Monate in den Händen, die Sie bei Ihrer täglichen Arbeit unterstützen.
---
Teil 2: Sie werden Ihre Online-Strategie überprüfen, optimieren und erweitern. Dazu werten Sie Ihre bisherigen Aktivitäten und Kennzahlen aus. Je nach vorab geklärtem Bedarf werden Themen und Fragen vertieft, wie bspw. zu Branding, Positionierung, Storytelling, Online-/Mobile-/Content-/Video- /Image-Marketing, Analytics, SEO+SEM, Online-Shops, Crossmedia-Strategien.
Ihre Online-Strategie wird professioneller, sie wird mehr Klarheit und Tiefe erhalten. Sie wissen, wie Sie Kennzahlen für die kontinuierliche Weiterentwicklung nutzen.
---
Weitere Termine unter www.vindoura.com/workshops
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...Marc Müller
GIT gilt als die beliebteste und erfolgreichste verteilte Quellcode-Verwaltung und ergänzt seit nun fast drei Jahren das Portfolio der ALM Plattform Team Foundation Server und Visual Studio Team Services. Die neuen Möglichkeiten zur Source Code Verwaltung ergeben auch neue Anforderungen an die Paket-Verwaltung und das Dependency Management. Beide sind nun ebenfalls in die ALM Plattform integriert. Abgerundet wird dieser Vortrag durch einen Einblick in das von Grund auf neu konzipierte Build-System.
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
Kubernetes ermöglicht eine Automatisierung der Bereitstellung, Skalierung und Verwaltung von verteilten Docker-Container. Der Einstieg, die Umsetzung und Wartung hingegen ist eine extreme Herausforderung und kostet am Ende nicht nur viel Geld, sondern auch Ihre Nerven. Microsoft Azure bietet mit den Azure Kubernetes Services (Kurz AKS) die Erlösung, der soeben genannten Schmerzen. In dieser Session zeigt Ihnen der Docker- und Azure-Experte Gregor Biswanger einen Überblick von Kubernetes und wie einfach Azure für uns eine Kuberenetes-Landschaft herbeizaubern kann.
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtVerein FM Konferenz
In vielen Programmiersprachen und in vielen Programmierumgebungen sind Codeversionierungssysteme seit Jahren eine Selbstverständlichkeit. Nicht so bei FileMaker.
Wir erfahren zuerst, was ein Codeversionierungssystem überhaupt ist. Wir sehen uns danach einige aktuelle Codeversionierungssysteme an und lernen einiges über ihre Eigenschaften sowie Vor- und Nachteile. Wir werden uns auch einen groben Überblick verschaffen, welche Softwareprodukte es am Markt für verschiedene Plattformen gibt (Client, Server, Hosted Services). Schliesslich werden wir uns damit beschäftigten, in welchem Umfang und in welchen Situationen auch FileMaker-Entwickler aus Sicht des Referenten von Codeversionierungssystemen profitieren können.
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...Marc Müller
In einer Zeit, in der Codeänderungen möglichst schnell ins Produkt einfließen sollen, steigt auch der Bedarf an Automatisierung und Toolunterstützung. In diesem Vortrag geht es um alle Themen zwischen dem Check-in und dem Bereitstellen des Build-Ergebnisses zum Deployment. Zum einen werden die vom TFS angebotene neue Versionsverwaltungsmöglichkeit auf Basis von G beleuchtet, wie z.B. lokale Branches, Integration in den Auslieferungsbranch mittels Pull Requests sowie Branch Policies, zum anderen geht es um den neuen Build-Server im TFS, der den alten ablöst und das kontinuierliche Integrieren noch einfacher macht.
Regulatorics: Offside is when the referee whistles - DOAG 2018Torsten Kleiber
The regulatory system has more and more influence on our software development.
Regulatory authorities, external and internal Auditors are increasingly examining our IT and not longer only our business processes and balance sheets. Some of them have better trained IT experts as we can find on the free market.
General standards such as ISO/IEC 2700X but also banking-specific standards such as BAIT and MaRisk now pose challenges that generally only large software manufacturers know. Approximately 40 % of our projects are now regulatory-driven.
Therefore, we are currently redefining our development process in order to implement the following requirements, among others * Unchangeability of the tested artefacts after the test * Functional segregation * Detection of accidental changes or intentional manipulations of the application
The lecture shows the vision of such a safe process. It shows the current status of implementation in SOA and ADF development, for example:
Migration of version management to GIT in Atlassian BitBucket
Application and selection criteria for a branching model
Mandatory code reviews in Atlassian BitBucket
Build and Deployment Pipelines in Jenkins
Automatic documentation in JIRA Issue via Bitbucket and Jenkins.
Maybe you too can minimize the additional work and continue to work agile to meet such requirements.
http://www.opitz-consulting.com/go/3-6-11 --- Softwareentwicklung, -test und -betrieb können durch Virtualisierung viele Vorteile erzielen. In diesem Zusammenhang werden häufig Werkzeuge für die Bereitstellung von Umgebungen eingesetzt. Verschiedene Werkzeuge adressieren aber unterschiedliche Einsatzszenarien. Wo im Applikationslebenszyklus können diese Werkzeuge sinnvoll eingesetzt werden und wie sieht es mit Kosten und Nutzen aus? ---- Unser Senior Software Architect Richard Attermeyer stellte bei der W Jax am 5.11.2014 in München die Tools Vagrant, Puppet und Docker im Einzelnen vor und erläuterte ihren Nutzen anhand von Use Cases und Live Demos. ---- Weitere Infos: https://jax.de/wjax2014/sessions/vagrant-puppet-docker-fuer-entwickler-und-architekten ---- Über uns: Als führender Projektspezialist für ganzheitliche IT-Lösungen tragen wir zur Wertsteigerung der Organisationen unserer Kunden bei und bringen IT und Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner können sich unsere Kunden auf ihr Kerngeschäft konzentrieren und ihre Wettbewerbsvorteile nachhaltig absichern und ausbauen.---- Über unsere IT-Beratung: http://www.opitz-consulting.com/go/3-8-10 ---- Unser Leistungsangebot: http://www.opitz-consulting.com/go/3-8-874 ---- Karriere bei OPITZ CONSULTING: http://www.opitz-consulting.com/go/3-8-5
Ein Vortrag zum Thema verteilte Versionskontrolle mit Git. Der Vortrag geht auf die Historie von Versionskontrollsystemen ein, stellt Vorteile von Git dar und bietet einige Beispiele und viele Links zu Git-Themen.
DWX 2017 - GIT im Leben eines VS EntwicklersMarc Müller
GIT gilt als die beliebteste und erfolgreichste verteilte Quellcode-Verwaltung überhaupt und ergänzt seit nun fast drei Jahren das Portfolio der ALM Plattform Team Foundation Server. Für eingefleischte TFVC Benutzer stellt Git oftmals noch Neuland dar und es gilt einigen Stolperfallen geschickt aus dem Weg zu gehen. Im Vortrag zeigen wir mit viel Hintergrundinformationen und Beispielen, welche Konzeptänderungen auf einen warten. Nebst Visual Studio zeigen wir auch Shell Extensions und die Kommandozeilen-Tools als Ergänzung zum gewohnten Tool-Sets. Themen wie Git-Flow oder Large File Support (LFS) dürfen natürlich ebenfalls nicht fehlen.
Jeder Service für sich kann unabhängig deployed und skaliert werden.
Gerade Cloud Computing erleichtert in vielen Unternehmen die Verwaltung der IT-Infrastruktur. Weil die für die Software benötigte Plattformen so einfach anzumieten sind, werden Developer deshalb immer mehr in die Rolle des DevOps gedrängt -- die Software, die sie entwickeln, soll auch selbst betrieben werden -- You build it, you run it.
Doch diese Strukturierung ist nicht ganz kostenlos - Developer müssen dadurch immer mehr Verantwortung übernehmen. Um dieser Verantwortung gerecht zu werden, muss eine Schwachstelle ausgeschaltet werden: der Mensch. Im Talk gehe ich auf Prozesse der klassischen Softwareentwicklung ein und lege dar, wie diese in dem “You build it, you run it”-Modell verbessert werden.
Ähnlich wie Git vs SVN - Eine vergleichende Einführung (20)
1. 1
Git versus SVN
Eine vergleichende Einführung in verteilte Versionskontrollsysteme (VCS)
anhand von „Git“ und dem zentralisierten VCS „Subversion“ (SVN)
http://bit.ly/PHPUG_JUN_GITvsSVN
2. 2
Wer bin ich?
Mario Müller
TWT Interactive GmbH - Düsseldorf
PHP (ZCE), Javascript, Python, Java
Webservices, verteilte Systeme, Build Systeme,
Frameworks
MySQL, Postgresql, CouchDb, MongoDb
Mac-Head & Linux Enthusiast
Xing: http://bit.ly/mariomueller
Twitter: http://twitter.com/xenji
Github: http://github.com/xenji
11. 11
Merkmale
Alle Arbeiten sind lokal
Es gibt immer nur eine Realität
Die Versionshistorie ist lokal
Dateien werden als Ganzes versioniert
Vergleiche sind möglich
Performanz ist gut
12. 12
RCS - Revision Control System
Dateibasiertes Unix & Linux VCS
Sehr alt (Anfang der 1980er) und $ ci -u PyChart-1.26.1.tar.gz
PyChart-1.26.1.tar.gz,v <-- PyChart-1.26.1.tar.gz
Vorgänger von CVS, welches immer noch enter description, terminated with single '.' or
end of file:
die gleiche Methode zur Dateiverwaltung
NOTE: This is NOT the log message!
>> Init Checkin
>> .
verwendet initial revision: 1.1
done
Wird heute teilweise noch von Sys-
Admins eingesetzt um Konfigurationen zu
sichern
Speichert immer den gesamten
Dateistand (kein Delta).
14. 14
Merkmale
Es gibt mehr als eine Realität (ein Server, n Workingcopies)
Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben
Vergleiche sind nur direkt mit dem Server möglich
Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben
die zu übertragenden Mengen gering
Die Versionshistorie ist nur auf dem Server verfügbar
Die Zentralisierung ermöglicht ein Zugriffs- und Rechtemanagement
16. 16
Merkmale
Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi-
Workingcopy)
Jede Workingcopy ist ein kompletter Klon mit allen Versionen
Theoretisch gibt es keinen zentralen Server
Das Repository ist lokal und unabhängig
Alle Operationen sind lokal
Es ist ein Mechanismus zur Synchronisierung mit einer entfernten Instanz
vorhanden
17. 17
• Active Responses: The total of responses excluding "No Opinion". (eg for
git: 65 + 19 + 1 + 0)
• Approval %: The sum of best and ok responses divided by active responses,
expressed as a percentage. (eg for git: (65 + 19) / 85)
Approval in %
VCS Survey (von M. Fowler)
19. 19
Geschichte
4 Jahre Entwicklung - Version 1.0 am 23.
Feb. 2004
Enwickelt von CollabNet
Seit dem 10. Feb. 2010 ein Apache Top-
Level Projekt
Weiterentwicklung vom ebenfalls zentralen
Versionierungstool „CVS“
21. 21
Revision
im Bereich der elektronischen
Archivierung, insbesondere im Rahmen
der Archivierung kaufmännischer Daten,
für Nachprüfbarkeit, Unveränderbarkeit,
Nachvollziehbarkeit (Wikipedia)
22. 22
Changeset
Eine Zusammenfassung von Änderungen einer
Version. Häufig wird eine Notation verwendet, die
die Operation mit / auf dem Bestandteil des
Changesets erklärt:
U = Updated
D = Deleted
A = Added
Beispiel für ein Changeset:
U foo.txt
A bar.sh
D baz.php
23. 23
Delta / Diff
Das griechische Delta (∆) wird häufig für
die Benennung von Differenzen
verwendet.
Im Fall von SVN handelt es sich sogar um
das angewandte Speicherverfahren.
Es werden immer nur die Unterschiede
zwischen zwei Versionen festgehalten.
24. 24
Tag
Ein Tag ist eine Beschriftung einer
bestimmten, einzelnen Revision. Man
markiert einen definierten Stand mit einem
Zeiger. Das Taggen eine „günstige“, wenig
Ressourcen - verbrauchende Operation.
Häufig wird das Taggen für die Defintion
von Versionen verwendet. Tags werden
als unveränderlich betrachtet, sind es aber
de-facto in SVN nicht.
25. 25
Branch
Ein Branch (= Ast) ist meist eine Ab-/Verzweigung
einer Hauptentwicklungslinie (meist „trunk“
genannt).
In SVN sind Branches Kopien von einer
Ursprungsversion (In SVN über sog. „Cheap
Copies“ realisiert).
Häufig werden Branches dazu verwendet um
verschiedene Versionsstände von einander zu
trennen oder um Arbeitsabläufe zu
parallelisieren.
Bsp: trunk -> latest-test oder
latest-test -> latest-production
26. 26
Merge
Das Mergen oder Verschmelzen ist die
Zusammenführung von verschiedenen
Änderungen in zwei Versionen einer Datei
oder auch eines Dateibaumes.
Bekanntes Beispiel ist das Mergen von
zwei Branches
29. 29
Vorteile
Kostenfrei erhältlich
Erprobt im Alltag
Modern durch stetige Entwicklung als Apache
Project
Akzeptiert von den meisten Entwicklern
Unterstützt von vielen IDEs, Clients und
Shared Hosting Anbietern (z. B. SourceForge)
Einfach in der Handhabung
Komplexe Szenarien sind abbildbar.
30. 30
Einschränkungen
Viele Operationen sind aus
Datenhaltungssicht „teuer“
Ohne Server geht nichts
Es werden nur Deltas verwaltet
Automatisches Mergen ist in vielen Fällen
keine schöne Erfahrung (= viele Konflikte
bei offensichtlich eindeutigen Situationen)
34. 34
Linus Torvalds
Initiator der Linux - Bewegung
Wahrscheinlich der berühmteste
Entwickler der heutigen Zeit
Entwickelt aktiv am Linux Kernel
Ist Erfinder von Git, jedoch nicht (mehr)
der Hauptentwickler
35. 35
Geschichte
Gestartet im April 2005 um den damals
verwendeten BitKeeper zu ersetzen von
Linus Torvalds
Aktuell in der Version 1.7 verfügbar
Sehr junges Projekt
Schnell adaptiert worden (GitHub,
Gitorious)
37. 37
Einige Zeit nach
PHP 5 Branch PHP 4 Branch Erstellung des PHP
5.3 Branches wird ein
Fehler festgestellt.
Dieser Fehler wird im
5.3er Branch gefixt,
wo muss er denn
PHP 5.3 Branch
noch gefixt werden?
Fehler!
Für Git kein Problem,
Woher? da es den Ursprung
Bugfix übertragen der Datei und deren
Einzelteile kennt.
Die Historie verrät wo
der Fehler herkommt.
38. 38
Begriffe
Staging
Rebase
Pull Dirty
Remote Clone
Push
39. 39
Clone
Unter einem „Clone“ versteht man das
Spiegeln einer vollständigen Historie in ein
(lokales) Repository.
Dabei wird jeder Commit, jeder Tag und jeder
Branch mit einbezogen.
40. 40
Remotes
Branches werden in Git in zwei Zuständen
verwaltet. Lokal und Remote. Ein Remote
Branch ist eine Referenz auf einen lokalen
Branch in einem entfernten Repository.
Remotes werden interessant, wenn
mehrere Entwickler am selben Branch
arbeiten und den entwickelten Quellcode
verteilen wollen.
41. 41
Staging
Hinzufügen von Dateien in einen virtuellen
Bereich
Alle Daten im Stage kommen in den
nächsten Commit
Commits sind dadurch auf CLI Ebene
„zusammenbaubar“
42. 42
Push
Übermittelt den Inhalt eines Branches aus
einem lokalen Repository an ein Remote
Repository
Transferiert Commit-By-Commit
Aus Sicht des Remote Repositories sieht
es aus, als hätte die Person lokal
Commited
43. 43
Pull
„Zieht“ Änderungen aus einem Remote
Repository
Wenn mehrere Branches aus einem
Remote existieren (z. B. nach einem Clone
eines Repositories mit mehreren
Branches), werden diese ebenfalls
„gezogen“
44. 44
Rebase
Ähnelt dem Pull
Zieht alle entfernten Änderungen in das
lokale Repository
läuft bis zu dem Punkt, in der Timeline, ab
dem man selbst Veränderungen
vorgenommen hat
Wiederholt ab diesem Zeitpunkt alle
Commits bis zum aktuellen Stand.
Klarer Unterschied zum Merge: Rebase
erzeugt keine neue Revision!
45. 45
Dirty
Als „dirty“ bezeichnet man Branches, die
Änderungen gegenüber dem letzten Commit besitzen
ihre Änderungen noch nicht (vollständig) im Staging haben
Beispielkonstellation für den Zustand „dirty“
Foo.txt (tracked, unchanged) Grund für den Zustand „dirty“
Bar.php (tracked, changed, unstaged)
Baz.css (tracked, changed, staged)
46. 46
Funktionsweise
Git Repositories bestehen aus drei Komponenten:
Tree Objekte
Commit Objekte
Blobs (Binary Large OBjects)
Jedes Objekt bekommt eine repository-weit eindeutige ID in From einer
SHA-1 Prüfsumme
47. 47
Funktionsweise
Alles wird in einem .git Ordner im Wurzelverzeichnis des Repositories
gesammelt. (Keine verstreuten .svn Ordner mehr)
Dateien werden nach ihrem Inhalt beurteilt, nicht nach ihrem Namen
„Renaming-Detection“ ist also eingebaut
Kein Linux/Windows „Conflict State“ Problem bei Groß- und Kleinschreibung
49. 49
4-faltigkeit
Eine Blob kann aus Sicht von Git vier Zustände annehmen
untracked (nicht versioniert)
unmodified (versioniert, aber nicht verändert)
modified (versioniert, verändert, nicht im Stage)
staged (versioniert, verändert und im Stage, aber nicht commited)
51. 51
Branching
Gehört zum täglichen Arbeiten
Ein Branch pro Feature / Bugfix / Change
Lokales und entferntes Branchen möglich
Saubere Fallunterscheidung
Sichere Code-Basis, da definierter Stand
und Kenntnis über den Ursprung des
Stands (jeder Branch kennt den Punkt ab
dem er divergiert (abgewichen) ist
52. 52
Vorteile
Schnell, da eine Vielzahl der Operationen
lokal ist
Unabhängig, da kein Server benötigt wird
Sicher, da jeder alles besitzt (= verteiltes
Backup)
Modern, da Objekt-orientierte Sichtweise
auf die Teilstücke des Versionsbaumes
Vollkommene Freiheit, da jeder sich selbst
organisieren kann.
53. 53
Einschränkungen
Kaum Möglichkeiten Teilstücke des Codes
per ACL einzuschränken
Komplizierter Einsatz unter Windows
Kaum GUIs oder IDE Plugins
„Ungemütliche Lernkurve“
Vollkommene Freiheit
55. 55
Team Organisation
Es sind verschiedene Ansätze zur
Organisation von Teams entstanden
Viele sind auch in der zentralisierten Welt
vorhanden, aber wenig genutzt
Canonical hat mit der Veröffentlichung von
Bazaar in Verbindung mit Launchpad sehr
gute Arbeit geleistet und diese möglichen
Workflows dokumentiert (http://
wiki.bazaar.canonical.com/Workflows)
Hier stelle ich 3 Modelle beispielhaft vor
56. 56
Workflow - Ein User
Der „Freelancer - Workflow“
Gut für einzelne Programmierer, die
Weder Zeit
noch Resourcen für das Setup eines SVN
Servers haben
Schlecht, wenn man kein Backup hat und
die Festplatte / das Speichermedium
verliert
57. 57
Workflow - kleines Team
Es gibt ein „blessed“ Repository, also ein
zentrales Repository
Jeder klont sich dieses Repository ein mal
Ab dann werden Änderungen per push &
pull verteilt
Sinnvoll für kleine Teams (zwischen 2 und
6 Leuten) mit überschaubaren Commit-
Zahlen
60. 60
Workflow Integ. Manager / Dictator
Für große Teams geeignet
Hoher Management-Aufwand
Hohe Parallelisierung
Sehr guter Zustand des Repository
Der Integration Manager lohnt sich ab 10-15 Personen
Das Dictator Modell erst bei 50+ Personen
62. 62
• Etabliert • Langsam • Schnell • Steiniger Einstieg
• Techn. Ausgereift • Historie „dumm“ • Mergen ist sicher • Verlangt einen
• Verstanden • Branching ist & einfach Paradigmen-
• Unterstützt anstrengend • Branching ist wechsel
• Verfügbar • Binärdaten- erwünscht • Nicht auf allen
• Rechte- behandlung • Ohne Server OS „gut“
management • Ohne Server verwendbar • Fehlendes
unbrauchbar • Sehr intellig. Rechte-
Historie management
64. 64
Der Umstieg / Lernaufwand lohnt sich ...
wenn man selbst OpenSource Software schreibt und diese z. B. auf Github
bereitstellen möchte
wenn man viel im OpenSource Software Umfeld unterwegs ist, denn Git wird dort
immer stärker
wenn man große Mengen an Sourcen verwalten muss und Geschwindigkeit eine Rolle
spielt
wenn SVN mal wieder den Merge verrissen hat und man sehen will wie es auch
anders geht
wenn man die Definition von „Versionshistorie“ bei SVN auch so mager findet
wenn man keine Versionskontrolle nutzt, die Sourcen lokal halten will und SVN Server
doofe Ohren haben