29/9/2017

GIT commando’s, vb, problemen

Filed under: — cybrarian @ 10:45 pm

(in de reeks Git heb ik deze afgesplitst van het algemene Git artikel. Zie ook handboek inhoud en …)

Commando’s

git config --global user.name "mijn naam"
git config --global user.email mijnemail@mijndomein.tld
git config --list

Deze configuraties worden met –global eenmalig gedaan; je kan ze zonder global uitvoeren voor een project met afwijkende gegevens.
Je kan op dezelfde manier je editor en diff tool instellen.
Bekijk de instellingen met (de laaste lijn) –list. (antwoord leeg=geen instellingen)

git init = start gebruik git; creatie van ~/.git/ directory in de projectdir waar je bent

git clone git://gitserver.org/iemandsdirectory/eenproject.git = haalt een bestaand project af en maakt een werkdirectory klaar.

Initialized empty Git repository in /home/name/Gambas3Prj/PrjName/.git/

Waarna git status:

# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use “git add” to track)

Beginnen met een kopie van een project:
git clone git://gitlab.com/iemand.naam/eenProject.git

Cloning into ‘eenProject.git’ …

(Fouten zie ook 4*)

git status = overzicht toestand, bv nieuwe bestanden enz
git status -s = korte samenvatting toestand, met afkortingen als M, MM, A, ??
git add test.txt = toevoegen aan staging (of nieuw bestand opvolgen- in “tracked”)
git rm --cached test.txt = untrack/unstage test.txt;
git add '*.txt' = als wildcards gebruikt worden: aanhalingstekens
git
git commit -m "beschrijving van de inhoud of wijziging" = toevoegen aan repository van alles wat in staging staat; anders filenaam opgeven
git commit test.txt = commit alleen deze file
git commit -a = gaat zelf de nodig add en remove (rm) doen
git commit -a -m 'grote lijn van wijziging' = combinatie -a en -m

git log = geeft in volgorde al de laatste handelingen
Remote instellen:
git remote add korteNaam git@gitlab.com/userdirectory/repository.git = opgeven van repository op de gitruimte ; standaard branch is ‘master’
git remote add korteNaam https://domain.tld/userdirectory/repository.git = versie met https in plaats van git of ssh.
git remote -v = lijst van gedefinieerde fetch en push remotes

git push -u korteNaam master = alles naar online

git pull korteNaam master = alles terug binnenhalen om te werken.

git diff = verschillen zien tussen working directory en staging
git diff HEAD = verschillen zien tov laatste commit, meest recente=’HEAD’
git diff --staged = verschillen zien eigen staged tov laatste online pull
git diff --cached = ” ” ”

git reset = verwijder laatste staged (maar file blijft wel tracked)
git checkout -- unwantedfile.txt = (spatie laten)

git branch branchname_voor_mij = maak nieuwe branch
git checkout branchename_voor_mij = overschakelen naar branch

git rm '*.txt' = verwijderen van de files + wijz. klaarzetten in staging

Bij (merge) conflict, bv na git pull:
git mergetool
Dat brengt je in een gestuurde oplossing file per file, met info en keuzes als: use modified (m) or deleted (d) file, abort (a) …
Je moet dan eerst een git commit doen en daarna terug git pull.

Ik wil …

– controleren welke (exluded/uit te sluiten) bestanden mee in git zitten:

git ls-files (alleen bestanden)
git ls-files --stage (meer detail: [tag] mode object stage file)

– fout opgezette lokale repo wissen en opnieuw beginnen: rm -rf .git

(hier zit alles in). Check je .gitignore file in de project directory (waar .git stond), met git init wordt die overschreven?
rm -rf .git
git ls-files
fatal: Not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)

– weten of mijn lokale repo bij is met online: git status

git status
# On branch master
# Your branch is ahead of ‘nieuws/master’ by 1 commit.
# (use “git push” to publish your local commits)
#
# Untracked files:
# (use “git add …” to include in what will be committed)
#
# ProjectToTrack/.settings
nothing added to commit but untracked files present (use “git add” to track)

(zie ook 5*)

– mijn versie naar boven naar online duwen git push

git push –all
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 521 bytes | 0 bytes/s, done.
Total 5 (delta 1), reused 0 (delta 0)
To git@gitlab.com:/mat.abc/Test.git
9512a28..a72f459 master -> master

– de laatste online versie afhalen git pull test master

git pull test master
Pass a valid window to KWallet::Wallet::openWallet().
Pass a valid window to KWallet::Wallet::openWallet().
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From https://gitlab.com/mat.ara/Test
* branch master -> FETCH_HEAD
9512a28..a72f459 master -> test/master
Updating 9512a28..a72f459
Fast-forward
ProjectToTrack/.src/FMain.form | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

