Nedávný update GitLabu přinesl několik přejmenování. Nejvýraznější změnou pro nás je zobecnění Issues na Work items. Úpravy materiálů reflektující tyto změny se pokusíme provést co nejdříve.

Každý student má přístup do následujícího repozitáře (jako obvykle, LOGIN je váš CAS/SIS login).

gitolite3@linux.ms.mff.cuni.cz:config-LOGIN

Tento repozitář je sice nejdříve prázdný, ale můžete si do něj uložit vaší konfiguraci pro Shell a Git, kterou chcete sdílet napříč více počítači.

Taková konfigurace můžete zahrnovat věci jako

  • nastavení vášeho editoru (tj. $EDITOR),
  • nastavení obvyklých aliasů pro ls,
  • nastavení vaší Git identity (git config ...) nebo
  • nastavení Git aliasů (např. git ll).

Stroj linux.ms.mff.cuni.cz je nastaven tak, že pokud si tento repozitář naklonujete do vašeho $HOME jako my-config, bude automaticky načten jak shellem (Bash), tak Gitem.

git clone gitolite3@linux.ms.mff.cuni.cz:config-LOGIN my-config

Aby tohle fungovalo, stačí uložit konfiguraci Bashe do souboru bashrc (všimněte si, že tady nejde o skrytý soubor) a vaší Git konfiguraci do gitconfig (opět, normální soubor) uvnitř config-LOGIN repozitáře.

To samé bude fungovat během zkoušky: pokud si naklonujete config-LOGIN do $HOME/my-config ve vašem zkouškovém (dočasném) profilu, vaše nastavení Bashe i Gitu se automaticky načte.

(Bohužel toto automatické načítání nebude fungovat na školních strojích mimo písemku. Tam si ho musíte přidat ručně. Ale stačí to provést jen jednou, takže se to docela vyplatí.)

Pochopitelně si musíte otevřít nový shell po nastavení bashrc, aby se nová konfigurace načetla. Také to znamená, že si můžete otevřít nový terminál (nebo SSH spojení či okno v tmux apod.) a pokud něco nefunguje, opravit to v původním okně, které používá ještě starou konfiguraci. Nastavení Gitu se načítá při každém spuštění příkazu git a je tedy aplikováno ihned.

Do config-LOGIN si můžete též uložit vaše poznámky, takže si je nemusíte tisknout. Neukládejte tam nic, co by mohlo porušovat pravidla předmětu (to například zahrnuje AI agenta nebo řešení zkoušky od kolegy). Prosím, udržte velikost tohoto repozitáře v rozumných mezích (pod 5MB). Děkujeme.

Ukázkový obsah souboru bashrc

Následující je typický obsah bashrc ve vašem config-LOGIN repozitáři.


# Nastavení editor (pro git commit)
export EDITOR=mcedit

# Obvyklé aliasy
alias ls='ls -F --color=auto'
alias ll='ls -l'

# Prompt by měl obsahovat název stroje
PS1='\u@\h \w\$'
Nekopírujte celý .bashrc do svého my-config/bashrc. S největší pravděpodobností to povede k nekonečné smyčce (detaily níže)!

Ukázkový obsah souboru gitconfig

Následující je typický obsah gitconfig ve vašem config-LOGIN repozitáři.

Podívejte se do ~/.gitconfig, který bude obsahovat už definované aliasy a klidně jej odtamtud vykopírujte.

[alias]
	st = status
	ci = commit
	br = branch
	co = checkout
	sw = switch
	ll = log --format='tformat:%C(yellow)%h%Creset %an (%cr) %C(yellow)%s%Creset' --max-count=20 --first-parent

Použití na jiných strojích než je linux.ms.mff.cuni.cz

Jak je zmíněno výše, když je config-LOGIN naklonován do ~/my-config na linux.ms, vaše nastavení Bashe a Gitu se načte automaticky.

Pokud chcete stejné nastavení použít pro vaše stroje (např. váš notebook), následující text vám ukáže, jak na to. Doporučujeme to udělat, protože tak budete moci konfiguraci skutečně pohodlně sdílet. A budete efektivnější. A je to fakt hustý :-).

Úpravy ~/.bashrc

Umístěte následující do vašeho existujícího souboru ~/.bashrc aby načetl i vaší konfiguraci z ~/my-config.

if [ -f "$HOME/my-config/bashrc" ] && [ -r "$HOME/my-config/bashrc" ]; then
    . "$HOME/my-config/bashrc"
fi

S tímhle kouskem na místě (který kontroluje, že $HOME/my-config/bashrc vůbec existuje a pak ho vloží) není potřeba např. definovat vaše aliasy a nastavení $EDITOR přímo v ~/.bashrc, ale držet je připravené k opětovnému použití v repozitáři config-LOGIN.

Rozhodně nevkládejte výše uvedený kód (nebo nějaký podobný) do my-config/bashrc, protože to povede k nekonečné smyčce během startu Bashe.

Na vzdáleném stroji vám to může dokonce úplně zabránit se přihlásit (a bude to navíc zvnějšku vypadat jako síťový problém), navíc vás to pravděpodobně i zablokuje, protože to bude vypadat jako neúspěšné přihlášení.

(Pokud se vám to podařilo, upravte soubory mimo Shell. Pokud se vám to podařilo na vzdáleném stroji, prosím, vytvořte confidential issue a my se vám s tím pokusíme pomoci.)

Úpravy ~/.gitconfig

Stačí umístit následující do vašeho ~/.gitconfig, aby Git načetl vaši konfiguraci.

[include]
	path = ~/my-config/gitconfig

Tohle bude fungovat i v případě, že ~/my-config/gitconfig neexistuje (Git ho prostě bude tiše ignorovat).