QNAP NASでSVN管理(3)

QNAPのNASでSVNを管理しようと試しています。SVNサーバとしての設定が出来ましたので、リポジトリを作成します。

リポジトリの作成

基本的には、subversionのコマンドと同じなのかと思います。

この画面の右寄りにある、 >_ の記号(端末)をクリックするか、svn-server-1 のリンクをクリックした後、

この画面上部の「>_端末」ボタンをクリックします。

コマンド入力画面が開きますので、コマンドを入力します。

subversionでリポジトリを作成する際のコマンドと同じです。
svnadmin create リポジトリ名

コンテナの作成時に、コマンドのオプションとして --root /var/opt/svn と入っていますので、作成時の「要約」で「マウントポイント」として表示されている通り、この階層がSVNとしてのルートに指定されています。ですので、リポジトリは /var/opt/svn/リポジトリ名 の階層に作られますが、この仮想サーバはsvn専用となりますので、階層を特に意識する必要はないかと思います。

テストでは、 svnadmin create test-repo と入力して、OKをクリックします。

チェックアウトの確認

WindowsPCから、Tortoise SVN で、先ほど作成したリポジトリからチェックアウトします。

リポジトリのURLは、コンテナ作成時に指定したIPと、リポジトリ名称だけです。上位の階層は指定不要です。

まだ、なにもコミットしてませんので、「リビジョン0」として取得できました。

リポジトリの移行

これなら移行もできるんじゃない?と、さっそくリポジトリを作成。

このコマンドに対して、

と、結果が返ります。「コード0でプロセスが終了」なので、成功、ということです。

続いて、前回リポジトリの移行で行ったのと同様に、稼働中のSVNサーバからリポジトリの履歴込みでバックアップを取りました。

これを、NASのFileStationから、

Volume1(ルート) > Container > container-station-data > lib > docker > volumes > (固有のナンバー) > _data フォルダに、直接、ドラッグ&ドロップで落とし込みます。ブラウザだけでできるので、WinSCPを使うより、簡単ですね。

AndroidProject.dat ファイルが、ダンプファイル(履歴込みのバックアップ)です。作成したリポジトリ AndroidProject のフォルダが作成されていることが分かります。

では、アップロードを。

が。。

今度は「コード1」。これはエラーでの終了です。

svnadmin: E205000: Too many arguments 

と出ています。通常のsubversionならば、受け付けられるコマンドですが、正しく理解してくれないようです。Too many arguments とあるように、load オプションは備わっているようで、 svnadmin load までを入力して実行すると、Repository argument required と、引数が足りないと指摘されます。

いろいろ試行錯誤をしてみましたが、解決せず(ファイル入出力が出来ていない、と想像はつくんですが解決に至らず)。。

過去の変更履歴を諦めて、最新環境をコミットして一から始めるならすぐにでも運用できそうですが、なんとなく、もやっとしてたんですが、禁断の解決法で切り抜けました。

まさかの全コピー

稼働中のSVNサーバの /home/svn/repos/AndroidProject ディレクトリを

$ tar czf AndroidProject.tar.gz AndroidProject

で圧縮し、WinSCPでローカルPCに移動。

FileStationで先述のフォルダ(SVNとしてのルート)にドラッグ&ドロップしたあと、端末のコマンドで

tar xzf AndroidProject.tar.gz

を実施。これは、コード0でプロセスが終了。解凍が正常に完了です。

移行元と移行先でCPUのアーキテクチャも違うので、半信半疑ではあったんですが、きちんとチェックアウトできましたし、ファイル修正後のコミットもできました。

というわけで、しばらくはNASのSVNサーバで運用してみたいと思います。(気が向いたときにしかアクセスしないので、運用上の支障があっても、目に見えるのは当分先かもしれませんが…)

ESXi7.0上の仮想サーバは、運用を停止しておきました。