dump file の手作業での修正を試みる

とりあえず必要なパスが含まれている node とそれを含む revision、copy してる revision をスクリプトで抜き出して、全部で 700 ちょい。これを load しながらどうしてもエラーの出るところに関しては手作業で dump ファイルを修正してみている。

エラーが起きるのは基本的に svn copy を実行する、ブランチタグを切る revision がほとんどなので、そんなにむちゃくちゃな数にはならない。あとは必要なパスの上の階層がすでに add されていないといけないので、その分も加えてやる。

これを全部自動化できればベストだが、とりあえず方法として間違っていないかどうかの確認を兼ねて実験。

結果、dump ファイルのパースをする際に無造作に改行コードを chomp したのがいけなかったのか、途中でデータに矛盾が出てきた。そこまででできあがったリポジトリを見る限り、そこまではうまく抜き出せていそうなので、あとはその辺をクリアできるかどうかだけかな?

改行コード周りかなーと踏んでいるのは、Subversion は内部の改行コードを LF に統一しているとマニュアルに書いてあるのに CRLF がそのまま入ってる箇所があったため。これはたぶん何らかの不具合の結果なんだと思うけど、実際に CRLF になってしまっているため、Ruby で chomp( "\n" ) すると \r\n が削れてしまい、出力時に \n しか付加しなかった場合は変換後のデータがオリジナルのデータと食い違ってしまう。結果、Content-length も md5 も合わない。

続きは休み明け。とりあえず狙った形のリポジトリには近づいている。

※ 最終的には手作業での dump ファイル修正を含めて目的の形にリポジトリを分割することができました。

cf.

More

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm