まさかリスト

語感良くない?

masterのcommitが別のbranchのPull Requestに混じっていた件

先日のSVNの特定のフォルダを既にあるGitのレポジトリのブランチとして移行する手順 - まさかリストの後に早速branchを切ってPull Requestした所謎の問題が発生。
f:id:IDLOCK:20160503192624p:plain
私こんなにcommitしていない。
よく見たらmasterのcommitが出ている…
なんだこれ…と悩んで調べましたがそれらしい情報は出てこず。

設定を色々確認してもよく分からず。
打つ手なしと思われましたが解決しました。

原因

デフォルトのbranchが設定されていなかった。

解決策

デフォルトのbranchを選択してApply changesで確定。
f:id:IDLOCK:20160503193231p:plain
因みにこの画像は確定前、選択前です。
てっきり既にデフォルトが設定されているものだと思ったので、ハマりました。
変更が無い場合でも、一度Apply changes押して確定させる必要があります。
未選択とかあったらわかりやすいかな?

環境

GitBucket 3.9

おわり。

Pull Requestしてmergeした後にrevertしてcommitしたやつを更にrevertしてなかった事した記録

Pull Requestしてmergeした後に問題があって「Pull Request取り消したい!」って時ありませんか?
ありませんね。
本当にありがとうございました。

私はありましたので記しておきます。
まずは、Pull Requestを取り消します。

$ git revert -m 1 [Pull RequestのSHA]

これでcommitすれば目出度くPull Requestが無かった事になります。
しかし、世の中は残酷で、「やっぱりなかった事をなかった事にしたい!」という時があります。
その時にはrevertしたcommitをrevertします。
既にrevertされたbranchから新しいbranchを作成します。
そうしたら、revertを実行します。

$ git revert [revertしたやつのSHA]

これでcommitして、Pull Requestすれば完全に元通り。
但し、コメントが
f:id:IDLOCK:20160503185351p:plain
って意味分かんない事になりかねないので注意。

参考

blog.inouetakuya.info

おわり。

SVNの特定のフォルダを既にあるGitのレポジトリのブランチとして移行する手順

タイトルがわかりにくいですが、要するにgit-svnです。

環境

Windows 7 64bit

手順

まず、どこでもいいのでフォルダを作っておきます。

mkdir test

今回のSVNレポジトリがfile:/// でアクセスしていたのでエラーが表示されました。

解決策

d.hatena.ne.jp
d.hatena.ne.jp
別窓で下記を実行しておく。
対象のディレクトリは該当のレポジトリがあるディレクトリのところまで。

svnserve.exe -X --root \\NAS\repository

その後git-svnを実行。今回はブランチ等存在していないので、そのままで。

git svn clone svn://localhost/test

完了後、同一ディレクトリに新たにフォルダを作成。

mkdir test_sub

cloneします。

git clone test test_sub

指定したディレクトリのみ抽出。

cd test_sub
git filter-branch --subdirectory-filter [移行したいフォルダ名] -- --all

作成したいブランチ名に変更。

git branch -m [作成したいブランチ名]

確認します。

git branch -a

あとはpushするだけ。

git remote rm origin
git remote add origin [remoteURL]
git push --all

所感

かなり変則的なやり方になったが、そのフォルダの歴史も引き継げているのでどうにか出来たっぽい。
結構複雑だったが、まとめたらたいした事なかった。

参考

qiita.com

おわり。

MySQL 5.6でサブクエリーのANY、SOME違いについて

サブクエリについて調べていてANYとSOMEがでて来たのですが、違いがよくわからないのでドキュメントみてみました。

結論

どちらも同じ。
SOMEはANYのエイリアス

以下そーす

ワード SOME は ANY のエイリアスです。そのため、次の 2 つのステートメントは同じです。

SELECT s1 FROM t1 WHERE s1 <> ANY  (SELECT s1 FROM t2);
SELECT s1 FROM t1 WHERE s1 <> SOME (SELECT s1 FROM t2);

MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.10.3 ANY、IN、または SOME を使用したサブクエリー

はてなブックマークを表示するChrome Extension作りました。

非常に簡単ですがChrome Extensionを初めて作りました。

github.com

はてなオフィシャルChrome Extensionはコメント表示だとか色々機能があって、ただブクマを表示したい時に微妙に使いづらさを感じていたので作りました。

開いてるページのはてブ数もアイコンの横に表示されます。

はてなブックマーク件数取得API - Hatena Developer Centerを使いました。

当初chrome.tabs.onActiveChanged.addListenerを使っていたが、どうやら Chrome 33から非推奨になっているみたいなので、代替のchrome.tabs.onActivated.addListenerを使うようにしました。

初めてChrome Extensionを作りましたが普通にJavaScriptが使えるので簡単に出来てしまいビックリしました。

また、 Chrome APIも結構色々なものがあるので色んな事が簡単にできそうでした。

インストール方法

「パッケージ化されていない拡張機能を読み込む」からフォルダを選択するだけでOK。

m-shige1979.hatenablog.com

使い方

アイコンをクリックするだけ

f:id:IDLOCK:20160125132917p:plain

左が今回のやつ、右がオフィシャル。

謝辞

[フリー]布風はてブアイコン[自作]

アイコンをお借りしました。

ソース

manifest.json


background.js

おわり。

Smartyを3.1.27から3.1.28アプデにしたらFatal error: Uncaught --> Smarty: Unable to load template file 〇〇.tpl'' <-- が出た話

Smartyを3.1.27から3.1.28アプデにしたら

Fatal error: Uncaught --> Smarty: Unable to load template file 'index.tpl' <--

が出て困りました。

原因

クラス変数に値を直接代入していた。

$smarty->template_dir = '/templates';
$smarty->compile_dir  = '/templates_c';

解決策

$smarty->setCompileDir('/templates_c');
$smarty->setTemplateDir('/templates');

jQueryでダブルクリックとクリックを区別したい

題名の通りjQueryでダブルクリックとクリックを区別したい時にハマったのでメモ。
ダブルクリックはclickイベントが先に実行されるので、ダブルクリックとクリックでそれぞれ別々の処理ができません。
しかし、解決策がありました。
stackoverflow.com

$(セレクタ).on('click', function(e) {
    var that = this;
    setTimeout(function() {
        var dblclick = parseInt($(that).data('double'), 10);
        if (dblclick > 0) {
            $(that).data('double', dblclick-1);
        } else {
            //やりたい処理;
        }
    }, 250);
}).dblclick(function(e) {
    $(this).data('double', 2);
    //やりたい処理;
});

jQuery v2.1.4 で動作しました。
流石Stack Overflowですね。
Stack Overflowでは関数呼んでますが、二行程度だったので直接やりたい処理に記述しました。

おわり