|
|
||
MsysGit 1.7.10 にアップデートしたら以下のようなエラーが出るようになった。
> git pull Couldn't resolve proxy '(null)' while accessing http://github.com/your/repos.git/info/refs fatal: HTTP request failed
原因は http.proxy の設定ミスで、「http://」を頭につけていなかったため。
> git config -l | grep proxy http.proxy=proxy.example.com:8080
1.7.9 までは先頭に「http://」がなくても動作していたが、1.7.10 からは「http://」を付けないとエラーになるみたい。
というわけで以下で解決。
> git config http.proxy http://proxy.example.com:8080
xyzzy 0.2.3.3 と 0.2.2.236 で念願の si:putenv を手に入れたので、xyzzy から Pik を使って Ruby を切り替える xl-pik をリリースしました。
xyzzy 0.2.2.235 では動作しないので以下の派生版のどちらかを利用してください。
M-x pik-switch-dialog とかすると以下のような画面がでて切り替え可能です。
この xl-pik は 1 年半前に作ろうと思っていたのですが、0.2.2.235 では xyzzy の環境変数を設定することができなくて挫折したものです (id:miyamuko:20100910 参照)。
ようやくリリースすることが出来ました。
アマゾン・アソシエイトID(アフィリエイト用のID)を含んだ商品URLを生成する秀丸マクロです。
アマゾン・アソシエイトID(アフィリエイト用のID)を含んだ商品URLを生成する秀丸マクロ - 結城浩のはてな日記
;; amazon.l ;; アマゾンの商品URLがクリップボードに入っている状態で起動すると、 ;; アソシエイトIDを含んだ商品URLを生成してxyzzyエディタに挿入するxyzzyマクロ。 ;; クリップボードのURLは http://…/dp/XXXXXXXXXX/… という形式を想定している。 (defvar *amazon-affiliate-id* "hyuki-22") (defun amazon-affiliate-url-paste-from-clipboard () (interactive) (let ((url (get-clipboard-data))) (if (and url (string-match "/dp/\\([0-9a-fA-F]\\{,10\\}\\)" url)) (let ((asin (match-string 1))) (insert (format nil "http://www.amazon.co.jp/exec/obidos/ASIN/~A/~A/" asin *amazon-affiliate-id*))) (plain-error "ERROR: /dp/XXXXXXXXXX/ is not found in clipboard"))))
コミットするたびに ChangeLog ファイルを更新するようなプロジェクトだと、merge や cherry-pick するたびに ChangeLog がコンフリクトして面倒です。
こういう時は Gnulib に含まれる git-merge-changelog という GNU スタイルの ChangeLog 専用のマージドライバを使うことでコンフリクトせずにマージできます。
というわけで、git-merge-changelog の Windows 用のバイナリをビルドして以下に置いておきました。
https://github.com/downloads/miyamuko/git-merge-changelog-for-windows/git-merge-changelog.exe
git-merge-changelog を使うには設定が必要です。
まず ~/.gitconfig に以下を追加。
[merge "merge-changelog"] name = GNU-style ChangeLog merge driver driver = c:/path/to/git-merge-changelog.exe %O %A %B
次に、ChangeLog ファイルごとにマージ戦略を設定します。
設定は開発者全員で共有したいならリポジトリ直下の .gitattributes に、自分一人で設定したいなら .git/info/attributes で行います。
どちらかのファイルに以下の内容を書いてください (ChangeLog ファイルのファイル名が ChangeLog.txt の場合)。
ChangeLog.txt merge=merge-changelog
Ruby の open-uri とほぼ同様の機能を持つ xl-open-uri 1.0.0 をリリースしました。
xl-open-uri は HTTP や FTP に簡単にアクセスするための機能を提供します。
デフォルトでサポートしている URL スキームは http, https, ftp, data です。
URL スキームを追加するための API も公開しています。
user> (open-uri:with-open-uri (f "http://www.google.co.jp/search" :query '(:q "xyzzy 読み方" :ie "UTF-8" :oe "UTF-8") :encoding *encoding-utf8n*) (values (multiple-value-list (open-uri:status f)) (open-uri:meta f) (open-uri:meta f :content-length) (open-uri:base-uri f) (open-uri:content-type f) (open-uri:charset f) (length (open-uri:read-all f)))) (200 "OK") ; (("Cache-Control" . "private, max-age=0") ("Date" . "Sat, 11 Feb 2012 11:22:59 GMT") ...) ; nil ; "http://www.google.co.jp/search?q=xyzzy%20%E8%AA%AD%E3%81%BF%E6%96%B9&ie=UTF-8&oe=UTF-8" ; "text/html" ; "utf-8" ; 31132
Ruby の open-uri では HTTP GET および FTP のダウンロードしか対応していませんが、xl-open-uri では任意の HTTP メソッドの送信が可能です。また FTP のアップロードにも対応しています。
;; HEAD リクエストの送信 user> (with-open-file (f "http://www.jsdlab.co.jp/~kamei/cgi-bin/download.cgi" :method "HEAD") (decode-universal-time (open-uri:last-modified f))) 21 ; 28 ; 1 ; 8 ; 12 ; 2005 ; 3 ; nil ; -9 ;; FTP (アップロード) user> (open-uri:with-open-uri (os "ftp://example.com/public_html/hello.txt" :direction :output :if-exists :overwrite :encoding :binary :auth '("user" "pass")) (with-open-file (is "hello.txt" :encoding :binary) (alexandria:copy-stream is os))) 13730
めずらしくリファレンスを書きました。
info-modoki-mode でリファレンスを引けるようにするには xl-open-uri と xy-reference をインストールしたあとに、*scratch* バッファで以下を評価してください。
(require :xy-reference) (xy-reference:2txt)