nDiki : Subversion リポジトリ

2004年7月26日 (月)

TortoiseSVNsvn+ssh

マニュアルを読んだら、SSHクライアントの設定のところでユーザ名だけでなくパスワードも指定する例が示されていた。

 前略\TortoisePlink.exe -l ユーザ名 -pw パスワード

なるほど。動いた。しかしかなり嫌な感じ。

ということで、「PC日記: svn+ssh on Windows」で紹介されている方法にしてみた。

準備 (Windows 側)

  1. PuTTYインストール

SSH用の鍵ペアを作成 (Windows 側)

  1. PuTTYgen を実行。
    1. SSH2 RSA を選択。
    2. Generate マウスを適当に動かす。
    3. パスフレーズを入力。
    4. Save private key ボタンで PuTTY Private Key File (.ppk) として保存。
    5. 「Public key for pasting into OpenSSH authorized_keys file:」 覧に表示される文字列をコピーして、テキストファイルに保存(名前は任意)。

SSHの鍵をサーバ側に置く (サーバ側)

  1. そのファイルの中身を Subversion リポジトリのあるサーバの ~/.ssh/authorized_keys に追加。

接続テスト (Windows 側)

  1. PuTTY を実行。
    1. Session - Host Name にリポジトリのあるホスト名を指定。
    2. Connection - Auto-login username にリポジトリのあるホスト上のアカウントを指定。
    3. Connection - SSH - Auth - Private key file for authentication: で 保存した ppk ファイルを指定。
    4. Session - Saved Sessions にホスト名を入力して Save。
    5. Open ボタンを押して接続確認。

TortoiseSVN でパスフレーズ入力を省略できるように Pageant を起動 (Windows 側)

  1. Pageant を起動。
    1. キーリストを開いて Add Key. 保存してある ppk ファイルを指定。パスフレーズを入力。

この状態で TortoiseSVN から接続できるようになった。

追記

2005年8月4日に若干体裁を整理。

スポンサード リンク
[ 7月26日全て ]

2004年8月26日 (木)

TortoiseCVS 1.8.0-RC4

開発中のPerl モジュールWindows での作業(動作確認、PPM パッケージ化など)は、CVSクライアントとして使いやすかったこともあって

という組み合わせだったのだが、CVS作業のために Eclipse を起動するのも面倒なので TortoiseCVS を入れてみた。

使い勝手はTortoiseSVNとほぼ同じ。アイコンオーバーレイ表示がちとしょぼい(管理下にあるファイルには緑色のもやがかかる)。 Pageant によるパスフレーズ入力省略方法もTortoiseSVNの方法と同じ (今回は Subversion リポジトリCVS リポジトリが同じホストにあるので特に何も設定する必要なく成功)。

[ 8月26日全て ]

2004年10月4日 (月)

仕事のファイルを順次 Subversion リポジトリに突っ込む

1本長めの文書を作ることになったので、(ドラフトを含む)版管理もかねて Subversion のリポジトリに突っ込む事にする。

階層

以前は

 project -> trunk -> subproject

という階層にしていたのだが、プロジェクトをまたがるタグ打ちとかに向いていないので今回は

 trunk -> project -> subproject

という感じに。

LaTeX

texmf に関してはSubversionの外部定義機能の利用をやめ、Makefile で TEXINPUTS を相対指定するように。 それでも別の階層にある texmf 下の共通画像を includegraphics する場合は '../../texmf/logo.png' などとしないといけないのがちょっと気持ち悪い。

タグ打ちは

タグ打ちはどうしようかな。みんなは trunk 以下をごっそり、branches の下にコピーしているのだろうか。 trunk の中の特定プロジェクトディレクトリ + 共通ディレクトリのみをコピーするという手もあるかもしれないけど、それはそれで繁雑だしな。

svn.sty

rcs.sty でいけるかなと思っていたのだが、Subversion だと

  • $Date$ のフォーマットが違う
  • $Revision$ がなぜかうまく展開されない ($LastChangedRevision$ の方はOK。Date の方は LastChangedDate で無くても別名が効くのに)

という問題が。探したら svn.sty という rcs.sty 亜種があったのでこちらを入れて解決。

ついでに

過去のドキュメントとかも順次。

[ 10月4日全て ]

2005年9月27日 (火)

納品前日なのに /var が壊れた! HDDからのブートで Debianインストール

午後になって「今日はメールがあまりこないな」と思っていたら、実はノート PCの /var が 100% を越えていた。 しかし急に何で?

 Filesystem          サイズ  使用  残り 使用% マウント位置
 /dev/hda1             9.2G  7.5G  1.3G  86% /
 tmpfs                 505M   16K  505M   1% /dev/shm
 /dev/hda2              19G   14G  3.9G  79% /home
 /dev/hda3             185M  -64Z  163M 101% /var
 /dev/hda5             1.2G  347M  813M  30% /tmp

いや、そもそも /var は 3.7GB ぐらい取ってあったはず。……ヤバイ? /var を除くと空の /var/lib と、空の lost+found のみ。 おや? あれ?

一旦シャットダウン。/var が無いので各 daemon が悲鳴をあげつつ終了。 でシングルユーザで起動して fsck。 酷い有様のようだ。 ここまで /var が壊れるとどうしようもないなあ。/var/lib/dpkg 以下がごっそり無いのは Debian 的に痛い。

納品を明日に控えているんですけどね。TeX のドキュメントもまだまだ書かなければいけないんですけどね (/var/lib/texmf も無い)。 メールのチェックもままならない(/var/qmail も /var/spool も無い)。

インストールかぁ。幸い / と /home が生きているから被害は最小限。 下手に無理して使い続けて他に悪影響が出てファイルを壊したりしないうちに、やってしまった方が良さそうだ。

インストール

まずは sargeDebian GNU/Linux を入れ直す。 USB FDD も USB CD-ROM ドライブも自宅で手元にないという状態の ThinkPad X31 ということで、 HDD からのブートをチョイス。

最初に / パーティションにある /usr/local を /home/naney 以下に退避。 次にGRUBからインストーラが起動するようにする。

 mkdir /boot/newinstall
 cd /boot/newinstall
 wget http://http.us.debian.org/debian/dists/sarge/main\
 /installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
 wget http://http.us.debian.org/debian/dists/sarge/main\
 /installer-i386/current/images/netboot/debian-installer/i386/linux
 mv linux vmlinuz

/boot/grub/menu.lst に

 title New Install
 kernel (hd0,0)/boot/newinstall/vmlinuz root=/dev/ram0 ramdisk_size=12000
 initrd (hd0,0)/boot/newinstall/initrd.gz

を追加してリブート。GRUB のメニューから New Install を選んで起動させ、インストーラを立ち上げる。 パーティションの設定で

  • / と /var があったパーティションは初期化 (ext3)
  • /var と /tmp と のパーティションはそのままマウントするように設定
  • swap は今までと同じ /dev/hda6

あとは普通にネットワークインストール。 思ったより簡単に復旧できそうだ。CD-ROM やフロッピーディスクを作るよりよっぽど簡単。

最小限のパッケージだけ入れたらすぐに sidアップグレードし、後は作業しながら足りないものを順次インストール・設定。

/etc の下のバックアップは自宅にある外付けHDにあり、これを参照しないかゆいところまで手の届いた設定に戻していくのは大変。 とりあえず 会社では qmail の設定など必要な範囲のみに留めておく。

Linu kernel は以前作った deb 一式をとっておいたのでそれで置き換え。 有線LAN + DHCPな難境だったので、ネットワークまわりほぼ設定不要で助かった。

MADWIFIcpufreqd あたりの設定は自宅に戻ってから復旧させた。

被害状況

/var の lost+found をみると 11:35 ぐらいに /var に書き込めなくなったようだ。 気がついたのが 14:30 ぐらいで、再インストールしてある程度作業ができる状態 (メールまわり、XEmacs まわり他)になったのが、19:00すぎ。

問題確認後、作業中のファイルを失わずに Subversion リポジトリにコミットでき、もう一台のデスクトップ Windows PC で作業を継続できたのは不幸中の幸い。

しかし /var の破損の原因は何なんだろう。HDDの問題に起因するとなると今後もこわすぎるな。

[ 9月27日全て ]

2006年2月17日 (金)

SVN::Webインストール失敗

社内サーバ上の Subversion リポジトリを気軽に閲覧できるように、以前から試そうと思っていた SVN::Webインストールしてみる。

しかし SubversionPerl バインディングである SVN::Core は、Subversion パッケージに同梱されていて独立していないのか。 SubversionRed Hat Linux 8.0 へ RPM パッケージで入れているのだが、SVN::Web の方は /usr/local/perl-5.8.8 以下にインストールした Perl 5.8.8 上へ入れようと思っていたので、はたと困る。

 --with-perl5=/usr/local/perl-5.8.8/bin/perl

で configure して、Perl モジュールだけインストールしてみたけれどうまく動かず。

素直に Red Hat Linux 8.0 に標準で入っている Perl 5.8.0 に入れるかなぁ。

[ 2月17日全て ]

2006年6月29日 (木)

SubversionSSH port forwarding 経由での svn+ssh

普段プライベートネットワーク内で、svn+ssh で接続している Subversion リポジトリSSH 経由で port fowarding して接続するようにする。

 [ノート PC] -- [ゲートウェイ] -- [リポジトリのあるサーバ]
                gw.example.com    192.168.0.x

ポートフォワーディング用 SSH ラッパー

例えば svn-gw-ssh という名前で以下のファイルを作成:

 #!/bin/sh
 HOST_NAME=$1
 shift 1
 ssh -f -L 8023:$HOST_NAME:22 gw.example.com sleep 10
 ssh -p 8023 -o HostKeyAlias=$HOST_NAME localhost $@

svn 用ラッパーも書いておく

例えば svn-gw という名前で以下のファイルを作成:

 #!/bin/sh
 SVN_SSH=svn-gw-ssh svn $@

使う

これで例えば svn+ssh://192.168.0.x/var/repos でチェックアウトした作業ディレクトリ上をプライベートネットワーク内外で、更新したりコミットしたりできるようになる。

プライベートネットワーク内からは今まで通り。

 svn update

プライベートネットワーク外からは

 svn-gw update

のようにする。

これで

と合わせて随分外部で作業できるようになった。 それだけ、外部でもやれる仕事が増えたということでもあるが。

[ 6月29日全て ]

2006年12月21日 (木)

ノート PC を持たずに会社に行きたい

今日は夕方から社外でミーティングWindows 環境でのデモンストレーションが必要なため、普段持ち歩いている自分の ThinkPad X31 (Linux BOX) に加えて会社の Dellノート PC を持って出発。重い。

メール開発環境などは一元管理したい派なので普段の通勤でノート PC を持って往復するのはまあしょうがないのだが、こういう日は家に置いてきてせめて1台にしたいところである。

オフィスで開発などのヘビーな作業をしない日は、最近構築を進めている USB メモリによるポータブル環境で済ませられるようにぜひしたい。

母艦でしていることを思いつく範囲で列挙

ノート PC (母艦)USB メモリポータブル環境 + Windowsオフィスの WindowsLinux
メーラ×
TeX?
UNIX開発×
パスワード管理××
ナレッジベース× (メモだけしておいて母艦へ)×
Skype×
SSH
フレッシュリーダー××

認証がからむものをできるだけポータブル環境にまとめたいところ。 データはさすがに全部 USB メモリに入れて持ち歩けないので、どんどん Subversion リポジトリに置くようにして必要なものだけ取れるようにした方がいいかな。

