バージョン管理システムについて語るスレ10

1デフォルトの名無しさん
垢版 |
2014/02/23(日) 18:17:11.03
バージョン管理システムについて語りましょう

●過去スレ
バージョン管理システムについて語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1193332500/
バージョン管理システムについて語るスレ2
http://pc11.2ch.net/test/read.cgi/tech/1215520728/
バージョン管理システムについて語るスレ3
http://pc12.2ch.net/test/read.cgi/tech/1228366972/
バージョン管理システムについて語るスレ4
http://pc12.2ch.net/test/read.cgi/tech/1242918130/
バージョン管理システムについて語るスレ5
http://pc12.2ch.net/test/read.cgi/tech/1255241922/
バージョン管理システムについて語るスレ6
http://hibari.2ch.net/test/read.cgi/tech/1270640436/
バージョン管理システムについて語るスレ7
http://hibari.2ch.net/test/read.cgi/tech/1283780922/
バージョン管理システムについて語るスレ8
http://toro.2ch.net/test/read.cgi/tech/1295493964/
バージョン管理システムについて語るスレ9
http://toro.2ch.net/test/read.cgi/tech/1334766732/
2014/03/10(月) 17:20:39.54
>>191
GNU信者でしょ
2014/03/10(月) 17:21:18.71
>>187
> だから、ディレクトリは特定ディレクトリを見せないって言う設定できるよね?
> git でどうやるの?

お前根本的な所がわかってないじゃないか。
gitでもディレクトリ使ってるんだよ。
gitはディレクトリ+αと考えればいい。
だからディレクトリでできることは全てgit使っていても出来る。
2014/03/10(月) 17:23:34.52
たぶん、単なるディレクトリが
そのままgitリポジトリになるってことが
あまりにも(その人にとって)革新的なことであり
信じられないんだと思う。

だからそんなことはない。gitを使うとディレクトリで
出来たことができなくなるはずって思っちゃう。

ディレクトリでできることはすべて
gitでもできるんだよ。
2014/03/10(月) 17:26:12.69
>>193-194
ご託はいいから、具体的なやり方書いて。
2014/03/10(月) 17:44:57.14
>>195
だから普通のディレクトリと全く同じやり方だよ。
これでわからないの?
2014/03/10(月) 18:36:20.57
先ほどからやたらとgitを否定する方がいらっしゃいますが、git使えなくて
後輩にバカにされた腹いせに書き込んでるのでしょうか?
git脳なんて言ってるけどgit使えない脳の方が問題ですね。
2014/03/10(月) 18:42:40.39
bazaar脳がemacsはgitに以降しそうだから焦ってるんだろ
2014/03/10(月) 19:05:48.64
>>196
それ君が設定してから push して外注さんが clone したら、指定したフォルダは外注さんに見えなくなるの?
まさか、ローカルで見えないから OK とか恥ずかしいこと言ってないよね?

>>197
ごめんな、git 普通に使ってるんだわ。
でも、他も使ってるから粗が見えちゃうんだな。
まあ適材適所なんだが、この手の奴はあまりバラバラにあっても管理がめんどいから、可能なら統合したいんだな。
2014/03/10(月) 19:21:31.31
じゃぁ、いいとこ取りのバージョン管理システムを新たに開発すればいいじゃん。
2014/03/10(月) 23:36:11.36
なんか伸びてるとおもたら荒れてんのぉ
202デフォルトの名無しさん
垢版 |
2014/03/11(火) 00:53:39.84
部分チェックアウトは必要だわ
Android Studio 用のプロジェクトがコミットされたリポジトリからチェックアウトして、
Eclipse の プロジェクトで使う場合とか
assets ディレクトリを部分的に別々のリポジトリからチェックアウトしておくとか
面倒だから一つのリポジトリで複数のプロジェクトを管理とか
どう考えても部分チェックアウトは必須機能
2014/03/11(火) 01:47:53.26
>>202
Android Studio側のbuild.gradleとかにある設定は手動でEclipseに反映させてんのか?
おとなしくAndroid Studio使えよ
204デフォルトの名無しさん
垢版 |
2014/03/11(火) 02:04:19.60
gnomeかなんかでmakeかなんか使ってるとかいう話を見た気がする
2014/03/11(火) 02:49:32.38
いつも思うんだが、喧嘩腰じゃないと話せない人がいるのはなんなんだ・・・
議論の一部に自分に取って有意義な話があってその辺りについて詳しい話が聞きたいと思っても
喧嘩腰な人が出てくるとまったく議論にならなくなる、というか聞く気すら起きなくなる
2014/03/11(火) 05:17:40.62
>>199
なんで普通のディレクトリではできないことの話をしてるんだ?

