sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

Visual Studio Online (Git) によるローカルコード管理例

Visual Studio Online は、リンクを参照。

問題と提案

コード管理の方法は、個人的に好きなようにしたらよいと考えています。
私は、ビジネスに関するコードと汎用性の高いライブラリーに関するコードを別々のチームプロジェクトで管理したい。
つまり、次のリストのチーム プロジェクト コレクションになる。

  • ビジネスコード用 チームプロジェクト
  • 汎用ライブラリー チームプロジェクト

問題は、ビジネスコード用から、汎用ライブラリーを参照したい。 これの解決方法には、 Git の submodule が、ひとつの回答になるが、シンプルなこの問題に対して対策にかかる手間が大きいように思う。

開発規模と相談し、十分小さいのであれば ジャンクション で解決すると、単純なぶん手間は減ります。

準備

必要なチームプロジェクト コレクションを作成します。
Visual Studio Online で作成したチームプロジェクトを、 PC の Visual Studio を使ってローカル Git リポジトリを複製します。
まったくプロジェクトが無い状態では確認しづらいので、テスト用のプロジェクトを1つ作成し同期させます。

対策

ビジネスコード用 チームプロジェクトのローカルフォルダに SubModules (名前はなんでもよい) という名前のフォルダーを作成します。 ローカルフォルダーを確認し、次のファイルがあることを確認します。

  • .gitignore

.gitignore ファイルに次のテキストを追記します。 SubModules フォルダー内は、コード管理外にしています。

# Library Project Path
SubModules/

最後に、 SubModules フォルダーの中に、ジャンクションを使って必要なライブラリーのリンクを作成します。
どういうリンクを作ったかあとからわかるように、 SubModules フォルダー直下に「mklink.txt」ファイルを保存しておくとよいと思います。

mklink /d "C:\Users\ユーザー名\Source\Repos\チームプロジェクト名\SubModules\追加するライブラリー名" "C:\Users\ユーザー名\Source\Repos\追加するライブラリー名"

コマンドプロンプトでジャンクションを作成するときは、管理者権限が必要です。

問題点

ライブラリーのコードは、参照をしているビジネスコード用のプロジェクトから変更せずに、別途 Visual Studio を起動して、ライブラリー用のプロジェクトから変更を入れる。
変更の追跡を無視しているプロジェクトから、コードの追加・修正をしないということです。
モリーとディスプレイに余裕がないと、おすすめできない管理方法かもしれません。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

  • 作者:大塚 弘記
  • 発売日: 2014/03/20
  • メディア: 単行本(ソフトカバー)