Subversion 解説2-基本的な使い方 2020/08/27
リポジトリとプロジェクトの関係


目次




基本的な操作としてはこのようになります。

 import
リポジトリにプロジェクトのファイルを格納します。解説1を参照してください。
 check out
リポジトリからローカルの作業コピーを作成しいます。解説1を参照してください。
 commit
変更をリポジトリに渡し、リポジトリのリビジョンを更新します。
チェックアウト直後はリポジトリとローカルの作業コピーは同一です.。機能追加やバグ修正などで編集をします。Android StudioもNetBeansと同様に編集の痕跡が残ります。

修正と追加の表示

修正した行と追加した行の左側に表示されています。修正と追加した色がちょっと見ると同じに見えますが、よく見るとっ微妙に違っています。

削除の表示

削除した行のところに三角形が付きます。

Annotate


空白が編集した行です。右側の数字はリビジョンです。1はインポートされたときのリビジョンです。コミットをすると一つ大きくなります。

前のリビジョンと比較
[VCS]-[Subbersion]-[Compare with Same Repository Version]
でチェックアウトしたリポジトリとの比較が表示されます。

説明の必要もなくらいわかりやすいです。

[VCS]-[Subversion]-[Compare with Latest Repository Version]
一人で開発している人にとっては[VCS]-[Subbersion]-[Compare with Same Repository Version]と同一です。何人かで開発していると誰かがすでにコミットしていることがあいます。上記の変更をコミットすると、何も変更をしていない別の人がCompare with Latest Repository Versionをすると次のようになります。

自分以外がコミットしたことがわかります。
[>>]または[<<]ボタンをクリックすると変更をなかったことにできます。

コミットの操作
[VCS]-[Commit...]または[VCS]-[VCS Oparation Popup...]-[Commit...]を実行します。

何のためにコミットしたのかわかるようにCommit Messageを記入するとわかりやすくなります。い左上のファイルが2つになっています。これは不要なファイルをコミットしないように設定しているためです。
[Commit]ボタンをクリックします。
[
[Commit]ボタンをクリックします。これでコミット完了です。

不要なファイルをコミットしない設定
.gitignoreの内容を参考にしました
プロジェクトのフォルダーに移動して、

c:\temp\svnT02>svn propset -R svn:ignore .gradle .
c:\temp\svnT02>svn propset svn:ignore local.properties .
c:\temp\svnT02>svn propset -R svn:ignore .app\build .
c:\temp\svnT02>svn propset -R svn:ignore .idea/caches .
c:\temp\svnT02>svn propset -R svn:ignore .idea/libraries .
c:\temp\svnT02>svn propset  svn:ignore .idea/modules.xml .
c:\temp\svnT02>svn propset  svn:ignore .idea/workspace.xml .
c:\temp\svnT02>svn propset  svn:ignore .idea/navEditor.xml .
c:\temp\svnT02>svn propset  svn:ignore .idea/assetWizardSettings.xml .		
これをやらなとコミットに時間がかかるらしいのですが、まだ大規模なプログラムを作っていないので、この効果がわかりません。

全体の変更を表示
変更のあったファイルを表示します。

一人で開発していう場合は何の問題もありません。2人以上で開発しているとコンフリクト(競合)という問題が発生することがあります。
 revert
編集した内容を全て破棄します。リポジトリの内容に戻ってしまいます。NetBeansは今日の朝の状態に戻すことができるので、ちょっと残念です。
 update
一人で開発している場合は使わない機能です。リポジトリから変更内容を取り込みます。コミットの逆の機能です。  2人以上で開発しているとコンフリクト(競合)という問題が発生することがあります。