Synology NAS DS216jにGitサーバ立ててSourcetreeからアクセスできるようにしようとしたら苦労した話 その1
PythonやらUnity(というかC#)のソースやらを管理するために、バージョン管理ツールを使いたい。
会社ではSVNを使っているが、今バージョン管理ツールでググって出てくるのはGitおよびそのクラウドサービスのGithubばっかり。ってかうちの会社、バージョン管理ツールの運用個人任せなんですけど終わってない?
ってわけで、Gitを使ってナウなヤングの仲間入りを果たしたいわけだが、個人の趣味レベルでやるわけだし、Githubに置くのもどうかなって思ってた頃、ファイルストレージとして使ってたSynologyのDS216jがGitサーバになれることが判明。SVNサーバにもなれる。
Gitは基本CUIっぽいけど、会社でTortoise svnに甘やかされた人間が今更CUI操作したくないので、GUI操作できるGitクライアントを使いたい。MacとWinの両方から操作することも考えて、マルチに使えるクライアントが良いが、それに合致するのはSourcetreeというクライアントのようだ。CUIならOS関係ない?知りませんねぇ。。。
ってわけで、ようやくタイトルに繋がったわけだ。やりたいことは以下の通り。
基本的には先人達がやってるので、その通りにすれば出来るわけだけど、この記事はそれでドハマリしたことを書く。忘備録として。
1.DS216jにGitサーバになってもらう
Gitサーバをインストールするだけならなんてことなかった。参考にしたのは以下の記事。
みんな似たようなことやってるんだね。
SynologyのNASは使い勝手のいいGUIがブラウザベースで提供されているので以下は簡単に出来た。
参考にした記事ではGitにアクセスするユーザーグループを作ってるけど、使うの自分だけだから、Gitユーザーグループなんて作らない。
が、肝心のリポジトリの作成はCUIでやらないといけない罠。しかもここでドハマリした。
リポジトリを置くフォルダとして、/gitvolumeというフォルダを作った。WindowsのコマンドプロンプトからSSHでアクセスしてリポジトリを作るが、その際root権限でやる必要がある。これは参考にした記事にもある。で、rootを取るわけだけども、そこから
cd /gitvolume
と打っても移動できなかった。しかもlsコマンド入れても/rootしか表示されないので悩んだが、どうも/volume1以下にすべてのフォルダがあるらしく、
cd /volume1/gitvolume
と入れると移動できた。
参考にした記事ではさも当然のように/volume1がパスに入っているけど、なにこれ仕様なの?これで1日潰したんだけど
移動後、以下のコマンドを打つ。
git init --bare --shared <repo-name>
chmod -R g+w <repo-name>
要はgitリポジトリを作って、それを使用するユーザに権限作ってる。この辺のコマンドは飛ばすと上手くいかない。というかちゃんと打っても上手くいかなかった。
書くの疲れたので分割します。