SourceTreeでサブモジュールの作成に失敗する
やりたい
SourceTree(v2.3.1)でサブモジュールを作りたい。
できない
以下のようなエラーが出る。
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree submodule add -f https://username@github.com/organization/repo.git hoge/fuga Cloning into 'hoge/fuga'... warning: templates not found /usr/local/git/share/git-core/templates fatal: could not read Password for 'https://username@github.com': Device not configured fatal: clone of 'https://username@github.com/organization/repo.git' into submodule path 'hoge/fuga' failed Completed with errors, see above
しらべる
SourceTreeのバグっぽい。
Submodule with different user fails to clone/push with Sourcetree - Atlassian Answers
自分の持ち物じゃないリポジトリをSourceTreeでサブモジュールにしようとするとエラーを吐くようだ。
確かに会社での作業だったので、
- (会社のOrganizationが持つ)Aリポジトリ
に、
- (会社のOrganizationが持つ)Bリポジトリ
を、
- 自分のユーザ
で
サブモジュールとして追加しようとしていたから、この現象だと思う。
かいけつ
SourceTreeのバグなので、コマンドで実行する。
git submodule add https://github.com/organization/repo.git hoge/fuga
できた。
追加さえできれば、SourceTreeのサブモジュールの欄に出てくるし、サブモジュールのコミット履歴ウィンドウも開ける。
Raspberry PiとNode.jsでWebからGPIO操作
jsからRaspiのGPIOを操作する
jsGPIO を使う。
READMEにある通り準備をする。
Node.jsのインストール
よしなに。
quick2wire-gpio-admin のインストール
これもREADME通りに入れればいいが、少し説明が古いので追記。
make sudo make install
gpioグループを追加する。
サンプルではsudo adduser $USER gpio
となっているが動かなかったので、usermod
で。
sudo usermod -aG gpio $USER
※ debian系であるraspbianならadduser使えるはずなんですけどね。
Linuxでユーザーをグループに追加する - Qiita
次に22pinを例に以下のような操作があるものの、Permission Deniedばかりで全然うまくいかない。
% gpio-admin export 22 % cat /sys/devices/virtual/gpio/gpio22/value 0 % echo out > /sys/devices/virtual/gpio/gpio22/direction % echo 1 > /sys/devices/virtual/gpio/gpio22/value
gpioのパスが変わってるんだそうな。 プルリクは飛んでるのにマージされてないらしい。
ということでプルリクの通りに src/gpio-admin.c
を直す。28行目くらい。
static void allow_access_by_user(unsigned int pin, const char *filename) { struct stat info; char *sys_path = "/sys/class/gpio/gpio%u/%s"; if (stat("/sys/class/gpio", &info) != 0) sys_path = "/sys/devices/virtual/gpio/gpio%u/%s"; char path[PATH_MAX]; int size = snprintf(path, PATH_MAX, sys_path, pin, filename);
これで % gpio-admin export 22
が叩けるようになる。
あとは
npm start
なり、
nodejs example-server.js
なりを実行。localhost:8000
で動作を確認。
忘備録
テストしまくってたらポートが被ってnode.jsが起動しなかった qiita.com