*Subversion+TortoiseSVN+SSH memo 2009年3月28日 [[index]] #contents **はじめに とっても便利な [[Subversion>http://subversion.tigris.org/]] と [[TortoiseSVN>http://tortoisesvn.tigris.org/]] 。 でもまだよくわかってないのでメモします。 **使い方 ***リポジトリのレイアウト例 >/ >├calc >│├trunk >│├tags >│└branches >└calendar > ├trunk > ├tags > └branches 参考:[[リポジトリレイアウトの選択>http://subversion.bluegate.org/doc/ch05s04.html#svn.reposadmin.projects.chooselayout]] ***プロジェクト初期手順 +プロジェクトフォルダを作成 &img(1_create.png); +空のフォルダを作成、/drawにインポート この時、drawをあらかじめ作成せずにインポートすると、/以下にtrunk,tags,branchesが出来てしまう。 >draw←ここを選択してインポート実行 >├trunk >├tags >└branches < +インポート結果 &img(2_import.png); +trunkに初期ソース格納、/draw/trunkにインポート >trunk←ここを選択してインポート実行 >├main.c >├main.h >└sub.c < +drawフォルダを空にする >draw < +/draw/trunkをチェックアウト >draw←ここを選択して(またはこのフォルダ内で)チェックアウト実行 >├main.c >├main.h >└sub.c < +インポート結果 &img(3_import.png); ***注意 -Windowsでは大文字小文字が区別されない。ファイル名変更で大文字小文字変えるだけという事が出来ない。 **再配置 コピーによる再配置。というか、コピー。 ***初期配置 &simg(001.png); ***タグを付ける為にコピー &simg(002.png); ***コピー結果 &simg(003.png); ***やっぱりapp1/trunkじゃなくて、app1/firm/trunkにしたい &simg(004.png); ***コピー結果 &simg(005.png); ***2階層ほってコピーしてみる &simg(006.png); ***2階層ほってコピーは失敗 &simg(007.png); **リポジトリの移行とか特定パスの完全削除 [[リポジトリの移行>http://subversion.bluegate.org/doc/ch05s03.html#svn.reposadmin.maint.migrate]]を読めば、まさにその通りです。 元リポジトリ(desktops)はこうなっている。 >/ >├calc >│├trunk >│└tags >├calendar >│├trunk >│└tags >└speradsheet > ├trunk > └tags リポジトリのダンプ >svnadmin dump desktops > dumpfile ダンプファイルから不要パスを削除。excludeは複数指定も可能。 >cat dumpfile | svndumpfilter exclude calc calendar > spread-only-dumpfile リポジトリを移動(削除) >mv desktops desktops.bak 新しくリポジトリを作成してロードする。 >svnadmin create desktops >svnadmin load desktops < spread-only-dumpfile 以上の手順後のリポジトリ(desktops)はこうなる。 >/ >└speradsheet > ├trunk > └tags **インストール(Windowsサーバ) Windowsマシンをサーバにして、SSH接続出来るようにしてみたいと思います。詳細忘れたので概要だけ(--;) -[[SVN+SSH+public key authentication on Windows Box as server>http://tortoisesvn.sourceforge.net/node/156]] インストール&設定手順、これを見ながらインストール -[[Subversion / TortoiseSVN SSH HowTo>http://tortoisesvn.sourceforge.net/?q=node/5]] SSH接続方法 これも参考 -[[How to install OpenSSH sshd server and sftp server on a Windows 2000 or Windows XP or Windows Server 2003>http://pigtail.net/LRP/printsrv/cygwin-sshd.html]] OpenSSH +Cygwinで、OpenSSHとSubversionを入れる。 +[[How to install OpenSSH sshd server and sftp server on a Windows 2000 or Windows XP or Windows Server 2003>http://pigtail.net/LRP/printsrv/cygwin-sshd.html]]を見ながら設定と動作確認 +クライアントで作成した公開鍵を\\\"/home//.ssh/authorized_keys\\\"に設定する。設定方法は[[SVN+SSH+public key authentication on Windows Box as server>http://tortoisesvn.sourceforge.net/node/156]]の10番。 ただし、-rオプションのパラメータを、"c:/mysvnroot/"ではなく、"/cygdrive/c/mysvnroot/"にする。そうしないと"Error * No repository found〜"とか言われてしまう。 +c:/mysvnroot/project1にリポジトリ作成 ***ユーザを追加する 1.Windows上でユーザ追加 2.Cygwinでパスワード生成 > cd /etc > $ mkpasswd -l > passwd ↓オプションに-uつけた方が良いそうだ。 参考:[[Cygwinでsshd>http://www.rouge.gr.jp/~fuku/tips/cygwin-sshd/]] 3.Cygwinでユーザーホーム作成 > cd /home > mkdir ユーザー名 > cd ユーザー名 > mkdir .ssh 4.SSHの設定 .sshにautorized_keysを入れる。これはサーバ設定を参考に。 このauthorized_keysでリポジトリ位置を指定出来る。 ***リポジトリの作成 TortoiseSVNでリポジトリ作成したら、SSH経由でうまくいなかったので、svnadminでリポジトリ作成 >svnadmin create --fs-type fsfs /cygdrive/c/リポジトリを作成したいパス/ **インストール(Windowsクライアント) +TortoiseSVNは普通〜に入れる +TortoiseSVN Settings→Network→SSH ClientをTortoisePlink.exeにする。 +PuTTYとPuTTYgen※1を、Windowsディレクトリにコピーする。 +PuTTYgenでKey生成※1。この時pathphrase入れない。 参考:[[PuTTYgenの利用>http://www.cc.tsukuba.ac.jp/old/WinSCP/PuTTYgen/]] ※1.Keyがすでにあれば、必要無いです。 PuTTYでセッションを保存 -&simg(putty1.png); PuTTY Configuration→Connection→SSH→Auth→Private key file for authenticationをBrowseで指定 -&simg(putty2.png); PuTTY Configuration→Connection→Data→Login details→Auto-login usernameに、ユーザー名を指定 -&simg(putty3.png); PuTTY Configuration→Session→HostNameで、接続先のIPアドレスを指定 -&simg(putty4.png); PuTTY Configuration→Session→Saveでセッションを保存 Auto-login usernameを指定した場合 >svn+ssh://CONNECTION/REPOSITORY >CONNECTION PuTTYで保存したセッション名 >REPOSITORY リポジトリのパス。-rでルート位置が指定されているので、そこからの相対位置になる。 > >例 >svn+ssh://DefaultSession/project1 > ユーザ hoge > PuTTYセッション名 DefaultSession > リポジトリの位置は、 c:/mysvnroot/project1 Auto-login usernameを指定しなかった場合 >svn+ssh://USERNAME@CONNECTION/REPOSITORY **インストール(Windowsクライアントにxdocdiff) 便利なので、xdocdiffを入れる。機能は下記リンク名称の通り。。 [[xdocdiff -TortoiseSVNでWord, Excel, PowerPoint, pdfのdiffを見れるようにするツール->http://freemind.s57.xrea.com/xdocdiff/index.html]] **参考 何を登録するかの参考。調べたのではなく、経験的にやってるので危険かも。 ***Visual C++ 2005 Express Edition vcprojさえあれば良い。 ●svn管理 △svnで管理しない。いらないがあっても良い ×svnで管理しない。 -●*.vcproj -●*.sln -●*.c、*.cpp、*.h、*.hpp、*.cs、*.vb、*.aspx、*.asax、*.resx、*.vsdisco、*.css など -×*.vcproj.{machinename}.{username}.user、*.csproj.user または *.vbproj.user -×*.ncb -×*.suo 各開発者が IDE に行ったカスタマイズ -×*.pdb デバッグのためだけに使用されるプログラムデータベースファイル {machinename}は、使用しているマシン名 {username}は、ログオンしているユーザー名 参考:[[Visual Studio .NET と Visual SourceSafe を使用したチーム開発>http://www.microsoft.com/japan/msdn/net/bda/tdlg_ch3.aspx]] 参考:[[チーム開発でのワークスペースの使用方法>http://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/teamwork/]] 参考:[[http://www.microsoft.com/japan/msdn/vs05/vsto2005/Office_vstoApplicationManifestEditor.aspx]] 参考:[[Visual Studio のファイルの種類と拡張子>http://msdn2.microsoft.com/ja-jp/library/xhkhh4zs(VS.80).aspx]] 参考:[[Visual C++ プロジェクトに対して作成されるファイルの種類>http://msdn2.microsoft.com/ja-jp/library/3awe4781(VS.80).aspx]] 参考:[[http://www.atmarkit.co.jp/fdotnet/easyvs/easyvs02/easyvs02_02.html]] ***Visual C++ 6.0 -*.dsw ワークスペース -?*.dsp 排他的チェックアウトを推奨 dsp ファイルのコンパイラとリンカのオプションが複数のユーザーによって同時に変更されると、チェックインの際のマージが複雑になります -?resource.h 排他的チェックアウトを推奨 ファイルに含まれているリソースの数がインクリメンタルに記録されています -?mydata.rc 排他的チェックアウトを推奨 ファイルに含まれているリソースの数がインクリメンタルに記録されています -×*.opt MSによると管理すべきではない ローカル コンピュータのワークスペース オプション ファイルであるバイナリ ファイル -×*.clw MSによると管理すべきではない ClassWizard がクラスの追跡のために使用するファイル -×*.ncb MSによると管理すべきではない ClassView が使用する、ローカル マシンに固有のバイナリ ファイル -×*.aps MSによると管理すべきではない ローカル リソース ファイルによって使用されるバイナリ ファイル。このファイルは高速ロードのために使用されます。 -×*.mak MSによると管理すべきではない エクスポートされたメイクファイル -×*.plg ビルドログ ***Borland Developer Studio 2006(Delphi Win32) ●svn管理 △svnで管理しない。いらないがあっても良い ?svnで管理するかどうかは要検討 ×svnで管理しない。 -●bds.proj BDSプロジェクトファイル -●cfg 環境設定(bds.projと重複?) -●dof プロジェクトオプションファイル(bds.projと重複?) -●dpr Delphiプロジェクトファイル -●pas ユニットソースファイル -●dfm VCLフォームファイル -●res リソースファイル、お好みで?無くても再生成される。 -?ddp ダイアグラム(バージョンにより存在?) -?*.dcu コンパイル済みユニット(dcuで配布されているコンポーネントとかは必要) -?__history 統合環境で履歴管理 -×.~* バックアップファイル -×Project1.identcache 多分いらない 参考:[[RAD Studio によって生成されるファイルの拡張子>http://docwiki.embarcadero.com/RADStudio/ja/RAD_Studio_%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E6%8B%A1%E5%BC%B5%E5%AD%90]] 参考:[[flow of water>http://wblue.web.infoseek.co.jp/index.htm]]→[[Delphi ファイルの構成>http://wblue.web.infoseek.co.jp/lecture/app/00/01-00.htm]] ***HEW 4 ユーザマニュアルにも書いてありますが、一応まとめ。 ●svn管理 △svnで管理しない。いらないがあっても良い ×svnで管理しない。 ****workspaceフォルダ -●hws HEW WorkSpaces ワークスペース -●hvc HEW Version Control?の略かも。バージョン管理ツールの設定が入る。(HEWのツール→バージョン管理→構成) -×tws ワークスペースの設定、HEW起動すれば自動で生成される -×hdp 使用するToolchain指定。 -×arf HEW起動中のみ存在 ****projectフォルダ -●defaultsession.hsf 消すとメッセージうるさいので入れとく -●SessionH8_Tiny_SLP_E8_SYSTEM_300H.ini エミュレータの設定入るので、入れた方がよさそう。 -●hwp project設定(Pathやオプションが入る) -×nav 自動生成(Pathが入る) -△pgs Project Generator Setup Infomation。一度生成されるだけで、変更も参照もされないので、管理しなくても良い。 -△tps ビルドコンフィグの選択がある 以下はComputex PALMiCEのファイル -●cpf ConputexICE プロジェクトファイル -●cwf ConputexICE なんかの設定 ****debugフォルダ 基本的に全ていらない。 -×abs -×lbk Library Backup -×hlk リンカ設定 -×shc コンパイラ設定 -×shg ライブラリジェネレータ設定 ***QuartusII ●svn管理 △svnで管理しない。いらないがあっても良い ×svnで管理しない。 ****プロジェクトフォルダ -○*.v 当然 -○*.qpf プロジェクトファイル -○*.qsf 設定っぽい -△*.qws ワークスペース? -×*.done 何か処理すると更新 -×*.flow.rpt 何か処理すると更新 -×*.map.rpt Ana&Synthで更新 -×*.map.summary Ana&Synthで更新 -×*.fit.rpt Fitterで更新 -×*.fit.summary Fitterで更新 -×*.pin Fitterで更新 -×*.asm.rpt Assemblerで更新 -△*.asm.pof Assemblerで更新 -△*.asm.sof Assemblerで更新 -×*.tan.rpt TimingAnalyzerで更新 -×*.tan.summary TimingAnalyzerで更新 ****dbフォルダ sim結果とかいらなければ、いらないんじゃないかと。 **参考 [[Subversionのコンパイル>http://www.asahi-net.or.jp/~iu9m-tcym/svndoc/]] リポジトリバックアップについて詳しく書いてある