バージョン管理システムについて語るスレ at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
07/10/26 02:15:00
バージョン管理システムについて語りましょう。

関連スレ
CVS 1.3 [UNIX板]
スレリンク(unix板)
CVS導入スレ〜 Rev.3 [プログラム板]
スレリンク(tech板)
Subversion r7 [プログラム板]
スレリンク(tech板)

2:デフォルトの名無しさん
07/10/26 02:16:04
Mercurial
URLリンク(www.selenic.com)

darcs
URLリンク(www.darcs.net)

git
URLリンク(git.or.cz)

Bazaar
URLリンク(bazaar-vcs.org)

GNU arch
URLリンク(www.gnu.org)

3:デフォルトの名無しさん
07/10/26 02:18:27
ClearCase使うの怖かった
うpしたらなにかがおきそうで・・・

4:デフォルトの名無しさん
07/10/26 02:34:50
>>3
VSSより怖いものがこの世の中にあったのかwww

5:デフォルトの名無しさん
07/10/26 02:36:32
このスレのバージョン管理はどうなっているのだ

6:デフォルトの名無しさん
07/10/26 02:40:47
bzr init .

7:デフォルトの名無しさん
07/10/26 02:47:13
hg init

8:デフォルトの名無しさん
07/10/26 08:58:04
これは期待スレ
>>1 GJ

9:デフォルトの名無しさん
07/10/26 17:14:13
man co

10:デフォルトの名無しさん
07/10/26 21:36:17
Marcurialのqctとhgkで文字化けしないようにするには、どうしたらいいの?

11:デフォルトの名無しさん
07/10/27 04:58:55
最近は第何世代か知らないが、分散リポジトリが流行してるな。
それぞれ大体コンバーターがあるけどどれくらいうまく動くんだろ?
cvs/svn/hg/gitあたりが行ければoss回るのに問題ないよな。
しかしmercurialはなんでhgとかいうハードゲイ仕様なんだ。

12:デフォルトの名無しさん
07/10/27 08:11:22
>>11
知ってて聞いてると思うが mercurial(水銀) の元素記号が Hg
ちなみにmercurital 0.9.5 リリース

13:デフォルトの名無しさん
07/10/27 10:33:02
VSSしかつかったことねぇ・・・・・

14:デフォルトの名無しさん
07/10/27 14:03:26
VSSってWin16アプリ臭が残ってるのがなあ。
もう少し垢抜けてほしい。
Office2007ほど前衛的でなくてもいいが…

15:デフォルトの名無しさん
07/10/28 15:48:00
このスレの出来る1週間以上前にSubversionスレはバージョンアップしているわけだが。

Subversion r8
スレリンク(tech板)l50


16:デフォルトの名無しさん
07/10/28 16:24:20
>>15
CVSスレに書かれてたテンプレをそのまま使ったんだろwww

17:デフォルトの名無しさん
07/10/28 16:31:34
>>2
GNU arch ってまだ生きてんの?

18:デフォルトの名無しさん
07/10/28 17:04:07
>>17
そんなに人気がないのかwww

19:デフォルトの名無しさん
07/10/28 17:17:53
VSS一本だったがSubversionに乗り換えた。
ファイルの共有が出来ない点がウンコだが
それ以外はVSSを使いつづけるメリットは皆無だな。

20:デフォルトの名無しさん
07/10/28 19:20:54
>>19
ちょっとめんどくさいが、サブディレクトリでチェックアウトすれば良い。

21:デフォルトの名無しさん
07/10/31 17:21:38
Bazaar 0.92 RC1リリース
全体的な速度アップ。特にコミット速度が速くなったらしい。

22:デフォルトの名無しさん
07/10/31 18:11:39
バザールでゴザールはネーミングが媚びすぎだな

23:デフォルトの名無しさん
07/11/01 04:45:00
darcsのスケーラビリティは改善したか?
百メガ程度のソースで、2Gでもメモリ不足でコケてどうにもならなくて泣いた。
Haskell勉強中だから応援してはいるが、Haskellユーザ以外で使ってる奴いるのか?

24:デフォルトの名無しさん
07/11/01 05:07:09
URLリンク(better-scm.berlios.de)

各種SCMの比較。これはいい。

25:デフォルトの名無しさん
07/11/01 05:12:27
>>23
あれはdarcsを位置から作り直さないと直りそうもないんだけどwww
そこまでやる気あるのかな

26:デフォルトの名無しさん
07/11/01 05:16:56
バザールでゴザールは猿だろw

27:デフォルトの名無しさん
07/11/01 08:31:54
管理システムに限らず、各種比較といえばwikipediaはかなり充実している。
URLリンク(en.wikipedia.org)

自分のクソコミットをもうちっと簡単に編集できるようにならないかな。

28:デフォルトの名無しさん
07/11/01 12:47:17
>>23
それはdarcsではなくHaskellが悪い。
Haskellでは文字列のメモリ効率が悪すぎるから、あまり大きな文字列は扱えない。

29:デフォルトの名無しさん
07/11/01 16:28:31
>>28
darcsにも問題がある。
quilt / dpatchと同じようなデータ管理をやっているので
どうしても速度が遅くなる

30:デフォルトの名無しさん
07/11/01 20:54:08
>>29
kwsk

31:デフォルトの名無しさん
07/11/11 18:31:27
ファイルの移動に対応しているようなバージョン管理システムってあります?
a.txt -> b.txt としたとき、「a.txt を消して b.txt を新規追加」とかでなくて。

32:デフォルトの名無しさん
07/11/11 18:35:27
subversionは、b.txtはa.txtのコピーであるという記録が残って、
初代a.txtまで履歴をたどれる。
古い差分を取ってみると、昔のa.txtとの比較になる。

他はしらん。


33:デフォルトの名無しさん
07/11/11 19:46:37
>>31
新しいやつはほとんど出来る。
CVSは無理。

34:デフォルトの名無しさん
07/11/11 20:23:46
>>32-33
サンクス

今は CVS を使ってるんだけど、ファイルの移動に限らずいろいろ不満が出てきたので
別のシステムへの移行を考えていたところでした。

