1

パッチの出力を色付けしようとしています。color.diff(私の.gitconfigを介して)構成を設定しても、うまくいかないようです。

repo = Rugged::Repository.new('/some/path')
repo.config = Rugged::Config.new("#{ENV['HOME']}/.gitconfig")
log.info repo.config['color.diff']

INFO color.diff: 常に

そして、ステージングされていない変更を表示するために次のことを行っています。

repo.index.diff.each do |patch|
  puts patch
end

よりきれいな色付きの差分を取得できますか?

4

2 に答える 2

1

color.diffターミナルに色を付けるための git ユーザー向けツールのオプションです。rugged/libgit2 に相当するものはありません。これらはユーザー インターフェイスを処理したり端末に出力したりせず、代わりにデータを生成するためです。

端末 (または他のデバイス) で色を生成する方法は、それ自体が複雑な問題であり、一般的な問題に対する独自のライブラリと回避策が必要であり、完全に rugged/libgit2 の範囲外です。

https://rubygems.orgで、興味のある端末の処理方法を知っている gem を探すことをお勧めします。

于 2015-08-01T18:24:37.103 に答える