lolipopでsubversion(TortoiseSVN)

ファイルの最新管理でよくある困りごと

  • 自分が作成したエクセルやテキストのファイルなどが、自宅PCやノートPCなどに分散してどれが最新か分からなくなる。
  • ファイルを古い版でうっかり上書きして、最新の修正を消してしまうことがある。
  • ファイルの変更履歴が「最終版」「最終版(本当の最終)」みたいに増えて、過去との差が追えない。
  • ファイルのバックアップが各デバイスにバラバラで、壊れた時どれを戻せばいいか迷う。

解決方法

  • lolipopのsubversionを使用して、共有の保管箱をlolipop上に作成し、自分が作成したファイルを入れておく。共有の保管箱のことをリポジトリと呼ぶ。
  • 入れたものを常に最新版として扱う。仕組み的に最新はlolipop上のものが最新となる。
  • 作業前に最新を取得し、編集後にアップするだけ。上書きミスを防ぐことができる。
  • 修正を無効にして現在の最新を取得してやり直すことができる。
  • 修正の履歴が残る。前回のアップと現在の修正中のファイルでどこが異なっているか確認できる。
  • ファイルのバックアップとしての意味を持っているため、ファイルが消えてしまっても最新のファイルを再取得することで復元できる。

「自分が作成したエクセルやテキストを、1か所で最新版管理して“戻せる・迷わない”ようにする仕組み」 が Subversion。
一人利用でも、複数人利用でも、“最新版の場所を固定する”ことが最大のメリットです。

lolipopでsubversionが動くのかどうかの確認

subversion関係のコマンドが使えるか確認する必要がある。
sshで接続して必要なコマンドが使えるか確認する

[pepper.jp-xxxxxxx@std009 ~]$ cat /etc/os-release
cat: /etc/os-release: そのようなファイルやディレクトリはありません
[pepper.jp-xxxxxxx@std009 ~]$ uname -a
Linux std009.phy.lolipop.jp 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[pepper.jp-xxxxxxx@std009 ~]$ command -v svn || which svn
/usr/bin/svn
[pepper.jp-xxxxxxx@std009 ~]$ svn --version --quiet                   ←subversionのバージョン
1.7.14
[pepper.jp-xxxxxxx@std009 ~]$ for c in svn svnadmin svnserve svnsync svnlook svnversion; do
>   printf "%-10s: " "$c"; command -v "$c" || echo "なし";
> done
svn       : /usr/bin/svn
svnadmin  : /usr/bin/svnadmin
svnserve  : /usr/bin/svnserve
svnsync   : /usr/bin/svnsync
svnlook   : /usr/bin/svnlook
svnversion: /usr/bin/svnversion
[pepper.jp-xxxxxxx@std009 ~]$ command -v svn || which svn
/usr/bin/svn
[pepper.jp-xxxxxxx@std009 ~]$ command -v
[pepper.jp-xxxxxxx@std009 ~]$ command -v svn
/usr/bin/svn
[pepper.jp-xxxxxxx@std009 ~]$ compgen -c svn || which svn      ←使えるコマンド一覧のなかで"svn"を含むものを取り出す
svn
svnadmin         ←これが必要(リポジトリを作成するために必要)
svndumpfilter
svnlook
svnserve         ←これが必要(ファイルを取得やコミットするために必要)
svnsync
svnversion

subversionのバージョンが1.7.14なので、かなり古いバージョンであることが分かった。最新の機能は使えないが、基本的な機能のみ使うのであれば問題ない。

※ConohaWINGではコマンドが見つからなかった。
※xserverでは見つかった。

subversionを使用する環境

lolipopサーバ側

  • svnadmin、svnserveが使用できる状態。
  • SSH接続できる状態。

PC側

  • クライアントはwindows10やwindows11でTortoiseSVNを使用してます。
  • TortoiseSVNとはエクスプローラに組み込まれてGUIで操作できるようにするためのものです。

サーバにリポジトリを作成

SSHでlolipopに接続します

[pepper.jp-xxxxxxxx@std009 ~]$ svnadmin --version       ←バージョン確認
svnadmin, バージョン 1.7.14 (r1542130)
   コンパイル日時: Apr 11 2018, 02:40:28

[pepper.jp-xxxxxxxx@std009 ~]$ pwd
/home/users/2/pepper.jp-xxxxxxxx

[pepper.jp-xxxxxxxx@std009 ~]$ mkdir svnrepos
[pepper.jp-xxxxxxxx@std009 ~]$ cd svnrepos/

[pepper.jp-xxxxxxxx@std009 svnrepos]$ mkdir -p svnroot
[pepper.jp-xxxxxxxx@std009 svnrepos]$ svnadmin create svnroot

自分のフォルダにsvnreposというのを作ってリポジトリを置く場所としています
その中にsvnrootというレポジトリを作っています
subversion的には「trunk」「branches」「tags」などのブランチ?gitでいう「master」や「develop」みたいなもの?を作るのが定石のようですが、私は作ってないです。

windows10からの接続

TortoiseSVNを入れる
TortoiseSVNのネットワーク設定を設定します

SSHクライアントのところに次のように入れます
“C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe” -P 2222 -pw ここにSSHのパスワード

フォルダにチェックアウトする

リポジトリのURLに次のように入れます
svn+ssh://pepper.jp-xxxxxxx@ssh.lolipop.jp/home/users/2/pepper.jp-xxxxxxx/svnrepos/svnroot

チェックアウトが成功するとこのようになります