Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] [gelöst] Git vs hg  (Read 7343 times)

Mr.Smith

  • Guest
[DE] [gelöst] Git vs hg
« Reply #15 on: 2011/04/21, 10:51:07 »
Habe hier https://bbs.archlinux.org/viewtopic.php?pid=918745 vielleicht noch was zum Thema "leere Verzeichnisse" gefunden.

Offline ralul

  • User
  • Posts: 1.814
Quantenphysik
« Reply #16 on: 2011/04/21, 13:31:00 »
Quote from: "DonKult"
Die Ansicht das ein leeres Verzeichnis etwas ist teile ich übrigens nicht. Für mich ist auch ein Verzeichnis nichts. Um mathematisch zu bleiben: Wie ein Punkt - zwar gut zu beschreiben, aber effektiv nicht vorhanden da keine Ausdehnung.
Imaginäre Zahlen (Wurzel aus minus Zwei) sind in Deiner Realität dann wohl auch nicht vorhanden? Aber ich habe gerade neulich irgendwo gelesen, dass man mit Hilfe der imaginären Zahlenmathematik die Wahrscheinlichkeit bestimmter Quanteneffekte, die tatsächlich in der Realität existieren, berechnen kann (leider vergessen, welcher Effekt). Quanteneffekte in der Physik sind nichts abstruses, hergeholtes: Ohne sie würden wir alle nicht existieren: Die Stabilität vieler Atome ist ohne den Quanteneffekt der Elektronen nicht vorstellbar. Nur weil Elektronen an vielen Stellen quantenmechanisch gleichzeitig sein können, fliegt uns unsere Welt nicht um die Ohren.

Eigentlich ist auch die einfachste Mathematik vollkommen imaginär: Ich habe in der Realität noch nirgendwo 1+1=2 beobachten können. Wenn du zB zwei Äpfel nimmst, sind sie nur vom abstrakten/imaginären Begriff Apfel her gleich. Sogar das UrKilo in Paris hat Abweichungen, die sich in 80 Milliaden Jahren durch die Halbwertzeit aller existierenden Materie noch verstärken. Schon von der Zeitachse her, die ja in der Realität, aber nicht in der Mathematik, dargestellt werden muss, kann es also nie 1+1=2 geben.

Quote
Verzeichnisse bilden eine Gruppierung für Dateien die den Inhalt tragen von denen es unterschiedliche Versionen gibt. Welchen Inhalt tragen den Verzeichnisse…?
Den Informationsgehalt, dass es eine Gruppierung ist, die auf bestimmte Weise mit anderen Gruppierungen verschachtelt sein soll. Ausserdem können Verzeichnisse Schreibberechtigungen tragen/verweigern. (Wie oft ist Dir schon ein Installationsscript gecrasht, weil es das angenommene Verzeichnis nicht gibt, es also keine Berechtigung gibt, etwas zu hinterlegen). Wenn Du das alles nicht als wesentlichen Inhalt sähest, verständest Du wohl nicht soviel von Linux :)
experiencing siduction runs better than my gentoo makes me know I know nothing

DonKult

  • Guest
Quantenphysik
« Reply #17 on: 2011/04/21, 18:22:16 »
Ich verstehe auch nix von Linux. Ich verstehe vielleicht einzelne Teile, aber alles? Es versteht ja auch keiner die Welt oder die Frauen… ;)

Und ja in meiner ealität gibt es keine Wurzeln aus negativen Zahlen. Dafür muss es schon omplex werden. :)
Was ich aber nicht verstehe ist was jetzt das gute ⅈ hier verloren hat. Mir ist bewusst, dass in ℂ die Wurzel aus -1 = ⅈ ist, kommt eben auf das Bezugssystem an. Die Sache ist aber: So eine komplexe Zahl hat ja einen Wert und stellt etwas da. Ein Punkt hat keinen Wert, er ist eine "Ortangabe" genau wie ein Verzeichnis. Daher gibt es ja auch Linien zwischen zwei Punkten und Punkte auf Linien, aber egal wie viele Punkte ich nehme, es wird doch nie eine Linie daraus weil ich nicht alle Punkte aufzählen kann durch die die Linie geht (immer vorausgesetzt wir unterhalten uns über ℝeale Linien, nicht über ℕatürlich, weil die wären ja abzählbar). Und in einem VCS in dem ich Dateien verwalte muss man sich eben spezielle Tricks einfallen lassen um bestimmte leere Verzeichnisse sichtbar zu machen (weil leere Verzeichnisse gibt es unendlich viele) genauso wie ich mir mit einem Punkt einen Wert markiere unter den vielen vielen Werten die möglich wären… (alle anderen Orte im Koordinatensystem sind ja auch "Punkte", die interessieren mich nur nicht).

Oder kurz und bündig gefragt: Welche unterschiedlichen Versionen kann ein Verzeichnis den durchlaufen ohne Dateien zu beinhalten? Richtig keine, den wenn man es umbenennt ist es ja nicht mehr das selbe Verzeichnis, ein mkdir würde reichen, was man dabei erhalten will ist ja der Inhalt - wenn aber keiner da ist…

Zugriffrechte sind übrigens nicht gerade der Freund eines VCSes - vor allem wenns portabel sein soll, aber das ist ein anderes Thema…

P.S.: Und mir schlagen keine Installationsscripte fehl, dpkg legt die für mich an (was übrigens auch Tricks benötigt um leere Verzeichnisse anzulegen). :)

P.P.S.: "… schwarze Löcher haben etwas sehr anziehendes." :lol:

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
[gelöst] Git vs hg
« Reply #18 on: 2011/04/21, 21:02:42 »
Auf das Argument, 'dpkg legt das für mich an' habe ich gewartet. und gehofft. Dann sind wir uns einig. An dieser Stelle kann dann auch gleich noch mal die übliche Warnung kommen, dass eine Versionsverwaltung eine Datensicherung nicht ersetzen kann. Der würde ich es Übelnehmen, wenn sie die Verzeichnisstrukturen nicht ordentlich und vollständig abbildet.
Ein Repository ist auch kein Ersatz für eine ordentliche Installationsroutine und wenn man auf solche Sachen Wert legt, könnte auch hier ein Hook helfen, der nach dem Checkout eines Repos noch ein Post-checkout-script abarbeitet.

Ich hab noch einen zum Thema gefunden: mercurial kann zwar keine leeren Verzeichnisse, aber man kann ja einen Hook setzen, der einem eine .hgignore in die leeren Verzeichnisse schreibt. Dann steht eine leere Datei in einem sonst leeren Verzeichnis. Muhaha ;)

Wer noch richtig Spass in den Backen hat und sich mal einen wirklich blöden Gesichtsausdruck anschauen will, dem sein dieser Selbstversuch empfohlen:
Man nehme ein leeres hg-repo und lege darin ein Verzeichnis an. Man wechsele in das Verzeichnis und lege 2 Dateien (z.B. mit touch, vi oder nano) an. Dann ein Commit.
Code: [Select]

test2$ ls -a
.  ..  a1  a2  .hg

test2$ mkdir test3

test2$ mv a1 a2 test3; ls -a
.  ..  .hg  test3

test2$ hg add
Füge test3/a1 hinzu
Füge test3/a2 hinzu

test2$ hg commit
test3/a1
test3/a2
Änderungssatz 1 erzeugt:66e0be5705a3

test2$ cd test3; hg mv * ..
Verschiebe a1 nach ../a1
Verschiebe a2 nach ../a2

test2$ cd ..; ls -a
.  ..  a1  a2  .hg

test2$ hg add; hg commit -m 'willi'
a1
a2
Änderungssatz 2 erzeugt:f6737b770cb4



An dieser Stelle hatte ich leichten Schaum vor dem Mund und hab abgebrochen. Wzt ist mein test3. Auch wenn das eventuell nicht mit versioniert wird, das geht ein wenig zu weit, da kann ich nicht mehr drüber lachen. Obwohl es eigentlich ja nur konsequent ist ...

Bitte jetzt einen Blick in den Spiegel nicht vergessen ;)
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline ralul

  • User
  • Posts: 1.814
