[Quicktip] iPhone Fotos am Mac verwalten / löschen

Auf einem iPhone sammeln sich sehr schnell sehr viele Bilder an. Und wenn man dann bei über 1000 angekommen ist und langsam aussortieren möchte, wird es ziemlich friemelig, dies mit dem Handy zu erledigen. Glücklicherweise gibt es die Möglichkeit, eure Fotos auch über euren Mac zu verwalten. Und zwar – und darauf kommen die wenigsten – mit der Vorschau App.

Dazu schließt ihr das iPhone einfach per Kabel an euren Mac an. Dann startet ihr die Vorschau App und wählt da den Menüpunkt “Importieren von …”, wobei das “…” für den Namens eures iPhones steht.

iphone_1

Nun seht ihr die Übersicht eurer Bilder in Listenform. Das ist zur sinnvollen Verwaltung jedoch nicht zu gebrauchen, weswegen ihr unten links den Button findet, um auf die Übersicht mit den größeren Bildern, also Thumbnails, umschalten zu können.

iphone_2

Nun könnt ihr durch eure Bilder scrollen und diejenigen markieren, die ihr gerne vom iPhone löschen wollt.

iphone_3

Um die markierten Bilder nun zu löschen, klickt ihr einfach links unten auf das rote Icon.

iphone_4

Neben der Möglichkeit, die Bilder zu löschen, könnt ihr über diesen Weg natürlich auch Bilder vom iPhone auf den Mac kopieren.

[Quicktip] Wie ändere ich nachträglich die Email und den Namen von git Commits?

Stellt euch folgende Situation vor: ihr habt lokal ein Tool entwickelt und während der Entwicklung natürlich bereits mit einem git Repository gearbeitet. Nun wollt ihr das Repository mit einem Server synchronisieren und bemerkt, dass ihr unter falschenm Namen/Email Adresse die Commits abgesetzt habt. Um dies nun nachträglich noch zu ändern, haben die Jungs von Github ein nettes Script zusammengebastelt:

https://help.github.com/articles/changing-author-info

Kopiert den Code in eine Datei namens “replace.sh” in den jeweiligen Repository Ordner und ersetzt die Stellen “your@email.to.match” mit der Email Adresse, bei der ihr eine Ersetzung durchführen wollt. Bei “Your New Committer Name” und “Your New Committer Email” (und das gleiche für “Author”) fügt ihr die neuen Daten ein, die ihr in den jeweiligen Commit Messages sehen wollt.

Wenn ihr nun das Script per “./replace.sh” ausführt, geht git jeden einzelnen Commit durch, schaut, ob die “your@email.to.match” Email Adresse passt und ersetzt in diesen Commits die Daten mit den von euch hinterlegten Ersetzungen.

BITTE AUFPASSEN: Führt dieses Script keinesfalls in git Repositories aus, die bereits mit einem Server bzw. anderen Usern synchronisiert wurden. Dies kann fatale Auswirkungen haben!

Versionsverwaltung mit git

Wie so oft in diesem Blog sprechen wir natürlich über ein technisches Thema – und zwar geht es um Versionsverwaltung. Vornehmlich im Bereich Softwareentwicklung angesiedelt kann man damit seinen Quellcode verwalten. Warum braucht man dazu ein eigenes Programm? Man hat die Dateien ja da und kann ab und zu ein Backup machen, oder?

Ganz so einfach ist es doch nicht, denn man kommt mit dieser Vorgehensweise sehr schnell an seine Grenzen. Ein paar Beispiele: mit einer einfachen Dateiverwaltung wird es teilweise unmöglich, im Team zu arbeiten, weil es zwangsläufig dazu kommt, dass mehr als eine Person an der gleichen Datei arbeiten muss. Software ist NIE fertig, es wird immer wieder Änderungen oder Bugfixes geben. Was macht man, wenn man zu einer älteren Version zurück will oder nur mal die Unterschiede zwischen zwei Versionen vergleichen will? Verbreite ich meinen Quellcode sinnvoll, damit mein Opensource-Projekt aktive Mitstreiter bekommt und diese ihr Änderungen auch wieder zu mir zurückfließen lassen können? Diese Liste kann man beliebig erweitern, und es wird immer wieder herauskommen, dass eine Versionsverwaltung doch immer der elegantere Weg sein wird.

Das haben Entwickler ziemlich zeitig bemerkt und entsprechende Programme entworfen, die einen bei diesem Problem unterstützen. Heraus kamen Systeme wie cvs oder Subversion. Die sind schon ganz gut, haben aber immer ein großes Problem: sie brauchen einen Server. Und das veringert die Geschwindigkeit sehr deutlich. Hinzu kommt, dass Arbeit von Unterwegs erheblich erschwert wird, weil man nur bei einer Verbindung zum Server Zugriff auf die Historie einer Datei hat.

Was mich persönlich am meisten gestört hat, war der Umstand, dass die bestehenden Systeme nur sehr schlecht mergen – also zusammenführen mehrerer Änderungen in der gleichen Datei – können. Auch sehr unschön war das Branching – also das Anlegen eigener Entwicklungszweige.

Git ist hier äußerst robust und bekommt nur Probleme, wenn man wirklich die gleiche Zeile verändert. Entwickelt wurde das System von keinem anderen als Linux Torvalds, dem Erfinder von Linux. Ihm war die Verwaltung des Linux Quellcodes schon lange ein Dorn im Auge und am Markt gab es kein Tool, was seinen Ansprüchen genügte. Also entwickelte er ein entsprechendes System selbst – heraus kam git.

Die großen Vorteile: Die Repositories liegen lokal auf jedem Rechner, merge-Prozesse sind sehr schnell und auch sehr genau und das Anlegen von Branches sowie der Wechseln zwischen ihnen stellt kein Problem mehr dar. Es zeigt sich einfach, dass man viel autarker arbeiten kann, da man alle benötigten Daten auf seinem PC hat und erst dann mit dem Server kommunizieren muss, wenn man Commits übertragen oder Updates ziehen möchte. Sehr schön gelöst ist auch die Aufbewahrung der Meta-Daten. Liegt bei Subversion oder cvs in jedem Ordner ein Unterordner mit den Daten, so ist es bei git pro Repository nur ein einziger Ordner, und der liegt im Hauptverzeichnis des Projekts. Möchte man also Dateien versenden, so kann man diese direkt nehmen und muss nicht erst anfangen, jeden Ordner einzeln zu reinigen. Wer schon einmal ein Subversion Projekt von Meta-Daten befreit hat, weiß, wovon ich spreche 😉

Um meine Einleitung zu diesem Artikel noch zu relativieren: Man kann mit git und auch anderen Versionskontrollsystemen jede Art von Datei verwalten. Es gibt z.B. viele Grafiker, die ihre Projekte mit git verwalten, weil sie dann einfach in der Historie vor und zurück springen können. Selbst Backup-Lösungen kann man damit aufbauen. Am effizientesten funktionieren die Systeme aber noch immer mit reinen Textdateien.

Zum Thema Versionskontrollsysteme sei euch übrigens auch folgender Podcast sehr ans Herz gelegt:
CRE 130 – Verteilte Versionskontrollsysteme

Links
git