ブログトップ 記事一覧 ログイン 無料ブログ開設

サンプルコードによるPerl入門 - 未経験からプロの技術が身につくPerl講座

★★ 未経験から初めて、プロの実力がどんどん身につく、Perl入門講座 ★★
テキスト処理ならPerlが最適。if文,for文,配列,ハッシュ,正規表現を覚えれば、ログ解析も自由自在。大量のExcelデータを高速に集計。Webサイトを作成して、独自のサービスの展開も! 関数とモジュールを覚えれば業務効率が劇的に改善。初級から上級まで、Perlのすべてが学べます。「へぇー、こうすればこんなに簡単にできるんだ!!」プログラミングの面白さを実感しよう。
プロとして第一線で活躍し続けるために、プログラミングの確かな実力を「サンプルコードによるPerl入門」で身に着けてみませんか

2013-04-21

GitPrep - ポータブルなGithubシステムをUnix/Linuxにインストール

 GitPrepGithubのクローン、ポータブルなGithubシステムをUnix/LinuxにインストールできるWebアプリケーショGitPrepです。インストールはとても簡単で、ひとつのコマンドだけでインストールすることができます。

 Githubの機能を、会社などでも無料で使いたいという自分の要望のために書き始めましたが、だんだん機能がそろってきて、どなたでも使ってもらえるところまできました。バージョン1.0をリリースしました。gitというツールは、Githubがないと、使いにくいsvnくらいの認識しかされないので、社内リポジトリのsvnからの移行のためには、こういうツールがあると、便利だと思います。

 ユーザーの作成は無制限プライベートリポジトリも無制限に作成することができます。GitPrep自体はオープンソースですので、無料で利用することができます。さくらレンタルサーバーなどの共有レンタルサーバーにインストールすることができるので、広告などを意識する必要もありませんし、ユーザー登録も必要がありません。

GitPrep (リポジトリとドキュメント)

サンプル

特徴

  • Githubのクローン、GitPrepはGitHubと同じインターフェースを持ちます。
  • ポータブル。GithubシステムをUnix/Linuxサーバーにインストールできます。
  • Windows上のcygwinもサポートしています。
  • Perl 5.8.7以上がインストールされていることだけが必要な条件です。
  • CGIをサポート、組み込みのWebサーバーも標準で搭載、リバースプロキシもサポートしています。
  • SSLのサポート

GitPrepの利用

 CGIと組み込みのサーバーを利用して、GitPrepを使うことができます。英語のドキュメントの該当する部分をご覧ください。

GitPrep


目次

Harbie34Harbie34 2013/08/05 15:46 自宅サーバーにgitprepを設置してみようと思ったのですが、
うまく行かない部分があったので教えてください。

既にApacheを稼働させており、サーバー証明書も設定しているので
リバースプロキシ経由でgitprepにアクセスできるようにしたいと考えています。

Apache側で下記のようにリバースプロキシの設定をしたところ、
「https://myhome.example.jp/gitprep/」でgitprepのトップ画面は出たのですが、
HTMLソースを見るとcssやjsへのリンクが「/css/〜」や「/js/〜」になっていたため、
読み込めない状態になってしまっています。
 ProxyPass /gitprep/ http://localhost:10020/
 ProxyPassReverse /gitprep/ http://localhost:10020/

gitprep.conf内の[reverse_proxy]セクションで
「on=1」のコメントを解除したりもしてみましたが変化はありませんでした。

CSSやJSについては「templates/layouts/common.html.ep」の該当箇所を
直接修正することで相対パスになりましたが、
他にも色んなところでルートからのパス設定になっているようです。
この辺は設定で変更できないものでしょうか?

お忙しいところ恐縮ですがご回答いただければ幸いです。

perlcodesampleperlcodesample 2013/08/05 21:50  正しく動かすことができます。以下が僕の設定です。ProxyPassとProxyPassReverseのところを修正してみてください。10020/の後にも、パスが必要です。[reverse_proxy]セクションでon=1とpath_depth=1を設定してください。


<VirtualHost *:80>

ServerName gitprep.perlcodesample.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On

ProxyPass /foo http://localhost:10020/foo keepalive=On
ProxyPassReverse /foo http://localhost:10020/foo