Quantenphysik
« Reply #19 on: 2011/04/21, 21:44:25 »
Für die Instanz, die Verzeichnisse anlegen darf, gibt es unendlich viele Verzeichnisse, für eine Instanz, die keine Verzeichnisse anlegen kann (zB touch), gibt es nur die endliche Menge real existierender, auch leerer Verzeichnisse, die es mit den richtigen Berechtigungen erlauben, Dateien anzulegen.

Die unterschiedlichen Versionen von Verzeichnissen müssten die unterschiedlichen Unterverzeichnisse und ihre Berechtigungen angeben. Integriert in git müsste auf diese Weise nur ein nicht leeres Verzeichnis Versionsdaten speichern: Immer der Parent speichert die relevanten Daten. Dann wäre ein solches VersionsConstrolSystem auch eine richtige Backup Lösung.
experiencing siduction runs better than my gentoo makes me know I know nothing

Mr.Smith

  • Guest
Re: Quantenphysik
« Reply #20 on: 2011/04/21, 23:35:12 »
Quote from: "ralul"
Quanteneffekte in der Physik sind nichts abstruses, hergeholtes: Ohne sie würden wir alle nicht existieren: Die Stabilität vieler Atome ist ohne den Quanteneffekt der Elektronen nicht vorstellbar. Nur weil Elektronen an vielen Stellen quantenmechanisch gleichzeitig sein können, fliegt uns unsere Welt nicht um die Ohren.

Wenn ich in der Schule aufgepasst habe besagt die Quantenmechanik doch, dass Atome, Elektronen und andere Quantenteilchen (Quarks & Co) sowohl Teilchen- als auch Welleneigenschaften besitzen. Ihre Zukunft ist unbestimmt und wenn man sie zum Zeitpunkt x misst ist das Ergebnis nicht präzise. Oder? Ist natürlich sehr abstrakt das in Relation zu leeren Verzeichnissen zu stellen.

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
Re: Quantenphysik
« Reply #21 on: 2011/04/22, 00:12:42 »
Das so eventuell beschriebene Phänomen?? soll wahrscheinlich auf die Heisenbergsche Unschärferelation hinauslaufen - den Zusammenhang zu Dateien und Verzeichnissen kann ich da auch nicht nachvollziehen.

Was ich auch nicht nachvollziehen kann, ist die Diskussion pro- und kontra. Es wäre schön, vor allem im Hinblick der Beschreibung von git durch Linus als Bateisystem, wenn man leere Verzeichnisse speichern könnte. Das würde einem Dateisystem gut zu Gesicht stehen. ;) Bestimmten Argumentationen kann ich nicht ganz folgen. Ein Verzeichnis ändert sich nicht. Es existiert oder es existiert nicht. Das ist eigentlich ganz einfach. Nur dass diese eigentlich triviale Sache nicht ganz so trivial abzuhandeln ist - aber das wurde ja auch schon angesprochen.

Mal was offizielles dazu
https://git.wiki.kernel.org/index.php/GitFaq
Quote from: "https://git.wiki.kernel.org/index.php/GitFaq"

Currently the design of the git index (staging area) only permits files to be listed, and nobody competent enough to make the change to allow empty directories has cared enough about this situation to remedy it.

Directories are added automatically when adding files inside them. That is, directories never have to be added to the repository, and are not tracked on their own.

You can say "git add <dir>" and it will add the files in there.

If you really need a directory to exist in checkouts you should create a file in it. .gitignore works well for this purpose (there is also a tool MarkEmptyDirs using the .NET framework which allows you to automate this task); you can leave it empty or fill in the names of files you expect to show up in the directory.

Wir können also in alle Ewigkeit debattieren, ob richtig oder falsch. Entweder einer von uns ist kompetent genug und implementiert es - dann muss nur noch der Rest der Entwickler überzeugt werden, dass die Implementation richtig, geil und ein must have ist und nichts kaputt macht. Dann wird das wahrscheinlich noch ein oder zwei Jahre getestet. Dann könnte dieses Feature in git erscheinen. Ich habe (leider oder zum Glück) die Voraussetzungen zu diesen Änderungen nicht. Ich bin dazu nicht kompetent genug, spreche kaum C und perl ist für mich eine unauflösbare Form der Kryptographie. Ich bleib dann mal bei .gitignore und vielleicht einem hüschen hook dazu.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen