23/3/2024

Git worktree

Filed under: — cybrarian @ 6:23 pm

Clean?
Een “cleane worktree” is je worktree na een commit/push of na een clone of pull.
Je ziet dat aan git status.

Dirty?
Vanaf je iets gewijzigd hebt, is het een “dirty worktree”, de toestand is “bezoedeld” door wijzigingen die nog nergens geregistreerd zijn.

Multiple?
Werken aan twee branches TEGELIJK.
(normaal schakel je om met git checkout branch1, hackhackhack, get stash, git checkout branch2, hackhackhack, git commit+push, git checkout branch1 ….)

Als je aan twee branches tegelijk wil werken kan je in een andere directory terug een clone doen van het project. Dan zit je met veel dubbele code, en moet je telkens beiden syncen. Je kan het Git zelf laten doen met git worktree, dan heb je minder ruimte nodig op de harde schijf, en verloopt het synchroon houden ook automatisch:

git worktree list
git worktree add MijnNieuweWerkboom *
en als je er mee klaar bent:
git worktree remove MijnNieuweWerkboom

Goede uitleg van het principe op https://tecadmin.net/git-worktrees-parallel-development-guide/
https://devdynamics.ai/blog/understanding-git-worktree-to-fast-track-software-development-process/

Eens die worktree gemaakt, zie je in je projectmap een map met de naam van de nieuwe worktree. En daarin staan terug dezelfde files als je al had in de directory erboven. Oei, dat was niet de bedoeling, die map hier in mijn projectcode te hebben.
(*) Belangrijk is om de directory op te geven waar die nieuwe worktree moet gezet worden bij git worktree add:

git worktree add ./../MijnNieuweWerkboom
of
git worktree add /home/username/directoryEtc

Terug verwijderen:
git worktree remove MijnNieuweWerkboom
git prune

git worktree add ./../MijnNieuweWerkboom
dan met
cd ..
cd MijnNieuweWerkboom
git status
git worktree list

Ik heb twee situaties gehad, de eerste was:
-1 In die directory zie ik een branch met de naam MijnNieuweWerkboom, terwijl ik die niet expliciet heb aangemaakt.

Normaal geef je als parameter een bestaande branch op (denk ik).

git worktree add ./../MijnNieuweWerkboom bestaandeBranch
(branch die ik daar wil om parrallel in te werken)
of
git worktree add /home/username/directoryEtc bestaandeBranch

-2 ik kreeg een foutmelding “invalid reference: bestaandeBranch”; misschien bestond die niet of had ik hem verkeerd geschreven.

-3: fatal: “.. is already checkout out at ..”
Dat is eigenlijk wel zo… Ik kon dit oplossen door eerst een andere branch aktief te maken:
git checkout otherbranch
git worktree add ../MijnNieuweWerkboom bestaandeBranch

.. preparing …
HEAD is now at .. (shows comment of commit)

Bij geval 1: In Gambas is de naam van de map ook de naam van het project, dus dat is nu plots ook veranderd.

Hmm, nog niet goed? Je kan bij het maken van een worktree (blijkbaar/soms) ook de naam van de nieuwe branch meegeven, verschillend van eender welke bestaande.

In mijn geval is het nu niet zo erg, je moet eventueel een nieuw configuratiebestand aanmaken, of het bestaande kopieren. Hierdoor kan je ze ook uit elkaar houden (bv voor de executable; handig dat de naam anders is).


Stash
git stash kan heel interessant zijn: je bewaart alleen je huidige veranderingen.

VRAAG: Dus als je twee gelijkaardige projecten hebt die enkel een beetje verschillen, maar die verschillen moeten blijven bestaan, dan kan je met stash je nieuwe werk bewaren (dat dan niet over die specifieke verschillen mag gaan), en die “toepassen” op eender welke andere branch, of je eigen branch als je dat nog niet gedaan had en toch was uitgecheckt.

hackhackhack
git stash
git stash list
git stash show
git stash apply —-> this you can do on another commit; how?
git stash drop

git stash pop, ofwel git pop 0 (voor de laatste) git pop 1=voorlaatste enz. past de laatste stash to op de huidige worktree, en gooit hem daarna weg.

om “een stash” te verwijderen uit de “git stash list” doe je git stash drop i

Nu nog uitzoeken hoe ik een stash toepas op .. bv een ander worktree?


(Reeks Githandboek (nl)commando’s vbbranch, mergebranch zoeken/datumstashgit worktree GitLab vbSourceForge vbgit en gambas)

12/9/2023

Git merge opties (strategy)

Filed under: — cybrarian @ 12:03 am

Eenvoudige merges, samenvoegen van iets dat verder voorop is en eenvoudig toegevoegd wordt aan een achtergebleven tak, is gemakkelijk te begrijpen, maar soms is het ingewikkelder.

git merge [-n] [–stat] [–no-commit] [–squash] [–[no-]edit]
[–no-verify] [-s ] [-X ] [-S[]]
[–[no-]allow-unrelated-histories]
[–[no-]rerere-autoupdate] [-m ] [-F ]
[–into-name ] […​]
git merge (–continue | –abort | –quit)

merge strategiën
De verschillende merge “strategies” zijn recursive, resolve, octopus, ours, subtree

Je kan zelf de merge strategy opgeven met een parameter:
(ook bij git pull trouwens)

git merge -s recursive tak1 tak2

git merge -s resolve tak1 tak2

git merge -s octopus tak1 tak2 tak3 .. takn

git merge -s ours tak1 tak2 .. takn

git merge -s subtree takA takB

Type van strategie

– Expliciet
Dit is de standaard merge methode. Het betekent dat er een nieuwe “merge commit” gemaakt wordt. Dit toont waar de merge werd gedaan in de merge geschiedenis, en dat is niet altijd gewenst (omdat het de aandacht afleidt, ruis dus). Als je deze details niet in je merge history wil, zal je misschien explicit merge vermijden.

– Impliciet
Impliciete merge via rebase of fast-forward merge

– Squash
Squash on merge, meestal zonder expliciete merge

Recursive merge strategy options

ours, theirs, patience, diff-algorithim, ignore, renormalize (no-normalize, no-renames), find-renames=n, subtree

Er zijn veel mogelijkheden, en hoe moet je kiezen wat te gebruiken alvorens je ze doorgrondt?

2/9/2023

Git: Foute merge herstellen, checken met git reflog, pushen met force

Filed under: — cybrarian @ 8:24 pm

Een merge van twee branches (dev-hq en roadie) gedaan die verkeerd afloopt, bv omdat de versies meer verschilden dan je dacht (op beide was een stukje ontwikkeling gedaan ipv op één van beiden)? Je kan correcties gaan doen in de broncode, die door git voorzien is van merktekens als

< <<<< HEAD
======
>>>>>>> roadie

.. met daartussen brokken tekst van de verschillende versies.
Soms is het duidelijk, een klein verschil kan een eenvoudige correctie zijn, of een uitbreiding van een string of een commentaar. Dan kan je die onmiddellijk verbeteren met een .txt editor (zelfs buiten de normale programmeeromgeving).

Maar als de verschillen te groot zijn en/of je er niet aanuit kan, wil je misschien de “merge” operatie herstellen naar de toestand voordien.

Zolang je het conflict niet opgelost hebt, en niets kon pushen, niet gecomit hebt, kan je nog altijd terug met :

git merge --abort

Je kan info krijgen van git:

git reflog

Als je terug wil gaan naar de laatste gemeenschappelijke toestand, kan je die vinden met:

$ git merge-base dev-hq roadie
806f8ac3c61b1e55cdd5b53a0205b51d1d31387a

Dan kan je terug naar die toestand met

git reset 806f8ac3c61b1e55cdd5b53a0205b51d1d31387a

Unstaged changes after reset:
M .src/FConfigure.class
M .src/FConfigure.form

Om hem online te krijgen volstaat een gewone git push niet:

git push
To gitlab.com:stockpi/stockpiapp.git
! [rejected] dev-hq -> dev-hq (non-fast-forward)
error: failed to push some refs to ‘gitlab.com:stockpi/stockpiapp.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.

git push --force

git push –force
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: To create a merge request for dev-hq, visit:
remote: https://gitlab.com/stockpi/stockpiapp/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev-hq
remote:
To gitlab.com:stockpi/stockpiapp.git
+ 8a060eb…806f8ac dev-hq -> dev-hq (forced update)

(zie bv https://www.atlassian.com/git/tutorials/undoing-changes/git-reset)
Julia Evans: “git rebase: what can go wrong?”

18/2/2022

Git branch zoeken op basis van datum aktiviteit

Filed under: — cybrarian @ 12:21 pm

Binnen een branch kan je kijken met git log, maar als je een overzicht wil over alle branches…

Lijst van alle branches met laatste commit bericht:
git branch -v

Gesorteerd op datum (maar zonder die weer te geven)

git branch -v --sort=committerdate

Alle, inclusief remote:
git branch -v --sort=committerdate

git for-each-ref --sort='-committerdate:iso8601' --format='%(committerdate:relative)|%(refname:short)|%(committername)' refs/remotes/ | column -s '|' -t

2 months ago           origin/HEAD               matty
2 months ago           origin/master             matty
2 months ago           origin/test               matty
3 months ago           origin/feat-Day           matty
6 months ago           origin/integrate-lib      matty
3 years, 7 months ago  origin/feat-Fact       cybrarian

git for-each-ref --sort=-committerdate refs/heads/ --format='%(committerdate:short) %(authorname) %(refname:short)'

2022-02-11 cyb master
2022-02-11 cyb test
2022-02-09 cyb feat-DayAdd
2021-12-08 cyb fixMissingDayTypeDispl

git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'

 fixMissingDayTypeDispl - a493cbe - FDayReq: fix missing daytype display - mat.ara (2 months ago)
* feat-DayAdd - dea7f5e - gitignore err - cyb (9 days ago)
  test - a94611e - merge test ie FMain.class - cyb (7 days ago)
  master - 33ac1e2 - fix Changes.txt  - cyb (7 days ago)

Met de datum ervoor:

git for-each-ref --sort=-committerdate refs/heads/ --format='%(authordate:short) %(color:red)%(objectname:short) %(color:yellow)%(refname:short)%(color:reset) (%(color:green)%(committerdate:relative)%(color:reset))'

Deze is ook mooi:

git branch -vv --color=always | while read; do echo -e $(git log -1 --format=%ci $(echo "_$REPLY" | awk '{print $2}' | perl -pe 's/\e\[?.*?[\@-~]//g') 2> /dev/null || git log -1 --format=%ci)" $REPLY"; done | sort -r | cut -d ' ' -f -1,4-

2022-02-11   master                 33ac1e2 [origin/master] fix Changes.txt for merge
2022-02-11   test                   a94611e [origin/test] fix merge test FMain.class
2022-02-09 * feat-DayAdd            dea7f5e [origin/feat-DayAdd] gitignore 
2021-12-08   fixMissingDayTypeDispl a493cbe FDayReq: fix missing daytype display

Of maak een alias

(Reeks Githandboek (nl)commando’s vbbranch, mergebranch zoeken/datumstashGitLab vbSourceForge vbgit en gambas)

24/8/2021

Git: kladwerk en ongewenste wijzigingen (dirty directory)

Filed under: — cybrarian @ 12:10 pm

(Reeks Githandboek (nl)commando’s vbbranch, mergestashGitLab vbSourceForge vbgit en gambas)

Undo
Wijzigingen niet bewaren (die niet toegevoegd waren – ‘not staged’) en terugkeren naar de laatste goede toestand van de bestanden in je directory:

git reset --hard
Alle wijzigingen weggooien en terug beginnen met de vorige toestand van je ontwikkeltak.

git checkout -- vuilbestand
Eén bestand terugdraaien naar de laatste normale toestand van voor je (klad)werk.
Een typisch voorbeeld is een .settings bestand dat kan reageren op het starten van een programma; bv omdat het een teller bevat, of de laatste toestand van schermen of geopende documenten bijhoudt of zo.

git stash
Dit laat je toe de wijzigingen niet op te nemen in je programmeervoortgang, maar toch ook niet helemaal definitief weg te gooien; je zet ze opzij om voort te kunnen met je normale ontwikkeling.
Daarbij hoort nog:
git stash list : lijst van stash-items in tijdelijke editor (q=quit).
git stash show : diff
git stash apply : toepassen van deze stash op huidig werk.
git stash pop: toepassen van deze stash op huidig werk en uit stash halen.

Zie ook stash

12/4/2021

Git: in verkeerde branche gewerkt

Filed under: — cybrarian @ 4:03 pm

Ik zit ijverig te werken en nadien zie ik dat ik in de master branch bezig ben ipv de dev branch.
Ik heb nog geen git add of commit gedaan.
(in git status zie ik modified: BestandWaaraanIkBezigWas.class )
Ik kan natuurlijk alles weggooien en de master terugzetten op een vorig punt.

Maar ik wil de wijzigingen wel bijhouden, en ik wil die in de dev krijgen.

De aanbevelingen die ik lees gaan ongeveer zo:
– maak een nieuwe branch vanuit die master die je gewijzigd hebt (maar nog niet ge-commit), geef hem een tijdelijk naam bv tempdev.
git checkout -b tempdev
Switched to a new branch ‘tempdev’

– voeg eventueel nieuwe bestanden toe (niet nodig als je alleen “modified” hebt), en commit al je werk:
git add .
git commit -m "some new work"

Als ik nu terug ga (git checkout master) en daar git status vraag, geeft die geen modified bestanden meer.

– check of je de dev branch hebt:
git branch -l
master
* tempdev

Als je de dev branch niet hebt, kijken of hij er remote wel is:
git branch -lr (opgelet dit kan een vertekend beeld geven als die recent is bijgemaakt en je niet hebt bijgewerkt met fetch…)

origin/HEAD -> origin/master
origin/master

Of git branch -a om beiden te zien.

Dus eerst synchroniseren met online:
git fetch

remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 16 (delta 12), reused 0 (delta 0)
Unpacking objects: 100% (16/16), done.
From git://git.code.sf.net/p/myproject/code
* [new branch] dev -> origin/dev
0c4e870..b8c15dc master -> origin/master

git branch -rl
origin/HEAD -> origin/master
origin/dev
origin/master

Beter!
– schakel naar dev branch en merge die met devtemp (importeert de devtemp wijzigingen).
git checkout dev
git merge tempdev

– commit en push zodat de (online) “remote” dev branch is bijgewerkt.
– schakel naar die je master en reset hem naar de laatste versie (van remote halen dus? Nee gebeurt lokaal): git reset --hard HEAD.

Stash
Misschien korter/handiger: gebruik “stash”, dat de wijzigingen lokaal even opzij zet (om ze al dan niet nadien toe te passen):

git stash
git checkout dev
git stash apply

(Reeks Githandboek (nl)commando’s vbbranch, mergebranch zoeken/datumstashGitLab vbSourceForge vbgit en gambas)

13/11/2018

Git: hoe haal ik of zie ik remote branch? Stuur local branch remote?

Filed under: — cybrarian @ 1:16 pm

(in de reeks Git…)

Zien
Online (in de web interface) zie ik de branches:

  • master
  • test
  • issue1

Maar lokaal zie ik alleen mijn eigen master (sic!):

git branch -l
* master

Ook na een git fetch blijft dat zo.

Git fetch heeft een standaardgedrag of volgt instellingen, maar je kan meer specifiek git fetch origin doen:

~/Git/TrypoPrj/TrypoPrj> git fetch origin
~/Git/TrypoPrj/TrypoPrj> git branch -l
* master

Bovendien moet je eigenlijk –list gebruiken (-l dient om een reflog aan te maken), en toont git branch –list enkel de lokale branches. Maar

git branch -r

origin/HEAD -> origin/master
origin/feat-01
origin/master
origin/test

toont de remote, of wil je alles:

git branch -a

* master
remotes/origin/HEAD -> origin/master
remotes/origin/feat-01
remotes/origin/master
remotes/origin/test

met extra info als laatste commit message:

git branch -v -a

* master 8ab6216 [ahead 1] remove .directory from tracked files
remotes/origin/HEAD -> origin/master
remotes/origin/feat01 2bbd368 Complete changes.txt with done work
remotes/origin/master de381ad Resolve merge conflict by combine and reorder lines in changes.txt

Afhalen
Als je een branch van remote wil halen kan je die opgeven

git fetch origin
of
git fetch origin branch-naam
Daarna bv merge in je eigen (bv master) en commit:

git merge origin/branch-naam
git commit ...

Of:
– check met git branch -la
– indien ok, git checkout WantedBranch
(gewoon met de naam, paar letters en gebruik TAB om aan te vullen)
Reaktie:

Branch WantedBranch set up to track remote branch WantedBranch from origin.
Switched to a new branch 'WantedBranch'

upd 2020-11-18

Een lokale branch ook remote maken

Situatie: ik heb een lokale “develop” branch en wil iemand mee laten ontwikkelen (of zelf vanop een andere plaats/toestel).

Er is een master branch, en de andere gebruiker ziet die:
De andere gebruiker heeft alleen de master:

git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
.
git pull
Already up to date.

Ik heb die ook, plus een develop, waarin ik aktief ben.

cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git status
On branch develop
nothing to commit, working tree clean
cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git push
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git branch -r --list
origin/master
cybrarian@copylefthost:~/Gb3Prj/MyProject/ControlPanel> git push --set-upstream origin develop
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for develop, visit:
remote: https://gitlab.com/cybrarian.copyleft/ControlPanel/-/merge_requests/new?merge_request%5Bsource_branch%5D=develop
remote:
To gitlab.com:cybrarian.copyleft/ControlPanel.git
* [new branch] develop -> develop
Branch develop set up to track remote branch develop from origin.

Nu kan de andere gebruiker:
.
git pull
From gitlab.com:cybrarian.copyleft/ControlPanel
* [new branch] develop -> origin/develop
Already up to date.

De andere gebruiker kan nu ook mee aan de slag…
(mits hij de juiste rechten heeft – bv gitlab “maintainer”)

(Reeks Githandboek (nl)commando’s vbbranch, mergebranch zoeken/datumstashGitLab vbSourceForge vbgit en gambas)

Git ingore negeert opgegeven bestand niet

Filed under: — cybrarian @ 10:47 am

(in de reeks Git…)

Hoewel ik .settings heb toegevoegd tot gitignore, blijft het af en toe opduiken als gewijzigd bestand, klaar om mee te committen. Ik begrijp niet of het komt door merge met andere medewerkers die misschien een andere instelling hebben (hoewel ik dacht dat die lokaal was).

Oorzaak is bv dat het bestand oorspronkelijk niet in gitignore zat, en er pas later is aan toegevoeg, toen het al getracked werd. En .gitignore werkt alleen voor “untracked” files (voor nieuwe bestanden dus).

Er is een extraatje nodig (how to make git forget..):

git update-index --assume-unchanged

git update-index --assume-unchanged .settings

Je krijgt geen feedback na dit commando.

28/9/2018

Git voorbeeld: SourceForge

Filed under: — cybrarian @ 10:24 am

(Reeks Githandboek (nl)commando’s vbbranch, mergeGitLab vbSourceForge vbgit en gambas)

SourceForge (https://sourceforge.net/) was in de open source en free softwarewereld zowat de eerste, grootste en bekendste website voor het online houden van een open source of free software project. Je kon de broncode gewoon uploaden als .tar.gz bestanden, of het Code Versioning System gebruiken (cvs), naast de vele project-tools voor opvolging van bugs, communicatie enz. (zie 2009)

SourceForge heeft achtergrond in VA Software (denk ook aan VA Linux, Geeknet, enz), ondertussen horen ze bij Slashdot media.
Het traject van de zoektocht naar rendabiliteit en de overnames deed Sourceforge geen goed en zaaide twijfel bij developers.
Heel wat nieuwe projecten gingen naar GitHub, (en meer recent GitLab), die specifiek gericht waren op het ondertussen in de FOSS wereld populaire geworden git-broncodebeheersysteem.

Maar ondertussen biedt SourceForge ook Git aan. Sinds januari 2018 promoten ze het aktief met een importeer-tool om GitHub projecten over te zetten naar SourceForge.
https://sourceforge.net/blog/introducing-the-new-sourceforge/

Wie al op Sourceforge zit kan zijn project beginnen beheren met git: https://sourceforge.net/p/forge/documentation/Git/

Om gemakkelijk te communiceren met de sourceforge repository is het best om een public key/private key communicatie op te zetten. Daarvoor moet je een “key” hebben, die je maakt met ssh-keygen.
Daarna moet je de projectdirectory initialiseren voor gebruik met git. En dan moet je je startcode “uploaden”, in git-terminologie comit-en en push-en.

1. Keys

1.1 keys maken:

De handleiding van sourceforge zegt:

ssh-keygen -t ed25519 -C “gebruikersnaam@shell.sf.net”

De plaats waar je dit doet is eender (bv kan je al in de projectdirectory staan).
De gebruikersnaam is die van je login, niet de weergegeven naam!
Na het commando krijg je de vraag in welk bestand de key bewaard mag worden, je kan het voorstel gewoon bevestigen.
Daarna kan je een wachtwoord ingeven (veiliger), wat je moet heringeven om te bevestigen.
Het eindigt met de plaatsen waar je identificatie en je public key bewaard werden*, en met je fingerprint.
Daaronder komt een beetje “ascii-art” met je randomart image.
* Je kan je instellingen checken in de bestanden:
private key: /home/usernaam/.ssh/id_ed25519 (deze moet je geheim houden!)
public key: /home/usernaam/.ssh/id_ed25519.pub (deze moet je meedelen)

1.2 keys registreren

Log in op SF en ga naar:
https://sourceforge.net/auth/shell_services
Daar plak je de inhoud van je .pub bestand.

2. Projectdirectory

De directory die je wil opnemen in het git beheer moet je initialiseren voor git gebruik.
Ga in de directory staan (cd projectdir), en check git:

git status
Als je … krijgt is er al een git repository van gemaakt!
Als er nog geen git initialisatie gebeurd is op deze directory krijg je een melding als:

fatal: Not a git repository

…(enz)

Tik het initialisatiecommando dat de nodige subdirectories en bestanden maakt:
init git

Initialised empty Git repository in …

Opgelet! Nu zijn er een aantal (onzichtbare) directories/bestanden bijgekomen voor git, gebruik deze projectdirectory niet meer om op een andere manier te kopiëren als project sourcecode, want hij is “vervuild” met git.

3. Stel de bron in

Als de broncode nog niet in de directory staat, kopieer je die ernaartoe. Ze vormen de verzameling van alle onderdelen die je nodig hebt om een programma te kunnen compileren.
Met git status toont git wat het daar ziet.

Je stelt ook de bestanden in die NIET naar de git-server moeten, omdat ze enkel lokaal nut of belang hebben (bv lokale instellingen van de programmeeromgeving), of omdat ze prive-informatie bevatten.
Maak daarvoor een bestand .gitignore in de projectdirectory.

git rm --chached (file) om iets wat er per vergissing toch is terechtgekomen; check met git status.

git commit -am ‘initial commit at version 0.1.5’

Je krijgt de melding dat een ‘standaard’ e-mail adres gebruikt is; je kan het instellen met:

git config --global --edit

pas aan, bewaar (standaard met ESC :w en :q), en daarna fix de identiteit die gebruikt werd met:

git commit --amend --reset-author

Je krijgt dan een tekst te zien (waarin je bv het e-mail adres kan verbeteren, dacht ik, maar dat blijkt achteraf niet met git log**); ook weer ESC :wq om te bewaren en verlaten.

4. Stel de server in

Nu moet je een verbinding instellen met de server, waar de broncode naartoe moet.

git remote add origin ssh://login@git.code.sf.net/p/gitin/code

(met je eigen login natuurlijk; de username).

En dan de eigenlijke “upload”:

git push -u origin master
Er wordt een bevestiging gevraagd van de git.code.sf.net server (met ip)
Die wordt dan toegevoegd aan de “known hosts”.
Daarna moet je je wachtwoord ingeven (dat van de ssh key).

Met wat geluk eindigt alles met:

Branch master set up to track remote branch master from origin.

Nu kan je via de website het resultaat zien onder het tabblad “code”:
https://sourceforge.net/p/projectname/code/

De projectdirectory is volledig te “browsen”!
Onderaan verschijnt de inhoud van het readme.txt bestand.

Zeer handig is de kolom “Commit”, want daar verschijnt de commit message, en je kan daarmee snel zien wat de laatste verandering is in een directory of bestand.


**)
Je moet eerst expliciet de gegevens instellen, bv het e-mail adres wordt afgeleid uit je username en je hostname, dus je krijgt username@host, en dat kan bv de lokale hostname van je pc zijn.

Je moet dan eerst expliciet de username of het e-mail adres instellen:

git config --global user.name "gebruikersnaam"
git config --global user.email "user@domein.abc"


5. Gebruik.

– Code

git commit -am 'initial commit at v.0.1.3'

Nadat van een project de originele code naar de server geladen is, wordt ze zichtbaar in de “code” tab van de Sourceforge website, bv als:

Tree[987456] master/

Op die pagina krijg je ook de commando’s aangeboden die je nodig hebt om ssh/https/RO (read-only) toegang te krijgen.

– Clone

RO is genoeg om het project af te halen:

git clone git://git.code.sf.net/p/projectnaam/code projectnaam-code

Dit maakt een lokale directory projectnaam-code, verwijzend naar de structuur op de server (beetje verschillend van GitLab).

Om ook schrijftoegang te hebben moeten eventueel de rechten aangepast worden door de admin van het project, en moet je één van de voorgestelde read/write commando’s geven.

git branch --list toont: “* master”

fatal: remote error: access denied or repository not exported…

Als je oorspronkelijk enkel read-access hebt gevraagd (bij project clone), kan je nadien de instellingen aanpassen in het .git/config bestand. Volgens de documentatie:

git://PROJECTNAME.git.sourceforge.net/gitroot/PROJECTNAME/REPONAME (read-only)
ssh://USERNAME@PROJECTNAME.git.sourceforge.net/gitroot/PROJECTNAME/REPONAME (read/write)

Bij mij zag het er iets anders uit:

url = git://git.code.sf.net/p/projectnaam/code

url = ssh://USERNAME@git.code.sf.net/p/projectnaam/code

Zoek de regel die begint met git:// en verander hem naar ssh:// waarbij je “USERNAME@” toevoegt (maar dan je echte loginnaam natuurlijk).

4/9/2018

Git gebruik organiseren: branches, comit, merge

Filed under: — cybrarian @ 8:59 pm

(Reeks Githandboek (nl)commando’s vbbranch, mergeGitLab vbSourceForge vbgit en gambas)
Zie ook artikel over branches in git, (Engelstalig, 2015)

Branch commando’s

git branch (--list)= toon branches; git branch -a = toon alle (ook remote)
git branch -v = toon laatste commit messages
git branch Testing = maak nieuwe branch met naam “Testing”
git checkout Testing = overschakelen naar branch
git checkout -b Testing2 = maken en overschakelen naar nieuwe branch (die op het moment wordt gemaakt; combinatie van branch en checkout)
git merge bugfix = merge bugfix in huidige branch (vorige checkout branch, hier dus Testing)
git branch -d bugfix = verwijder branch (gaat niet? checked out?)

Branch, merge
Veelgebruikte struktuur van vertakkingen:

Master branch (-> production server)
Develop branch (-> staging server)

  • Feature branch
  • Hotfix branch
  • Release branch
  • Support branch

Git Branching and merging strategies beschrijft het zo:

Master – Test – Develop

Uit Master wordt initieel test gemaakt, uit test develop, en uit develop de feature branches.

Master - Test - Develop -- Feature-1
                        -- Feature-2

(

De Develop stage krijgt updates uit de feature branch die gewijzigd is;

.. Develop <-- Feature-1
           <-- Feature-2

De feature branches houden zich up to date door de wijzigingen uit de develop regelmatig af te halen (rebase). Hoe beter ze onderling op de hoogte blijven van de ontwikkeling, hoe minder conflicten later.

.. Develop --> Feature-1
           --> Feature-2

En alles van develop gaat uiteindelijk naar boven naar test, dan naar Master.

Vanuit Master wordt een Release 1.0 branch gemaakt.
Later vanuit Master een Release 2.0 branch.

De bugs die ontdekt worden in de Release branches, kunnen gepatcht worden (éérst op eerste versie waar die voorkomt)
bv comit op Release 1 –
van daaruit Merge naar Release 2
van daaruit Merge naar Develop (waarna het met rebase bij de feature branches komt, en waar het klaar zit voor de volgende release naar boven)

Overzicht van bestaande branches:

git branch --list

bugfix
* master
testing

Verschillende commits:

  • Merge
  • Fast-Forward
  • Rebase

Branch namen

Vb van een prefix die onderscheidend werkt:

feat-shortname bv: feat-stocklist
fix-shortname bv: fix-bugitem1234
hot-shortname bv: hot-fixCrashStartWithoutDb
rel-shortname bv: rel-v1-2
try-shortname bv: try-stocklistlocalcache

Branch lokaal-remote

Een lokaal gemaakte branch kan nadien gewoon naar de server gestuurd worden:

git push origin feat-1

of ook:

git push --set-upstream origin test
korte versie:
git push -u origin test

Voorbeeld 1 merge (recursive):

master: bestand 1 veranderd; commit
develop: bestand 2 veranderd; commit

git checkout master
git merge testing

Merge made by the ‘recursive’ strategy.
TweedeBestand.txt | 1 +
1 file changed, 1 insertion(+)

Voorbeeld 2 merge (fast-forward):

git checkout master
git checkout -b bugfix

Switched to a new branch ‘bugfix’

Wijzig bestand 2, en …

git commit -a -m "voeg commentaar toe"

[bugfix 02aa0b3] voeg commentaar toe
1 file changed, 1 insertion(+)

git checkout master

Switched to branch ‘master’
Your branch is ahead of ‘origin/master’ by 3 commits.
(use “git push” to publish your local commits)

git merge bugfix

Updating feb4282..02aa0b3
Fast-forward
TweedeBestand.txt | 1 +
1 file changed, 1 insertion(+)


Voorbeeld 3: opkuisen na merge

Daarna mag de tak van de bugfix weg:

git branch -d bugfix

Deleted branch bugfix (was 02aa0b3).

Als hij nog aktief staat krijg je een fout:

error: Cannot delete branch ‘bugfix’ checked out at ‘/home/..

Voorbeeld 4 merge (rebase)

branch master, test, feat-1, feat-2

wijzigingen feat-1, commit
wijzigingen feat-2, commit

git checkout test
git status

git merge feat-1

Updating f276191..804f3c6
Fast-forward
Project/.src/Filename.class | 12 +++++++++++-
… (bestanden en wijzigingen)
12 files changed, 291 insertions(+), 37 deletions(-)
create mode 100644 Project/.src/FGetText.class
create mode 100644 Project/.src/FGetText.form

git merge feat-2

Auto-merging Project/Changes.txt
Auto-merging Project/.src/MForm.module
Auto-merging Project/.src/FMain.class
Merge made by the ‘recursive’ strategy.
Project/.src/FMain.class | 2 +-
Project/.src/MForm.module | 1 +
… (bestanden en wijzigingen)
7 files changed, 646 insertions(+), 1 deletion(-)
create mode 100644 Project/.src/Class/CIntWeek.class
create mode 100644 Project/.src/Forms/FInterim.class

Om in mijn feat-1 alle wijzigingen van test al mee te krijgen:

git checkout feat-1
git rebase test

Opm:
– alhoewel niet iedereen voorstander is van rebase gebruik, zie ook fetch/merge, pull
– “never force push to a shared branch”, “don’t rebase on shared branches”, zegt Julia Evans

Voorbeeld 5 merge (diverged/rebase)

Zie hier…
http://linuxuser.copyleft.be/liglog/?p=7490

Merge Error 1

Fout op 1 bestand dat lokaal veranderd is, maar enkel een .settings bestand is dat mag overschreven worden:

git reset --hard
Daarna terug de merge.

Merge Error 2

git checkout test
git merge feat-1

Auto-merging Proj/Changes.txt
CONFLICT (content): Merge conflict in Proj/Changes.txt
Automatic merge failed; fix conflicts and then commit the result.

git status

On branch test
You have unmerged paths.
(fix conflicts and run “git commit”)
(use “git merge –abort” to abort the merge)

Changes to be committed:

modified: Proj/.src/ProjForms/FInterim.class
modified: Proj/.src/ProjForms/FInterim.form

Unmerged paths:
(use “git add …” to mark resolution)

both modified: Proj/Changes.txt

Inderdaad, de Changes.txt file is gewijzigd in beide takken. Als je het bestand in de huidig aktieve branch (de merge branch Test in dit geval) opent, zal je aanduidingen zien van de overlapping:

0.1.2 
...
< <<<<<< HEAD

FFactoring:
0.1.2 
=======
>>>>>>> feat-interim

HEAD : geeft de “hoofd”-branch aan, waar naartoe gemerged wordt, waarna die tekstversie
====== : geeft de scheiding aan naar het begin van de ingevoegde (feature-,..) branch en de bijhorende tekstversie
Ook de ingevoegde branch naam staat er achter.

Maak van de tekst de versie die het uiteindelijk moet worden, combineer beide stukken of gooi wat weg.
Stage de veranderingen met git add .
Commit de veranderingen met git commit -m "Resolve merge conflict by combining and ordening changes.txt"

Probeer daarna opnieuw een merge.

29/9/2017

GIT commando’s, vb, problemen

Filed under: — cybrarian @ 10:45 pm

(Reeks Githandboek (nl)commando’s vbbranch, mergeGitLab vbSourceForge vbgit en gambas)

Commando’s

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

Je kan op dezelfde manier je editor en diff tool instellen.
Waarde wordt bewaard in ~/.gitconfig (in opensuse).

Bekijk de instellingen daar, of zoals de laaste lijn met –list.
(antwoord leeg=geen instellingen)

Deze configuraties worden met –global eenmalig gedaan; je kan ze zonder global uitvoeren voor een project met afwijkende gegevens (na git init in de projectdirectory):

git config user.name "mijn andere naam"
git config user.email anderemail@mijndomein.tld

Deze komen terecht in de lokale .git/config

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/

Als het project via de webinterface is aangemaakt zal je meestal een “text” bestand README.md in vinden;
extentie md staat voor markdown, voor eenvoudige opmaak nummering enz met # heading *bold* -listitem enz

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*)

Waar komt clone terecht?
Als je geen git init gedaan hebt, maar onmiddellijk git clone:
– clone van het project “GitUse”
– commando van in de directory ~/Git/GitUsePrj>
Dan wordt ~/Git/GitUsePrj/GitUse gemaakt, met daarin de verborgen .git directory.

Git files in mijn project? (upd 2024)
Inderdaad wordt er een verborgen directory gemaakt met de files die git nodig heeft voor zijn werk. Wil je terug een “zuivere” kopie zonder die git files, een “export”, dan kan je bv een “archive” laten maken door git-archive; daar zit geen .git directoy in.

git status = overzicht lokale(!) toestand, bv nieuwe bestanden enz (! zie git fetch)
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 add . voegt alle nieuwe files en dirs toe (behalve ignored)
git add -u kijkt naar de wijzigingen aan de tracked files.
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 (m=message)" = 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 commit --amend vergist in tekst van commit? edit..

git log = geeft soort “history”, in volgorde al de laatste handelingen (in editor; verlaten met :q )
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 push origin master)

git fetch = toestand van de online versie ophalen (waardoor je -lokaal- de status kan vergelijken met de bijgewerkte toestand online tot dat punt)

git pull korteNaam master = alles direkt binnenhalen om te werken. (Eigenlijk fetch + auto merge; je krijgt geen kans meer om de verschillen te bekijken zoals na fetch!)

git diff = verschillen zien tussen working directory en staging (standaard editor :q om te verlaten)
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 diff --color > ~/diff.txt verschillen inclusief kleurcodes bewaren om terug te kunnen zien met bv cat diff.txt

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 branch --list = toon branches
git checkout branchename_voor_mij = overschakelen naar branch
git branch -d branchname_voor_mij = verwijder branch (gaat niet: checked out?)

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 erin of .gambas; .settings; .*~ eruit: Gebruik .gitigrnore (gambas maakt nu een .gitignnore bij creatie van een project).
  • Wat met .png, .jpg, enz. Apart opslaan omdat ze binary zijn? Kunnen mee in ropository maar de diff is enkel op tekst.
  • 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? Hier ben ik nu geneigd om verschillende “users” te maken op de verschillende toestellen/locaties. Maar als ieder van die users dezelfde branch “dev” gebruikt wordt het snel weer verwarrend. Je moet telkens de branches met dezelfde naam mergen.
    Ik plan nu:

    • workmail@domainwork.tld - > branch "devwork"
    • secondwork@webmail.tld - > branch "devlaptop"
    • personalmail@hosting.tld - > branch "devhome"

    Dan is het ook duidelijker dat je inderdaad moet mergen.

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…)

