Sourcen verewigen für Tutorial

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
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, verarschst du mich? Das habe ich nun schon so viele Male mit mit Beispielen anhand von MSEgit vorgeführt...

Mathias
Beiträge: 6160
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, verarschst du mich?
Eigentlich nicht.
Du hast an meinem Verständniss gezweifelt, daher wollte ich es nochmals zusammenfassen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

TSchnuckenbock
Beiträge: 71
Registriert: Do 20. Jul 2017, 23:47
OS, Lazarus, FPC: Win7 und Win10
CPU-Target: xxBit
Wohnort: Südheide (Schnuckenland)

Re: Sourcen verewigen für Tutorial

Beitrag von TSchnuckenbock »

Moin Mathias,

ich wollte ja noch Rückmeldung geben, was es bei mir für Zickereien bzgl. deiner Quellen aus dem Tutorial gab: Es war ein Problem mit einer Helper-Klasse und Lazarus 1.6.?.
Nachdem ich mir das aktuelle Lazarus 1.8.2 gezogen hatte, ließ es sich (unter Windows 7 64Bit) anstandslos compilieren....wenigstens was ich bisher ausprobiert habe.

Gruß

Mathias
Beiträge: 6160
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 »

Nachdem ich mir das aktuelle Lazarus 1.8.2 gezogen hatte, ließ es sich (unter Windows 7 64Bit) anstandslos compilieren...
Da war nicht Lazarus Schuld, sondern das FPC < 3.0.2.
Type Helper wurde mit FPC 3.0.0 eingeführt, hatte aber einen Bug., bei statischen Arrays.
viewtopic.php?f=10&t=9286&hilit=type+helper
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
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 habe Linux neu installiert und jetzt geht das ganze hochladen des OpenGL Tutorials nicht mehr.
So nebenbei habe ich noch ein Tutorial für Free-Vision, das funktioniert ohne Probleme, da ich dort schon im Benutzer und Passwort eingeben musste.

Wie bringe ich den SHH-Schrott bei OpenGL los.
Bei GitHub habe ich unter Settings "SSH and GPG keys" das ssh-Zeugs gelöscht.

Zum hochladen verendete ich immer folgendes Script:

Code: Alles auswählen

#!/bin/bash
cd OpenGL_3.3
git add .
git commit -m "$1"
git push
Ausser die erste Zeile, sieht es bei Freevision gleich aus.

git add geht noch.
git commit -m "test"Bringt nur folgender Fehler:

Code: Alles auswählen

 $ git commit -m "test"
 
*** Please tell me who you are.
 
Run
 
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
 
to set your account's default identity.
Omit --global to set the identity only in this repository.
 
fatal: unable to auto-detect email address (got 'tux@tux-To-be-filled-by-O-E-M.(none)')


git push;

Code: Alles auswählen

 $ git push
warning: 'push.default' ist nicht gesetzt; der implizit gesetzte Wert
wurde in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung zu
unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes
beizubehalten, benutzen Sie:
 
  git config --global push.default matching
 
Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu übernehmen, benutzen Sie:
 
  git config --global push.default simple
 
Wenn 'push.default' auf den Wert 'matching' gesetzt ist, werden lokale
Branches zu den Remote-Branches mit den selben Namen versendet.
 
In Git 2.0 wurde das Standardverhalten zu 'simple' geändert. Hierbei wird
der aktuelle Branch zu dem entsprechenden Remote-Branch versendet, den
'git pull' zur Aktualisierung des aktuellen Branches verwendet.
 
Führen Sie 'git help config' aus und suchen Sie nach 'push.default' für
weitere Informationen.
(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutzen Sie den ähnlichen
Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen von
Git benutzen.)
 
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

Wen ich "no" eingebe, kommt der Fehler immer wieder.
Wen ich "yes" eingebe, kommt später folgender Fehler.

Code: Alles auswählen

$ git push
warning: 'push.default' ist nicht gesetzt; der implizit gesetzte Wert
wurde in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung zu
unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes
beizubehalten, benutzen Sie:
 
  git config --global push.default matching
 
Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu übernehmen, benutzen Sie:
 
  git config --global push.default simple
 
