いけむランド

はてダからやってきました

はじめての CodeRepos

どうも検索でひっかかる CodeRepos の記事は読み手が Subversion とか Git の基礎知識を持っていることを前提で書かれているので、まともにそれらを触ったことがない自分は登録だけでも一苦労だった。


以前から Ruby の勉強でぼちぼち書いていた yabcel *1 がとりあえずクラスファイルの逆アセンブルくらいはできるようになったので、これを機に CodeRepos に登録してみた。

以下、はじめて Subversion を触る人がソースを登録するまでの手順をまとめる。

ディレクトリ作成

ソースを置くためのルートとなるディレクトリを作成する。svn import しないといけないのかと思っていたが、どうやら svn mkdir で良いらしい。

coderepos なら、svn mkdir するだけで自分のプロジェクトをつくることができます。

% svn mkdir --username fd0 -m 'mkdir' http://svn.coderepos.org/share/lang/ruby/yabcel
Authentication realm: <http://svn.coderepos.org:80> coderepos password
Password for 'fd0': 

Committed revision 13475.
%

チェックアウト

作成したルートディレクトリ配下をチェックアウトする。さっき作成したばかりなので、当然ながら空である。

% svn checkout http://svn.coderepos.org/share/lang/ruby/yabcel 
Checked out revision 13475.
% ls
yabcel
% cd yabcel
% ls -a
.svn
%

ファイルの追加

何処かから登録したいソースのツリーを持ってきて、それらを svn add する。

% cp -R /path/to/src/* .
% tree .
.
|-- lib
|   |-- yabcel
|   |   |-- access_flags.rb
|   |   |-- attribute.rb
|   |   |-- code.rb
|   |   |-- code_exception.rb
|   |   |-- constant_pool.rb
|   |   |-- constant_value.rb
|   |   |-- deprecated.rb
|   |   |-- exceptions.rb
|   |   |-- field.rb
|   |   |-- inner_class.rb
|   |   |-- java_class.rb
|   |   |-- line_number.rb
|   |   |-- local_variable.rb
|   |   |-- member.rb
|   |   |-- method.rb
|   |   |-- opcodes.rb
|   |   |-- signature.rb
|   |   |-- source_file.rb
|   |   |-- types.rb
|   |   `-- utility.rb
|   `-- yabcel.rb
`-- yabcel_driver.rb

2 directories, 22 files
%
% svn add yabcel_driver.rb lib
A         yabcel_driver.rb
A         lib
A         lib/yabcel
A         lib/yabcel/access_flags.rb
A         lib/yabcel/attribute.rb
A         lib/yabcel/code.rb
A         lib/yabcel/code_exception.rb
A         lib/yabcel/constant_pool.rb
A         lib/yabcel/constant_value.rb
A         lib/yabcel/deprecated.rb
A         lib/yabcel/exceptions.rb
A         lib/yabcel/field.rb
A         lib/yabcel/inner_class.rb
A         lib/yabcel/java_class.rb
A         lib/yabcel/line_number.rb
A         lib/yabcel/local_variable.rb
A         lib/yabcel/member.rb
A         lib/yabcel/method.rb
A         lib/yabcel/opcodes.rb
A         lib/yabcel/signature.rb
A         lib/yabcel/source_file.rb
A         lib/yabcel/types.rb
A         lib/yabcel/utility.rb
A         lib/yabcel.rb
%

コミット

あとは svn commit するだけ。とっても簡単である。

% svn commit -m 'initial release'
Adding         lib
Adding         lib/yabcel
Adding         lib/yabcel/access_flags.rb
Adding         lib/yabcel/attribute.rb
Adding         lib/yabcel/code.rb
Adding         lib/yabcel/code_exception.rb
Adding         lib/yabcel/constant_pool.rb
Adding         lib/yabcel/constant_value.rb
Adding         lib/yabcel/deprecated.rb
Adding         lib/yabcel/exceptions.rb
Adding         lib/yabcel/field.rb
Adding         lib/yabcel/inner_class.rb
Adding         lib/yabcel/java_class.rb
Adding         lib/yabcel/line_number.rb
Adding         lib/yabcel/local_variable.rb
Adding         lib/yabcel/member.rb
Adding         lib/yabcel/method.rb
Adding         lib/yabcel/opcodes.rb
Adding         lib/yabcel/signature.rb
Adding         lib/yabcel/source_file.rb
Adding         lib/yabcel/types.rb
Adding         lib/yabcel/utility.rb
Adding         lib/yabcel.rb
Adding         yabcel_driver.rb
Transmitting file data ......................
Committed revision 13478.
%

*1:BCELRuby で写経したライブラリ。まだ javap しかできないので、クラスファイルへの再書き出しが目下の課題。Java っぽい書き方が多々残っているため、これから dis られつつ修正していく予定。