Sourcen verewigen für Tutorial

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Sourcen verewigen für Tutorial

Beitrag von Mathias »

Da ich an einem Tutorial am erstellen bin, möchte ich die Source für andere User verewigen.
Momentan liegen die Sourcen auf einer Gratis-Homepage. Nur das Problem dabei, wen man dort längere Zeit nichts mehr macht, werden die Daten dort gelöscht.

Ich habe mal GIT angeguckt, dies ist aber sehr komplex, nur um eine ZIP-Datei abzulegen.
SourceForge habe ich auch angeguckt, aber dort muss man sich irgendwie als Firma registrieren.

Hat jemand eine gute Idee ?

Der Link zum Tutorial:
viewtopic.php?f=29&t=11373
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 4864
Registriert: Fr 8. Apr 2011, 09:01

Re: Sourcen verewigen für Tutorial

Beitrag von wp_xyz »

github oder sourceforge. Dass sourceforge nur Firmen nimmt, ist falsch. Solange (bei beiden Hostern) die Quelltexte OpenSource sind, ist der Speicher kostenlos. Wenn du auf Windows wärst, würde ich sagen, installiere dir TortoiseGit oder TortoiseSvn, dann geht alles mit ein paar Klicks. Auf Linux musst du ein paar git und svn Befehle lernen - aber das kannst du doch.

Eine zip-Datei würde ich da nicht hochladen, sondern die einzelnen Projekte mit den Einzeldateien. Damit kannst du jederzeit zu vorigen Versionen zurückgehen.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Sourcen verewigen für Tutorial

Beitrag von Mathias »

Eine zip-Datei würde ich da nicht hochladen, sondern die einzelnen Projekte mit den Einzeldateien. Damit kannst du jederzeit zu vorigen Versionen zurückgehen.

Das mit den Einzeldateien fände ich auch besser.
Auf SourceForge sind meistens ZIP oder Pakete vorhanden, und auf GIT einzel Dateien.

Wen ich die GIT von fpcupdelux angucke, dies sieht sehr sauber aus. Als Anwender kann man dann das Ganze auch als ZIP haben.

Wenn du auf Windows wärst, würde ich sagen, installiere dir TortoiseGit oder TortoiseSvn, dann geht alles mit ein paar Klicks.
Vielleiocht geht es mit Wine oder in der VB.

Jetzt habe ich es gerade gesehen, mit SVN wäre es eine dritte Variante.
SVN habe ich schon mehrfach verwendet, zB. um die Lazarus-Source zu saugen.
Geht dies mit dem Upload etwa gleich einfach ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Sourcen verewigen für Tutorial

Beitrag von mse »

SVN würde ich nicht verwenden, da dies ein zentrales Repository, welches immer erreichbar ist, bedingt. In git sind alle clones (= Repositories) gleichberechtigt. git ist auch gar nicht kompliziert wenn man das Prinzip verstanden hat und keine ausgefallenen Sachen macht, siehe hier:
viewtopic.php?f=53&t=10809
Als git-hoster empfehle ich GitLab:
https://gitlab.com/users/sign_in
GitLab erlaubt auch kostenlose private (=nicht öffentlich zugängliche) Repositories und unterliegt nicht USA-Recht.
Bei allfälligen Problemen frage einfach hier.

mischi
Beiträge: 206
Registriert: Di 10. Nov 2009, 18:49
OS, Lazarus, FPC: macOS, 10.13, lazarus 1.8.x, fpc 3.0.x
CPU-Target: 32Bit/64bit

Re: Sourcen verewigen für Tutorial

Beitrag von mischi »

mse hat geschrieben:SVN würde ich nicht verwenden, da dies ein zentrales Repository, welches immer erreichbar ist, bedingt. In git sind alle clones (= Repositories) gleichberechtigt. git ist auch gar nicht kompliziert wenn man das Prinzip verstanden hat und keine ausgefallenen Sachen macht, siehe hier:
viewtopic.php?f=53&t=10809
Als git-hoster empfehle ich GitLab:
https://gitlab.com/users/sign_in
GitLab erlaubt auch kostenlose private (=nicht öffentlich zugängliche) Repositories und unterliegt nicht USA-Recht.
Bei allfälligen Problemen frage einfach hier.

