Ankündigung

Einklappen
Keine Ankündigung bisher.

Konfigurationen in verschiedenen Verzeichnissen mit git verwalten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Konfigurationen in verschiedenen Verzeichnissen mit git verwalten

    Hallo zusammen,

    eins vorweg: Ich weiß das ich nicht unbedingt das passende Forum gewählt habe, aber dies ist ja kein spezifisches SmartHome.py-Problem und vielleicht deshalb auch für andere interessant.


    Da ich gerade am testen/konfigurieren von SmartHome.py/smartVISU bin und da mal schnell was schief geht würde ich gerne die Konfidateien mit git versionieren. So kann man schnell mal auf eine funktionierende Konfi zurück...

    z.B. würde ich gerne die Verzeichnisse /usr/local/smarthome/items und /var/www/html/smartVISU/pages in einem Repository sichern.

    Dazu habe ich im ein Verzeichnis smarthome.git erstellt und wollte die beiden Ordner mit Symlinks einbinden, was auf Dateiebene/Shell auch gut funktioniert, nur git - in meinem Fall Bitbucket - bindet nur das Verzeichnis /usr/local/smarthome/items ein und lässt die Dateien und Ordner darin aussen vor.

    Hier meine Vorgehensweise(Benutzername angepasst):
    Code:
    smarthome@smarthome:/$ sudo mkdir smarthome.git
    smarthome@smarthome:/smarthome.git$ cd smarthome.git
    smarthome@smarthome:/smarthome.git$ sudo mkdir smarthome
    smarthome@smarthome:/smarthome.git$ sudo ln -s /usr/local/smarthome/items /smarthome.git/smarthome
    smarthome@smarthome:/smarthome.git$ sudo git config --global user.email "username@email.tld"
    smarthome@smarthome:/smarthome.git$ sudo git config --global user.name "username"
    smarthome@smarthome:/smarthome.git$ sudo git init
    Initialisierte leeres Git-Repository in /smarthome.git/.git/
    smarthome@smarthome:/smarthome.git$ sudo git remote add origin https://username@bitbucket.org/username/smarthome-conf.git
    smarthome@smarthome:/smarthome.git$ sudo nano contributors.txt
    ...Benutzername in Textdatei eintragen...
    smarthome@smarthome:/smarthome.git$ sudo git add contributors.txt
    smarthome@smarthome:/smarthome.git$ sudo git commit -m 'Initial commit with contributors'
    [master (Basis-Commit) ccc2aa6] Initial commit with contributors
     1 file changed, 1 insertion(+)
     create mode 100644 contributors.txt
    smarthome@smarthome:/smarthome.git$ sudo git push -u origin master
    Password for 'https://username@bitbucket.org':
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 242 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To https://username@bitbucket.org/username/smarthome-conf.git
     * [new branch]      master -> master
    Branch master konfiguriert zum Folgen von Remote-Branch master von origin.
    smarthome@smarthome:/smarthome.git$ sudo git add smarthome
    smarthome@smarthome:/smarthome.git$ sudo git commit -m 'Ordner smarthome hinzugefügt'
    [master c9c16f1] Ordner smarthome hinzugefügt
     1 file changed, 1 insertion(+)
     create mode 120000 smarthome/items
    smarthome@smarthome:/smarthome.git$ sudo git push -u origin master              Password for 'https://username@bitbucket.org':
    Counting objects: 5, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (4/4), 376 bytes | 0 bytes/s, done.
    Total 4 (delta 0), reused 0 (delta 0)
    To https://username@bitbucket.org/username/smarthome-conf.git
       ccc2aa6..c9c16f1  master -> master
    Branch master konfiguriert zum Folgen von Remote-Branch master von origin.


    PS: hab mich schon den ganzen Abend durch www gesucht -> sind meine ersten Schritte mit git
    PPS: natürlich sollen auch alle anderen Konfidateien dann noch mit in das Repository
    cu Yfkt5A
    DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
    microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin

    #2
    Hallo nEiMi,

    Nett: Du hast den gleichen Fehler gemacht wie ich als ich mit git angefangen habe.
    Benenne das Verzeichnis in dem du deine Daten einsetzt nicht mit dem Suffix .git. Das bringt ziemliches Chaos, weil git ja als Push-Backend (in deinem Fall bei bitbucket) auch ein Verzeichnis mit dem Suffix .git erstellt, das aber den Inhalt nicht in dieser Form enthält.
    Tipp noch: git benötigt keinen Server, du kannst das Repository auch auf deinem Rechner haben. Mit deiner aktuellen Konstellation landen sicherlich auch eigentlich schützenswerte Daten im Internet.

    Dann zum Problem:
    Mach es doch einfach anders herum: Verschiebe die Daten direkt in deine git-working-copy und lege dann einen symlink in das smarthome.py-Verzeichnis.

    Und noch wichtig: Du musst nicht so viel als root machen. Alles was mit dem git zu tun hat, kannst du als user machen.

    Kommentar


      #3
      Hallo bwurst...

      danke für die Antwort und sorry für die späte Rückmeldung, aber bei mir dauerts öfter mal etwas länger bis ich wieder Zeit und Lust habe weiterzubasteln.

      Erstmal vorweg, es scheint so als hätt ichs hinbekommen...

      Hier meine Schritte:
      -zuerst mal das Verzeichnis umbenannt in smarthome_git, wobei ich nicht glaube das dies Probleme gemacht hat. "sudo mv /smarthome.git /smarthome_git
      -die alten Symbolischen Links entfernt "sudo rm -r /smarthome_git/smarthome"
      -Verzeichnisse wieder erstellt und von SmartHome.py/smartVISU hierher verschoben
      Code:
      sudo mkdir /smarthome_git/smarthome
      sudo mkdir /smarthome_git/smartvisu/pages
      sudo mv /usr/local/smarthome/etc /smarthome_git/smarthome/etc
      sudo mv /usr/local/smarthome/items /smarthome_git/smarthome/items
      sudo mv /usr/local/smarthome/logics /smarthome_git/smarthome/logics
      sudo mv /var/www/html/smartVISU/pages/Neumeier /smarthome_git/smartvisu/pages/USERNAME
      -symbolische Links gesetzt das SmartHome.py und smartVISU die Dateien wieder finden
      Code:
      sudo ln -s /smarthome_git/smarthome/etc /usr/local/smarthome/etc
      sudo ln -s /smarthome_git/smarthome/items /usr/local/smarthome/items
      sudo ln -s /smarthome_git/smarthome/logics /usr/local/smarthome/logics
      sudo ln -s /smarthome_git/smartvisu/pages/Neumeier /var/www/html/smartVISU/pages/USERNAME
      -Verzeichnise zum Repository hinzufügen
      Code:
      sudo git add smartvisu/
      sudo git add smarthome/
      -und nun noch committen und pushen
      Code:
      sudo git commit -m 'SmartHome.py/smartVISU-Konfiverzeichnisse ergänzt'
      sudo git push -u origin master

      Datenschutz: Werde ich nochmal darüber nachdenken, allerdings ist mein Repository bei Bitbucket privat, kann also nur ich einsehen. Ich möchte die Konfi einfach online gesichert haben, falls alle Stricke reißen die VM abschmiert und ich das Backup nicht zurücksichern kann, so hab ichs wenigstens schnell wieder aufgesetzt. Im Moment fällt mir aber auch nichts ein was in den Konfidateien drin wär das nicht in andere Hände geraten sollte... ausser evtl. die Private-URL vom Google-Kalender, aber der funktioniert bei mir noch nicht und ich weiß auch nicht wo die sV diese ablegt.


      sudo: also zumindest ein git push geht hier nicht ohne sudo...
      Code:
      git push -u origin master
      Password for 'https://username@bitbucket.org':
      Counting objects: 8, done.
      Delta compression using up to 4 threads.
      Compressing objects: 100% (3/3), done.
      Writing objects: 100% (5/5), 440 bytes | 0 bytes/s, done.
      Total 5 (delta 0), reused 0 (delta 0)
      To https://username@bitbucket.org/username/smarthome_git
         c9c16f1..e6054fb  master -> master
      error: could not lock config file .git/config: Keine Berechtigung
      error: could not lock config file .git/config: Keine Berechtigung
      Branch master konfiguriert zum Folgen von Remote-Branch master von origin.
      fatal: Unable to create '/smarthome_git/.git/refs/remotes/origin/master.lock': Keine Berechtigung
      smarthome@smarthome:/smarthome_git$ Unexpected end of command stream
      cu Yfkt5A
      DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
      microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin

      Kommentar


        #4
        Zitat von nEiMi Beitrag anzeigen
        sudo: also zumindest ein git push geht hier nicht ohne sudo...
        Code:
        error: could not lock config file .git/config: Keine Berechtigung
        error: could not lock config file .git/config: Keine Berechtigung
        fatal: Unable to create '/smarthome_git/.git/refs/remotes/origin/master.lock': Keine Berechtigung
        Ja, da du das Repository damit als root eingerichtet hast, gehören die Kontrolldateien jetzt natürlich root.

        Kommentar

        Lädt...
        X