abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:29 | Nová verze

    Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.

    Max | Komentářů: 5
    včera 21:11 | Bezpečnostní upozornění

    Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 18:33 | Komunita

    Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace

    … více »
    Pendrekama do nich❗ | Komentářů: 1
    včera 15:22 | Zajímavý článek

    Článek na blogu APNIC vysvětluje, jak správně vytvářet a používat ASPA záznamy — podepsané objekty v RPKI, které uvádějí, kteří poskytovatelé směrování jsou pro dané autonomní číslo (ASN) oprávněni. Síťoví operátoři je mohou využít k ověřování tras BGP a k odhalování úniků tras či podvržených tras.

    vencour | Komentářů: 1
    včera 14:33 | Nová verze

    Byla vydána (𝕏) verze 8.0.0 open source programu pro prolamování hesel hashcat (GitHub, Wikipedie). Přehled novinek v příspěvku v diskusním fóru a pdf.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Byla vydána (𝕏, Bluesky) nová verze 2026.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 6 nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 1
    včera 08:35 | Komunita
    Pořadatelé dalšího ročníku komunitního setkání správců nejen českých a slovenských sítí CSNOG 2027 upozorňují, Call for Abstracts pro blížící se akci (20. a 21. ledna 2027, Zlín) končí už 31. října, tedy na konci tohoto týdne.. … více »
    VSladek | Komentářů: 1
    24.10. 23:22 | Bezpečnostní upozornění

    Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.

    vencour | Komentářů: 1
    24.10. 12:44 | Pozvánky

    Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »

    lkocman | Komentářů: 1
    24.10. 00:44 | Bezpečnostní upozornění

    Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění

    … více »
    vencour | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2920 hlasů
     Komentářů: 34, poslední včera 08:24
    Rozcestník

    Zápisky v tomto blogu podléhají licenci Creative Commons Uveďte původ-Zachovejte licenci 4.0 Mezinárodní (CC BY-SA 4.0).

    Git repozitář se zdrojovými soubory tohoto blogu v pandoc markdown formátu: marbu/abclinuxu-blog-hromada.

    Aktuální zápisy

    git-cd

    22.3.2014 19:50 | Přečteno: 1284×

    Při prolézání cizího git repozitáře mě nedávno napadla jednoduchá myšlenka: mít tak příkaz git-cd, který by fungoval stejně jako cd, ale s cestami by pracoval relativně k samotnému repozitáři. A ukázalo se, že to jde (v bashi) poměrně přímočaře zařídit.

    První věc, co bylo potřeba zjistit je cesta k aktuálnímu git working tree, což se nechá vypsat "jednoduše" takto:

    $ git rev-parse --show-toplevel
    

    Btw přidal jsem si pro to v .gitconfig alias root, ale není to dál pro samotnou funkci git-cd třeba.

    Jelikož chceme měnit aktuální adresář shellu, není jiná cesta než jít cestou tvorby shell funkce (definované např, v ~/.bashrc):

    git-cd()
    {
      if ! GIT_ROOT=$(git rev-parse --show-toplevel); then
        return 1
      fi
      if [[ $# = 0 ]]; then
        cd ${GIT_ROOT}
      elif [[ "$1" = - ]]; then
        cd -
      else
        cd "${GIT_ROOT}/$1"
      fi
    }
    

    Funkce pak funguje tak, že volání git-cd bez parametrů změní aktuální pracovní adresář na root git repa (pokud se zrovna v nějakém nacházíme) a jinak se snaží přejít do zadaného adresáře v rámci repozitáře:

    $ cd /home/martin/projects/nitrate/trunk/nitrate/docs
    $ git root
    /home/martin/projects/nitrate
    $ git-cd design/Milestone
    $ pwd
    /home/martin/projects/nitrate/design/Milestone
    $ git-cd
    $ pwd
    /home/martin/projects/nitrate
    

    I když funkční, taková funkce není celá bez podpory doplňování. To ale taky není složité zařídit:

    # bash autocompletion for git-cd
    _git-cd()
    {
      if ! GIT_ROOT=$(git rev-parse --show-toplevel); then
        return 1
      fi
      # current word to complete
      local CUR=${COMP_WORDS[COMP_CWORD]}
      # remove absolute paths
      if [[ "$CUR" =~ ^/ ]]; then
        CUR=${CUR#"/"}
      fi
      COMPREPLY=($(cd $GIT_ROOT; compgen -S '/' -d $CUR))
    }
    complete -o nospace -F _git-cd git-cd
    

    A tím se dostáváme k použitelnému řešení :-)

    Menší problém by (pro někoho) mohlo být, že shell funkci není možně přímo volat přes git cd právě proto, že to není skript, ale jen shell funkce. Což mi ale osobně přijde jako nepodstatný detail. Teoreticky by se to sice dalo to obejít přes definici další shell funkce git, co by fungovala jako wrapper, např:

    git()
    {
      if [[ $1 = cd ]]; then
        git-cd "$2"
      else
        /usr/bin/git "$@"
      fi
    }
    

    Ale pak by přestalo fungovat doplňování v bashi. Možná by to i tak šlo nějak ohackovat, ale to mi vážně za tu námahu nestojí :)

    Jinak pochopitelně nejsem první, koho něco takového napadlo udělat, viz třeba:

    Ale na druhou stranu jsem nenašel, že by něco podobného bylo třeba v git/contrib nebo v bashrc nějaké distribuce.

           

    Hodnocení: 100 %

            špatné • dobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Josef Kufner avatar 22.3.2014 23:28 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: git-cd
    To je pěkné. Skok do kořene repositáře se občas hodí. Na procházení je lepší si to otevřít v mc nebo něčem takovém, na to je cd blbé.

    Dej to do samostatného skriptu, ten umísti do ~/bin a nastav si tam $PATH. Pak to bude fungovat správně.

    Asi by se hodil i git-pwd, který by ukázal cestu relativně ke kořenu repositáře.

    Jak to funguje se submoduly?

    Poslal jsi už patch do upstreamu?
    Hello world ! Segmentation fault (core dumped)
    23.3.2014 10:20 marbu | skóre: 31 | blog: hromada
    Rozbalit Rozbalit vše Re: git-cd
    Dej to do samostatného skriptu, ten umísti do ~/bin a nastav si tam $PATH. Pak to bude fungovat správně.
    No to právě nejde, protože cd je vnitřní funkce shellu, která mění přímo stav procesu, ve kterém ho spustíš. Neznám způsob, jak změnit aktuální adresář v shellu z jiného procesu (nějaký hnusný hack se nepočítá :)
    Asi by se hodil i git-pwd, který by ukázal cestu relativně ke kořenu repositáře.
    Díky. Ten git-pwd není špatný nápad, a fungoval by i jako obyčený skript.
    Jak to funguje se submoduly?
    Jako každý jiný git nástroj, tj. v submodulu ti git root vypíše cestu k kořenovému adresáři submodulu.
    Poslal jsi už patch do upstreamu?
    Ještě ne, ale mám v plánu se aspoň zeptat na mailing listu. Totiž to, že je to je jen obyčejná shellová funkce trochu komplikuje distribuci z upstreamu ke koncovým uživatelům.
    There is no point in being so cool in a cold world.
    Josef Kufner avatar 23.3.2014 13:08 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: git-cd
    No to právě nejde, protože cd je vnitřní funkce shellu, která mění přímo stav procesu, ve kterém ho spustíš. Neznám způsob, jak změnit aktuální adresář v shellu z jiného procesu (nějaký hnusný hack se nepočítá :)
    Oops... asi bych měl chodit spát dřív.
    Hello world ! Segmentation fault (core dumped)
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.