jekyllrb-ja/jekyllrb-ja.github.io — pull request #129 by melborne (2014-06-08 23:08:54+00:00)
Title: add thor tasks for get diffs related #122

ちょっと先走りですが、本家とのDiffを取るツールをThorで作ってみました :smile:

次のようなタスクを持っています。

```bash
% thor jekyllja
Commands:
thor jekyllja:diff FILE # Compare FILE between local and remote repository
thor jekyllja:diff_all DIRECTORY # Do tasks :dir_diff and :diff for files in DIRECTORY
thor jekyllja:dir_diff DIRECTORY # Compare file exsistence in DIRECTORY between local and remote repository
thor jekyllja:get FILE # Get FILE content from remote repository
thor jekyllja:help [COMMAND] # Describe available commands or one specific command
```

本家の特定ファイルを取得したい場合は、つぎのようにします。

```bash
% thor jekyllja:get docs/index.md
---
layout: docs
title: Welcome
next_section: quickstart
permalink: /docs/home/
---

This site aims to be a comprehensive guide to Jekyll. We’ll cover topics such
as getting your site up and running, creating and managing your content,
customizing the way your site works and looks, deploying to various
environments, and give you some advice on participating in the future
development of Jekyll itself.
...
```

特定ファイルについて本家とのdiffを取りたいときは、つぎのようにします。

```bash
% thor jekyllja:diff docs/quickstart.md
--- /var/folders/sk/9h0z77c10g16n_vc0khd_chr0000gn/T/--local-quickstart.md--20140609-55546-1yf2w7a 2014-06-09 07:50:21.000000000 +0900
+++ /var/folders/sk/9h0z77c10g16n_vc0khd_chr0000gn/T/--remote-quickstart.md--20140609-55546-luxkml 2014-06-09 07:50:21.000000000 +0900
@@ -20,12 +20,6 @@
posts, using the front-matter to control templates and layouts, and taking
advantage of all the awesome configuration options Jekyll makes available.

-

-

Redcarpet is the default Markdown engine for new sites

-

In Jekyll 1.1, we switched the default markdown engine for sites
- generated with jekyll new to Redcarpet

-

-
If you're running into problems, ensure you have all the [requirements
installed][Installation].
```
本家側で新たに追加または削除されたファイルがないか調べるには、つぎのようにします。

```bash
% thor jekyllja:dir_diff docs
New files found: collections.md
```

対象ディレクトリに対し、これらをまとめて実行するには、つぎのようにします。

```bash
% thor jekyllja:diff_all docs
New files found: collections.md
Diff found on 'docs/pagination.md'
Diff found on 'docs/structure.md'
Diff found on 'docs/extras.md'
No diff on 'docs/index.md'
Diff found on 'docs/posts.md'
No diff on 'docs/heroku.md'
...
```

これらの結果を保存したい場合は、`--save`オプションを付けます。デフォルトで`diff/tmp`にファイルが保存されますが、`--save-path`オプションで指定できます。

もう少し細かい説明がどこかで必要ですが、概略はヘルプを見てください :smile:

まだ、v2.0の方針が決まってないので最終的に使い物になるかわかりませんが、試してみて頂けるとうれしいです。