何回も言ってるだろう? gitのディレクトリは普通のディレクトリだ
だから”普通のディレクトリと同じこと"はできると

お前が言ってるpushやらcloneなんてのは普通のディレクトリでは出来ないことだ。
そんなことをしたいなら、ディレクトリを使うな(gitを使え)という話になる。
2014/03/11(火) 05:27:22.22
>>202
> Android Studio 用のプロジェクトがコミットされたリポジトリからチェックアウトして、
> Eclipse の プロジェクトで使う場合とか

そんな時に使うのがgitのサブモジュールという機能だよ。

まず、Android Studio 用のプロジェクトからチェックアウトして
Eclipse の プロジェクトで使うという、そのやり方
部分チェックアウトでやると、大きな問題がある。

それはEclipse の プロジェクトで使っているのは、
Android Studio 用のプロジェクトのどのリビジョンか?という話。

「Eclipse の プロジェクトのリビジョンX0005で使っているのは
Android Studio 用のプロジェクトの一部分のY0005リビジョンである」
という情報がX0005には記録されない。だからX0004に戻した時、Y????のどれを使えばいいかわからない。
X0005にY0005のソースコード丸々入れるというやり方もあるだろうが、そうすると最新版への追尾が難しくなる。

gitのサブモジュールのやり方を教えよう。

Eclipse の プロジェクトを開発している時に、特定のコミットにしたいして
Android Studio 用のプロジェクトの、特定のコミットをひもづける。
だからX0005にY0005を紐付けたら、X0005をチェックアウトした時に、自動的にY0005になる。
もちろんX0010をチェックアウトしたら、X0010に紐付けられたY000?が自動的に使われる。
Y000?を最新にしたければ、Y000?の最新を取ってきて新たにX0011というコミットを作る。
そうすれば、X0011は最新のY000?をできる。

部分チェックアウトで頑張るよりも、はるかにスマートな方法だ。
2014/03/11(火) 07:41:35.95
>>197
git使えない人は多いと思うよ
プログラマーでもgit理解出来ない人多いんだから、営業職の人にgitを無理強い出来ないね
2014/03/11(火) 07:44:32.68
営業職の人には普通にファイルを保存してもらって
分かる人がgitで管理すればよい。

