Änderungen rückgängig machen (Git)

Nachlesen von Änderungen rückgängig machen
https://www.atlassian.com/git/tutorials/undoing-changes

File aus Ordner löschen
Die Datei bleibt physisch da, wird aber aus der Versionierung (aus git) genommen. Git sieht das File nicht mehr.

git rm <file>             


Lokale Änderung nicht comitten
– <untracked files> können mit gitignore vom committen ausgeschlossen werden
– wurde eine Datei bereits <add> so kann man git reset HEAD <file> das File aus der commit-Liste nehmen. (es wird dann wieder rot)

File auf alte Version zurücksetzen

git checkout --  <file>          // falscherweise commited
git checkout <commit-nr> <file>  // altes File holen
git reset <file>                 // falscherweise <add>

Der erste Befehl bezieht sich auf den letzten commit. Der zweite auf einen füheren. Achtung: in beiden Fällen wird das lokale File überschrieben!

 

Git <-> Github: Wo braucht man ein Passwort?

Git kümmert sich um die Versionierung.
Mit git status  sieht man, was geändert ist und kann es mit git add  git commit  auf auch auf eine Plattform ausserhalb senden.
Commits (und adds) sind nur lokal auf der Maschine. Sie brauchen keine Rechte. Denn Git muss nicht über eine Plattform gehen. Git kann auch nur lokal die Versionierung verwalten.

Github teilt Versionierung mit anderen
Will man Daten mit andern teilen, bietet sich eine Plattform wie Github an. Man braucht dazu jedoch Rechte von Gründer des Repositorys. Man hinterlegt seine Emailadresse sowie eine Form der Authentifizierung:
– per RSA-Key identifizieren (Github: Profile/Settings/SSH-Key) oder
– per Passwort.
Bei ersterem muss man beim Pushen nichts tun (der private Key authentifiziert), bei der Version mit dem Passwort, muss man immer das PW beim Pushen mitgeben.

Repository erstellen: Anleitung

Programme installieren
Git
– Github: Ist die GUI für unter Windows

Konto auf öffentlicher Plattform
– Auf einer Plattform (z. B. Github) Konto errichten (user, email, passwort)
– Öffentliche Plattform: Pullen darf jeder vom Projekt, ohne passwort
Pushen verlangt einen Namen und ein Passwort
– Repository ohne Lizenz: Man darf den Code nicht brauchen

Schritte lokale Synchronisation
– Auf Plattform den SSH-pfad kopieren
– lokal an Ort gehen, wo Hauptverzeichnis hinkommen soll.
Liegen bereits Ordner, dann diese wegkopieren und zuerst Repository anlegen
Windows:
Mit GUI Github auf + und dann Clone auswählen, Projekt anwäheln

git clone https://github.com/<user>/projektname.git

– Falls bestehende Ordner wegkopiert wurden, diese nun dem Projekt zufügen:
Windows:
Mit GUI Github auf + und add und die kopierten Dateien auswählen
der Committext kann direkt zugefügt werden

git status
git add <file>
git commit -m "text"

– gitignore ausfüllen

*~   für alle backupts
*o   für objektdateien

directory/**/*     ignoriert dieses Verzeichnis, ausser:
!directory/blabla/datei.xxx   ausser dieser Ordner oder diese Datei

– Daten hochladen aufs Repository
Windows:
Über sync (oben rechts)

git pull
git push

Repository löschen

rm -rf .git

VHDL-Projekt Datenstruktur und Programme

Ordnerstruktur
Synthese (oder quartus)
.    – Projektdatei:              projekt.qpf
.    – Pinzuweisung:         datei.tcl
.      [Ordner output_files] wird durch Synthese generiert
.      – synthetisiertes File für FPGA:    datei.sof
.      – kompiliertes File für Memory:   datei.pof
VHDL (oder source)
.    – Es braucht ein Top-Level   top.xxx (rechte Maus) Rechte zuweisen
.    – Schaltpläne:            datei.bdf
.    – importierete Blöcke (IP):   datei.qpf
.    – eigene Blöcke        datei.vhd
.   – testbench:               tb_datei.vhd
Software
.    – files.c
.    – files.h
Simulation (oder questasim)
.      Ordner questasim
.             –
Simulatondatei:   test_midi.mpf
.             –
Signaldatei:          wave.do
.            [Ordner work]        wird durch questasim generiert
.      Ordner script (Verzeichnis zum Aufrufen der Simulation)
.              – compile.do
.              – test_input.txt
.              – test_output_results.txt

……………………………………………………………………………………..

FPGA Synthese: Quartus
Das Programm Quartus von altera (lizenz) ist sehr mächtig. Ohne Lizenz, kann die Datei nicht auf das FPGA geladen werden.
In der Synthese werden die Pins zugewisen, die Verbindungen gelegt, das FPGA-Innenleben designt.

Die Synthese dauert sehr lange. Nach dem Synthetisieren wird der Stream auf das Board oder auf den Flash-Memory geladen.

home/bin/quartus_x.sh

 

Simulation: Questasim
Das externe Programm questasim ist ein ausführliches Simulationsprogramm.
Quartus selbst wird mit Modelsim mitgeliefert, das jedoch begränzt in der Anzahl zu simulierenden Blöcke ist.

Simuliert über Testbenches, die man über die Konsole per Script ausführt.

 

Script Linux

Ablegeort

home/katrin/bin


Ausführen (bei Ablageort)

./<script>.sh

Im Verzeichnis selbst wird mit ./ das Script ausgeführt.


Script der PATH-Variable zuweisen

PATH=$PATH:/home/katrin/bin

Mit gesetzer Pfadvariable kann das Script von überall her aufgerufen werden.


Ausführen Script überall

<script>.sh


Inhalt

#!/bin/bash

# add programm to global path
PATH=$PATH:/opt/ACA_166

# go to directory
cd /opt/ACA_166/

# open programm
java -jar ./QDAca.jar

Hier wird nicht der Script-Pfad, sondern das auszuführende Programm dem Pfad zugeteilt.

Script als ausführbar definieren

chmod +x name.sh

Parameter per Konsole mitgeben

#!/bin/bash

# Ausgabe in Konsole
echo $1 "anzahl_messungen"
echo $2 "anzahl_wiederholungen"

for o in `seq 1 $1`
do
    # packetlength ist eine lokale Variable
    for packetlength in 100 400 1400 1500 \        
    do
         # Ausgabe Konsole aktuelle Paketlänge
         echo $l
         for i in `seq 1 $2`
         do
            iperf3 -c 10.4.30.50 -l $ packetlength
         done
    done
done

– echo gibt string an Konsole aus
– $.. sind Variablen
– echo $.. fordert eine Eingabe per Konsole mit whitespace (Enter oder Abstand)

script.sh  5  2

Wenn man die Parmeter vergisst, fragt das Programm beim Start danach
// ]]>