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 01:33 | IT novinky

    Celkové tržby společnosti Canonical za rok 2024 byly 292 milionů dolarů (pdf). Za rok 2023 to bylo 251 milionů dolarů.

    Ladislav Hagara | Komentářů: 0
    dnes 01:22 | Nová verze

    Byla vydána verze 1.88.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 6.17. Mimo jiné aktualizuje Tor Browser (14.5.4) a opravuje několik chyb.

    Fluttershy, yay! | Komentářů: 0
    včera 21:11 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 13:11 | IT novinky

    Město Lyon posiluje svou digitální suverenitu a postupně nahrazuje software od společnosti Microsoft bezplatnými alternativami, zejména OnlyOffice pro kancelářské aplikace a Linux a PostgreSQL pro systémy a databáze.

    Ladislav Hagara | Komentářů: 5
    včera 11:44 | Zajímavý projekt

    Evropská občanská iniciativa Stop Destroying Videogames se snaží o to, aby vydavatelé, kteří spotřebitelům v Evropské unii prodávají videohry nebo na ně udělují licence, měli povinnost tyto hry ponechat ve funkčním (hratelném) stavu i po ukončení podpory ze své strany. Podpořit podpisem tuto iniciativu můžete v Systému pro online sběr podpisů.

    trekker.dk | Komentářů: 4
    včera 11:22 | Komunita

    Mozilla oficiálně ukončila svůj již několik let mrtvý projekt DeepSpeech pro převod řeči na text.

    Ladislav Hagara | Komentářů: 2
    včera 05:22 | Komunita

    Krátce po oficiálním oznámení forku X.Org Xserveru s názvem XLibre Xserver byl ve Fedoře předložen návrh, aby byl X.Org Xserver nahrazen tímto XLibre Xserverem. Po krátké ale intenzivní diskusi byl návrh stažen.

    Ladislav Hagara | Komentářů: 23
    včera 01:33 | Komunita

    62 projektů získalo finanční podporu od NLnet Foundation (Wikipedie).

    Ladislav Hagara | Komentářů: 1
    včera 00:33 | Nová verze Ladislav Hagara | Komentářů: 1
    Jaký je váš oblíbený skriptovací jazyk?
     (58%)
     (29%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 314 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    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: 678×
    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.