2011-12-27 12 views
22

基本的には、私はそれらを押すことなく、そしてブランチを切り替えることなく、私の変更をステージングしたいと思います。これは、私が良い停止地点にいるときに私が何か仕事をすることを可能にし、commitそれを同じ支店で続けます。もし私が台無しになったら、私はrevert、私は新しい変更を追加することができます、私はただcommitを再度することができます。SVNにgitのコミット(プッシュなし)と同等の機能がありますか?

私はこれらの変更を追跡するために、SVNに機能ブランチを作成することができます実現しますが、同じ支店/トランクに滞在しながら、再び、私はそうしたいと思います。 git stashと同等であっても、SVNにはそのような機能がないようですが、十分です。デザインSVNによって

+0

も参照してください:http://stackoverflow.com/a/527048/59087 –

答えて

31

分散バージョン管理の非常にポイントは、後の時点で、上流リポジトリとマージすることができるローカル・コミットのこの特徴です。 SVNは配布されておらず、実行できません。中央の障害はSVNのリニアリビジョン番号付けであり、各クライアントが各チェンジセットの新しいリビジョン番号を取得する必要があることを意味します。リビジョン番号を「割り当て」してから使用すると、あらゆる種類の競合状態が発生するため、「コミット」アクションと「プッシュ」アクションは、SVNとすべての非分散バージョン管理システムでは不可分です。言われていること

ジョーは提案のように、gitのSVNのフロントエンドは、良い選択です。これは、SVNがあなたのローカルコミットを見ないことを保証し、 "プッシュ"は単一の大きなSVNコミットに変換されます。

+2

git-svnを参照している場合は、各git commitをsvn commitに変換します。ただし、プッシュする前にコミットを手動で縮退することができます。 –

25

は、しかし、あなたはSVNのフロントエンドとしてのgitのgit svnコマンドを使用することができません。それはあなたがSVNのリモートからプッシュ/プル作業を行うことができますが、gitをローカルで使用するので、SVNリポジトリにプッシュすることなくローカルコミットを行います。このような

何かが役立つかもしれない:http://www.viget.com/extend/effectively-using-git-with-subversion/

+5

1:GitはSubversionのに最適なフロントエンドです。 – Johnsyweb

+2

SVNの私の理解から、それは非常に集中して基づいています。意味することは、何かをコミットすると中央リポジトリに行きます。あなたが変更を加えて保存する間、他のIDEがローカルの "スナップショット"を行うかもしれません。 – Joe

1

あなたはそれはあなたが唯一のSVNへのあなたのキルトキューの一部をコミットしたい場合はトリッキーな取得を開始したが、これを行うためにキルトを使用することができるかもしれません。

関連する問題