ブログトップ 記事一覧 ログイン 無料ブログ開設

神様なんて信じない僕らのために このページをアンテナに追加 RSSフィード

2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
基本的に適当な日記です。あまり鵜呑みにしないでください。土日はWeb離れしているので反応遅れます。

2010-02-14

[]Visual Source Safeを使用するのは狂気の沙汰

きっかけ

元ネタ。

no title

俺はVSSを使用しようというプログラマを信用しない。(と宣言しておく)

割と適当訳なのでご了承ください。

時々現れる、どのバージョン管理ツールをつかうのかという宗教的議論の中で、

私はマイクロソフトのVisualSourceSafeが一貫して叩かれている事に気付きました。

私はこれほどまでに憎悪を集めるような別のソフトウェアプロダクトを考えることができません。

私のプログラミングキャリアの日々では幸運なことに、svnを使う場所で働いていおり、さらに最近ではgitだったので、私はVSSを一度も経験したことがないということです。

VSSは本当に皆が主張するくらいに悪いものですか?

はい、そのとおりです!!

私はgit、svn、cvs、tfs、及びvssを使いましたが、VSSは最も悪かったです。

それには、みんなで作業を分離するという概念が全くありません。

ファイルを操作するとき、あなたはそれをロックします。

マージの概念は持っていません。

そして、それはただただ共有ドライブにおいてあり、ネットワーク操作ですべてを行います。そして、ぶっ壊れます。

> そして、ぶっ壊れます。

本当に! そして、それはしばしば起こる!

早期、かつ頻繁に壊れる!

それが、VSSがVisual Source Shredder(ソースシュレッダー)と呼ばれる理由です。

私の会社では、1つのファイルを戻そうとしたために、仕事のコード全体を破壊しました。

恐ろしい、恐ろしい。

我々は常にバックアップをとるのが良い考えです。

右でも左でも競合がおきた。共有の問題もおきた。

離れた場所(例えば自宅)から簡単な修正を行うこともできない。

私はCVSのようなものが好きです。

完全に同意。

あなたは何ヶ月、何年もの仕事を絶対に失うでしょう。

数ヶ月、それを使用した誰でもそれを知っています。

VSSがロック方式でしか動かないという訳ではないよ。

ロックレスモードであなたのVSSを構築することもできます。

ただ、VSSは理解しがたいUIを持っており、それをすることはさらに悪化する場合があります。

VSSはマージできないというのは戯言です。

それは、悪いですが、まぁ、そんなに悪くはありません。

マージをすることができます。

Hateすぎる。

VSSで困っているのは世界共通なんだね!

で、こういう人もいるのだが、

七年以上、私たちは、6人の小さいチームで独立したVSSと共に働いています。

私たちにはどんな破損もありませんでした。

私たちはsvnに切り替わる必要はなくて、小さいチームにVSSは十分です。

私たちの開発者の大部分は、他の何かを一度も使用したことがないので、

私たちがVSSを使用していたとき、どう使いにくかったかがわかりませんでした。

SVNに切り替わって、私たちのいずれもVSSに戻って構わないとは思わないでしょう。

SVSを使用し始めるなら、あなたはVSSを使っていたときに比べ作業フローと生産性の向上に楽しくなり、驚くかもしれません。

あなたの経験は私と同じかも。

私に教えてください。

VSSからSVNに切り替えたら何を得られますか?

利点の説明が始まる。

多くの利益があるのですが、大きいものとしては、

・分岐

SVNは分岐を迅速に簡単にできますし、ディスクスペースを効率的に使ってくれます。

経験ではVSSで分岐をするとき、ブランチの必要性が考えられるケースに非常に慎重になり、殆どそれをしませんでした。

それをするのに時間がかかって、うんざりするプロセスであったので。

SVNの下では、必要なとき分岐すればいいのです。

バグや新機能はそれら自身のブランチで固定していて、容易に主コードに戻すことができます。

・速度

