1 :
デフォルトの名無しさん :
2008/07/08(火) 21:38:48
>>1 乙!
archはもう開発されてないらしいから、代わりにmonotoneを入れてはどうだろうか。
前スレではあんまり話題になってなかったけど。
あと、CVSやSVNも
>>2 に含めていいんでない?
お断りします。
perforce, clearcaseは?
まだレス一桁台だから、勝手にテンプレ追加汁
2,3年前までは「SVNはまだ不安定.とうぶんCVS」という感じだったが 気がついたら分散型マンセーなのか
3年前だとSubversionは不安定というところで 2年前だとちょうどこれから普及するの確定といった感じだったかな 2年位前の状況に似てるかもしれないけど Subversionと違って分散型はこれできまりというのがないから普及しないかも Mercurialは使っていて楽だと思ったけど プラットフォーム依存しちゃうのがなんとかならないのかな WindowsでMS932、LinuxでUTF8、EUCというデフォルトエンコーディングの違いがつらい 分散だと特に各自のプラットフォームが統一されないほうが自然だし Subversionのようにソースもリソースもドキュメントも何でもかんでもつっこむという考え方はやめたほうがいいかな
Windows NT以降はUTF-8じゃないんですか?
>>11 デフォルトエンコーディングってのは、ログメッセージのこと?
よく分からないが、Gitはそのまんま入ってるような気がする。
いっしょに使う人たちが決めればいいんじゃないのかな?
>>12 NTはOS内部では積極的にUTF16つかってたけど 表面的にはずっとSJISだよ
>>13 Windowsの入出力インタフェースは各国の糞ローカルエンコーディングに
ほぼ固定されてるようなもので、そんなに運用で融通が利くものではないよ。
UTF-8に統一とか、今更無理ですからw
糞デフォルトエンコーディングと内部的なワイドキャラクタセットとの
変換APIだけは完備されてるから、デフォルトエンコードを使う限り、
Windows上のツールは意識してエンコーディング設定とかしなくても
トラブル無く動くようになってることが多い。
だからそれに合わせてるSubversionみたいな態度は正しいと思う。
このあたりはMercurialの中の人も追従して欲しいものだが・・・
メモ帳で保存するとき文字コードでUTF-8を選べるから、WindowsもUTF-8で処理してるものだと 思ってたけど、違うんかいな
>>15 そういえばSubversionはロケールに合わせて変換して表示してくれるね。
みんなでUTF-8で書きましょう、てことにすればOKのような気もするが、
フロントエンドで対応するのもそう難しくはないだろうから、そのうちどうにかなるんじゃないかな。
EUC-JPとSJISとJISでもめるくらいならUTF-8統一の方がはるかにいいよな。
WindowsのUTF-16からしてサロゲートペアなしのUnicodeモドキだし
Windows NT/2000/XPはUCS2で、VistaになってUTF-16という理解だったのだが。
UCS-2 = 劣化UTF-16
サロゲートペアの扱いが違うんだっけか?
23 :
20 :2008/07/12(土) 14:06:51
基本面しか存在しないからサロゲートもない、と理解してるけど。
>>11 Mercurialは今日び(ry なことが結構ある気がする
ので気に入らない・・・
>>11 > Subversionのようにソースもリソースもドキュメントも何でもかんでもつっこむという考え方はやめたほうがいいかな
何となく Word とか Excel のバイナリファイル突っ込んでもうれしくなさそうなイメージ
Mercurial は
ちゃぶ台返しをしたMacはその点成功したな
gitを勉強するために、チュートリアルをやったあと、
ttp://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html を読んでいるんですが、最初からわかりませんでした。
引用:
> git はファイル集合の履歴を格納するツールとして非常によく考えられたツールです。
> git は履歴を圧縮した集合として格納し、プロジェクトの内容を相互に関連した
> スナップショットとして格納します。
> git ではこれらのバージョンを コミット と呼びます。
> それらのスナップショットは必ずしもすべてが古いものから最新のものに単線で
> 並んでいるとは限りません;その代り、開発ラインが並行して進むことがあります
> (これは ブランチ といいます)。ブランチは分岐し統合されます。
ここで質問なんですが、Gitでいうコミットとスナップショットとは何をさすんでしょうか。
この文章からでは分かりませんでした。
>27 スナップショットはgit commitしたときに保存されるファイル・ディレクトリの内容 コミットはそれに対するポインタとコミットログとその他の付加情報をまとめたもの
>>28 ありがとうございます。
スナップショットは、changesetとは別物でしょうか。
ここで、changesetはファイルの差分の集合です(この説明であってますよね?)。
たしかGitは通常は差分では持ってないはず。 hgは差分じゃないとやだ、ってことでフォークしたんじゃなかったっけか。
hg は clone とは別にブランチが作れるけど、どんな使い道がある? 公式ドキュメントだったかでは、意味がないと言い切ってるし。
>>33 なるへそ。
しばらくいじってたらちょっとした発見。
小さな複数のプロジェクトをまとめて一つのリポジトリで管理する場合
clone するよりも有効かもしれない。
>>34 Gitの場合は最近はデフォでハードリンクするようになってる。
あれ、ちょうど俺が質問しにきたことが、branchそのものかもしれない。 聞きたかったのは、hgでサーバ上に中央リポジトリを用意して共同開発をする場合に 複数のバージョンを平行開発する場合は、中央リポジトリを平行開発の分だけ 用意(clone)しないといけないのかってことなんだが。 branchを使えば1つのリポジトリ内でも分岐を作れるのね。
37 :
29 :2008/07/15(火) 01:46:45
>>30 ありがとうございます。
Gitは、ファイルをまるごと保存しているということでしょうか。
ということは、Gitはchangesetは保存しておらず、差分はスナップショットから計算するということでしょうか。
たしかに .git/objects 以下にそれらしいのがあるんですが、これは差分じゃなくてファイルそのままということでしょうか。
差分じゃなくて、丸ごとのメリットってなんだろうな
>>38 ロバスト、堅牢性だな。
コミットの影響範囲を小さくし、ファイルシステムが不安定だったとしてもレポジトリ全体の破綻を食い止める。
>>36 共通(基本)部分はどうやって管理するつもり?
Mercurial のキー認証を使ってのアクセスでコマンドを hg に限定したい場合、 SSH_ORIGINAL_COMMAND を hg で始まるか調べて実行するスクリプト 書くしかないでしょうかね。
>>42 GitでホスティングするのにGitosisってのがあるんだけど、
これPythonなので、hgにも応用はしやすい気がする。
44 :
42 :2008/07/16(水) 13:15:31
なんかちょっと変でしたね。 Mercurial のキー認証を使ってのアクセスでコマンドを hg に限定したい場合、 ↓ SSHのキー認証を使ってのリモートアクセスで、コマンドを hg に限定したい場合、 ですね。 Git も Python も興味なっそんぐだなぁ…。それだったらシェルスクリプトでも書くかなあ。
>>31 ローカルリポジトリで作業中は、ちょっと修正したらガンガンコミット。
ひと段落着いて、ビルド通って、テスト通って、ドキュメントの整合取ったら、
作業開始から完了までのpatchを取る。
んで、中央リポジトリからpullして、tipをそっちに移して、patchを当てて、
まじめなコメントとともにcommit+push。
そーすると、手元でやった粒度が細かすぎるログを中央に送らずに済む。
ちょっとした修正はローカルのRCSにcommitしてる リポジト作らなくてもいいし ちょっと別名コピーして取っとく代わりに
47 :
43 :2008/07/17(木) 03:15:39
>>44 説明が足りなかったかも知れない。
GitosisもSSH_ORIGINAL_COMMANDでSSH経由でgitコマンドしか実行できないようにする、
というやり方をしているので、参考になるかもしれない、ということです。
hgと同じPythonだしね。
まあシェルスクリプトで自作しても同じような感じにはなると思うけども。
48 :
44 :2008/07/17(木) 04:26:36
>>47 いや、ちゃんとそのニュアンスで伝わっておりましたよ。
Git も Python も興味なっそんぐなんで、取ってきてまで見る気しない
ということで…。
>>42 hg専用のSSHアカウントつくってauthorized_keysのcommand=で制限すれば
いいんちゃうの?
hg-ssh使って。
>>45 hgってpushするときに送るチェンジセットを選べない(だよね?)から、ローカルで開発しているデレクトリ以外にマスタから
pullしてパッチあてて、ci+pushするだよね?
hg branchの話だろ?
問題提起(?)したものですが、
>>34 が自分なりの回答かな。
たとえばファームなんかは一つのプロジェクトは小さいから、チップ単位で
カテゴリ(=リポジトリ)とするのはそんなに不自然なことじゃないと思う。
細かい単位で別けないのは、 status 見るのが面倒になるから(Tortoise Hg 使用前提)。
そこで一つのプロジェクトで分岐したいとき、ブランチの出番じゃないかとなるわけだけど、
皆さんはどういう管理をしてるのかな。
ふっふっふ、 TortoiseHg-0.4rc3 ダウンロード一番乗り! …と思ったら、カウント増えねーな。なんだよ。 さて、入れてみようかね。
おお、報告サンクス。俺も入れてみる。
MerculialのリポジトリのWebインターフェイスがかわっているんだけど どうやったらできるの?
Mercurialのdiffって変更ファイルの逐次表示はできないのか……。 あと誰か彼等にcursesの存在を教えてやってください。Windowsじゃカラー表示できないよ。 あと5年くらいはSubversionかな……。
TortoiseHg、もうシェル拡張じゃない方がいいような気もするんだが…。 Tortoise シリーズにそれは許されないんだろうな。 まあまだ 0.4 未満だしな。
Mercurialでレポジトリを分割する上手い方法がありますか? レポジトリが大きくなってしまったので、サブディレクトリ毎に レポジトリを分割したいのですが。履歴も引き継ぎたい。 ぱっとググってみたけどそれらしいのは見つからず。
>>59 まだ現状では細かいプロジェクトを効率よく管理する方法はみたことないし、思いつかないねえ。
履歴を残す必要があるなら、clone して、不要なディレクトリ消していく、ぐらい?
この辺、CVS はツリーの好きなところから取ってこれるし、modules ファイルを駆使すれば
ある程度好きなように組み合わせられる。気軽に update -d ができなくなるけど。
これがあるから、なかなか CVS 捨てられないんだよね。
簡単に CVS 捨ててしまう人は modules ファイル使ってないんじゃないの?
61 :
59 :2008/07/28(月) 21:23:14
>>60 やはりなさそうですか。clone&削除では不要な履歴が残って
気持ち悪そうです。
SVNから移行しようかと使い始めてみましたが、それなりに
痒い所に手が届かない所が見えてきてちょっとガッカリ。
monotoneってどうしてマイナーなの? initial pullが遅すぎるっていう弱点はあるけど、 使い方分かりやすいし署名もできるのに。
ほいほい乗り換えるものじゃないんだから 他の物より優れてる点を挙げろ
mercurial, git, bazaarの比較はあってもmonotoneはほとんど聞かないな。
65 :
デフォルトの名無しさん :2008/07/31(木) 01:20:36
>>65 それは SQLite使ってるから?
monotoneは最初のpullがとんでもなく遅いという弱点があって、
それを避けるためにpidgin はデータベースを配布してる。
そこで単一ファイルの SQLiteが便利ってことかもしれない。
リポジトリが壊れたことはないけどな SQLiteのDBってそんなに弱かったっけ? 今は日本語のファイル名をみつけた瞬間エラーになってくれるのにちょっと困ってる
VCSの共通規格ってないものかな。 例えば、commit, checkoutあたりは名前が違っても、どんなVCSにも同じ働きのコマンドがあるだろうし、 VCSを使ったアプリケーションで共通規格を基準に作れば、企画に沿ったVCSであれば どんなソフトでも使えて便利だと思うんだけど・・・。 もしかして、海外でだれかやってるかな?
>>68 逆にユーザインタフェースはどうでもいいから、コミットオブジェクトとマージポイントの
互換性が取れるようになって欲しいな。
git使ってるんだが、Subversionとやり取りすると疲れる…。
>>68 EmacsやEclipseは一応複数のバージョン管理システムに対して
統一的な操作を提供しようとしてる
>>68 そう言う UI 作ればいいだけなんだろうけど、そもそも複数のバージョン
管理システムを併用することってあまり無いと思うが。
>71 仕事を外部に丸投げしたら/しようとしたら、違うシステム使ってた場合とか。
どんな仕事の投げ方してるのか知らんけど、普通完成したコードなんかを 納入してもらうからバージョン管理システムなんか関係ないだろ。 逆に派遣とかで色々な職場を渡り歩くような状況だとありうるのかもしれ ないけど、その場合バージョン管理システムなんかより開発環境の差異の 方が大きそうだし。 そもそも、バージョン管理システムで日常的に使うのは「チェックアウト」 「チェックイン」「状態表示」「差分表示」「ログ表示」ぐらいだろうから、 ちょっと使ってりゃ覚えると思うが。
>>73 うちはシステム部分だけで、デザインなんかは別の会社がやるから、
元請けのsvn介してやり取りしてるな。メールうざいし。
文言変更だとかはテスト部隊がやるし、設計関係のドキュメントも別の会社の人が
アップデートするから、中央リポジトリが無いとやってられない。
完成したコードを納品ってのは、10年前はよくやったけど(その前に実機で試験しに
ソース持って出かけてったり)、最近はそんな悠長なシステムはやってないな。
>>71 人によってはSubversionが一番使い慣れてるとか、hgが良いとか、Gitが好きとか、
いろいろあると思うが、ようはそれらの間ですっきりマージさえできれば、
誰が何を使ってやってようが問題ないわけで、、、どうにかなって欲しいなぁ。
昔はソースを客に提出しないことが多かったな 特にプレステとかサターンの案件だと 自分の周りだけかもしれんが
>>74 それは、作業外注みたいなイメージで
>>73 の派遣みたいな感じだろ。
悠長な仕事かどうかより 10年前よりお前さんの会社の立場が弱くなっ
てるだけだと思う。
77 :
デフォルトの名無しさん :2008/08/02(土) 14:52:02
>>76 システム部分しかやりたくないし、開発に専念したいから、自社で作って、
リモートでコミットして納品してるだけ。
会社の立場が弱かったら常駐させられるんじゃない?
ちなみに10年前は別の会社だった。制御系が多かったから仕様書だけあれば
それでよかったが、今はWebやってるからどうしてもデザインと合わせないと
いけないし、クライアントからの雑多な変更も多い。
まあ会社の立場とかはどうでもいいんだけど、
ようはどれだけ他の組織とコラボしないといけないか、ということだ。
自分の周囲の人たちだけで完結するんなら、1つのバージョン管理システムを強制すれば
悩みはないだろうが、もっと自由になりたいんだよな。
78 :
77 :2008/08/02(土) 15:01:03
ちなみに自社ではGitを使ってて、向こうからこっちには逐一マージしつつ、 こっちからは納品日にいっきに客先にマージするんだが、 ここのマージがけっこう苦しいことがあってね。。。 svkでどうにか凌いでるが…Subversionキツいっす…
>>78 git-svn 使えば svn との同期以外は git側で処理できるから楽なんじゃね?
何故 svk?
>>77 いや、君が現状に満足してるなら別にいいんだけど。
>>79 git-svnは使ってるけど、svn側に常にrebaseしてあげないといけないのが痛い。
公開してるGitリポジトリはrebaseできないんで(すると使ってる人全員に影響が出る)
けっきょく個々人はgit-svn、svnから先のマージはsvk使ってる。
Subversion同士でマージするのはsvk賢いよ。重いし、たまにマージうまくいかないが。。。
git-svnもsvkみたいにsvnプロパティでマージポイントの情報を残したりとか、
それかsvn1.5のmerge trackingでどうにかなったりとかするのを期待してるかんじ。
svnと同期するbranchを決めて、通常の作業はそれ以外のbranchにすれば いいだけのような気がするが。
>>82 branchってGitのbranchのこと? git-svnの話?
うち相手なんてバージョン管理システムの存在すら知らねえし
85 :
デフォルトの名無しさん :2008/08/03(日) 13:45:31
IBMのClearCaseは信じられんぐらいカス
「IBMの」なんていわんでくれ。あれは、IBMがお情けで拾ってあげた旧Rational社員のレゾンデートルなんだから。
SubversionみたいにMercurialも本でないかな
Mercurial の時代はまだ先なのか
うちで使おうかという話が出てるんだ、ClearCase。 どうカスなのか教えてくれ。
使い方でなくて管理の仕方なんだよな重要なのわ
そうだけど アホな管理の仕方してても 後から挽回しやすいと気軽に使えるよね。 cvsの頃はディレクトリ関係でいつも気を使ってた。
CVS導入します
好きにしろ
コンビニの人じゃないのか
じゃあ俺はRCS
退行で対抗すればいいというものではない。
>>96 まだネタに使えるほど堕ちてはおらんぞ。
Subversionで管理しているソースコードをローカルではGitを使って細かく管理して 最後にまとめてSubversionのリポジトリにコミットという使い方をしたいんだけど (Gitでのブランチや小刻みなコミットはSubversionのリポジトリに上げたくない) どうしたらうまくいくんだろう git-svnはそういう用途じゃないよね?
>>101 ローカルではRCSで細かく保存して
きりがいいところでSubversionに上げてる
>>101 まさにそういう用途のためのgit-svnなんじゃねーの?
mercurialとsvnって組み合わせでのやり方はチュートリアルにある
>>99 昔、/etcとかの設定ファイルを保存するのにRCSを使ってた。
今、同じことをするのにmercurialを使ってる。
hg clone → hg update で簡単にバックアップを取れるのが意外と便利。
106 :
105 :2008/08/06(水) 23:08:49
×update ○pull
RCSは単発の設定ファイルとかで履歴とっておきたい時によく使う。 例えばwindowsのなんかのアプリの設定ファイルで 昔の設定とかメモも残しておきたいけど コメントアウトしておくとごちゃごちゃになるとかいう時、 保険の意味でRCSで残しとく。
>>101 >>103 の言うとおり、そういう用途で使ってるよ。
git-svnに雑多なコミットを上げたくない場合は、svnに送信される予定のコミット
(git-svn-idが付いていないコミット)を、git cherry-pickとかgit merge --squashとか
git resetとかで作り直せばいい。
ただし、git svn dcommitした後は、今までのブランチは捨ててdcommitしたブランチから
続きをやらないと、次にdcommitするのが難しいと思う。
異常に使い易く、軽く、頭が良く、拡張性があるバージョン管理システム Bazaar (bzr) のスレです。
Bazaar はスマートな為、例えば、プロジェクトディレクトリ下の add や commit は自動的に一括でやってくれます。
$ mkdir myproject
$ cd myproject
$ mkdir subdirectory
$ touch test1.txt test2.txt test3.txt subdirectory/test4.txt
$ bzr init
$ bzr add
added subdirectory
...
added subdirectory/test4.txt
$ bzr commit -m "Initial import"
だってよ。
Bazaarでバージョン管理【bzr>git,svn,cvs】
http://pc11.2ch.net/test/read.cgi/tech/1218083381/
Linuxで大量に設定ファイルがある場合はmercurialがいいのか
111 :
デフォルトの名無しさん :2008/08/07(木) 17:21:41
>>101 merge --squash使えばいいだろ
>>110 ルート(/)で一発 hg init カマしておけば、後は管理ディレクトリができないからよさそう。
今は CVS 使ってるんだけど、apache の一部の設定は、ディレクトリがある限り潜っていって
CVS の管理ディレクトリのファイルまで処理しようとしてエラーになることがあるんだよね。
次からは Mercurial 使おう。
bazaarって海外だと使われているみたいだけど、 国内だと全然使われてないよね? 何か問題でもあるの?
>>113 日本人は英語を読まないから
日本語の解説が豊富なほうに転ぶ。
>>112 凄いこと思い付くな。問題も出そうだが面白そうだしパクらせてもらうよ。
ちょうど設定ファイルの管理用にRCSでもインストールしようかと思ってたところだった。
おれは cd /usr/local/apache/conf mkdir RCS ci -l httpd.conf vi httpd.conf お手軽
× 日本人は英語を読まないから ○ 日本人は英語を読めないから
○ 日本人は英語を読まないから ○ 日本人は英語を読めないから
読まないから読めない。 子供の英語教材を聞き流しながらも一緒に聞いて(見て)いると、 結構わかるようになってきた。 真剣にやれば身につきそうな気がしないでもない。
そりゃ彼の国では子供でもできるんだから 決して難しいわけじゃないだろ 実際あちらで半年位一人で暮らしてれば否応なしに使えるようになるし
基本的に英文文献をよむ必要が無いから読まなくなったんだよね。 でも今のトラ技等の技術誌の薄さから言ってあと数年後くらいには英語文献読めないと死ねると思う。 そうなると読む方も必死なので読めるよ。(昔の蘭学者と一緒だね)
manページとかBBSならなんとか読めるんだがなぁ チュートリアルを超えてエッセイになると、もう頭に入らなくなってくる
かなりの高等教育まで日本語オンリーでいけちゃうもんな ってなんでこんな話してるの?
トラ技のいい加減な記事に何度もだまされた まぁ自分が悪いんだが
126 :
デフォルトの名無しさん :2008/08/10(日) 02:43:40
質問です。 WindowsXPで使いやすいGUIを備えた分散リポジトリ型のバージョン 管理システムでお勧めなものってありますか? 商用製品でも構わないです。
127 :
デフォルトの名無しさん :2008/08/11(月) 19:51:41
勝手にシェル拡張をしないSubVersionのWindows用クライアントを教えてください
svn
131 :
126 :2008/08/12(火) 00:38:57
>>127 ありがとうございます。検討してみます。
133 :
デフォルトの名無しさん :2008/08/12(火) 12:09:54
Windowsでmsysgit試しています
http://code.google.com/p/msysgit/ リポジトリをつくり、適当にテキストを1行変更して git commit -a しようとすると、
You have some suspicious patch lines:
> git commit -a
*
* You have some suspicious patch lines:
*
* In 1111.txt
* trailing whitespace (line 1)
1111.txt:1:テストgemogegeg
などといわれてコミットできません。
Capi’s Corner ≫ Blog Archive ≫ Git on Windows: “You have some suspicious patch lines”
http://www.dont-panic.cc/capi/2007/07/13/git-on-windows-you-have-some-suspicious-patch-lines/ こちらのサイトで、 .git/hooks/pre-commit の
if (/\s$/) {
bad_line("trailing whitespace", $_);
}
をコメントアウトすればおkということがわかり、実際に大丈夫だったのですが、
毎回書き換えるのが面倒です。どうにかならないでしょうか?
\Git\share\git-core\templates\hooks\pre-commit.noexec
テンプレートがかと思ったのですが、変更しても git init した後に変わりはありませんでした。
コメントにある git-config core.autocrlf true git-config core.safecrlf true だと駄目なんですか?
136 :
デフォルトの名無しさん :2008/08/14(木) 00:41:01
137 :
デフォルトの名無しさん :2008/08/14(木) 09:06:39
>>134 上の方にそれ使えって書いてあったね。サンクス
>>136 ハイハイ
分散型だったらそこはPUSHに読み替えようね
そう言うやつはまともに相手しても疲れるだけだよ
mercurial-1.0.2.tar.gz 13-Aug-2008 17:23
>>138 プッシュとコミットは全然別物だろwww
142 :
デフォルトの名無しさん :2008/08/14(木) 17:47:16
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
http://gacco.o0o0.jp/ http://yutori.2ch.net/test/read.cgi/news4vip/1218673130/ http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/ 興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
*サーバー側
言語はRubyかPerlの予定ですが、Perlが有力候補。
・チャット
定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
通信するときのフォーマットは未定。
・ログイン・アカウント管理
ログイン認証、各アカウントの点数などの管理。データベースは未定。
・お絵描き
未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
*クライアント側
はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
サイトのデザインを考えてくれる人、作ってくれる人募集中。
できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
144 :
デフォルトの名無しさん :2008/08/17(日) 01:33:54
hgkをpythonで書き換える予定はないのかな?
亀hg 0.4 正式版が出たみたいだけど、 ログ見る限りでは rc4 からそう大きな変更はなさそう。 気が向いたら入れてみるか。
diffしたときに表示される @@ -0,0 +1,1 @@ みたいなのってどういう意味なんですか
アリ(´▽`)ガトウ
SCMのコマンドを使ったり、そのソースコードを参照することなく、 リポジトリのデータから、管理しているファイルの内容やログを 完全にとはいかなくても、ある程度取り出すことができるSCMはありますか?
つ[rcs]
cvsもだな。
RCSとCVSはリポジトリの内容がすべてテキストファイルで構成されてるんだっけか?
バイナリファイルのリポジトリバージョンを覗くとえらいことになっている。
暇だったので、主だったバージョン管理システムのリポジトリの形式を調べてみた fileコマンドで調べた程度なので、大した調査はできていませんが… 間違いがあったら、指摘よろ RCS :テキストファイル CVS :テキストファイル Subversion :テキストファイル、形式不明のファイル(fsfs?) Git :テキストファイル、形式不明のファイル Mercurial :テキストファイル、"raw G3 data, byte-padded"という形式のファイル、形式不明のファイル Bazaar :テキストファイル、gzipされたテキストファイル、1つだけ形式不明のファイル Darcs :テキストファイル、gzipされたテキストファイル RCSとCVSは、ファイルの差分の表示形式も同じで、これらのリポジトリからファイルを復元するのは容易。 Subversion、Git、Mercurialは、独自形式のファイルに主だったデータを収めていると思われるので、 これらを解析するのに手間がかかる?Mercurialは raw G3 data 形式のファイルが展開できれば、 ある程度リポジトリの内容を理解できるかもしれない。 BazaarとDarcsは、ほとんどすべてのデータが(gzipされた)テキストファイルに収められているので、 ファイルの内容を復元しやすい。特にDarcsは全てテキストファイルがベースで、 処理速度の問題のためだろうが、コミット時のファイルがそのままの形で収められているので、 gunzipができれば各段階のファイルの復元が可能。
何のために調べているかわからないけど SubversionはFSFSファイルシステム(非DB)、又はBerkeley DBを使っている
G3ってファックスが使ってる画像フォーマットの名前だな。 たまたまマジックナンバーが一致して誤判定されただけと思われる。
解析するよりもソースを見ればいいんじゃないか?
TortoiseHg-0.4.1.exe
160 :
154 :2008/08/24(日) 23:21:09
161 :
154 :2008/08/24(日) 23:27:20
>>160 俺はネトゲハックでやってるぞ。
アセンブラコードを読み込んでC言語のコードを出力する逆コンパイラを自分で作って、
その出力を手動で整形して見やすくした。
それを見ながら通信プロトコルを解析してオリジナルのサーバを作った。
____ /__.))ノヽ .|ミ.l _ ._ i.) (^'ミ/.´・ .〈・ リ クローン鯖はわしが作った .しi r、_) | | `ニニ' / ノ `ー―i
git-1.6.0 gitのたくさんあったコマンドがパスから消えちゃったよ。 deprecatedだったんだな、だいぶ前から。
165 :
デフォルトの名無しさん :2008/08/25(月) 22:21:30
167 :
デフォルトの名無しさん :2008/08/27(水) 20:24:17
>>133-134 You have some suspicious patch lines:
の同じエラーがでます。
git-config core.autocrlf true
git-config core.safecrlf true
しても、同じようなエラーがでます。(エラーがでる行数がなぜかかわっただけ)
解決する方法はないのでしょうか?
168 :
デフォルトの名無しさん :2008/08/27(水) 20:37:39
>>167 一時はうまくいきました
該当ファイル(.gitignore)の行末にスペースが入っていたためでした。
しかし、.gitignoreはよいのですが、普通のテキストで行末にスペースを入れたいときに
このままでは困ってしまいます。
結局、
.git/hooks/pre-commit の以下をコメントアウトするしかないのでしょうか?
if (/\s$/) {
bad_line("trailing whitespace", $_);
}
170 :
169 :2008/08/27(水) 21:03:18
171 :
デフォルトの名無しさん :2008/08/28(木) 01:25:38
gitで日本語ファイル名を使ってみたのですが、 git status, git show, gitkなどで軒並み文字化けするのですが、こんなものでしょうか? 日本語(というかUTF-8N)でのコミットログはnkfとかlv通すとOKみたいでした。 一応、日本語ファイル名を入れたリポジトリを他ディレクトリに clone して pull しても、 きちんと日本語ファイル名が再現されるようではあるのですが・・・ 「噂が怖いソフト」とかでも大丈夫なところからsjisで処理しているわけではないような気がします。 UTF-8のファイル名の環境の皆さんはどうですか? git: 1.5.6.4 cygwin
来年から働く学生です バージョン管理システムくらい覚えとこうと思うんですが、 いくつか種類あって、どれやろうか迷うんですが、 (会社では何使ってるか知らないので) 基本的なシステムの部分はすべて同じなのでしょうか? 同じだったらどれからでも良いかなって思うんですが
trac + svn
>>173 cvsがすべての基本
一番よく使われているのはおそらくsvn
>>173 昔から使われていればcvs
今一番多いと思われるのはsvn(cvsから移行するツールがある)
昨今はやりの分散管理方だとどれも一長一短なので会社の方針による(概念はどれも同じところを目指している)git,hg,他
ただsvn+svkは割と多いかもしれない(svkはローカル変更用にして社内のsvnに送る前に細かく手元でコミットする使い方)
まぁ、ぶっちゃけどれでもいいからログをちゃんと書いてソースの整合性をとれるならどれ使っても迷惑は掛けないと思うので自分の趣味で何か使ってみるのが好いだろう。
VSS使ってそうな予感
CVS,VSSはいくらなんでも古臭すぎ。 もし内定もらってるなら電話して社内でどんな言語やBTSを使っているか、 どんな勉強したらいいかを聞いてみたら。
えいや、と移行できなくて、まだCVS使ってるって所も 無くはないよ。
vss → svn移行ツールは有り難いんだけどえっらい苦労した
あ、それウチだ。 それと組み込み系だと大手メーカーでも存在さえ知らない場合も。 それとか、組み込み系の請負会社の人に聞いてみたら社長が無駄金だから買わないと言ったという話も聞いた。 ま、V$$を買いたいという話だったからポシャってヨカタと思うが。 まだWinCVSのんがマシ。
VSSは現役だろ
ほぼ消えつつある。
>>182 こないだロシア軍特殊部隊が使ってるのがテレビに映ったな
>>173 会社で必要なのは、変革する環境に即応出来るスキルなので、
どれから始めても大差ない。
自分に見合ったと思う、環境から始めればよい。
今の自分にとって、資料・環境が整えられやすい・かみ砕きやすい所から
始めてはいかが?
>>185 そういう事ならあえてRCSがいいんじゃないかと思ってみる。
Unixが手元にあるなら、だけどね。
リポジトリのinitとかimportとか面倒な事はとりあえず置いといて、ci, coを
何度かやってみて感覚をつかむのと、,vファイルを直に見られるのはVCSが何を
しているのか知るにはとてもいい材料だとオモ
ま、あっという間に卒業するだろうけど、その先は好きなのに移ればいいし。
>>186 自分はリポジトリに入れるまでもないファイルはローカルでRCS使ってる
> 自分に見合ったと思う、環境から始めればよい。 はじめのうちは、これがわからんのだよね。 まったく知らないんだから、自分に見合うもクソもない。 ちなみに、俺はみかままの本見て CVS から入った。 (本当は VSS なんだけど、その履歴は無かったことにしとく) リポジトリがあって、そこからワーキングコピーを取り出して、 編集してコミットという基本はどれも大して変わらんと思うから、 シンプルな CVS は悪くないと思う。 あと、前にも書いたが、ディレクトリ管理しないことを逆手に取った(?) modules ファイルの機能は、ほかのシステムではみたことないねぇ。 VSS にはファイル共有があるけど。
>>188 黒歴史ワロタ
うん、modulesに限らずcvsの柔軟性はいろんな時に助かる。
今のところ、他のVCSに移れる気はしないな。
他社プロジェクトなんかでほかのを使ったりはするけど、自分がマネージャを
やる時は全てcvsだ。
今からならMercurialだな
git と比較して Mercurial の方が良い点ってどんなところ?
今からならBazaarだろ
winならMercurial
rcs知っといて損はないんじゃないの。
diffとpatchは?
197 :
173 :2008/08/29(金) 05:04:34
ご回答沢山頂き、ありがとう御座いました なんかスレ見てて略語ばっかりでびびってたんですが、 回答で出して頂いたものをググりつつ、理解が深まりました とりあえずCVSをみてみようと思います
>>197 CVS,Subversionはみておくとして
入る会社で使ってるの聞いてみては?
ClearCase,Perforceとかは知っている範囲でも使ってるとこあるなぁ。
SunのTeamwareはMercurialに移行しつつあるんだとして
MSはVSS使ってたりするのかな?(強制デバッガ的な意味で)
いずれにせよ、集中型と分散型の2つにだいたい分類されるから
そのポリシーの違いを覚えておけば細かい違いは実務中に覚えられる。
これからは分散型でしょ。 V$$は×
>>199 VSSの強制ロック使う会社もあるからなぁ
そういう会社は終わるでしょ。
VSSはVSに統合されていたのが唯一の強みだったな。 各種アドインが出来てからそのメリットも消えたが。 プロジェクトをまたがるファイルの共有機能は便利だったな。
>>202 > VSSはVSに統合されていたのが唯一の強みだったな。
逆にそれがウザいと感じるのは俺だけではないはず。
MSも今はVSS使用は推奨すらしてないでしょ。 もう終わった物。 未だに使ってる企業はMSべったりとかじゃなく技術無い企業。
マイクロソフト自身がcvs使ってるらしいからね…
TortoiseHg 0.4.1に上がってたので試してみたが、 依然としてCommit Toolで日本語ファイル名が化けるね。 化けるの無視すれば使えるし、 それ以外では何も問題ないんだが、早く改善されないかな。
文字コードがそれぞれバラバラのファイルでも大丈夫なものなんですかこういうのって? 一応統一しておいた方がいいみたいな書かれ方してて、大丈夫なのかどうか分かるらなくって CVSなんですけど
文字コードを統一した方がいいのはどのSCMも同じ
cvs(RCSも)はコメントが実際のファイルに埋め込まれるようなものだから、 ファイルと環境のエンコードが違うと泣きを見ることになりかねない。 Subversionはそのあたりは何とかなるけれど、同時に扱うファイルのエンコードが違うとやっぱり厄介。
VSSはSCCSベースでしょ。 "SCCS"って文字列自体が、このスレで初出なくらいだ。
UNIXでしか使えないし。
このスレいつも思うが略語多すぎでうけるw
キモイですね、申し訳ない
世の中がそうだからね
サブバとか言おうぜ、スタバみたいじゃん
コマンド名って認識であんまり略語って思ってない
日本男児たるもの全部漢字に直して語ろうぜ
副版
水野亜美
222 :
デフォルトの名無しさん :2008/08/31(日) 16:28:04
bazaar 1.6 release
221の解説たのむ
御事割縞酢
majika!!arigato
>>165 > GitはGzipじゃないか
Git 1.5.2.5 を使ってるが
gzipが見当たらないんだが
228 :
デフォルトの名無しさん :2008/09/02(火) 19:00:41
svnからgitへのリポジトリの移行って可能なんでしょうか? どのようにしたらよいものか・・・ 操作性の移行的な解説はよく見かけるのですが
230 :
228 :2008/09/02(火) 19:19:10
住民の基本はほうれんそう
いつまでもSubversion使わないで。
なんで? SVN最高じゃん サーバーとネットワークで繋がっているのならば
じゃぁなにを使えばいいのさ!CVS?
235 :
デフォルトの名無しさん :2008/09/03(水) 22:56:46
つ(ここでLinusのCVS罵倒コピペ)
>>235 罵倒したのはSubversionに対してじゃなかったか?
>>236 まあ「better CVSっていう出発点から間違っている」というのは
同時にCVSに対する罵倒でもあるね。
238 :
デフォルトの名無しさん :2008/09/04(木) 09:16:35
何十年も(過大表現)運用された後でほざいても説得力ないねえ。 出てすぐに「(具体的にここが)これではダメだ。」とか言ってたならすごいけど。
明らかに用途に合ってないのに信者が使え使えうるさかったんじゃねーの。 で、ぃぬsがぶちきれたと。
>>240 ありそうw
svn公式も「Linuxの次期VCSにsvn勧めんな用途が違う」って書いてたくらいだから、勧めちゃう人多かったんだろうな
整備が進むネット接続環境と裏腹に需要が高まる分散管理システム。 なんかジレンマのようなものを感じる。
offlineで使えるというのは、分散型SCMの副作用だろ。 本質的には、ネットワーク上のC/SモデルとP2Pモデルの違い。
いいや、ほとんどの分散型SCMはオフラインでも使えることを想定して設計されている。 だから本質の一部だ。
>>244 オフラインでも使えることを想定して設計されているのはSVKぐらいだろwww
SVKには3回挫折したので次はMercurialにしようと思います
247 :
デフォルトの名無しさん :2008/09/06(土) 23:27:47
で、gitとhg、どっち使えばいいのよ?
bzr
使わない
あるファイルを一から書き直したい場合、どのようにしていますか? プログラム言語をそもそも変えて書き直すという場合もあると思うのですが、 どのようにコミットすると、他人にも分かりやすいバージョン管理になるのでしょうか? 例えば、 ・そのファイルを空にしてからそのまま上書きする(空のファイルをコミットする or しない?) ・そのファイルを remove してから、新しく add し直す
>プログラム言語をそもそも変えて書き直すという場合もあると思うのですが、 もはや別プロジェクト(別リポジトリ)だろ・・・
>>250 履歴がつながりにくくなるから一旦空にするとか新しく add するとか余計なことはやめてほしい。
>>251 PerlからPython,Rubyとかあるだろ
一旦,空にしたのをコミットして,ログにスクラッチから書き直すことを宣言するかな。
254 :
デフォルトの名無しさん :2008/09/07(日) 20:02:20
Mercural用のグラフビューアーってhgkしかないの? tcl/tkをインストールしたくないんだが
つい最近svnを使い始めたのですが バージョン管理システムにおいて文字コードが混在したり途中で換わったりした場合に起こることって 文字化けぐらいだと思ってて大丈夫ですか? windowsとlinuxで使ってるのでうっかりすると混ざることもありそうなんで、気になっています それ以上のなにかものすごいやばい状態を引き起こしたりするのでしょうか
darcsとTrac使えるところはないかね?
>>256 svnスレへどうぞ。文字コードはクライアントの使い方を間違わなければ大抵大丈夫。
寧ろ、改行コードがぐだぐだにならないように注意。
>>260 さんくす。じゃあ、それのためにCL勉強すっか。
しかし、darcsの日本語Wikiひでー事になってるな。
267 :
261 :2008/09/09(火) 18:56:01
268 :
デフォルトの名無しさん :2008/09/10(水) 17:50:17
>>268 httpsでもないのになんで証明書の期限切れとかいう話に?
>>268 外野が真贋答えてもそれ自体しんじられないと思うが?
ssl証明書でウイルスチェックもできるのか 勉強になった
>>271 サイトを成りすまして、ウィルス入りのファイルとして配布している可能性もある。
SSL証明書の有効期限切れということは実質的にサイトの安全性を保障するものが何もないということなんですよ。
おまけにダウンロード先はdarcsのwikiに載っていたものなので、誰でも書き換えられる可能性があるわけです。
MercurialのリポジトリをGitに変換するのってできますか。あるいはその逆。
小ネタをひとつ。 Mercurial なんかで、細かく分かれたたくさんのリポジトリを一括操作するための苦肉のスクリプト。 bash 用。俺は「hgall」という名前で使ってる #!/bin/bash HGREPOS=".hgrepos" if [ -z $1 ]; then echo "usage:" echo " hgall [status|push|pull]" echo "" echo " And set repository list to \"\$HOME/$HGREPOS\" file." exit 0 fi if [ $1 != "status" ] && [ $1 != "push" ] && [ $1 != "pull" ]; then echo "Command is \"status\" or \"push\" or \"pull\"." exit 0 fi if [ ! -e "$HOME/$HGREPOS" ]; then echo "$HOME/$HGREPOS not exist." exit 0 fi COMMAND=$1 (つづく)
(つづき) function checkall { while read reppath; do if [ -z "$(echo $reppath | grep "^\s*#")" ] && [ -e $reppath ]; then case $COMMAND in "status") cd $reppath echo "[$reppath]" hg status | grep -e ^[^\?] ;; "push") cd $reppath echo "[$reppath]" hg push ;; (まだつづく)
(つづき) "pull") cd $reppath echo "[$reppath]" hg pull ;; esac fi done } checkall < "$HOME/$HGREPOS" (おわり) やたら分かれて書き込んだのは、スペースを にしたため。 見てもらったらわかると思うが、ホームディレクトリに「.hgrepos」というファイルを作ってその中に リポジトリのパスをつらつらとフルパスで書いておく。~(ティルダ)が展開されないのはよくわからない。 コマンドは status、push、pull だけだが、なんか変な表示が出たらそのリポジトリに行って細かい操作をする。 意外と重宝している。ほかにいい方法あったら教えてちょうだい。
278 :
デフォルトの名無しさん :2008/09/12(金) 17:50:58
ひろみちゅタンの日記の更新直後にはよくある
278は普段ひろみちゅの日記なんてアクセスしたことないんだろうな。
あんな大してスキルもないセキュリチィ馬鹿の日記なんて、読むに値しない。 女子高侵入なんてキャッチーなキーワードであざとい宣伝、プロパガンダ。こざかしいんだよ。
>>275 なんでそれをPythonで書かないかなー
自分で書けや
monotoneで、一度つけたタグを消す方法が分かりません (mtn tagを繰り返しても新しいタグが追加されるだけ) どなたか教えていただけないでしょうか?
>>283 Pythonがわからないだけと正直に言えばいいのに
>>283 は俺じゃないけど、確かに Python は知らない。
ていうか、あんまりスクリプト使わないし。
手元に Perl と bash スクリプトの本があったんで、シェルである bash スクリプトにした。
Perl がよかったかな。
そもそもこんな簡単なラッパースクリプトなんか何で書いても大差あるまい。
Python で書くとなんかいいことあるのかな?
単に「MercurialがPythonで書かれているから」じゃないのか
hg extensionにして欲しかったとか。
単にレスが欲しかったんだろう
290 :
デフォルトの名無しさん :2008/09/14(日) 14:45:13
gitでリポジトリを移したいというか、サーバーを乗り換えたいときって、 git remoteのgit@hogehoge を新しいサーバーに変えて git pushするだけでよいの?
規制されてたんで亀でごめん。
>>254 何も調べないで悪いが、以前見っけた。まあgithubで特に困ってないんだよなぁ。
http://gitorious.org/ >>242 今のように回線がリッチになり、マシンがパワフルになったからこそ、
分散型が可能なんじゃないの?
そういう意味ではsvnをあんまりいじめるのは可哀想な気がする。
ダイヤルアップ接続の時代に、リポジトリ丸ごと持ってこようとは思わないよな。
294 :
デフォルトの名無しさん :2008/09/15(月) 06:19:49
>>292 それだったらbazaarでいいじゃない。
>>294 bazaarの特徴がいまいちわからん
よければ解説してください
google bazaar Wikipedia
>>295 プロジェクト数無限、容量無限、プロジェクト登録しなくても自由にブランチが作れるlaunchpadが使えること。
gitで外部のdiffツール使う時はどうすればいいんでしょうか? 簡単なdiffは大概はgitkで事足りるのですが。 しかし、何故かgit diffは改行が2倍になるので使えなくて困る・・・
>>284 亀レスだがmtn db kill_tag_locally タグ名
気をつけて使えって書いてあるのでマニュアル一回は確認してから使ってな
301 :
284 :2008/09/17(水) 15:20:08
ありがとう! dbのサブコマンドだったのか・・・ これからマニュアル読み直してみます
TortoiseHg のコミット時間などを日本時間に設定したいのですが どこでしたらいいのですか?
>>303 リポジトリ内は必ずGMTになるのは仕方ないから
取り出すときにローカルタイムに変換するしかない。
TortoiseHgにそういうオプションがなければ、できないと思う。
windowsでユニコードファイル名に対応してるのは svn と bzr とあとなんかある?
Mercurial
Mercurialってハングルのパス扱えなかったんだけど・・・
Unicodeファイル名に対応してれば扱えるはずでしょ? Subversionでは問題なく扱えたし。
mercurial は python3000 が出たらどうすんだろ わざわざロケール依存にするのかな
>>307 LANGをutf8にしてないとか、設定が足りてないんでしょ。
gitはcygwin版で一応、日本語ファイル名でもコミットできたし、 バージョンもどしたり最新にしたり、クローンしたりしても日本語ファイルは生成されるようで、 大丈夫だったのですが、 コミットログの表示時とか、gitkだとどうも日本語ファイル名は化けます。 (コミットログ自体にUTF-8含めるのはOK) こういうのってどこに文句言ったもんでしょうか?
>>312 gitの開発者もcygwinの開発者も日本語対応なんて気にしてないよ。
文句を言うんじゃなくて、自分で対応して発表したら良いよ。
gitやcygwinの問題というよりWindowsの問題だろう Windowsを捨てるのが最善
できもしないことを
>>314 うちの周りは10割りがwindowsなので厳しいです・・・
317 :
312 :2008/09/20(土) 13:55:59
>>316 名前つけわすれました。312です。
>>314 逆に聞きたいのですが、unix環境だとgitは日本語は大丈夫なのでしょうか?
linuxだとUTF-8だと思いますが・・・。
つまり、Windowsはファイル名周りはUTF-16だったと思いますが、
UTF-8へのコンバートルーチン書いてやればよいのかな・・・
cygwinのAPIはWindowsのUnicode処理関連まともにサポートしてないでしょ。
>>314 は誤りで、cygwinの問題だよ。
うちの近所ではPC台数ベースでのLinux率が50%越えてるな
>>318 WindowsのUnicode処理自体に問題が
特にローカライズ関係が酷い
どのへんが?
Cygwinのロケールサポートが非常に限定的なだけ
Linuxで日本語はgitもhgも問題ない。
324 :
312 :2008/09/20(土) 18:30:20
忘れてた。うちサーバーはLinuxだったw
>>318-323 みなさん。thanx!
cygwinの問題かあ・・・
パッチ書くとかでなんとかなるもんかなあ
cygwinで日本語www しかもファイル名www アリエナサス
>>324 日本人が作ってるCygwinへのパッチにUTF8サポートパッチと
マルチバイトサポートパッチがある。試してみては?
#ロケール自体の実装もあるけどかなり古い
>>326 後者はcp932エンコーディングのバイト列扱いになるから、ローカルで使うだけならともかく、push/popは多分無理。
> ls .hg/store/data/
> ~8d~80~96~da~95~5c.txt.i
ファイル名/ディレクトリ名末尾に'\'が含まれる文字がきたときの動作もあやしい。
自分では日本語ファイル名諦めて使ってないから知らなかった。 無理なんだな残念。
日本人が作るツールで日本語ファイル名の問題なんか出たことないのに、 何で外人はその程度もできないんだ
日本人が作るツールで日本語通っても他言語通るとは限らない。
svn export -r <revision> <url> と同じことを git でやりたくて色々調べたら git archive <revision> | tar xf - で代用できるよという情報を得たんですが、URLはどうやって指定するんでしょうか? --remote=<repo> というオプションがヘルプに出るので、clone などと同じかと思って git archive --remote git://〜/〜.git とかやっても無反応で、どうも上手くいっていないっぽいんですが… cloneできるだけじゃだめで、archive用のアクセス権みたいのが必要なんでしょうか。。
言語の論理構造ベースでチェックアウトできるバージョン管理システムってありませんか? 例えば物理的に同一ファイルに定義されている メソッドの中身だけ編集する場合はクラスをチェックアウトする必要が無い、みたいな。
>329 日本語(特にShift-JIS)が特殊過ぎるんだよ。
必要だと思えば作ればいいと思うけど、俺にはその便利さがいまいちわからんし、
> メソッドの中身だけ編集する場合はクラスをチェックアウトする必要が無い、みたいな。
>>334 がバージョン管理システムをあまり理解してないように思えるんだが。
>>336 人と編集するファイルが重なっただけでマージが必要になるのは
メンドクサイと思ったもので。
言語の文法までバージョン管理システムが把握して、必要に応じて
コミットする範囲を設定してくれたらな、と。
確かに、今存在していないということは不要ってことかもしれませんね。
参考までに、
>>336 さんの理解しているところのバージョン管理システムについて
教えていただけませんか?簡単にで結構です。
>>337 行が分かれてりゃ自動でマージしてくれるだろ?何が面倒なんだ?
>>337 そういうソース管理ツールもあるらしい。名前は忘れたけど。
たとえば変数名を変更したら、ほかのSCMならたんにその変数名を含む行が変更されたと認識されるだけだけど、
そいつは「変数名を変更した」ということを認識し、リポジトリにもdiffではなくてそういう情報が書き込まれるらしい。
>>337 の場合なら、たとえばチェックアウトするのはファイル単位でもいいけど、
チェックインするときに、このメソッドだけ変更されている、ということを認識して
なんかよきに計らってくれるかもしれん。
今はそういうSCMがないかもしれないけど、将来的にはあっても面白いよね。
>>337 >
>>336 さんの理解しているところのバージョン管理システムについて
> 教えていただけませんか?簡単にで結構です。
これスレで取り上げられてるバージョン管理システムはたいてい
>>338 の言うように同一ファイルを編集しても自動マージする。
もちろん同一行を編集されたりすると人手介入が必要だけど、それは
>>337 でもどうしようもないんじゃないか?
とにかく、適当なバージョン管理システムをインストールして使ってみる
ことを勧めるよ。
>>337 > 参考までに、
>>336 さんの理解しているところのバージョン管理システムについて
> 教えていただけませんか?簡単にで結構です。
一般的なものはどういうものか教えてくれというのならわかるが、
お前の理解を述べよとは、何様だテメエ。
人にものをたずねる態度がなってない。小学生からやりなおせ。
>>340 Subversionってファイルがぶつかった時点で'C'ってなって終了だった気がするけど、
最近は違うのかな?
初めてsvk使った時、3wayマージしてくれるのに感動したなー。
昔から使ってるけど行単位だよ。
家でやった作業 push してくるの忘れた…。orz
git rm filename してコミットした後、これを取り消したいんだけど、どうしたらいい? git reset HEAD^ してみたけど、git status すると deleted filename が表示されたまま。 なおまだローカルへのコミットしかしてなくて、リモートには反映してません。
>>345 git reset --hard HEAD か
git checkout filename
でどうだろ
>>344 どこでもMyMacとsshトンネルで通路を確保してある俺様
Mercurial で merge してコンフリクトが起きたとき、指定のツールを起動する前に コンフリクトを検出した箇所に印ぐらい付けといてくれないものか…。 どこかに設定ある?
>>346 >git checkout filename
これで行けました。そうか、checkoutすればいいのか。
ありがとうございました。
351 :
348 :2008/09/23(火) 03:53:27
あれ、premerge もされてないっぽいや。おかしいな、premerge=True は設定してるんだけど…。 ちなみに、TortoiseHg です。
352 :
348 :2008/09/23(火) 05:08:59
うーん、今のところ kdiff3 か internal:merge ぐらいしか選択肢はないかねぇ…。
>>349 のはまだよく読んでないけど、設定ってレベルではないような…。
353 :
312 :2008/09/23(火) 07:56:29
リビジョン管理システムで、日本語ファイル名と日本語コメントを LinuxからEUC/UTF-8で登録してもWindowsでCP932で取り出すことができ、 WindowsからCP932で登録してもLinuxでEUC/UTF-8で取り出すことができるのは いまのところSubversionだけでしょうか?
355 :
デフォルトの名無しさん :2008/09/24(水) 19:21:19
そんなにmercurial嫌いなのかよ
いまどきCVSもSubversionもVSSも使わないプロジェクトって何なの?
なに使ってるの?
「project_最新_yyyymmdd」みたいなサフィックスを付けたディレクトリが たまっている火事場が実在するのは知っている。
>>358 マージソフトとソースコード内の修正コメントが頼り。
言うまでもないが、マージしたら毎回デグレード勃発。
そんなゴミネタはいらない
>>359 > 「project_最新_yyyymmdd」
の、"最新" がすぐ無駄になることに気付かないような奴等だから
火事場になるんじゃないか?
backup/backup20080921/backup20080920/backup/backup20080901 みたいなディレクトリ階層を見たことがある。 project_debug_20080921 project_release_20080921 project_release_20080921_debug project_release_20080921_2 project_release_20080921-3 project_release_20080921_debug_4 project_debug_20080921-2 project_release_20080921(2) みたいなでぃれくとり群を見たことがある。
364 :
デフォルトの名無しさん :2008/09/24(水) 23:37:38
うちのブランチとタグに酷似してる…… orz
もはやvcs使っていると考えたくもないよな、そういうのって。
リリース管理がヘボだと
>>363 の後者みたいになる。
vcsかどうかはあんまし関係がない。
>363の前者 要は、バックアップフォルダにバックアップフォルダごとバックアップしているってことか? それって、バージョン管理を放棄しているな。 >363の後者 リリース版をデバッグするってこと事態あれなのに、 「リリース版のデバッグ版」としたい香具師と「あくまでデバッグ版」としたい香具師が居るわけね。 ついでに言えば、枝番の派生の仕方も三者三様? 挙句に、その枝番も「リリースの2」が二つ発生してしまっている体たらく。
つーかコミットする前にレビューぐらい通せば?
>>368 >363はVCSを使っていないって話だろ。
まぁ、そろそろスレ違いだし話を戻したいところではあるが。
370 :
デフォルトの名無しさん :2008/09/25(木) 09:30:10
mercurialでリポジトリをWebで公開したい場合、 apacheではなく、pythonのSimpleHTTPServer.pyなどとからめて公開できない? なにかしらのAPIってないのかなぁ? わかる方がいましたら教えてください。
>>370 よくしらんが、WSGIのようだから、どうとでもなるんじゃないの
標準のwsgiref実装を使えば自動的にBaseHTTPServerが使われることになると思うが、
apacheではなぜ嫌なの?
まあ一人で使う分にはPythonのオモチャHTTPサーバでもいいだろうけど、
本当にオモチャだぞ
デフォではforkもthreadも使わないただの反復サーバだしな
機能だのセキュリティだの性能だのを語る以前の問題
>>370 SimpleHTTPServerは無理だろ。あれはスタティックファイルだけ。
wsgirefの方を使え。
てか、なんでhg serveじゃだめなん?
>>355 横からですが、Mercurial(hg?)は日本語ファイル名、日本語コメOKなのか
TortoiseHGは日本語ダメってあったけど、コマンドライン版ならOK?
>>373 亀 Hg が日本語ダメってどこに書いてあった?
Web の情報も古くなってきてるぞ。
>>374 あれ?大丈夫になってきているのか?
確かめてみないといけんな
>>375 TortoiseHGのコミット機能以外は対応している。
コミット機能はQctを使っていてQctが対応していない。
TortoiseHG自体にもコミット機能はあるけど更新されてなくて
日本語でログを書くとおかしくなる。
>「リリース版のデバッグ版」としたい香具師と「あくまでデバッグ版」としたい香具師が居るわけね。 リリース版を品証の人がチェックするんでタグ付け必須な職場もあるです。
Release Candidate版にしとけばいいのではなかろうか
>>376 えー?俺コミットメッセージは日本語で書きまくってるけど、ログにちゃんと表示されるよ。
update ダイアログで Browse ボタンを押すと化けてるけど。
ちなみに 0.4.1。
>>363 うちの会社ではリリース版とかいう概念すらないよ
project_20080921
すべてこういう感じ。もう手遅れだと思う
>>380 手遅れと考えるより、その環境にはそういうやり方の方が合ってる
って考えた方がいいのかもしれんよ。
まあとりあえず、一人で内職してみては?
少しずつファイルサーバ漁って、初期リポジトリに投入できそうなファイルの目星をつけつつ、
自分のところで cvsなり svnなり VSS(最近だとTFSかな?)なりをコッソリ入れておいて、
使い方を試してみたり、日次バックアップとかリストアとかの運用方法を確認したりして、
来るべき日に備えておくと、近いうちに役に立つかもよ。
俺は、本番環境でデグレード障害が出た際に、「バージョン管理システムってのがあるんですが」
って言って切り出して、内職で作ってた VSSリポジトリを使ってデモやったら、いつの間にか
それが開発標準になってたよ。
TortoiseHgはコミットツールのQctが完全には日本語に 対応してなくて、コミット対象のファイル名が文字化けする。 しかし、コミット自体は日本語で正常に行われます。
TortoiseSVNもTortoiseHgもエクスプローラが重たくなる。 特にネット越しになると酷い。
>>383 アイコンオーバーレイを「固定ドライブ」だけにするといいかも。
またはアイコンオーバーレイを使わないとか。
SVNのステータスでソートしたりとか良く使うし エクスプローラと連動してるおかげで検索から 削除したり出来るから便利ともいえるし人それぞれだろう
>>384 対象外のフォルダを検索しないとか、検索フォルダのマスクしていとかもあるよ
アイコンオーバレイ使わないと、亀使ってる意味がほとんとなくね?
シェル拡張だけでもお釣りが来ると思う
独立アプリの方がいいなあ。 特に亀 Hg は、シェル拡張の意味がほとんどないぐらい操作が複雑。 でも生き残ったのは亀なんだよねえ…。
>>389 RapidSVNは結構好きだったんだけどなぁ。
Hg用の独立アプリ無いかな。
Hgを暫く使ってて、ふとしたことから古いチェンジセットに 一時的にアップデートしたら.hg下のファイルがWindowsXPの ファイル名256文字制限に引っかかってしまい、最新のチェンジ セットに戻せなくなってしまったよ。 フォルダ階層深い人は注意。 しかしWinXPって256文字制限無くせないのかな。Vistaはこの点 どうなの?
NT系のパスの文字数制限はXP以前から32000文字だと思うが。 9x系と互換性もたすとMAX_PATHに制限されるけど。
subst.exe で何とかならない? Hg 使ってないから状況がよくわからんが。
subst.exeで解決できる問題なら、そもそもプロジェクトを浅いディレクトリに 配置すればいいだけの話だけど、391はプロジェクトのフォルダ階層が 異常なほど深いんじゃないの?
395 :
391 :2008/09/27(土) 10:34:05
>>392-393 NTFSだけど下記のエラーメッセージでググると256文字制限があるってヒットするんだけど。
HgがMAX_PATHに制限しているのかな?
あと元々レポジトリのパスが短いのでsubst.exeでは回避できなさそう。
嵐っぽくなっちゃうけどエラーの状況:
D:\a>hg add *
adding あ\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い
\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\い\う.txt
D:\a>hg ci -m "test"
trouble committing あ/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い
/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い/い
/い/い/い/い/う.txt!
abort: ファイル名または拡張子が長すぎます。: D:\a\.hg\store\data/~82~a0/~82~a2/
~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/
~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/
~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/
~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/~82~a2/
~82~a2/~82~a4.txt.i
>>388 hgならともかく、SVNなら開発ツールのSCM連携機能使うだろ。
Express 版で開発してるとか、ワードの文書も SVN で管理してる 俺みたいなやつの事を忘れないでくれ。
TortoiseHgまだ、rename実装されてない?のかな D&Dでのこぴぺ移動もまだみたいだし
まだバージョンが 0.5 もいってないからね。 俺はコマンドラインと併用。 マージツールの連携をなんとかしてほしい。
そういやツールの設定なんかがよくわからないな・・・
高速ネットワークに常時接続でブランチが自由に作成できる SVN 環境から、 分散型に乗り換える利点はどのようなものがあるでしょうか?
分散に移りたいと思ったきっかけはなに?それによるんじゃないか?
常時接続出来ない場所に行ったときに不便にならない
svnになれてるならsvkでも使ってみたら。 でもトロいからあんま便利とは言えないか。 速度、細かい進捗管理がしやすい。 git使い始めて結構立つのに今更、昨日始めてbisect使ってみた。 数千もパッチ管理してるとやっぱこういう手法になるのかなー。
>>353 mod_authz_svn じゃだめ?
誤爆orz
>>403 >>404 SVN に特に不満は感じていないんですけど分散型がいろいろ出ているので
何か自分が気づいていていない利点があるんじゃないかと思ったんですけど。
SVN は家か会社でしか使わないのでネットワークに接続できないことは滅多
にありません。
会社でもノートPCを持って無線LANの届かない現場に行く場合とか心底困るよ
Subversionに比べると、分散型はリポジトリの扱いが気楽なのが利点だと思います。 たとえばMercurialだと、 ソース書き始めた ↓ そのディレクトリの下にリポジトリ作成。チェックアウトの必要なくいきなり管理下 ↓ ちょっと実験するために別ディレクトリにclone(リポジトリのコピー) ↓ 修正&コミット ↓ 成功:コミットを元リポジトリにpush 失敗:cloneしたリポジトリを削除してポイ ↓ (゚Д゚)ウマー
svnからhgでブランチし放題なのとマージ覚えててくれるのはいいと思った
どこがちがうのか?
svnも1.5でマージサポート強化されてるっぽいね。 今まではブランチっつってもコピーするだけだから、マージは自分でやらないといけなかったけど、 なんかsvn1.5はプロパティにどこからマージ済みなのか記録してるっぽい。svkのマネ? Gitの場合はコミットに一意なIDがあるから、テキトーにブランチきってもマージに悩まされずに 追いかけていける。
>>410 そうそう、分散型だとすごく気楽だよね。
個人開発でも利点があった
>>351 でも書いたけど、 亀 Hg 使ってる人はマージはどうやってる?kdiff3 使ってる?
マージペインで日本語が化けるから、やや無理やりだけど WinMerge 使いたいんだよね。
でも premerge が効いてないっぽいし、バイナリファイルはどちらを採用するか聞いてこなかったり
もう設定がわけわかめ。
ブランチに試行錯誤や間違いの歴史を残すのに全然抵抗ないですけど それでも分散型に利点はありますか?
>404
ベータ版かリリース版かというのはどのように管理してるの?
revisionのコメントに「
>>418 さんに渡した版」と書いておく程度の管理
または気持ちの問題、カナ
タグ名の最後に"-r"を付けるとか(release)
>>418 うちでは例えばバージョン名がB2.4.XからR2.4.0になる。
>>418 タグ付けてβ、それを品証がチェックしてリリース
trunk
tag
rel
のディレクトリにタグ化した日付でtagに入れてそのリリースがrelにcopyされる
品証のチェックで出たバグはtagの日付版で修正して、trunkへポートされてる
エンドユーザからのバグレポートはrelに対してになる、
>>418 tag つける。でtag名に、beta-ほげほげ とか release-ほげほげ とか
リポジトリをbetaフォルダからreleaseフォルダに複製してる ・・・けどタグの方がいいのか
いついつリリース版というフォルダをずっと増やしていく方針なら タグは不要だと思うけど。
他所の cvs/svn/git リポジトリから co するときに自動的に hg 方式になって 自分で管理するときは hg でして ci するときは cvs/svn/git 方式に自動的に変換するフィルタってない?
427 :
デフォルトの名無しさん :2008/09/30(火) 05:37:52
チェックアウト状態ではリードオンリーになっていて 編集しようとするとダイアログが開いて何のための変更か?を記述して それをコミット時のデフォルトのコメントにしてくれるようなWindowsのツールってないですか? TortoiseSVNの拡張機能みたいな形であれば一番いいんだけど。
それなんて VSS ?
>>427 needs-lockじゃ駄目?
lock取得するときに、やる作業をコメントに書く。
コミットするときは、最近のログメッセージから再利用。
SubversionリポジトリからMercurialに変換するツールはないんでしょうか?
gitだとsvnとの相互運用もできるっぽいのですが・・・
hg convert
hgの読み方ってハーゲーでいいの?
水銀党で
git では git checkout 古いコミットID として古い状態に戻すことができます。 このあと最新状態に戻すにはどうしたらいいですか。 git checkout HEAD とか git reset --hard HEAD とかしてもだめみたいです。
>>437 HEADは現在居るブランチの先端をあらわすので、その場合のHEADは名無しブランチの先端。
つまり古いコミットIDになる。
最新の状態にしたかったら、そういうブランチをチェックアウトすればいいと思う。
git checkout master とか。
>>438 ほんとだ、名無しのブランチになってました。
git checkout master でもとに戻れました。ありがとうございます。
ただ、git checkout COMMIT_ID を実行すると、名無しのブランチができるという挙動がなんか気持ち悪い。
なんで勝手にブランチができるんだろう。。。
>>439 どこの先端でもない途中の状態を指定して取り出すんだから、名無しになるんだよ。
今居るブランチをほんとうに古い状態に戻したいなら、そのコミットを指定してresetすればいい。
そうすればそのコミットが今居るブランチの先端になる。そこより先のコミットは無くなっちゃうけどね。
俺がHEADだぁぁぁあああ!
ヘドが出るぜ!
すみませんが、せっかくの機会なので教えていただけますか。
>>440 >どこの先端でもない途中の状態を指定して取り出すんだから、名無しになるんだよ。
新しいブランチを作るのではなく、今のブランチ (main) を使ったまま、古い状態を取り出すことはできないということでしょうか。
>今居るブランチをほんとうに古い状態に戻したいなら、そのコミットを指定してresetすればいい。
>そうすればそのコミットが今居るブランチの先端になる。そこより先のコミットは無くなっちゃうけどね。
reset は、HEAD がどのコミットを表すかを変更するということでしょうか。
HEAD を変更することなく、古い状態に戻すことはできないということですか。
Git は仕組みがよくわからず、困ってます。
Mercurial はすごくわかりやすいんですけど・・・
>>443 hgは使ったことないんだが、Gitからフォークしてるので似てるはずだと思ってたんだけど、
そうでもないのか。resetとかrebase無いの?
「古い状態に戻す」が何をしたいのかよくわからないんだけど、例えば、
3つ前の状態をちょっくらワーキングコピーで見たりしたくなったんなら、
3つ前の状態をチェックアウト(git checkout HEAD~3)すればいい。
名無しブランチの先頭に居ることになるが。
今のブランチを3つ前の状態まで戻して、そこからやり直したいならリセット(git reset HEAD~3)
この場合は3つ前以降のコミットは失われる(他のブランチに残ってなければ)
>新しいブランチを作るのではなく、今のブランチ (main) を使ったまま、古い状態を取り出すことはできないということでしょうか。
mainという名のブランチをチェックアウトしたまま古い状態を取り出す?
いま居るブランチはmain~3ですよ、みたいな感じ? それはないな。実質そういうことになるのかも
しれないけど、main~3は他のブランチにも含まれるかもしれないし、履歴の途中を引っ張り出した場合、
そこにコミットを続けることも出来るから、それってブランチ(枝)でしょう?
git checkout HEAD~3とした時点で「名無しブランチですよ。必要なら後からgit checkout -b って
出来るよ」みたいなメッセージが出てると思う。
443ではないけど
>>444 hgの場合古い状態をワーキングコピーで見るだけならブランチにはならなくて、
古い状態からコミットしたときに初めてブランチが作られる
446 :
445 :2008/10/01(水) 19:05:37
それと、hgはgitのフォークではないよな
またリポジトリ、プロジェクトホスティング見つけてきた
Project Kenai -- We're More Than Just a Forge
http://kenai.com/ SubversionとMercurialのリポジトリと、フォーラム、ML、wiki、バグトラックなど一通りのホスティングサービス
枝の古い状態みるだけなら、チェックアウトすればそれでいいじゃん? 新しいブランチは作らず名無しの状態で取り出せる。 それぞれのHEADも変更しないし、何に困ってるのか分からないんだが… 多分何がしたいのかを言った方が手っ取り早い。
>>445 > 古い状態からコミットしたときに初めてブランチが作られる
前もって hg branch でブランチを指示しないといけないんでなかった?
>>446 SDにはそんなようなこと書いてあったけどな。
でもPythonで新たに書き直してるから、フォークとは言わないかもね。
>>444 両方ともBitKeeperのコマンドを参考に作ったんじゃなかったか?
tortoiseHGの0.5出てたから入れたけど、コミットの日本語は相変わらず 一緒にbazaarも入れてみたけど 右クリックしてもbazaarのメニューが出てこないのは気のせい?
>>448 >枝の古い状態みるだけなら、チェックアウトすればそれでいいじゃん?
それだとファイルパスが違うのになるから、設定ファイルをいちいち変更しないといけない。
または現在のディレクトリを別名に変更しないといけない。
???
hg convert って最強じゃね?
>>453 フルパスが書かれたものをリポジトリに入れてるのか。
そうであってもブランチを作る必要はなくて、
チェックアウトまたはclone+チェックアウトで済むと思うけど。
何をしたいのかがわからないから、あとはエスパーを呼んでもらうしかない。
情報を後出しばかりする上に自分の特殊な環境が特殊だと思っていないんだから 誰がどう答えてもどうにもならんでしょ
458 :
445 :2008/10/03(金) 13:30:09
>>450 http://en.wikipedia.org/wiki/Mercurial_ (software)
>This project started at approximately the same time as another project called Git, started by Linus Torvalds with similar aims.
>>449 名前付きのブランチをつくるならそう。名無しブランチ作るならコミットするだけ。
hgの場合
hg checkout id
で古いワーキングコピーにして、
hg checkout
で最新(tip)にできる。
hg log
はcommitやpullしない限り、何をcheckoutしていても常に同じ内容が出力される。
git少し試したけど、古いのをチェックアウトするとgit logでそれ以降のログが
見えなくなるな。
緒マラ教えて下さい。 gitのリポジトリをhgに変換する方法を
4レス前は読んだか? $ hg help convert ~ hg convert [OPTION]... SOURCE [DEST [REVMAP]] Convert a foreign SCM repository to a Mercurial one. Accepted source formats: - Mercurial - CVS - Darcs (legacy Darcs 1 format only) - git - Subversion - Monotone - GNU Arch
git checkout ブランチ名 としたときに、 error: You have local changes to 'README'; cannot switch branches. といわれます。 Gitでは編集中のファイルがあるとブランチを切り替えることはできないのでしょうか。
>>460 thanx... hg convertていくつも対応してるのね
>>461 たぶんそれチェックアウト先のブランチでREADMEがぶつかってるんじゃないかな。
まっすぐ伸びてれば
M README
Switched to branch
てな感じになるはず。
で、git と mercurial のどっち使えばええの?
bazaar使えばいい。
>>464 git はわかりづらいので、mercurial のほうがいいと思う。
ただ git のほうが機能は豊富。あまり使わないけど。
>>464 流行で言えばgitでしょう。
ただ、Windowsと関わることがあるなら git はちとキツイ印象(いろいろ試したが)
そのときは Mercurialでよいかと
>>466 mercurial になくて git にある機能って具体的にナニ?
>>466 どこの流行なんでしょうか?
>>468 githubでいきなり盛り上がった印象がある。
それまでは、俺はLinux Kernel専用SCMとしか思ってなかった。
大型プロジェクトに良く使われている印象>git linux kernel、X.org、wine、vlcなど。 hgはmozillaだけな予感。
hg も netbeans、opensolaris や xen とかで使われてる …ってちょっとググれば分かるはずなんだがな
リポジトリ数 github(git) 30*618=18540ぐらい launchpad(bazaar) 19002 mercurial専用ホスティング&コラボレーションサービスって無いのな。専用である必要ないって言ったらその通りだが。
>>472 bitbucket freehg projectkenai
>>473 thx.
bitbucket(mercurial) 15*40=600
他分からず。
>>468 git-svnと同等なものがHgに無い。マジで欲しい。
hgsvnに含まれるhgpushsvnってのもあるらしいがバギーなようだ。hgsvnの開発も芳しくないようだし。
windows上ならbzr-svnが標準で含まれているbzrが最強な予感。 cygwin+gitならgit-svn入れるだけだろうけど。 msysgitはgit-svn入れるの難しいはず。
TorotoseHGに含まれている hg.exeで hg mergeしようとすると、gpyfmというウインドウが立ち上がるんだけど、 これは何するものなの? リストに何も表示されていないから、何をしたらいいかわからんw acceptoとかrejectとかのボタンは表示されているが
github を使っていて、他人のプロジェクトをフォークしたんですが、 それを更新する (pull) 方法が分かりません。 つまり someone/proj1 をフォークして myname/proj1 をつくり、 git clone git://github.com/myname/proj1 をして、自分のリポジトリに commit & push するのはいいんですが、 someone/proj1 の変更を myname/proj1 に pull する方法がわかりません。 だれか教えてください。
>>481 git remote add someone git://github.com/someone/proj1
git pull someone
かな。
欲しければ実装しちゃいなよ
bazaarを介するのもhgsubversionを使うのも一抹の不安があるなぁ
Bazaarが気になったので、GCCのソースを使って計測してみた。 svn://gcc.gnu.org/svn/gcc/trunk ソースのサイズ: 510MB Intel(R) Atom(TM) CPU N270 @ 1.60GHz DISK: SDHC(ext3) #ツッコミなしでw 使用コマンド svn = import (svnadmin create済み) hg = commit -A (hg init済み) bzr = add + commit (bzr init済み) git = add + commit (git init済み) TAT git(8m30s) > bzr(10m30s) > hg(12m40s) >> svn(60m38s) CPUTIME git(1m10s) > hg(2m55s) > bzr(5m49s) > svn(6m57s) REPOS SIZE (ソースのサイズ除く) bzr(122MB) > svn(133MB) > hg(311MB) > git(319MB) 考えていたよりbzrがいい結果。
総合的にみて hg の圧勝じゃないか
総合的にみたらgitだろ?
総合的に見るとrcsだわな。
あと10年くらいはsvnでいいや
cvsはもう勘弁
>>486 What does "TAT" mean?
"CPUTIME" is speed of command execution?
turn around timeじゃないか
どうもです。
>>482 >git remote add someone git://github.com/someone/proj1
>git pull someone
これだと自分のローカルリポジトリのみの変更ですよね。
あとはこれをpushすれば、github上にあるリモートリポジトリにも反映されるということでしょうか。
gitは勉強中なのでわからないことがいっぱいです。
Git(ギット)勉強会メモ - kinneko@転職先募集中の日記
http://d.hatena.ne.jp/kinneko/20081004/p4 > git stash
> 日本からやってきたパッチ。最近追加。
> する直せ、今直せとボスが言う。
> 中断されると違う事やると思考の流れが止まる。続けられない。
> git stash saveとたたくと、今の状態を保管する。
> 巻き戻されて最初からボスの変更だけやって、コミットしてしまう。
> その後で、git stash applyで保管した結果を戻して作業ができる。
> tarで保管するのと違って、重なる変更点は3 way margeされる。
> ボスの変更が反映された上で、途中の作業に戻れる。
今 hg 使ってるんだが、この git stash に相当するコマンド(群)知ってる人イナイ?
コード弄ってるときにバグ発見とか、よくあるもんで…
>>496 意味がわからんし使い方もわからん
cloneすればいいんじゃねーの
>>496 > 今 hg 使ってるんだが、この git stash に相当するコマンド(群)知ってる人イナイ?
つhgext.mq
少しお聞きしたいのですが、ためしに 動的なwebページをMercurialで管理しようとしています。 MySQLを使用するCMSを使っているのですが、DBのデータも管理したもんなんでしょうか? webアプリの場合だと、DBがファイルととは別ってことは普通にあると思いますが、 みなさんはどうしてらっしゃいますか? てか、Railsもそういった類だと思うけどバージョン管理はどうしているんだろう
うちはテーブル、ビュー、関数、ストアドプロシージャのようなスクリプトと マスターデータをテキストとかで管理してる。
名前ド忘れしたけど DB専用Subversionみたいなのがあったな
.flaも管理したい
Subversionはバイナリの差分をとってくれますが、Mercurialはしてくれないようです。 ほかにバイナリも差分をとってくれるバージョン管理ツールはありますか。
CVS
CVS って、差分とったっけ? バイナリは、そのまま保存しかできないと思っていたけど。
>>506 軽く試した感じだとちゃんと差分で保持してるよ。
git は?
ってそもそも差分じゃないか。スマン。
Mercurial を使って自分のコードを管理していたのですが、 Mercurial のリポジトリをホストしてくれる Bitbucket に移行しようとしています。 しかし新しく自分用のリポジトリを登録したのはいいんですが、 ローカルにあるリポジトリをサーバに移動する方法がよくわかりません。 もしご存知の方がいましたら教えてください。
>>508 一応無理やり差分は取ってる。あんまり効率的ではないだろうけど(昔の実験結果より)。
>>35 mercurialもclone直後はハードリンクになっているけど
変更をcommitすると別物になるようだ。
gitはテキストとバイナリの区別をしないで オブジェクトデータベース内のすべてのオブジェクトについて 「似ているもの同士は差分で保持」という実装
いいね、バックアップソリューションでもそういうのが流行ってるみたいだし。
>>517 へー、そうなんだ。
「似ているもの同士」ってどうやって判断してるの?
その辺について書かれたドキュメントとか知ってたら教えてもらえると嬉しい。
ソース嫁よ
>>517 これほんと?
Gitって、差分は管理してなくて、すべてのファイルを圧縮保存していると資料に書いてあったけど。
Git と Mercurial の連携・・・・ってできますか? いや意味があるのかといわれるとそれまでなんですけど。
cvsってdiffでバイナリ差分とってる訳?
>>517 「似ている」ってどうやって判別してんだ?
CVS は「バイナリ」じゃなくて「キーワード・行末変換なし」っていう設定で diff はいちおう 通してたような記憶があるお。 0x0a が現れるといちおう区切られるっていう
git pull して git push するのに疲れました。 2つを連続してやってくれるコマンドオプションとかありますか。
bat
sh & alias
>>527 ,528
そんなオプションはないということですね。
これで安心してshellスクリプトを書けます。
ありがとうございました。
aliasでいいじゃん
>>500 データってデータそのもの? スキーマだけじゃなく?
SQLite にしてデータベースファイル突っ込んどけば?
Rails だとマイグレーションという仕組みでスキーマを版管理する。
テスト用のデータについてはフィクスチャで流し込むのが一般的。
実運用のデータをバージョン管理するという話はあまり聞かないな。
git push origin master と同じことを Mercurial でするにはどうしたらいいですか。 ローカルのリポジトリを、リモートに移動しようとしています。
clone すればいいんじゃね?
>>534 gitのことはよくわからんけど、ローカルのチェンジセットをリモートに push するだけなら
hg push <remote-addr>
ローカルとリモートのリポジトリが同一のツリーでないなら
hg push -f <remote-addr>
>>538 問題ない
Distributed revision control with Mercurialに書いてある。
hg convert がうごかないんだが、なんでかな? % hg convert -s svn svn://svn.freebsd.org/base assuming destination base-hg initializing destination base-hg repository Subversion python bindings could not be loaded abort: svn://svn.freebsd.org/base: unknown repository type % hg convert -s svn freebsd-head assuming destination freebsd-head-hg initializing destination freebsd-head-hg repository Subversion python bindings could not be loaded abort: freebsd-head: unknown repository type
>>543 Subversion python bindings could not be loaded
開発やってる奴でその質問はどうなんだ(´・ω・`)
>バージョン管理システムについて語るスレ2
>>546 エラーメッセージ完全スルーで2ch丸投げとか、
流石に情けないんじゃないのか、って話だと思うんだが。
んなこと全員分かってるわ
549 :
543 :2008/10/26(日) 21:23:22
みなさんぼろくそいってくれてありががとう devel/py-subversionをインストールしたら動き出しました。 エラーメッセージは読み違えていて convert/subversion.pyが見つからないのかとおもってました。 ktraceしても原因は見つけられず。 どこかにconvert subversionはプロセスを起動するとあったので てっきりsvnをforkexecするものだと...
おまい、おもろい。w
TortoiseHgのリポジトリがBitbucketに移動してた
hgでパーミッションが保存されないんですが仕様ですか? % hg init a % cd a % date>file % date>file2 % chmod a-w file2 % ls -al total 8 drwxr-xr-x 3 hoge hoge 5 10 27 21:44 ./ drwxr-xr-x 7 hoge hoge 9 10 27 21:43 ../ drwxr-xr-x 3 hoge hoge 5 10 27 21:43 .hg/ -rw-r--r-- 1 hoge hoge 40 10 27 21:43 file -r--r--r-- 1 hoge hoge 40 10 27 21:44 file2 % hg add file file2 % hg commit -m "init" % cd .. % hg clone a b updating working directory 2 files updated, 0 files merged, 0 files removed, 0 files unresolved % cd b % ls -al total 8 drwxr-xr-x 3 hoge hoge 5 10 27 21:44 ./ drwxr-xr-x 8 hoge hoge 10 10 27 21:44 ../ drwxr-xr-x 3 hoge hoge 9 10 27 21:44 .hg/ -rw-r--r-- 1 hoge hoge 40 10 27 21:44 file -rw-r--r-- 1 hoge hoge 40 10 27 21:44 file2 %
>>553 パーミッションは保存されません。
hgに限らず、SubversionやVSSでもパーミッションは保存されません。
パーミッションはリビジョン管理システムの外側にある概念です。
>>554 Subversionはpropertyとして保存してくれるんだが。
だからなに?って話
>>556 >パーミッションはリビジョン管理システムの外側にある概念です。
というのが大間違いっていう話。
Subversionが自動的にパーミッション保存してくれるなんて初めて聞いたんだが
sccsは保存してくれたなぁ、と古い話。
svnが保存するのは実行ビットだけであってる?
561 :
553 :2008/10/31(金) 23:30:12
hgのソースをみてみたら どうもexec bitとsymlinkしかあつかえないようだ。
なんか問題あんの? hook で chmod すればそれで終わりじゃん
hg はパーミッションは保持しないクソツール、と。
ここで煽ってみたところでなにも変わりはしないぞ
そもそも644になって問題がある開発環境なんて存在するのか?
>>565 というより、SCMとしての機能を考えると、実行属性以外のパーミッションとかACLとかを保存される方が困る気がする。
OSやfsによってマチマチだからなぁ
POSIX標準くらいサポートしてもバチは当たらない
属性を用意したからあとは勝手にやってくれって思想だよな svn:permissionsを追加したってパッチはみつかったけど 設計や互換性の面で却下されてるようだ
570 :
デフォルトの名無しさん :2008/11/04(火) 18:32:59
TortoiseHGでBitbucketでssh経由でpushしたいのですが、上手くいかず困っています。 ToritoiseSVNでは同じようにして上手くいったのですが・・・ やったこと ・Bitbucketのアカウントをとる ・Bitbucketにssh公開鍵を追加 ・setting->repogitoryの設定ダイアログにて、Pathのdefaultを ssh://(ユーザー名)@bitbucket.org/(ユーザー名)/(project名)/ に設定(= .hg/hgrcの[paths] の default = に上記パスを設定することと等価) ・TortoiseHGのpageantを起動し、対応する秘密鍵を追加 ・コマンドラインから hg push → pageantで設定してあるのに何故かパスワードを聞かれる → 2回ほど入力したら pagelinkが落ちる。 出力: *** no suitable response from remote hg[command interrupted] ・GUIの Synchronize... から push 選択 コマンドラインの時と同様になる
>>570 ToritoiseSVNでBitbucketでssh経由でpushする方法kwsk
572 :
デフォルトの名無しさん :2008/11/04(火) 18:49:33
ああ、スマソ。BitbucketではTortoiseSVNは使ってません・・・。 別のローカル鯖でTortoiseSVNのssh+svnで上手くいったという話です。
>>570 追記:
・hg push や GUIでsynchroize->push でパスワード聞かれるときは、
ユーザー名@bitbucket.org's password と言われる。
(鍵の場合 passphraseだったはず?)
・puttyで 秘密鍵を指定してBitbucket に接続すると、passwordを聞かれ、
アカウントのパスワードや秘密鍵のパスワードを入れても接続できない。
状況がどうもおかしい気がします・・・
574 :
570 :2008/11/04(火) 19:53:47
mercurialはtransactionを意識しているのにfsyncしないのはなぜか?
576 :
デフォルトの名無しさん :2008/11/06(木) 18:55:10
SubversionからMercurialに変換したいのですが、 hg convert が動かない?のですが、何か必要なものがありますでしょうか? > hg help convert hg: unknown command 'convert' > hg convert hg: unknown command 'convert' TortoiseHgの付属のhgです。
577 :
576 :2008/11/06(木) 18:56:00
追記です。 > hg -v Mercurial Distributed SCM (version 1.0.2+tortoisehg)
578 :
576 :2008/11/06(木) 19:12:52
579 :
デフォルトの名無しさん :2008/11/06(木) 20:03:02
hg convertで、Subversionリポジトリからコンバートしているのですが、 もしかして、日本語ログを含んでいると壊れますか? 変換後のリポジトリをTortoiseHgのView Change Logで見ると、 アスキーのみのログのところでは問題なく履歴が見られますが、 日本語ログのリビジョンでは、まったく異なる履歴が表示されます。 (ファイル一覧、差分などがsvnのとは異なります) これを回避して日本語ログのものもコンバートすることはできないのでしょうか?
>>579 TortoiseHgのことは知らないけど、Unix上では日本語ログもきれいに変換され
たよ
581 :
579 :2008/11/06(木) 20:48:48
hgsvnも試したけど、hgimportsvnはおk。
hgpullsvnが、以下のエラーで途中死亡します orz
transaction abort!
rollback completed
abort: decoding near '縺阪↑縺・h縺・↓菫': 'utf8' codec can't decode byte 0x82
in position 138: unexpected code byte!
>>580 ええ、まじすかー。
svnの日本語ログが変なのかなあ?TortoiseSVNで入れたログのはずですけど
582 :
579 :2008/11/06(木) 21:02:40
583 :
579 :2008/11/07(金) 07:59:05
日記みたいで、すいません。 hgsvnでsvnからhgへの変換が上手くいったかなーと思ったのですが、 trunk指定すると branchesとかtags 考慮してくれない orz trunkの親ディレクトリを指定すると、今度はtrunk,branches,tagsと全部できてしまうし・・・ やっぱり、svnと連携するためのものか、これは・・・。 hg convertでなんとか変換する方法を模索したほうがよいようですね。
584 :
579 :2008/11/07(金) 08:36:28
>>579 の件ですが、
どうやら、壊れると思っていたsvnリポジトリは、hg convert で変換後、
問題のあるリビジョンを hg log -r2 -p などで見ると特に問題ない様子でした。
TortoiseHgのView Changelogのバグ?みたいですね。
git rebase origin を実行すると README.txt: needs update とでてくるのですが、これはどういう意味ですか。 README.txtは変更されているのですが、updateが必要というのがよくわかりません。 またこのような状態のときにgit rebase originを問題なく実行するにはどうしたらいいですか。
>>583 そもそもsubversionにタグやブランチがないのが原因
>>585 README.txtを変更したままなんじゃない?
変更してるファイルがある状態ではrebaseは出来ないよ。
README.txtをコミットするかresetするかstashに追い出すかしてからrebase。
もっとも使われているらしいsvnはhgやgitよりもそんなに優れているの?
優劣ではなくそれぞれに特徴があるんだから、好きなの使えばいい
ここ最近のsvnマンセー祭りに吐き気を感じているアルファギークは多いだろうね
gitを使うぜみたいな話は最近目に余るようになってきたが、 いまさらsvnマンセーなんて言い出してるトコあるか?
アルファギークとかいっちゃってるやつに吐き気を感じる
svnマンセーはないだろうw 素晴らしい所は、ToritoiseSVNの完成度の高さぐらいだな。
アルファギークとか、スイーツ(笑)と同類だろ
嫉妬丸出しのレスばかりで笑った
>>593 底辺で蠢いてる奴発見w
アルファギークはもう何歩先も行ってるからw
Pythonがsvnから移行したがってるようだけど BazaarになるかMercurialになるか……もしかしてGitもあり?
集中管理の svn でも、「なんか変なツール」とか言われてるのに このレベルで分散システムとか絶対無理だな、うちは
Windowsを軽視していないPythonなら、gitはまずないだろう。 MercurialがPython製ということを考えると、Mercurialが優勢ではなかろうか
svnからの移行を検討するなら 遅くてもレポジトリ効率で選ぶならbazaar そこそこ速くて使いやすさで選ぶならhg 速くて機能で選ぶならgit
pythonで書かれているツールってことでbzrが有利だろうな
>>602 MercurialもPython製ですよ
Mercurialが優勢ということか
水銀党なのでhgの一択なのだが・・・
UNIX系で使って他(Windowsとか)を、それほど考慮しないとか LinuxやLinusが個人的に嫌いじゃなかったら git 上記に当てはまるなら、他かな? あてはまる人が結構いるから分かれるんだが
分散型って、ゲーム開発みたいに画像などのバイナリデータが容量のほとんどを 占めてスナップショットでも数ギガに行くようなプロジェクトでも、 Subversion より良いの? それともプログラムソースがメインなプロジェクトに限って良いの?
607じゃないが、分散型に興味がある。 今までcvsとsvnしか使ったことがないが、どんなときにどんなメリットがあるのか。 またどんなデメリットがあるのか。 どんな点に注意して使えばよいのか。 そこら辺を具体的に解説したページはないだろうか? 「慣れろ」と言われるかも知れないが、 誰も知らない状態でいきなり本番プロジェクトに導入は出来ないし、 一人gitとかで試してみてもあんまり意味なさそうで・・・
分散型のメリット すべてを手許に置けるのでオフラインででも開発可能でマージもバックアップも気楽にできる 分散型のデメリット オリジナルの証明が難しい(事実上無い)
結局巨大バイナリを一番上手に扱えるのはどれ? どうせテキストなんかサイズも小さいしある意味バイナリだし。
>>607-608 テキスト向きかバイナリ向きかっていうのは集中型か分散型かの差っていうより
ツールごとの差が大きい。開発形態が伽藍的かバザール的か、開発者が一箇所に
いるのか離れてるのかって観点で選んだほうがいいと思ってる。
会社である程度きっちり設計して2〜3人で実装していくって形態ならsvnで十分まわせてるけど、
開発者が数人以上いるOSSのコントリビュータって立場のときはまじ分散型導入してくれって感じ
612 :
608 :2008/11/09(日) 07:13:50
>>609 「オリジナルがない」という点は大きなデメリットだと思うのですが使用していてどうでしょうか?
皆が同じソースを見ることが出来ない=AさんとBさんで同じソースについて認識が異なってしまう ということで。
Aさん:rev329で試験したけど、これこれこういう動作がおかしいよ。直しておいて。
Bさん:それrev332で修正済みです
みたいな会話をどうやるのかがわからない。
仕事の現場なら非常に良くある話だと思うのですが。
メリットの方はsvn+svk(使ったことはないですが)でも可能なような。
>>611 仕事のプロジェクトなので伽藍方式オンリーですね。
開発者は大体同じ拠点にいますが、東京3人北海道3人大阪・・・ということもありました(svnで問題なく回っていました)。
2〜3人で実装していく現場ってのは経験無いですなぁ。実装チームは5〜10人が普通。
>>612 あなたのような「分散型使ってないけどどうなの?」っていう人は定期的に見かけるけど
チュートリアル見ながら触ってみるぐらいやってみたらどうだろう。たいした手間じゃないよ。
>メリットの方はsvn+svk(使ったことはないですが)でも可能なような。
私はGitの前にsvkを使ってたけど、svkは遅すぎると思った。
あとオリジナルが無いという点については、Gitの場合はツリーに一意なIDが付くので問題ないと思う。
>>612 > 「オリジナルがない」という点は大きなデメリットだと思うのですが使用していてどうでしょうか?
オリジナルは決めとけばいいんじゃないか。集中管理のときと同じように、オリジナル用のサーバーってのを。
議論はそのサーバーにあるものに対してする。
push し忘れとか、pull した後 update し忘れとかが当面の問題になるんじゃないかなあ。
Mercurial 導入を提案しようかと自分で試用中だけど、ほかの人たちが使いこなせるとは思えないので、
今までどおり CVS にしようと思ってる。プロジェクト(リポジトリ)ツリーの好きなところからちぎって
持ってきて組み合わせられるような SCM はほかにはなさそうだし。
オリジナルが無いって語弊があるんじゃない? svnと同じように中央レポジトリを作ればそれがオリジナルになる。
>>605 そいやmercurialだけ単独スレないな
Linux板にgitスレあったのか。CVSはUNIX板だし…。 スレも分散管理ですか。
どうもありがとうございます。
>>587 >変更してるファイルがある状態ではrebaseは出来ないよ。
この制約はどういう理由からきてるんでしょうか。
変更したファイルがあっても merge はできるんだから、rebase ぐらいできてもよさそうですが。
上の話が本当なら Python が hg か bzr になるかってのは試金石だな
リトマス?
普通に考えて分散型の方が良いとしか思えないなあ
>>608 分散型はローカルでもバージョン管理ができるというメリットがある。
よくプロジェクト全体でSVN使っていてローカルではRCSというような
使い方をしている人がいるが、分散型なら1つのシステムで対応できる。
>>625 >よくプロジェクト全体でSVN使っていてローカルではRCSというような
>使い方をしている人がいるが、分散型なら1つのシステムで対応できる。
GitやMercurialは、RCSの代わりに使えるのがいいよね。
プロジェクト全体はSVNで管理して、自分用のブランチはGitやMercurialで管理するのが楽でいいや。
>>626 Bazaar も仲間に入れてあげてください(´・ω・`)
俺いままでずっとバザールって読んでたよ ダサイ名前だと思ってた
分散型はバージョン管理の入門用にうってつけなんだよね スタンドアロンで使う場合最も敷居が低い
>>629 え、違うの?なんとなくエリックレイモンドの
「伽藍とバザール (The Cathedral and the Bazaar)」
から来てるんじゃないかと思ってたが。
>>618 そういえば →(口語化)→ そういやぁ →(短縮)→ そいや
かけ声じゃないよw
>>619 rebaseは、reset + cherry-pick×n回 を自動化してるだけだから、マージとは違う。
たしかに、現在の変更をstashしてrebase後にstashから戻す、という作業も、
rebaseで自動でやってくれれば、もっといいかもしれないね。
ござーる
おおいなるマンション セザーーール というのがあったな。
>>633 ありがとうございます。
変更したファイルがある状態で rebase したいとき、stashする方法と、ダミー commit + reset HEAD^ を使う方法を思いついたんですが、
どっちがいいと思いますか。
つまり
$ git stash
$ git rebase origin
$ stash apply
$ stash clear
または
$ git ci -a -m 'dummy'
$ git rebase origin
$ git reset HEAD^
のどっちがいいかという話です。
Git はまだよくわからんので、たとえばダミーでもcommitするのはイクナイ!とかあれば教えてください。
セザールはカエサル(シーザー)のフランス語読み。
おおいなるマンション バザールでござーる の巻
github についてなんですが… 誰か他人のプロジェクト (1) git://github.com/誰か/プロジェクト.git をforkしてできた (2) git://github.com/自分/プロジェクト.git をいじっても、(1)にpull requestを出してマージされない限りは (1)に反映されることはないってことでいいんでしょうか?
hg qinit+qnewした状態でhg pushすると面倒なことになるんだけど 安全装置が付いてないのはなぜ?
>>641 はい、そうです。
他のひとのリポジトリを汚さないためのforkなので、当然です。
他のひとのリポジトリに書き込みしたいなら、そのリポジトリへのアクセス権をもらう必要があります。
>>628 ごめん、何がいいたいのかわかんない。
3行でまとめてくれ。
これじゃあBazaarのよさがわかんない。
>>644 リンク先は読んだ? 図解までされてものすごく解りやすかったぞ。
>>643 ありがとうございます。
やっぱりそうですよね…
こないだ自分のリポジトリを更新したら、勝手にfork元の
リポジトリも更新されたように見えて焦ったんですが
相手がpullしたってことなんだろうか。。
648 :
642 :2008/11/11(火) 12:29:09
>>645 pushじゃなくてpullだった
rm -rf repo myrepo
[email protected] export HGUSER
hg init repo
cd repo
date >file
hg commit -A -m "start"
hg clone . ../myrepo
hg qinit
hg qnew PATCH
for X in 1 2 3; do
date >>file
hg qrefresh
cd ../myrepo
hg pull
cd ../repo
done
hg glog --style=compact
cd ../myrepo
hg glog --style=compact
649 :
642 :2008/11/11(火) 12:30:08
+ hg glog --style=compact @ 1[qtip,qbase,tip,PATCH] 1a93f26efdf7 2008-11-11 12:27 +0900 alice | [mq]: PATCH | o 0[qparent] c96ce7235e6b 2008-11-11 12:27 +0900 alice start + cd ../myrepo + hg glog --style=compact o 3[tip]:0 1a93f26efdf7 2008-11-11 12:27 +0900 alice | [mq]: PATCH | | o 2:0 b3c2e24e33e9 2008-11-11 12:27 +0900 alice |/ [mq]: PATCH | | o 1 b6fb28c1e4ff 2008-11-11 12:27 +0900 alice |/ [mq]: PATCH | @ 0 c96ce7235e6b 2008-11-11 12:27 +0900 alice start
subversionでコミットしてる内容を、Google Codeみたくブラウザでも見れるようにしたいんだけど、 それってTracナンチャラみたいなのに移行しないとダメ?
ホゲーッ!!!ごめんなすって!viewナンチャラってので出来る感じね! ゴメンネゴメンネ
>>654 分散型を分散型として使わなくても良いって意味じゃね?
>>638 どちらでもいいと思いますよ。
私は普段git-svn使ってるので、よくrebaseすることになるんだけど、最近使うのはstashかな。
少し前のバージョンまではstashが無かったので、ダミーコミットしてやってましたが、
stashの機能自体、内部では同じようなことをやってるんだと思う。ソース見てないですが。
すごい遅レスだけど、分散型のメリットは一言で言うなら、 「リポジトリ同士で」履歴のマージ等の操作ができるという点では。 非分散型=集中型でも、手元にリポジトリ作ればローカル管理はでき、 ファイル自体は他のリポジトリに移せるけれども、 履歴等を他のリポジトリに移すとかってのはできない。 違うかな?
分散型は分散した運用が可能な設計であるが、集中型の運用も可能ということだよね。 反対に集中型が基本のシステムで分散的な運用が必要になる時はものすごく苦痛。 集中型のシステムで開発してたのが、会社合併、アウトソーシング等で分散型の運用が 必要になったことが二回ほどあるがかなり苦労した。
使ったことないが、bzrにはwikipediaにこういう記述があるから
> 中央サーバを使わない純粋な分散型バージョン管理システムと比べて、
> Bazaarは中央サーバ有り・無しの両方での動作をサポートしており、
> 同じプロジェクトに対し同時に両方の方法を使うことも可能である。
>>623 が言いたかったのはそのこと(そういう機能?)じゃないか。
自分の作業するところは細かくコミットしたいから、こんなことやってる。 ちょっと面倒だし、もっと良い方法はあると思うけど。。 中央サーバ-からcheck out - A coしたやつからbranch - B Bをいじって適当にコミット 適当なところで、AでBの変更を取り込み Aをコミットして中央サーバへ 更新を持ってくるときは、Aでupdateして, Bでpullする。
>>659 >> 同じプロジェクトに対し同時に両方の方法を使うことも可能である。
これすごいな。bzr++
集中型の利点は、チェックアウト→コミットの間の ネットワーク転送量が少ない(記憶領域の使用量も少ない)ということかな。 分散型だと、リポジトリ全体を持ってきたりして、転送量がすごいことになったりするでしょ。 たとえば100GBのリポジトリをcloneすることを考えてみて。
| \ __ / _ (m) _ピコーン |ミ| torrentみたいに分散させれば / `´ \ ('A`) ノヽノヽ くく
CoreserverにTracってのを入れてみたいんだけど難しくて判んないよ〜(´・ω・`)
>>664 レンタルサーバーか。
コンパイルしてホームにつっこむだけじゃないの?
Tracは依存関係がものすごいからな。 レン鯖の制限があると苦労しそうだ
>>667 ありがとう。いってきまーす。なにかヒントがあると良いな〜(´・ω・`)
mantisっていうのは、TracやGoogle Codeみたいにファイル変更の差分が見れるものではない?(´・ω・`)
>>662 それ分散型か集中型かに関係なく仕組みによる。独立(standalone)なら全部取得だし、軽量(lightweight)なら一部のみ取得。
svnは軽量チェックアウト。
mercurialは独立ブランチ。
gitは軽量ブランチ。
bzrは独立チェックアウト(bzr co)、軽量チェックアウト(bzr co --lightweight)、独立ブランチ(bzr branch)。軽量ブランチはbzr cbranch --lightweightやbzr branch --stackedが当てはまるのかなぁ、良く分からね。
ああ、bzr cbranch --lightweightは勘違い。 他にも間違いありそうだから補足頼む。
日本語ディレクトリとかファイル名をバリバリに使ってるプロジェクトを 分散型バージョン管理システムで管理したいのですが、何を選択すべきでしょうか? ちなみに環境はwindowsです。 (svkは試したのですが、あれは重すぎたのでそれ以外で)
使えるかどうかだったらhg, git, bzrのどれも使える。 ファイル毎にファイル名のencodingが違うとどれもダメだけど。 windowsだけならcp932だけになるのでどれもOK。 ただしTortoiseSVNのようなものを期待しているなら、 Hgにあるけどhgkだけが表示上は文字化けする、けど問題なく使えてる。 日本語ファイル名を使いたいならSVNが一番いいけど、 分散型でどれを選択すべきかはどれも微妙。
svn, bzrは基本的に問題ないだろう。
gitはWindowsで日本語ファイルはダメダメですよ その前に、gitは日本語ファイル名を使うようなユーザー間ではまともに使えないと思うよ
集中型は svn、分散型は git になるのが加速されるのだろうか?
gitはないな つうかいつまで集中型使われるんだ
☆ チンチン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < Bazaarの対応まだー? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
これで日本語ファイルのエンコード対応パッチも投げられるか。
国際化するなら、内部ではunicodeで処理、それぞれの環境でファイル名変換が妥当?
集中型はずっと使われると思うよ、svnで充分なこと多いし。 分散型はしばらく戦国時代だろうな。天下統一は遠いとみた。
Pythonで実装されてるやつは、Python3.0ベースになれば 文字コード問題は解決されそうだけどなぁ。 俺は、hgもgitも天下を取らないうちに次の新星が出てきて そっちが天下を取ると思っているw
>>684 十分ありえそうな話ですね。
つうかgitでもhgでもbzrでもいいから、
一番優れた物がさっさと天下取ってほしい。
戦乱状態だと、使いつづけるのに不安が残る。
集中型は今はsvnって決まったも同然だから楽なんだけどね
>>677 Windows(Cygwin)のgitで日本語ファイル名を普通に使ってるけど
でも、やっぱプロジェクト内に浸透させるにはtortoise*が必要だわ
>>687 gitで日本語周りどういう風に運用してます?参考までに教えてください。
私が以前試したときの話ですが、
・UTF-8対応ターミナル用意した上で(もしくは、nkfとか通す前提で)
・コミットログは UTF-8
・エディタ(GIT_EDITOR)はデフォルトでUTF-8で起動させる必要がある
(UTF-8で起動できるソフトを使う。例:GreenPadなど)
・日本語ファイルは?
>>312 の問題があって、ここでオレはあきらめてしまった口だけど・・・
SJISだとWindows上ではOKだけど、
別プラットフォームだと×とかだったりしそうで
俺の周りだと、UTF-8ターミナル+cygwin+コマンドラインという環境用意させるのと、
日本語ファイル使う運用が矛盾をきたしたので結局やめてしまった。
(個人的にはオプソとかの開発とかパッチ作ったりには使ってる)
>>689 普通に、と書いてしまいましたが少しウソ。
Cygwin は ntf-8パッチの dllを使っています。
git は core level でファイル名の encode は考慮しません。
なので、ファイル名は utf-8 で統一します。
だた、これは subversion 等でも同じこと。
ツール群が良きに図らってくれるか、自分でそうするかという違い。
結局(ファイルの中身以外)utf-8で統一するなら、何使っても問題無い
ということですけど。
> Cygwin は ntf-8パッチの dllを使っています。 はあ。そうですよね。まだ対応してませんもんね。 > ツール群が良きに図らってくれるか、自分でそうするかという違い。 こりゃまた「敷居」って言葉を考えさせる発言ですね。
692 :
デフォルトの名無しさん :2008/11/16(日) 00:46:20
>>690 Subversionはファイル名のエンコードはロケールに合わせてくれるので、
日本語ファイル名はOSXでのNFD問題以外は問題はないな。
> 結局(ファイルの中身以外)utf-8で統一するなら、何使っても問題無い
これはOSXとLinuxで日本語の濁点を含むファイル名を利用してみれば、
そんなに簡単ではないということが分かるハズ。
694 :
689 :2008/11/16(日) 00:59:26
Windows(笑)
全角英数字使う奴は信用ならん
とはいえBzrにTotoiseがでたんだね。試してみる価値はありそう。 あとは速度がhg以上なら乗り換えるんだが。
>>696 やっぱり日本語だめだったよ。
TortoiseBzrで Init して日本語ファイル名をTortoiseBzrでaddし、
ファイルの中も日本語にしした結果、
TortoiseBzrでdiff → ファイル名は日本語で表示されるが中身が文字化け
cmd.exe上でdiff→中身は日本語で表示されるがファイル名が文字化け
ちなみに1.9のレポジトリフォーマットにしてみた。
あとGeneral Bazaar Options.. が開かないがバグかな。
それと、デスクトップ上でInitしようとしたらできなかった。
空文字入りパスは対応できない様だ。
ちょっと使っただけでこれだけ不具合が見つかる様じゃ、
まったく実用に耐えないね。まぁ、今後に期待はするが。
>>696 MercurialはUnicodeベースに変更できるからもう問題ないだろ
どこに問題があるんだ?
TortoiseBzr入れてみたんだが、そもそも日本語フォルダで Init できないのは なんか設定ミスってる?
つかこれだけ国際化についての問題意識が広まっていながら この体たらくって一体なんなんだろうね
海の向こうの変な文字のことなんて気にしないニダ
海の向こうはマジで 「『漢字』などという象形文字を使っている国は文化レベルが低い」 と思ってるらしいぜ。
自分らの文字は letter で漢字は character ですって。笑わせますよね。
よく体に漢字を彫ったりしてるじゃんw 自分にないものは格好良く見えるのか
全角英数字使う奴は信用ならないというのは正解だったということか。
>>699 あー、diffは仕方ないね。Subversionだって同じだろ?
ああ、「ファイル名」は日本語に対応しているけど、「ファイルの内容」は
文字コードとか気にせずにそのまま記録しているだけだから、
文字コードの自動認識してくれないdiffで見ると中身文字化けする。
WinMergeのような、文字コードを自動認識してくれる外部diffを使わないと
いけないな。
デスクトップ上でも空文字(スペース?)入りパスでもInitできたけど、なにが違うんだろ
>>709 すべてwindows上でやってるのにそれはないだろ。
subversionで同じ事やっても文字化けなどしないよ。
文句言うだけじゃなくて、日本人がもっと開発に参加して 日本語バッチリにしてやろうぜ。
>>711 いやいや、俺Windowsでも普段UTF-8でテキストファイル書くし。
エンコーディングの自動判別していない限り、「たまたま」テキストファイルの
エンコーディングと表示に使うエンコーディングが一致したときに化けずに
表示されるだけ。
つーか中国でも普段使いの文字コードはだいたい1つだし、 環境によって文字コードを3種類から使い分ける必要がある国なんて日本ぐらいなんじゃね 日本人が対応するしかないだろ
>>715 何言ってんだ
中国のほうが環境によって使われる文字コードは多いだろ
日本語の EUC-JP(UNIX系),シフトJIS(DOS系),JIS(メール)に対応するものが
中国にもある上、繁体字・簡体字の区別もある
>>718 Windowsでまともに動かないのにwww
作ったやつは頭がいかれてんじゃねwww
>>717 中国の 繁体字 簡体字 は文字体系そのものが違うから関係無い話
繁体字で保存したテキストを簡体字で読むこともあるとか考えてたなら帰れ
721 :
デフォルトの名無しさん :2008/11/16(日) 22:34:07
>>720 バカの言い訳は見苦しい
そもそも何の話をしてるか理解してるか?
>>721-722 何の話をしてるか理解していないようだから言っておくが
中国では繁体字 は big5 簡体字は EUC で FA だ
日本のように保存したファイルを別の文字コードに変換して表示したい
=Windows でコミットしたファイルを Unix でも見たい
と言った状況でも何ら問題無いため文字コードの変換という実装は必要無い
=現在の実装でも運用にさしたる問題は生じない
=運用に問題が生じる日本から声を出していかないと開発側には問題が伝わらない
分かったなら俺と一緒に英語メールの書き方勉強しろや
簡体字はgbの方が主流。適当に語るのはやめれ。
EUC-CN と GB は同じだから。
bzrのdiffがコードページを無視してutf8を使ってるという話が、 文字コード自動判別の話になり、 中国語の文字コードの話になって、 文字コードを勝手に変換してプラットフォーム間の差異を吸収して欲しいという話になりました。 終わり。
出力時にコンソールのコードページをcp65001にすればいいだけじゃ?
中国はどうでもいい。 日本語環境だけが興味あるんだが。
日本語環境 svn >> git > hg >> bzr でFA?
svn = bzr > hg = git
gitとhgは中身がロケール依存なので個人的にはなしの方向だな
gitがその位置ってのはありえないだろう
おいおい、windows環境だけで化け化けの bzrはどう見ても最下位だろう
>>734 化けて見えるのはdiffの表面上の問題だけで、リポジトリの中身はしっかりしてるから。
diff も、 bzr diff | vim - みたいにエディタで見れば問題ない。
svn, bzr:
ファイルの内容はそのまま、ファイル名はUnicode
(Windows と Linux で日本語ファイル名のファイルを行き来させても大丈夫)
git, hg:
ファイルの内容はそのまま、ファイル名もそのまま
(Windows と Linux で日本語ファイル名を行き来させるとどっちかで化ける)
svnもcygwin版じゃダメだぞ
>>736 cygwinはlocaleないからなぁ。。。
UTF-8版cygwinならなんとかなるのかな。
結局どれやねーん
名前 bzr >>> hg >> git # ギット(笑) 商売の神マーキュリーから取った"気が変わりやすい"(笑) コマンド名 hg >> git >>>>> bzr # 打ちやすさから。hgとmercurialの差が大きすぎるのは考慮してない。 使いやすさ ??? # 主観入るだろうから省略 Webインターフェース bzr > git >>>> hg # bzrはloggerhead(hgwebの派生)ね。hgwebの使いにくさは異常。 ホスティングサービス bzr >>>> git >>>> hg # launchpadはバグトラッカー付きでいたれりつくせり、githubは普及している、bitbucketは… 拡張性 bzr >>>> hg >> git # gitはC言語だからしゃーねーわな、でもgit-svnの酷さはフォローしない。あとhgは内部APIがショボいとか。プラグインの数の少なさからも裏付けられる。 設計の良さ bzr >> git > hg # 抽象化度 実装の良さ git >>>> bzr > hg # diffやmergeのアルゴリズムとか SVNとの親和性 bzr >> git >>>>>>>> hg # bzrはbzr-svn、gitはgit-svnで評価。 使用率 git >>>> hg > bzr # Debianのpopconのデータからなので正確では無い 速度 git >>>> hg = bzr(1.9) >>>>> bzr(pack-0.92) # ちゃんと計測していない…。ちゃんと計測したいが…。 将来性 git >>> bzr >>> hg # gitはLinux Kernelで使われ続ける、bzrはUbuntuで使われ続ける、hgは…? 国際化 ??? # どれも完璧じゃない。cygwinに関してはcygwin側の問題だからそちら側で解決してもらえ…と言いたいけど、確か開発元がRHだから無理だろうなぁ(RH/Fedoraは未だに閉鎖的と感じる)。 とりあえず速度厨はgitを、拡張厨はbzrを、どっちつかずはhgを使っておけば良いと思うよ^^
たぶん、日本国内だと、日本語解説サイトの数や充実度と、解説本の数で 勝負が決まってしまうと思う。Fedoraが日本でだけ万人向けディストロとして 流行ったみたいに。
hg のフォローしておくと、まず Mozilla や Sun では使われてる。 あと、コマンドが少なくて良い。同じことをやるのに迷う必要が無い。 一番良いのが基本的に push pull が HTTP で完結してること。 FW の設定いらんから大概使える。 Tortoise も一応あるし、速度 git 拡張 bzr 可搬 hg ってことにしといて。
>Mozilla や Sun では使われてる いや、そうでなくVCS自体の開発の後ろ盾の話。gitならLinuxのカーネルコミュニティ、bzrならCanonicalだけど、hgはどうだっけか。 >コマンドが少なくて良い --helpに出てくるコマンド多くね? むしろいくつかの面白いコマンドがあるところがhgの利点だと思うが。 >push pull が HTTP で完結 bzrもgitも対応してね?
git って HTTP で完結してたの?
>>746 http://en.wikipedia.org/wiki/Comparison_of_revision_control_software Bazaar: HTTP, SFTP, FTP, custom, custom over ssh, email bundles, WebDAV (with plugin)
Git: custom, custom over ssh, rsync, HTTP, email, bundles
Mercurial: HTTP, custom over ssh, email bundles (with standard plugin)
>>747 FTP, SFTPがあることにびっくりだよBazaar!
>>735 表面が化けてちゃ、おいしさも半減なわけですが。
いちいちvimでなんかみたくないし、Tortoiseで化けるのは
設定でなんとかなるの?
>>750 Tortoiseの方は.bzr/.branch/branch.confで
「encoding = エンコーディング」を指定したら
logメニューからの表示は文字化けしなくなった。
diffメニューからの表示は文字化けするようだ。
コマンドラインから起動する場合はbzr qdiff --encoding=ARGで
一回実行すればエンコーディングのオプションはbranch.confに記録される。
>>741 Gitのマージアルゴリズムはhgやbzrよりも劣るんじゃなかったっけ。
最近はそうでもないのかな?
>>748 そう。さくらのレンタルサーバーとか、FTPやsftpが使えれば、サーバーに
bzrをインストールしなくてもクライアントにだけbzrがあれば使えるのが強み。
これに慣れると、gitとかサーバー側にインストールするの面倒。
>>750 中身がしっかりしてれば、表面なんてどうにでもなる。
あるひとつの条件で、たまたまsvnが化けずにbzrが化けたからって、
svnの方が良いと考えるのは軽率すぎる。
bzrで化けるときの対策方は
>>751 が教えてくれたけど、TortoiseBzrで
WinMerge使えるようにはしたいね。今忙しいけど、手の空いたときに
試してみる。
>>754 sshfs でマウントしてしまえば git だろうが hg だろうが自由自在だと思うが.
Windowsでsshfsとかできないじゃん sshfsする一手間が面倒じゃん そもそも、安いレンサバだとssh使えないでFTPだけ使えるとかあるじゃん。
>>755 bzrは日本語全く問題ないんではなかったのか?
問題ありありなわけだが。嘘つき。
単一プラットホームで化けるなんて、中身がどうのこうの以前の問題だろ。
いくら、小手先の対策示しても意味ない。
>>758 そもそもdiffってのは、二つのファイルのエンコーディングと、ファイル名のエンコーディング、
合計3つのエンコーディングが混ざってるから、「完全」なんてありえないんだよ。
たとえば、コンソールでdiff出力してファイル名が化けるのは、ファイル名をUTF-8で出してるから。
svnで化けないって事は、svnはlocaleやコードページに変換してるんだろうな。
でも、そのdiffで作ったパッチを、メールでLinuxユーザーに送ったらどうなると思う?
「問題ない」といってるのは、「ソ連」みたいな0x5c問題や、環境依存のファイル名エンコーディングを
そのままリポジトリにぶち込んでしまってほかの環境でファイル名が化けたりといった、日本語
ファイル名を扱う上での話をしてるんだよ。
それってdiff一般の話じゃないよね。 bzrのdiffの実装がそうなってるってこと?
>>760 コンソール上のdiff一般の話だよ。
diffが化けないのは、(1)コンソール、(2)ファイル名、(3)二つの入力ファイルの内容
すべてのエンコーディングが一致したときのみ。
ファイル名に関しては、diffで作ったパッチを送信したりすることを考えるとエンコーディングを
統一するべきで、統一するならUTF-8が妥当。なので、コマンドプロンプトをchcpでUTF-8
モードにするか、 diff | gvim - みたいにテキストエディタで見るしかない。
Linux でも、 diff の出力はリダイレクトでファイルに保存するかパイプで直接エディタで見るのが基本。
Bazaar Plugin の extdiff を使えば、外部の diff プログラムと連携できる。Windowsなら
WinMergeとか使うと吉。
>>755 せっかくなので外部コマンドとエイリアスの使い方を書いておきます。
当面はコマンドツールとの併用になるでしょうから。
bzr diffでWinMergeを使いたいならオプションとして--using=WinMergeを指定します。
WinMergeの注意事項としてはmlang.dllによるコードページの検出オプションを
有効にしていないと付けないと文字化けします。
オプションの入力を省略したければbazaar.confファイルを
編集してエイリアスを設定します。
設定ファイルの位置はbzr versionで見つかります。
[ALIASES]
diff=diff --using=WinMerge
ちなみに、GUIのdiffプログラムだとテキストエディタと同じで文字コード指定が 簡単にできたり自動認識したりすると良くて、その点 TortoiseBzr の中の qdiff は 機能不足。(これはBazaarの問題ではないが、周辺環境が揃ってない一例) 俺はソースをはじめテキスト類は全部UTF-8で書いてるから qdiff でも全く文字化け しない。 Windowsも早く日本語の標準マルチバイトエンコーディングをUTF-8にすれば良いのに、 いつまでcp932なんて使ってるんだろう・・・
cp932なのはwindowsが悪いけど、 今のbzrだと文字コードのせいですんなり使えないね。
Mercurialのレポジトリをhgwebdir.fcgiで公開してるんだけど,これってすごく重くない? うちのサーバがボロってのもあるかもしれないけど,大きめのファイルを開くと一気に ロードアベレージが跳ね上がってしまう. pdfファイルに至っては選択するといつまでたっても応答が返ってこないでCPU食いつぶしてるし. これってこういうもんなの?
>>765 スペック、構成、設定、ロードアベレージは具体的にどのプロセスが、IOとCPUのどちらで
重いのか、hg serve と比べてどれくらい遅いのか。
これくらいまとめてから質問しようぜ。
767 :
765 :2008/11/19(水) 10:04:11
>>766 単に愚痴るだけのつもりだったんだけど,そのくらいの情報は出しとかないと
毒にも薬にもならんわな.すまん.
サーバ機のスペックは
CPU: Celeron 2.4GHz (詳しいことは忘れた.4年前くらいのセレロン)
メモリ: 256MB
OS: Ubuntu 8.10
このマシン上でlighttpdからhgwebdir.fcgiを呼び出してる.
hgwebdir.fcgiはHGENCODINGをUTF-8に指定したくらいで,
他は特ににいじってない.
各レポジトリはbz2,gz,zipでのダウンロードを許可していて,
pushにはDigest認証が必要にしてある
で,pdfを開くと応答が返ってこないんだけど,このときCPU使用率が
跳ね上がっていることを確認済みで,IOなどは特に異常な数値は示し
ていない.原因になっているプロセスはwebサーバを走らせているユー
ザの権限で動いている
python /usr/share/hg/cgi-bin/hgwebdir.fcgi
他の形式(テキスト形式のファイルや画像)だと,pdfよりサイズが
大きい場合でも一時的にCPU使用率があがるものの,きちんと表示される.
あと,hg serveだと動作が軽快にはなってるみたいなんだけど,
pdfを開こうとすると上で書いたのと同じような症状になって応答が
返ってこなくなる.
>767 知らんけど、内部でPDFをテキスト化するツールとか、Ghostscriptとかを 呼び出そうとしてトラブってるんじゃないの? Prostscriptの記述がバグって 無限ループしてるとか、展開サイズが大きすぎてメモリ不足になってるとか。
769 :
デフォルトの名無しさん :2008/11/19(水) 12:10:57
TortoiseHg 0.5での質問があります。 ・日本語ログがupdate revisionで化けるので、事実上日本語ログが使えなくない? ・GUIで hg mv する方法はないのでしょうか? ・pushした日本語ファイル名がWindows以外の環境で化ける、というのは本当でしょうか?
770 :
766 :2008/11/19(水) 12:21:38
>>767 ん、メモリが少なめだから、全体的にロードアベレージが高いのは
リポジトリがキャッシュからすぐに消えちゃってる可能性がある。
pdfに関してはIOが低いならメモリの問題じゃないんだけど、Mercurialは「pdfだけ」
という処理はしてない。変なプラグインは入れてないよね?
ということで、こっからエスパー。
pdfって、ブラウザプラグインで、ブラウザの画面内に表示してない?
その場合、HTTPクライアントはブラウザじゃなくてプラグインになってるから、
それが分割ダウンロードとかしようとして負荷をかけてる可能性がある。
Adobe Readerのブラウザプラグインを無効にして、ブラウザが
「テンポラリファイルに保存→スタンドアロンのAdobe Reader 起動」
するようにしてみて。
あと、hg serveで軽くなるなら、fcgiの設定が良くない(メモリ食い)という可能性がある。
fcgi使ったこと無いんだけど、スレッド数やプロセス数を減らせない?
lighttpd も同時接続数を3くらいに減らしてみて。
>>769 最後の問題、ファイル名エンコーディングをロケールから判別して、リポジトリに
入れる前にUnicodeへデコードするパッチを日本人が本家MLに送ったんだけど、
「ファイル名はファイルの内容と同じでバイナリ弄らない」とか言われてrejectされた。
なので、今は win32mbcs という拡張で対応しないといけない。一人でも対応してない
ヤツがpushしたら、そのリポジトリはcp932ファイル名で汚される。
ただし、これはコンソールのエンコーディングがUTF-8じゃない場合の話で、
TortoiseHgだと最初からUnicodeでファイル名を使ってるかもしれない。
俺は TortoiseHg 使ってないんだけど、コンソールとTortoiseで日本語ファイル名を
やり取りしてみたら?
772 :
769 :2008/11/19(水) 12:36:20
> ・pushした日本語ファイル名がWindows以外の環境で化ける、というのは本当でしょうか? そもそも、Mercurialでは日本語ファイル名がコミットできないようです。 TortoiseHgでは、コミットウインドウでファイルを追加してもcommitボタンが押せず、 全選択チェックボックスを押すとcommitボタンが押せるのですが、 正常コミット時のように閉じてくれず、hg stで確認しても変化なしでした。 コマンドラインのhgでは、 > hg ci -A -m "initial commit from command line" adding ・が怖い、・の・フトSJIS.txt removing ・が怖い、・の・フトSJIS.txt ・が怖い、・の・フトSJIS.txt not tracked! ・が怖い、・の・フトSJIS.txt does not exist! nothing changed というように言われ、hg stで確認しましても変化ありません。 実はWindowsでのhgは日本語ファイル名に対応してなかったのですね・・・。 TortoiseHg 0.5と付属のコマンドラインのhgで確認しました。 ファイル名:表が怖い、噂のソフトSJIS.txt 中身は適当な感動コピペをSJISで保存です。
773 :
769 :2008/11/19(水) 12:40:13
>>771 ああ、わかりました。
標準でSubversionのようにUnicodeへのデコードなどはやってないわけですか。
で、ロケール(日本語WindowsだとSJIS?)で入ってしまう、と
(そもそも入りすらしなかったけどw)
ファイル名とかログのエンコード周りは基本的なことだと思うのになあ。
OSSで使うならなお更なのに・・・
>>773 入りすらしないのは、0x5c問題だと思うよ。
0x5cが入ってないファイル名だと、コミットはできるけど、そのままリポジトリに入っちゃう。
(から、win32mbcs が必要。 mercurial.ini の [extensions] で win32mbcs= という一行を追加)
そもそも「ファイル名はバイト列として変更せずに扱う」というポリシーが間違ってると思うけど、
外国人には伝えにくいからねぇ。gitは最初からWindowsなんて気にしてないし。
Python3.0になると、文字列=unicodeになるから、「ファイル名のバイト列」自体消滅する。
MercurialもPython3.0対応する時点で嫌でもポリシーを修正するはず。
その前にBazaarに乗り換えたほうが幸せな気もする。
775 :
765 :2008/11/19(水) 13:03:46
>>768 Mercurialのレポジトリブラウザってpdfをテキスト化して表示するの?
コード眺めた感じそれっぽい部分は見当たらなかったけど.
>>770 > pdfに関してはIOが低いならメモリの問題じゃないんだけど、Mercurialは「pdfだけ」
> という処理はしてない。変なプラグインは入れてないよね?
そうなんだよね.なんでpdfに限ってこんなことになるのかがよくわかんない.
プラグインもなにも入れてないです.
> Adobe Readerのブラウザプラグインを無効にして、ブラウザが
> 「テンポラリファイルに保存→スタンドアロンのAdobe Reader 起動」
> するようにしてみて。
やってみたけど,症状はかわらずです.
というか,テキスト表示できないタイプのファイルってチェンジセットから
選択すると,最初に"これはバイナリファイルですよ"みたいなページに
遷移するよね?そのページのrawの項目を選択するとダウンロードが始まる,
みたいな.
pdfの場合,チェンジセットから選択したあとの最初の遷移の段階でとまって
しまうので,そのあたりは関係ないような気もする.
> あと、hg serveで軽くなるなら、fcgiの設定が良くない(メモリ食い)という可能性がある。
> fcgi使ったこと無いんだけど、スレッド数やプロセス数を減らせない?
> lighttpd も同時接続数を3くらいに減らしてみて。
いちおうlighttpd側でmaxprocsを3にはしてあるんですけど,だめですね.
776 :
769 :2008/11/19(水) 13:05:29
>>774 > (から、win32mbcs が必要。 mercurial.ini の [extensions] で win32mbcs= という一行を追加)
いけますタ!
hg と TortoiseHgの両方でいけることを確認しました。
どうやらすごいFAQみたいですね。
それにしても、TortoiseHgがコミットログやらファイル名やら化けまくりで実用に耐えられないなあ・・・
プログラマはそんなでもないけど、デザイナとか複数人で使う時に、
英語ファイル名、英語ログ強制はまず使ってもらえないわ w
バージョン管理ソフトとかこういう環境的な物の導入には、
手回しが一番重要だということはわかっているつもりだけど、さすがに致命的すぎる。
> その前にBazaarに乗り換えたほうが幸せな気もする。
そちらを検討してみます。
いろいろ教えてくれてありがとう。
777 :
769 :2008/11/19(水) 13:06:19
> バージョン管理ソフトとかこういう環境的な物の導入には、 > 手回しが一番重要だということはわかっているつもりだけど、さすがに致命的すぎる。 バージョン管理ソフトとかこういう環境的な物の導入には、 ソフトウェアの使い勝手よりも、むしろ 手回しが一番重要だということはわかっているつもりだけど、さすがに致命的すぎる。
778 :
766 :2008/11/19(水) 14:24:59
>>775 あらら、エスパー失敗か。
じゃぁ、その pdf ファイルの先頭 4096 バイト内に 0 というバイトが存在しないと予測。
Mercurialは先頭4096バイトの中に 0 が有るかどうかでバイナリとテキストを判別しているから、
テキストだと思って頑張って表示しようとしている可能性がある。
>>774 > (から、win32mbcs が必要。 mercurial.ini の [extensions] で win32mbcs= という一行を追加)
環境変数 HGENCODING に cp932 を設定するのとでは何か違いある?
780 :
765 :2008/11/19(水) 17:35:50
>>778 それであたりっぽい.util.binaryが問題の部分だね.
開発ブランチだとファイル全体で0というバイトの有無を判定してるので,
そっちを使ってみることにするよ.
今サーバが落ちてるので,結果がわかり次第また書き込むわ.
Mercurialは、どんなにTortoiseの完成度が高くなっても デザイナーには使えない。概念的な部分の複雑度が高すぎる、 ってのが俺の印象だな。 プログラマーさえ、チームの2割もまともに理解できる奴いないと思う。
PDFってテキストファイルの中に一部バイナリ埋まってるような構造だからなぁ
783 :
765 :2008/11/19(水) 20:44:14
765です。
>>766 さんの指摘で問題解決したので報告します。
問題の原因はファイルがバイナリかテキストかを判定するutil.binaryが、ファイルの先頭4096バイ
ト中に0というバイトがあるかどうかをチェックしていたことでした。
なので、この問題はutil.binaryを書き換えることで解決可能です。最初は開発版を使おうかと思って
いたけど、書き換えのみでとりあえず解決できたのでそうしました。ちなみに、バージョン1.0.1
のものを書き換えました。
書き換え自体は簡単なのでここには書かないけど、わからなければ開発版のコードを見れば大丈夫。
以上報告でした。付き合ってくれた方々ありがとう。
git format-patch でできたパッチを適用するのは git am しかないんでしょうか。 メールボックスとかシランので、単に git format-patch でできたパッチを適用したいだけなんですけど。
>>784 git am 0001-patch-name.patch
でいけました。メールボックスじゃなくてもいけますね。すんません。
hgのwin32mbcs拡張は前見たときは単に0x5c問題だけ回避してるように見えたんだけど リポジトリに記録されるエンコーディングをユニコードにしてるって本当?
>781 基本的に理解力の低い人は、理解できない部分は無視してくれるので(例外は居るが) まずはバックアップ支援ツールとして広め、ちょっとずつ高度化してくのが吉かと。
>概念的な部分の複雑度が高すぎる ってのを読んだ限りだと、こいつは自分で使ったことが無いんだろうな
>788 いや、使ってみた感想だよ。俺が主に使ったのはLinux版のコマンドラインでだが。 他のメンバーは、より簡単なSubversion + TortoiseSVNでさえ、何度も繰り返し教えて やっと使えるようになった状態だし、デザイナーが触るファイルにはロック機構が要ると思う。 プログラマでさえ、衝突時のマージがうまく出来ない奴も居るし、別branchの変更点を trunkに取り込む為のマージ操作が出来る奴も限られてる。 で、この現状を見た時、より難解なMercurialを無事に導入出来るとは思えなかった。
svnの操作がどうこうよりもSCMについての根本的な理解が欠けてるだけなのでわ
791 :
766 :2008/11/20(木) 21:03:38
>789 だからまずはバックアップツールとして使って貰えと。 いきなりコンフリクトの解決方法云々は、性急過ぎる。 SCMの歴史を追うように、RCS的な使い方から順に、 少しづつ教えていった方が理解は早いぞ。 というか、いきなり高度な事を教えると基礎がおろそかに…
>>789 俺もチーム内で広めようと思っているんだけど、
こんなの使えねー、っていうのをなるべく避けるいい方法ないかね。
まずは、
バックアップツール=個人で使ってもらう
↓
?
↓
補完キボン
バックアップツール=個人で使ってもらう ↓ 毎日終業後に、SCMボランティアとして >793 が各メンバーのワーキングディレクトリを チェックして回り、trunkとマージしてあげる ↓ 「>793 っていい人だよね」
1年くらい前にSubversionを使わせるようになったけど 使わせるにあたって最近は分散型が流行ってて こんな事が出来るようになると言っておいた 慣れてくると、こんな事が出来るようになると便利なのにって 思うようになるから、予めそう言う知識の断片だけを 頭に入れて貰ってから使わせてる で、最近は分散型にも徐々に興味を持ってくれるようになった 問題は俺がSVKしか使えないことなんだけど
svnのコマンドを拡張して分散型として使わせてくれたらうれしいんだけどね。 そもそもコンセプトが違うし無理か。
>>796 それが svk
ただし、サイズ的にも速度的にも効率悪い。
あ、あと、Bazaarリポジトリを svn:// プロトコルで見せようというプロジェクトもある。 まともに開発されてるのかは知らないけど。
gitはコマンド違いすぎるだろjk
>793 (1)バックアップツールとして広める (2)ある程度慣れてきたら、ブランチを切ったりマージする方法を教える。 他人の持ってるファイルを修正する必要が出てきた時や、 複数のバージョンを管理しなきゃならなくなった時を見計らって教えると良いかも。 (3)頃合を見計らって集中管理を始めるか、分散型だったらpush/pull等を教える。
・diffツールとして広める のほうが良くね?
俺はファイルサーバ(レポジトリ)に自動でアップロード・ダウンロードを してくれうソフトとして広めた。 これだと考え方が集中型に固定されてしまう気がしないでもないが……。
SubversionのVが大文字・・・
修正履歴というと ChangeLog のこと?
>>805 確かに「大恥かくでしょうがww」って書いといて SubVersion はないよな。
>>806 ChangeLog をソースのどこかに入れてるところもあるけど、
>>804 のリンク
先が言ってるのは
// int i = 10; // DEL: 2008/11/10: Bug 1234 by ○○
int i = 11; // CHG: 2008/11/10: Bug 1234 by ○○
float f = 1.23; // INS: 2008/11/09: Bug 1230 by △△
みたいな奴だと思う。
// add 2008.11.22 nanashi-default hoge.huga(); // add end 2008.11.22 nanashi-default 前の会社これだったな。CVS入れていても。
>>808 うちもそうだった……
つかコーダの人はCVS使えない
(結合試験完のソースを管理者に渡してコミットしてもらう)
辺りが間違いの元だったんじゃないかと……
>>808 うちもSubversion使ってるのにもかかわらず、そうする奴がいる。
本来のソースが見づらくなるんだよな。
> (結合試験完のソースを管理者に渡してコミットしてもらう) 刑務所みたいなふいんきを想像した
>>810 いるいるwww 俺はコーディング規約で明確に禁止した。
そういう奴らはDiffの使い方がわかってないんだよ。 TortoiseSVNやRapid入れて過去ログとの比較を教えてやったら二度としないと思うけどな。
コミット時にフックを掛けて弾くのも効果ある
>813 diffの使い方が分かってないと言うよりは、blame/annotateの使い方が分かってないんだろ。
blameはよくわからん
TortoiseSVNなら、blameの結果が専用ビューワーで超見やすい。
ところで、 いい加減TortoiseSVNのアップデートは自動でできるようにならんかね? アップデートのたびにホームページ行ってダウンロードして上書きインストールしてから再起動・・・って いちいち面倒だっつうに。
アップデートのたびにホームページ行ってダウンロードして上書きインストールしてから再起動するプログラムを作る
それこそsvn updateで行えるべきだ
diffはちょっと馬鹿なとこがあって、メソッド1つ追加したら 次のメソッドの説明コメント1行目まで差があることになったりするよな。 確かにそういう解釈にならんことも無いんだが、 あれ、どうにかならんかなあ。 } //------------ +//func2 +//------------ +void func2 () { + ... +} + +//------------ //func3
異なる行を取る仕様上、そういう動作にならざるを得ないのでは どうしても気になるならコメント一行目が違うように記述するとか…? // func2 -------- // 説明 // ------------- // func3 -------- うーん…
diff はコメントとかを意識してるわけじゃないからなあ。
言語仕様を意識した diff を作るか、
>>822 のバカな認識を
変えるしかないと思う。
>>824 言ってることはそれなりに正しいのに、たったの三文字で台無しだ。
コメントを関数の中で定義すれば? void func2 () { //------------ //func2 //------------ ... }
ここでpythonのコーディング規約が優れていることが判るわけですね。
>>825 三文字? もしかして「バカな」に逆切れ?
>>826 ソースの見辛さと diff の見辛さの二択なら、ソースの方を優先すべきだと思うが。
ずらすだけならむずかしくない
git add したファイルを取り消すにはどうしたらいいですか。 #なんかgitのマニュアルはわかりずらい。
>gitのマニュアルはわかりずらい 禿同
ちょっとした煽りに過敏に反応する世代がこのスレに居るとはな
TortoiseHg使って、公開鍵認証が必要なssh経由でcloneしようとしたら、結構面倒だった。 インスコそのままだとパスワード方式しかダメで、ホームディレクトリのmercurial.iniを 書き換える必要がある。Program Files以下の同名ファイルを見たら、cygwin sshの 設定がコメントアウトされてたんで、それをコピペしたらこれが罠で、秘密鍵のパスフレーズを 入力不可能な標準入力で入力待ちしてしまって、アプリが固まる。 諦めて標準のTortoisePlink.exeを使う事にして、mercurial.iniで「-i 秘密鍵へのパス」 オプションを追加すると、やっとGUIダイアログでパスフレーズを聞いてくれるようになった。 もっともその前に、puttyを落としてきてOpenSSHの秘密鍵をputty形式に変換するという さらにめんどくさい作業が必要。以上、作業メモ。
>>832 >ちょっとした煽りに過敏に反応する世代がこのスレに居るとはな
そのまんま832のことじゃないか
>>833 たぶん、普段から putty と pageant なり、mingw の ssh なりを使っている人には
面倒じゃないんだろうな。
putty の設定で、秘密鍵ファイルの設定がレジストリに書かれていたら、
-i オプションが無くても秘密鍵は自動で選ばれるし、 pageant を使っていると
秘密鍵のパスフレーズ入力も無い。
Bazaar も pageant あると自動で利用してくれるから、 pageant お勧め。
>>833 前にBitBucketにコミットしたときは、pageant立ち上げておくだけで行けたけど
一番いいのはどれなの?
linuxerならgit一択 *NIXerならhgかbzr
darcs使いとしては,最近のdarcsのガラパゴスぶりに泣けてくる
でも hackage の都合上選択肢は darcs しかないという
Linus儲ならgit、Shuttleworth儲ならbzr、それ以外ならhgでおk。
subversionより、いいのってあるの?
とりあえず hg の mq は最高ってことで。
よく分からんけど、Mercurialのrebaseって、gitの機能をパクったの? mozilla.orgと関係有るっぽい?
rebaseってsvn由来じゃ?
ポリシーに合ってる機能ならどんどんパクるべきだろ。
Mercurial で 0x5c で終わるディレクトリがあるとおかしくなるのは うちだけ? hg init . mkdir 管理表 hg status abort: 指定されたファイルが見つかりません。: D:\HGTEST\test\.\管理表\管理表 win32mbcs を読み込ませても同じ。
NetBeansでつかってるけど、マルチバイトのファイル名で おかしくなるからそれは管理しないようにしないとだめ コミットログ等は問題ないけどね しかし表でおかしくなるとかあいかわらず世界は マルチバイト圏のことはまったく考慮されてないんだなぁとおもた 十数年たってもこれだから100年後もかわってないかも
>>848 Cygwinだったら、cygwin1.dllのせい。UTF-8 cygwin 使っとけ。
それ以外だったらわからん。
日本語ファイル名使うなら bzr か svn にしとけって。 hg や git はUnicodeファイル名じゃないんだから。
>>849 10年どころか、PCで日本語扱うようになって四半世紀くらい経ってますぜ。
とは言え、Unicode/UTF-8の普及でほんの少しだけマシになってます。
それ以上に多種多様な問題も連れてきたけど。
>>771 に書かれてる「ファイル名はファイルの内容と同じでバイナリ弄らない」
って、判断したやつにUnicode正規化の問題とか突き付けてやりたい……。
>>852 というかユニコード正規化とか言葉もしらないんじゃないかと。
規約や規格にわりと無頓着なプログラマって多いと思う
統一性がないのにユニなコードとはこれいかに
環境: WindowsServer2008 cygwinなし TortoiseHGを試していて分らないことがあったので質問です。 適当なディレクトリで右クリでリポジトリを作成したり、 そのリポジトリに適当なファイルを置いてaddして登録することはできるのですが HG commitしようとすると、ウィンドウが一瞬だけ表示されてすぐ消えてしまいます。 どうやらコミットが強制的にキ?%
すいません、ブラウザの不調でレスが後半潰れてしまったようです 環境: WindowsServer2008 cygwinなし TortoiseHGを試していて分らないことがあったので質問です。 適当なディレクトリで右クリでリポジトリを作成したり、 そのリポジトリに適当なファイルを置いてaddして登録することはできるのですが HG commitしようとすると、ウィンドウが一瞬だけ表示されてすぐ消えてしまいます。 どうやらコミットが強制的にキャンセル?されているようで、コミットされている様子がありません。 ネットで調べた限りでは、HG commitメニューを実行すると ログを書き残したりするためのダイアログが出てくるという事なのですが・・・ 何を調査してどんな手を打てばいいかさっぱり検討も付かないので どなたか対処を思いついた人がいたら教えて下さい
>>857 操作しようとしてるフォルダのパスに、日本語が含まれてないか?
Hg解説してる場所でTortoiseHgはパス、ログもほとんど日本語が使えないと書いてあった気がする。
もっとも、その解説0.30あたりの時だったから最新版ではわからんけど。
つーか日本語ファイル名なんてありえないだろJK
パスセパレータに/を使わないシステムがクソなだけ
win32mbcs エクステンションを入れてないとか
>>859 世の中理想だけじゃ回らんだろ。
仕事で日本語パスが使ってある既存プロジェクトに放りこまれたときどうすんだ。
ソースはまだありえないと思うが、ドキュメントとかなら普通に 使ってるからなぁ > 日本語ファイル名
>>863 某社の某製品が自動生成するソース(Java)は、ファイル名にもクラス名にも変数名にも日本語で吐かれるよ!!
>>864 変数名とかメソッド名はファイルシステムに依存してないし、Javaのシステム上問題はない
だがクラス名につかっちまうとファイルシステム依存が出てきて大変なことになる
俺は個人的なプログラムではクラス名も変数名もばんばん日本語使うけどな。 いざというときでもEclipseやら使えばリネームは一発だし、そんなに困ると思えん。 プログラムが日本語チックに書けてコメントいらずだし。
識別子が日本語になるだけでコメントがいらなくなるものは 命名が悪いからコメント必要になってるだけだろw
変数名とか関数名を日本語にするやつの気が知れない
ちゅうか、ことコンピュータに関しては、英語圏の奴らがマジうらまやしい。
昔、某所で使ってた開発言語は日本語だったけど 手続き全て日本語ってのはマジで辛かったよ 廃止されてホッとした
ソースから仕様書も作れるって言うアレだな・・・ おやじどもには好評だったな
formから生成するときは母国語使える方が楽だとは思うぞ
漢字が使えたほうがいい場面は確かにある。 「部材別商品管理棚」を表すクラスを英語名にすると、わけわからんなる。 業務に強く依存する名前は別に日本語のままでいいよなと思う。
それだけ見れば、業務に強く依存するようなコードは糞だという感想しか湧かない
で、なんで日本語だめなの?
一度、全部日本語にしてソースを上から順に眺めていって見ろよ 日本語ってのは曖昧なんだ
>>876 文字コードで面倒が起きることがあるから。
DBのカラム名が日本語なのに変数はダメだというのはようわからん考え方だな アルファベットのカラム名でもExcelの日本語対応表見ながらじゃないとカラム名がわからないほうがよっぽどまずい けど、そういうところは多いよね
DBのカラム名に日本語OKって正気の沙汰じゃございません
狂気の沙汰ほど面白い…!
倍pushだ
>>882 そのかわりExcel方眼紙に日本語名って項目がある笑える環境ではないかね?
物理名論理名ってDB設計では普通だろ。
ならコードの変数名も対照表作ったら?
>>886 単に英語と日本語名だけで、物理とか論理なんて関係ないじゃん。
論理名を日本語で付けて、物理名はアルファベットにしとくって話もわからんのか、クズ
ソースコードの日本語の話はどうでもいいから VCSの日本語の話をしてくれよ。
VCSが物理名で、SCMが論理名?
>>891 ファイル名とコミットログはプラットフォームのエンコーディングに寄らず一律UTF-8かつNFCあたりで正規化、というのが落とし所だと思うんだな。
ファイルには、Content-Type/charsetを属性として付けとく?
894 :
デフォルトの名無しさん :2008/11/28(金) 03:54:15
消されてんじゃねーかw
>>895 あれ? ホントだw
さっきまで見れてたんだけどなw
なんかオススメごと削除されたっぽいが…勝手に使うなって話だとしたらケツの穴小せえなぁ
897 :
896 :2008/11/28(金) 05:41:39
連投スマン 候補からランダムで表示されるようになってて、いくつか消されてるのもある、ってだけだった。
>893 結局、Subversionがお手本って事か。
別にいいんじゃないの? svnは今のところもっとも成熟したVCSだし、 そもそもsvnとgit,hgその他の違いなんて分散型かそうじゃないかだけだろ。 それはとにかく、今Mercurialを試してるんだがリポジトリを公開するのにcgi使う必要があったり、 ブラウザ上から日本語ファイルが見えなかったり、 リポジトリそのものに設定ファイルを書かなければいかんかったりと意外とめんどいな。 Gitもリポジトリをウェブへ公開するときの手間は似たようなもの?
>>899 bazaar使えばいいじゃん。楽だよ。
901 :
899 :2008/11/30(日) 15:24:22
>>900 今windowsとlinux両方で開発してるんだけど、
文字コードのサポートとか、windows上のパフォーマンスとかどう?
パフォーマンスにこだわる奴結構いるみたいだけど、具体的に何のパフォーマンスを求めてるんだ?
904 :
899 :2008/11/30(日) 15:43:52
>>902 サンクス。このスレ常駐してたんだがgitとhgしか読んでなかった。
wikipedia見るとsvnやcvsのコマンドがそのまま使えるとか、
他のリポジトリとの互換性が最強とか結構よさげ。
一度mercurialからの乗り換え検討してみるわ。ノシ
905 :
899 :2008/11/30(日) 15:45:52
>>903 具体的にはweb越しでの転送速度だけど、まあそういわれてみればたいして重要じゃないな。
むしろ安定性や汎用性の方が優先順位が高い。
>>906 > gitの方はリポジトリのホストサーバーにインストールする必要があるみたい。
しなくてもできるよ。
>>899 cgiで済むなら、むしろ楽だと思うけど。
>>907 親切な人、ありがと。できた。
git clone test.git test2.git
touch test2.git/git-daemon-export-ok
cd test2.git
git --bare update-server-info
# test2.gitをサーバーにアップロードした後で
cd ../
git clone
http://example.com/test2.git test3.git
>>909 訂正。オプション忘れてた。
git clone --bare test.git test2.git
つまり面倒なのはhgのみ・・・
>>899 > それはとにかく、今Mercurialを試してるんだがリポジトリを公開するのに
> cgi使う必要があったり、
俺は hg serve 上げて Apache の mod_proxy で転送してる。
>ブラウザ上から日本語ファイルが見えなかったり、
HGENCODING=utf-8 にするといいよ。
>>906 >bzrならhttpでアクセスできるところにファイルをアップロードするだけで
>ローカルから bzr coもしくはbzr branchをすぐ試せるよ。
これは Mercurial でも同じことができる。
いいんだよ。Mercurialは、Python 3.0が出てから本気出すんだ。 今はその予習期間さ……。
>893 NFCは余計な気がするかな。 情報損失がある割に歴史的経緯で不十分な点も多いのであまり使えないと思う。 コミットログは英語でかけってのがベストな気はするけど、まぁこれも難しいんだろうな
hg にそもそも checkout あったっけ…ってググってみたらあるみたいだな clone しか使ってねーからよくわからんわ つーか clone で良くね?って思ったけど static-http に至っては http リクエストを減らせるかも知れないわけね…mmm
なんか時期SVN候補だと思ってGitやMercurialさわってみたけど、 両方ともまだほとんど使えないのね。 Gitは環境がほぼlinuxオンリーだし、hgもウェブ越しでの公開はいろいろ面倒だったり・・・。 これって似たようなプロジェクトが乱立してるために、開発リソースが分散してしまったから?
>>918 hgはgit式のcheckoutはあったはずだけど、svnのようなのは無かったはず。bzrには両方あったはず。
>>919 乱立のせいでは無いと思うよ。
hgはツールは発達してるが構造が問題だし、gitは構造は問題無いがツールが問題。
というかbzr使えば良くね?
個人でいろいろ追いかけるのはおもろいけど、チームに導入するとなるとね・・・
このスレ見てると、svn除くとbzrが攻守ともに最強って気がしてくるが、 その割には実際使ってるの1〜2人しか居ないような?
>>922 bzrスレ見るともっといそうだが、少ないことは確か
bzrは、日本語資料が少ないんだよ。 チュートリアルすら全部翻訳されたものが無い。 あと個人的にはブランチの方法が気に入らない。
>>921 安定しているsvnを選択する以外ないが手元のバージョンを細かくコミットしていくことができなくて不便だったりする。
svkは重いし
手元では Mercurial 、共有ストレージとして svn みたいな手はあるけどね。
共有ではsvn、手元では管理情報ディレクトリ名を.svnから_svnに変更したsvnって手もある。
hgやgitはやたらにディレクトリ作らない点が一番いいとこw ローカルで使うだけならどれ使っても大差ないから、こういうとこで 選んでしまうな。
bzrは開発速くて期待してるが、tortoiseが使い物にならないと無理。
>>920 >hgはツールは発達してるが構造が問題だし、gitは構造は問題無いがツールが問題。
これ、興味あるので、できればくわしく教えてください。
指定しない限り差分をとらないgitのほうが構造に問題があると思ってました。
Canonical Ltd.(Ubuntsを支援してるトコ)からバックアップを受けてるってのは強みかもね>Bzr
Canonical Ltd.(Ubuntsを支援してるトコ)からバックアップを受けてるから、 Windowsに利するような事はしないだろう > Tortoise
tortoiseBzrが一通り日本語通って外部diff出来るようになれば あと、微妙に怪しいディレクトリに対するオーバーレイアイコンがちゃんとすれば
TortoiseBzrの現状はどうにゃの? TortoiseHGの想像以上のクオリティの低さに、Subversionとその他大勢の差を 痛感してるところなんだが。
同じく。スレ上のbzr宣伝マンに釣られて使ってみたものの tortoiseBzrのクオリティがまだβレベルだったので嘆いた。
それと、Tracプラグインももう少しなんとかならないと 会社では推進できないなぁ。残念。
TortoiseXXXのUIはみんなTortoiseSVNをそのまま使うってわけにはいかないんだろうか。
オプソ物ってコンセプトだけとりあえず形にして ライブラリやツールといった環境整備で力尽きるパターンが多いよね。
多くの人は金が絡まなければ超面倒くさい手伝いはしたくないもの
TortoiseBzr はまだ experimental って書いてあるから、βどころかαだね。 今の Windows 7 みたいな立ち位置。
Mercurial にはガッカリ。 まあまだしばらく使うけど。
TortoiseBzrは遅いのが気になる
Git わかんねー リモートリポジトリの hogehoge ブランチを取ってきたいんだけど どうすればいいの? マニュアルよんでもさっぱりさね
946 :
デフォルトの名無しさん :2008/12/02(火) 11:42:47
>>946 ありがとう。でもわかんない。
git clone はリポジトリ全体を持ってくるコマンドだよね。だから違うと思う。
チュートリアルには載ってないみたいだけど、もし載っているなら該当箇所を教えてください。
うろ覚えだが、たしかブランチのURLを指定して取ってくるコマンドがなかったっけ? マニュアルは読んだことないからシラネ
clone してから branch -r して確認後 checkout
>>949 そのcheckoutがわかりません。
git checkout hogehoge
git checkout -b hogehoge origin/hogehoge
git checkout -b hogehoge origin hogehoge
....
git --help checkout # 何書いているかさっぱり
ほんとにみんなgit使ってるんでしょうか。
あんなわかりにくいドキュメントでよく使いこなせますね。
いやみじゃなくて、ほんと尊敬します。
>>950 git checkout でチェックアウト出来てるでしょ?
マニュアルは細部まで書いてあるから、最初読んだらワケワカになるよ。
まずはチュートリアル読みなって。
>>951 git checkout でリポジトリはとってこれますけど、git branch しても master しかありません。
リモートの hogehoge ブランチをローカルにもってくる方法がわからなくて質問しています。
こういうキチガイに親切にレスをする人をぼくは尊敬します
まあちょっと図々しいかもな。
レスつけてるようで全然答えてないのになぜか偉そうなやつって確かにイラつくよな。 質問すらろくに読んでない場合も多いし。
>>945 % git clone /path/to/repos
% cd repos
% git branch -r
origin/hogehoge
origin/master
% git checkout -b hogehoge origin/hogehoge
質問スレじゃないし答える義務なんてねえんだけどな
質問スレだって義務なんてないよ
>>955 お前こそ良くレスを読め。
”確かに”って書いてるくせに言ってることが流れと真逆だぞ。
>>952 >>956 の通りのやり方で出来るよ。
git branch -r でリモートのブランチが表示されるから、それをcheckout -b で
ローカルブランチにフォーク。
git checkout origin/hogehoge で直接チェックアウトも出来るが、これだと名無しブランチになる。
てかチュートリアル読めば分かるって。
設定ファイル見てオーバレイステータスと実行するコマンドを決める マルチTortoiseを希望
アップデート後に再起動しなくていいTortoiseを希望
bzrはtortoise入れても再起動しなくて良かったような
クオリティが低すぎて、再起動を求めることすら忘れてるだけだろ。
Bazaar 1.9 rc1の時に意図的に再起動を無くしたという話らしい。
Bzr1.9 と Hg の速度比較した人いない? まだHgの方がはやいの?
バージョン管理システムのベンチマークプログラムがあると良いと思った。 自転車置き場をどうするかで揉めて企画倒れしそうだが。
エクスプローラのアドインだから、エクスプローラだけ再起動してやればいいんだけどね。 ログオフでも可。
ちゅうか、そろそろシェルエクステンションの意味無くなってきてない?
上の話見たけど、全部 git clone で運用すればいいんでないの? なんでわざわざ branch なんて概念があるの?
便利だから。
>>956 ありがとうございます。でも>950で書いたように、
>git checkout -b hogehoge origin/hogehoge
でもエラーになってうまくいきません。
もしかしたら何か別のことが原因でうまくいかないのかもしれません。
だったらSVN使ってれば良いだろ いちいち泣きつきに来るなよ
親切に答えようとしてる振りしてる自演乙
質問者も回答者もうざい。gitスレでやれ
うおー、checkout -b hogehoge origin/hogehoge がうまくいきました! やったこと: (1) git を 1.6 にアップデートして (2) リポジトリを checkout し直して (3) checkout -b hogehoge origin/hogehoge うまくいかなかった原因は、git が古かったせいかもしれないし、 いろいろ試したせいでリポジトリがおかしくなってたのかもしれません。 とにかく最新版の git でチェックアウトし直したら、>956の通りにいけました。 偽蕪木ら某◇Googl8RmwA さま、辛抱強くアドバイスくださりありがとうございました。 でもgitわかりにくいよ。。。
だからgitなんかやめて、bzr使えばいいんだよ。 bzr使いやすくて最高だよ。俺は使った事無いけど。
gitのwindows版インストールしてみたんだけど、GUIは意味不明のエラーで起動しないわ、 git cloneも同じく意味不明のエラーで止まるわでダメダメだったぞ
gitやめて、bzr入れてみた。 bzr評判が良いだけあって最高だな。まだ起動してないけど。
985 :
982 :2008/12/03(水) 20:11:22
ちなみに俺がインストールしようとしたのは、msysgitってやつ。 msysでもcygwinでもない、Windowsネイティブバイナリ無いの?
誰も使ってないけど至高のバージョン管理ツールbzr for Human Beings
hgが1.1になってたんで簡単なsvn/hg/bzr比較ベンチマークしてみた。 gitは使うきないので対象外。 環境: AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ Memory 2GB データ: svn export svn://gcc.gnu.org/svn/gcc/tags/gcc_3_4_2_release gcc_3_4_2 svn export svn://gcc.gnu.org/svn/gcc/tags/gcc_3_4_3_release gcc_3_4_3 結果: SVN(ver 1.5.1), HG(ver 1.1), BZR(ver 1.9) SVN HG BZR(fmt1.6) BZR(fmt1.9) 3_4_2のコミット 1m17s 33s 40s 39s 3_4_2のpush ー 34s 55s 53s 3_4_3のマージ 6m30s 2s 17s 7s マージ後push ー 2s 15s 14s レポジトリサイズ 119MB 116MB 295MB 263MB この結果だとまだまだhgの方がよさそうだ。 bzrのレポジトリサイズはちょっと耐えがたいか。 速度は秒単位であればbzrでも我慢できるが。
OSは?
ubuntu 8.10です。
>>970 分散型だったらclone+commitでブランチができちゃうのは宿命。
それに名前をつけたいことやあるだけ。
subversionのレポジトリの中ではファイル圧縮されてるらしいからなあ
>987 リビジョンが増えるにつれて、全コピーするhgのレポジトリサイズはどんどん増えていくでしょ。 svnはHEAD以外はリモートに置くから、影響が小さい。 bzrは--stackedオプションがあるから、まだ軽減される。 開発チーム内にデザイナが居て、画像ファイルとか差し替えると、これは顕著になる。 ああ、またbzr万能論を補強してしまった。
>>992 それで、
>>987 のケースでbzrのレポジトリサイズが
有利になるクロスポイントはどのくらいレビジョンが
上がったときになるのかな?
机上の空論を唱えられるより実用的な数字が知りたいわけ。
そして--stackedをつけるとどのくらいの量が減るのかな。
そこんところkwsk
994 :
987 :2008/12/04(木) 07:26:14
svnは当然ながら、hgもbzrも空の中央レポジトリを作り、
clone/branch作ってファイルをコミットしてから中央レポジトリ
へpushし、中央レポジトリのサイズを計ってる。
従って、svn/hg/bzrでのレポジトリ計測の条件は同じのはず。
>>992 の
>svnはHEAD以外はリモートに置くから、影響が小さい。
は関係なく、svn/hg/bzrどれがどれより有利な条件という
ことはない。
>>992 リビジョンが増えるにつれて、全コピーするhgのレポジトリサイズはどんどん増えていくでしょ。
差分をとるはずだよ (hgbook 4.2.1)
次スレよろしく
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。