Subversion 2020/08/20
Subversion解説1-導入編
  PIC32の記事にあるSubversionがAndroid Studioでも使えます.。
Subversionとはバージョン管理ソフトです。
「バージョン管理ソフト?」言語明瞭意味不明。
パソコンに限らすマイコン制御の器機のソフトが完成すると公開するときにバージョンをつけます。
製品の不具合が見つかった。
バージョンは何!
どのバージョンから不具合が始まったのか?
対応はどうする?
こんな時にバージョン管理をしっかりしていないと混乱を招きます。
昔なら紙に
バージョン名
発行日
実施内容
担当者
などを書いて管理していました。
たぶん、紙だってきちんと記録しておけば十分対応できます。
Subversionはこのようなバージョン管理に対応します。

さらに!
ソースコード管理もできます。
前回リリースしたバージョンからどのように変更したのか?
本日、重大な勘違いをして追加・変更してしまった。昨日のソースに戻してやり直したい。
(よくありそうな話
こんな困った状況を解決してくれます。

さらにさらに!
複数人のプログラマでソフト開発することができます。

また、自分のパソコンが壊れたときSubversionのリポジトリが別のPCにあれば再度戻すのが容易です。

ここでご注意:
ネットの投稿サイトで次のようなエラーがでたのでどうすればいいか?という投稿がありました。
Dubversionの実行がたぶん間違っている。設定が悪いのか?環境変数なとにセットしないとダメなのか?これを見ただけでは想像するのも難しいですね。

Subversionがインストールされてない。
Subversionをインストールしないとダメなのです。

Subversionのインストール
複数のPCで開発するには全部のPCに同じバージョンをインストールしてください。
実際あった事例:
PC1にあるリポジトリからPC2がチェックアウトしてビルドがエラーになる。
念のためPC1とPC2のソースファイルと WinMergeで比較する。
同一!
PC2のソースをPC1にコピーしてビルドする。同じビルドエラーが出る。Subversionのせいではないらしい。プロジェクトの中にPC1で作ったぞ!みたいな情報は入ってなさそうなのだ、
PC1とPC2の違いを調べる。Android Studioの立ち上がりは同じに見える。バージョンを調べる。
PC1: 4.0
PC2: 3.6
PC2を4.0にアップデート。ビルドできた。

それではインストール:
MPLABで開発したとき問題のSilk-Subversionを使用しました。
バージョン:Slik-Subversion-1.8.9-x64.msi
インストールで厄介なところはあないので、操作等は割愛します。
リポジトリの設定
リポジトリとは、データを置いておく場所です。具体的事例をみればよくわかると思います。

svnは普通に作製したフォルダです。;ledなどのフォルダーはリポジトリでSubversionでフォルダーをk作成します。
cd c:\svn
svnadmin create led
これでSubversionのrepository用フォルダを作成しました。
実際の作業として、Subversion用のリポジトリ統合のフォルダーにプロジェクトMyPrj1のリポジトリを作成する手順です。

コマンドプロンプトを起動して、
cd c:
mkdir svnRep
cd svnRep
svnadmin create MyPrj1
これでリポジトリができました。
更にもう一つ
MyPrj1を共有ホルダに設定してください。
プロジェクトをSubversionインポートする
管理ソフトをSubversionにします。
[VSC]-[Enable Version Control Integration]

Subversionを選択します。

プロジェクトのリポジトリを設定します。
[VSC]-[Brows VSC Repositor]

Browse Subversion Repositoryを選択します。

リポジトリの追加をします。

+ボタンをクリックします。


いきなりhttpで設定しろと言われても???????????????
リポジトリを設定してるLinuxのサーバーがあればここで設定します。Raspberry Piでも対応できます。いろいろ試した結果、

LETSはコンピュータ名、Myprj1はsvnadminコマンドで作成したリポジトリです。また共有ホルダにします。 [OK]をクリックすればこのプロジェクトのリポジトリが完成です。


Subversionへインポートする
subversionからみたらインポートです。つまりデータをリポジトリに取り込みます。インポートはリポジトリに対して1回だけの操作です。ビルトに必要なデータがリポジトリに取り込みます。2回やるとエラーになります。


import into Subversionをクリックします。

リポジトリを選択して[import]ボタンをクリックします。

プロジェクトのフォルダーを選択して[OK]ボタンをクリックします。

コメントは書いておいたほうがいいです。年月日何のためのインポートかがわかるように工夫をして記述してください。[OK]ボタンをクリックします。インポートの状態を示Windowが表示され終了すると消えます。これでインポート完了です。
チェックアウトとは言語明瞭・意味不明な感じです。
subversionからみたらインポートです。つまりデータをリポジトリに取り込みます。インポートはリポジトリに対して1回だけの操作です。ビルトに必要なデータがリポジトリに取り込みます。2回やるとエラーになります。


import to Subversionをクリックします。

リポジトリを選択して[import]ボタンをクリックします。

プロジェクトのフォルダーを選択して[OK]ボタンをクリックします。

コメントは書いておいたほうがいいです。年月日何のためのインポートかがわかるように工夫をして記述してください。[OK]ボタンをクリックします。インポートの状態を示Windowが表示され終了すると消えます。これでインポート完了です。
チェックアウトとは言語明瞭・意味不明な感じです。
subversionからみたらインポートです。つまりデータをリポジトリに取り込みます。インポートはリポジトリに対して1回だけの操作です。ビルトに必要なデータがリポジトリに取り込みます。2回やるとエラーになります。


import to Subversionをクリックします。

リポジトリを選択して[import]ボタンをクリックします。

プロジェクトのフォルダーを選択して[OK]ボタンをクリックします。

コメントは書いておいたほうがいいです。年月日何のためのインポートかがわかるように工夫をして記述してください。[OK]ボタンをクリックします。インポートの状態を示Windowが表示され終了すると消えます。これでインポート完了です。
チェックアウト
チェックアウトとは言語明瞭・意味不明な感じです。最初にSubversionのリポジトリからプロジェクトを取得kする操作です。2回目以降はアップデートです。新たに開発に参加する場面を考えるとわかりやすいと思います。


PC1は一人で開発していました。ひとつの機能ができあがるとSubversionを更新しています。納期に間に合わない不安が出できて応援を頼みました。応援者はPC2でPC1のリポジトリからチェックアウトをします。これだけでPC2にPC1と同じプロジェクトが構築れます。更新の記録もわかりますのでPC1の開発者に教えてもらうことが最少にすることができます。

インポートしたPCでもチェックアウトしていません。Subversionの機能が使えません。Subversionの機能を使えるようにするためチェックアウトします。、
[VCS]-[get form version control]

Version Control でSubversion を選択。
Repositoryを選択。[
CheckOut]ボタンをクリック。


展開するフォルダを指定します。
[OK]ボタンをクリックします。

ほとんど何もしないで[OK]ボタンをクリックしてます。
,
フォーマットを選択します。最近始めたので1.8だけで、選択の余地はありません。
[OK]をクリックします。

プロジェクトを開くか?好きなほうを選んで下さい。

これでPC2でも開発ができるようになりました。