[過去ログ] バージョン管理システムについて語るスレ3 (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
794
(11): 2009/04/26(日)15:15 AAS
mercurial人気だねぇ。

git: ファイル名はバイナリ、コミットログもバイナリ(utf-8推奨)
- シェルとかperlとか必要、
- ファイル名変更したらシラネ。
- 1リポジトリ1ブランチ
hg: ファイル名はバイナリ、コミットログはUnicode
- シェルとかPerlとか不要でプラグインもPythonだから基本クロスプラットフォーム。
- ファイル名変更したらシラネ。
- 1リポジトリ1ブランチ
bzr: ファイル名もコミットログもUnicode
- シェルとかPerlとか不要でプラグインもPythonだから基本クロスプラットフォーム。
- ファイル名やディレクトリ名変更してもきちんと履歴管理するよ。
- 1リポジトリ1ブランチにも1リポジトリに多ブランチにも対応
になってるから、
git=最初からposixしか考えてないプロジェクト、もしくはPythonに対抗心を燃やすRubyプロジェクト用。
bzr=クロスプラットフォーム。svnにある機能は基本全部対応。汎用。
とスタンスが180度違っていいんだけど、 mercurial は微妙過ぎる。
801
(1): 2009/04/26(日)19:45 AAS
>>794
hgもgitもファイル名変更は履歴管理してるよな?
810
(1): 2009/04/26(日)23:09 AAS
って〜か、>>794読みながら、間違いだらけじゃんとか思ってたんだけど。

gitなら、コミットログもUTF-8だよね。

> 1リポジトリ1ブランチにも1リポジトリに多ブランチにも対応

これが、何を表現しているのかわからなかったんだけど、
bzr split のこと?

git には、submodule と、 subtree って、仕組みがあるんだけど、
bzr split と、機能的には被るのかね。
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は使う機会ないからディレクトリ名の変更を追跡しないってのも勘違いかもしれん。
818
(1): 2009/04/27(月)08:13 AAS
>>794
hgは1リポジトリ多ブランチだよ。
gitもそうでなかったか?
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 はほぼ安定
852
(1): 2009/04/28(火)14:23 AAS
>>794
darcsは?

windowsで動くdarcsのバイナリがみつかんない
自分でコンパイルなんてしてらんないんだけど
862
(1): 2009/04/28(火)16:59 AAS
>>794
多ブランチがなにをいいたいのかさっぱりわからんのだが
ひとつのリポジトリに複数の関連のないプロジェクトをいれられるかどうかという話なら git でもできる

mkdir project; cd project; git init; echo pu > 1.txt; git add 1.txt; git commit -m '1'; cd ..
mkdir another; cd another; git init; echo pe > 2.txt; git add 2.txt; git commit -m '2'; cd ..
cd project; git remote add another ../another; git remote update; git checkout another another/master;
git remote rm another; cd ..; rm -rf another

こうしとけば project のリポジトリに master と another のまったく別のプロジェクトが同居してる状態になる
あとは git checkout でいくらでも移動できる

git remote つかわなくてもできそうだな...
864
(1): 794 2009/04/28(火)17:59 AAS
>>862
repos/
+proj1/
| + trunk/
| + branches/
| | + maint/
+ proj2/

こんな感じで、リポジトリの中にサブディレクトリを作ってサブプロジェクトや
ブランチを放り込む方式をsvnではよく使うじゃん。それのこと。
changesetはbranchじゃなくてrepositoryで管理するから、同一repository内の
別のbranchに同一のchangesetをpushしたらきちんと同一部分が検出されて、
pushの転送量やサーバーのHDD使用量を節約できる。

言い方がまずかったと >>820 で反省して、 >>822 では削除したからもう許して。
866
(1): 794 2009/04/28(火)21:25 AAS
>>865
うん、そうだね。大して重要じゃないよね。

clone リモート/abranch ローカル
ローカル作業
clone ローカル リモート/newbranch (転送はローカル作業分だけ)
ってするだけでnewbranchが自動でabranchと関連づけられるとか、
Tracで特別な設定なしで複数サブプロジェクトを管理できるかとか、
そーゆーこと考えてたんだけど、どうでも良いよね。

>>822 では削除したからもう許して。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s