Git-freundliches Tabellenformat? [geschlossen]


35

Wir versuchen, unseren Projektdokumentationsprozess von Google Documents auf eine Reihe von selbst gehosteten Git-Repositorys zu verlagern.

Textdokumente sind Git-freundlich genug, da wir normalerweise keine ausgefallene Formatierung benötigen. Wir konvertieren einfach alles in beispielsweise Multimarkdown mit der Option, LaTeX für komplexe Fälle einzubetten.

Aber Tabellenkalkulationen sind eine ganz andere Geschichte ... Gibt es ein Tabellenkalkulationsformat, das für Versionskontrollsysteme geeignet ist (und das vorzugsweise so gut lesbar ist wie Markdown)?

"Freundliches Format": Git funktioniert gut mit dem Format (es funktioniert nicht mit XML) und es generiert für Menschen lesbare Diffs ( zusätzliche Konfiguration mit externen Tools ist in Ordnung).

Offensichtlich erlauben Markdown-Varianten das Erstellen statischer Tabellen, aber ich möchte gerne Dinge wie SUM()etc ... verwenden können. (Beachten Sie, dass CSV das gleiche Problem hat.) WYSIWYG ist in Ordnung, aber eine anständige Editor- / Tool-Unterstützung wäre in Ordnung nett.

Update: Bitte nur Linux-freundliche Antworten. Kein MS Office Zeug.


2
Was genau meinst du mit "git-friendly"? Ich habe git nicht oft verwendet, aber es verarbeitet Binärdateien in Ordnung und sie können wie jede Textdatei versioniert und mit Tags versehen werden. Sie können einfach nicht unterschieden werden, aber das ist möglicherweise nicht notwendig.
Thomas Owens

Freundlich: Ich kann Unterschiede sehen und leicht herausfinden, was geändert wurde. Die Frage wurde aktualisiert, um dies widerzuspiegeln. BTW, AFAIR, git können bei korrekter Konfiguration Unterschiede für einige Binärformate anzeigen (natürlich mit Hilfe externer Tools).
Alexander Gladysh

Ich kann nicht glauben, dass Sie das niemand gefragt hat, aber warum müssen Sie Kalkulationstabellen im Projekt-Repository speichern? Wofür sind die Tabellenkalkulationen? In der Regel sind sie so komplex, dass Sie sie an einem anderen Ort benötigen, und in der Regel werden sie von Geschäftsleuten verwendet ...
Rudolf Olah

2
Diese Frage scheint nicht zum Thema zu gehören, da sie sich nicht auf die Programmierung bezieht.

Eine Alternative zum Suchen oder Erstellen eines völlig neuen Formats, das für reguläre Diffs geeignet ist, ist das Suchen oder Erstellen eines Tools zum Vergleichen regulärer Tabellenkalkulationen und zum Erzeugen von Textausgaben. Genau das leistet die Open Source-Software ExcelCompare für Excel, OpenDocument usw. Und diese Art der Anzeige der Frage eignet sich sogar für eine Website mit Fragen und Antworten zur Softwareentwicklung :) Siehe Versionskontrolle - Wie kann ich zwei Tabellen unterscheiden? - Stack Overflow und die Software selbst ist bei na-ka-na / ExcelCompare
Nealmcb

Antworten:


12

Sie können auch libreOffice / open-office-tabellenkalkulation-non-zip-xml-dateiformat "* .fods" verwenden, bei dem es sich um reines xml handelt. Der Kommentar von @glenatron gilt auch für dieses Format.

Das Standard-Open-Office-Tabellenkalkulationsformat "* .ods" ist XML-komprimiert und nicht für Git geeignet (ähnlich wie bei @ Egryan / @ emuddudley answer).


Ich möchte XML vermeiden. Die Frage wurde aktualisiert, um dies widerzuspiegeln.
Alexander Gladysh

2
1. LibreOffice funktioniert tatsächlich unter Linux. 2. Nein, XML ist kein MS- Bullshit. XML und Git funktionieren jedoch nicht gut zusammen (siehe @ glenatrons Kommentar oben).
Alexander Gladysh

3
@ LazyBadger: DiffDog: keine Linux-Unterstützung, Closed-Source, 500 $ / Benutzer. Entschuldigung, aber ich werde weitergeben.
Alexander Gladysh

2
@AlexanderGladysh - Meld, xmldiff oder Wie kann ich zwei XML-Dateien unterscheiden? Thema auf SU
Lazy Badger

1
@LazyBadger: Beachten Sie, dass die 3-Wege-Zusammenführung wichtiger ist als das Unterscheiden. (Google findet jedoch mehrere geeignete Linux-Befehlszeilen-Tools zum Zusammenführen in drei Richtungen für XML.) Ich werde diese mit LibreOffice-Arbeitsblättern vergleichen, danke.
Alexander Gladysh

7

Dies passt möglicherweise nicht zu Ihren Anforderungen, aber möglicherweise zu denen eines anderen. Der Org-Modus für Emacs enthält table.el, zusammen mit den besonderen Verbesserungen des Org-Modus, eine äußerst robuste Lösung für Tabellenkalkulationen, die alle im Nur-Text-Format vorliegen. Weitere Informationen (weitaus mehr als der Umfang dieser Website) sind auf der Website und im Handbuch von Org-mode verfügbar , insbesondere in der Tabellenkalkulationsanleitung .