Meine Erfahrungen mit git sind im Vergleich zu svn ziemlich schlecht. Für einige Aktionen braucht man mehr Befehl als für svn. Ich habe auch ein besonders Talent das Repository in einen Zustand zu bringen, aus dem ich mit den normalen Befehlen nicht weiterkomme, die Fehlermeldungen auch überhaupt nichts bringen. Die grafischen Interfaces haben da auch nicht geholfen. Erstmal google anschmeißen, ist maximal nervig. Bei svn gibt es mit dem svn book eine deutlich bessere Dokumentation. Viele Aktionen in git liegen funktional nahe aneinander, wie z. B. clone und fork, commit und push, merge und rebase. Da ist es als Anfänger nicht einfach, die auseinander zu halten und das richtige zu nehmen. Die Syntax von git ist suboptimal, usw. (https://stevebennett.me/2012/02/24/10-t ... -about-git)
Das zentrale Repository ist für mich auch kein Problem mehr, seit es im ICE WLAN gibt. Bleibt zwar noch die Regionalbahn, aber. Leider ist das Interface von Sourceforge von Version zu Version zwar vielleicht hübscher, aber funktional immer schlechter geworden.
MiSchi macht die fink-Pakete

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Sourcen verewigen für Tutorial

Beitrag von mse »

Da muss irgend etwas gründlich schief gegangen sein. Hast du denn das git Grundprinzip mit den SHA's verstanden?
Die offizielle git Dokumentation ist hier:
https://git-scm.com/docs
Ein "git book" gibt es auch:
https://git-scm.com/book/en/v2

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Sourcen verewigen für Tutorial

Beitrag von Mathias »

Ich hatte es vor einem ½ Jahr schon mal mit GIT probiert.

Als Notiz habe ich folgende Befehle aufgehoben.

Code: Alles auswählen

git remote add origin https://github.com/sechshelme/Lazarus-O ... torial.git
git add .
git commit
git push -u origin master


Nur, wen ich es nochmals probieren will, kommt bei der ersten Zeile schon ein Fehler. /n4800 ist ein Mount-Point zu meiner NAS, auf der sich auch die Daten befinden.

Code: Alles auswählen

$ git remote add origin https://github.com/sechshelme/Lazarus-O ... torial.git
fatal: Not a git repository (or any parent up to mount point /n4800)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Ist dies der falsche Weg um die aktuelle Version hoch zu laden ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Sourcen verewigen für Tutorial

Beitrag von mse »

Ja, zuerst musst du ein lokales git repository erzeugen. Da das repository auf GitHub schon existiert, erzeuge eine lokale Kopie in ein leeres Verzeichnis (<meingitrepo>).

(Punkt am Ende nicht vergessen!)
Oder in MSEgit:
- 'File'-'Clone git repo'.
http://mseide-msegui.sourceforge.net/pics/git1.png
Danach sieht es so aus:
http://mseide-msegui.sourceforge.net/pics/git2.png
Klicke in die 'A'-Spalte im rechtem Fenster bei "master" um die aktuelle remote Branch zu aktivieren.
Nun können die Dateien in <meingitrepo> durch die aktuellen ersetzt werden und zusätzliche ins Repository aufgenommen werden.
Beispielsweise habe ich github.txt geändert und github2.txt hinzugefügt. Ctrl+R frischt die Anzeige auf:
http://mseide-msegui.sourceforge.net/pics/git3.png
RightClick-'Add' auf github2.txt um die Datei aufzunehmen:
http://mseide-msegui.sourceforge.net/pics/git4.png
'git'-'Commit/Stage/Unstage all' um den Zustand im lokalen Repository festzuhalten:
http://mseide-msegui.sourceforge.net/pics/git5.png
'Commit' führt das Kommando aus.
Nun kann der Zustand mit 'git'-'Push to origin/master' zu GitHub übertragen werden.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Sourcen verewigen für Tutorial

Beitrag von Mathias »


Dies habe ich gemacht, jetzt hat es mir den Inhalt vom Server runtergeladen. Das clone habe ich auch schon verwendet, um fremde Pakete runter zu laden.

Mein aktuellen Daten habe ich in diesen Ordner geladen.
Dann habe ich folgendes gemacht:

Code: Alles auswählen

$ git add .
$ git push -u origin master
Username for 'https://github.com': sechshelme
Password for 'https://sechshelme@github.com':
Branch master konfiguriert zum Folgen von Remote-Branch master von origin.
Everything up-to-date
$

Aber eine Upload hat es nicht gegeben, dies würde viel länger dauern.

was habe ich jetzt noch vergessen ?

Dies geht auch nicht:

Code: Alles auswählen

$ git remote add origin https://github.com/sechshelme/Lazarus-OpenGL-3.3-Tutorial.git
fatal: externes Repository origin existiert bereits
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Sourcen verewigen für Tutorial

Beitrag von mse »

Es fehlt "commit" nach "add ." um den Zustand festzuhalten.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Sourcen verewigen für Tutorial

Beitrag von Mathias »

Es ist tatsächlich an commit gelegen, obwohl dies nur für einen Kommentar ist.

Reichen in Zukunft diese 3 Kommandos für eine Aktualisierung ?

Code: Alles auswählen

git add .
git commit -m "test"
git push


Was mir ein Rätsel ist, wie kommt das Arduino-Zeugs in meinen Account ?
Dieser ist schon 3 Jahre alt, aber ich habe mich erst vor einem ½ Jahr angemeldet.
https://github.com/sechshelme
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Sourcen verewigen für Tutorial

Beitrag von af0815 »

Mathias hat geschrieben:Was mir ein Rätsel ist, wie kommt das Arduino-Zeugs in meinen Account ?
Dieser ist schon 3 Jahre alt, aber ich habe mich erst vor einem ½ Jahr angemeldet.
https://github.com/sechshelme

Du hast scheinbar einen Fork erstellt = Kopie eines fremden Repo in deinem Account. Dazu muss man auf einem anderen (fremden) Repro nur auf Fork gehen und Ok sagen, dann hat man eine Kopie in seinem Repo, das man dann auch ändern kann wenn man will.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Sourcen verewigen für Tutorial

Beitrag von mse »

Mathias hat geschrieben:Es ist tatsächlich an commit gelegen, obwohl dies nur für einen Kommentar ist.

Mathias, ich rate dir dringend git bei der täglichen Arbeit zu verwenden und nicht nur als unverstandenes Archiv-Tool. Bitte siehe nochmals hier:
viewtopic.php?f=53&t=10809
Du solltest auch eine ".gitignore"-Datei anlegen.
"commit" bildet die Quersumme (SHA) über alle Daten des aktuellen Zustandes und speichert ihn zusammen mit dem Kommentar und der SHA des Vorgängers in der Repository Datenbank, das sind die Dateien im ".git" Verzeichnis. Dieser Zustand kann nun mit "push" an andere Repositories übertragen werden. "add" ist eine Zwischenstufe wo geänderte und neue Dateien zum committen bereitgestellt werden ("stage"). In MSEgit sieht es nach "add ." so aus:
http://mseide-msegui.sourceforge.net/pics/git6.png
http://mseide-msegui.sourceforge.net/pics/git7.png
Der MSEgit 'git'-'Commit/Stage/Unstage all'-'Commit' Button kombiniert "add" und "commit" mit den gewählten Dateien.

Reichen in Zukunft diese 3 Kommandos für eine Aktualisierung ?

Code: Alles auswählen

git add .
git commit -m "test"
git push


Ja.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Sourcen verewigen für Tutorial

Beitrag von Mathias »

Mathias, ich rate dir dringend git bei der täglichen Arbeit zu verwenden und nicht nur als unverstandenes Archiv-Tool.

Da hast du recht. somit gibt es ein Backup der Tutorials.

Du solltest auch eine ".gitignore"-Datei anlegen.

Eine gute Idee, es muss nicht aller Mist hoch geladen werden.

Stimmt dies, wen man GIT richtig versteht, kann man GIT auch direkt im Arbeits-Verzeichnis anwenden ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Sourcen verewigen für Tutorial

Beitrag von af0815 »

Ich verwende GIT für alle alles mögliche. Es ist auch sinnvoll mehrer GIT repos zu haben. Damit kann ich auch zwischen den Rechnern wechseln.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten