Midnightjapan

Tag: SubVersion

Subversion TroitoiseSVNでのコミットの取り消し

by jun on 5月.11, 2013, under Subversion

最近の仕事のまとめ

このお話はSubversionをサーバー/クライアント環境で構築してあることを前提とする。

開発はEclipse、バージョン管理はSVNと、この2つは手放せなくなってきました。
まだまだ上手に環境構築できていませんが、ちょっとずつ理解してきたことを記録しなくては・・・

[TortoiseSVN]について

http://tortoisesvn.net/

一言で言うとSubversionのWindowsGUIフロントエンドというかシェル統合型クライアントです。

SVNについてサーバークライアントで構築した場合、どうしてもファイル共有のイメージが先入観としてあったため

SVNチエックアウト => サーバーからローカルに受診
ロック => 共有状態にロックをかけて多重編集を阻害する
SVNコミット => ローカルで編集した内容をサーバーに送信

リポジトリブラウザ => サーバーのバージョン状態を確認する

となっていると、サーバーのファイルを操作するのはリポジトリブラウザでしょう!って思ってました。

そこで、更新内容をSVNコミットしたあとに「あ。やっちまったぁ」なんてことがあるとSVNコミットを取り消したいことがある。

この時に、SVNコミットを取り消すときにリポジトリブラウザでログを確認していた。

サイトなどで調べると、ログからなんて書いてあるが、環境のことなんて書いてないのでこんなふうに表示されてサイトで書いてある、「このリビジョンにおける変更を取り消す」なんて書いてないじゃん!となる。

個人的には権限?バージョン差?なんておもって理解できなくなり、ショボーンでした。

これを調べてみたので、かなり詳細に記録をとってみた。

「実際の手順」

1.リポジトリブラウザではなく、チェックアウト済みのローカルのフォルダを右クリックしてコンテキストメニューから「ログを表示」を選択

Subversion ToritoiseSVN コミットの取り消し方法1

Subversion ToritoiseSVN コミットの取り消し方法1

2.ログから取り消したいSVNコミットを選択してあとに右クリックしてコンテキストメニューを開くとこうなる

Subversion ToritoiseSVN コミットの取り消し方法2

Subversion ToritoiseSVN コミットの取り消し方法2

Subversion ToritoiseSVN コミットの取り消し方法3

Subversion ToritoiseSVN コミットの取り消し方法3

Subversion ToritoiseSVN コミットの取り消し方法4

Subversion ToritoiseSVN コミットの取り消し方法4

※これでSVNコミットの取り消しはできました。ただしこの時点ではまだローカルが更新されただけです。さらにこれをサーバーにSVNコミットしないとSVNコミットの取り消しはされません。

そうです、SVNコミットの取り消しもSVNコミットするのです。

なるほど!わからなかったのは私だけでしょうか?w

3.チェックアウト済みのローカルのフォルダを右クリックしてSVNコミットすると取り消されたことがログに残ります。

Subversion ToritoiseSVN コミットの取り消し方法5

Subversion ToritoiseSVN コミットの取り消し方法5

その後はいつもどおりなので、よろしく!

以上、記録として。

コメントなし :, , more...

PHPオブジェクト指向プログラミング おすすめ本・参考本

by jun on 12月.05, 2012, under PHP, Programing, 未分類

いままではPHPでの開発もソースの互換性をとりver4まででした。
関数は使っても一人で開発をおこなってきたため、クラス化してパーツを使いまわすための時間がもったいなく、ソースを管理してコピペのほうが便利でした。
しかし複数でのプロジェクト開発、オブジェクト指向開発、MVCモデル設計、データベースのORM(Object-Relational Mapping)化などなど、もっと高度な事を学ばなければ人柱にはなれない。
というか、その決断はあまりにも遅すぎた。
すでに自分の年齢も考えると、女のケツを追いかけている場合ではなかった。
もっと早くやるべきだったと後悔もしたが、私の辞書に不可能はない。
今からでもやってやる。と、思い下記の本を購入読破。現在現場でOJT(On The Job-training)中である。