ちょっと調べてみたけど、Mercurial が第一候補かなぁ、という感じ。
基本的には自分だけでの管理なので、分散である必要はないんだけど。

35:デフォルトの名無しさん
07/11/11 20:27:47
>>34
自分だけの管理だったら分散型のほうがいいと思うけど。

36:デフォルトの名無しさん
07/11/12 09:23:46
Mercurialを使ってみた感想。

* Subversionと違い、Mercurialではリビジョン番号がincrementalに増えていかないので(分散型である以上仕方ない)、リビジョン番号だけでは古いのか新しいのか判断できない。
* Keywordを展開する機能($Rev$とか$Date$とか)が標準ではなさそう。pluginを導入する必要がある。

気になったのはそのくらい。それ以外では特に不満なし。
特に .hg がトップディレクトリにひとつ作られるだけというのはいい設計だと思った。 .svn が各ディレクトリに作られる Subversion がださく見えてしまう。

37:デフォルトの名無しさん
07/11/12 15:12:06
TortoiseMercurial みたいな優れたフロントエンドがないと うちの会社じゃ無理だな・・・
はぁ〜

38:デフォルトの名無しさん
07/11/12 17:42:35
>>37
TortoiseHg
URLリンク(tortoisehg.sourceforge.net)

39:デフォルトの名無しさん
07/11/12 18:45:44
しかし盛り上がらないスレだな。世間ではバージョン管理をろくにしていないのか
話題にする必要がないくらい定着しまくっているのか。

40:デフォルトの名無しさん
07/11/12 19:40:01
集中型はもう浸透しただろうな。
今時点で使ってないとこは今後も使わないだろうし。
分散型はOSSでは使われ始めてるけど、まだまだこれから。

41:デフォルトの名無しさん
07/11/12 20:44:26
Mercurialを使ってみました。

まだ全然使いこんでないけど、ちょっと不満に思ったのは、
・ファイル名を変更して diff したとき、変更前は無視される
(つまり >>32 のようにはならなくて、diff については事実上 >>31)
・コメントなしで commit できない (-m "" とかで可能? 確認するの忘れた)
というところかな。

分散型で一般に言えることなのかどうか分からないけど、>>35 の言う通り、
一人でのみ管理なら Mercurial の方が CVS とかよりラクかも、と思った。
(今、俺の中での Mercurial の理解は、管理ファイルの同期を取れる RCS)

42:デフォルトの名無しさん
07/11/14 00:22:34
>>41
-m "comment" はあるね。

>(今、俺の中での Mercurial の理解は、管理ファイルの同期を取れる RCS)
おれもそう思った。なんというか、ディレクトリを再帰的に辿ることのできるRCS。


43:デフォルトの名無しさん
07/11/14 02:34:45
Alienbrain は、うんこ。

44:デフォルトの名無しさん
07/11/19 22:54:53
Mercurial を使ってる方がいたら質問。
Win クライアント <-> Linux サーバで Mercurial を運用しようと思ってますが、
Win 側で、フォルダ・ファイルに日本語つけても、他の Win クライアントでも日本語はちゃんとしてますか?


45:デフォルトの名無しさん
07/11/22 19:19:47
>>44
Mecurial 0.9.5 の official と、batteries 両方の hg を試してみたけど、
なんか駄目っぽいな。
たいがい大丈夫だが、日本語のフォルダ名で、片仮名の「ソ」が入っていると、
hg --encoding cp932 add
で、
ソフトウェア does not exist!
と表示されてしまい、add することができなかった。
ちなみに
hg status
とすると「ソ」が入っていてもリストには出てくる。なんじゃらほい。




46:デフォルトの名無しさん
07/11/22 19:20:51
便乗質問だが、Mecurial の TortoiseHG ってどうやって使うんだ?
Mercurial 0.9.5 batteries インストールして、
c:\>tortoisehg /register
として登録しても何も現れんが・・・

47:デフォルトの名無しさん
07/11/22 19:24:27
どっかのサイトでソースいじって何とかしてた。どこかは思い出せないけど。
がんばれ。

48:デフォルトの名無しさん
07/11/22 20:51:58
python.matrix.jp/modules/mercurial.html

49:デフォルトの名無しさん
07/11/22 21:50:42
>>47
>>48
どもです。ソースからやらないとだめみたいですね。
普段 Cygwin 使わないので、Mercurial のためにインストールするのはなぁ、と思いますが
インストールして試してみます。

50:デフォルトの名無しさん
07/11/22 23:04:52
>>49
Cygwin を入れてソースからやってみました。
結論からいうと、日本語の一部がだめです。大概の日本語はうまくいくのですが、
「ソ」や「表」のような字が入っていると、もうだめです。

$hg add
abort: No such file or directory: /cygdrive〜

>>48
のソース改編や環境変数 HGENCODING なども試しました。
set HGENCODING=cp932
set HGENCODING=shift_jis
などです。

Windows 日本語環境で Mercurial について解説されているのは、
URLリンク(www.lares.dti.ne.jp)
URLリンク(python.matrix.jp)
ですが、この方も「表」や「ソ」という文字は試していないみたいですね。

51:デフォルトの名無しさん
07/11/22 23:12:24
表\
ソ\
申\
能\

52:デフォルトの名無しさん
07/11/23 02:15:45
「表」と「ソ」が駄目って時点で、原因はわかったも同然だと思うのは、
すでに老人の証なのだろうか?

53:デフォルトの名無しさん
07/11/23 03:09:07
set HGENCODING=unicode
とかだろ常考

54:デフォルトの名無しさん
07/11/23 11:35:31
>>52
shift_jis の文字名井に ¥ が入っていて、パス区切りと間違えちゃう件ですね。

>>53
set HGENCODING=unicode
でも、ダメでした。
どういう環境でやってますか?
こちらは、
Windows インストーラの 0.9.5 と
Cygwin + Mercurial 0.9.4 ( Cygwin ダウンロード )
で両方試してみましたが、ダメでした。

55:デフォルトの名無しさん
07/11/23 14:56:45
ソースファイルの保存時のエンコード
スクリプトファイルの実行時のエンコード指定
ソース中でのコンバートの有無

すべて晒せ
話はそらからだ

56:デフォルトの名無しさん
07/11/23 15:38:39
>>55
ソースファイルの保存時のエンコード :
ソース中でのコンバートの有無 :
URLリンク(www.selenic.com)

スクリプトファイルの実行時のエンコード指定 :
cygwin で LANG=ja

追記
URLリンク(python.matrix.jp)
の修正をやってみた。


57:デフォルトの名無しさん
07/11/25 06:23:21
UTF-8 Cygwin 使ったらなんとかならん?

58:デフォルトの名無しさん
07/11/25 23:39:54
日本語なんか使ってるやつはばかです

59:デフォルトの名無しさん
07/11/26 00:01:25
>>58
おもしろおかしい

60:デフォルトの名無しさん
07/11/26 00:45:18
日本語というか他国語対応はリソースで管理すべきであって(ry

61:デフォルトの名無しさん
07/11/27 11:43:54
TortoiseHG 使えてる人います?
>TortoiseHG /register
でも使えないよ。

62:デフォルトの名無しさん
07/12/03 21:55:12
>>58
ばかな奴でも使えるVCSじゃないと、意味が無いんだよ

63:デフォルトの名無しさん
07/12/03 23:29:16
GitかMercurialのどちらか使ってみようと思うんだけど、
subversion使ってた自分なら、どっちの方が乗り換えやすいかな?

64:デフォルトの名無しさん
07/12/04 01:32:59
どっちか覚えればどっちもほぼ違和感なく使えるかと。
gitはc、hgはpython。速度差はそんなにはないと思う。

svnスレにあったチートシート載せとく。
URLリンク(ktown.kde.org)
URLリンク(www.ivy.fr)

65:デフォルトの名無しさん
07/12/04 16:26:26
darcs で特定の時点のソースを取り出すにはどうしたら良いでしょうか

66:デフォルトの名無しさん
07/12/04 20:10:17
URLリンク(po3a.blogspot.com)
リーナス・トーバルズ「Subversion ほど無意味なプロジェクトはない」
あいかわらずの Linus 節炸裂

67:デフォルトの名無しさん
07/12/04 20:59:06
大御所なんだから、もうちょっと言葉に気をつければいいのにな。
まあその身軽さがウリなのかもしれんが。

68:デフォルトの名無しさん
07/12/04 21:03:37
>>67
いゃ~。向こうの大御所は、みんなはっきり言うよ。辛辣なぐらいにね。
ストールマンもすごかったし。

69:デフォルトの名無しさん
07/12/04 21:04:27
勉強不足でスマンが Python ってインタプリタ?


70:デフォルトの名無しさん
07/12/04 21:11:58
>>69
いぇs

71:デフォルトの名無しさん
07/12/04 21:17:06
>>69 ともあれスレ違い

技術的なポリシーにもとづいた批評は激しくてもいいよね。
今回のネタだと、マージに気を払ってない管理システムはダメとか。

ただ、ストールマンは意図的に、政治的に過激なことを言ってるわけだけど、
ライナスのほうは天然、って希瓦斯。

72:デフォルトの名無しさん
07/12/04 21:26:42
天然というか馬鹿なんじゃ。
自分の作ったオモチャがタネンバウムに批判されて
散々フレームしたこと忘れちゃったのかね。
……とうとうライナスもじじい陣営の仲間入りか。

73:デフォルトの名無しさん
07/12/04 21:29:50
まあでも影響力が大きいのは確かだろうな。
おそらく今後SCMではマージに気を使う動きが出るだろうし。

74:デフォルトの名無しさん
07/12/04 22:01:43
ん〜
分散型に対するリテラシーが全然足りてないな・・・
TortoiseHG のインストールというか、インストールファイルがどれなのかもよ〜わからん


75:デフォルトの名無しさん
07/12/04 22:03:56
頼むからwindowsを使うのを止めてくれ。

76:デフォルトの名無しさん
07/12/04 22:15:23
>>74
URLリンク(www.selenic.com)
こっちのNewsから行った方が早い


77:デフォルトの名無しさん
07/12/04 22:40:57
>>76
ありがとう。
教えて貰ったところから
Mercurial-feac5b0bf9ba-TortoiseHg-1f161ca182e3.exe
をダウンロード&インストールしたら、出来た。

し・・しかし、なんかよ〜わかりません。
svnでいうワーキングコピーというものはないの?
いきなりリポジトリ?

いや、すまんです。勉強します。
でも、サックリ サックリ 動きますなこれ。まだ何もありませんが・・・

78:デフォルトの名無しさん
07/12/04 22:43:22
>>77
TortoiseHG のインストールがうまくいったら、教えてくれ。

79:デフォルトの名無しさん
07/12/04 23:05:35
svnとgit/mercrialの違いをまとめてるサイトないかな。

80:デフォルトの名無しさん
07/12/05 09:49:57
>>78
77じゃ無いけど、とりあえず動いてます。
問題は、cp932でコメント書いてるとマージがコンフリクト解決の手動マージが上手くいかない点です。
UTF8にすればよいんだろうけど、
それは 避けたいので試行錯誤中です。

81:デフォルトの名無しさん
07/12/05 10:01:42
>>77

分散型だからワーキングコピーもレポジトリ扱いみたい
とりあえず、使ってみたコマンドとsvnっぽい対応付け

checkout . . . . . . . . .: hg clone <src repository> <dest repository>
create . . . . . . . . . . .: hg init
show log . . . . . . . . .: hg log [-v]
破棄(rollback) . . . . : hg revert <--all | <files>>
status . . . . . . . . . . . : hg status
diff . . . . . . . . . . . . . .: hg diff
commit . . . . . . . . . . .: hg commit [-m <description>]
ソースの切り替え . .: .hg pull <src repository>
merge . . . . . . . . . . . .: hg merge

pullで切り替えてマージできるのは良いと思いました。

82:デフォルトの名無しさん
07/12/05 10:04:23
海の向こうのソフトだから
日本語はいろいろ問題がでる


83:デフォルトの名無しさん
07/12/05 10:32:59
バージン管理システムは有料のも含めるとどれがお薦めですか?

84:デフォルトの名無しさん
07/12/05 10:48:45
要件も何も書かずにそれかい

85:デフォルトの名無しさん
07/12/05 10:55:27
>>83
VCSならとりあえずsubversioin。一番普及してるし、IDEのプラグインなんかも多い。
SCMならgitかmercrial。今流行ってるし、おそらく今後SCMのsubversion的ポジションに着くはずだから。
どっちも無料なんで、自分で試して決めてくれ。


86:デフォルトの名無しさん
07/12/05 11:14:12
>>83
つ[貞操帯]
いや、それがどんなものかは知りませんが。
つーか、鼬害。

>>85
それで管理できるんかいw


87:デフォルトの名無しさん
07/12/05 11:15:23
revertできるのがいいよね。

88:デフォルトの名無しさん
07/12/05 11:19:45
commitしたらrevertできません。

89:85
07/12/05 11:22:04
マジレスしちまったorz

90:デフォルトの名無しさん
07/12/05 11:26:11
>>89
まぁ、成り行きでcommitしちゃうことはよくあるさw
# commitした成果ができたら責任取ってね♥

91:デフォルトの名無しさん
07/12/05 11:33:47
uncommit すればいいじゃない

92:デフォルトの名無しさん
07/12/05 12:36:22
mercurialで、localで行ったcommitをremoteに反映させる方法がわからん。

93:80
07/12/05 13:48:26
cp932のソースを ui.mergeを弄って、外部マージソフトでマージ確認できました。
(TortoiseMerge、winmerge、kdiff3)
今は、winmergeを採用していますが、
kdiff3で日本語を重ならずに表示する方法があれば、kdiff3に変えたいのですが、
ご存知のかたいらっしゃいませんか?

94:デフォルトの名無しさん
07/12/05 13:48:28
push すればいいんじゃないかな。
remote 側で pull してもいいけど。

95:デフォルトの名無しさん
07/12/06 08:17:31
今、mercurial使ってるんですが、gitが気になります。
両方使っている人がいたら、mercurialと比べたときのgitの利点・欠点を教えてください。
mercurial知ってればgitは特に必要ないとか、いやgitはgitで勉強する価値はあるとか、お願いします。


96:デフォルトの名無しさん
07/12/06 11:31:30
>>95
俺は全く逆のパターンで、Git使ってるんだけどhgがちょい気になる、、、
とはいってもGitでかなり満足してるので「気になる」といいつつ試してないんですが

97:デフォルトの名無しさん
07/12/06 13:37:56
gitってlinux kernelのバージョン管理のために作られたんでしょ?
mercurialに比べて汎用性がなさそうなんだけど、そこらへんどうなんだろ。

98:デフォルトの名無しさん
07/12/06 15:14:58
96と同じくgit使ってて、
このスレでmercurialがよく話題に上るから気になったんだけど。

とりあえず、mercurial install してみて、 pythonで書かれているのに気付いて、
微妙に、やる気を失った、俺がいる。

ちなみにgitは C と sh (bash?)

99:デフォルトの名無しさん
07/12/06 15:22:35
日本語の扱いに問題がある時点でやる気なし

100:デフォルトの名無しさん
07/12/06 16:51:54
>>98
Mercurial使ってます。
Mercurialは、CとPythonですよ。
殆どがPythonでパフォーマンスに関わる部分がCになってるそうです。
昔の、BASIC+マシン語を思わせる設計が私の好みです。

その点、C+shellと似てるんでしょうかね?
(gitはCが大半なのかな?)

MercurialはGUIサポートが貧弱だったのが、困りものでしたが
最近は、Netbeansのプラグインでサポートされはじめたり、
TortoiseHgが開発されたり、
OpenJDK、Mozilla,OpenSolarisなどのメジャーなオープンソース系ソフトの
移行がニュースになりつつあり前途が明るくなってきてると思います。
Sunの手がけてるのが多いのは、たぶん、Sunのプロダクトだった
Teamwareにインターフェースが似てるからだと思う。
昔のエンジニアが、そのまま使える感じで移行してる気がする。
Teamwareは、私も昔使ってたので同じ理由で好みにマッチしてる気がします。
さらに、Pythonで殆ど書かれているので、移植性も高いんじゃないかなぁ?

Gitは気にはなってるけどたぶん、手を出さないと思う・・・
でも知識としては知っておきたい。Gitを使ってていいと思う部分があれば知りたいかなぁ。

101:デフォルトの名無しさん
07/12/06 18:34:45
MercurialはPythonさえ使用可能であれば、レンタルサーバでも気軽に入れられるので重宝してる。

102:デフォルトの名無しさん
07/12/07 03:53:58
cモジュールがインストールできないとだめじゃね?
昔cgiで使おうとしたときにdiffとかのモジュールがcだったから.pyで書き直したりした

103:デフォルトの名無しさん
07/12/07 05:39:46
>>97
確かにメール <--> パッチ <--> リポジトリ に便利なコマンドが揃ってて
なるほどなーって感じだけど、汎用性(?)がないってことは無いと思う。

うーん、やっぱMercurial気にはなるんだけど、どうも突撃できない。。。

Gitの前はsvk使ってたんだけど、Gitでこりゃ新しい、と思ったのは、
Indexっていう、ワーキングコピーとリポジトリデータベースの中間みたいなのが
あって、コミットする時にはIndexにいったん格納してからリポジトリに送る、
っていう方式が斬新だなぁ、と思った。
俺の使い方としては、編集して納得したファイルはその時点でどんどんIndexに
追加してしまっておく。Index追加済みのものは通常のdiffコマンドで対象外に
なるので(Index追加済みのものとリポジトリの間の差分を見る場合はdiffに
オプションを付ける)続けて編集し始めたファイルの差分だけまたdiffコマンドで
見ることが出来る。
だからIndexに追加したファイルは仮にコミットしたみたいな感じかな。
これをやると、変更したつもりのないファイルを間違えて変えてたり、
Indexに追加した後でさらに何か変更を加えてたりすると、気づくことになる。
あまりこれやってるとなかなかコミットしなくなるけどw機能的にまとまった
段階でコミットを作ったほうがいいように思う人とか、きれいにdiffを確認する
人なんかはいいと思う。
あとIndexに差分を追加した状態で他のブランチに切り替えてコミットしたりも
出来る。

104:デフォルトの名無しさん
07/12/07 05:40:56
過去のコミットを修正できちゃったりするのも新しいなぁ、と思った。
そんなことしていいのかよw とか最初思ったけど、アリだと思うようになった。

ボスが来たモードみたいなのがあって、作業途中の中途半端な状態で急に
他の修正をやらないといけなくなった時に、今の状態をテンポラリ領域みたいな
所に保存しておいてHEADに戻り、急な修正をやっつけ終わってコミットしたら、
以前のやりかけの状態を復元(急な修正の上に)して続きをやる、とか。
例えばノリノリで新機能を追加してる途中で以前のバグを発見したとしたら、
後でじゃなくて今すぐ修正したい(忘れそう)、、、けど新機能とバグ修正の
コミットは分けるべき。。。そんな時に今の状態をいったん保存して元に戻って、
バグ修正をコミットしたら、その上に保存した状態を復元、という感じで使える。

rebaseってのがあって、ある開発版ブランチをベースにして俺コミットで
突き進んでいたとして、ある日その開発版ブランチが安定版ブランチに
統合されて成長が止まってしまったとしたら、俺としてはもう伸びることのない
開発版ブランチを追っかけていてもしょうがないので、いったん俺コミットを
全て無かったことにして、根っこを安定版ブランチの先頭に引越ししてから、
俺コミットを全て適用しなおす、ということが出来る。これ便利。

あとは、、、cherry-pickってのがあって、適当なとあるコミットを指定して
今の状態に適用してみたりできる。
逆に問題のあるコミットを特定したら、履歴からそのコミットだけ除外して
みたり。

分散型で超気軽にブランチが作れるから、気軽にコミットしたり取り消したりとか、
やりたい放題なのが気持ちいいかなぁ。

以上、Gitのチラ裏でした。

105:デフォルトの名無しさん
07/12/07 07:03:10
>>103-104
GJ
index面白いな。RDBMSのtransactionみたいなものか。insertしたけどcommitしてない状態。

106:デフォルトの名無しさん
07/12/07 11:40:52
>>103-104
超GJ。過去のコミットを変更できるのは斬新だな。俺もやってみてー。

subversionしか使ったことのない俺の感想なんだが、
VCSではシステムのメインがリポジトリそのものだったのに対して、
mercurialとかgitはコミットによるパッチが重なり合って全体を構成してるように感じる。

svnが木で今までの幹は堅牢で先にどんどん伸びていくとしたら、gitなんかはstackに近いイメージ。
途中で割り込ませたり、積んでたのを隣に移したり、過去のお皿を書き換えたりですごく柔軟性が高い。
このシステムはすごくパッチの仕組みの影響を受けてるんじゃないかなあ。

107:デフォルトの名無しさん
07/12/07 11:52:29
TortoiseGitでも出たら使おうって気にもなるんだけどな

108:デフォルトの名無しさん
07/12/07 12:47:25
>104
> 逆に問題のあるコミットを特定したら、履歴からそのコミットだけ除外して
> みたり。

Subversionの逆マージとなにが違うの?

109:103
07/12/07 13:43:48
>>106
たしかにstackっぽいかも。Git使い始めはSubversionみたいなバージョン番号が
付かないことにかなり戸惑ったんだけど、使ってるうちにGitではそれが必要ない
んだなと思うようになった。今までのように線形に伸びていくのではなくて、
ソースコードの成長は常にパラレルなもので、好きなようにコミットをいじり回して
いいんだと思うようになった。

>>108
すまん、Subversionの逆マージって分からないんだけど、新しい機能(1.5?)なのかな。

110:デフォルトの名無しさん
07/12/07 18:36:26
>>104
Gitのサーバを建てる手間はどれくらいですかね?

Linuxに特化してるって話があるんでFreeBSDのレンタルサーバに
入れる手間はどんなもんかなぁ、と。

111:デフォルトの名無しさん
07/12/07 18:47:06
Mercurial の使い方のチュートリアル
URLリンク(www.selenic.com)

112:デフォルトの名無しさん
07/12/07 23:56:39
今読んでるところなんだけど、
URLリンク(hgbook.red-bean.com)
に、Git との比較が書かれてるね。
Mercurial 側からの見解なので、その分は差し引く必要があるかもしれんけど、
参考までに。

113:デフォルトの名無しさん
07/12/08 00:21:44
なる。
読んで受けた印象としては、Gitはピーキーなイメージ。
Linuxカーネルの開発スタイルに極めて合致してるんだろうね。
多くのユーザがその用途で使ってるわけだし、それ以外の用途の為の変更で
カーネル開発がしにくくなるのは本末転倒なんだな。

114:デフォルトの名無しさん
07/12/08 01:01:49
んじゃあ、使いやすさはmercurial、パフォーマンスではgitって感じか。

115:デフォルトの名無しさん
07/12/08 04:03:04
Subversion だとバグ報告に「リビジョン何番で発生した」とか書くのがいいと思うんだけど、
Git だとどうやって特定の状態を指すの?聞いてる限りだとそういうのが無いような感じ
なんだけど。

116:デフォルトの名無しさん
07/12/08 04:27:36
>>110
>Gitのサーバを建てる手間はどれくらいですかね?
サーバといってもいろいろなやり方があるんですが、、、
gitプロトコル以外にhttpとかsshとかWebDavとか。
全部やったわけじゃないけど、まあ難しくないです。
とりあえずFreeBSDならportsにGitありますよ。

>>113-114
>多くのユーザがその用途で使ってるわけだし、それ以外の用途の為の変更で
>カーネル開発がしにくくなるのは本末転倒なんだな。
俺は普通にGitで不便だと思うことは何にも無いけどなぁ。
Linuxカーネル開発用途以外のものが無いなんてこともないし(俺はカーネル開発
じゃなくてJavaに使ってる)
有名どころだと、xorg、compiz、samba、FedoraあたりがGitを採用してる。
あとGCCもGitが有力らしい。

117:デフォルトの名無しさん
07/12/08 04:36:38
>>115
タグを付けてあればそれになると思うけど、、、(release_x_xとか)
もっと詳細に特定するならSHA1ハッシュがコミットのユニークなIDになってるので、
それで指定できる。

118:デフォルトの名無しさん
07/12/08 14:38:41
>>117
何のハッシュ? コミットログのハッシュ?


119:デフォルトの名無しさん
07/12/08 15:35:53
実物みたほうが速いんじゃない。
URLリンク(gitweb.freedesktop.org)
みたいにコミットとツリーにそれぞれid(tree-ish、commit-ishの識別子)がつく。

120:デフォルトの名無しさん
07/12/08 15:41:53
ちょうどそのログはgit-cherry-pickな奴だった。
(cherry picked from commit 7caf51d1a5a86ae884e0087795636222c082962c)
はコミットid 7caf51d1a5から拾ってきたっつーことね…。

121:デフォルトの名無しさん
07/12/09 14:19:00
Learning Git
URLリンク(www.simplicidade.org)

122:デフォルトの名無しさん
07/12/09 14:59:23
gitは使いこなすとスゴそうだけど、インタフェースが複雑で最初は大変そう
URLリンク(www.jukie.net)

Subversoinですらやっとこさ導入してるリーマンドカタ的現場では、とても無理そうだな。
というか、おまえらんとこってどうなん?
お前らって、「あって当たり前のSCMを手配してくれる人」?
「面倒なことを言い出すウザイ奴」的立場?

導入やお守り、簡単な説明はいいけど、手順書一式用意しろ、には参った。

123:デフォルトの名無しさん
07/12/09 15:18:50
必要ならリポジトリにプロジェクト作るから言ってね、って言われる立場

まだ CVS だけど

124:デフォルトの名無しさん
07/12/09 15:50:17
学生サークルだが、subversionどころかバージョン管理そのものについてまったく知らないのがほとんど。
お前ら趣味でプログラムしてるのとちゃうのかと小一時間(ry

125:デフォルトの名無しさん
07/12/09 16:11:31
お前が導入して便利さを知らしめてやればおk

126:デフォルトの名無しさん
07/12/09 16:15:22
>>122
>gitは使いこなすとスゴそうだけど、インタフェースが複雑で最初は大変そう
確かに最初は覚えるのに苦労するかも知れないなぁ。
ただ俺が思うのは、CVSにしろSubversionにしろ、初めて使う時にはそれなりに
頭を悩ませただろうし、他人に使い方を覚えてもらうなんてのはさらに面倒だった
だろうということ(CVS->Subversionはとても似てるからすんなりかも知れないけど)
特に今現在インフラとして使ってるSCMがある人の場合、抵抗感は大きいと思う。
(viからemacsに乗り換えるようなもので。。。)
だから、Gitは一切SCMを使ったことの無い人のほうが覚えやすいかもしれない。
って、hgもそれは同じだと思うんだけどなぁ。そんなにGit複雑かなぁ。

127:デフォルトの名無しさん
07/12/09 16:49:53
>>125
導入しただけで済めば苦労はない。
コミットとか管理の概念もないし、理解したかと思っても、
日付毎のディレクトリを掘ってコミットする奴とか、zipに固めたのをコミットする奴とか…。

128:デフォルトの名無しさん
07/12/09 17:01:36
そもそも理解してないんだよな、VCSの便利さを。
どれだけ便利か本人たちが理解すれば、前向きに勉強してくれると思うんだが・・・。

129:デフォルトの名無しさん
07/12/09 17:12:01
Gitインストールした。

$ ls /usr/local/bin/git* | wc -l
145

これはないわ。


130:デフォルトの名無しさん
07/12/09 17:13:25
$ cd /usr/local/bin; ls git*

git git-gui git-relink
git-add git-hash-object git-remote
git-add--interactive git-http-fetch git-repack
git-am git-imap-send git-repo-config
git-annotate git-index-pack git-request-pull
git-apply git-init git-rerere
git-archimport git-init-db git-reset
git-archive git-instaweb git-rev-list
git-bisect git-local-fetch git-rev-parse
git-blame git-log git-revert
git-branch git-lost-found git-rm
git-bundle git-ls-files git-runstatus
git-cat-file git-ls-remote git-send-email
git-check-attr git-ls-tree git-send-pack
git-check-ref-format git-mailinfo git-sh-setup
git-checkout git-mailsplit git-shell
git-checkout-index git-merge git-shortlog
git-cherry git-merge-base git-show
git-cherry-pick git-merge-file git-show-branch
git-citool git-merge-index git-show-index
git-clean git-merge-octopus git-show-ref
git-clone git-merge-one-file git-ssh-fetch
git-commit git-merge-ours git-ssh-pull
git-commit-tree git-merge-recursive git-ssh-push
git-config git-merge-resolve git-ssh-upload


131:デフォルトの名無しさん
07/12/09 17:14:22
git-convert-objects git-merge-stupid git-stash
git-count-objects git-merge-subtree git-status
git-cvsexportcommit git-merge-tree git-stripspace
git-cvsimport git-mergetool git-submodule
git-cvsserver git-mktag git-svn
git-daemon git-mktree git-svnimport
git-describe git-mv git-symbolic-ref
git-diff git-name-rev git-tag
git-diff-files git-pack-objects git-tar-tree
git-diff-index git-pack-redundant git-unpack-file
git-diff-tree git-pack-refs git-unpack-objects
git-fast-import git-parse-remote git-update-index
git-fetch git-patch-id git-update-ref
git-fetch--tool git-peek-remote git-update-server-info
git-fetch-pack git-prune git-upload-archive
git-filter-branch git-prune-packed git-upload-pack
git-fmt-merge-msg git-pull git-var
git-for-each-ref git-push git-verify-pack
git-format-patch git-quiltimport git-verify-tag
git-fsck git-read-tree git-whatchanged
git-fsck-objects git-rebase git-write-tree
git-gc git-rebase--interactive gitk
git-get-tar-commit-id git-receive-pack
git-grep git-reflog


これはひどい

132:デフォルトの名無しさん
07/12/09 17:24:22
ふと思った。
-l してみたら実体は1個で、argv[0] で振り分けてたりしそうだと。

133:デフォルトの名無しさん
07/12/09 17:33:39
ディスクサイズを問題にしているわけじゃない。
gzipとgunzip程度ならそれでもいいけど、こんだけファイルを散らかしているのをなんとも思わないのかな。
たぶんcommand completionしたいがために、sub commandを使わないようにしたんだろうけど。

134:デフォルトの名無しさん
07/12/09 17:34:13
ちゃんと読もうぜ
We divide git into high level ("porcelain") commands and low level ("plumbing") commands.
URLリンク(www.kernel.org)

まあPorcelainでもその中で通常使うのはいくつかしかない
URLリンク(ktown.kde.org)

135:デフォルトの名無しさん
07/12/09 18:26:31
>>128

VCSとは?



136:デフォルトの名無しさん
07/12/09 18:34:10
>>135
Version Control System

137:デフォルトの名無しさん
07/12/09 18:36:12
SCM のほうが一般的だと思うけどな。


138:デフォルトの名無しさん
07/12/09 18:42:30
どのぐらい?

139:デフォルトの名無しさん
07/12/09 18:50:01
hg歴1週間の私が Git 使ってみましたよ。
gitk が面白いね。

で、branch を切り換える、って考え方がすげーしっくりきた。
これで Git に移行する気マンマンになりつつある。

一番気になるのは database の頑健性なんだけど、これはしばらく使ってみないと分からんな。
git-fsck というコマンドが存在する、ということが却って不安を煽るんだが…

>>126
> って、hgもそれは同じだと思うんだけどなぁ。そんなにGit複雑かなぁ。
俺も実際に使う前は、Git てコマンドたくさんあるらしいし、覚えるまでが大変そう、と思ってたけど、
実際に使ってみると基本的な作業は CVS とかと大差ないと思った。
むしろインターフェース的には CVS と Git の方が CVS と hg より近い (ほんのちょっとだけどね)
とすら思った。
ただ、git co とできないのが不満。ln -s git-checkout git-co とかすりゃいいのか? (w

ところで、git commit --help で No manual entry for git-commit とか言われるのは、インストールに
失敗してる?

140:デフォルトの名無しさん
07/12/09 19:17:15
>>139
>git-fsck というコマンドが存在する、ということが却って不安を煽るんだが…
どうだろうね、けっこう有名なプロジェクトでガンガン使われてるのが安心を
もたらすと思うんだけどねー。

俺の場合は仕事ではまだSubversionなので、個人的にGitで開発して
中央とのやり取りの時に git-svn で Subversionレポとやり取りしてます。
誰も気づかないよw
コラボしなくても、個人使用だけでずいぶん楽しいですよGit。

>ただ、git co とできないのが不満。
URLリンク(git.or.cz)
俺は~/.gitconfig をこんな感じにしてます
[alias]
st = status
co = checkout
br = branch

>ところで、git commit --help で No manual entry for git-commit とか言われるのは、インストールに
失敗してる?
してるかも。。。make install-doc かな?

141:デフォルトの名無しさん
07/12/09 20:03:56
今はSubversionを使ってて、
GitとMercurialをちょっとかじってみたいなと思ってるんだけど。
作業履歴も含めたバックアップはそれぞれどうやるの?

例えば、ある1つのプロジェクトを自分1人で扱うとして、
元リポジトリをいくつかに複製してそれぞれで個別の作業をして、
時折"リリース版"を作る場合:
1. リリース用リポジトリを1つ作って変更点を集める
2. そのリポジトリのバックアップを取る → 具体的には?
とかなのかな。イメージがいまいち掴めてないかも。


142:デフォルトの名無しさん
07/12/09 21:18:20
単にリリース用リポジトリ複製して保存しとけばいいと思うけど。

143:デフォルトの名無しさん
07/12/09 21:41:27
>>134
ごめん、なにがいいたいのかわからん。
high levelとlow levelに分類したところで、コマンドの数が多すぎる理由になるの?

144:デフォルトの名無しさん
07/12/09 21:48:44
cg cg-commit cg-reset
cg-add cg-diff cg-restore
cg-admin-cat cg-export cg-rm
cg-admin-ls cg-fetch cg-seek
cg-admin-lsobj cg-help cg-status
cg-admin-rewritehist cg-init cg-switch
cg-admin-setuprepo cg-log cg-tag
cg-admin-uncommit cg-merge cg-tag-ls
cg-branch-add cg-mkpatch cg-tag-show
cg-branch-chg cg-mv cg-update
cg-branch-ls cg-object-id cg-version
cg-clean cg-patch cg_annotate
cg-clone cg-push

あ一個変なの入ったけど、cgとかもあるよw stgitとかも。
git用のもあるbashcompは便利だがメインzshなんだよな。。。
zshcompはまだ使ってないんだがどうなんだろ。スレ違い…

145:デフォルトの名無しさん
07/12/09 22:40:15
>>143
コマンドの数が多すぎるのが問題なの?

146:デフォルトの名無しさん
07/12/10 00:13:05
gitってリポジトリの一部だけをcloneとかcheckoutすることって出来る?

147:141
07/12/10 00:31:52
>>142
普通のファイル群として保存すればいい(それ以外にない)ってことか。thx。
いや、svnのdump/loadみたいなものはあるんかなと思ってね。


148:デフォルトの名無しさん
07/12/10 10:31:56
>>146
分かってないだけかもしれないけど、それは無いような希ガス
Gitはファイルとかディレクトリではなくてコンテンツで考えるモノ、らしい

149:デフォルトの名無しさん
07/12/10 11:49:13
分散型でアクセス権をディレクトリ毎に制御できるものってない?

150:デフォルトの名無しさん
07/12/10 17:15:30
>>149
subversionではそういうのあったっけ。

151:デフォルトの名無しさん
07/12/10 17:29:23
svnserveとかWevDAV経由なら出来るんじゃなかったかな。
リポジトリの下のconfにそれっぽいのがあるでそ。


152:デフォルトの名無しさん
07/12/10 22:53:46
mercurialはrenameの前後でdiffとれない?

153:デフォルトの名無しさん
07/12/11 00:26:48
OpenJDK が Mercurial を使うことにしたそうだ。

154:デフォルトの名無しさん
07/12/11 00:56:26
svnはエンコード混在環境でもコミットログを内部utfで処理してくれますが、gitやhgのコミットログのエンコードは何が使われるのでしょうか?

乱暴ないい方するとWindows,ubuntu,旧soralisでs-jis,utf-8,eucなエディタでコミットしたときにログを相互に読めますかって話です (svnは相互にログは読めました、cvsはダメだった)

155:デフォルトの名無しさん
07/12/11 06:02:16
>>154
とりあえずGitはデフォでUTF-8だけど、設定ファイルに書いたらできたよ。

この手の質問って、hgとGitどっちにするか評価中ってことなのかな?
それならこんな細かいことじゃなくて、機能の核心が重要なんじゃないかと
思うんだが。まずは使ってみたほうがいいと思うよ。

156:デフォルトの名無しさん
07/12/11 08:56:02
154にとっては、それが核心機能のひとつなんじゃないかな。
異機種異環境混在環境でも動作するというのは案外大事。

157:デフォルトの名無しさん
07/12/11 10:28:37
>>156
まああれだ、どうもSubversionの機能をGitやMercurialに当てはめていくような
アプローチをしたがるみたいなんだが、そうじゃなくて頭真っ白にして考えないと
うまくいかないと思うんだおれは。
実際に使ってみれば、ログの文字コードを心配する前に、もっとドラスティックな
ことが起きるはず。

158:デフォルトの名無しさん
07/12/11 10:55:13
SVNの説明にも必ずCVSではこうだったみたいなのがあるじゃん
最初からHGやGit使うなら良いが既にSVNとかを利用している人からすれば
どうしても機能の当てはめ等は必要
自分は良くても他の人が移行に納得しない

159:デフォルトの名無しさん
07/12/11 11:11:07
おれsvnからgitに移行したけど、gitはsvnに当てはまらないことばっかだよ。。。

160:デフォルトの名無しさん
07/12/11 11:18:45
当てはまらない事だらけって事は利用者は使い方を学ばなければならないって事だ
中々覚えようって気にはなってくれないから難しい

161:デフォルトの名無しさん
07/12/11 11:24:06
Git - SVN Crash Course
URLリンク(git.or.cz)
最初はこれ見てやってみたんだけど、やっぱこれでgitが分かるってことはないわけで
Tutorialをやってみるのが近道だった。
中央集権型と分散型なんだから、簡単に移行できないのはしょうがないかもね。


162:デフォルトの名無しさん
07/12/11 13:16:41
gitかhgに移りたいけど、eclipseのプラグインがでるまで我慢。

163:デフォルトの名無しさん
07/12/11 13:20:22
俺はWindows Explore連携ができないと、移る気がしない

164:デフォルトの名無しさん
07/12/11 14:35:49
svkだって亀が使えたらって思うが

165:デフォルトの名無しさん
07/12/11 20:23:44
まぁ、人口に膾炙するためには、日本語リソースが充実しないとな

166:デフォルトの名無しさん
07/12/12 00:35:58
gitとかsvnとかhgとかみてたら、2chの略語に見えてきた。
もうさ、2chのVCS/SCMつくろうぜ。

kwsk -> 詳細ログ表示
ktkr -> 取り出し
wktk -> 更新があるかチェック
up -> コミット



167:デフォルトの名無しさん
07/12/12 02:15:31
gitとhgをcygwin上でTutorialをこなしたけど、
gitは branch と gitkが すごく よいと 思いました。
って 思いつつ、hg リファレンス を読んでたら、branch在るんですね。
Tutorial 見て、cloneでどんどんレポジトリ増やしていくしかないと思ってしまったorz

気づいた差異は、こんな感じ
速度
hg > git
hgは一瞬、gitは一秒程度かかるもの(checkout, commit)がある

commit
hgは、更新ファイルがデフォルトでコミットできる
gitは、更新ファイルもaddを使って追加するかcommit -a をする

マージのコンフリクト時の挙動
gitは衝突部位を両方持ったファイルを作成する
hgは衝突ごとに随時衝突部位を両方持ったファイルをエディタで開いて修正を求める。

あと hgは、狙ったのかホームポジションの隣で両人差し指一打ですむのが楽

168:デフォルトの名無しさん
07/12/12 02:17:42
>>167
hgといえばやっぱりアレだろ

169:デフォルトの名無しさん
07/12/12 02:31:11
>>168
どれだよ。

170:167
07/12/12 02:42:06
ああ
gitはcommitせずに複数マージできるが抜けてました。

>168
何でしょ?

171:デフォルトの名無しさん
07/12/12 12:18:08
$ hg foo

172:デフォルトの名無しさん
07/12/12 16:20:44
gitやhgが流行ってるみたいですが、いまいちsvnとの使い方の差が掴めません。
実際にsvn->git,hgへ移行して、使い方がどう変わったかだれか教えてもらえませんか?

173:デフォルトの名無しさん
07/12/12 17:14:51
cvsからsvnへ変わったのとは違う
どう変わったか?と言うより、概念そのものが違う

174:デフォルトの名無しさん
07/12/12 17:21:26
gitに移行しない奴をアホ呼ばわりする奴は何なの?

175:デフォルトの名無しさん
07/12/12 17:27:18
会社でアホ呼ばわりされたのか?
チラシの裏にでも書いておけ。


176:デフォルトの名無しさん
07/12/12 19:22:44
>>174
Git信者以外に考えられないのですが・・・・
本人は否定しているのですか?

>>172
大きな違いはローカルコミットができる点じゃないかな?
自分の作業が一段落するまで他の人に影響を与えず手元で変更履歴をとって管理できる。
それができないってのが、昔TeamwareからCVSに移行したとき不便だと思った所なんだけど。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5056日前に更新/206 KB
担当:undef