今日は、OneDrive上にSVNのレポジトリを作成してファイル管理する方法について。
OneDrive上にレポジトリがあれば、複数のPCからチェックアウトしてソースを参照できますし、複数PCなくても、開発に使用しているPCが変わっても便利です。
OneDriveじゃなくても、Google DriveとかDropBoxでも一緒かな?あんまりそっちを使ってないのでいまいちわかってないですが、読み替えできそうだったら、やってみてくださいw
個人で何か趣味でもなんでも開発する場合でも、やはりSVNのようなバージョン管理できるものがあると何かと便利なんですよね。
というか、開発に限らずOffice類のファイルなどでも使えますので、地味に色々と便利だったりします。
ExcelとかWordとかも、バージョン管理すればファイル名に「_更新」とか「_new」とかつけて保存していく必要なくなります。前のバージョンのファイルを簡単に入手できますから。
- SVNを仕事などでは使ったことないけど、基礎的な部分だけでも簡単に使ってみたい人
- 家でお手軽にSVNでファイルのバージョン管理したい人(SVN自体を使ったことある人にはだいぶ冗長な説明になってます)
ではいきます。
用意するもの、インストールするもの
今回ファイルのバージョン管理するのに必要なものは、TortoiseSVNです。
ダウンロードしてインストールしてください。
インストール時の選択は基本デフォルトで大丈夫です。(アキゾラはついフルで入れたくなる人間ですがw)
GUIだけじゃなくてコマンドで操作をしたい人は、そちらのツールも入れましょう。
あ、日本語化したい人は、Language packsも一緒にダウンロードしておきましょう。
WinMergeは、ソース差分をなんかを見るときに、SVNからWinMergeで開けるので、入れておくと便利です。
あとは、OneDriveですね、SVNを入れるPCでOneDriveにアクセスできるようにしておきますよ。
OneDrive上にSVNレポジトリを作成する
では、まずOneDriveの同期フォルダ上にレポジトリを作成します。
OneDriveの同期フォルダは、通常「C:\Users\ユーザ名\OneDrive」にあるかと思います。
ここの中に、任意の場所でレポジトリを作ります。今回は以下にします。
C:\Users\ユーザ名\OneDrive\source\testRepos\MyApp
このフォルダは空で新規に作ってくださいね。
そして、MyAppフォルダを右クリック-TortoiseSVN-Create repository hereをクリックします。
TortoiseSVNがちゃんとインストール完了してれば、右クリックでTortoiseSVN関連のメニューが出るようになってますよ~。
以下のダイアログが出ますので、OKで閉じてください。
これで、レポジトリ作成終了です。
このレポジトリフォルダの中身は自分でいじらないようにしてくださいねん。
SVNレポジトリにファイルをコミットする
今作ったのは空のレポジトリです。
なので、ここにファイルをコミットして登録していきます。
今回登録するのは、Visual Studioのプロジェクトファイル一式です。
以下のように、プロジェクトファイル一式があるフォルダをレポジトリにコミットしてみます。
まずはこの空のSVNレポジトリをチェックアウトする
まず、このプロジェクトファイルがあるローカルのフォルダを右クリック-SVN Checkoutをクリックします。
そして、チェックアウトダイアログで以下のように入力します。(この手順でやっていくと、ここではレポジトリURLだけ手動入力する必要があると思います)
C:\Users\ユーザ名\source\repos\MyApp
自分のプロジェクトファイルのあるフォルダの絶対パスです。上記は今回の例です。
file:///C:\Users\ユーザ名\OneDrive\source\testRepos\MyApp
OneDriveの同期フォルダ上にあるSVNレポジトリのフォルダ。先頭に「file:///」をつけるのを忘れないように。
これでOKします。
すると、以下のようなダイアログが出るかもしれませんが、気にせずCheckoutします。
こんな感じで、チェックアウトが終了します。
レポジトリはまだ空なので、ローカルにあるファイルは何も影響を受けませんよ。
SVNレポジトリにコミットする
次に、このローカルのMyAppフォルダにあるファイルをOneDrive上のSVNレポジトリへ一式コミットします。
ローカルのMyAppフォルダを右クリック-SVN Commitをクリックします。
すると、以下のダイアログが出ます。
コミット先はOneDrive上(の同期フォルダ)になってますね。コミットするときになんかコメントというか、メッセージいれられますのでお好きなように。
下部の窓でコミットするファイルを選択することができます。
管理不要なファイルはコミットしないようにしたほうがいいと思います。(今回はめんどくさいのでALLで全てのファイルにチェックを入れています)
問題なければ、OKを押します。
すると、こんな感じでコミット完了します。
これで、OneDrive上のSVNレポジトリにコミットできました。
SVNレポジトリブラウザでコミットしたファイルを確認してみる
ちゃんとSVNのレポジトリにコミットできたのか、確認してみます。
ローカルのMyAppフォルダを右クリック-TortoiseSVN-Repo-browserをクリックします。
以下のダイアログが表示されます。
ここに、ファイルが表示されていますね。
これでOneDrive上のSVNレポジトリにコミットできてることがわかります。
OneDrive上のSVNレポジトリにローカルで変更したファイルをコミットする
ローカルで編集したファイルをOneDrive上のレポジトリにコミットしてみます。
ローカルのMyAppフォルダを右クリック-TortoiseSVN-Check for modificationsをクリック。
(多分日本語だと、変更をチェック、みたいなやつです)
すると、そのフォルダ下全てでレポジトリ上のファイルと変更のあるものがわかります。(青字のやつですね)
MyApp.cppだけ変更したんだけど、なんかVCのファイルにも変更でちゃったわwてかこれファイル管理する必要ないやつかも。
とりあえず無視しますw
青字で変更が出ているMyApp.cppをダブルクリックすると、WinMergeで差分表示されますよ。
差分を確認して、問題なかったら、WinMergeの画面は閉じて、元のダイアログでMyApp.cppを右クリックして、Commitを行います。
するとコミット画面になりますので、任意でコメントを入れて、OKをクリックしてコミットします。
コミットできましたー。
SVNレポジトリに対する操作ログを表示してみる
コミット履歴などはログから確認できますので、確認してみましょう。
ローカルのMyAppフォルダを右クリック-TortoiseSVN-Show logをクリック。
ここで、これまでのコミット履歴が見れます。MyApp.cppのコミットありますね。
下部の窓に、選択中のRevisionでの変更ファイルが表示されます。ファイル名をダブルクリックすると、このコミットでの変更差分も見られます。以下が出るよ。
他の場所(他のPC)でレポジトリをチェックアウトする
せっかくOneDriveを使っているので、この今コミットを行ったPCではなくて、他のPCでちゃんとこのレポジトリからチェックアウトできるのか、やってみます。
他のPCといっても、こちらもOneDriveでアクセスできるようになっていること、そしてTortoiseSVNがインストールされていることが前提ですよ。
他のPCで適当な場所に空のフォルダを作ります。
ここでは、以下にしました。
C:\tmp\MyApp
このフォルダを右クリック-SVN Checkoutをクリックします。
すると、以下のダイアログが出ますので、レポジトリURLを先ほどと同じようにOneDrive同期フォルダのSVNレポジトリの場所に指定します。
これでOKを押しましょう、すると以下のようにチェックアウトできます。
ちなみに、OneDriveの同期フォルダを常時同期しないようにしている場合でも、この操作をする時には自動的に同期されるみたいです。
これは地味に便利ですね!(まぁそういうものかw)
そして、ファイルはちゃんとチェックアウトできています。
レポジトリのファイルでローカルフォルダを更新する
お次に、レポジトリからファイルの更新をやってみます。
PC1でファイルを変更してSVNにコミット、その変更をPC2で取得するみたいなイメージですね。
これは簡単です。
更新をかけたいローカルのフォルダを右クリック-SVN updateで更新します。
すると、このように変更があればアップデートされます。(何も変更がなければ何も変更されません)
上の画像のShow log…ボタンを押すと、ログが表示されます。今回取り込んだ変更は、下記のRevision 3ですね。
ちなみに、このローカルのフォルダは不要になったら削除しても大丈夫です、レポジトリには影響ありません。
OneDrive上のレポジトリにファイルがありますので、必要になったらここからチェックアウトすればOKです。
その代わり、OneDrive上のレポジトリは消しちゃだめですw
レポジトリから古いレビジョンのファイルを取得する
保存してコミットもしたけど、前のあの時点のファイルが欲しいなぁとか、前のファイルに戻したいなぁと思うこともありますよね。
SVNはバージョン管理ソフトですから、特定のレビジョンのファイルを取得することが簡単です。
特定のリビジョンのファイルの取り方はいろいろあるのですが、ローカルのチェックアウトしたフォルダでそのまま取得する方法をご紹介します。
まずは、取得したいレビジョンを確認するため、ローカルのチェックアウトフォルダにある、特定のリビジョンが欲しいファイルを右クリック-TortoiseSVN-Show logでログを表示します。
ここでは、MyApp.cppファイルでやってみます。
以下のような感じで、このファイル自体の変更履歴が見れます。
この中で、Revision 1のファイルが欲しいなぁと思ったら、Revision 1にフォーカスを当てて右クリック-Update item to revisonをクリック。
すると、以下のようにローカルのMyApp.cppファイルがRevision 1でアップデートされます。
これでローカルのMyApp.cppファイルの中身を確認すると、Revision 2、3で入れた変更はなくなっています。ちゃんとRevision 1のファイルが取得できました。
この状態では、レポジトリの最新はRevision 3のままで変わらないから、この状態でSVN updateしたら、MyApp.cppはまたRevision 3にアップデートされるよ。
また、これは特定のファイルでやったけど、フォルダ全体とかでもできます。
まとめ
OneDrive上にSVNレポジトリを作成してファイルを管理する方法メモ、でした。
SVNはもっと色々な機能がありますが、まずはこのあたりの基本的な操作ができればまぁ使えると思います。
OneDriveなどを使うことで、自宅でも簡単に疑似ファイルサーバみたいな感じで使えるのはけっこいいなぁなんて思っています。
そのうち、他のSVN操作についても書くかもしれませんが、まぁこの辺でw
一応、SVNの使い方っていうより、OneDriveでレポジトリってところに重きを置いていたんだけど、ただの入門講座みたいになった感は否めないw
ではでは!
コメント
初めてコメントします!
SVN触りたての初心者なので、こういう記事はとても助かりました.説明もとても丁寧でわかりやすかったです!
記事の内容について、1点質問があります!
【他の場所(他のPC)でレポジトリをチェックアウトする】のセクションで,
「こちらもOneDriveでアクセスできるようになっていること」との記載がありましたが、これは「Onedrive上のレポジトリを、共有フォルダとして他のPCの別アカウントからアクセスできるようにしておく」ということでしょうか? それとも、「別のPCから同一アカウントでOnedriveにログインして、レポジトリにアクセスできるようにしておく」ということでしょうか?
初めてのコメントで長々と質問してしまい大変恐れ入りますが、ご回答いただけましたら幸いです!
もちさん
コメントありがとうございます。アキゾラです。
>【他の場所(他のPC)でレポジトリをチェックアウトする】のセクションで,
「こちらもOneDriveでアクセスできるようになっていること」との記載がありましたが、これは「Onedrive上のレポジトリを、共有フォルダとして他のPCの別アカウントからアクセスできるようにしておく」ということでしょうか? それとも、「別のPCから同一アカウントでOnedriveにログインして、レポジトリにアクセスできるようにしておく」ということでしょうか?
→ここでは、「別のPCから同一アカウントでOnedriveにログインして、レポジトリにアクセスできるようにしておく」こちらをイメージしています。
別アカウントで同一のOnedrive上のフォルダにアクセスさせることってできましたっけ?(一個しかアカウントを持っていないのでそもそも想像が及びませんでした汗)それが可能であれば、別アカウントでもできるように思いますが、たぶん無理じゃないかなーと思います(すみません未検証です)
少しでもお役に立てたらな幸いです。