ファイルサーバ上の共有フォルダ(cifs)で複数人でgitを使うことを画策していますが、どんな問題があるでしょうか。経験に基づくエピソードを教えて下さい。
ユーザ企業システム部門に支援で参画しています。
ファイルサーバの中身が混迷を極めています。ファイル名に日付や_r1やFinalのようなオマケをつけていたり、前世代をとりあえずoldに放り込んだり、Excelファイルを複製して各自で編集したものを若手が頑張って統合していたり、といった状態です。扱うファイル形式は xlsxやdocxが中心です。
Subversionの経験があるメンバもいますがマイノリティにとどまっています。混迷を打開するためにTortoiseGitの導入を画策しています。
共有フォルダをremoteとするのはちょっと教育コストが高そうなので、まずは共有フォルダ自体を単一のローカルリポジトリとして扱い、まずは add, commit から始めるのがいいかしらと考えているところです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
gitではありませんが、windowsでmercurialを共有フォルダで利用でいていました。
適当に思いついたことをだらだらと書きます。ご存知の内容もおおいとおもいますが・・・
共有フォルダを直接利用していた際はファイルの変更ステータスを検知できなかったりしたので、ローカルから、ファイルサーバでプッシュしていました。
ローカルにファイルを置くことでの問題は共有ファイルにpushを忘れること以外の問題はないと思いますので、是非ともそのようにしてください。
ローカルへのクローン・ブランチの作成と切り替えマージはmatobaaさんが行い、pushをそれぞれが行うようにすれば問題ない気がします。
複数の変更要求に平行して対応するため、変更ごとにクローンをローカルに作っておく必要があります。これはブランチの替えが理解できない人のための処置です。(すぐに不要になりますが・・・)
これは加えて、夜間のhotfixの際のマニュアル(コマンド類はコピペかダブルクリックで済むようにすること)は用意したほうが良いでしょうね。
初めてのgitであればgit-flowで運用しましょう。シンプルで運用の負荷が少ないです。
とにかく必要なコマンドは、用意しておきましょうおいおい教えていけばよいです。
導入して最初にやることは、どんどん不要と思われるファイルを消しましょう。消しても問題ない(戻せる)ことを証明して、不要なものを消すとこへの躊躇をなくすのです。
winmargeにはexcelファイルの比較ができるアドオンがあります。
投稿2016/01/20 00:34
総合スコア2883
0
Subversionの経験があるメンバもいますがマイノリティにとどまっています。
この一文が非常に気になります。
混迷を打開するためにTortoiseGitの導入を画策しています。
その直後になぜGitに繋がるのでしょうか。
例えば、細かいことはおいて、以下の2つを等価なものとしましょう。
0. Subversionでどこかに管理場所を用意して共有フォルダのみにチェックアウトしてVer管理(個人PCにはチェックアウトしない)
0. Gitで共有フォルダのみを単一のローカルリポジトリとしてVer管理(個人PCにクローンしない)
1ができないなら、2もできません。
2ができるなら、1もできるでしょう。
Excelファイルを複製して各自で編集したものを若手が頑張って統合していたり
将来的にもこれは解決できない可能性が高いです。共有フォルダを直接開き、Officeの排他機能を使いましょう。
Gitは基本的にテキストファイルのみマージでき、Excelファイルを整合性を取ってマージする機能がないためです。
複数人でgitを使うことを画策していますが、どんな問題があるでしょうか
最後になりましたが、本題について、共有フォルダ自体を単一のローカルリポジトリとして扱う前提で書きます。
- そもそも単一のローカルリポジトリを複数人で同時に操作することを想定されて作られていない可能性があり(すいませんがそこまで詳しくは知りません)、同じファイルについて同時に操作するとデータ不整合が起きる可能性がある(起きたことはないですが)
- 更新アイコンが出ているファイルをどのタイミングでコミットするかの判断が面倒(リビジョンに意味を持たせても、毎日の業務でそのうち疲れてくる。1日1回と決めるとそれ以上の頻度でバックアップ出来ない)
- ファイルを管理対象へ追加するのが面倒(教育含め)
- ファイル名を変更する(と管理対象から外れる)のが面倒(教育含め)
- ファイルパス上のフォルダ名を一部でも変更する(と管理対象から外れる)のが面倒(教育含め)
- 全てを管理対象とすると容量が肥大(一部分を管理すると追加時の判断が面倒)
- 全てを管理対象とするとアイコンオーバーレイが重くなる
(一部分を管理すると追加時の判断が面倒)
など、もっとあったかもしれませんが、忘れてしまいました。
追記します。
どうも管理対象がプレーンテキストのソースコードではなくOfficeファイルのようなので、少し視野を広く持って、シャドウコピーによる定期的なバックアップ運用も比較検討対象に加えられるのが良いと思います。
目的はトータルでの作業負荷の軽減であって、手段にとらわれて余計なことを覚えさせられ、現場に混乱を招くことではないでしょうから。
投稿2016/01/20 00:03
編集2016/01/20 00:47退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/20 03:38 編集
退会済みユーザー
2016/01/25 09:17
0
ベストアンサー
表題の「共有フォルダでgitを使えるか」については、使えません(そのような利用方法は想定されていません)。
以下のページ前半部分「(非推奨)ノンベアリポジトリのみで管理」も参考になるかと思いますが、non-bareリポジトリは同時に1ユーザのみが操作することしか想定されていません。
以下質問の本題からは外れますが、誤解があるようなので説明を記載します。
そもそもgitやsvnといったバージョン管理システム(以下、VCS)のメリットの1つとして、ファイルの実体を共有せずとも複数人で協調作業が行える、というものがあります。
そのメリットをスポイルするのであれば、VCS導入のメリットが薄くなります。
共有ディレクトリ上で運用するのが最善策であると考えられているのであれば、導入すべきはVCSではなく世代管理可能なバックアップシステムではないでしょうか。
(共有ディレクトリ運用を止め)VCSを導入する場合においても、Excelファイルのようにマージ不可能なファイルをバージョン管理したい、そしてVCSに不慣れなエンドユーザがいるのであれば、以下の理由でgitよりsvnが向いていると考えます。
- (TortoiseSVNを導入すれば)gitよりWindowsフレンドリーである
- Excel差分表示ツールなども標準でインストールされる
- VCSがファイルロックをサポートしているので同時編集による競合を防げる
更に話は逸れますが、
Subversionではご指摘の面倒さ(ファイル名変更を追跡できないなど)があり
とありますが、ファイル名変更を追跡できるのはsvnです。
gitが行っているのは(tanagaさんが書かれているhgと同じく)ファイル名変更の推測です。
投稿2016/01/25 10:51
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/01/25 12:49
0
今更ですが、Gitのドキュメントには共有ファイルシステムを使った方法が書かれています。
「Local プロトコル」の部分だけ読めば十分です。
https://git-scm.com/book/ja/v1/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
この場合の利点は、「シンプルであることと既存のファイルアクセス権やネットワークアクセスを流用できることです」とあります。
実際にWindows8系のTortoiseGitでやってみましたが、共有ファイルシステム上にリモートリポジトリを作成し、他のマシンからこれをクローンするだけでいいんです。クローンする際に、リモートのURLを、file:///\ServerName\Share\Remote.git のように指定すればOKでした。
アクセス権は共有ファイルのがそのまま有効となりますので、Git側ではパスワードも何もありません。また共有ファイル上で普通のファイルとして編集等ができてしまうかも知れませんので、
その辺は合意が必要でしょう。
的を外していたらごめんなさい。
投稿2016/07/29 10:25
総合スコア12
0
※ご希望に沿うような回答が出来なかったので、削除しました。
投稿2016/01/19 22:57
編集2016/01/19 23:54総合スコア94
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/20 00:39