Subversion+TortoiseSVN+SSH memo
2009年3月28日
Suns & Moon Laboratory
はじめに
とっても便利な Subversion と TortoiseSVN 。
でもまだよくわかってないのでメモします。
使い方
リポジトリのレイアウト例
/
├calc
│├trunk
│├tags
│└branches
└calendar
├trunk
├tags
└branches
参考:リポジトリレイアウトの選択
プロジェクト初期手順
- プロジェクトフォルダを作成
- 空のフォルダを作成、/drawにインポート
この時、drawをあらかじめ作成せずにインポートすると、/以下にtrunk,tags,branchesが出来てしまう。
draw←ここを選択してインポート実行
├trunk
├tags
└branches
- インポート結果
- trunkに初期ソース格納、/draw/trunkにインポート
trunk←ここを選択してインポート実行
├main.c
├main.h
└sub.c
- drawフォルダを空にする
draw
- /draw/trunkをチェックアウト
draw←ここを選択して(またはこのフォルダ内で)チェックアウト実行
├main.c
├main.h
└sub.c
- インポート結果
注意
- Windowsでは大文字小文字が区別されない。ファイル名変更で大文字小文字変えるだけという事が出来ない。
再配置
コピーによる再配置。というか、コピー。
初期配置
タグを付ける為にコピー
コピー結果
やっぱりapp1/trunkじゃなくて、app1/firm/trunkにしたい
コピー結果
2階層ほってコピーしてみる
2階層ほってコピーは失敗
リポジトリの移行とか特定パスの完全削除
リポジトリの移行を読めば、まさにその通りです。
元リポジトリ(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接続出来るようにしてみたいと思います。詳細忘れたので概要だけ(--;)
- Cygwinで、OpenSSHとSubversionを入れる。
- How to install OpenSSH sshd server and sftp server on a Windows 2000 or Windows XP or Windows Server 2003を見ながら設定と動作確認
- クライアントで作成した公開鍵を\\\"/home//.ssh/authorized_keys\\\"に設定する。設定方法はSVN+SSH+public key authentication on Windows Box as serverの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
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の利用
※1.Keyがすでにあれば、必要無いです。
PuTTYでセッションを保存
- PuTTY Configuration→Connection→SSH→Auth→Private key file for authenticationをBrowseで指定
- PuTTY Configuration→Connection→Data→Login details→Auto-login usernameに、ユーザー名を指定
- PuTTY Configuration→Session→HostNameで、接続先のIPアドレスを指定
- 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を見れるようにするツール-
参考
何を登録するかの参考。調べたのではなく、経験的にやってるので危険かも。
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/vs05/vsto2005/Office_vstoApplicationManifestEditor.aspx
参考:Visual Studio のファイルの種類と拡張子
参考:Visual C++ プロジェクトに対して作成されるファイルの種類
参考: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 によって生成されるファイルの拡張子
参考:flow of water→Delphi ファイルの構成
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のコンパイル リポジトリバックアップについて詳しく書いてある
2024-08-14 11:00:22 32400