Freitag, 13. Juni 2014

tiff Reparatur - Helferlein

In einem früheren Beitrag »baseline TIFF« hatte ich den Aufbau von TIFFs beschrieben.

Eines der häufigsten Probleme, die bei der Validierung von TIFFs auftauchen, sind falsche Datum-Zeichenketten im datetime-Tag.

Unter https://github.com/SLUB-digitalpreservation/fixit_tiff findet ihr ein Werkzeug, welches diese Art der Probleme versucht zu beheben.

Zur Zeit werden die folgenden falschen Datums-Zeichenketten erkannt und korrigiert:

  • '18.03.2010 09:59:17' => '2010:03:18 09:59:17'
  • '2010-03-18 09:59:17' => '2010:03:18 09:59:17'
Das datetime-Tag ist laut Standard spezifiert als folgende Zeichenkette: 'YYYY:MM:DD hh:mm:ss' wobei
  • YYYY dem vierstelligen Jahr,
  • MM dem Monat
  • DD dem Tag
  • hh den Stunden
  • mm den Minuten
  • ss den Sekunden
entspricht und ggf. führende Nullen gesetzt werden.
Das Tool kann auch alle Tags, die nicht zum baseline Profil gehören aus den TIFFs entfernen.

Über Feedback würde ich mich freuen. :)



Freitag, 6. Juni 2014

Exportieren lokales subversion repository nach github

Warum?

Da ich intern bisher auf subversion entwickle, Code aber auf GitHub stellen möchte, brauche ich eine¹ Möglichkeit diese Projekte möglichst kompatibel nach git zu exportieren. git-svn erlaubt diese Nutzung und erhält die Versionshistorie. Eine Re-Integration nach subversion ist ebenfalls möglich.

Die Infos stammen zum Teil aus Tutorial zu git-svn unter http://viget.com/extend/effectively-using-git-with-subversion.

Eine kleine, nette Einführung zu git gibt es unter http://rogerdudler.github.io/git-guide/index.de.html

¹ Erm, ja. Github kann auch via subversion Repositories verwalten. Allerdings müsste man dann das Projekt komplett dort hosten. Die obige Lösung umgeht dies.


git-svn installieren

git-svn ist unter Debian im gleichnamigen Paket zu finden und mittels

$> aptitude install git-svn
zu installieren.
Es ist ratsam vor der ersten Verwendung im .bashrc den Suchpfad für git-svn zu hinterlegen, da Debian das Programm unter /usr/lib/git-core/ installiert.


Exportieren von subversion in git Arbeitsverzeichnis


Das jeweilige Projekt, welches exportiert werden soll, sollte vollständig auf dem Subversionserver vorliegen. Sinnvoll ist es über die URL des Projektes zu gehen. Im Beispiel wäre das https://localhost/svn/trunk/fixit/fixit_tiff, welches auf das fixit_tiff Repository zeigt.

Mit folgendem Kommando erzeugt man im /tmp Directory das neue Git-Arbeitsverzeichnis für fixit_tiff:


$> mkdir /tmp/git
$> cd /tmp/git
$> /usr/lib/git-core/git-svn clone https://localhost/svn/trunk/fixit/fixit_tiff ./fixit_tiff
Zur Überprüfung können wir mit git log anschauen, ob unsere History etc. korrekt übernommen wurde:

$> cd fixit_tiff
$> git log 
commit 92f8cf068d7bdf8e2a39aab8e3db31f3c055bcd4
Author: romeyke <romeyke@c63e1d0e-0205-4395-96c5-23d0ee883611>
Date:   Wed May 28 15:17:12 2014 +0000

    - compiles with debugging code
    - added TIFFGetAllTagListCount () because TIFFGetTagListCount() only works w
    - added TIFFGetAllTagListEntry () because TIFFGetTagListEntry() only works w
    - added print_baseline_tags()
    - added print_required_tags()
    - added check_required()
    - check_*() opens tif-files only in read mode
    - improved logic, because we call check*() explicitely, also after repair
    
    git-svn-id: https://localhost/svn/trunk/

commit dd30cfa15101c61111ce62f6e83b0bfee3cb10bb
…

Übertragen auf github

Auf github sollte schon ein entsprechendes Repository angelegt sein. Zuerst müssen wir git nun mitteilen, daß wir auf einen anderen Master gehen:

$> export yourusername=maxmustermann
$> export yourreponame=fixit_tiff
$> git remote add origin https://github.com/${yourusername}/${yourreponame}.git

Mit folgendem Kommando vollführen wir dann den Export aus unserem obigen git-Arbeitsverzeichnis:

$> git push origin master
Bei Problemen schlage man unter http://stackoverflow.com/questions/12799719/how-to-upload-a-project-to-github nach (Lächeln)

Meine Repos sind unter https://github.com/art1pirat/ zu finden