自宅での環境構築しながら徐々にレビューしていきます。

オープンソース徹底活用 Zend FrameworkによるWebアプリケーション開発

他のZendFrameworkの本は読んでいないが、ZendFrameworkだけでのMVCモデル構築ならかなり詳しく書いてあります。実際に構築しながら学んでいくタイプの本です。

PHPによるデザインパターン入門

GoF(Gang Of Four)デザインパターンをPHPでわかりやすく説明されてあります。PHPを習熟してきたらぜひおすすめしたい本です。デザインパターンの利点や欠点もよくわかります。

パーフェクトPHP (PERFECT SERIES 3)

PHPのラーニングにはあまり向かないかもしれません。少しわかる人向けにまさにパーフェクトな理解を深めたいなら、なるほどすばらしい一冊です。

オブジェクト指向でなぜつくるのか 第2版 知っておきたいOOP、設計、関数型言語の基礎知識

オブジェクト指向がわかったら、自分で設計しないといけません。そうです、いずれは自分で書けるようにならないといけないのでオブジェクト指向のために必要な用語や解説されている本があると理解度は違います。

Smarty入門PHP

ZendFramework、タ、ア、ヌ、祟VC、マケステロ、ヌ、ュ、゛、ケ。」、キ、ォ、キ・オ。シ・ミ。シ、ホ・皈筵熙ヒ、讀ネ、熙ャ、「、ハ、餞marty、ホ、ロ、ヲ、ャニーコ釥ャキレイ任錣㎠蠅笋垢盖’修覆里如▲皀妊襪肇灰鵐肇蹇璽蕕椀HPでZendFrameworkを使ビューはSmartyを使う。こうすることでHTMLコードはデザイナーさんでも製作可能なMVC環境でプロジェクト開発が可能となります。非常に簡単なので数日で理解できると思います。

Subversion実践入門

プロジェクト開発では切っても切れないバージョン管理システム「Subversion」まったく初心者向けではなく、ある程度わかる人が実際のプロジェクト開発の現場でどのように構築したらいいのかの参考書です。Subversionをわかろうとしたらもっと図解入りの本がいいでしょう。私は図解入りの本を立ち読みして、この本を買って読破しました。

コメントなし :, , , , , , , , , more...

SIerの開発環境

by jun on 11月.03, 2012, under Blog, Eclipse, Programing, Subversion

SIerの現場ではまだまだドキュメント作成のほうが多いのですが、次のステップとしてプロジェクト運用レベルの以下の開発環境を学ぶことになりそうです。

・Eclipse PHP開発環境
・Eclipse java開発環境
・Subversion資源管理
・テスト、本番リリース

デバッグ、資源のバージョン管理、人によって構築の仕方はそれぞれで、これもまた面白い。

本当はドキュメント作って環境を同じにして管理したいらしいけど、Eclipseって管理者権限ないとなかなか動かすのは難しいから、ドメインレベルの中だとかなりの権限が必要で、なかなか難しいようです。

わかってくると統合開発環境Eclipseなかなか楽しいです。

プロジェクトになると資源管理もとても大事だよね?。

コメントなし :, , , more...

CentOS5.8 32bit にSVN管理をブラウザからできるSubminをインストールする

by jun on 9月.14, 2012, under Linux

SVNの新しいレポジトリなどを作成するために、私はコマンドラインからできても他の人はかなりきびしいはず、そこでブラウザからSVN管理ができるSubminの導入することになった。Subminを使うためにはオブジェクト指向スクリプト言語のPythonが必要となるようなので、Pythonのインストールからはじめる。

まずはPythonのバージョン確認から

