[過去ログ] バージョン管理システムについて語るスレ3 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
807: 2009/04/26(日)22:26 AAS
>>803
http://ja.wikipedia.org/wiki/Git
>Gitでは、リネームの検出をスナップショット
>作成時ではなく履歴のブラウズの際に行う
808: 2009/04/26(日)22:37 AAS
結局gitもhgもファイル名変更してもおkじゃん
809(1): 2009/04/26(日)22:39 AAS
>>805,806 ごめん、勘違いしてたみたい。これもできる?
$ bzr init repo_a
$ cd repo_a/
$ mkdir dir_a
$ cat >dir_a/a
aaa
$ bzr add dir_a/a
adding dir_a
adding dir_a/a
$ bzr commit -m "add dir_a/a"
$ bzr branch . ../repo_b
$ bzr mv dir_a dir_b
$ bzr commit -m "rename dir"
$ cat >> dir_b/a
bbb
$ bzr commit -m "add bbb"
Committed revision 3.
$ cd ../repo_b
$ bzr merge -c3 ../repo_a
M dir_a/a
All changes applied successfully.
$ bzr diff
=== modified file 'dir_a/a'
--- dir_a/a 2009-04-26 13:36:57 +0000
+++ dir_a/a 2009-04-26 13:38:12 +0000
@@ -1,1 +1,2 @@
aaa
+bbb
810(1): 2009/04/26(日)23:09 AAS
って〜か、>>794読みながら、間違いだらけじゃんとか思ってたんだけど。
gitなら、コミットログもUTF-8だよね。
> 1リポジトリ1ブランチにも1リポジトリに多ブランチにも対応
これが、何を表現しているのかわからなかったんだけど、
bzr split のこと?
git には、submodule と、 subtree って、仕組みがあるんだけど、
bzr split と、機能的には被るのかね。
811(1): 2009/04/26(日)23:35 AAS
>>810
gitのコミットログはバイナリ。デフォルトではutf-8じゃないバイナリ列を拒否る
設定になっているから実質utf-8と言っていいけど。
1リポジトリ多ブランチはbzr でいう init-repo のこと。Subversionでも普通に
repo/trunk, repo/tags/footag, repo/branches/foo_branch ってするよね。
1リポジトリ1ブランチだと、データの共有は基本的にハードリンク頼みだから、
ローカル間のbranchやpullじゃないと共有されない。
他にも、Windows環境ではハードリンクを適切に扱えるツールが少ないから、
バックアップソフトがハードリンク×n個を n個のファイルとしてコピーしたり
しやがる。
812(1): 794 2009/04/26(日)23:41 AAS
勘違いしてた。hgやgitが管理しないのはファイル名じゃなくてディレクトリ名だ。
$ hg init repo_a
$ cd repo_a/
$ mkdir dir_a
$ cat >dir_a/a
aaa
$ hg add dir_a/a
$ hg commit -m "add a"
$ hg clone . ../repo_b
$ hg mv dir_a dir_b
$ hg commit -m "rename dir"
$ cat >>dir_b/a
bbb
$ hg commit -m "add bbb"
$ hg diff -r0 dir_b/a
diff -r 6573e09a792d dir_b/a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dir_b/a Sun Apr 26 23:39:25 2009 +0900
@@ -0,0 +1,2 @@
+aaa
+bbb
gitは使う機会ないからディレクトリ名の変更を追跡しないってのも勘違いかもしれん。
813: 2009/04/26(日)23:49 AAS
>>811
bazaar厨が必死すぎるwww
814(1): 2009/04/27(月)00:03 AAS
1リポジトリ多ブランチってhgでも出来ると思うけど。
815: 2009/04/27(月)00:19 AAS
>>814
複数のheadを持てるっていう意味で?
でもtipは一つだから、普通運用する時は branch ごとに
ディレクトリを分ける。そんときにリポジトリまで分離されてしまう。
816(1): 2009/04/27(月)01:45 AAS
>>812
hgはファイルしか追いかけないのは事実だが、履歴は管理されるよ
$ hg diff -gr0 dir_b/a
diff --git a/dir_a/a b/dir_b/a
copy from dir_a/a
copy to dir_b/a
--- a/dir_a/a
+++ b/dir_b/a
@@ -1,1 +1,2 @@
aaa
+bbb
817: 2009/04/27(月)07:30 AAS
>>816
へぇ、今度から -g 使うよ。thanx.
あと、 transplant extension を有効にしたんだけど、
ディレクトリ名変更したブランチからcherry pickingできなかった。
これも何かのオプションで >>809 と同じことできるようになるのかな。
git はマニュアル読んでも使い方が判らん…普段hgとbzrしか使わない
せいもあるんだけど、gitってリビジョン指定の方法とか独特過ぎない?
818(1): 2009/04/27(月)08:13 AAS
>>794
hgは1リポジトリ多ブランチだよ。
gitもそうでなかったか?
819: 2009/04/27(月)09:45 AAS
ちょうどブランチの話題がでているので質問です。
GitでのブランチのようなことをMercurialでしたい場合にはどうするんでしょうか。
820(1): 794 2009/04/27(月)10:30 AAS
>>818
ごめん、書き方が悪かった。単純に1リポジトリに複数のbranchを
格納できるってだけじゃなくて、svnみたいに各ブランチにパスを割り当てて
アクセスできるってことを言ってたんだ。
githubにしろbitbucketにしろ、ブランチ切るとリポジトリまで分割されちゃうよね。
821(1): 2009/04/27(月)11:22 AAS
>>794はなかったことにしてもらえよw
822(2): 794 2009/04/27(月)12:28 AAS
>>821
そうだな。書き直すよ。
git: ファイル名はバイナリ(クロスプラットフォームでの日本語ファイル名は諦める)
- シェルとかperlとか必要。
- cherrypick可能。ディレクトリ名変更をまたいだcherrypickは不明
- git-svn はほぼ安定
hg: ファイル名はバイナリ(fixutf8拡張を使えばutf8ファイル名が可能だがまだ完全ではない)
- シェルとかPerlとか不要でプラグインもPythonだからクロスプラットフォーム。
- cherrypickは同梱されているtransplantプラグインで対応。ディレクトリ名変更をまたいだcherrypickは不可能?
- hgsubversion はまだ実験版
bzr: ファイル名はUnicode(Windows/Linux/Macの間で日本語ファイル名問題なし)
- シェルとかPerlとか不要でプラグインもPythonだからクロスプラットフォーム。
- cherrypick は完璧
- bzr-svn はほぼ安定
823(2): 2009/04/27(月)12:37 AAS
「シェルとかPerlとか」って何のこと?
なんで Python がクロスプラットフォームと言いながら Perl はダメなの?
824: 2009/04/27(月)12:45 AAS
>>823
そうだよな、Windowsをプラットフォームに考えたらどっちも一緒。
825(2): 2009/04/27(月)12:48 AAS
今みたいなノリで、このスレで指摘・突っ込みしながら
バージョン管理システムの比較表を作っていけば
そこそこ役に立つ比較ができるんじゃないだろうか
826: 2009/04/27(月)13:03 AAS
>>825
そこまでするなら、GUI フロントエンドの熟成度も併記してほしいと思いますです。
上下前次1-新書関写板覧索設栞歴
あと 175 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s