SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
githubとコードレビューと
emacs
shiba_yu36
13/04/27 kansai.emacs 07
自己紹介
shiba_yu36 shibayu36
or etc...
http://shibayu36.hatenablog.com/
•株式会社はてな
•アプリケーションエンジニア
•はてなブログ
•外部API、課金などの基盤周り
Work
やっていること
•Cinnamon
•Kyoto.pm
•perlbrew.el
•open-github-
from-here.el
github使ってますか?
•仕事で?
•趣味で?
•複数人で?
仕事で使っています
•複数人での開発
•品質保証のためのコードレビュー
•コミュニケーション
今日の話
•githubのコードレビューの場面ごとに
細かくツールを作っていった
•最終的にemacs拡張が出来た
•open-github-from-here.elの紹介
•emacsの話は少なめかも
コードレビューでの
一場面
こういう
クラスどう思う?
github上の特定ファイルのURLを示す
•最初はリンク辿ってた
•https://github.com/shibayu36/
emacs/tree/master/README.md
•面倒
•terminalからfile指定で一発で開けると
捗るかも
•現在のブランチのファイルを開けたら更
に嬉しい
open-github-from-file
$ open-github-from-file (ファイル名)
open-github-from-file
•ファイルを指定すると
•現在のブランチの
•指定したファイルのURLを
•ブラウザで開く
簡単なデモ
•open-github-from-file open-github-
from-here.el
•developmentブランチ
技術的Tips
•https://github.com/(user)/(repo)/
tree/(branch)/(filename) を開く
•user、repo、ブランチ、ファイルを取
得すれば良い
技術的Tips
•host名(GHEに対応)
•hub.host
•user, repo
•remote.origin.url
技術的Tips
•branch名
•git symbolic-ref HEAD
•refs/heads/(branch)
技術的Tips
•repo内file path
•git rev-parse --show-toplevel
•repository topのpath
•指定されたファイルとの比較
•それぞれの情報からURLを構築
コードレビューでの
一場面
こういう書き方
どう思う?
ファイルの行がハイライトされたURLを示す
•ファイルURLは行をハイライトできる
•//shibayu36/emacs/tree/master/
README.md#L3..L10
•このへん、を示すのにハイライトが使
える
open-github-from-file
•行のはじめと最後を数字で指定出来る
ように改善
open-github-from-file
$ open-github-from-file ファイル名 行始 行終
簡単なデモ
•open-github-from-file open-github-
from-here.el 41 57
技術的Tips
•行をフラグメントで指定するだけなの
で特に無い
ファイルの行番号
覚えてないよね...
問題
ファイルの行番号
覚えてないよね...
それemacsで
簡単にできるよ
問題
open-github-from-
here.el
出来ること
•emacsの現在のバッファからgithubに
飛べる
•regionが指定されてたらその部分をハ
イライトする
デモ
インストール
el-getの場合
el-get-install open-github-from-here
https://github.com/shibayu36/emacs-open-
github-from-here/
インストール
手動の場合
git cloneして、load-pathを
https://github.com/shibayu36/emacs-open-
github-from-here/
技術的Tips
•URL構築は先ほどと同じ
•shell-command-to-stringで外部コマ
ンドに任せてる
技術的Tips
•emacsでファイル名、region位置を取
得
技術的Tips
•browse-urlコマンドでブラウザを開く
まとめ
•複数人で開発して細かいツールを作っ
ていったら少しずつ便利になった
•小さいことから作っていくとだんだん
便利になる
•open-github-from-here.el良ければ
使ってみてください
コードレビューでの
一場面
こういう変更
どう思う?
github上の特定commitのURLを示す
コードレビューでの
一場面
•最初の頃はURL手打ちか、リンクを辿
る
•面倒
•terminalからcommit指定で一発で開け
ると捗りそう
open-github-from-
commit
•commit(a235fa, HEAD^)を指定
•現在のrepositoryの
•指定したcommitのgithub URLを
•ブラウザで開く
open-github-from-
commit
$ open-github-from-commit (commit名)
簡単なデモ
•open-github-from-commit
•open-github-from-commit HEAD^
技術的Tips
•https://github.com/(user)/(repo)/
commit/(commit) を開く
•user、repo、commitを取得すれば良
い
技術的Tips
•host名(GHEに対応)
•hub.host
•user, repo
•remote.origin.url
•commit
•入力, default: HEAD
技術的Tips
•commit
•入力
•取得した情報からURL構築

Contenu connexe

En vedette

En vedette (8)

130713 kyotopm-lt
130713 kyotopm-lt130713 kyotopm-lt
130713 kyotopm-lt
 
131026 kansai-emacs
131026 kansai-emacs131026 kansai-emacs
131026 kansai-emacs
 
130412 kayac-cinnamon
130412 kayac-cinnamon130412 kayac-cinnamon
130412 kayac-cinnamon
 
Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy tool
 
Confluence &JIRA 導入までの軌跡
Confluence&JIRA導入までの軌跡Confluence&JIRA導入までの軌跡
Confluence &JIRA 導入までの軌跡
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ
 
HTTP/2の現状とこれから
HTTP/2の現状とこれからHTTP/2の現状とこれから
HTTP/2の現状とこれから
 

Similaire à 130427 kansai-emacs-github

Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutTsuubito Ishii
 
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudyScrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudyHiraku Nakano
 
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくするgitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくするStudy Group by SciencePark Corp.
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!ymmt
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
Hatena blogdevelopmentflow
Hatena blogdevelopmentflowHatena blogdevelopmentflow
Hatena blogdevelopmentflowYasuhiro Onishi
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another ApproachDaisuke Miyakawa
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャota42y
 
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーションlestrrat
 
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話ota42y
 
Devとopsをつなぐchat ops
Devとopsをつなぐchat opsDevとopsをつなぐchat ops
Devとopsをつなぐchat opsikikko
 
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-Shinji Enoki
 
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込むKazumi IWANAGA
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたTakako Miyagawa
 
LINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
LINEにおける GitHub Enterpriseの活用事例と LINE NotifyについてLINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
LINEにおける GitHub Enterpriseの活用事例と LINE NotifyについてLINE Corporation
 
「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう中條 剛
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 

Similaire à 130427 kansai-emacs-github (20)

Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
 
Scrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudyScrutinizer CIでPHPも静的解析 #phpstudy
Scrutinizer CIでPHPも静的解析 #phpstudy
 
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくするgitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
Yapc2012資料
Yapc2012資料Yapc2012資料
Yapc2012資料
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
Hatena blogdevelopmentflow
Hatena blogdevelopmentflowHatena blogdevelopmentflow
Hatena blogdevelopmentflow
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャ
 
筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション筋肉によるGoコードジェネレーション
筋肉によるGoコードジェネレーション
 
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話
 
Devとopsをつなぐchat ops
Devとopsをつなぐchat opsDevとopsをつなぐchat ops
Devとopsをつなぐchat ops
 
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
 
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
LINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
LINEにおける GitHub Enterpriseの活用事例と LINE NotifyについてLINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
LINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
 
「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 

Plus de Yuki Shibazaki

120225perl入学式02自己紹介
120225perl入学式02自己紹介120225perl入学式02自己紹介
120225perl入学式02自己紹介Yuki Shibazaki
 
没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成
没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成
没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成Yuki Shibazaki
 
テストデータどうしてますか?
テストデータどうしてますか?テストデータどうしてますか?
テストデータどうしてますか?Yuki Shibazaki
 

Plus de Yuki Shibazaki (6)

130207 kyotorb
130207 kyotorb130207 kyotorb
130207 kyotorb
 
121221社内lt
121221社内lt121221社内lt
121221社内lt
 
120225perl入学式02自己紹介
120225perl入学式02自己紹介120225perl入学式02自己紹介
120225perl入学式02自己紹介
 
120225perl入学式02
120225perl入学式02120225perl入学式02
120225perl入学式02
 
没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成
没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成
没入コミュニケーションに利用する3次元仮想キャラクタの半自動生成
 
テストデータどうしてますか?
テストデータどうしてますか?テストデータどうしてますか?
テストデータどうしてますか?
 

130427 kansai-emacs-github