29/6/2017

Git voorbeeld: gitlab

Filed under: — cybrarian @ 3:31 pm

(Reeks Githandboek (nl)commando’s vbbranch, mergeGitLab vbSourceForge vbgit en gambas)

Samenwerken of verdeeld werken

Een van de online diensten die git aanbieden is gitlab.com

Ik heb die gebruikt als voorbeeld bij mijn git artikel.

Registratie
Je maakt een account aan met een naam, wachtwoord en e-mail adres. Op dat laatste krijg je dan een bevestigingsmail met een link.
Je kan een icoontje voor jezelf kiezen (“avatar”) zoals in veel online diensten, of het wordt herkend als je geregistreerd hebt bij een centraal register van avatars.
Je kan je ssh key (het publieke deel) in de user settings invoegen.

Project

Bij het maken van een nieuw project moet je nadenken over de “namespace”, want het is niet eenvoudig om die nadien te wijzigen. De belangrijkste vraag is of je het project onder je eigen naam/namespace maakt;
– naam/project
of onder de naam van een groep: (zie ook verder Group)
– groupnaam/projectnaam)

Als je samen met anderen wil werken is group aan te raden (zou eigenlijk standaard moeten zijn).
Ook als je een project hebt waar verschillende onderdelen zullen bestaan, of je op een andere manier programma’s wil groeperen, gebruik je een project. Je kan zelfs daar nog sub-projecten van definiëren.