まさかgit使えないなんて言うんじゃないだろうな?
それ技術者なはずなのに、営業職レベルってことだぞw
2014/03/11(火) 07:52:01.12
>>201
別に荒れてないよ、git 脳が勝手に暴れて勝手に玉砕しただけ (w
2014/03/11(火) 07:53:32.10
なるほど、ということにしたい奴が荒らしていたわけか。
2014/03/11(火) 08:04:16.45
>>206
はあ?
>>144 をやりたいって話なのは理解してるんだよね?
ファイシステム云々は >>179 とかが言い出した話だよ?
俺は >>144 が git でできるって言うならやり方示して、って言ってるだけ。
まさか、これがそのまま来るとは思わんかったわ (w
> ローカルで見えないから OK とか恥ずかしいこと言ってないよね?
2014/03/11(火) 08:07:55.75
>>212
> プロジェクト無いの一部のフォルダを特定の人/グループに見せないとか、更新禁止にするだけだよ?
やりたいのはこれだよね?
なんども答え出てると思うけど、

gitは普通のディレクトリを使うので、
一部のフォルダを特定の人/グループに見せないかいうのは
ディレクトリと全く同じ設定をすればよい。

さらにもっと高度な管理がしたければ、gitサーバーを使うことで
柔軟なアクセス制限を書けられる。

submoduleを使うことで、プロジェクトの一部を
別リポジトリにすることだって可能。
2014/03/11(火) 08:08:11.18
>>211
もうみんな話変えようとしてるよ?
まだ、恥ずかしいレス続けるの? (w
2014/03/11(火) 08:10:13.16
意訳

> もうみんな話変えようとしてるよ?

「俺は」 話変えようとしてるよ? みんなも同調してよ!

> まだ、恥ずかしいレス続けるの? (w

お前のレスは恥ずかしいんだ。 みんなも同調してよ!
2014/03/11(火) 08:15:43.08
>>213
> なんども答え出てると思うけど、

リポジトリ分ける以外の答あったっけ?

> さらにもっと高度な管理がしたければ、gitサーバーを使うことで
> 柔軟なアクセス制限を書けられる。

だからそのやり方書いてよ。
2014/03/11(火) 08:16:35.24
>>215
まだやるの? (w
2014/03/11(火) 08:20:49.49
>>216

リポジトリ分ける以外の答えは>>213に書いてあるだろ?
なんで見えてないの?すごく不思議なんだけど。

gitは普通のディレクトリを使うので、
一部のフォルダを特定の人/グループに見せないかいうのは
ディレクトリと全く同じ設定をすればよい。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

さらにもっと高度な管理がしたければ、gitサーバーを使うことで
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
柔軟なアクセス制限を書けられる。
2014/03/11(火) 08:21:23.81
都合の悪いレスは見えないんだろ?
本気でそんな人がいるとはね。
2014/03/11(火) 08:25:26.44
>>216
> > さらにもっと高度な管理がしたければ、gitサーバーを使うことで
> > 柔軟なアクセス制限を書けられる。
>
> だからそのやり方書いてよ。

お前が、gitサーバーで柔軟なアクセス制限できるという事実を素直に認めたらな。

お前が今知るべきなのやり方ではなく、gitサーバーがお前の目的を
叶えてくれる道具だということを知ることだから。

http://git-scm.com/book/ja/Git-サーバー-サーバー用の-Git-の取得
http://git-scm.com/book/ja/Git-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%94%A8%E3%81%AE-Git-%E3%81%AE%E5%8F%96%E5%BE%97

ちょっとしたセットアップ
小規模なグループ、あるいは数名の開発者しかいない組織で Git を使うなら、
すべてはシンプルに進められます。Git サーバーを準備する上でもっとも複雑なことのひとつは、
ユーザー管理です。同一リポジトリに対して「このユーザーは読み込みのみが可能、
あのユーザーは読み書きともに可能」などと設定したければ、アクセス権とパーミッションの設定は多少難しくなります。

SSH アクセス
開発者全員が SSH でアクセスできるサーバーがすでにあるのなら、リポジトリを用意するのは簡単です。
先ほど説明したように、ほとんど何もする必要はないでしょう。より複雑なアクセス制御をリポジトリ上で行いたい場合は、
そのサーバーの OS 上でファイルシステムのパーミッションを設定するとよいでしょう。

リポジトリに対する書き込みアクセスをさせたいメンバーの中にサーバーの
アカウントを持っていない人がいる場合は、新たに SSH アカウントを作成しなければなりません。
あなたがサーバーにアクセスできているということは、すでに SSH サーバーはインストールされているということです。
2014/03/11(火) 08:30:42.77
gitサーバーの一つがgithubだといえば、
馬鹿にもわかるかねぇ。

言うまでもないだろうがgithubはプライベートリポジトリと言って
外部の人には見えないリポジトリにも対応している。

さすがに「githubの使い方を教えてよ」は
技術者として恥ずかしくて言えないだろう。
2014/03/11(火) 08:44:47.35
なんか荒れてると思ったら炎上学習法やってる奴が居るのか…
2014/03/11(火) 08:46:12.56
うるさい。そのやり方書いてよ。
2014/03/11(火) 08:54:37.15
svnでいいな
2014/03/11(火) 08:57:34.91
svnの壁ってやつかね。その先を知らない人が
満足する。
2014/03/11(火) 09:02:25.87
gitはどちらかと言えば、開発者のための道具だからね。
管理者のための道具じゃない。

gitをバリバリ使っている人は、だいたい開発者。
(念のためプログラマだけじゃないよ。開発する人全員)

svnで満足しているのは、ただの管理者でしょ?
ソース貰って、その日付だけわかればいいような、そんな人。
だから日付バックアップでも成り立つ。
開発者とは違って貰ったものを修正なんかしないからね。
2014/03/11(火) 10:01:47.42
程度によるよ
多人数で開発して細かくdiffを取ってpatchを当てる続けるようなソースコードの管理する場合にはgitやmercurialの方が向いてる
そうじゃない場合はsubversionの方が有利な事もある
既出の部分チェックアウトやファイルロック
2014/03/11(火) 10:04:45.01
>>209
gitを理解出来ないプログラマーはたくさんいるよ
linuxのカーネル開発してるような優秀な人揃いのプロジェクトならいいけど、
そうじゃない低レベルなプロジェクトもたくさんあるのが現実
2014/03/11(火) 10:40:50.83
>>220
user = {dev1, dev2, co-dev1}
がいるときに、
/proj/src/app/
/proj/src/lib/
/proj/src/else
/proj/else
というディレクトリ構成で、
* dev1,dev2は全てのディレクトリ以下を参照できる
* co-dev1は/proj/src/lib以下を見ることができない。それ以外は全部参照できる
という設定をするとき、
dev-group = {dev1, dev2, co-dev1}
lib-dev-group = {dev1, dev2}
というグルーピングをし、
chgrp -R /proj dev-group
chgrp -R /proj/src/lib
chmod -R 770 /pro/src/lib
とすれば実現できるが、これをgitではどうやるかという話だと思うが。
もちろん、複数人で開発するのだから、サーバでの話。
2014/03/11(火) 10:42:06.63
>>229
訂正。
> chgrp -R /proj/src/lib

chgrp -R /proj/src/lib lib-dev-group
2014/03/11(火) 11:01:28.32
>>228
gitすら理解できないってよほどアホか覚える気が全くないかだろう
そんな奴をプログラマーと呼べるのか?最低限持っているべき知識だろ

もう世界中で使われているから
分からない事があってもググれば大抵の事は解決するし
2014/03/11(火) 11:24:53.82
>>229-230
まあそう言うこと。
たぶんわかってるけど git が劣ってるなんて許せねーって言う奴とよくわからんけど煽ってやれ、っー奴が半々ぐらいかな (w

各マシンにリポジトリ全体を持つような仕組みなので、見せないを実現しようとしたらリポジトリの仕組みにかなり手を入れないとダメだろうし、OSS だとそう言う要求はあまり無いだろうから git がこの機能を持ってないのは当たり前とすら言えると思うんだけどね。

まあ当面 svn + git (svn) で行くわ。
2014/03/11(火) 12:18:30.59
>>229
>サーバーの OS 上でファイルシステムのパーミッションを設定するとよいでしょう。
なんだから
そこまでやったらgitでは何もやることないんじゃないの
2014/03/11(火) 12:34:05.41
>>233
ネタなのかマジで言ってるのかよくわからん (w
ひょっとしてベアリポジトリの存在を知らないのか?
2014/03/11(火) 12:37:56.06
freebsdの開発チームはがsubversionを採用したんだよな
理由はsubversionの方が合ってるからって
2014/03/11(火) 12:39:49.82
>>233
だから具体的にどうやるか書け
2014/03/11(火) 12:47:54.53
いやおれhg使いだし
サブモジュールのディレクトリにパーミッション設定して終わりじゃないのか
2014/03/11(火) 12:58:42.60
>>237
何いってんの?
2014/03/11(火) 13:03:47.19
煽るだけのは邪魔だからどっか行けよ
2014/03/11(火) 13:32:01.32
>>235
Linux の世話になんかならんぞ、っーのもあるんじゃね?

まあ便利ならなんでも取り込む Linux/git に対して、ポリシーに沿わないものは取り込まない FreeBSD/Subversion って感じかな。
2014/03/11(火) 13:36:20.76
いやおまえこそ
2014/03/11(火) 13:42:31.53
GPLを排除したいFreeBSDにしてみれば
メジャーなDVCSのGit、Hg、Bzrが軒並みGPLな現状じゃ
Apacheライセンスな非DVCSのSubversionを選ぶざるを得ないってとこか
2014/03/11(火) 13:46:51.73
>>239
良く分かってないのに適当な回答かまして場をかき乱す奴よりはまし。
2014/03/11(火) 13:58:09.47
>>229
gitでの話。

drwxrwx--x dev-group:dev-group /proj ← ここ以下をgitで管理
drwxrwx--x dev-group:dev-group /proj/.git ← gitデータディレクトリ
drwxrwx--x dev-group:dev-group /proj/src/app/
drwxrwx--- lib-dev-group:lib-dev-group /proj/src/lib/
drwxrwx--x dev-group:dev-group /proj/src/else
drwxrwx--x dev-group:dev-group /proj/else

dev-group = dev1, dev2, co-dev1
lib-dev-group = dev1, dev2

こうすればいい。お前が言ったことを分かりやすく図にしただけ。
(これだと新規ファイル作成時に問題があるがね。気づいてないでしょ?慣れてないことするからw)

gitは普通のディレクトリなのだから、同じようにやればいいと言ってる。
これが下記のgitの使い方の一つとして述べられてる「ファイルベールのリポジトリ」

この欠点はdev-groupはgitを使えるが、それ以外はgitを使えないということと
gitを使う時に多少考える必要が有ること、gitの本領を発揮できないということ。
だがgitを使いたくなった時は、ただのディレクトリではダメな作業が
できたということなので即刻ディレクトリをやめろという話になる。

4.1 Git サーバー - プロトコル
http://git-scm.com/book/ja/Git-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB

利点
ファイルベースのリポジトリの利点は、シンプルであることと既存のファイルアクセス権や
ネットワークアクセスを流用できることです。チーム全員がアクセスできる共有ファイルシステムがすでに存在するのなら、
リポジトリを用意するのは非常に簡単です。ベアリポジトリのコピーをみんながアクセスできるどこかの場所に置き、
読み書き可能な権限を与えるという、ごく普通の共有ディレクトリ上での作業です。
2014/03/11(火) 14:07:09.69
linuxっていつまで経ってもaclベースのアクセス制御普及しないよな
2014/03/11(火) 14:08:14.88
>>244
> この欠点はdev-groupはgitを使えるが、それ以外はgitを使えないということと

どういうこと?co-dev1がgitを使えないんだったら意味ないじゃん
2014/03/11(火) 14:11:14.81
>>244
なんだローカルの話か。なら最初から
cd proj
git init
って言えば何を言いたかったのか全員がわかったのに。

ちなみに、お前以外は全員リモートサーバを想定してると思うよ。
2014/03/11(火) 14:16:55.82
>>244
俺gitの知識はほぼゼロなんだけど、それでco-dev1はgit clone/push/pullのどれも支障が無いのか?
2014/03/11(火) 14:17:33.84
>>246

> どういうこと?co-dev1がgitを使えないんだったら意味ないじゃん

dev-groupはgitつかえるよ?
git使いたいなら、最初からディレクトリは
ダメですねって話ですよね?

だ〜か〜ら、共有ディレクトリを使う方法(>>229)は
欠点があるって言ってるんだよ。

普通にgitを使えよ。
共有ディレクトで権限管理するのはやめなさい。
つまり、>>229のやり方をやめなさいってことだよ。
2014/03/11(火) 14:19:33.04
>248
> 俺gitの知識はほぼゼロなんだけど、それでco-dev1はgit clone/push/pullのどれも支障が無いのか?

共有ディレクトリを使った方法(>>229の方法)を使っている以上無理。

最初っから、共有ディレクトリを使った方法(>>229)は欠点だって言ってるの。

でもgitはただのディレクトリだから、ディレクトリを使った方法(>>229)でも
できるという話。git化することで何も失われていない。
2014/03/11(火) 14:20:30.61
>>247
全員がとかいってるけど、
実は「お前が」だよ。

お前一人がわからなかった。
勝手に他人もいっしょにするなよ。
2014/03/11(火) 14:32:12.88
>>250
え?>>144に対して、

>>213
> gitは普通のディレクトリを使うので、
> 一部のフォルダを特定の人/グループに見せないかいうのは
> ディレクトリと全く同じ設定をすればよい。
なんでしょ?

> 共有ディレクトリを使った方法(>>229の方法)を使っている以上無理。
ってどういうこと?

> でもgitはただのディレクトリだから、ディレクトリを使った方法(>>229)でも
> できるという話。
できるって何が?

> git化することで何も失われていない。
ちなみに、>>244のディレクトリ構成を実際に作って、co-dev1でgit cloneしてみたら、/proj/src/libも取得できちゃったんだけど。
俺はgitの知識がほぼゼロなんで、なにか間違ってるかもしれないけど。
2014/03/11(火) 14:38:57.36
>>251
お前一人が勘違いしている可能性は考慮しないのか
254252
垢版 |
2014/03/11(火) 14:43:10.33
ちなみに、俺がやったこと。
/path/to/proj以下に>>244のディレクトリ構成を作って、
cd /path/to/proj
git init
git add *
git commit -a
su - co-dev1
cd ~/src
git clone /path/to/proj
これで、proj/src/lib以下が取得できてしまったんだが、これを取得できないようにするにはどうしたらいい?
2014/03/11(火) 14:46:33.16
>>252
お前頭悪いなw

共有ディレクトリを使った方法では、
gitを使うことに制限が出る。

無理というのは、その制限の話だ。

gitを使いたくなっただろ?
ちゃんと使おうと思うなら
共有ディレクトリ(>>229)はやめだ。

だが共有ディレクトリ程度でできるレベルであれば
>>244を使えば良い。
2014/03/11(火) 14:48:04.93
>>254
お前は、パーミッションも読めないのかw

>>244のdrwxrwx--x とかその後のdev-groupとか
意味わかってるか? 本気で馬鹿なのか?
257252
垢版 |
2014/03/11(火) 14:49:00.12
>>255
ちょっと何を言いたいのか良くわからない。

> 無理というのは、その制限の話だ。
要するに、
>>144
> プロジェクト無いの一部のフォルダを特定の人/グループに見せないとか、更新禁止にするだけだよ?
はできるの?できないの?

> gitを使いたくなっただろ?
いや、svnで満足してるし。
gitはgithubでcloneするくらいでいい。
2014/03/11(火) 14:53:48.97
>>256
> >>254
> お前は、パーミッションも読めないのかw

再現できてると思うけど。

ls -lR
.:
合計 4
drwxrwxr-x 4 user1 grp1 4096 3月 11 14:20 2014 src

./src:
合計 8
drwxrwxr-x 2 user1 grp1 4096 3月 11 14:20 2014 app
drwxrwx--- 2 user1 wheel 4096 3月 11 14:20 2014 lib

./src/app:
合計 4
-rw-rw-r-- 1 user1 grp1 6 3月 11 14:20 2014 aaa.c

./src/lib:
合計 4
-rw-rw-r-- 1 user1 wheel 8 3月 11 14:20 2014 bbb.c

uid=500(usr1) gid=500(usr1) 所属グループ=500(usr1),10(wheel),505(grp1)
uid=503(usr2) gid=507(usr2) 所属グループ=507(usr2),505(grp1)
2014/03/11(火) 14:54:41.80
>>244
ねえねえ、マジで言ってるの?
git 脳って git には詳しいのかと思ってたら、単なるアホだったのか (w

それ、自分に対する権限しか設定してないから、clone されたら丸見えだよ。
もし、反論するなら事前にベアリポジトリについてググってこい。
まあ、ググって理解したら恥ずかしくて出てこれないと思うが。
2014/03/11(火) 14:58:24.01
はぁ? なんでcloneするんだよ。
そこから間違ってるじゃないかw
cloneした時点でお前の間違いが明らかになってるんだが。

ファイルベースのリポジトリは最初に用意する人が
cloneするのみ。ファイルベースのリポジトリは
そのディレクリをみんなで共有する仕組みだよ。

最初っからディレクトリを使った方法と
全く一緒だって言ってるじゃないか。
2014/03/11(火) 15:00:06.59
>>260
複数人で作業すること前提なんですが
2014/03/11(火) 15:00:30.30
あたりまえだけど、

drwxrwx--x dev-group:dev-group /proj/.git ← gitデータディレクトリ

こうなってるので、dev-group以外の人はgit cloneできない。
なぜならファイルそのものにアクセス出来ないから。
2014/03/11(火) 15:01:37.98
>>261
ディレクトリを共有していれば、
普通に複数人で作業できますが?

gitはただのディレクトリなんだから
(gitとして制限をうけるだけで)
全く同じように共有できるって気づかない?
264252
垢版 |
2014/03/11(火) 15:01:47.99
>>260
> はぁ? なんでcloneするんだよ。
いや俺マジでgitに詳しくないんだけど、cloneってsvnで言えばsvn coじゃないの?
ワーキングコピーを作る方法。
2014/03/11(火) 15:02:29.48
あ、もしかして>>244のgitの公式説明

「ファイルベースのリポジトリ」が
一つのディレクトリをみんなで共有する方法だって
気づいていない?
2014/03/11(火) 15:03:59.48
>>264
> いや俺マジでgitに詳しくないんだけど、cloneってsvnで言えばsvn coじゃないの?
> ワーキングコピーを作る方法。

本当にに詳しくないなwwwwwwwwwwwwwwww


gitにはsvnみたいに、ワーキングコピーとリポジトリなんて
二つにディレクトリに別れてないの。

普通のディレクトリを、場所を変えずにそのままで
gitリポジトリに変えられちゃうんだよ。

き・そ・ち・し・き
2014/03/11(火) 15:04:58.55
まさかとは思うが、複数人が同じサーバにログインして、同じディレクトリ下で開発するとか思ってないだろうな?
2014/03/11(火) 15:06:59.00
proj/src/lib以下はリポジトリ分けて
projのサブモジュールにするんでしょ?
何かおかしなこと言ってるヤツいるけど
269252
垢版 |
2014/03/11(火) 15:07:27.36
>>266
> gitにはsvnみたいに、ワーキングコピーとリポジトリなんて
> 二つにディレクトリに別れてないの。
話が全然かみ合わないんだけど、gitだって全員の変更を一つにまとめる中央リポジトリ的なものがあるんじゃない?
俺の薄い知識だと、それとローカルを同期させたり差分を取り込んだりするのにpull/pushがあると思ったが。

> 普通のディレクトリを、場所を変えずにそのままで
> gitリポジトリに変えられちゃうんだよ。
いや、その程度は知ってるって。>>252に手順示したじゃん。
2014/03/11(火) 15:08:31.10
>>264
mkdir hogehoge ← ディレクトリ作りました。
cd hogehoge ← ディレクトリに移動しました。
touch a ← まあ適当にファイルを作ってみましょう。

-------- ここまでgitとは無関係の作業 -----------

git init ← hogehogeがgitリポジトリになりました。

-------- これだけでgit化終わり -----------

git checkout -b branch1 ← ブランチ1に切り替え
git add a ←ファイル追加
git commit ← ファイルコミット

-------- なんでもできます -----------

gitを始めるのにcloneなんて要りません。
2014/03/11(火) 15:08:40.05
>>268
> proj/src/lib以下はリポジトリ分けて
> projのサブモジュールにするんでしょ?

そんなことしなくても出来ると言って暴れてる奴がいるんだよ
2014/03/11(火) 15:09:29.01
>>270
一人の場合はそれでいいが、今は複数人で開発するときの話だ
2014/03/11(火) 15:09:57.21
>>267
> まさかとは思うが、複数人が同じサーバにログインして、同じディレクトリ下で開発するとか思ってないだろうな?

それ、共有ディレクトリ(>>229)を作ったやり方の話話をしてるんだよね?

229 名前:デフォルトの名無しさん[sage] 投稿日:2014/03/11(火) 10:40:50.83
>>220
user = {dev1, dev2, co-dev1}
がいるときに、
/proj/src/app/
/proj/src/lib/
/proj/src/else
/proj/else
というディレクトリ構成で、
* dev1,dev2は全てのディレクトリ以下を参照できる
* co-dev1は/proj/src/lib以下を見ることができない。それ以外は全部参照できる
という設定をするとき、
dev-group = {dev1, dev2, co-dev1}
lib-dev-group = {dev1, dev2}
というグルーピングをし、
chgrp -R /proj dev-group
chgrp -R /proj/src/lib
chmod -R 770 /pro/src/lib
とすれば実現できるが、これをgitではどうやるかという話だと思うが。
もちろん、複数人で開発するのだから、サーバでの話。
2014/03/11(火) 15:11:37.04
>>272

だから複数人で共有しろよ、gitディレクトリを。

>>229で話しているのはそういうことだよ。
2014/03/11(火) 15:13:14.93
底辺だとそんな開発してるんだな
勉強になるわ
2014/03/11(火) 15:14:29.68
複数人で開発したことないんだと思うよ
2014/03/11(火) 15:14:43.02
共有ディレクトリを使ってパーミッションでアクセス制限とかw
>>229は前時的な開発してるな。

さっさとgit化すればいいのにw
2014/03/11(火) 15:15:24.86
>>229のやり方って複数人で開発できるの?

できるならgitでも同じことやれば出来るってわかるけど。
2014/03/11(火) 15:19:13.77
>>229のやり方でもグループを適切に設定すれば複数人で開発できるよ。
(もちろんgitのディレクトリを共有するやり方でもね)

ただ、それだと共有ディレクトリを使ったレベルまで
開発が不便になるから、この場合は普通にやるなら
サブモジュールを使って管理するべきことだろう。

今話してるのは、git化しても共有ディレクトリを使ったやり方はできるから
gitなし共有ディレクトリと何も変わらないということ。
280229
垢版 |
2014/03/11(火) 15:22:17.78
単なるファイルシステム上のアクセス制限であれば、>>229のように設定すれば実現できるが、
それをgitでできるのか?というのが>>229の趣旨。

もちろん、単一ディレクトリのアクセス制限ができても、複数人では開発できない。
2014/03/11(火) 15:24:20.43
??279
は?この人何言ってるの?
2014/03/11(火) 15:25:19.98
その辺は現場によってまちまちだろうね
メンバーごとにプロジェクトフォルダをコピーするだけで完全に動作する環境の方がいいが、そこまで開発環境を作り込めない現場も多い
2014/03/11(火) 15:27:00.67
一人だけ完全にずれてることにまだ気づかない奴
2014/03/11(火) 15:28:42.86
そもそも最初からgitだとsubmodule使うしかないねって話なのに。
2014/03/11(火) 15:50:06.26
ディレクトリ共有とか、もう何年もその発想忘れてたわ
2014/03/11(火) 16:10:13.28
平均的プログラマーの7割は、gitを理解できない。
これが現実。

OSS開発者の事じゃないぞ。サラリーマン開発者の事だ。
2014/03/11(火) 17:39:26.04
>>283
もうわざとでしょ、彼にとってはバージョン管理なんかより git でもアクセス制御ができると言えることが最重要なんだよ、例えそれに意味がなくても (w

>>284
現状ではそれが一番みたいですな。

>>285
特に SCM 使ってたら直接共有する必要ないしな。
2014/03/11(火) 17:44:33.56
>>287
やっぱり気づいてないみたいね。

はっきり言うと、わかってないのはお前。
2014/03/11(火) 17:45:30.23
>>287
> 現状ではそれが一番みたいですな。
それは最初に俺が言ったことだろw

140 名前:デフォルトの名無しさん[sage] 投稿日:2014/03/10(月) 06:24:12.14
>>139
えとさ、どういうディレクトリ構成なのさ?
それ言ってくれんとわからん。

なんか、話を聞いていると、一つのディレクトリのあちこちに、
社内に公開できる部分、出来ない部分があってごちゃごちゃ
混ざってるように思えるんだけど?

もしそうだとしたら、それ人為的ミスで間違って
ファイルわたしてしまう可能性があるから修正した方がいいよ。

簡略化するとこういう感じ
root
├メインプロジェクト(自社開発)
└外注さんに任せるライブラリ
もしくは
root
├メインプロジェクト(外注さんと共同開発)
└自社専用ライブラリ

ライブラリ部分はgitで言えばsubmoduleという機能を使えばいい。
submoduleは外部のリポジトリを自分のリポジトリに埋め込む機能。
もちろん別々のリポジトリとして扱える。

submoduleはルート直下にしか置けない。
メインプロジェクト以下にライブラリを置かなければいけないことはよくある話で、
そういう場合はシンボリックリンクを使ってメインプロジェクト配下に見せる。
2014/03/11(火) 17:48:26.46
最初に俺がサブモジュールというちゃんとした答えを言って
サブモジュールを使うより劣るけど、git+共有ディレクトリでもやれなくてはないよ。
(だから共有ディレクトリでやれるアクセス制限はもちろん出来る)
って話をしているのに、わかってないんだな。やっぱり馬鹿か。
2014/03/11(火) 17:54:08.80
もうだれが誰やら
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況