Wenn 'push.default' auf den Wert 'matching' gesetzt ist, werden lokale
Branches zu den Remote-Branches mit den selben Namen versendet.
 
In Git 2.0 wurde das Standardverhalten zu 'simple' geändert. Hierbei wird
der aktuelle Branch zu dem entsprechenden Remote-Branch versendet, den
'git pull' zur Aktualisierung des aktuellen Branches verwendet.
 
Führen Sie 'git help config' aus und suchen Sie nach 'push.default' für
weitere Informationen.
(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutzen Sie den ähnlichen
Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen von
Git benutzen.)
 
Permission denied (publickey).
fatal: Could not read from remote repository.
 
Please make sure you have the correct access rights
and the repository exists.

Ich habe auch schon versucht den Ordner .ssh zu löschen und mit "ssh-keygen" wieder zu erzeugen.

Weis jemand eine Rat, mir ist egal wen ich wieder Benutzer und Passwort beim hochladen eingeben muss.
Das SSH-Zeuge war wohl nicht das Ideale. :evil:

Ich hoffe, da es einen anderen Weg gibt als das repositories zu löschen und wieder neu zu erzeugen. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Sourcen verewigen für Tutorial

Beitrag von Warf »

Mathias hat geschrieben:git commit -m "test"Bringt nur folgender Fehler:

Code: Alles auswählen

*** Please tell me who you are.
 
Run
 
  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"


Da steht doch was zu tun ist. Geht darum das git jeden commit mit name und Mail des Commiter taggt (was ja auch sinn ergibt) und du kannst einen namen und email via git config (--global wenn es für mehr als dieses repo sein soll) setzten. Seit längerem funktioniert git commit auf der standard konfiguration nicht mehr

Mathias hat geschrieben:git push;

Code: Alles auswählen

 $ git push
warning: 'push.default' ist nicht gesetzt; der implizit gesetzte Wert
wurde in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung zu
unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes
beizubehalten, benutzen Sie:
 
  git config --global push.default matching
 
Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu übernehmen, benutzen Sie:
 
  git config --global push.default simple
 
 


Ist kein fehler solltest du aber dennoch beachten.

Mathias hat geschrieben:

Code: Alles auswählen

The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

Wen ich "no" eingebe, kommt der Fehler immer wieder.
Wen ich "yes" eingebe, kommt später folgender Fehler.[/code]


Das ist auch kein Fehler, sondern nur eine Benachrichtigung. Wenn du das erste mal zu einem SSH server verbindest speichert dein System einen Fingerprint. Wenn sich dieser jetzt beim nächsten mal ändert kann das ein Indikator für einen Man in the middle angriff sein. Darum wird man immer gefragt ob man dem Server wirklich vertrauen möchte. Und wen du nein drückst -> kein vertrauen -> keine verbindung.

Mathias hat geschrieben:

Code: Alles auswählen

Permission denied (publickey).
fatal: Could not read from remote repository.
 
Please make sure you have the correct access rights
and the repository exists.

Ich habe auch schon versucht den Ordner .ssh zu löschen und mit "ssh-keygen" wieder zu erzeugen.

1. solltest du deine Identitäten nicht so einfach wegwerfen und neuerzeugen. Vor allem da man SSH oft key only verwendet (also passwort anmeldung komplett deaktivieren) da es schlicht weg sicherer ist, kann das löschen des private keys bedeuten, das man nie wieder an seine Accounts kommt.
Ich selbst verwende meinen OpenPGP key zur SSH authentifikation, und habe meinen Masterkey auf einem Verschlüsselten USB stick gespeichert (natürlich offline an einem sicheren Ort aufbewahrt) damit ich damit ich immer volle Kontrolle über meine Keys habe.
2. Bringt dir das auch nix. Die meldung sagt das SSH mit deinem Private key nicht anmelden kann. Also entweder hast du deinen Public key nicht in Github eingetragen, oder SSH ist falsch konfiguriert.

Mathias hat geschrieben:Weis jemand eine Rat, mir ist egal wen ich wieder Benutzer und Passwort beim hochladen eingeben muss.
Das SSH-Zeuge war wohl nicht das Ideale. :evil:

Du musst einfach die Origin URL wieder auf http umstellen:
git remote set-url origin "new.url"
die ssh url ist etwa so git@github.com:User/Repo.git
für http müsste es etwa so aussehen https://github.com/User/Repo.git
Wenn ein HTTP link eingerichtet ist musst du dich mit nutzer und PW anmelden, wenn ein SSH link angegeben ist dann wird public key verwendet.

Ich geh einfach mal davon aus du hast deinen neuen public key nicht richtig registriert, und würde das als erstes mal abchecken. Wenn nicht würde ich mal die config und knownhosts aus ~/.ssh löschen (da es dann ein konfigurationsfehler sein sollte

Mathias
Beiträge: 6160
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 »

Nächster Versuch:

1. Ordner .ssh im Home-Ordner gelöscht.
2. $ git remote set-url origin https://github.com/sechshelme/Lazarus-O ... torial.git ohne Rückmeldung.
3. [b$ ]git add .[/b] ohne Rückmeldung.
4. $ git commit -m "test"
[master b942a41] test
1 file changed, 50 insertions(+)
create mode 100644 readme (Kopie).txt

5. $ git push
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
--> yes eingegeben.
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


Könnte Permission denied (publickey). der Grund sein, das es nicht geht.

Das einzige, was noch funktioniert, ist direkt bei GitHub "Upload File" und dann die Dateien ist grosse Feld ziehen.

Was ich noch probiert hatte, ist den Ordner .git zu löschen und nochmal von vorn beginnen mit
git clone https://github.com/sechshelme/Lazarus-O ... torial.git .
Aber dann kommt; fatal: Zielpfad '.' existiert bereits und ist kein leeres Verzeichnis.

Irgendwie habe ich jetzt alles zerstört. :evil:
Der letzte Ausweg wird wohl sein, das Respory zu löschen und neu zu erzeugen, aber das kann es ja nicht sein Oder ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Sourcen verewigen für Tutorial

Beitrag von Warf »

Mathias hat geschrieben:Nächster Versuch:

1. Ordner .ssh im Home-Ordner gelöscht.
2. $ git remote set-url origin https://github.com/sechshelme/Lazarus-O ... torial.git ohne Rückmeldung.
3. [b$ ]git add .[/b] ohne Rückmeldung.
4. $ git commit -m "test"
[master b942a41] test
1 file changed, 50 insertions(+)
create mode 100644 readme (Kopie).txt

5. $ git push
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
--> yes eingegeben.
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


Könnte Permission denied (publickey). der Grund sein, das es nicht geht.

Das einzige, was noch funktioniert, ist direkt bei GitHub "Upload File" und dann die Dateien ist grosse Feld ziehen.

Was ich noch probiert hatte, ist den Ordner .git zu löschen und nochmal von vorn beginnen mit
git clone https://github.com/sechshelme/Lazarus-O ... torial.git .
Aber dann kommt; fatal: Zielpfad '.' existiert bereits und ist kein leeres Verzeichnis.

Irgendwie habe ich jetzt alles zerstört. :evil:
Der letzte Ausweg wird wohl sein, das Respory zu löschen und neu zu erzeugen, aber das kann es ja nicht sein Oder ?


Das einfachste ist das repository nochmal zu klonen, alle dateien aus dem alten ordner in das frisch geclonte directory zu kopieren und dann ein git add -A, git commit -m "nachricht" und git push zu machen.
Es gibt zwar theoretisch noch nen anderen weg, das wäre repository in deinem ordner neu erzeugen, origin url setzen, fetchen, änderungen commiten und pushen (eventuell muss noch der master branch getrackt werden, da bin ich mir grad nicht so sicher), das ist aber deutlich mehr aufwand als einfach das repo neu zu klonen.

Mathias
Beiträge: 6160
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 »

Das einfachste ist das repository nochmal zu klonen, alle dateien aus dem alten ordner in das frisch geclonte directory zu kopieren

Ist dies nicht das selbe, wie wen ich .git lösche ?

Wie schon gesagt, er scheitert schon hier:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Sourcen verewigen für Tutorial

Beitrag von Warf »

Das liegt daran das ein git pull nur in ein leeres Verzeichnis möglich ist.
Was du machen kannst ist wie gesagt ein repository erzeugen:

Code: Alles auswählen

git init

Origin setzen:

Code: Alles auswählen

git remote add origin https://github.com/user/repo.git
git remote -v #überprüfe ob es funktioniert hat

Daten fetchen:

Code: Alles auswählen

git fetch origin

Master tracken (nicht sicher ob man das wirklich muss):

Code: Alles auswählen

git branch --track master origin/master

und dann solltest du normal damit arbeiten können.
Kann auch sein das ich was vergessen habe. Alternativ statt zu fetchen kann man direkt tracken, den stash push (git stash push), pullen und dann den stash popen (git stash pop).
Wahrscheinlich gibts noch viel mehr git interne wege, aber einfacher finde ich da:

Code: Alles auswählen

cd .. # angenommen im Repo verzeichnis
git clone url Repo2
yes | cp -r Repo/* Repo2/
mv Repo2 Repo

Mathias
Beiträge: 6160
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 wedes es morgen nochmals versuchen, danke erst mal für deine Hilfe.

Könnte dies ein Blockierung sein, weil ich zu viel gepastelt habe ?
Permission denied
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Sourcen verewigen für Tutorial

Beitrag von Warf »

Mathias hat geschrieben:Ich wedes es morgen nochmals versuchen, danke erst mal für deine Hilfe.

Könnte dies ein Blockierung sein, weil ich zu viel gepastelt habe ?
Permission denied

Nein es steht expliziet dabei das es Public key ist, also versucht git sich über SSH zu verbinden. Da du allerdings bei github keinen ssh key eingetragen hast kann das nur fehlschlagen. Irgendwie hat das set-url origin nicht funktioniert. Hättest du den .git ordner nicht gelöscht hättest du mit git remote -v nachschauen können, aber jetzt ist das zu spät. Wenn du neu pullst, von der HTTPs URL, sollte sich das Problem aber erledigen.

Wie gesagt ich empfehle dir einfach einmal einen SSH (oder PGP) key zu erzeugen, den sicher zu backupen und immer wenn du dein system neu aufsetzt einfach die identität auf den neuen Rechner zu übertragen. Man kann auch smartcards verwenden, die authentifizieren und signieren für einen mit einem eignen chip, sodass der Private key nie auf dem Computer hinterlegt ist. Als jemand der alle 2 wochen sein Linux schrottet und es neu aufsetzen muss kann ich dir empfehlen den key zu backupen lohnt sich sowas auf jeden fall. Immer einen neuen Key zu generieren und den überall einzutragen ist echt nervig.

PS: ich habe mal geschaut:

Code: Alles auswählen

git init
git remote add origin ...
git fetch origin
git branch --track master origin/master
git stash push
git checkout master:HEAD
git stash pop

müsste dein .git verzeichnis wiederherstellen, ohne deine Daten zu ändern. Aber wie gesagt, neu pullen ist da einfacher

Adromir
Beiträge: 37
Registriert: Sa 28. Apr 2018, 04:09

Re: Sourcen verewigen für Tutorial

Beitrag von Adromir »

Wer sich jetzt nicht mit git auf der Kommandozeile auseinandersetzen möchte, dem kann ich Smartgit empfehlen. Für den Privaten/ Nichtkommerziellen Gebrauch kostenlos und eignet sich generell recht gut zur Projektverwaltung als solches

Mathias
Beiträge: 6160
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 kann .den Ordner .git wieder herstellen, da ich vor dem löschen ein Backup gemacht habe.
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 »

Mathias hat geschrieben:Wie bringe ich den SHH-Schrott bei OpenGL los.
Bei GitHub habe ich unter Settings "SSH and GPG keys" das ssh-Zeugs gelöscht.

Warum?
Weis jemand eine Rat, mir ist egal wen ich wieder Benutzer und Passwort beim hochladen eingeben muss.
Das SSH-Zeuge war wohl nicht das Ideale. :evil:

Vielleicht hättest du meine Anstrengungen dir die Sache beizubringen doch etwas ernster nehmen sollen.

Antworten