RequestHeader set X-Forwarded-HTTPS "0"
</VirtualHost>

Harbie34Harbie34 2013/08/05 23:56 ご回答ありがとうございますm(_ _)m

リバースプロキシ設定とgitprep.confを修正したら希望通りの構成で動作しました。
今まではgitoliteとgitwebで共有リポジトリの管理をしていましたが、
そこまで複雑なユーザー管理も不要だったので
gitprepに乗り換えてみようと思っています。

サポートありがとうございました(^-^)

perlcodesampleperlcodesample 2013/08/06 08:54 よかったです。

Harbie34Harbie34 2013/11/15 12:06 READMEがMarkdown記法に対応してさらに便利になったのですが、いくつかお聞きしたいことがあります。
ご確認・ご検討いただければ幸いです。

1.READMEの拡張子
「Create a new repo」で「Initialize this repository with a README」のチェックを付けておくとREADMEファイルが自動生成されますが、そのままだとMarkdown変換されないようです。
README.mdが自動生成されるようにしていただけないでしょうか?

2.Markdownの強調が無効?
**強調**や__強調__はstrongになりましたが、*強調*や_強調_がemにならないようでした。
Text::Markdown::Discountの問題でしょうか…?

3.文字コード変換
SJIS(cp932)などのソースがあり、コード表示(Normal, Blame, Diff)した際に文字化けしてしまいます。
内部でUTF-8変換して表示させることはできないでしょうか?

perlcodesampleperlcodesample 2013/11/15 14:11 1.については、対応したいと思います。GitHubもその動きなので、あわせます。

perlcodesampleperlcodesample 2013/11/15 14:12 2は試してみたところ、日本語だとできないようですね。たぶんText::Markdown::Discountの問題だと思います。

perlcodesampleperlcodesample 2013/11/15 14:21 こちらに報告しておきました。https://github.com/sekimura/text-markdown-discount/issues/17

perlcodesampleperlcodesample 2013/11/15 14:29 3は、おそらく対応できないです。gitはバイナリでデータを持っているので、文字コード判定ができないです。ですので、きめうちでUTF-8を指定するしか方法がないと思っています。

Harbie34Harbie34 2013/11/15 16:21 3についてはmsysgitだとguiのencodingオプションがあってcp932のdiffも表示できていたので、Gitprepでも同様のことができるのではないかと期待した次第です。
msysgitがどうやってテキストファイルを判定しているのかはわかりませんが、以下のような情報がありました。
 http://blog.keshi.org/hogememo/2012/04/18/git-diff-binary-file-detection

Windowsクライアント側ではmsysgitを使っており、Gitprepで対応していないと困るというようなものではありませんのであまり気になさらないでください。

ご確認・ご検討ありがとうございました。

perlcodesampleperlcodesample 2013/11/15 16:58 ファイルの個別の判定はできなくても、プロジェクト単位で文字コードのきめうちあれば、可能かもしれないので、検討してみます。

perlcodesampleperlcodesample 2013/11/16 12:50 最新のマスターでは1と2は解決しました。1.4リリースのときに反映される予定です。

perlcodesampleperlcodesample 2013/11/16 13:13 文字コードの件は、GitHubがもともと対応していないのと、内部が複雑になりそうなので、やっぱりやめます。

Harbie34Harbie34 2013/11/17 16:54 最新版をpullして対応されていることを確認しました。
文字コードの件は残念ですが代わり(?)にプライベートリポジトリが仮実装されたようでさらに便利になりそうです。
対応ありがとうございました。

perlcodesampleperlcodesample 2013/11/17 17:37 文字コードの件は、比較的簡単に実装できそうなアイデアが浮かんできたので、もう一度チャレンジしてみる予定です。

perlcodesampleperlcodesample 2013/11/19 22:07 リポジトリ単位で文字コードを設定できるようにしました。お試しください。

Harbie34Harbie34 2013/11/21 13:31 遅くなりましたが文字コード設定を確認してみました。

ファイル内容の文字コード変換は期待通りの結果でしたが、ファイル名やコミットログはUTF-8なので残念ながら全体的には文字化けしてしまいます。

