質問

公式のチェックインを待つのではなく、開発時にコードの変更を保存する継続的なバージョン管理システムを私は見たことがありません。もちろん、変更は「チェックインされていない」として保存されますが、実際に正式なチェックインを行う前に、バックアップや他の人が閲覧できるように保存されます。

私はこれを見たことがありませんが、これやそれに似たものが存在するのかどうか、また、それが良いアイデアであるのか、それともそうでないのか、その理由を知りたいと思っています。

現在、プログラマはソース コード管理をコードのパケットを統合するものだと考えていますが、なぜそれらのパケットを小さくして継続的に統合してはいけないのでしょうか?

-アダム

役に立ちましたか?

解決

現在、プログラマーはソースコード制御をコードのパケットを統合すると考えていますが、これらのパケットを小さくして継続的に統合してみませんか?

DVCはすでに基本的にこれを行っていると思いますが、それらが分散化されているからではなく、コミットすることが非常に速いためです。GITでは、SVNよりもはるかに頻繁にコミットします。コードの(使用 git add -i また git gui)、そして一般的に、完全なファイルではなく、コードの行の追跡に焦点を合わせています(「従来の」VCS 'のようなsubversionのように)

また、GITが本質的に機能する方法は、「もちろん「チェックイン」されないように変更が保存される」と言ったように、Commingをコミットすると、変更がローカルになり、別のものでリモートマシンにプッシュします。コマンド..保存するたびにコミットしてから、希望する場合はそれらを単一のコミットに戻すことができます。

「連続バージョン制御」を行うツールについては、シェルスクリプトでこれを非常に簡単に実行できます。

while [ 1 ]; do
   git add -a && git commit -m "Autocommit at $(date)";
   sleep 10;
done

スクリプトがあります、 CACM (github)、同様のことをします

CACM]は特定のディレクトリを監視し、すべての変更をスタンドアロンGITリポジトリにコミットします。

使用するには:

cacm --repo dir_of_git_repo --watch dir_to_watch

なぜあなたがそうしたいのかわからない。VCSを使用することで最も有用なことの1つは、(最後のコミット以来)変更されたものの違いだと思います。一定/自動化されたコミットを持っていることは、単にノイズになるようです。

また、 「E」テキストエディター 興味深い機能があり、分岐して元に戻す履歴を視覚化します。があります ブログポスト スクリーンショット付き。

他のヒント

一定の自動保存の仕事は、バージョンシステムのタスクではなく、エディターのタスクです。バージョンシステムに新しいバージョンが表示される場合、半分の単語ごとではなく、他のバージョンからの意味のある変更を表す必要があります。

Eclipseには、まさにそれを行う「ローカルヒストリー」と呼ばれる機能があります。ソースファイルのコピーを保存の間に保持します。削除されたフォルダーを追跡します。それは私のお尻を何度も節約しました。ローカルの歴史は、ローカルマシンでのみ発生する低レベルのバージョン制御として見ることができます。これの欠点は、もちろん別のマシンで作業するとき、あなたは異なる地元の歴史を持つことになります。

distributeバージョン制御システムを使用できます。 バザール, ギット, 水銀。その後、ローカルでコミットできます。

さまざまなDVCのInotifyベースのプラグインを見てきましたが、それは非常に賢いだけです。本当に、理想的なことは、リポジトリをコピーオンワイトファイルシステムに保存することです。これにより、これらの頻繁な粒状(および不変)バージョンのファイルがDVCの外に保持されます。

他の人が言ったように、私は多くの小さなコミットメントをすることを好みます。 DVCSを使用すると、トランクまたはマスターブランチを壊すことを心配する必要はありません。完了後にのみプッシュします。ファイルを編集するときに有毒な改訂について心配する必要はありません。

Linuxで使用します ext3cow HG/GITリポジトリを保存します。これにより、あなたが説明する種類の機能が与えられます。悲しいことに、私はLinuxを超えてポータブルなもののようなものを知りません。たぶん、いくつかのクレイジーなチームがPythonで1つを思いつくでしょう。

この質問は数回前に出てきました(それぞれ異なる文脈にありますが)ので、確かにExt3Cow(ただしポータブル)のようなものの必要性は明らかです。しかし、特に巨大な木では、DVC自体でその肥大剤を望んでいません。

DVCSではなく、ファイルシステムからこれを要求する必要があると思います。