Bildbeschreibung hier eingeben


4

Was ist mit pyspread ? Es ist leistungsstark und kommt mit einer schönen GUI.

Laut der Seite Erste Schritte :

Das pys-Dateiformat hat sich in Version 0.2.0 geändert. Es ist jetzt eine bzip2-ed-Textdatei mit der folgenden Struktur:

[Pyspread-Dateiversion speichern]

0,1

[gestalten]

1000 100 3

[Gitter]

7 22 0 'Testcode1'

8 9 0 'Testcode2'

[Attribute]

[] [] [] [] [(0, 0)] 0 'textfont' u'URW Chancery L '

[] [] [] [] [(0, 0)] 0 'Punktgröße' 20

[row_heights]

0 0 56,0

7 0 25,0

[col_widths]

0 0 80,0

[Makros]

Makrotext

Die Tatsache, dass es sich um bzip2-ed handelt, hilft nicht, aber zumindest können Sie auf einen gut lesbaren Text zugreifen.

Lizenz ist GPLv3.


4

CSV (kommagetrennte Werte)

Wenn Sie nur mit Daten arbeiten, ist dies wahrscheinlich das einfachste und am häufigsten unterstützte Format.

Sollte das Leben leichter machen, wenn Sie zwischen den Versionen unterscheiden möchten.

Oh, und Google Docs unterstützt den CSV-Import / Export.

Aktualisieren:

Dann schreiben Sie einfach ein Google Apps-Skript, um die Formeln beim Export zu präzisieren und beim Import umgekehrt vorzugehen. Sie müssen etwas Einfallsreichtum verwenden, da das gesuchte Format nicht vorhanden ist.


2
Leider unterstützt CSV keine Formeln wie SUM()etc.
Alexander Gladysh

Ich habe die Frage aktualisiert, um dies ausdrücklich zu sagen.
Alexander Gladysh

1
@AlexanderGladysh, eigentlich würde ich sagen, dass CSV mit Gleichungen gut umgehen kann, wenn Sie das richtige Format auswählen. Das Problem ist, dass Sie einen Reader so konfigurieren müssen, dass er diese Gleichungen analysiert und auswertet.
zzzzBov

Emacs CSV-Modus könnte ein schönes Werkzeug sein. Ich betrachte auch Gnumerics für die leichte Bearbeitung von CSVs. Habe diese noch ausgiebig probiert.
Brady Trainor

1

Ich weiß, dass Microsoft Office 2007 und höher standardmäßig ein günstiges XML-Format verwenden, wenn sie speichern. Das sollte also für Git freundlich sein. Open Office speichert auch in einem XML-Format, wenn Sie eine Open Source-Lösung verwenden möchten. Da ein XML ein Textformat ist, sollte git in der Lage sein, es ziemlich gut zu verarbeiten

Da Sie es aus Google Documents verschieben, können Sie es herunterladen, wenn geöffnete Dokumente auf XML-Basis vorliegen.

Bearbeiten

Da Sie eine Nicht-Microsoft / XML-Lösung wünschen, die Sie jederzeit speichern können, gibt es eine CSV in Open Office, obwohl ich nicht sicher bin, wie viel Funktionalität Sie verlieren, wenn Sie in diesem Format speichern.


3
Ich habe einige Probleme mit Git gesehen, die mit XML-Formaten nicht einverstanden sind oder diese auf eine Weise zusammenführen, die nicht mit dem Format des Dokuments übereinstimmt. Ich glaube, dass dies mit einem XML-spezifischen Merge-Tool umgangen werden kann, habe dies aber noch nicht in der Praxis gesehen.
Glenatron

4
Das Excel-Arbeitsmappenformat (* .xlsx) ist eine Sammlung von XML-Dateien in einem ZIP-Container. Sie können XML Spreadsheet 2003 (* .xml) zum Speichern in einer einzelnen XML-Datei auswählen, es wird jedoch nur eine Teilmenge der Excel-Funktionen unterstützt.
M. Dudley

1
XML würde laut @glenatron-Kommentar oben nicht funktionieren (ich selbst hatte auch solche Probleme). Außerdem: XML-Diffs sind in IMO nicht vollständig lesbar. Die Frage wurde aktualisiert, um dies widerzuspiegeln.
Alexander Gladysh

Nun, CSV unterstützt keine Formeln. Ich kann dann einfach Markdowns Tabellen verwenden. Die Frage wurde aktualisiert, um dies widerzuspiegeln.
Alexander Gladysh

0

Dies ist möglicherweise nicht genau das, was Sie wollen. Ich glaube, mit libre office können Sie auf externe Dateien verweisen. Sie könnten eine Kalkulationstabelle haben, die Sie wie eine Datenbank behandeln, und eine statische libre-Datei, die Ihre Schnittstelle wäre. Sie würden den einfachen Zugriff auf Ihre versionierten Dateien verlieren, wenn Sie sie nicht zurückrufen, aber es würde funktionieren.

Ein weiteres ziemlich großes Problem dabei wäre, dass es eine Richtung ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.