8

通常はトランクでコードに取り組んでいますが、最近の変更により、ワークスペースをブランチに切り替える必要がありました。

プロジェクトを実際にトランクに切り替えることなく、ブランチで作業中にトランクの変更をコミットすることは可能ですか?

基本的に、トランクとブランチの両方で、何度も何度も切り替えずに変更をコミットしたい

4

3 に答える 3

7

短い答え: いいえ

これが、神が最初に創造svn switchした理由です。これにより、作業内容を失うことなく、作業ディレクトリの基になるブランチを変更できます。

次のように考えてみてください: 開発者は、 「これはテストする必要はない。マイナーな変更だから」と自分に言い聞かせて、何かを壊したことが何回ありますか?

Subversion でやりたいことができるようになったとしても、それは悪い考えです。基本的に、コードベースに変更を加えることになり、そもそもそれらが機能することを確認する実際の方法はありません。これが、変更を行う前に Subversion が作業ディレクトリを必要とする理由です*。変更をどのようにテストしますか?

作業を失いたくないために使用したくない場合svn switchは、次のようにすることができます。

  • 作業ディレクトリ全体を別の場所にコピーし、その場所で使用svn switchしてそのトランクを作成します。
  • ブランチでの作業を完了します。変更をコミットし、リビジョン番号をメモします。次に、svn coまたはsvn switchを実行して、トランクの作業コピーを取得します。次にsvn merge -r、変更をトランクにマージするために使用します。もちろん、コミットする前に変更をテストしてください。

* Subversion では、mkdircpmv、およびrmを URL で直接操作できますが、これは主に、作業ディレクトリを作成せずにブランチを操作できるようにするためです。

于 2012-11-30T14:40:27.883 に答える
0

別のフォルダにあるトランクを確認してください。
トランクに変更を加えてチェックインします。次に、それらをブランチにマージし、マージをチェックインします。

于 2012-11-30T12:03:06.067 に答える
0

WC URLの外部のパスにコミットすることはできません(を参照svn info WCROOT

上記のルールは、WCルートがブランチとトランクの共通の親であるレベルにある場合、両方の場所に同時にコミットできることを意味します(ブランチとトランクはWC内のサブディレクトリになります)。共通の親はrepository-rootです。リポジトリ全体をチェックアウトしないために、commit/updateの--depthおよび--setdepthオプションで遊ぶことができます。

于 2012-11-30T12:59:56.380 に答える