2013年2月10日日曜日

[Subverion]レポジトリのバックアップ・リストア

バックアップ
$ svnadmin dump /usr/svn/repositories/svn_test > svn_test_20081109.dump
リストア
$ svnadmin create /newdir/repositories/svn_test
$ svnadmin load /newdir/repositories/svn_test < svn_test_20081109.dump

[Subversion]プロジェクトのリポジトリ作成

  1. Repository の下にプロジェクト用ディレクトリを作成する
  2. c:\usr\svn\repositories\ に SVN サーバの管理するディレクトリがあるとする
    $ mkdir c:\usr\svn\repositories\svn_test
    $ svnadmin create c:\usr\svn\repositories\svn_test
    
  3. trunk, branches, tags のディレクトリを作成する。
    $ svn mkdir file://localhost/c:/usr/svn/repositories/svn_test/trunk -m "Initial"
    $ svn mkdir file://localhost/c:/usr/svn/repositories/svn_test/tags -m "Initial"
    $ svn mkdir file://localhost/c:/usr/svn/repositories/svn_test/branches -m "Initial"
    
Table: ツリー名一覧
trunk本流の開発ツリー
branch本流の開発ツリーとは異なる変更を加えるツリー
tagリポジトリで管理しているファイル群の特定のリビジョンを保存する機能

[Subversion]インストール for Windows XP

  1. subversion.tigris.org から win32 用のバイナリをダウンロード
  2. バイナリの本体は collab.net からダウンロードする
  3. c:/usr/svn にインストール
  4. レポジトリは c:/usr/svn/repositories を指定
  5. SVN_EDITOR export SVN_EDITOR=emacs と定義して commit 時のコメントを emacs で記述できるようにする

[gEDA]Title block の外し方

タイトルブロック (title-B.sym) は起動時から固定されているので削除は以下の手順で行う











  1. region select で Titleblock を選択する
  2. [編集] - [ロック解除]
  3. Delete キーを押して削除する

[gEDA]LinuxMint12 へのインストール

  1. Menu -> その他 -> ソフトウェアの管理
  2. 右上の検索窓に geda と入力
  3. geda を選択
  4. [インストール] ボタンを押す

[Ant]Ant から Makefile を呼び出す

Ant から Makefile を呼び出すのはいささか本末転倒のような気がするが、既に Makefile がある環境などで CruiseControl を使いたい場合などに応用ができるかもしれない。
build.xml に を使用して make を呼び出すようにしておく。
<?xml version="1.0"?>
<project name="hello" basedir="." default="all">
  <target name="clean">
    <exec executable="make">
      <arg value="clean"/>
    </exec>
  </target>
  <target name="compile">
    <exec executable="make">
      <arg value=""/>
    </exec>
  </target>
  <target name="all" depends="clean,compile"/>
</project>

[Ant]CppUnit テスト

以下のような build.xml を準備する
<?xml version="1.0"?>
<project name="CppUnit" basedir="." default="all">
  <taskdef resource="cpptasks.tasks"/>
  <property name="build.dir" value="build"/>
  <property name="dist.dir" value="dist"/>
  <property name="src.dir" value="src"/>
  <target name="init">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${dist.dir}"/>
  </target>
  <target name="clean">
    <delete dir="${build.dir}"/>
    <mkdir dir="${build.dir}"/>
    <delete dir="${dist.dir}"/>
    <mkdir dir="${dist.dir}"/>
  </target>
  <target name="compile" depends="init">
    <cc outtype="executable"
        subsystem="console"
        outfile="${dist.dir}/test"
        objdir="${build.dir}"
        debug="true">
      <compiler name="g++">
        <fileset dir="${src.dir}" includes="*.cpp"/>
      </compiler>
      <linker name="gcc" libtool="true">
        <libset libs="cppunit,stdc++"/>
      </linker>
    </cc>
  </target>
  <target name="test" depends="compile">
    <exec executable="${dist.dir}/test.exe">
      <arg value=""/>
    </exec>
  </target>
  <target name="all" depends="init,clean,compile"/>
</project>
ant, ant test を実行すると CppUnit のテスト用に作成した test.exe が実行され結果が表示される。
>ant test
Buildfile: build.xml
init:
compile:
[cc] Starting dependency analysis for 3 files.
[cc] 3 files are up to date.
[cc] 0 files to be recompiled from dependency analysis.
[cc] 0 total files to be compiled.
[cc] Starting link
test:
[exec] This is Counter test
[exec] CounterTest::test_init : OK
[exec] CounterTest::test_incr : OK
[exec] CounterTest::test_clear : assertion
[exec] CounterTest.cpp:34:Assertion
[exec] Test name: CounterTest::test_clear
[exec] equality assertion failed
[exec] - Expected: 1
[exec] - Actual : 0
[exec]
[exec] Failures !!!
[exec] Run: 3 Failure total: 1 Failures: 1 Errors: 0
[exec] Result: 1
BUILD SUCCESSFUL
Total time: 0 seconds