Subversion2006年4月1日以降、SourceForgeの開発者用のCVSサービスの供給停止によって我々(MediaWikiの開発者)は独自にソースコードリポジトリをセットアップしなければならなくなりました。新しいリポジトリはSubversionを使用しています。SubversionはCVSよりも流行していて、とてもよく似たインターフェイスを提供しています。)でホストされていました。2007年5月31日以降、アムステルダムのWikimediaのサーバ(mayflower)でホストされています。Subversionを使用するためには、公式のコマンドラインSubversionクライアントをダウンロードしなければなりません。Windows用のTortoiseSVNのような代替的なグラフィカルクライアントも使用することが出来ます。Subversionのコマンドラインインターフェイスは一般的にCVSによく似ています。この記事は多くの便利なコマンドラインの基本的で部分的なガイドです。完全なガイドについてはSubversionによるバージョン管理をご覧下さい。サーバへの書き込み権限を持っているのであれば、Subversionの先進的な機能について読むことをお勧めします。遅かれ早かれ使うことになるからです。linksリポジトリEditMediaWikiのリポジトリはブリオンの個人的なサーバでホストされ、http://svn.wikimedia.org/svnroot/mediawiki/からアクセス可能です。プロジェクトはおおよそ標準的な階層を使用しています:branchestagstrunk試作品の作業はtrunkツリーで作成されます。Wikimediaサーバは製品利用のためにこのツリーにあるコードを動作させます。このツリーで作成されたパッチはコードを壊してはなりません。trunkの拡張的な部分を書き換えることも同様に避けるべきです。MediaWiki本体はtrunkのphase3サブディレクトリにあります。Branchesは主要なコーディング作業、巨大なパッチをテストする、不安定なパッチをテストするなどのために使用されます。開発者の中にはこのコードに独自のブランチを持っている人もいます。メンテナンス修正のサイクル)。それぞれの主要な安定版シリーズはREL<major_version>_<minor_version>という独自のディレクトリを使います。MediaWiki1.9はREL1_9で公開されます。Tagsはその時点でのソフトウェアの状態を保存するために使用される特別な階層です。これはけっして変更すべきではありません。新しいバージョンをリリースするときのみ使用します。Vibber)によって取り扱われます。wikimedia-webという名前の追加のサブプロジェクトがあります。設置されたWikimediaのポータルファイルをホストしています。Wikimedia財団かつ/もしくはWikimediaのシステムアドミニストレータに関連しないのであれば、通常は修正しません。匿名による利用Editリポジトリに対する書き込み権限を持たない場合で、通常のHTTP経由で匿名によるアクセスしなけばなりません。ここで示される多くの技術は開発者のための利用にも便利なので、匿名でサーバにアクセスする必要がない場合でもどうぞご覧下さい。チェックアウトEdit最初に、MediaWikiのコードをチェックアウトしなければなりません。(ViewVC)を使用してコード構造をブラウズすることが出来ます。異なった目的のためにそこにある3つのフォルダを使用して下さい:Trunkはメイン開発ブランチです。branchesは安定バージョンと複雑な機能の開発のために使用されます。tagsはリリースされたバージョンを追跡するために使用されます。/tags/REL1_9_0files/phase3古いCVSとは異なり、URLはbrachもしくはtagを指定するために使用されます。REL1_9_0古いCVSとは異なり、匿名アクセスは完全に最新なので、コミットされた後で即座に修正されたコードを入手出来ます。リポジトリにあるすべてのファイルのすべてのリビジョンをチェックアウトすることを中止するのはとても馬鹿げています。updateCVSとは異なり、SVNは削除されたファイルを除去するもしくは新しいディレクトリを作る必要はありません。自動的にこの作業が行われます。差分を作成するEdit差分、もしくはパッチはワーキングコピーで変更されたすべての内容を含むテキストファイルです。Bugzillaで新しい機能を提案するもしくはどの部分を修正するのかを提案する場合、パッチをアップロードして下さい。includes/SpecialMyAwesomePage.phpSVNは"unified"の差分フォーマットをデフォルトで使用するので、"-u"オプションは渡されないことに注意して下さい。patch_fileTortoiseSVNは差分を適用するための組み込みのサポートを持ちます。file.nameフォルダを追加する場合、無視されるリストにあるファイル以外、フォルダに含まれるすべてのファイルを追加します。file.nameファイルもしくはフォルダがローカル修正を含まないことを確認して下さい。なければ強制しない限り、それらは削除されません。revertコマンド用のパラメータを使用しなければなりません。deleteで削除します)。status項目の最初のカラムにいくつかの重要な文字があります。delete無しで削除されたもの)開発者のための使用方法Editサーバへの書き込み権限を持つ場合、HTTPアクセスの代わりにSSHアクセスを利用することが出来ます。これは後で変更することがあるかもしれません。SSHキーを作成するEditSSHキーを作成するためにSourceforgeにある手引きに従います。パスワード句を覚え、秘密鍵(id_dsaもしくはid_rsa)を保存しておき、公開鍵を送ります(id_dsa.pubもしくはid_rsa.pub)。ウェブアクセスを要求する機能のためにパスワードを入力しなければならない時に、通常の機能を利用することが出来ます。時にはパスワードを複数回要求されることがあります。パスワードを間違えると、再び入力するように求められます。wikiこれを動作させるためには、あなたの身元確認をssh認証エージェントに追加しなければなりません。/home/tux/.ssh/tux.keyWindowsユーザEditSubversionクライアントのWindowsユーザはSSH秘密鍵を利用できるようにするためにここで言及されている次の手引きが必要になることがあるかもしれません。オートプロパティEdit追加するファイルのために列の最後の自動変換をどのように有効にするのかについてはSubversion/auto-propsをご覧下さい。すべての開発者はそれを使用すべきです。コミットEditコミットもしくはチェックインはワーキングコピーからウェブリポジトリへの変更を適用アクションです。commitエディタを設定しない限り、パラメータ無しでコマンドを使用すると失敗します。ファイルログのためのコメントを入力しなければならないからです。--file=file_with_log_commentログメッセージにおいて、PHPの'$'表記法を使用する変数に参照して、シェルからそれらをエスケープすることを覚えて下さい。CVSチェックアウトをSVNに変換するEditリポジトリでファイルへのローカルな変更を続けたくない場合、新しいチェックアウトですべてを上書きすることは簡単です。LocalSettings.phpやカスタムスキンといったものはそのままにします。noted.PrivacyDesktop。