ツールの現在の状態。 ユーザービュー

警告:この記事では何も教えません。 これは非常に高レベルの外観、私の考え、私にとって重要な質問への反映+ gitグラフィッククライアントに関する民族誌的研究です。



分散バージョン管理システムについて話しましょう。



CVSは悲しく、遅く、原子的ではありませんでした(「何も触れないでください」)が、Eclipseの通常のクライアントでは。



SVNは最初はゆっくりでおもしろかったが、最初のブランチの出現により、Eclipseの2つの異なるクライアントのバグが優しく補完され、悲しくなりました(「コミットしないでください」)。



それからgitを学びました。 Gitは、2〜4つのコマンドのシーケンスで毎日の操作が実行される、コマンドラインユーティリティの非論理的なセットです。 最初の週、私は盲目の子犬のように隅々まで突っ込んだ。 4つのリポジトリ(作業コピー、ステージング領域、ローカルリポジトリ、リモートリポジトリ)の図を作成し、矢印でコマンドと場所から場所へ情報を転送するオプションを指定しました。 この適応期間の終わりに向かって、私は日々の仕事に必要な大切な組み合わせを感じ、リーフレットから一連のコマンドをシャッフルする勇気を得て、必要なものを多かれ少なかれ提供するように強制しました。 コマンドラインからの対話型コミットの力、または、たとえば、現在の状態を理解するためにどのようなクエリを作成するかについてはまだマスターしていません。 リポジトリを好きなようにツイストして、何でも何でもバインドできるのは嬉しいことですが、これには魔法が必要です。



最近、Mercuryに会いました。ここでは何も学習しようとせず、すぐにグラフィカルクライアントをインストールしました。 私は彼らの歴史がどのように書き直されてコミットを修正するかを読みました-これは3つの30分の呪文と1つの「拡張子」(拡張子を設定すると設定に名前を書くことです-その前に、水星はそれについて何も知りませんでしたが、今私は見つけた)。 これらの両方のツールを同時に研究するために-まあ、私は誰がすべきかわかりません:







「私は何に繋がっているのですか?」せっかちな読者は尋ねます。 DCS(DVCS)に入るためのしきい値が高い。 多くの人は、彼らがそれを必要としないと思うからではなく、実際に難しいからです。 ほとんどが人でもあるプログラマを含む。 作成者自身は、コマンドインターフェースよりも内部デバイスに注意を払っています。まあ、サードパーティの開発者はどこに、愛好家はどこにいるのでしょうか。 リポジトリを管理するような複雑なことは直接要求されます、グラフィッククライアントは頼みます! それらの多くがあります。 私はマックのセクターを見ました-人々はそうすべきだと思われます。



最初の悲しい事実は、圧倒的な数のクライアントがツリーを表示してコミットすることしかできないということです。 これはすでに何かです-少なくともリポジトリの状態を理解することができますが、そうでない場合は、コミットの単純な履歴を少し超えて、コマンドラインで再び放置されることを意味します。



2番目の悲しい事実は、ツリーを正常に表示することすらできないことです。ただし、プログラムに2つの機能がある場合は、少なくともそれらを十分になめるように思えます。



たとえば、古いgitkはユーザーを混乱させるために多くの努力をしました。







このアプローチは、WindowsおよびLinuxの場合(およびサポートを販売する他の方法)に正当化されますが、ここでは疑問が生じます。



今日(1.7.3.5)gitkはわずかに改善されましたが、画像はまだ情報の読み取りに寄与していません-色は理解できないアルゴリズムに従って分散され、一般に気が散り、ラベルが整列されず、スキャンが困難になります:







しかし! 最も興味深いのは、彼らがそこで止まらなかったことです。 デフォルトでは、gitkはストーリーを...ドラムロール...混乱して表示します! 「ゆるい話」などと呼ばれます。 私は手を振る、と思う。 これは認識を簡素化することになっています。







そして、それは特徴的であり、彼らは例を挙げました(これに関する3番目の悲しい事実も参照)。 たとえば、ツリーがまったく描画したくないパトスタワー (私はすぐには見つけませんでした-通常、そこにはla github分割画面のサイズのコミットのリストがあります):







これはgitxで 、あまり哀れではなく 、実際には2つの機能を備えています。 彼らは、gitkの作者のように、読みやすさを損なうために、左端に1ダースまたは2ピクセルを保存することにしました。 gitxと以前の「厳密な」履歴のTowerツリーは、一般に表示を拒否します。







そして、これはEclipseプラグインであるegitです。このプラグインはツリーのようなものではありません。そのため、碑文は問題を引き出すのが面倒です。 私はこれの準備ができていましたが、彼の最初のビジョンで彼は私を驚かせました:







意外なことに、 SourceTreeはうまく機能しました。 彼の木には自己交差がないわけではありませんが、起こっていることの本質は、円と線の混乱の後ろに隠されていません。







私は彼が本当に好きですが、経験から、例えばそれからマージを作成してもうまくいかないことが示されています。 したがって、愚かなタスクのみ。 しかし、gitとMercuryはどちらも不要な質問をすることはできません(gitディストリビューションはどこにインストールしましたか?)。しかし、正しいもの(コミットの名前と電子メール)を予測しています。



私はこのツリーの自分のバージョンを興味の対象から除外しました。







色が削除され、自己交差なし、マージが強調表示 これらは本格的なコミットではありません(実際、実装用ではありません)-これが今のところ有用なものです。 誰かが何か他のことをアドバイスできる場合-私はうれしいです。



そして最後に、第三の悲しい事実。 もう少しできるクライアントがいます-おそらく彼らは時間通りに手を取りました。 しかし、それらの「高度な」機能は、インターフェイスにボタンがあるだけのコンソールユーティリティと同じセットです。







何らかの理由で、そのデザイナーに基づいたgitとhgというAPIに基づいて、新しいメタファー、アクション、機能を備えた便利でシンプルで直感的なインターフェイスを作成できる、というシンプルなアイデアは誰も思いつきませんでした。 欠陥を繰り返すのではなく、除去するインターフェース。 しかし、コンソールインターフェイスの作成者が無力からリベットしたことを、次々と繰り返します。 私は、今日のDCSはすぐに使える製品ではなく、製品を待っているだけのプラットフォームだと主張しています。






All Articles