Hatena::ブログ(Diary)

Fly me to the Juno! このページをアンテナに追加 RSSフィード

2010-05-05

Gitを使っているEclipseユーザが設定しておくと便利な1つの事

EGitなんていうすばらしいプラグインが現在Eclipse.orgで絶賛開発中ですが、残念な事にまだpullやfetchをサポートしてません。なので、他のGitクライアントを併用しながらの開発となると思います。そういうときは下記の設定をしておいた方がいいでしょう。

f:id:kompiro:20100506002908p:image

リソースの自動読み込みですね。僕は開発中、pullはするんですが、ワークスペースに反映し忘れる事がおおいので、設定するようにしました。

2009-06-14

Windows上で複数のOSで開発しているソースをgitで扱うときに気をつけること。

gitさん、あぁ、gitさん。
なぜcheckoutしてるのにずっとmodifiedが取れないの?

何を言っているのかわからないと思うが(略)

修正しているソースを捨てて、リポジトリから取り直したい事ってあるじゃないですか。subversionだと

svn revert

ってしたいとき。gitの場合はこうしてくださいと書いてある

git checkout -- <ファイルパス>

これができなかった。年初のgitのログを見てみると、

windows上でgitを使う際に気をつけること

そのまま使おうとすると改行コードを自動的にCRLFに変換というアリガタメイワクな設定なので、下記のファイルを書き換えること

/etc/gitconfig

[core]
	symlinks = false
	autocrlf = false # autocrlf=true=を書き換えた。
http://d.hatena.ne.jp/kompiro/20090101/1230821387

ってなっていました。お?と思って開発で使っているEclipseを確認すると、CRLFで保存することになってるorzということで、Window -> Preference の General -> workspace で Text File Encodingと New Line file delemiterがあるので、エンコードutf-8、改行LFで設定するといつまで経っても元に戻せない、と言う問題はかたづきました。

さて、core.autocrlfはinputという設定になってます。git config helpでヘルプを見てみると、

core.autocrlf

If true, makes git convert CRLF at the end of lines in text files to LF when reading from the filesystem, and convert in reverse when writing to the filesystem. The variable can be set to input, in which case the conversion happens only while reading from the filesystem but files are written out with LF at the end of lines. Currently, which paths to consider "text" (i.e. be subjected to the autocrlf mechanism) is decided purely based on the contents.

inputとなっていると、ファイルシステムから読み込むときにCRLFをLFに変換し、書き込み時はそのままLFで書き込む、となっているみたいです。

2009-06-13

ubuntuでhudsonを動かすメモ(Git plugin編)

JAMCircleのビルドで使いたいので、Gitと連携させたい。HudsonにはGit Plug-inがあるので、試してみる。すると

[workspace] $ git tag -a -f -m "Hudson Build #34" hudson-JAMCircle-34
FATAL: Could not apply tag hudson-JAMCircle-34
hudson.plugins.git.GitException: Could not apply tag hudson-JAMCircle-34
	at hudson.plugins.git.GitAPI.tag(GitAPI.java:265)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:560)
	at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:521)
	at hudson.FilePath.act(FilePath.java:635)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:521)
	at hudson.model.AbstractProject.checkout(AbstractProject.java:830)
	at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:314)
	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:266)
	at hudson.model.Run.run(Run.java:927)
	at hudson.model.Build.run(Build.java:112)
	at hudson.model.ResourceController.execute(ResourceController.java:93)
	at hudson.model.Executor.run(Executor.java:119)
Caused by: hudson.plugins.git.GitException: Error performing git tag -a -f -m Hudson Build #34 hudson-JAMCircle-34
	at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:302)
	at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:276)
	at hudson.plugins.git.GitAPI.tag(GitAPI.java:263)
	... 11 more
Caused by: hudson.plugins.git.GitException: Command returned status code 128: 
*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

とでる。ビルド前にリポジトリにタグ付けするが、Hudsonの実行をしているtomcat6ユーザーでgitの設定をしていないため、出る模様。tomcat6はログイン不許可(シェルは/bin/false)ってなっている。が、別にビルドシステムなので、システム単位でgit configしたった。

git config --system user.email "kompiro@..."
git config --system user.name "kompiro..."

こうするとうまくいった。

SCPもしたい

Hudsonなんでもあるね。SCPプラグインなんてものもある。それを使って設定した。

2009-02-24

EclipseもGitサポートが待たれていてワラタ

未だ本家ではCVSのみをサポートしているEclipseですが、コミュニティからの突き上げによってGitやらMercurial(HG)やらをサポートせよ!との声が昨年末から急激に上がっているようです。自分もGitユーザーなので、その声には賛同せざるおえません。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=257706

みんなもVoteしよーぜ!