同一リポジトリ内で違う文字コードのファイルが混在することは想定していないので、リポジトリ単位で文字コードを設定するという方針は問題ないのですが、あくまでファイル内容の表示に関わる処理だけ文字コード変換がかかるようにするのは難しいでしょうか?

Windowsで開発した一昔前のプロジェクトはSJIS/CP932、CGI/PerlなどだとEUC-JPであることが多い気がしますが、他の方々がそれらをどのようにしているのか、今回の要望にどれくらい需要があるのかも気になるところですね。

perlcodesampleperlcodesample 2013/11/21 14:02 うーん、非常に悩ましいですね。Windowsだとファイル名はcp932になっちゃいますしね。コミットログもgitはバイナリで扱うので、文字コードの判定ができないですね。うーん、やっぱり、やるとなると、出力の内容から推定するような仕組みが必要なのかもしれません。ここは、ひとまず考え直すために、振り出しに戻ります。

Harbie34Harbie34 2014/02/13 16:51 本格的にgitwebから乗り換えて使わせてもらっていますがいくつか要望が出てきました。

1.コミットメッセージのリンク先(GitHub互換)
ファイルツリーでファイルを選択するとページ上部にそのファイルの直近コミット情報が表示されますが、そのコミットメッセージに設定されているリンク先はリポジトリ全体の直近コミット情報になっているようです。
表示されたコミット情報へのリンクにするのは難しいでしょうか?

2.サブディレクトリのREADME.md表示(GitHub互換?)
サブディレクトリもREADME.mdがあればページ下部にHTML変換して表示していただけないでしょうか?

3.タイムゾーンを考慮したコミット日時表示
各ファイルの最終コミット日時(an hour ago等)が表示されている部分はtitle属性にGMTで日時が設定されているようですが、ローカル日時+タイムゾーン表記にしていただけないでしょうか?
賛否両論ありそうなので設定で変えられるというのでも構いません。
ちなみにgitwebではブラウザのクッキーにタイムゾーン設定が保存されていて切り替えられるようになっていました。

以上、ご検討いただければ幸いですm(_ _)m

perlcodesampleperlcodesample 2014/02/14 12:30  ご意見ありがとうございます。ちょっと調べてみますね。

perlcodesampleperlcodesample 2014/02/17 15:17 1を対応しました。これは単なるバグでした。

perlcodesampleperlcodesample 2014/02/17 15:50 2も対応しました。GitHubも同じでしたので、合わせました。

perlcodesampleperlcodesample 2014/02/17 15:53 3もGitHubが、ローカル時刻表示なっているので、調べてあわせたいと思います。

Harbie34Harbie34 2014/02/17 16:28 対応ありがとうございます!

正式リリースを待たずに43d31fdをpullして動作確認をさせていただいたところ、1については問題なさそうなのですが、2が想定と少し違う動作のようでしたのでご報告します。

リポジトリルートにREADME.mdがあればどこのサブディレクトリに移動してもそれが表示されるという動作にしていただいた(?)ようですが、サブディレクトリ内にREADME.mdがあればそれを表示、なければ今まで通り下には何も表示されないという動作を期待していました。(^^;
せっかく修正していただいたのに大変心苦しいのですが、GitHubもそのような動作になっているかと思いますのでご確認いただければと思いますm(_ _)m

perlcodesampleperlcodesample 2014/02/17 16:37 「ローカル日時+タイムゾーン表記」は、GitHubと仕様が異なるので、取り入れることはできないですが、タイムゾーンの設定ができるようにするかもしれません。

perlcodesampleperlcodesample 2014/02/17 17:29 あれ、そんな変な動作になってましたか。ちょっと見てみます。

perlcodesampleperlcodesample 2014/02/17 17:41 マークダウンの方だけ、バグっていました。修正しました。

Harbie34Harbie34 2014/02/17 17:54 サブディレクトリの動作を確認しました。
早速対応していただきありがとうございました(^-^)/

タイムゾーン表記は特にこだわりがあったワケではありません。コミットログの日時が「+0900」などとなっているのがそのまま使えるかと思っただけですので、ローカル日時で表示されるようになれば十分です(^^;

MAGUROMAGURO 2014/02/19 14:51 はじめまして。
自宅サーバーにGitPrepを設置して動かしているのですが、数点質問と要望があります。

質問1. HTTPプロトコルでPushする際のユーザー名・パスワードがわかりません。
GitPrepを設置したユーザーと、GitPrepで作成したユーザーのどちらを試してもうまくいきませんでした。
環境はUbuntu 12.04 LTS + Apache2.4.7で、setup.cgiを使い設置しました。

要望1. マニュアルが欲しい
インストールに関しては詳しく説明があるのでいいのですが、使い方に関しての情報が全く見当たらず、困っています。
触っていればなんとなくは分かってくるのですが、本当にこれでいいのか不安になります。
簡単なものでいいので、是非お願い致します。

要望2. 非ログイン状態でもSSHを表示できるようにして欲しい
GitPrepにBasic認証かDigest認証を設け、身内以外は閲覧できないようにしようと検討しています。
そうすると、HTTPでのPush/Pull等ができなくなる(と思われる)ため、SSHを使うことになります。
ログインしていなくても、GitPrepを見れている時点で身内なので、非ログイン状態でもSSHを表示できると嬉しいです。
また、HTTPは上記の理由により使えないと思うので、非表示にしたいです。
SSHを常時表示する、HTTPを非表示にする設定を追加していただけると嬉しいです。

ご検討よろしくお願い致します。

perlcodesampleperlcodesample 2014/02/21 08:57 質問1ですが、OSとgitの組み合わせで、ベーシック認証がうまくいかないことがあるようで、原因を調査中です。うまくいく場合もあるので、一度gitのバージョンを最新のものにしてみてくれませんか。

要望1ですが、どんなところが、わかりにくいと感じていますか。

要望2ですが、オプションとして実装してみたいと思います。

MAGUROMAGURO 2014/02/22 17:26 gitを最新バージョンに変更しても挙動は変わりませんでした。
setup.shからインストールし、http://localhost:10020で運用してみたところ、ベーシック認証に成功するようになりました。

わかりにくいのは、リバースプロキシの正しい設定と、リポジトリのインポート方法です。
リバースプロキシに関しては、正しい設定方法が記載されているのがここのコメントだけで、気づきにくいため、ドキュメントの方にも載せてほしいです。
インポート方法に関しては、GitPrep1.2でimport_repを追加したとの情報しかないため、同様にドキュメントに載せてほしいです。

要望2に追加なのですが、gitprepのページ自体に認証を掛けてしまう予定なので、httpのベーシック認証を無効にする設定もあると嬉しいです。

よろしくお願い致します。

perlcodesampleperlcodesample 2014/02/24 13:56 うーん、cgiの運用の時に、認証がうまくいかない可能性があるのかもしれませんね。情報ありがとうございます。

リバースプロキシとインポート方法は、書いておいたほうがいいですね。書きます。

Harbie34Harbie34 2014/02/25 11:59 またちょっと気付いたことがあったのでご報告です。

リポジトリ内にGitHubのサブモジュールがあった場合、GitPrepでそのディレクトリを開くと「https://github.com/x/x.git」へのリンクが表示され、GitHubの該当ページに飛ぶことができるかと思います。
一方、GitPrep内の別リポジトリをサブモジュールとした場合も「http://192.0.2.1/gitprep/y/y.git」のようなリンクは表示されるのですが、該当ページを開くことができません。

ブラウザからGitHubのリンクに飛んだ場合は末尾の「.git」がないURLに書き換わるので、GitHub側でリクエストがブラウザなのかgitコマンドなのかによって応答を変えているのではないかと推測したのですが…?

perlcodesampleperlcodesample 2014/02/26 17:08 GitHubの場合とGitPrepの場合で、サブモジュールを追加したときのURLを見せてもらってもよいでしょうか。

リポジトリにある.gitmodulesの内容を見せてください。

perlcodesampleperlcodesample 2014/02/26 17:11 確かにGitHubは.gitでアクセスすると.gitが取れたURLにリダイレクトされますね。

perlcodesampleperlcodesample 2014/02/26 17:44 .gitがあった場合に、.gitがつかないURLにリダイレクトするようにしました。これで大丈夫だと思います。

Harbie34Harbie34 2014/02/27 18:13 サブモジュールリンクの件、問題ないことを確認しました。
早速対応していただき、ありがとうございましたm(_ _)m

perlcodesampleperlcodesample 2014/02/28 14:08 ドキュメントに簡単ですが、リバースプロキシの設定の仕方と、リポジトリのインポート方法について追記しました。

WaitsWaits 2014/03/08 01:08 こんにちは
gitprepをホスティングサーバーにて利用させていただいております。
そこでご質問なのですが、Collaboratorsについて教えていただけませんでしょうか?
あるユーザーのリポジトリが複数ある場合、1つはCollaboratorsの登録ができるのですが、2つ目を同じユーザーにCollaboratorsを登録するとInternal errorがでて登録できませんでした。
どこか設定を変える必要がございますか?
ご教授お願い致します。

WaitsWaits 2014/03/08 03:20 すみません;;自己解決致しました。
各フィールドで設定されているuniqueは必要がない気がするのですが
これは設定されている理由がございますか?

perlcodesampleperlcodesample 2014/03/08 16:03 Waitsさん、それはバグなので、修正して、READMEに修正方法を追記しました。バグのお知らせありがとうございます。

perlcodesampleperlcodesample 2014/03/08 16:05 Harbie34さん

 最新のmasterでタイムゾーンを設定ファイルで設定できるようにしました。お試しください。

perlcodesampleperlcodesample 2014/03/08 16:10 MAGUROさん

>要望2に追加なのですが、gitprepのページ自体に認証を掛けてしまう予定なので、httpのベーシック認証を無効にする設定もあると嬉しいです。

こちらなのですが、少し考えさせてください。SSHをユーザーごとにできるようにする実装を調査中ですので、こちらの機能との整合性も考えて、決めたいと思います。

Harbie34Harbie34 2014/03/10 18:26 タイムゾーン設定確認しました。
毎回要望対応ありがとうございましたm(_ _)m

WaitsWaits 2014/03/11 20:24 こちらこそご対応ありがとうございました^^

perlcodesampleperlcodesample 2014/03/17 10:26 Harbie34さん

 最新のmasterで、blob,commit diff, blameにおいてだけ、他の文字コードも、表示できるオプション(encoding_suspects)を追加をしてみました。お試しください。

Harbie34Harbie34 2014/03/17 14:09 ちょうどtetsuh様のprの行方を見守っていたので確認してみましたが特に問題なさそうでした。
これでcp932のソースもGitPrepに移行できそうです。(^-^)

名無し名無し 2014/10/02 14:52 フィードを生成させる機能を追加できませんか?
githubと同じように生成されると嬉しいです。
ttps://github.com/yuki-kimoto/gitprep/commits/master.atom

perlcodesampleperlcodesample 2014/10/02 15:38  できますよ。それほど難しくなさそうなので、追加しますね。少しお待ちを。

名無し名無し 2014/11/16 17:26 早速使わせて頂きました。いくつか問題点がありました。
・コミットタイトルに「&」や「<」が入っていると、生成されたフィードを正しく読み込めない場合があります。エスケープ処理が必要みたいです。
・feedタグ直下のlink type="text/html" rel="alternate" の欄には、自己urlではなく.atomを除いたurlを入れたほうがいいと思います。
・コミットの表示順がgithubと逆になっていますが、これは意図したものでしょうか?(なぜreverseしているのか)

よろしくお願いします。

perlcodesampleperlcodesample 2014/11/17 11:21 GitHubと違う部分は、全部バグです。修正しますね。

perlcodesampleperlcodesample 2014/11/17 17:20 最新のmasterで修正したので、試していただけますか。

Harbie34Harbie34 2014/12/02 10:06 GitHubには空白を無視してdiffを見るオプションがあるのですが、GitPrepでも実現できないでしょうか?
内部ではgit diffの--ignore-space-change(-b)を使用しているものと推測されます。
 http://qiita.com/awakia/items/6a7028aa46928e376f32

それから最近追加されたフィード生成を使ってみたのですが、リバースプロキシで使用しているせいかlinkやuriのhrefがおかしいようです。
例えば「http://example.com/gitprep/user/repo/〜」の場合、feedタグ直下のlinkの方は正しいリンクが出力されているのですが、各entryの子要素であるlinkやauthor>uriの方が
 <link type="text/html" rel="alternate" href="http://example.com/user/repo/[id]"/>
 <uri>http://example.com/user</uri>
のように「gitprep」部分が抜けてしまっています。何か設定が足りないのでしょうか…?

perlcodesampleperlcodesample 2014/12/02 17:05 Harbie34さん

>GitHubには空白を無視してdiffを見るオプションがあるのですが、GitPrepでも実現できないでしょうか?

できると思います。簡単そうなので、追加したいと思います。

>それから最近追加されたフィード生成を使ってみたのですが、リバースプロキシで使用しているせいかlinkやuriのhrefがおかしいようです。

確認してみます。

perlcodesampleperlcodesample 2014/12/02 18:54 atom feed のほうのURLのバグは、最新版で修正しました。お試しください。

Harbie34Harbie34 2014/12/03 03:03 フィードのリンクが正しく出力されるようになったことを確認しました。
素早い対応ありがとうございました。(^-^)
ところで、現在はURLに.atomを付加したものを手動でフィードリーダーに登録する感じになっているかと思いますが、GitHubのようにlinkタグ(rel="alternate" type="application/atom+xml")が埋め込まれているとブラウザで購読登録するのがちょっと楽になるかな?と思いましたのでご検討ください。

それから空白を無視してdiffを見るオプションの実現方法についてご相談です。
GitHubだと隠し機能のような雰囲気で手動で切り替える必要がありますが、特定のリポジトリは毎回そのオプションが有効になっていた方が便利です。
開発者間でインデントポリシーが違っていたリポジトリがあるもので…。
リポジトリの設定などで有効/無効のデフォルト設定ができるような仕組みもご検討いただけるとうれしいです。m(_ _)m

perlcodesampleperlcodesample 2014/12/03 11:58 >ところで、現在はURLに.atomを付加したものを手動でフィードリーダーに登録する感じになっているかと思いますが、GitHubのようにlinkタグ(rel="alternate" type="application/atom+xml")が埋め込まれているとブラウザで購読登録するのがちょっと楽になるかな?と思いましたのでご検討ください。

 こちら、最新のmasterに追加しました。

>それから空白を無視してdiffを見るオプションの実現方法についてご相談です。
GitHubだと隠し機能のような雰囲気で手動で切り替える必要がありますが、特定のリポジトリは毎回そのオプションが有効になっていた方が便利です。
開発者間でインデントポリシーが違っていたリポジトリがあるもので…。
リポジトリの設定などで有効/無効のデフォルト設定ができるような仕組みもご検討いただけるとうれしいです。m(_ _)m

こちら検討してみます。

Harbie34Harbie34 2014/12/03 12:32 最新版でフィードのリンク確認しました。
どんどん機能アップされて良いですね!(^-^)
今後もよろしくお願いいたします。m(_ _)m

perlcodesampleperlcodesample 2014/12/05 11:06 Harbie34さん

>それから空白を無視してdiffを見るオプションの実現方法についてご相談です。
GitHubだと隠し機能のような雰囲気で手動で切り替える必要がありますが、特定のリポジトリは毎回そのオプションが有効になっていた方が便利です。
開発者間でインデントポリシーが違っていたリポジトリがあるもので…。
リポジトリの設定などで有効/無効のデフォルト設定ができるような仕組みもご検討いただけるとうれしいです。m(_ _)m

 こちら、ご相談ですが、原則はGitHubのクローンにしたいです。リポジトリごとに、有効/無効の実装をしようと思うと、データベースに列を追加する必要があります。データベースへの列の追加はなるべく避けたいです。

 そこで、簡単に観覧できる方法としました「ignore space」というリンクをcommitsのページの上部に表示させたらどうかと思うのですが、いかがでしょう。

Harbie34Harbie34 2014/12/05 12:01 空白を無視するかどうかでdiff表示される量にかなり違いが出てくるので、空白を無視しないdiff表示(大量で重い)→リンククリックで空白を無視するdiff表示となるのは少し使いづらいかな?と思います。

「リンクをcommitsページの上部に表示」というのがどの辺のことかちょっとわかりづらかったのですが、ダイレクトに空白無視diffが表示できる仕組みだとうれしいです。

とは言え、私は使わせてもらっているだけの立場なので、作者様の設計思想におまかせします(^^;

perlcodesampleperlcodesample 2014/12/05 12:19 commitsページの各行に、オプションで、リンクを表示するようにしましょうかね。一度ブランチで作ってみるので、作成した後に、少し試していただけませんか。

Harbie34Harbie34 2014/12/05 18:30 ご検討ありがとうございます。
GitHubからcloneして使わせてもらっているのでブランチでの確認OKです。

perlcodesampleperlcodesample 2014/12/09 20:41 ブランチ space_ignore を作って、そこに実装しましたので、お試しください。
オプションで、show_ignore_space_change_link=1 にして試してみてください。
どうでしょうか。

Harbie34Harbie34 2014/12/10 17:47 ブランチを確認したところ、リンクは表示されましたが空白無視にはならないようでした。
サーバーで直接「git --git-dir=... diff-tree -r -M --no-commit-id --patch-with-raw --ignore-space-change xxxxxx..yyyyyy」を実行してみると--ignore-space-changeのあり/なしで出力は変わるようなのですが…?

リンク表示位置については、ファイル一覧やタグ一覧ページなど、diff表示ページに飛ぶリンクすべての横にあった方が良い気もしましたが、現在の文字列リンクをアイコンリンクなどに変えたとしてもさすがに邪魔ですかね?(^^;
「?w=」に対応していただけるだけでもだいぶ使い勝手がよくなるので、最終的にどこまで対応するかはおまかせします。m(_ _)m

perlcodesampleperlcodesample 2014/12/11 10:03  空白無視にならないバグを修正して、タグページ、ファイル一覧にリンクを追加してみました。

Harbie34Harbie34 2014/12/11 10:37 前回はテストコミットで確認しましたが、今回は実際にインデントポリシーが違っているリポジトリでも確認して問題ありませんでした。(^-^)
ファイル一覧やタグページへのリンク追加もありがとうございます!
他にも探せばdiff表示ページに飛ぶリンクがあちこちにありそうですが(ファイル一覧上部のxx commits、コミットメッセージ、latest commit、diff表示のparent等?)、手動で「?w=」を付ければ空白無視で見られるので問題ないかと思います。
対応ありがとうございました。m(_ _)m

荒 2015/10/11 12:38 gitprep(-1.10)で新規レポジトリの作成時に"Internal error"となり、レポジトリを作成することができませんでした。
こちらの設定不足・設定ミスかあれば教えて下さい。

以下、簡単な経緯です。
1. レンタルサーバ(coreserver)にgitが入っていなかったため、gitの最新版(git-2.6.1)をインストールしました。
2. この記載(https://github.com/yuki-kimoto/gitprep#i-cant-create-repository-and-see-error-message-when-i-create-repository-with-readme )を参考にしてgitのユーザーネームとメールアドレスを登録しました。
> git config -l
user.name=arat
user.email=<mail address>
3. gitprep(-1.10)をレンタルサーバにインストールしました。
4. gitprep.confの設定でgitのパスを設定しました。
;;; Git command path
;;; By default, git command path is automatically detected
;;; from PATH enviroment variable or /usr/bin/git or /usr/local/bin/git
git_bin=/virtual/***/local/bin/git
5. (サーバ名)/gitprep/gitprep.cgiにアクセスしてadminおよび個人用アカウント(arat)を作成することができました。

6. 新規レポジトリの作成に失敗しました。gitprep/log/production.logの内容です。
[Sun Oct 11 09:53:59 2015] [error] /gitprep/gitprep.cgi/_new: Can't execute git init --bare:/virtual/***/local/bin/git --git-dir=/virtual/***/public_html/gitprep/data/rep/####/test.git init --bare at /virtual/***/public_html/gitprep/extlib/lib/perl5/DBIx/Connector.pm line 315

7. なお、ローカルおよびサーバに接続した場合、以下のコマンドであればエラーは起こりませんでした。
git --git-dir=/virtual/***/public_html/gitprep/data/rep/####/test.git init --bare

perlcodesampleperlcodesample 2015/10/13 20:07 どうやらgit 2系を使用した場合に、エラーが生じているようです。GitPrepのgit 2への対応を、今月中くらいには、始めるので、しばらくお待ちください。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/perlcodesample/20130421/1366536119