Scripte unter Versionskontrolle

Vielleicht habe ich mich etwas missverständlich ausgedrückt.
Ich würde alles wie gehabt versionieren (also keine Änderung an den bestehenden Modul-Regeln), ich würde nur gerne zusätzlich ein Verzeichnis angeben was ebenfalls auf den GIT übertragen & versioniert wird. Ob in diesem Verzeichnis dann MD-Files liegen, Grafiken die man selber gebaut hat, eigene Log-Files oder sonst irgendwas ist ja erst mal egal…

In meinem Beispiel würde ich dann auf dem Github im Root-Verzeichnis (parallel zu \db, \media, \webfront) auch ein Verzeichnis \SymDoc mi entsprechendem Inhalt erwarten.

Gruß,
Markus

Ja, das ist auch denkbar, warum nicht. Ich schau mal …

demel

Version 1.6 @ 08.11.2018 17:15

[ul]
[li]Möglichkeit, zusätzlich zu sichernde Verzeichnisse anzugeben
[/li][/ul]

Hallo
Bei mir bricht das Script nach ein paar Sekunden ab und zwar mit dem selben Fehler.

17.03.2019, 16:08:25 | execute | git commit -a -m ‚Aenderungen vom 17.03.2019 16:08:10‘ 2>&1 … , exitcode=128, err=fatal: Paths with -a does not make sense.,output=

Seltsamerweise funktioniert genau dieser Befehl im DOS-Fenster ohne Problem:confused:

Hmm, das ist merkwürdig. Ich habe zwar kein Windows als Server, aber das git-Interface auf Windows anders sein ist als auf Linux kann ich mir nicht so recht vorstellen. Die Fehlermeldung ist auch nicht so recht verständlich, ein commit -a ist ja dazu da, alle in dem Git-Clone zu comitten und bekommt ja auch kein Pfad übergeben (wie der Debug-Output ja zeigt - da geben ich die Kommandos komplett aus.

Ganz doof gefragt und nur alles auszuschließen: hast Du die Anlage des Git-Repository so gemacht, wie ich das geschrieben habe? Und hast dann den initialen clone erstellt mit dem Button Repository einrichten auf dem Konfigurationsformular?

Das muss ein lokales git-Verzeichnis muss für den Unwert, unter dessen Kennung der IPS-Dienst läuft frei schreib und lesbar sein (ich bin mir nicht sicher, die die Berechtigungen von IPS auf Windows sind).

:confused::confused:
demel

Hallo
Dieses Problem geloest. Folgendes funktioniert bei mir unter Windows nicht:

if (!$this->execute('git commit -a -m \'' . $m . '\' 2>&1', $output)) {

Funktionieren tut folgendes :

if (!$this->execute('git commit -a -m "' . $m . '" 2>&1', $output)) {

Doppelte Anfuehrungszeichen !
Jetzt haengt es am Push. Fehlermeldung:

execute | git push 2>&1
execute |  ... , exitcode=128, err=and the repository exists.,output=

Unter der Kommandozeile und auch mit Smartgit funktioniert es ohne Probleme.

aha, dann kann die Windows-Shell mit einfachem ’ nicht umgehen.
Ich probieren das mal aus, ob das unter Linux ein Problem ist, auf die " zu wechseln oder ich mach das OS-Abhängug.
Bin heute aber unterwegs, komme ich erst morgen dazu.

die Fehlermelung ist leider nur unvollständig, da geben ich nur die letzte Zeile aus.
Ich kann zur Zeit nicht an den Rechner … wenn du magst, kannst Du mal etwas probieren:

in dem Miodul gibt es eine Funktion execute(). Die ruft die php-Funktion exec() auf und die hat als 2. Parameter die Variable out. Kannst du die immFehlerfall mal per SendDebug() ausgeben lassen? Ist ein Array, also mit print_r(out, true).

Vielleicht kriegen wird dann mehr Info, was git schmerzt. Der Ecitcode 128 ist nicht differenziert, der komt bei allen möglichen Fehler (lt Google).

Wenn du das nicht kannst, kann ich gerne morgen eine Version mit dieser Ausgabe erstellen.

danke
demel

OK. Das erklaert manches:
„Host key verifaction“.
Muss mich mal mit ssh beschaeftigen. BTW: ssh-copy-id gibt es bei mir nicht .

prima, da kommen wir weiter.

ssh-xopy-id ist nur ein script, was (im wesentlicehn) die lokale datei ~/.ssh/id_rsa.pub and die date ~/.ssh/authorized_keys des remote-systems anhängt.

paar info’s zu ssh-key’s gibt’s hier: Ssh-copy-id for copying SSH keys to servers | SSH.COM

hier gibt’s die source zu ssh-copy-id

ssh-copy-id unter Mac OS X benutzen › seeseekey.net

und hier: Is there an equivalent to ssh-copy-id for Windows? - Server Fault

demel

1.9 @ 24.03.2019 11:16

[ul]
[li]Kommando-Aufrufe „Windows-tauglich“ gemacht
[/li][li]komplette Fehlermeldung der aufgerufenen git-Kommandos bei Fehlschlag
[/li][/ul]

@1007: ich habe Deine Korrekturen eingebaut.
Bist Du mit der ssh-verifikation weiter gekommen?

demel

mit

ssh-keyscan <server> >>~/.ssh/known_hosts 

kann man den remote Hostkey initial vorab auslesen und dann in die lokale known_hosts kopieren. Dann sollte die Abfrage nicht mehr kommen. Oder man macht als erstes einen ssh von Hand und bestätigt die Abfrage von Hand. Das nä#chste Mal sollte nicht mehr gefragt werden. Als letzte Möglichkeit kann man die Hostkey-Verification im Befehl oder in der ssh_config abschalten (nicht empfohlen!)
Unter Windows gibt es das in der Git Bash

Tommi

Hallo
Nur bedingt.
SSH laeuft jetzt vom IPServer auf meine Synology.
Keys erstellt und verteilt.
Kann mich jetzt direkt mit „ssh git@xx.xx.xx.xx“ direkt einloggen per CMD-Fenster.

Ueber dein Modul kommt immer noch die Fehlermeldung „Host key verifaction failed“.
Inzwischen denke ich es liegt daran, dass IPSymcon als Service auf Windows laeuft.
Wohl kein Zugriff auf die Userkeys.
Hab mal ein Workaround laufen.
Dein „git push“ ist wohl der letzte Befehl. Deshalb ein kleines Script.

	CVC_CallAdjustment(40480 /*[System\Configuration Version-Control*/, false,false);
	IPS_ExecuteEx (IPS_GetKernelDir()."Tools\\gitpush.bat" , "", true, false, -1);

In gitpush.bat wird einfach ein git push gemacht. Das funktioniert.

ja, ‚git push‘ ist der letzte Befehl.

Das ist ja zu blöde, das das nicht funkioniert, aber ssh ist dinde ich auch diesbezüglic immer etwas problematischer. Leider kann das standard git-Paket af der Synology kein http.
was für eine hast du? mit docker oder ohne? Ich frage, weil ich derzeit mit einem git-server in einem Docker-Container experimentiere … und der kann auch http.

Wenn das in dem Batch-Script icht funktionieren würde, würde ich annehmne, das ein Befehl, der direkt von Symcon unter einer anderen Bneutzerberechtigung läuft als eine User-Shell. Aber das ist ja nicht so. Viellecht wird aber bei einem exec() kein User-Enviroment geladen oder so.

Man könnte nochmal versuchen, das ‚git push‘ mit Backtck bzw. shell_exec oder system auszuprobieren. Vielleicht wird dann ein anderes Enviroment geladen. Nachteil,bei allen Funktionen ist, dass ich den Exitcode des Progammes nicht geliefert bekomme, also eine Fehler nicht mit bekomme.

Gruß
demel

Nachtrag: oder funktionier eventuell ‚cmd git push‘? Zugegebenermassen stochere ich bei Windows etwas im Nebel.:rolleyes:

Hallo
Laeuft bei mir ohne Docker. shell_exec etc hab ich probiert ohne Erfolg.
Hab auch den SSH-Key in der .git/config eingetragen.
Schau naechste Woche nochmal danach. Im Moment funktioniert es ja.

Hallo zusammen,

irgendwie verzweifele ich hier gerade. Ich habe auf github ein privates Repository angelegt (und mit einer Datei gefüllt) und alle Daten hier eingetragen. Bei Passwort habe ich den oauth-Key eingetragen, den ich vorher angelegt habe.


Klicke auch auf Repository einrichten kommt:

Was mache ich hier falsch?

Danke für eure Hilfe

Herzliche Grüße

Thomas (der nach fast 10 Jahren mal wieder mehr in IP Symcon einsteigt.

Ich habe es gelöst. Ich hatte das Verzeichnis nicht eingetragen.

Prima, da warst Du schneller als ich es Dir schreiben konnte.

Das Formular sollte auch anzeigen, das es eine ungültige Konfiguration ist, aber die Funktionen, die man aufrufen kann, beachten den Status nicht.

Werde ich nacharbeiten

Gruß
demel

Hallo,

ich habe den GIT Server auf meiner Synology nach Anleitung installiert, bekomme aber Instanz inaktiv - ungültige Konfiguration

was muß wie bei der Instanz eingetragen werden

Hallo,
der Dialog ist leider nicht ganz zu sehen, aber ein git-Repository auf jeden Fall, git-User und Passwort und ein lokales Verzeichnis.
Ich habe bei kit http als Zugriffsmehode, mit „ssh“ kann ich nicht so genau sagen, zu lamge her.
Die Meldung kommt aber daher, das ein Aufruf von ‚git —version‘ durch das Modul fehlgeschlagen ist.
Ich würde auf jeden Fall mal das Debug-Tab aufmachen, den Konfig-Tab schliessen (das Debug-Fenster bleibt ja offen) und dann das Konfig-Tab wieder öffnen. Da steht vermutlich im Debug etwas erhellendes.

ich habe das Git Verzeichnis auf des Synology volume1/git/ipsymcon.git, user ist git

bei Git Repository habe ich „IP-Adresse“/volume1/git/ipsymcon.git eingetragen

was kommt bei …git config als User und Lokales Verzeichnis rein ?