dWing — die Welt ist nicht gerecht

sign in

Mercurials Hass Index?

Anstatt das udev Problem zu lösen, ist Scott James Remnant damit beschäftigt über Versionskontrollsysteme zu fluchen.

Er trifft es sehr gut, wenn er sagt, dass er solche Systeme gar nicht benutzen will. Aber es ist ein nötiges Übel wenn man Software entwickelt.

Er nennt eine Liste von Aktionen, für die ein Softwareentwickler ein Versionskontrollsystem braucht. Je mehr überflüssige Kommandos es gibt oder je mehr zusätzliche Parameter man den Kommandos mitgeben muss, umso höher steigt der Hass Index für das jeweilige System.

Ganz besonders verhasst ist für ihn das Kommando add. Er will nicht jede neue Datei einzeln hinzufügen müssen. Ich muss auch sagen, dass dafür ein Kommandozeilen System auch wenig Benutzerfreundlich ist, wenn man jeden Dateinamen einzeln eintippen muss. Dafür ein GUI nützlicher.

Ich persönlich habe sehr viele Dateien im Ordner der Versionskontrolle, die ich nicht versionieren will, von daher bin ich persönlich dafür ein add Kommando zu haben.

Folgende Aktionen nennt er als relevant: get, commit, push, pull, review, merge, log, diff und show.


Wenn ich mir seine Erläuterungen durchlese, merke ich, das Mercurial auf seiner Hass Liste eigentlich nicht sehr weit oben sein dürfte, denn für die genannten Aktionen stehen einfache und intuitive Kommandos zur Verfügung.

Get - Eine Kopie eines Quellcodes erstellen, um daran Veränderungen vorzunehmen. hg clone http://hg.mozilla.org/mozilla-central

Commit - Die aktuellen Änderungen speichern. hg commit -m"Kommentar". Falls nicht jede Datei einzeln hinzugefügt werden sollte, benutzt man hg commit -A -m"Kommentar", das ist nicht wirklich viel Aufwand.

Push - Die eigene Kopie des Quellcodes veröffentlichen. Das ist leider ein komplizierteres Thema. Ein hg push funktioniert nur, falls bereits ein Server installiert ist. hg clone ./ ssh://swatinem.de/var/www/hg/bla schiebt die Änderungen auf einen entfernten Server. Dennoch braucht man dafür leider einen konfigurierten Apache. hg serve erstellt temporär einen eigenen Webserver. Nun muss man allerdings die eigene IP benutzen um an die Daten zu kommen.

Pull - Das ist ein einfaches hg pull -u. Leider wird es komplizierter, sobald man selbst Änderungen seit dem letzten pull gemacht hat. Dann wird ein hg pull && hg merge daraus.

Review - Ein hg incoming listet die Änderungskommentare auf. hg incoming -p zeigt auch die Änderungen selbst an.

Merge - das selbe wie Pull eigentlich.

Log - hg log oder hg glog

Diff - hg diff

Show - hg export tip, wobei tip immer die aktuellste Version ist. Oder eben eine andere Version.


Ganz einfach ist Mercurial nun auch wieder nicht. Aber ich schätze mal, dass man gut damit zurecht kommen kann.

Ich benutze Mercurial leider in einem komplizierteren Szenario. Ich arbeite mit Patches, die ich zwischendurch ändern, aufsplitten und zusammenführen will. Außerdem will ich die Patches immer aktuell haben. Mercurial Queues, mq, macht es mir da nur bedingt einfach. Vor allem die Aufgabe Patches aktuell zu halten ist ein sehr komplizierter Prozess und sorgt immer wieder für Ärger.

hg.swatinem.de

Hm irgendwie habe ich es verschlafen das SourceForge ihren SSH Service ganz eingestellt haben. Leider hat dadurch seit einiger Zeit mein Mercurial Web Repository auf meinem SourceForge Account nicht mehr funktioniert.

Jetzt habe ich aber etwas Arbeit investiert und Mercurial auf meinem VServer selbst kompiliert und installiert. Somit sind meine Projekte wieder erreichbar, diesmal über hg.swatinem.de. Dank neuestem Mercurial sogar mit dem sexy neuen paper Design, der auch mit einem schönen graph-view daherkommt.

Leider wollte aber git nicht richtig funktionieren auf meinem VServer, daher konnte ich leider HTMLPurifier nicht auf die aktuellste Version bringen. Schade. Vielleicht klappt ein andermal.

Online Desktop

Schon seit einiger Zeit ist der Begriff online Desktop durch die Blogs gewandert. Mal ganz ehrlich: Ich habe es mir nie ernsthaft durchgelesen.
Aber seitdem ich einen Laptop habe und ständig Daten zwischen Laptop und Desktop abgleichen muss bzw manche Daten nur am Laptop habe denke ich etwas über diesen Begriff nach. Erst recht seitdem Googlemail neuerdings Imap unterstützt. Leider ist Imap auf meinem Konto noch nicht verfügbar aber ich warte sehnsüchtig drauf.
Und heute als ich Backups meiner wichtigen Daten erstellt habe, habe ich mir gedacht ich muss einfach selbst was zum Thema online Desktop schreiben.

So wie z.b. Imap funktioniert. Die Nachrichten liegen alle auf dem Server. Der Server hat im Idealfall riesig viel Speicherplatz der durch RAIDs auch sicher sein sollte. Das Ziel von Imap ist es, das mehrere Clients (z.b. Desktop und Laptop) gleichzeitig auf die Daten zugreifen können und Änderungen an den Daten direkt auf der jeweils anderen Maschine sichtbar sind, und selbstverständlich am zentralen Server sicher gespeichert sind.
Ich denke schon seit einiger Zeit über ein NAS nach, also über einen Zentralen Dateiserver auf den ich per Desktop oder Laptop zugreifen kann. Idealerweise sollte ich auf diesen auch aus dem Internet zugreifen können wenn ich mit meinem Laptop unterwegs bin.
Ich habe mir heute auch ein Backup von meinen Privatfotos gemacht und festgestellt das diese verdammt unübersichtlich sortiert sind. Ich bräuchte vielleicht eine Foto verwaltungs Software. Soetwas wie Fspot oder Picasa. Nur das Problem ist wieder das Fspot nur in Linux funktioniert und Picasa geschlossene Software ist. Idealerweise sollten meine Fotos auch wieder überall verfügbar sein und Änderungen sofort übernommen werden. Ich würde gerne Urlaubsfotos direkt dort vor Ort über meinen Laptop in meine Fotoverwaltung eingliedern, taggen usw. Die Fotos sollten dann zuhause für mich verfügbar sein und vielleicht sogar für Verwandte. Ha, sowas gibt es schon: Flickr oder Picasa. Aber diese Lösungen sind nicht genug in den Desktop eingebettet.

Auch meine Profile von z.b. Firefox sollten automatisch angeglichen werden zwischen Laptop und Desktop. Und als ich darüber nachgedacht habe ist mir auch wieder eingefallen wie super OpenID in dieses ganze Konzept passt.

Oh man ich bin verwirrt, ich kann meine Gedanken nicht mehr normal gliedern, ich schreibe nur noch zusammenhangslosen Müll... :D

So viel Zeit, so viele Ideen, aber so wenig Tatkraft

Ach es gibt so viel auf der Welt was ich alles tun könnte. So viele Ideen.
Gestern habe ich ein wenig mit Mercurial und SVG herumgespielt. Ich wollte eine art branchview in SVG machen. Hat allerdings nicht so sehr funktioniert. Und wo ich dabei war habe ich auch wieder festgestellt wie kacke es ist, dass Firefox keine Werkzeuge hat um SVGs beliebig zu vergrößern und es hat auch den Bug, das keine Scrollbalken angezeigt werden wenn das SVG zu groß ist. Ich habe vor einiger Zeit eine Extension dafür gefunden. Pan&Zoom. Habe es kurz ausprobiert aber die Extension ist Schrott. Es wird eine riesen Große Leiste angezeigt mit hässlichen Icons, die auch dann sichtbar ist wenn man sich kein SVG anschaut.
Und ich habe mir überlegt: Eigentlich kann ich sowas doch selbst machen. Warum auch nicht. Eigentlich muss ich mir nur den Quellcode der Extension anschauen und etwas modifizieren damit daraus das wird was ich will. Ich weiß, das ich es könnte. Also meine eigene Extension basteln.
Aber dann schaltet sich wieder die Depression ein. Das ständige Gefühl etwas nicht zu können. Die ständig gegenwärtige Angst davor zu versagen. Eigentlich könnte man sich doch denken das diese Angst gut ist. Das es dazu führt das man die Dinge besser macht und besser aufpasst. Oder das die Aggression gegen sich selbst dazu führt das man offensiv Dinge anpackt um mit denen fertig zu werden. Aber bei mir ist es genau das Gegenteil. Es führt bei mir zum völligen Stillstand.
Ich habe mir so viel vorgenommen. Jetzt dieses Mercurial branchview auf SVG, eine verbesserte Pan&Zoom Extension. Sowieso wollte ich dWing in Richtung Typografie verbessern wie ich es neulich erwähnt habe. Sowieso habe ich einen weiteren Entwicklungszweig für dWing aufgemacht um die neue Bilderseite zu entwickeln. Habe ein wenig gemacht dazu aber ist auch nicht viel draus geworden. Außerdem habe ich mir irgendwann vorgenommen dWing von MySQLi auf PDO umzustellen. Aber das ist auch nur eine Idee, eine Vision, ein Traum, der scheitern wird weil ich einfach nicht das habe was dazu nötig ist um es einfach durchzuziehen. I don't have what it takes!
Und so ist das einzige was ich den ganzen Tag lang mache Lost schauen und NS spielen. Und mich selbst bemitleiden und im selben Moment hassen dafür das ich einfach so bin wie ich bin.

Sommer of Code Projekte veröffentlicht

Auf der Google Sommer of Code Seite sind nun die akzeptierten Studentenprojekte veröffentlicht worden.
Mit dabei ist eine lang ersehnte Funktion in Firefox. Nämlich auch nach Browserneustarts weiterlaufende Downloads.
Ein Bazaar Projekt will Shell Extensions einbauen was ich schon mehrmals erwähnt habe. Nur das ich jetzt Mercurial benutze und dies leider nicht dabei ist und soweit ich weiß keine Shell Extension geplant hat. :(
Für Wine wird die Direct3D 10 Implementierung begonnen.
Und ganz besonders hat mich das Projekt zum Einbau von Input/Output hotplugging begeistert. Diese Utopische Welt, die in der Projektbeschreibung beschrieben wird, will ich auch gerne erleben. Also so viel dazu. Ich hoffe das viele Projekte erfolgreich werden, vor allem diejenigen die mich interessieren und hoffentlich wird der Sommer etwas interessanter wenn ich diese Projekte weiter verfolge. :D

older posts