チェックインしたくありません 毎日 変化する。あなたは、一緒に機能する可能性のある変化の原子セットをチェックインしたいと考えています。メソッドにパラメーターを追加して保存してチェックイン(およびCIビルド実行)を保存し、メソッドへの呼び出しをまだ更新していないため、ビルドブレークを作成したくありません。

あなたはようなものを意味します 転覆自己回転?

免責事項:自己バージョンは開発の良いアイデアであると言っているのではなく、個人的にそれを行うと言っていますが、テクノロジーは存在します。

必要に応じて、GitのようなDVCを使用してすべてのラインまたはキャラクターをコミットできます。一般的に、DVCを使用するときにできるだけ頻繁にコミットして、Git Bisectなどのツールで問題を簡単に追い詰めることができることは素晴らしいアイデアだと思います。あなたが説明する効果を望むなら、あなたはあなたのすべての保存でコミットするためにあなたの選択した編集者をスクリプト化することができます...実際にはそれは少しだろうと思います。

一部の人々は、この目的のために開発ブランチをセットアップし、開発者に作業中に変更を犯してから、品質保証レベルのブランチに統合するようにします。開発者に、それらの変更をメイン開発ブランチにコミットして融合する前に、自分のブランチで大きな変更を行うことさえできます。したがって、分岐はこれに対処できます。

Eclipseは、すべてのセーブでこのようなことをしていたと思います。バグを識別しようとしている間に、コードがバラバラにハッキングされたときに、数回節約されました。

これが別のアプローチです。ほぼ毎日、私は何かが機能しなくなった状況に駆け寄り、その理由がわかりません。数分間巻き戻して、どのような変更が加えられたか、どのファイルにどのようなファイルを確認します。したがって、継続バージョン制御の必要性に同意します。

同時に、リポジトリに毎日何千もの小さな変更をチェックしたくないのは事実です。

さて、これはあなたがすることです。両方を使用しますが、それらを混ぜないでください。ソースコントロールはチーム全体で使用され、時々それにチェックインする必要があります。同時に、すべての小さな変更を保存し、実際に情報を簡単に使用できるようにするローカル個人ファイルバージョンソフトウェアを実行します。

それでおしまい。私が使う 歴史探検家 私はそれを開発したので、他にも他の人がいます。

JetBrainsが開発した連続バージョン制御システムに興味があるかもしれません。まだ公開されていませんが、マルモのJetbrainsdayでの基調講演で、その機能をいくつか示しています。 http://new.livestream.com/jetbrains/jetbrainsday1/videos/29348962

として ダンは言及した, 、IBM Visual Age IDEは、ソースコードファイルを保存したすべてのバージョンを保持しました。ただし、このアプローチはIDEに限定されません。 dec vms オペレーティングシステムは、同様のアプローチを採用しました バージョンされたファイルシステム. 。 VMSでは、各ファイルのフルネームにはバージョン番号が含まれており、ファイルを保存するたびに、以前の最高の番号よりも高いバージョンナンバーワンで新しいコピーが作成されました。

どちらのアプローチも、私たちが知っているようにバージョンコントロールとはまったく一致しません。どちらも分岐が欠けていません(または、同じソースファイルで作業する複数の人を促進するために特に設計された機能)。しかし、どちらもヒューマンエラーに対するバックアップの目的に役立ちます。これは、私にとってバージョン制御の最も有用な側面です。

Java でプログラミングを数年以上経験してきた私は、Visual Age が開発プロセスにもたらした斬新なアプローチを今でも (懐かしく) 覚えています。Visual Age では、ソース コードに対して非ファイル アプローチを採用していました。コードはリレーショナル データベースに保存されました。通常は、単一のメソッドを表示するビューで作業します。フルファイルビューもありましたが、あまり使用しませんでした。

バージョン管理に関しては、保存するたびにバージョンが生成されます。バージョン番号/名前を使用して、メソッド、クラス/インターフェイス、パッケージ、またはプロジェクト全体を明示的にチェックポイントできます。また、メソッド レベルでソースをよりきめ細かく制御できるようになりました。Eclipse を使い始めると、Visual Age から多くの機能を継承し、コードのすべての「保存」をローカルに保存する履歴機能が追加されましたが、一歩後退したように感じずにはいられませんでした。

合理的な clearcase の概念があります ダイナミックビュー. 。 Windowsでは、開発ビューがマップされたドライブとして表示されますが、CODEの変更は保存するとすぐにサーバー側に保存されます。それはあなたが探しているものですか?

ご想像のとおり、このように働くこととのトレードオフがあります。 siの答え その上, 、これは推奨ではありません...

ベスタはどうですか?

http://www.vestasys.org/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top