Hoofd/kleine letters: Hoewel je de group en projectnaam met een hoofdletter kan laten beginnen, wordt de directory van je project (eigenaardig genoeg) met een kleine letter geschreven in het bestandssysteem (althans bij GitLab – is dit een toegeving aan Windows gebruikers? Het is in ieder geval vervelend als Linux gebruiker, waar MijnMap niet hetzelfde is als mijnmap).

Na create blank project in de web-interface krijg je in te vullen:

  • name
  • URL (wordt aangeboden op basis van je naam en huidige project
  • slug (“Mijn Project” wordt “mijn-project” voor directory vorming)
  • description
  • visibility level (private staat standaard aan, groep heeft toegang)
  • Initialise with README is aankruisbaar, maakt README.md

Wijzigen
Om het nadien te wijzigen moet je extra opties aktiveren (Project Settings, Advanced, Expand), Transfer project, Select a new namespace; daar kan je kiezen uit bestaande projecten. Je moet nog eens bevestigen met het intypen van de projectnaam ter controle.
(De rode omgeving geeft aan dat er onverwachten en onaangename gevolgen kunnen zijn, zorg zeker voor een backup).

Je moet daarna ook je instellingen aanpassen op je lokale git-werkstation; je kan de bestaande opvragen met:

git remote -v
wijzig met hetzelde commando als het opzetten:
git remote set-url
git remote set-url origin git@gitlab.com/GrpProject/projectname.git
(zowel de fetch als de push werden aangepast)

Als je in de web-interface een oude URL gebruikt die je bewaard had, krijg je een viendelijke foutmelding (en wordt je indien mogelijk doorverwezen):

Project ‘username/projectname’ was moved to ‘GrpPrjname/projectname’. Please update any links and bookmarks that may still have the old path.

Prive of publiek
Gitlab laat op dit moment toe om een account aan te maken en je project in te stellen als:

  • publiek open source project
  • privé project

Het privé project belet je niet om toch met anderen samen te werken.
Voor het project heb je Settings: “General-Members-Integrations-Repository-Pipelines-Pages-Audit Events”; kies “Members”, “Select members to invite”. Rol en vervaldatum kunnen ingesteld worden.

Repository
(upd 12-10-2018)
Als je het project via de webinterface (website) van GitLab aanmaakt, kan je
* de repository klaarmaken om met een “clone” commando af te halen (initialisatie van de “master”); daarbij kan je de README.md invullen.
* onmiddellijk een LICENSE kiezen; met een eenvoudige klik kan je een licentie bestand toevoegen aan je repository. Je kan kiezen uit een lijstje waarin bv GPL en andere licenties voorkomen. Als je bv GPL3 kiest, wordt er een bestand LICENSE gemaakt met als inhoud de GPL3, en als commit geregistreerd.
(upd: dit lijkt ondertussen veranderd te zijn, volg online instructies)
Afhalen met:
git clone git://git@gitlab.com:userORgroup/projectname.git
(of gebruik hun web-interface om de juiste url te knippen/plakken, zoals hier beschreven.)
Meer basiscommando’s

cybr@penguin:~/Git/NieuwPrj> git clone git@gitlab.com:devgroup/nieuwprj.git
Cloning into 'nieuwprj'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.

In directory Test: git clone git@xxx/persis3-prj.git
maakt in de dir waar je staat:
persis3-prj
met daarin: README.md

dus je moet zelf niet die prj directory aanmaken. Als je een niveau prj directory hebt met aanverwante files en ook daarin een application directory met de broncode, kan je die zo automatisch maken door de clone opdracht.

Groep
Daarvoor maak je een groep aan (menu “+”, new group), die je een naam naar keuze geeft; ik hou hem vrij algemeen omdat het gemakkelijk is om veel projecten te delen met 1 groep.

Daarna ga je de leden voor de groep kiezen. Zelf ben je al lid doordat je de groep gemaakt hebt. Je kan een andere account opzoeken in de bestaande gitlab accounts, en lid maken van de groep. Je kan zoeken op naam, e-mail adres. Je kan de duur instellen van het lidmaatschap, en het niveau (Guest, Reporter, Developer, Master, Owner); Owner ben je zelf.

De andere partij krijgt dan een mail met “Access to the NewGroupName group was granted”. Hij kan met een klik weer uit de groep stappen.

Die andere account kan natuurlijk ook een andere account van jezelf zijn, waarbij je bv thuis een andere account gebruikt dan op het werk.

Groepsproject
Het is de bedoeling dan een nieuw project te maken binnen die groep. Je kan een bestaand project aan die groep toevoegen / overzetten van persoonlijk project naar groepsproject; je gaat het importeren als het ware, maar dat houdt in dat de naam van het project (url) verandert, en dat kan onverwachte problemen geven wordt opgemerkt door gitlab. Je kan natuurlijk ook gewoon een nieuw project maken en daar de bestaande code van het moment in invoeren.

Rechten
De volgende stap is dan de toegangsniveau’s instellen. Hier bepaal je de fijnere betekenis van bv Developer; maar ze hebben al een ingevulde standaardbetekenis volgens deze tabel: (Permissions).
Guest Reporter Developer Maintainer Owner
– Rondkijken kan iedereen, labels toekennen bijna iedereen.
– Reporter kan met issues/requirements/tasks werken
– Developer repo’s/project wiki/security dashboard…
– Maintainer team/members, repo protection…
en de Master kan een project maken in de groep.

Afhalen
(upd 2017-09-17)
Als je ingelogd bent op de site kan je ook in je browser door de broncode bladeren; je ziet het voorgesteld als een bestandssysteem met betanden. Je kan iedere individuele file bekijken of afhalen als download.
Op hoger/het hoogste niveau kan je ook het project afhalen (symbool van pijl naar beneden op plat streepje); je krijgt dan de keuze aangeboden om het als een gecomprimeerd pakket (bv tar.gz) te downloaden.

Project verwijderen
(upd. 29/06/2021)
Ingelogd, “settings” (linkerkolom), “General”, “Advanced” (openklappen), helemaal onderaan “Delete project”
Daar staat ook bij “Delayed project deletion / Disabled”, en onderaan de knop “Delete project”.
Er wordt nog gevraagd of je “absolutely sure” bent, en je moet iets (bv de projectnaam) typen om te bevestigen.
Je kan daarna het project terug aanmaken met dezelfde naam, het krijgt een nieuwe project ID.

Documentatie-wiki
Eén van de opties in de linkermenubalk van GitLab is de wiki, die je kan gebruiken voor documentatie. Het startscherm heeft een knop “Create your first page”.

Issue tracker
De issue tracker wordt gebruikt bij het maken van voorstellen (feature proposal), fouten te melden (bug reporting), enz.
Issue tracker menu leidt naar de lijst of naar het issue board, waar je issues kan slepen naar bv de labels “To Do”, “Doing”, en andere zelf te maken onderverdelingen, waarnaar ze ook verder gesleept kunnen worden. Zo krijgen de issues een traject.

8/6/2017

“Pro Git”-boek ook in Nederlandstalige versie

Filed under: — cybrarian @ 3:47 pm

(Reeks Githandboek (nl)commando’s vbbranch, mergeGitLab vbSourceForge vbgit en gambas)

Pro Git
Het boek is origineel in het Engels uitgegeven, en is in tweede versie te vinden op https://git-scm.com/book/en/v2
Geschreven door Scott Chacon en Ben Straub en uitgegeven bij Apress.
Ze kozen voor de “Creative Commons Attribution Non Commercial Share Alike 3.0 license”, waardoor het ook vertaald kan worden.
Een papieren versie bestaat ook en is waarschijnlijk te vinden via Amazon.com.

De Nederlandstalige versie (is gebaseerd op de eerste versie) en bevat:

6/6/2017

git

Filed under: — cybrarian @ 2:04 pm

(Reeks Githandboek (nl)commando’s vbbranch, mergeGitLab vbSourceForge vbgit en gambas)

Git is het broncode-beheersysteem dat opgestart werd door Linus Torvalds, en nu door/voor honderdduizenden projecten gebruikt wordt. Het maakt samenwerken aan broncode en aftakken plus terug samenvoegen mogelijk. Het is een client-server systeem, waarbij het serverdeel ook gebruikt kan worden van een hoster die het als online dienst aanbiedt, zoals github, gitlab, sourceforge…

ClientSecureConceptTerminologieCommando’sVragenLinks – ..gebruik..
Images: “Pro Git book” by Scott Chacon en Ben Straub, Creative Commons SA licentie


Client
git is het commando op de commandolijn, dat je kan zoeken in je software repository voor installatie (in bv OpenSUSE zoek je in Yast naar “git”, dat zal de nodige software-onderdelen afhalen, een 15-tal; * zie dependencies hier ).
De server (deamon) moet je apart installeren, maar die heb je niet nodig als je een externe dienst gebruikt.

Secure
Voor de communicatie van git heb je een publiek/private sleutel nodig; als je die nog niet hebt, in de terminal:
ssh-keygen -t rsa -C "mijnemail@mijndomein.tld" -b 4096
Resultaat in ~/.ssh/id_rsa.pub
Als je een online dienst gebruikt als gitlab, krijg/maak je een combinatie e-mail (of username) en wachtwoord. Daarmee moet je in de online instellingen je public key invoeren.
Per e-mail krijg je een bevestiging (en ook zichtbaar in de online dienst).

Upd: gitlab raadt ed25519 aan ipv RSA; dus: ssh-keygen -t ed25519 -C "mijn laptop"
Daarna vanop de commandolijn: ssh -T git@gitlab.com

Welcome to GitLab, @cybrarian.copyleft!

Tenminste als je voordien
git config user.name "cybrarian.copyleft"
en
git config user.email cybrarian@somevaliddomain

Concept

  • git bewaart een soort “snapshot” van een projectdirectory, waarin het een file bewaart als die veranderd is, anders een ‘link’ naar de bestaande file (in vorige snapshot)
  • git werkt zo veel mogelijk lokaal. Je hebt zelf, lokaal, een “werkdirectory”, een “staging area” en een “repository” (git directory)
  • je haalt het/een project naar je werkdirectory met clone (of “checkout”)
  • lokaal is een gewijzigde file “changed”, “staged” of “comitted”
  • het gebruikt je username en e-mail adres naast de ssh keys
  • om te vermijden dat allerlei lokale tijdelijke bestanden (van bv tekstverwerker) in je repository terechtkomen, kan je een “.gitignore” bestand gebruiken (vb).

Terminologie:

“Untracked” files: bv maak test.txt = nieuw bestand vastgesteld. (niet “in” git)
“Tracked”: bestand wordt opgevolgd door git (“index”). Na bv git add test.txt – staat dan als “new file” in status.
“Unmodified” files: bestanden die in opvolging staan (1e added) maar niet veranderd zijn sindsdien (lokaal, door jezelf).
“Modified”: bestanden in opvolging (tracked) en waar je aan gewerkt hebt. Ze zijn nog niet “staged”, dat doe je met “git add”.
“Staged” : changes to be committed; bestand in opvolging dat veranderd is én klaar staat om met een commit opgenomen te worden in de repository.
“Staging” area: waar Git de wijzigingen volgt. Op te volgen bestanden moeten in de staging area terechtkomen met git add. Deze wordt later gesynchroniseerd naar je lokale repository, die later naar de online kan geduwd worden.
“Comitted”: bestanden die staged zijn finaal in je lokale repo* opnemen met commit en voorzien zijn van commit messages, een korte/lange beschrijvende tekst die later ook zichtbaar wordt voor deze commit.
*(er is nog niet gesynchroniseerd met de online repo)
Master: standaard aangemaakte ontwikkelingstak, stam van de ontwikkelingsboom. Meestal dus de branch waarvan andere afgeleid worden.
Branch: (zij)tak, afgesplitst van tak of master (deelontwikkelingen doen, onderscheid maken tussen development en release, ..). Voor git een (verzetbare) pointer (met label) naar een commit.
Head : een soort pointer die aangeeft welke snapshot van de branch lokaal aktief is (“checked out”).
Tag : referentie om bepaald punt in ontwikkeling te markeren
Node: iedere commit maakt een nieuwe node of knooppunt in de ontwikkelingsboom.
.
(https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository)

(ingekort 29/9; Zie ook git commando’s, vb, problemen)

(meer…)

4/1/2013

Digitale recorder: ICD-P620: 1LPoS

Filed under: — cybrarian @ 6:40 pm

Een vraag van een gebruiker: ik wil mijn digitale voice-recorder ICD-P620 aansluiten op een Linux computer om de bestanden ervan over te zetten en eventueel te bewerken als dat kan.

Helaas, deze recorder mag dan nog zo goed werken, om aan te sluiten op Linux is dit 1 Little Piece of Shit. Alleen een “32-bit Windows” programma is bijgeleverd op CD, en met geen enkel ander systeem kan je er iets mee doen. Geen Linux-drivers te vinden, zelfs geen Mac software beschikbaar!

Je kan het toestel wel aansluiten met een mini-usb naar usb-aansluiting, en op het scherm van de recorder krijg je “PC LINK”, maar dat geeft geen mount-reaktie op de computer.

lsusb geeft in de laatste lijn de hardware weer:

cybrarian@akoya:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 002 Device 002: ID 054c:0271 Sony Corp. IC Recorder (P)

Maar daar stopt het.
(iemand die het wel aan de praat krijgt: laat het weten!)

18/8/2006

Gimp voor bij de digitale camera

Filed under: — wigosix @ 5:32 pm

gimp_installedEen student die voor een opleiding videoreportage een Mac bijeengespaard had, krijgt een jaar later een digitale camera. Geld voor een programma als Photoshop is er niet.*

Niet alleen als je je geld anders wil besteden, maar ook als er geen winkel in de buurt / of niet open is op dit moment, kan je “Gimp” proberen. Het is een programma dat foto’s en andere “pixel”beelden kan bewerken, of waarin je ook gewoon vanaf nul kan beginnen tekenen.
In een vroeger artikel op deze site las je al dat Gimp op Mac een basisprogramma nodig heeft, “XFree86”. Dankzij die onderlaag is het mogelijk programma’s te draaien die voor andere unix-achtige systemen als Linux gemaakt zijn, waar Gimp erg populair is. Ik ga er dus van uit dat je diezelfde voorbereiding achter de rug hebt.

De site waar ik Gimp voor Mac vond zit op de bekende “sourceforge”:
http://gimp-app.sourceforge.net/
Op een paar minuten zou je de 86 Mb met een breedbandverbinding moeten afgehaald hebben.

Na de download heb ik een bestand Gimp-2.2.11.dmg van 82,6 Mb in mijn browser download map.
Als ik erop klik worden 4 bestanden beschikbaar:

Gimp.app
LICENSE.txt
Turn On X11 Focus Follows Mouse.app
README.txt

Ik trek de “gimp.app” naar de “applications” in de “finder” (Engelstalig systeem hier), maar starten doet hij nog niet. Ik heb me vergist en op dit systeem staat nog geen unix-“XFree” omgeving. Ofwel kan ik hem downloaden, ofwel van de mac systeem CD’s halen, wat ik nu verkies. Ik gok op CD 2 omdat ik denk dat het minder vanzelfsprekend is om te installeren. Fout dus; we zijn in mac-land en daar moet je beginnen met CD1. Op een paar minuten is het geïnstalleerd (ik volgde de vroeger vermelde instructies van deze site).

Nu op de “Gimp” klikken in de applicaties … en daar opent het “X” systeem. Ik moet daarna terug op Gimp klikken, de volgorde is blijkbaar eerst X opstarten, daarna het programma dat er in draait.

Gimp heeft een verwelkomingsscherm waarbij het de eerste instellingen doet: de installatie maakt een aantal mappen die nodig zijn, je kan een buffer en een swap folder kiezen (ik neem de voorgestelde). Gimp start met een tip en een vester met de werktuigen, een ander met de lagen/kanalen/paden. De installatie is klaar, het programma werkt. Op internet is meer info te vinden over het gebruik, en er bestaan ook boeken over. Maar ook als je dingen uitprobeert kan je waarschijnlijk al ver genoeg geraken voor de basisbewerkingen.

De officiele pagina voor gimp op mac is http://www.gimp.org/macintosh/.
Het Documentatie centrum is Engelstalig,
evenals deze Gebruikers site.
MacGimp.org is een goede nieuws-en informatie site voor Gimp op Mac.
Bij het ontbreken van de X omgeving (XFree86) vind je download en/of info op deze site, die ook vertelt dat het vanaf OS-X versie 4.x bijgeleverd is op de CD’s met het systeem.

* Een blik op een willekeurige website:
Adobe Photoshop CS 2 in het NL kost meer dan 1000 euro; de Engelstalige versie vind je een paar honder euro goedkoper. Een “Academic” versie kost – waarschijnlijk na het voldoen aan formaliteiten – toch nog altijd bijna 350 euro. En het programma Adobe Photoshop Elements, dat aangeraden wordt voor eenvoudigere fotobewerking, kost in de UK versie zo’n 90 euro.
.

26/12/2023

OpenSUSE update naar 15.5 (van 15.4)

Filed under: — cybrarian @ 1:26 pm

Check de hudige versie:
cat /etc/os-release

NAME=”openSUSE Leap”
VERSION=”15.4″
ID=”opensuse-leap”
ID_LIKE=”suse opensuse”
VERSION_ID=”15.4″
PRETTY_NAME=”openSUSE Leap 15.4″

Algemeen

  1. alle updates huidig systeem bijwerken
  2. overbodige repo’s afzetten
  3. check releasever gebruik in repo’s
  4. repo’s over naar nieuwe releasever
  5. upgrade
  6. reboot
  7. eventueel terug aan te zetten repo’s

1. Updates bijwerken: foutmelding gb3

zypper ref
zypper up

Retrieving repository ‘home:munix9Gb3’ metadata ——————————————————————[\]
Warning: Digest verification failed for file ‘327090e2e7480eab1952ae5782979551cf04b046502ec8620de3852f80d77c27-primary.xml.gz’
[/var/tmp/AP_0xctCzEb/repodata/327090e2e7480eab1952ae5782979551cf04b046502ec8620de3852f80d77c27-primary.xml.gz]

expected 327090e2e7480eab1952ae5782979551cf04b046502ec8620de3852f80d77c27
but got f5b2b13e0208bef2cad0e68885430e4b801d8cf3897b0fa9cc2ff07167f6a4d7

Accepting packages with wrong checksums can lead to a corrupted system and in extreme cases even to a system compromise.

However if you made certain that the file with checksum ‘f5b2..’ is secure, correct
and should be used within this operation, enter the first 4 characters of the checksum
to unblock using this file on your own risk. Empty input will discard the file.

Unblock or discard? [f5b2/…? shows all options] (discard):
Retrieving repository ‘home:munix9Gb3’ metadata ……………………………………………………..[error]
Repository ‘home:munix9Gb3′ is invalid.
[https-download.opensuse.org-c09d2c08|https://download.opensuse.org/repositories/home:/munix9/15.4/] Valid metadata not found at specified URL
History:
– 327090e2e7480eab1952ae5782979551cf04b046502ec8620de3852f80d77c27-primary.xml.gz has wrong checksum
– Can’t provide ./repodata/327090e2e7480eab1952ae5782979551cf04b046502ec8620de3852f80d77c27-primary.xml.gz

Please check if the URIs defined for this repository are pointing to a valid repository.
Skipping repository ‘home:munix9Gb3’ because of the above error.

2. Check huidige repo’s

zypper repos --uri >~/Leap154-repos-uri.txt

Links
https://en.opensuse.org/Package_repositories#Official_Repositories
https://gist.github.com/oleksis/63f835f8df61f2e99eaf31c20672dfdb

Release variabele gebruikt?

sudo cat /etc/zypp/repos.d/repo-oss.repo

[repo-oss]
name=Main Repository
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/distribution/leap/$releasever/repo/oss/
type=rpm-md
keeppackages=0

Check naar 15.5:
sudo zypper --releasever=15.5 lr -uE

Warning: Enforced setting: $releasever=15.5
Repository priorities are without effect. All enabled repositories share the same priority.

# | Alias | Name | Enabled | GPG Check | Refresh | URI
—+————————————–+————————————————————–+———+———–+———+——————————————————————
1 | Science_Espeak-ng | Science_Espeak-ng | Yes | (r ) Yes | Yes | https://download.opensuse.org/repositories/science/15.4/
6 | https-download.opensuse.org-49d59322 | home:Sauerland | Yes | (r ) Yes | Yes | https://download.opensuse.org/repositories/home:/Sauerland/15.4/
10 | https-download.opensuse.org-c09d2c08 | home:munix9Gb3 | Yes | (r ) Yes | Yes | https://download.opensuse.org/repositories/home:/munix9/15.4/
16 | repo-backports-update | Update repository of openSUSE Backports | Yes | (r ) Yes | Yes | http://download.opensuse.org/update/leap/15.5/backports/
21 | repo-non-oss | Non-OSS Repository | Yes | (r ) Yes | Yes | http://download.opensuse.org/distribution/leap/15.5/repo/non-oss/
22 | repo-oss | Main Repository | Yes | (r ) Yes | Yes | http://download.opensuse.org/distribution/leap/15.5/repo/oss/
24 | repo-sle-update | Update repository with updates from SUSE Linux Enterprise 15 | Yes | (r ) Yes | Yes | http://download.opensuse.org/update/leap/15.5/sle/
26 | repo-update | Main Update Repository | Yes | (r ) Yes | Yes | http://download.opensuse.org/update/leap/15.5/oss/
27 | repo-update-non-oss | Update Repository (Non-Oss) | Yes | (r ) Yes | Yes | http://download.opensuse.org/update/leap/15.5/non-oss/

Er zijn er een paar niet mee (die blijven hier 15.4 tonen: munix, Sauerland, science).
– voor sience bestaat 15.5.
– munix ook.
Dus munix en science kunnen omgezet worden naar $releasever.
Sauerland heeft iets vreemd gedaan met zijn directorie-naam:
https://download.opensuse.org/repositories/home:/Sauerland/openSUSE_Leap_15.5/. Ik zet hem even af en zal hem nadien manueel aanpassen voor ik hem terug aanzet..

Update:
sudo zypper --releasever=15.5 ref
sudo zypper --releasever=15.5 dup -y

Kernel is nu 5.14.21


Na de upgrade werkt het netwerk niet meer?
Zie ook Upgrade verliest netwerk

28/11/2023

Bluetooth probleem openSUSE Tumbleweed

Filed under: — cybrarian @ 12:53 pm

Helaas werkt de bluetooth niet goed op mijn laptop (HP Probook 840 G2) met openSUSE Tumbleweed.

Een bestand van mijn smarpthone (met Sailfish) via bluetooth naar mijn desktop sturen gaat niet op deze laptop, hoewel de verbinding tussen de apparaten wel gemaakt is.

Eerst gebeurt niets; dan vanuit laptop verbonden met smartphone: “verbonden”, terug bluetooth sturen: er gebeurt niets. (normaal moet er nu een venstertje opengaan dat bevestiging vraagt om het gestuurde bestand te ontvangen; zo gebeurt het op een andere laptop met dezelfde smartphone).

Het icoon van bluetooth staat als “verbonden”, zowel op smartphone als laptop;
Laptop:
XPeria XA2 connected
Paired: yes
Trusted: yes

Op een andere laptop gaat het wel, dus waarschijnlijk een hardware/drivers probleem op deze.

Oplossing

Installeer bluez-obexd:

sudo zypper in bluez-obexd

Starten:

systemctl --user start obex.service
systemctl --user enable obex.service

Log
Mijn zoektocht … (meer…)

26/9/2023

Opi en VRT Max

Filed under: — cybrarian @ 10:38 pm

Wie met een standaard vrije software-installatie naar VRT Max wil zien, wordt tegenwoordig geplaagd door 2 dingen:
– hun inbreuk op de privacy
– hun hang naar DRM.

Privacy

Je kan alleen nog kijken als je een “account” aanmaakt, die minstens gekoppeld is aan een e-mail adres. En aangezien de meeste mensen voor dat soort dingen een gmail adres gebruiken, kunnen we ..euh .. zeker zijn van de bescherming van onze privacy.

Codecs
Ze kiezen er niet voor om eenvoudige codecs te gebruiken, maar wel dingen die vervuild zijn met DRM: Digital Rights Management. Daardoor moet je als Linux gebruiker meestal even op zoek naar de juiste software-onderdelen om niet vervelende error 200’s of zo te krijgen.

Codecs-repo
De meeste vrije softwaregebruikers weten het ondertussen wel: voor heel wat media heb je extra niet-vrije codecs nodig. Die vallen niet onder dezelfde vrije licenties als het OS, en daarom moet je ze apart afhalen, bv door een “packman” repository in te schakelen. (https://en.opensuse.org/SDB:Installing_codecs_from_Packman_repositories)

Opi

Tegenwoordig kan het ook gemakkelijk met “opi”:
OPI = OBS Package Installer
https://github.com/openSUSE/opi

sudo zypper install opi

The following 2 NEW packages are going to be installed:
opi python3-termcolor

Daarna kan je een “opi” commando gebruiken:

opi codecs

Do you want to install codecs from Packman repository? (Y/n)

En allerlei andere bevestigingen verder, ben je klaar om de DRM inhoud te consumeren.

15/5/2023

Kyocera printer installeren

Filed under: — cybrarian @ 10:47 am

Een niet meer al te nieuwe Kyocera printer uit de voorraadkast gehaald (FS 1370DN) en aangesloten op een huidige desktop met OpenSUSE 15.4. En nu installeren, waarbij Kyocera hier echt uitblinkt in zijn Linux ondersteuning!

Drivers
Eerste stap is zoeken naar drivers. Er is een (Belgische versie van de) website:

https://www.kyoceradocumentsolutions.be

Maar door een zoek op het model kwam ik rechtstreeks op de downloadpagina terecht, die me verwelkomt met:

We have detected your Operating System: Linux

Ze bieden twee mogelijkheden aan:

  • Linux UPD driver with extended feature support (5.0) 287 MB ZIP
  • Linux PPDs (PPD 8.4) 51 KB ZIP

Ik download de 2 files:

  • FL-1370D_Linux.zip
  • KyoceraLinux-Phase5-2018.08.29.zip

FL-1370D_Linux

Uitgepakt geeft een mapje “Linux” met daarin een Readme.htm en taalmappen:

  • English
  • French
  • German
  • Italian
  • Portugese
  • Spanish

In bv het mapje English zit Kyocera_FS-1370DN.ppd

In printer instelling (yast) ppd geladen.
Ok testpagina en print werken (aansluiting via USB poort).

KyoceraLinux-Phase5

Dit is het “kyocera print panel” hulpprogramma dat je kan gebruiken in plaats van de cups-webinterface.

KyoceraLinux-Phase5-2018.08.29.zip uitpakken geeft KyoceraLinux-Phase5-2018.08.29.tar.gz

KyoceraLinux-Phase5-2018.08.29.tar.gz uitpakken geeft:

mappen

  • CentOS
  • Debian
  • Fedora
  • OpenSUSE
  • Redhat
  • Ubuntu

en een License.txt en een ReadMe bestand.

De License.txt bevat info over licenties van OpenSSL, SSLeay, curl, PyPDF2

De Readme file legt uit hoe te gebruiken voor de verschillende distributies, bv voor opensuse met gebruik van zypper, redhat met yum, debian/*buntu met dpkg of apt-get, en zelfs uitleg hoe te de-installeren.

De distributiemappen bevatten blijkbaar de programma’s voor 32-en 64-bit systemen:

OpenSUSE:

/EU
– kyodialog_i386
– kyodialog_x86_64

/Global
– kyodialog_i386
– kyodialog_x86_64

Met telkens een gelijknamige .rpm in de map, bv kyodialog-0.0-x86_64.rpm

Dus:
zypper install kyodialog-0.0-x86_64.rpm

Verouderd

Dit geeft vanaf OpenSUSE 15.4 foutmeldingen op het ontbreken van python2-Pillow:

PrinterDrivers/KyoceraFS1370DN-Phase5/OpenSUSE/EU/kyodialog_x86_64 # zypper install ./kyodialog-0-0.x86_64.rpm
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
_
Probleem: niets levert 'python2-Pillow' nodig door het te installeren python2-reportlab-3.4.0-3.6.1.x86_64
Oplossing 1: kyodialog-5:0-0.x86_64 niet installeren
Oplossing 2: python2-reportlab-3.4.0-3.6.1.x86_64 afbreken door enige van zijn afhankelijkheden te negeren
_
Kies uit de bovenstaande oplossingen door een nummer of kies (a)nnuleren [1/2/a/d/?] (a): 1
Afhankelijkheden oplossen...
Pakketafhankelijkheden oplossen...
Geen activiteit.

python2-Pillow bestaat voor tumbleweed en openSUSE 15.3, niet voor 15.4 (op dit moment). In openSUSE 15.4 is wel python3-Pillow aanwezig (reeds geïnstalleerd).

Ideaal zou dus een meer recente driver zijn… zie ook:
https://github.com/shoeper/kyocera-printer-install

With kyodialog 8+ the python issues are fixed. Although it is not listed it supports the FS 1370 and contains relevant updates (old driver has to be removed, beforehand).

Dat zou goed nieuws kunnen zijn; in plaats van de oude proberen te installeren, neem je onmiddellijk de nieuwe drivers van de github pagina. Hoewel dat niet officieel gepubliceerd is zouden ze ook werken voor de FS 1370 printer zeggen ze hier.

Nieuwe versie

* De vermelde URL is https://www.kyoceradocumentsolutions.de/content/download-center/de/drivers/all/Linux_Universal_Driver_zip.download.zip

Daarin zit momenteel kyodialog-9.2.0.
Installeren:
zypper install ./kyodialog-9.2-0.x86_64.rpm
(detail zie kyodialog install log..*)

Nadien krijg je in je menu “Instellingen” het item “Kyocera print panel”.
Privacy policy kiezen. Kyocera print panel opent.

Nb: de printer keuze in de tool is leeg (lijkt of printerdriver nog niet geïnstalleerd is).

* Printerkeuze
Start Yast, Printers, FS1370DN wordt automatisch gedetecteerd op usb poort. Kies en wijzig: alles wordt ingevuld, (check formaat A4 bv).
Huidig stuurprogramma: FS-1370DN KPDL. “Ok”, “Testpagina afdrukken”.
Ok, op deze manier zijn de printerdrivers dus ook wel meegekomen en verloopt de installatie gemakkelijk.

* Readme?
Mogelijke problemen worden beschreven in het Readme bestand.

* Data verzamelen?
Het programma gebruikt Google Analytics, om “hun product te verbeteren”.
Afzetten:
kyodialog5 --telemetry false
(true om aan te zetten; kan ook in About menu door op logo Kyocera te klikken enz.)

* De-installeren:
sudo zypper remove kyodialog

(*) kyodialog install log: (meer…)

Powered by WordPress