SVNはファイルやディレクトリ、また全体のプロジェクトの履歴を得るのに、VSSでできた速度より遙かに高速に動作します。

・バックアップ

SVNリポジトリは簡単にバックアップすることができます。

SVNのリポジトリはあなたのサーバのファイルシステムのフラットなファイルです。

アクティブな利用されているリポジトリをバックアップできますし、バックアップ中もソース管理システムを使うことができます。

・メンテナンス

SVNはオフラインでのメンテナンスや解析を必要としません。

メンテナンスを行う場合にシステムを長時間利用できないなんてことはありません。

*1

・リモートアクセス

HTTP(通常Apacheを使います)で容易にSVNにアクセスできます。

VSSではこれができないので、Source Offsiteのような別の製品を必要とします。

・コマンドラインツール

SVNには、包括的なコマンドラインツールがあります。

そもそも、SVNはコマンドラインツールですが。

テストのようなケースで、自動ビルドしたりすることが簡単になります。

これは、多分、それが利用可能になるまで(私の経験に基づいています)それがどんな活用性を持っているか想像できない領域の1つです。

・エクスプローラの統合

フリーで利用できるTortoiseSVNは、VSSの全ての機能をGUIで提供します。

Windowsのエクスプローラ上で、どのファイルが最新であるかを可視化できるようになります。

・ツール統合

多くのIDEやテキストエディタがSVNと統合できます。

あなたのツールにそれが存在していないなら、SVNフックはそのような統合環境を書くために利用可能です。

これは、ことによるとあなたがそれを試みるまで役に立つことが分からない領域です。

おまけ。

VSSの糞仕様について憤慨している人。

・それは、バカで効率の悪い方法でファイルを保持します。例えば、あなたがファイルの1つのキャラクタを書き換えるならば、小さい差分を保持するのではなく、ファイルの真新しいバージョンを保存します。あなたが別のものにある分岐を作ろうとするなら、深いファイルコピーをします。バカみたいに大容量のデータベースサイズになります。

・それは非常に遅いです。(特に、大容量になったデータベース)

・同時に複数のファイルをチェックインすることができないので、チェックイン操作において、複数のファイルへの変更を分類できません。(従って、貴方が個別にファイルを預けるとき、ソースの変化が激しい際に、同時にヒストリをブラウズして、どんなファイルがチェックインされたか見ることができません)

・システムに対する操作は何時間もかかるかもしれません。(トップレベルディレクトリを改名すると、あらゆるファイルを遡って再帰的に行わなければならないので、一個のフォルダを改名するのに何時間もかかりました)

・ツールサポートが最悪

・ファイルを編集するのに、そのファイルのチェックアウト(「チェックアウト」はSVNのロックと同等です)に依存しています。これはより遅い仕事となり、同じファイルを同じ時間に触ろうとしている人々をブロッキングします。(マージがそれを解決するとしても)

・データベースは崩壊します。私たちは、それを修理しようとしましたが失敗しました。私たちはバックアップから回復して、皆に最後の一日分の仕事を再びチェックさせるよう強制されました。

それは、ものすごく不快な製品です。

よりよい無料の代替手段があります。

あなたはそれを使用するというのなら、狂気の沙汰です。

結論、VSSを使用するのは狂気の沙汰。

*1:VSSは修復の際にオフラインにしなければならない

 2010/02/14 15:50 不満はおおむね理解できるけど、MS ACCESSの開発にはスゴイ便利なんだよねー>VSS

aa 2010/02/14 16:08 >・システムに対する操作は何時間もかかるかもしれません。(トップレベルディレクトリを改名すると、あらゆるファイルを遡って再帰的に行わなければならないので、一個のフォルダを改名するのに何時間もかかりました)

なんだそれ。くさりきっとる。。。

git最高

ll 2010/02/14 22:34 歴史のある製品だからしょうがない。Windows3.1とXPを比べるようなもんだろ。

y_nakanishiy_nakanishi 2010/02/15 00:10 VSSとSVNを比べちゃかわいそうでしょ。世代が全然違うんだし。

とおりすがりとおりすがり 2010/02/15 09:47 >Windows3.1とXPを比べるようなもんだろ。
>VSSとSVNを比べちゃかわいそうでしょ。
いやむしろIE6と(当時の)Firefoxを比較するというべきだろ。
歴史があるだけでなく、MSが独占にあぐらをかいて進歩を止めちゃったのがそもそもの問題なんだから。

IsoparametricIsoparametric 2010/02/15 12:31 > さん
便利なケースもあるのかもしれないですが、不便なケースが殆どなので困りものです。orz...

> aさん
gitは良いですね。該当記事の中でもsvnよりgitが良いよ、なんて言っている人がいます。
gitはバイナリを扱うときにロックできないのでそこがちょっと痛いのではありますが。

> |さん
うーん、歴史あるとは言っても2005とか銘打って出している製品な訳で、それがこのざまなので辛いわけです。
Windows3.1をWindows2005とかいって出したら詐欺ですよね?的な。

> y_nakanishi さん
確かにVSSは最初1994とか1995リリースなんですが、
なんも進歩してないわけですよ。見た目だけリッチぽっくなるだけで。

> とおりすがりさん
まさに言われるように、買い取ったあとに全く(は言い過ぎですが)進歩がないんですよね。
そもそも、ネットワークの不調ごときでデータベースがぶっ壊れるのは明らかな不具合なのですが

だいたいにしてマイクロソフトの中でも極々僅かなチームしかVSSを使ってないそうですしね……。
(英Wikipediaより)

y_nakanishiy_nakanishi 2010/02/16 01:21 MSにしてみたらVSSを改良する必要性ってないような...
ソースじゃなくてバイナリで配布して欲しいだろうし、
下手にSVN互換のツールなんて作ったらOSSを後押して自分の首を絞めるようなものだし。

IsoparametricIsoparametric 2010/02/24 08:51 半分くらい不良品なわけで、商品として世に出し続けるのをやめてほしいのですよー!
とひどいことを言ってみるテスト
まぁ、オープンソースに寄与させたくないのかもしれませんが、ひどすぎます><

y_nakanishiy_nakanishi 2010/02/25 02:45 そんなこと言い出したらだいたいのMS製品は不良品じゃんー。
(Moneyの開発中止で怒っているので手加減なし)

IsoparametricIsoparametric 2010/02/25 12:17 まぁ、なんというかせっかく良いツールが無料なのでそれを使いましょう、
ってことですねんw

名無し名無し 2010/03/24 09:19 1ヶ月も前の記事にコメントするのもあれだけど、
Microsoft Visual Studio Team Systemはどうなるのかなー
高すぎて買う気にならんのがまず問題。
svnかgitで問題ないしなぁ

IsoparametricIsoparametric 2010/03/24 09:25 自分は使ったことはないので何ですが、リンク先でも触れられているとおり
使われている現場もあるみたいですね。

まさに問題にならない限り、svnかgitでよくて
問題になることは殆どないというのが現実のように感じます。

mama 2011/02/03 11:02 Access絡む案件だと必須ですよね

I hate VSS I hate VSS 2011/03/02 01:27 歴史の中で必要な進化をとげられなかったのならば淘汰されるべきだよね。
Source COntrol Explorerもそうだけどいちいちダイアログをモーダルで開くなっちゅうの。あほちゃうか。

isofregisofreg 2011/03/04 11:53 私もAccess絡むと必須だと思ってるんですが、Access2010と連携してVSS並に使える代替製品ってありますか?

IsoparametricIsoparametric 2011/03/04 12:27 そのような代替製品があるかどうかは生憎知りません。

必須だと思われるなら使われるのが良いと思うのですが、
上記の話は主にソースの管理の話で、AccessでVSSを使うべきじゃない、という話ではありませんよ。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証