投稿

ラベル(TortoiseHg)が付いた投稿を表示しています

CentOS 7.1 に TortoiseHg をインストール

CentOS 6.x で あきらめていた TortoiseHg を CentOS 7.1 にインストールしました。 今回はソースコードを使用しない簡単な手順です。 1. Mercurial をインストールします。 $ sudo yum install mercurial 最新ではないですが 2.6.2 と以前よりずっと新しいバージョンがインストールされます。 2. EPEL のリポジトリーをインストールします。 $ sudo yum install epel-release TortoiseHg が要求するパッケージの一部は EPEL のリポジトリーで提供されています。 3. rpm をダウンロードします。 http://koji.fedoraproject.org/koji/buildinfo?buildID=450218 より tortoisehg-2.8-2.fc20.noarch.rpm をダウンロードします。 4. rpm をインストールします。 環境によってインストールが必要なパッケージが無い場合はそれらをインストールしてから再度実行してください。自分の環境では以下がありませんでした。 $ sudo rpm -ivh tortoisehg-2.8-2.fc20.noarch.rpm エラー: 依存性の欠如:     PyQt4 >= 4.6 は tortoisehg-2.8-2.fc20.noarch に必要とされています     gnome-python2-gconf は tortoisehg-2.8-2.fc20.noarch に必要とされています     python-pygments は tortoisehg-2.8-2.fc20.noarch に必要とされています     qscintilla-python は tortoisehg-2.8-2.fc20.noarch に必要とされています 追加のパッケージをインストールしてから rpm をインストールします。 $ sudo yum install epel-release PyQt4 gnome-python2-gconf python-pygments ...

Debian 7.8 で TortiseHg / Mercurial

イメージ
CentOS では使うのをあきらめた TortoiseHg が Debian ではパッケージが提供されているので簡単に使えます。 さっそく 使用できるようにした sudo コマンド をつかってインストールです。 $ sudo apt-get install tortoisehg メニュー>プログラミングから実行できます。 通常の hg コマンドも同時にインストールされます。

fedora 17 に TortoiseHg

Windows / Ubuntu に続き、fedora 17 に TortoiseHg をインストールします。 GNOME3 デスクトップのアクティビティ > アプリケーション > システムツール > 端末を選んでターミナルエミュレーターを開きます。 $ su # yum install tortoisehg 以上です。あっさりインストールできました。アクティビティ > アプリケーション > プログラミング に TortoiseHg のアイコンが追加されています。 インストールされたバージョンは Mercurial 2.2.3, TortoiseHg 2.4.3 です。

Mercurial が No module named repo! を表示して落ちる

Xubuntu 12.04 で TortoiseHg (ppa 版) を使用していますが、今回のバージョンアップでトラブルがありました。 Mercurial version (2.3).  TortoiseHg version (2.4.3) です。 起動したのち、リポジトリを触ろうとすると ImportError: No module named repo と表示され、操作できません。ターミナルから hg コマンドを使用しても同様です。 https://bitbucket.org/tortoisehg/thg/issue/2090/no-module-named-repo に同様のトラブルが報告されていました。 とりあえずの対応は git エクステンションと hgsubversion エクステンションの使用をやめることです。 .hgrc の [extensions] セクションから git = と hgsubversion = を削除するか、 TortoiseHg の設定画面のエクステンションから git と hgsubversion のチェックを外すことで対応できます。

Python を使って文字コード変換

先の投稿 で iconv を使いましたが、 Windows 環境では導入されていませんし、導入するには面倒です。 一方、Mercurial は Python で記述されているのでフィルターだって Python で記述すれば良いのではないかと思い、初めて Python でコードを書きました。cp932 から utf-8 へ変換するコードです。 #!/usr/bin/python import sys ifn = sys.argv[1] ofn = sys.argv[2] open(ofn, 'wb').write(open(ifn, 'rb').read().decode('cp932').encode('utf-8')) 実質一行。 cp932 のテキストファイルを読み込んで、 utf-8 へ変換して出力します。エラー処理なしですが、これだけで済んでしまうのですね。 標準入出力にしなかったのは  http://mercurial.selenic.com/wiki/EncodeDecodeFilter  に Windows の場合は Tempfile を使った方が良いと書いてあったからです。 この Python スクリプトを使って hgrc を記述しました。 [encode] **.cpp = tempfile: encode.py INFILE OUTFILE **.c = tempfile: encode.py INFILE OUTFILE **.h = tempfile: encode.py INFILE OUTFILE [decode] **.cpp = tempfile: decode.py INFILE OUTFILE **.c = tempfile: decode.py INFILE OUTFILE **.h = tempfile: decode.py INFILE OUTFILE decode.py は上のコード、encode.py は decode.py の逆の変換 (utf-8 から cp932 へ)を行うコードです。 Windows 環境下では逆向きの変換を行えば良いでしょう。 以上です。おつかれさまでした。

シフトJISで記述されたファイルを含むリポジトリの扱い方

これまで Windows 環境下で作業していたので Mercurial のリポジトリの中に日本語のコメントを含むファイルが多くあります。 開発環境が Linux へ移行したのですが以前のリポジトリを Linux 環境で取得するといわゆる文字化けが発生します。 hgrc に設定を記述することでワーキングファイルの取得時に文字コードを自動的に変換してくれます。 方法 1. -U オプションを指定して、リポジトリをクローンします。 $ hg clone -U http://foo.local/hg/foo foo すでにリポジトリを取得している場合、一旦作業ファイルを削除します。 $ hg update -r null 2. テキストエディタで作業ディレクトリ以下の .hg/hgrc を編集し、変換するフィルタを指定します。 以下の例は iconv を使用して拡張子が .cpp .c .h のファイルを変換するように指定します。 [encode] **.cpp = pipe: iconv -f utf-8 -t cp932 **.c = pipe: iconv -f utf-8 -t cp932 **.h = pipe: iconv -f utf-8 -t cp932 [decode] **.cpp = pipe: iconv -f cp932 -t utf-8 **.c = pipe: iconv -f cp932 -t utf-8 **.h = pipe: iconv -f cp932 -t utf-8 3. 作業ファイルを取得します。 $ hg update 以上です。おつかれさまでした。 追記: シェルスクリプトではなく Python を使った場合の処理を  http://cobitech.blogspot.jp/2012/05/python.html に記述しました。

TortoiseHg から起動するターミナルエミューレータの設定

イメージ
Linux バージョンの TortoiseHg でターミナルを開くと xterm が起動されるんですが、これを Xubuntu のお気に入りのアプリケージョンで登録したターミナルエミュレータへ変更します。 環境 Xubuntu 12.04 TortoiseHg 2.3 1. TortoiseHg を起動します。 2. 「ファイル(F)」から「設定(S)...」を選択します。 3. 「ユーザ設定」のタブを開きます。 4. 「TortoiseHg」をクリックします。 5. シェルに 「exo-open --Launch TerminalEmulator」を入力します。 6. 「OK」ボタンをクリックします。 7. TortoiseHg を再起動します。 以上です。おつかれさまでした。

Redmine と TortotiseHg の連携

イメージ
Redmine と Mercurial の連携 の続きです。今回は TortoiseHg から Redmine のチケットへのリンクを行います。 環境 Xubuntu 12.04 TortoiseHg 2.3 1. TortoiseHg を起動します。 2. 「ファイル(F)」から「設定(S)...」を選択します。 3. 「ユーザ設定」または「リポジトリ設定」のタブを開きます。 4. 「課題管理」をクリックします。 5. 課題の正規表現に #([0-9]+) を入力します。 6. 課題へのリンクに http://redmineのアドレス/issues/{1} を入力します。 7. 「OK」ボタンをクリックします。 8. TortoiseHg を再起動します。 以上です。 Windows バージョンの TortoiseHg でも設定は同じです。 以下は www.redmine.org を使用した例です。

Xubuntu 12.04 に TortoiseHg をインストール

Windows 環境では非常に便利な Mercurial の GUI クライアント TortoiseHg ですが、Xubuntu でも動作します。 Ubuntu ソフトウェアセンターから Graphical tool for working with Mercurial をインストール, もしくは $ sudo apt-get install tortoisehg 以上です。インストールされるのは若干古めのバージョンです。新しいバージョンを利用したい場合は ppa を利用します。 $ sudo add-apt-repository ppa:tortoisehg-ppa/releases $ sudo apt-get update $ sudo apt-get install mercurial $ sudo apt-get install tortoisehg 以上です。