Subversion: ローカル リビジョンをプッシュせずにコミットし、後でプッシュすることは可能ですか? それとも、この機能がないために「集中型」と呼ばれているのですか?
8 に答える
Subversion でローカル コミットを行うことはできません。
これは、集中型のバージョン管理システムとして、ローカルの作業コピーには、サーバーが過去のリビジョン、ログ エントリなどについて保持しているすべての情報が含まれていないためです。これは、分散バージョン管理システム (DVCS) の場合に保持されていたはずです。
Subversion の作業コピーには、チェックアウトされたすべてのファイルのコピーが含まれているため、サーバーに接続せずに変更されたファイルを元に戻すことができます。
本当にローカル コミットを行いたい場合は、Subversion の上に構築され、DVCS のような機能を提供するSVKを確認する必要があります。
上記の多くはやや時代遅れになりました.この質問は「svn local commit」のグーグル検索でヒットしたので、ここに更新があります:
パッケージ "git-svn" (git がわからない場合は "git-gui" と一緒に) を使用して、完全なリモート SVN 統合を使用して、ローカル コミットを可能かつ簡単にすることを検討してください。まともな概要/チュートリアル/ユースケースはこちらです。Sourceforge プロジェクトでこのプロセスを使い始めたばかりなので、まだ問題を報告できません。Authors ファイルを正しく取得してください。
編集:リンクを更新しました。ありがとう、hdl!
それが中央集権型と呼ばれる理由です。レポ内でレポを使用してみることができます。1 つはローカルで、もう 1 つはリモートです。次に、内部リポジトリ全体をリモートにコミットします。
他の人が言ったように、いいえ。
svnでリモートでジャンキーなものを使用することを強くお勧めします。
私はそれに対して推奨するのに十分なSVKを使用していません、それは十分に素晴らしかったようです。しかし、私はプロジェクト全体でSVN上に構築されたものを何も壊さずに使用することに懐疑的です。私はSVNを十分に使用しており、注意しないと、通常の作業サイクルでも乾杯する可能性があることを知っています。
職場ではSVNを使用しています。私はbzrとbzr-svnを使用してすべての対話を行ってきましたが、それは素晴らしく機能します。私のワークフローは次のようなものです。
$ bzr branch file:///var/svn/project ~/project
(ハック、ハック、ハック)
$ bzr commit -m "commit log"
(繰り返す)
準備ができたら
$ bzr push
はい、更新する代わりに、$ bzr merge
変更をコミットしてコミットします(おそらく、作業中のものを棚上げします)が、ローカルコミットは非常に優れており、棚付けも同様です(棚付けは保存して元に戻すようなものです)
gitもこれを処理すると思います。bzr-svnほど完全ではないと聞きましたが、それを裏付けることはできません。
しかし、svnリポジトリでDVCSを使用するのは良い方法です!
BobCの回答に加えて、mercurialの場合はhgsubversion
.