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í
×
    dnes 10:55 | Pozvánky

    Organizátoři konference LinuxDays ukončili veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata, která na letošní konferenci zaznějí. Hlasovat můžete do neděle 7. září. Poté podle výsledků hlasování organizátoři sestaví program pro letošní ročník. Konference proběhne 4. a 5. října v Praze.

    Petr Krčmář | Komentářů: 7
    dnes 02:22 | Nová verze

    Byla vydána verze 11.0.0 vizuálního programovacího jazyka Snap! (Wikipedie) inspirovaného jazykem Scratch (Wikipedie). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 06:00 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. Vypíchnout lze, že v Plasmě byl implementován 22letý požadavek. Historie schránky nově umožňuje ohvězdičkovat vybrané položky a mít k ním trvalý a snadný přístup.

    Ladislav Hagara | Komentářů: 0
    30.8. 20:00 | Nová verze

    Wayfire, kompozitní správce oken běžící nad Waylandem a využívající wlroots, byl vydán ve verzi 0.10.0. Zdrojové kódy jsou k dispozici na GitHubu. Videoukázky na YouTube.

    Ladislav Hagara | Komentářů: 0
    30.8. 04:00 | Komunita

    Před necelými čtyřmi měsíci byl Steven Deobald jmenován novým výkonným ředitelem GNOME Foundation. Včera skončil, protože "nebyl pro tuto roli v tento čas ten pravý".

    Ladislav Hagara | Komentářů: 7
    29.8. 18:33 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 156 (pdf).

    Ladislav Hagara | Komentářů: 1
    29.8. 15:11 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.8.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    29.8. 12:11 | IT novinky

    Včera večer měl na YouTube premiéru dokumentární film Python: The Documentary | An origin story.

    Ladislav Hagara | Komentářů: 0
    28.8. 23:33 | Nová verze

    Společnost comma.ai po třech letech od vydání verze 0.9 vydala novou verzi 0.10 open source pokročilého asistenčního systému pro řidiče openpilot (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    28.8. 21:55 | Nová verze Ladislav Hagara | Komentářů: 4
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 124 hlasů
     Komentářů: 9, poslední 28.8. 11:53
    Rozcestník

    Dotaz: SVN detekce změny v konkrétní funkci

    Beda0 avatar 31.10.2017 09:49 Beda0 | skóre: 29
    SVN detekce změny v konkrétní funkci
    Přečteno: 680×
    Zdravím, potřeboval bych "nějak" zjistit, jestli došlo ke změně v konkrétní funkci v jednom ze souborů v SVN (C# zdrojáky).

    Nějakým skriptem, který budu spouštět přes make, bych potřeboval zjistit, jestli v jedné (časem asi i ve více) funkcích nedošlo ke změně... SVN umí zjistit změny v souboru, k těm ale dochází dost často - na jiných místech. Potřeboval bych nějak detekovat jen změny v konkrétní C# funkci.

    Napadlo mě zaznamenat začátek definice funkce a její délku (počet řádků). V původní revizi najít začátek funkce a zkopírovat daný počet řádků. To samé v aktuální revizi. Pokud jsou texty stejné je to OK, jinak vyhodit nějakou hlášku / poslat mail...

    Připadá mi to jako docela běžný požadavek, ale nenarazil jsem na hotové řešení. Existuje něco? Jde to nějak jednodušeji?

    Díky

    Řešení dotazu:


    Odpovědi

    31.10.2017 10:20 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    Běžným požadavkem je mít každou třídu a každou funkci v samostatném souboru.

    Pokud k těm změnám souboru dochází každou chvíli na různých místech, zamyslel bych se nad SRP, který tě těchto skopičin zbaví.

    BTW: V C# se používají nějaké funkce?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Beda0 avatar 31.10.2017 11:29 Beda0 | skóre: 29
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    Myslel jsem metody... Bylo by hezké, kdyby byly zdrojáky členěny tak jak mají. Bohužel to nemůžu ovlivnit - musím s tím jen občas pracovat.
    31.10.2017 11:51 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    Napiš si na tu metodu jednotkový test. Pokud neprojde, tak máš jistotu, že v té metodě došlo k nějaké změně.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Beda0 avatar 31.10.2017 12:09 Beda0 | skóre: 29
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    Ale pokud projde, nemám jistotu, že k žádné změně nedošlo ;-)

    Navíc je to C# pro windows, na linuxu to nezkompiluju.
    2.11.2017 18:15 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    na linuxu to nezkompiluju.

    To je tak složitý projekt, že ho Mono prostě nedá? :-) Většinou to nějak jde.

    Beda0 avatar 3.11.2017 07:43 Beda0 | skóre: 29
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    Ano, je to tak složitý (několik tisíc zdrojáků, některé s několika desítkami tisíc řádků) - proto dělám celou tuhle šaškárnu s hledáním změn v metodách... Navíc i kdybych obětoval hromadu času abych to "nějak" rozběhal s mono (což podle mě stejně nepůjde kvůli závislostem), tak mi to s problémem nepomůže.
    Řešení 1× (Beda0 (tazatel))
    Jendа avatar 31.10.2017 17:50 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    Nějak (nejčistší by bylo udělat parser ve Flexu, ale i nějaké naprasení typu regexp + počítání otevíracích a uzavíracích závorek by mělo rozumně fungovat) zjistit rozsah řádků funkce a pak se podívat na dané řádky svn blame.
    Beda0 avatar 3.11.2017 07:52 Beda0 | skóre: 29
    Rozbalit Rozbalit vše Re: SVN detekce změny v konkrétní funkci
    Díky na nasměrování, vyřešeno.

    Splácal jsem to vy pythonu. Do csv si ukládám kus řádku s definicí metody - návratový typ a jméno, cestu ke zdrojáku a poslední revizi ve které došlo ke změně o které vím. Regexpem vytáhnu celou funkci a spočítám počet řádků, grepem najdu první řádek a z "svn blame -x -b" zjistim revize - vezmu max a mam hotovo.

    Kouzelnej regexp na počítání řádků:
    
    method = "bool methodName"
    methodregex = method.replace(' ', '\s+') + r"[^{}]+(?<rec>\{(?:[^{}]++|(?&rec))*\})"
    result = regex.search(methodregex,text,flags=regex.VERBOSE)
    nlines = int(result.captures('rec')[-1].count('\n') + 1)

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.