# python
Python 2.4.3 (#1, Jun 18 2012, 08:55:31)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
[Ctrl+D]でPythonから抜けれます

また、PerlやPythonではzlibをよく使うのであわせてライブラリもインストールします。

# yum install zlib zlib-devel

zlibはインストールされてました・・・が、zlib-develも必要なので無事に完了。
Pythonのソースをダウンロードしてきてコンパイルします。

#?wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
# tar zxvf Python-2.6.6.tgz
# cd Python-2.6.6

Configureします

#?./configure --with-threads --enable-shared

Make前にzlib設定部分を修正

# vi Modules/Setup
# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz ←コメント解除

Makeとインストールを実行

# make
# make install

これでバージョンアップが終わりそうですが実行してみると共有ライブラリが無いぞとPythonが怒り出します。

# /usr/local/bin/python
/usr/local/bin/python: error while loading shared libraries: libpython2.6.so.1.0: cannot open shared object file: No such file or directory

Pythonにconfigファイルを追加して修正してあげます。

# vi /etc/ld.so.conf.d/python2.6.conf
/usr/local/lib ←追加

共有ライブラリを反映します

# /sbin/ldconfig

Pythonの実行確認

# /usr/local/bin/python
Python 2.6.6 (r266:84292, Sep 14 2012, 08:25:36)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
[Ctrl+D]でPythonから抜けます

無事にPythonは実行可能に。
しかし、Pythonをこんなふうに実行してみると、Pythonの2.4が残っていることがわかります。

# python
Python 2.4.3 (#1, Jun 18 2012, 08:55:31)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
[Ctrl+D]でPythonから抜けます

パスが通っていないんですね。
そんなわけでパスを通します。

# vi ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/bin ←ここに「:/usr/local/bin」を付記

export PATH
unset USERNAME

# export PATH ←設定を反映

このままでは変わらないのでAliasで「python」→「python2.6」に変えてあげます。

# vi ~/.bashrc
# .bashrc

# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias python='python2.6' → この行を追加

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

これで無事にpythonの実行環境が整いました。

以下はApache2とSVNがすでにインストールされていることを前提にSubminのインストールを進めます。

# wget http://supermind.nl/submin/current/submin-1.2.9.tar.gz
# tar zxvf submin-1.2.9.tar.gz
# cd submin-1.2.9
# /usr/local/bin/python ./bin/install.py /usr/local

subminに対するコマンド「create」、作成する環境名(ファイル名の一部として使われます。例:default)を引数に指定してsubmin-adminコマンドを実行します。

# /usr/local/bin/python /usr/local/bin/submin-admin create default

trac_base_urlを設定しておかないとリポジトリ作成時にエラーが発生するとのことで

# vi /etc/submin/default.conf
[svn]
authz_file = /var/lib/submin/authz
userprop_file = /var/lib/submin/userproperties.conf
access_file = /var/lib/submin/htpasswd
repositories = /mnt/html/svn →リポジトリの場所
[www]
base_url = /submin
svn_base_url = /svn
trac_base_url = /trac →この行を追加

生成されたApache用の設定ファイルをコピーしてApache起動時に読み込まれるようにします。

# cp /etc/submin/default-apache-cgi.conf /etc/httpd/conf.d/

設定ファイルを編集してリポジトリの場所を設定します。

# vi /etc/httpd/conf.d/default-apache-cgi.conf
    Alias /submin /usr/local/share/submin/www

        Order allow,deny
        Allow from all
        Options ExecCGI FollowSymLinks
        AddHandler cgi-script py cgi pl
        SetEnv SUBMIN_CONF /etc/submin/default.conf

        RewriteEngine on
        RewriteBase /submin

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.+)$ submin.cgi/$1

        RewriteRule ^/?$ submin.cgi/

        DAV svn
        SVNParentPath /mnt/html/svn →ここを編集

        AuthType Basic
        AuthName "Subversion repository"

        AuthUserFile /var/lib/submin/htpasswd
        AuthzSVNAccessFile /var/lib/submin/authz

        Satisfy Any
        Require valid-user

Apacheを再起動して「http:// サーバー名 /submin/」にアクセスすると

Submin 初期ログイン画面

Submin 初期ログイン画面

初期ログインは Username:admin Password:admin でログインできます。

 

コメントなし :, , , , , more...



何かお探しですか?

以下にキーワードを入力してサイト内検索が可能です:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!