Portál AbcLinuxu, 12. května 2025 07:49

Dotaz: Problémy při klonování SVN

4.2.2011 18:22 Petr Dlouhý | skóre: 9
Problémy při klonování SVN
Přečteno: 352×
Odpovědět | Admin
Ahoj, pokračuji v práci na školním projektu, který původně běžel na školním serveru s vlastním prostředím SVN a Trac. Teď bych potřeboval přemigrovat na vlastní server s GITem. Chtěl bych naklonovat celý původní repozitář (včetně historie) do GITu, ale mám s tím problém. Správce serveru bohužel není k sehnání, a můj vedoucí je věčně zaneprázdněn a sám taky k serveru nemá přístup, takže bych to potřeboval vyřešit bez přístupu k serveru.

Samotný repozitář bohužel nemá přímý veřejný přístup (jen přes Trac), takže klonování není možné vyzkoušet.



Většina důležitých informaci je shrnutá v odkazovaném ticketu, pokusím se tedy shrnout jen nejdůležitější body:
Spojení spadne nezávisle na použitém klientu (git-svn, svnsync, svnsync ze svnkit) s přibližně stejnou chybovou hláškou: "Could not read chunk delimiter: Secure connection truncated". Dočetl jsem se, že jde buď o přetečení paměti v mod_dav_svn v Apache, nebo možná o nekompatibilitu použitých certifikátů. Možná má prostě ten repozitář porušenou strukturu.

Spojení padá vždy na revizi #33, a za chybu může pravděpodobně soubor EA_modely/orientak.eap, nebo nějaký jiný z dané složky. Každopádně, když zkopíruju jakoukoliv jinou složku pomocí git-svn, tak to projde bez problémů. Když se ale snažím ignorovat daný soubor/celou složku pomocí parametru --ignore-paths, tak to stejně spadne.

Historie složky EA_modely mě moc nezajímá, ale historii ostatních složek bych velmi rád zachoval.

Můj dotaz tedy zní: Je možné nějak rozumě repozitář naklonovat tak, abych se úplně vyhnul problémové složce? (případně jinak obejít chybu bez přístupu k serveru)

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 5.2.2011 02:24 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus se prokousat k repositáři po ssh (nebo něčem takovém). A stáhni si ho k sobě celý, jak je. Jinak s tím neuděláš nic. Tohle SVN prostě občas dělá...

Můžeš zkusit si udělat script, který checkoutne vždy všecky složky samostatně, jen tu problémovou vynechá. Zkus udělat checkou jen jednoho adresáře v revizi 33, který leží vedle toho problémového a pokud to projde, tak máš šanci to ještě dát dohromady...

Btw, kolik těch revizí tam máš celkem?
Hello world ! Segmentation fault (core dumped)
5.2.2011 07:51 Petr Dlouhý | skóre: 9
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
Přes SSH se tam bohužel nedostanu, nebo nevím jak. Zkoušel jsem to, ale asi tam studenti nemají povolený přístup.

Stáhnout jednotlivé ostatní složky není problém, je jich pár (jde mi to ale jen přes git-svn, u ostatních klientů nevím jak na to). Vzniknou potom ale GIT repozitáře daných složek, a nevím, jak je potom spojit do jednoho (pokud možno aby se zachovala veškerá informace).

Verzí je 328, takže na nějaké ruční předělávání to moc není.

Jestli má někdo přístup k serverům Sun na FELK ČVUT, tak by to vlastně mohl vyzkoušet na SVN s adresou https://piglet.felk.cvut.cz/svn/courses/36sin/ORIENTAK
Josef Kufner avatar 5.2.2011 12:59 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
$ git help svn

[...]

--ignore-paths=<regex>
        When passed to init or clone this regular expression
        will be preserved as a config key. See fetch for
        a description of --ignore-paths.
Hello world ! Segmentation fault (core dumped)
5.2.2011 14:41 Petr Dlouhý | skóre: 9
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
O tom už jsem psal v původním dotazu, že to nefunguje (alespoň ne když dám ignorovat danou složku). Složka se neobjeví ve výpisu stahovaných souborů, ale stejně to spadne.
5.2.2011 14:32 Jirka
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud mas nekde checkoutlou aktualni (posledni) verzi repozitare tak by melo stacit proste smazani tohoto poskozeneho souboru (pomoci svn rm EA_modely/orientak.eap) a nasledny commitnuti zmen zpet do svn. Potom muzes tento soubor znovu do repozitare pridat a commitnout a doufat, ze se chyba nebude opakovat (casto se tohle stava pri kombinaci: vetsi bin. soubor + mod_dav_svn).
5.2.2011 14:39 Petr Dlouhý | skóre: 9
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
O tom jsem už přemýšlel, ale měl jsem dojem, že smazané soubory v SVN zůstanou v historii (takže se pro staré commity nic nezmění).

Každopádně zkusit to můžu.
7.2.2011 12:00 Petr Dlouhý | skóre: 9
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
Tak to skutečně nepomohlo. Asi by to pomohlo, kdyby mi šlo pouze o checkout, ale já chci kompletní clone.
Josef Kufner avatar 7.2.2011 13:10 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
Naklonuj si jednotlivé adresáře krom toho problematického a někam si to odlož stranou. Pak sežeň admina nebo kohokoliv, kdo tam má shell, ať ti zkopíruje ten repositář a pošle ti ho v zipu.

V případě, že se to nepovede (nebo se ti nechce už čekat) a repositář nedostaneš v nějakém rozumném čase (měsíc či dva), tak si napiš skript, který z těch několika repositářů (git) vezme commity tvořící jeden (třeba podle data) a sloučí je do jednoho v novém repositáři (několikrát cherry-pick bez commitu a pak "git commit -a -C jeden_z_nich"). Jen nezapomeň, že každý ten repositář nemusí obsahovat všechny commity, tak ať si to nepomícháš.
Hello world ! Segmentation fault (core dumped)
23.2.2011 15:24 Petr Dlouhý | skóre: 9
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, tak hlásím pokrok. Podařilo se mi vytřískat od učitelů kopii toho repozitáře, bohužel ale není problém s přístupem k němu, ale je poškozen samotný repozitář.

Zatím jsem s tím dělal pokusy jen chvíli a nenašel jsem zatím žádné řešení.

Pokud spustím svnadmin verify, tak to před revizí 33 hlásí:
svnadmin: Decompression of svndiff data failed
Bohužel jsem nikde nenašel řešení tohoto problému (svnadmin recovery nepomůže).

Pokud zkusím git-svn, tak je hláška podobná:
Svndiff compressed data is invalid: Decompression of svndiff data failed at /usr/lib/git-core/git-svn line 5061
Budu s tím nadále zkoušet něco udělat, ale kdyby znal někdo řešení přímo, tak by mi ušetřil spoustu práce.
Řešení 1× (Petr Dlouhý (tazatel))
23.2.2011 21:13 Petr Dlouhý | skóre: 9
Rozbalit Rozbalit vše Re: Problémy při klonování SVN
Tak jsem nalezl řešení i na tento problém. Řešením je použít volbu --truncate u skriptu fsfverify.

Děkuji všem.

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.