パスワードを忘れた? アカウント作成
11941168 story
ソフトウェア

開発者以外でも使いやすいバージョン管理システムは? 96

ストーリー by headless
手間 部門より
今週、「外資系投資銀行のエクセル仕事術」という記事が/.Jの日記話題になっていた。記事の第5回では上書き保存をせず、その都度別名保存するというテクニックが紹介されているが、本家/.では別名保存の結果生じるバージョン管理の問題が先週話題になっていた。

本家/.「Ask Slashdot: Version Control For Non-Developers?」より

私の配偶者は多数の文書(Word、スプレッドシート、スキャンした文書など)を扱う会社で働いており、バージョン管理の問題で毎週数時間を無駄にしている。文書はいわゆる階層構造を用いて共有サーバーに保存されるが、諸悪の根源はそこにある。たとえば、皆が文書の上書きを恐れ、変更結果を「念のために」少し異なる名前で保存するため同じ文書の複数のバージョンができてしまい、どれが最新バージョンなのか、どれがクライアントに送られたバージョンなのかといったことが誰にもわからない状態だ。

こういった状況はバージョン管理システムを導入すれば大幅に改善されるはずだ。最初はSVNやTortoiseSVNを考えたが、開発者でなくても使いやすい、もっとシンプルなものはないだろうか。スラッシュドットの皆さんの体験談やアイディアがあれば教えてほしい。ドキュメントツリーで簡単にテキスト検索ができるものなら理想的だ。

コメントではMicrosoft SharePointを勧める意見が複数みられるが、その他のドキュメントバージョン管理システムやバージョン管理機能を備えたクラウドストレージサービス、Wikiなどを利用するといったもののほか、命名規則を検討する、仕事のやり方を見直すといったローテクな提案もある。皆さんはどのように文書ファイルのバージョン管理を行っているだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2015年02月28日 12時19分 (#2769216)

    日付が超重要な法律関連のファイル管理システムを担当したことがあるけど、
    ・進行中のファイルについては、基本的にサーバで同期する。
    ・それだと、出先での同期に時間が掛かるので、チーム内で都度都度P2P同期し合う。
    ・個別ファイルはWordとかExcelなんだけど、単純なバイナリ比較ではなく、同期するときに個人が中身そのもので判断する。
    ・終了したファイルについては、絶対に変更することが許されない形(アーカイブ)として保存する。

    当然、こんな要求に応えられる製品なんて存在しないので、内製してました。

    • by Ryo.F (3896) on 2015年02月28日 13時29分 (#2769252) 日記

      Gitでなんとかなりそう。

      親コメント
      • by Anonymous Coward on 2015年02月28日 15時35分 (#2769318)

        うちはローカルにGitHubクローンのGitBucketを置いて、バージョンはそこで管理してる。
        gitはクライアントソフトが結構充実してきてるから、細かい事は判らない事務員でも
        普通に使えている。

        修正確認などの承認ワークフロー管理はredmine側で行ってる。
        修正の流れというかタスクが分かりにくかったのであとからredmine立ててリポジトリを連携させる様に
        したけど、あまり複雑な事はしないで運用を絞ってしまえば難しいことは特になかった。

        親コメント
  • by plauda (46850) on 2015年02月28日 12時41分 (#2769226)

    たとえば、皆が文書の上書きを恐れ、変更結果を「念のために」少し異なる名前で保存するため同じ文書の複数のバージョンができてしまい、どれが最新バージョンなのか、どれがクライアントに送られたバージョンなのかといったことが誰にもわからない状態だ。

    これだけ聞くと、必要なのは「ワークフローシステム」(耳慣れないひとはぐぐって)に見える。
    変更結果が良く分からないなら、修正履歴を書けよ。

    バージョン管理システムを使うには学習コストがかかるし、
    そのバージョンでどんな修正をしたのか、記入するのは人間だからな。

    本当は、バージョン管理システムとかいらなくて、文書に作業履歴をつけることを徹底して、
    作業中フォルダ、承認済みフォルダ、クライアント提供済みフォルダなど、
    ワークフローに応じてファイルを移動させるぐらいで済むのではないかな?

    • by Ryo.F (3896) on 2015年02月28日 13時38分 (#2769259) 日記

      その「ワークフローシステム+変更履歴強制」よりバージョン管理システムの方が総コストが高くなる、という理屈がわからん。
      どっちも似たようなもんじゃないかな?

      それに、変更履歴って、「書け」ってルールを決めても、書かれないことが少なくないと思う。

      変更履歴が書かれることを期待できるような環境なら、フォルダベースのワークフローでも上手くいくかもしれないね。

      親コメント
    • by Anonymous Coward

      > 本当は、バージョン管理システムとかいらなくて、文書に作業履歴をつけることを徹底して、
      徹底させられないからどうしようかっていう話をしてるの。
      徹底しろって言うだけでみんなが徹底してくれるんならそもそもこんなトピックが立ち上がってない。

      • by Anonymous Coward

        コミットログに何も書かずにコミットできるので、バージョン管理システムを使っても何も変わらないのでは?

        それとも、差分比較したいといっている?
        やったことがあれば分かるけど、修正が多い場合の差分比較は修正履歴書くよりずっと手間のかかる作業ですよ。

        > バージョン管理システムを使うには学習コストがかかるし、
        > そのバージョンでどんな修正をしたのか、記入するのは人間だからな。

  • by Anonymous Coward on 2015年02月28日 11時58分 (#2769206)

    Office文書を主に扱うならSharePointでいいんじゃない?

    SVNやgitはテキストファイルじゃないとあんまし嬉しくないし。

    • by Anonymous Coward on 2015年02月28日 12時17分 (#2769213)

      xdocdiffというのがありまして....
      http://freemind.s57.xrea.com/xdocdiff/ [xrea.com]

      最近のWinMergeならOffice文書用の展開プラグインも入ってるので,DiffプログラムをWinMergeに設定してやればほかのVCSでも良いかも

      少なくとも,タグを付けたり最新版を管理したりしたいというのであれば,素直にVCS使うべきだと思います
      それがたとえバイナリであったとしても

      親コメント
    • by Anonymous Coward on 2015年02月28日 13時53分 (#2769266)

      WordやExcelだったら標準機能の「変更履歴の記録」を使えばいいんじゃないかなぁ。

      タレコミにあるような「ちょっとした変更」くらいならファイルを新しく作るより、こっちの方が改変者が誰かも残るし使えると思う。

      親コメント
  • by Anonymous Coward on 2015年02月28日 12時41分 (#2769225)

    これもプロプラを使うことの隠れたコスト

    • by Anonymous Coward

      これもプロプラを使うことの隠れたコスト

      Excelワープロは、一部の表形式を除いて都度新作する事を前提とした物で、結果的に文書ファイルのバージョン管理不要。
      使い回される一部の表形式は、「テンプレート」とファイル名に明記すれば良い。
      テンプレートを上書きする馬鹿には付ける薬はないし、そんな馬鹿にドキュメントバージョン管理システムが使えるわけはない。

  • by duenmynoth (34577) on 2015年02月28日 12時42分 (#2769227) 日記
    要するに、馬鹿でも使える履歴管理ソフトを探してるってこと?

    #残念ながら開発者でも難しいというのが現実なんだけどね
  • わたしが勤めている会社では、「ドキュメント名_日付_編集者.拡張子」という命名規則で運用しています。
    お客様に送ったなどの節目はさらにメールで周知します。
    みんながITに明るいわけではないので、下手にバージョン管理システムを導入すると混乱を引き起こしかねません。

    • タレこみにあるような「都度別名保存する」というのが最新版保存で使われているのはあまり好きでない。
      まあ、元コメントのように末尾のタイムスタンプやバージョン番号やが随時上がっていくならある程度理解できる。
      問題点はタレこみ元では無法状態で「少し異なる名前」にしていることだろうね。

      ちなみに私が良くやるのは最新は常に1個でファイル名も極力変えないという原則で、古い方の名前変更とバクアップフォルダーへ移動する方法。
      これで少なくとも最新がどれかという問題は起きない。名前が固定なら利用もしやすい。
      外部送付ならそれ専用のフォルダーを作ってそこへ入れ変更禁止にする。
      #そういう面倒対応のお世話をしてくれるのがSVNみたいなツールなんだけどね。

      たれこみ> 仕事のやり方を見直すといったローテクな提案もある。

      あと、それをローテクっていうか?
      命名規約を作ったり、ツールを使うようにする話の根本は全部仕事の見直しだよ。
      それを放棄したら何も解決しない。

      親コメント
    • by Anonymous Coward

      外資系コンサルの方が勧めている方法 [diamond.jp]に近いものがありますね。
      素晴らしいと思います。

  • by green_12512 (29059) on 2015年02月28日 13時38分 (#2769258)
    MediaWikiのファイル添付機能とか、文章のバージョン管理なんかは初心者にも受け入れられそうだと思うのですが・・・
  • by Anonymous Coward on 2015年02月28日 14時15分 (#2769279)

    一時期社内開発担当してたんでストーリー中、「配偶者の会社」の惨状が少しはわかる。まとまってないが自分の業界に当てはめてこの会社がこの先どうなるかを予測。

    ストーリーのような状況では当然ツールを導入orシステムを開発しようとなるが、こういうとこでは話題になってるツールを現状のニーズだけ考え気まぐれで使うので同じ目的の複数のツールが同時並行で使われることになる。また体制変わる毎に新しいツール使いたがるので時間が経つとデータがバラバラな場所にバラバラに散乱して手に負えなくなる。

    全社あるいは複数の部署で統一しようと話が出てくるが部署毎に処理方法、考え方、慣習の違いがあり、更に関係者全員に論理思考は期待できないのでまとめるのに苦労、担当は素人相手に話聞いて調整して説得してというのががメインの仕事になる(優秀な人は自分が素人だと自覚してるが自覚がなく中途半端に知識のある連中が一番扱いづらい、プライドだけ高い子供のお守りみたいなもん)。合意ができればとりあえずはこちらの勝ち、統一できるかどうかはこちらの調整能力による。

    うちらは貧乏なのでコンサルを雇った場合の事情は知らない、派遣されたコンサルの力量次第で天国になったり地獄になったりで運次第だろうなと想像。

    技術的な知識が話を簡単にしてくれることはあるが知識よりは人の問題。

    • Re:実情 (スコア:3, おもしろおかしい)

      by Anonymous Coward on 2015年02月28日 18時48分 (#2769405)

      配偶者(元文読むと女性っぽい?)は共感をもとめているだけで、
      解決方法なんぞこれっぽっちも望んでいなかったりして。

      親コメント
  • 履歴管理ツールと、フォーマット毎のdiff, patchコマンドの仕様は独立していればいいと思う。
    新しいフォーマットを作った人は、それに合った、プロトコルに適合したdiff, patchコマンドを作る。
    履歴管理ツールは、ファイルフォーマット毎に適切なdiffとpatchを呼び出す。
    これがあるべき姿だと思うんだけどな。

  • by Anonymous Coward on 2015年03月01日 1時46分 (#2769596)

    http://jp.techcrunch.com/2014/07/28/jp20140728universions/ [techcrunch.com]

    エンジニア的にはGitHubでいいじゃんと思うけど...。

  • by minemo (41273) on 2015年02月28日 11時41分 (#2769199) 日記

    状況がよく分からないのですが。

    雛形を使って上書きが怖いならMS-Officeであればテンプレートありましたよね?
    テンプレートで保存するときに任意のファイル名付けられるんでMessageIDぽくしたら?
    これで人と時系列は何とかなるので基のファイル名をどうするかですが、これは一義的
    に決まると思うので。
    ユーザー名や日時が面倒ならVBAで補助して行けるのでは?

    • by Anonymous Coward

      皆が文書の上書きを恐れ、変更結果を「念のために」少し異なる名前で保存するため同じ文書の複数のバージョンができてしまい、どれが最新バージョンなのか、どれがクライアントに送られたバージョンなのかといったことが誰にもわからない状態だ。

      元がテンプレートではなく、設計書などを改版→提出する流れでそれを特定のメンバーがやらない(初版作成者ではなく手の空いた人間に作業をあてがうなど)うえ、レビューで「(不適切な修正などが原因で)元に戻せ」という指摘を受けることが多いとか、そんな感じじゃないかなーと。

      主業務として文書管理をする人を置かないとツールだけでは回らないのではないでしょうか。
      管理者もレビューに参加してもらってOKになったらその版をブランチしてもらう、みたいに。

      • by Anonymous Coward

        分岐するのならその時点で分かるように連番や命名規約を決めればよいと思います。
        バージョン管理システムを利用していますがソフトに全部任せるのは難しい場合も過去ありました。
        文書管理者の準備は予算等で難しいでしょうし、たとえ人がいても結局解決しない場合もありました。
        開発チームのソースやインフラチームの設定ファイル、自動化シェル等はCVSやVSS等で管理していますが設計書、パラメータシートなどのドキュメント類は結局ファイル名、ディレクトリの命名規約で回すことも検討したほうがよいかも。

        • フォルダを監視して、コピーをルールに従って作るという常駐ソフトを昔作ったよ。
          とりあえず、どこそこのフォルダに書け!とだけ教えた。
          --
          見た目大事。
          親コメント
        • by Ryo.F (3896) on 2015年02月28日 13時25分 (#2769249) 日記

          分岐するのならその時点で分かるように連番や命名規約を決めればよいと思います。

          まさに正論。
          しかし、正論で上手く行くケースばかりなら、こういうストーリーは立たないわけで。

          たとえば、命名規約を守らないやつがいるとか、新規に加入したメンバーへの教育をしなければならないとか、意図的でないミスを防ぐ仕組みがないとか。

          正論以前の問題として、首から上が飾りにしかならない人々の存在も無視できない。
          たとえば、こう言ったファイル名に基づくバージョン管理では、十分な長さのバージョン識別子が必要になる。
          よく見るのは、「 ○○-20150228.xlsx」とか。
          これが十分と言えるのは、更新頻度が1回/日を上回らないと言い切れるときのみ。
          こんなことは、十秒も考えれば判ることなのに、日に数回更新されるファイルに適用して破綻しているケースをよく見る。
          こんなのは、可読性も考慮して、「 ○○-2015-02-28-00.xlsx」くらいにしとけば、日に十回以上更新されても問題ない。
          しかし、彼らの思考がそういう方向に向くことはなく、同じ破綻を何度も繰り返している。

          そういう人々を無視できないから、こういうストーリーが立つ、ってわけだ。

          親コメント
  • by Anonymous Coward on 2015年02月28日 12時18分 (#2769215)

    ファイル履歴使えよ...

    • by Anonymous Coward

      「皆が文書の上書きを恐れ」と書いてあるんだから共有共同作業が前提の話だろ。

  • by Anonymous Coward on 2015年02月28日 12時27分 (#2769221)

    dropboxではだめなのか?

    • by Anonymous Coward on 2015年02月28日 13時09分 (#2769241)

      dropboxではだめなのか?

      第3者のサーバーにファイルをアップロードしてもいい用途ならdrop boxやGoogle Driveもいいんじゃないかな。でも「ファイル名を変える」なんて方法を使うレベルだと、Google driveだと設定ミスって世界に公開して盛大に後悔、とかなりそう。dropboxは知らんが。

      他に、あっちのミスでファイルが消えたとか、数日サーバーが使えない場合に賠償請求できないかと。こう考えると個人で機密度の低い用途が限度では。Gooleは「すぐにサービスを止めてしまう」という懸念もあるけど。

      親コメント
  • by Anonymous Coward on 2015年02月28日 12時44分 (#2769229)

    TZは JST-9にしておいてRCS [purdue.edu]の Windows で動くバイナリ使って ci -l -zLT %1 とか、それも無理ならバッチ1行で copy %1 %どこぞ%\%date:~-10,4%-%date:~-5,2%-%date:~-2,2%T%time:~0,2%%time:~3,2%-%1 とかじゃダメなの?

    テキスト検索ならDesktopHE [xrea.com]。

    • by Ryo.F (3896) on 2015年02月28日 13時40分 (#2769261) 日記

      今時RCS?

      親コメント
      • by Anonymous Coward on 2015年02月28日 14時57分 (#2769293)

        私の配偶者は~な人は「最初はSVNやTortoiseSVNを考えたが、開発者でなくても使いやすい、もっとシンプルなもの」とのことですから、SVNよりもシンプルなバージョン管理ツールとあれば、レポジトリが不要(というより扱えない)でコマンドのパスさえ通っている所に ci.exe 等を置けばバージョン管理が可能となるRCSで十分だろう、と思いました。今時、というなら、CVSは選択肢から外れますが、複数のユーザーが同時に一つのWordやスプレッドシートを編集して結果をマージ、とかはどのみちできないでしょうから、「編集中だからロックをかけるよ!」で競合を防げば済むかなと思いまして。ロックかけっぱなしで放置、とされると rcs -U 使う事になりますが。「異なる名前で保存する」なんてやりかたをしているぐらいだから、逆に、RCSで間に合うのになぜ新しい高度なツールを使うのかな、と。

        親コメント
        • by CowardDuck (25674) on 2015年03月01日 7時05分 (#2769643)

          まったく同意。

          今、モデレート権があれば「すば洞」を挙げたい。

          親コメント
        • by Ryo.F (3896) on 2015年02月28日 15時18分 (#2769303) 日記

          なら、RCSでも十分でしょうけど、Gitでも良いんじゃない?
          どちらにせよ0からの学習なら、いまさらRCSじゃなかろう。

          親コメント
          • by Anonymous Coward on 2015年02月28日 23時48分 (#2769549)

            なら、RCSでも十分でしょうけど、Gitでも良いんじゃない?

            Gitは 100MBのファイルをpushできません。これは仕様なので。if you add a new file or update an existing file larger than 50MB, and will be blocked from pushing files larger than 100MB [github.com] と GitHub Help にありますよ。例えば誰かが写真の多いWordをpushしようとしたら弾かれて、管理者を呼んだところで解決できませんね。「Gitを捨て、別のツールを検討しよう」と提案する以外に無くなります。

            うっかり100MB超えのファイルをリポジトリに追加してしまったら、面倒な手順を踏んで削除しなければいけません。GitHubは、プログラム開発ならいいでしょうが、Wordやスキャンした文書などを扱うのなら「論外」としか言いようがありませんので非技術系の人たちが学習する価値はありません。とはいえGit以外のバージョン管理システムも扱えるファイルの最大サイズに限度がある可能性があり、調べないといけませんが。

            RCS は単純だしそんなにヤワじゃないだろうと思いましたが、扱えるファイルの最大サイズはパッと調べた範囲では分かりませんでしたが、とりあえず手元で 1GB のファイルを ci -l できる事を確認しています。

            親コメント
  • by Anonymous Coward on 2015年02月28日 12時56分 (#2769237)

    WebDAV

    Windowsならネットワークドライブに割り当てられたはず。
    (実装が腐ってるって話があったけど)

  • by Anonymous Coward on 2015年02月28日 13時22分 (#2769246)

    企業向けSNSとかが、求められてる要件にあってるのでは?
    部署・部門毎にツリー構造でファイル共有、ファイルの更新履歴やコメント付けで管理したいって言うのであればですが。
    大抵は全文検索もサポートしてますし。

  • by Anonymous Coward on 2015年02月28日 13時44分 (#2769262)

    リビジョンコントロールシステムを使わない、使えない、使いたくない、使う度胸もない奴らに使わせなければいけない場合、
    本題のようにストレージのディレクトリベースでやると破綻するので、
    チームコラボレーションシステムとチケットシステムを主軸にして
    起草・編集・修正・確認・権限者承認・外部提出の運用を回すようにしたほうがよいとおもう。
    Atlassian の Confluence と JIRA あたりをつかうとかね。

typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...