ラベル Subversion の投稿を表示しています。 すべての投稿を表示
ラベル Subversion の投稿を表示しています。 すべての投稿を表示

2018年3月26日月曜日

【svn】どのリビジョンがインストールされているかを確認する

【要旨】

・運用中アプリはSVNにリリースモジュールがあり、開発環境からSVNへアップした後に運用環境にてSVN UPすることでモジュールを最新化している。
・今回、一部の運用環境で最新プログラムが適用されていない可能性があったため、サーバの状況を調査し最新化を行った。

【手順をひとことで】

サーバにてsvnversionコマンドでリビジョン確認し対象のリビジョンの内容確認して対応

【手順】

1)運用環境の対象ディレクトリへ移動し、「svnversion」コマンドを実行 →リビジョンが表示される
2)開発環境の「tortoisesvn」から、「リポジトリブラウザ」→右上の「リビジョン」をクリックし、当該リビジョン番号を入力
3)その時の状態が表示されるので、内容を確認

【まとめ】

自前でバージョン管理しなくてもSVNのリビジョンだけで状況把握はできる

2016年5月26日木曜日

稼働中SVN環境にリポジトリを追加する

svnadmin create RepositoryName
chown apache RepositoryName

※apacheの部分は実環境のユーザーで。

2016年5月2日月曜日

SVN commitが失敗したうえにCleanupに失敗したときの対処

※WindowsPCで処理をしていた時の出来事です。

現象

SVN対象のフォルダに大きめのzipを作っているさなかにSVN COMMITをしてしまい、
SVN COMMIT対象としてzipの一時ファイルが認識されてしまいました。
COMMIT前にzipファイルへと置き換わってしまったため、
SVNとしては「COMMITしようとしたファイルがない」と怒ります。(当然です)

試したこと

クリーンアップをしろということで以下を試してもダメ。
・tortoirseSVNからクリーンアップ(当該フォルダ)
・tortoirseSVNからクリーンアップ(ルートのフォルダ)
・ルートフォルダをコマンドプロンプトで開き「svn cleanup」

ちなみに、コマンドプロンプトから実行したときの応答が以下
svn: E155009: Failed to run the WC DB work queue associated with 'D:\Project\dev', work item 76284 (file-commit trunk/sub1/sub2/sub3/zia09324) svn: E720002: Can't set file 'D:\Project\dev\trunk\sub1\sub2\sub3\zia09324' read-write: 指定されたファイルが見つかりません。
えぇ、zipに変わってしまいましたとも。すみません。

処置

多少無理やりかもしれませんが、上記の「見つからないファイル」⇒ここでいうところの「zia09324のファイル」を対象のフォルダに作成したうえで、ルートフォルダから svn cleanup を行うことで現象を解消することができました。
作成するファイルは何でも大丈夫です。(私はゼロバイトファイルを作りました)

追伸

原因究明のためにリポジトリブラウザから対象のフォルダがどうなっているかをのぞいてみたのですが、zip09324というファイルはありました。
作ったファイルを削除、コミットすることでリポジトリからも削除することができました。

まとめ

・コミットするときはファイル操作やめましょう。
・もし失敗したら、リポジトリ側とファイル構成を合わせてからクリーンアップしましょう。
・コマンドプロンプトからのSVN操作は細かいことも教えてくれるので役に立ちます。

2014年6月9日月曜日

RedmineとSVNの連携(SSL自己認証局を利用)

Redmine + SVNの構成はよくあるケースと思いますが、
Redmine + SVN + (SSL) での構成で、Redmine側からの接続にエラーが出ましたので
その時の対応を備忘録として残しておきます。

【構成および概況】

・Redmineと、SVNで2台のサーバ (双方Winサーバ

・ReamineからSVNサーバへの接続はhttp (それ以外も手段もあるのかは知りません

・今まで公開なしの80で運用していたが、公開に合わせて、443での運用へ切り替える

・各々、Internetからの接続は可能な状態(80,443)

【構成イメージ】

 img_20140530_00001

【発生事象】

・SSLを利用すると、其々への直接接続はできるが、RedmineからSVNへの連携設定を行うと、
 エラーとなる。事象としては、「対象がありません」というようなメッセージ

【原因】

・SVNサーバのセキュリティ証明書が、クライアント(Redmineサーバ)で信頼されなかったから

【結果】

・SVNサーバ側で、SSLのセキュリティ証明書を作成し、
 それをRedmine側のクライアント証明書としてインストール

【手順】

・VisualSVNの機能で証明書を作成できるので、ウィザードに従い証明書を作成

・VisualSVNのインストールフォルダに*.pemのファイルが出来ているので
 ,テキストで開き、セキュリティ証明の部分だけを抜き出して別名保存

・上記で保存したセキュリティ証明のファイルを、Redmine側サーバへ持って行って、インストール。
 インストールパスが「個人」だとダメだったので、えいやで「公的な証明機関」へ入れてしまいました。
 ⇒その後、担当がちゃんとしたところへ入れてるはず。

・ReadmineでSSLを利用した接続へ設定変更し、問題なく接続する事を確認。



SSLについては、@ITさんが詳しく解説してくださっています。
http://itpro.nikkeibp.co.jp/article/COLUMN/20071012/284384/?k2







2013年10月31日木曜日

subversionリポジトリの引っ越し

WindowsのSVNサーバからLinuxサーバへの引っ越しを実施

Windowsサーバ

以下のコマンドを実施すると、ファイルが作成される。


svnadmin dump [リポジトリのパス] > [出力するファイルのパス]

念のため、予めサービスを終了しておくことをお勧め


Linuxサーバ

Windowsサーバから抜き出したデータをLinuxサーバに持っていき
以下コマンドを実行

svn import PATH URL -m "コメント"
PATH :インポートを行うパスを指定する(パス以下は再帰的にコミットされる)
URL :インポート先リポジトリのURLを指定する
-m :インポート時のログとして管理されるコメント


中見の整理、再構築をしたい場合には svndumpfilterを活用

2013年10月30日水曜日

SVNリポジトリの再構築(不要なものを除外)

SVNリポジトリから、一部のファイル(フォルダ)を除外したい時、
svndumpfilterを使うと、除外ができる。



svnadmin dump [リポジトリのパス] | svndumpfilter exclude /除外したい相対パス > [出力するファイルのパス]

稼働中のSVNに使用するとしたら、以下イメージ

  1. サービス停止
  2. コマンド実行で、dumpファイルを作成
  3. 既存リポジトリを削除
  4. 作成したdumpファイルをインポート