Enkele vragen blijven nog:

  • worden er bestanden bijgemaakt door git in de specifieke subdirectories van een project, of alleen in de onzichtbare .git directory op hoogste niveau?
  • wat is beste methode: directories opnemen en files excluden, of specifieren welke wildcard-files moeten opgenomen worden?
    Bv voor gambas: ./*.txt; ./src/*.class; ./src/*.form
  • Wat met .png, .jpg, enz. Apart opslaan omdat ze binary zijn?
  • moet een projectdir dezelfde naam hebben op de verschillende locaties? (De dir waarin je git init doet waarschijnlijk niet, en de rest haal je mee binnen zeker?)
  • Hoe werken vanop verschillende computers (als dezelfde ‘gebruiker’ (zelfde e-mail adres); ssh keys kopieren of meer keys maken?

Links
Een paar links voor zolang ze geldig zijn:

Nederlandstalig! https://git-scm.com/book/nl/v1/Aan-de-slag
https://git-scm.com/book/en/v1/Getting-Started-First-Time-Git-Setup
https://help.github.com/articles/se-up-git/
https://try.github.io/levels/1/challenges/1
Goede commit messages zien er zo (niet) uit:
https://chris.beams.io/posts/git-commit/
https://longair.net/blog/2009/04/16/git-fetch-and-merge/ fetch, merge (of pull?)

(meer…)

20/9/2017

KMail verzonden komt niet aan

Filed under: — cybrarian @ 10:11 am

Bij het melden van een fout ivm het vesturen van e-mail over een proximus verbinding, werd me detail-informatie gevraagd over de verzonden mail.
Die kon ik in de headers van de outbox van kmail niet vinden, ook niet met “All headers” aangezet in de opties.

KMail gebruikt een hulpmiddel voor het verzenden van de mail, nl Akonadi. Daar ten rade dus, maar Akonadi komt als applicatie niet voor in je desktop menu.

Open een terminal of ga via menu naar “run command” en tik:
akonadiconsole

Het programma Akonadi Console laat toe om “Enable debugger” aan te vinken. Als je dan een mail verstuurd kan je allerlei details zien.

Er zijn volgende tabbladen:

Agents – Browser – Debugger – Raw Socket – DB Browser – DB Console – Job Tracker – Resources Scheduler – Notification Monitor – Item Search

De Debugger heeft/krijgt nog sub-tabbladen als akonadi_maildir_resource_0

Je ziet er dingen als:

855 UID FETCH 43299 FULLPAYLOAD CACHEONLY ANCESTORS INF EXTERNALPAYLOAD (UID REMOTEID REMOTEREVISION COLLECTIONID FLAGS SIZE) 
* 43299 FETCH (UID 43299 REV 1 REMOTEID ... 

Hopelijk helpt dat voort.

16/9/2017

Mysql, MariaDB databank: welk type sleutel of id, en hoe groot?

Filed under: — cybrarian @ 10:27 am

Hoe groot kan een id worden? Meestal zet je de waarde van de sleutel op auto-increment.
Maar je wil liefst niet verrast worden door een databank waar je geen records meer kan toevoegen.

UNSIGNED INT: 4.294.967.295
UNSIGNED BIGINT: 18.446.744.073.709.551.615

Ik zie aangeraden worden om
– niet te spaarzaam te zijn op ruimte
– werk je op een 32 bit of 64 bit systeem?
– UNSIGNED te gebruiken als het kan; als je niet van plan bent om negatieve waarden te gebruiken kan je het bereik van een type als INT of BIGINT verdubbelen.
– INT(8) of INT(44) maakt geen verschil, aangezien dat getal enkel slaat op de weergave van de getallen, niet op de (maximum) waarde.

Waarschijnlijk is het niet slecht om in je applicatie een test in te bouwen bij het aanmaken van records, en het niet kunnen maken van een nieuw record op te vangen met een foutafhandeling. Maar zelfs dan kan het moeilijk worden om je applicatie overeind te houden, en levert het zeker problemen op voor de gebruiker. Misschien iets inbouwen voor als je in de richting van het maximum gaat?

8/9/2017

phpMyAdmin logt uit na 1440 seconden

Filed under: — cybrarian @ 9:22 am

Het is nu eenvoudig om de instelling van phpMyAdmin te veranderen zonder zelf in de configuratie bestanden te moeten gaan zoeken:

  • Start phpMyAdmin, log in
  • Kies het hoofdscherm (bv server:localhost) met General Settings en Appearance settings in het midden, en Database server – Web server – phpMyAdmin in de rechterkolom
  • Appearance settings, klik onderaan op “More settings”
  • Klik op het tweede tabblad met een steeksleutel: “Features”
  • Login cookie validity (seconden): verander 1440 naar een gepast getal.
  • Klik “Apply” om te bevestigen.

Helaas is deze instelling enkel geldig voor de huidige sessie!

Voor een meer permanente moet je toch op de server zijn:

In config.inc.php :
$cfg['LoginCookieValidity'] = 36000;

en in .htaccess bestand in de phpMyAdmin site:
php_value session.gc.maxlifetime 36000

Voor het gemak wat omrekeningen:

1140 seconden = 24 minuten
3600 seconden = 1 uur
28800 seconden = 8 uur
86400 seconden = 24 uur
432000 seconden = 5 dagen.

enz.

Powered by WordPress