[ 12月21日全て ]

2007年9月11日 (火)

Linux 上で Flex 2 SDK を使った Flash コンテンツ開発を開始

Flash コンテンツ開発については以前から興味があったんだけれど、手元 (Debian GNU/Linux BOX) で開発環境が構築できないので、ほとんど手をつけていなかった。 Ming を試してみたこともあったのだが、全然使いやすくなかったし。

しかしながらここ最近では Flex 2 SDK によって、Linux 上でも Flash コンテンツ開発できるようになった。 ということで技術調査をかねて開発環境構築と、コード書きを始めてみた。

まずはエディタとコンパイラと単体テストフレームワークがあれば開発できる。 Debian GNU/Linux sid 上で用意した環境は以下。

エディタは素直に Emacs で。単体テストフレームワークは、FlexUnit (.85) をチョイス。

今回はビルドツールを何にするか迷ったけれど Apache Ant にすることにした。最初は Makefile を使ってサンプルをビルドしていたりしたけれど、今後 Autotools 使うのもどうかなと思って。

ドキュメントについては Adobe から結構な量で提供されているのでこれを見ればたいがい足りそう。

ということでぽちぽちプロジェクト作成。とりあえず SWF ファイルと同じところにあるテキストファイルを読み込んで表示するだけの MXML ファイルを作成して、build.xml を構築。

ほとんどの時間は build.xml 書きと、Subversion リポジトリセットアップに費された。

後は別途ちょっとサンプルで試してみた FlexUnit をプロジェクトに組み込めば発進できそうだ。

[ 9月11日全て ]

2007年9月25日 (火)

Visual C# 2005 Express Edition ではどれを Subversion リポジトリに突っ込めば良いか?

Visual C# 2005 Express Edition で Windows アプリケーションテンプレートによる構成は下記 (名前を Example で作成した場合)。

ファイル名対象
Example.slnoソリューションファイル (テキストファイル)
Example.csprojoプロジェクトファイル (XML ファイル)
Example.suoソリューションユーザオプションファイル (バイナリファイル)
Program.csoC# ソースファイル
Form1.csoC# ソースファイル
Form1.Designer.csoC# ソースファイル
Properties/AssemblyInfo.csoC# ソースファイル
Properties/Resources.Designer.csoC# ソースファイル
Properties/Settings.Designer.csoC# ソースファイル
Properties/Resources.resxoリソースファイル (XML ファイル)
Properties/Settings.settingso設定ファイル (XML ファイル)
bin/*
obj/*

バージョン管理する必要があるのは「対象」のファイルで良いのかな? Form1 などはすぐ名前変更になるけれど。

参考

追記

2007年12月4日
  • Properties/Resources.Designer.cs を追加。

今日のさえずり

[ 9月25日全て ]

2008年9月4日 (木)

Subversion リポジトリ間のディレクトリコピー

Subversion リポジトリにある1ディレクトリ以下について別プロジェクトで派生して使いたいのでコピーすることにしたのだが、履歴を維持してコピーするのは結構手間だった。

repos1 上の trunk/dir1/dir2 以下を、新しく作った repos2 (svnadmin create 済み)の trunk/dir2 としてコピーする:

 svnadmin dump /path/to/repos1 > dump
 cat dump | svndumpfilter include trunk/dir1/dir2 | perl -pe 's|^Node-path: trunk/dir1/dir2|Node-path: trunk/dir2|' > dump.new
 svnadmin load /path/to/repos2 < dump.new

一応1回やってみたけれど、考えてみると今回は履歴維持する必要性もないので結局一旦 repos2 を破棄して必要なもののみ作業ディレクトリ上で追加してコミットしなおした。

サーバ上で作業しなければならないし、まあ今後やる機会はほとんどなさそう。


[ Subversion ]

[ 9月4日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.065028s / load averages: 0.69, 0.63, 0.62
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker