81

ある時点で、作業コピー内のすべてのファイルに、以下に示すように「S」記号が付けられました。

$ svn st
M    S   AclController.php
     S   InstallationController.php
     S   CustomerController.php
     S   RedirController.php
     S   IndexController.php
     S   LoginController.php
     S   OrderController.php
     S   ProductController.php
     S   SelfInstallController.php
     S   SelfcareController.php

興味深いことに、これはこの特定の作業コピーでのみ発生します。プロジェクトを新しいディレクトリにチェックアウトすると、「S」マークが表示されません。

この厄介な「S」記号を取り除く方法は?WCステータスの明確さが大幅に低下します。

更新:svn switch標準の構文を使用して時々切り替えます。最近まで、この「S」記号が表示されることはありませんでした。切り替えに使用されたコマンドは次のとおりです。

svn switch svn+ssh://xxxxxx/subversion/xxxxxxx/releases/1.0.16 .

「S」フラグをクリアする方法はありますか?

4

14 に答える 14

79

これは、ファイルが、それらを含むディレクトリとは異なるSubversionリポジトリ内の場所にあることを意味します。解決策は、作業コピー全体を同じ場所に切り替えることです。コマンドを呼び出す方法の詳細については、Subversionブックの2つの セクションを参照してください。

于 2009-12-08T12:29:40.927 に答える
11

ディレクトリ自体とその中のファイル(の1つ)で「svninfo」を呼び出すと、2つの異なるURLが取得されます。

ファイル/ディレクトリのURLが親のURLの後にファイル名が続くものと一致しない場合は、「S」ステータスになります。

親ノードと子ノードの1つのURLを投稿できますか?(必要に応じてURLを匿名化します)

于 2009-12-09T13:04:10.797 に答える
8

トランク(r100)からブランチ(r50)に切り替えているときに、「S 」ステータスになりました。エラーが発生しました:

svn: Failed to add file 'web/.htaccess': an unversioned file of the same name already exists

すべてのweb/のサブディレクトリに「S」のフラグが付けられました。

原因:svn:ignore it(r100)への.htaccessを削除してから、再度作成しました(バージョン管理されておらず、無視されています)。ブランチ(r50)のリポジトリにはまだweb/.htaccessがありました。

ソリューション :

mv web/.htaccess ../../
svn switch back to trunk
svn switch to branch again

すべて順調。

于 2011-09-22T17:11:52.173 に答える
6

SVNに正常にコミットしたディレクトリでこの問題が発生しました。私にとっての解決策は、ローカルで消去してから更新することでした。違いはわかりませんでしたが、何らかの理由で.svnファイルが修正されました(Sはなくなりました)。

于 2010-01-06T00:17:00.433 に答える
5

これは通常、ブランチを切り替えるときの中断が原因で発生します。

別のブランチに切り替えてから、本当に必要なブランチに切り替えます。

svn switch some_other_branch_url

svn switch desired_branch_url

于 2016-06-01T22:16:41.360 に答える
4

ちょっとしたコメント:リポジトリ内の同じ場所から削除されたディレクトリをチェックアウトしたときに同じS記号を取得しましたが、異なるURLを使用しました。つまり、'svn checkout svn + ssh:// user@scmのように異なるプロトコルを使用してチェックアウトしました。 .gforge...'に対して'svncheckout --username user https://scm.gforge ....'。最初のチェックアウトで使用したのと同じURLを使用して、もう一度チェックアウトすることで解決しました。

于 2011-01-13T16:00:19.057 に答える
4

誰かが答えを探して遅れて来る場合(これは上に正しく述べられています)、この状況の考えられる原因は、失敗する親ディレクトリの「svnスイッチ」であると思います(ローカルのコミットされていないファイルの場合のように同じ名前で、-forceオプションはありません)、失敗後のすべてのファイルを「切り替えなし」のままにします。

そのため(元の問題が後で修正されると仮定して)、同じ親ディレクトリでの後続の「svn switch」は、実際に残りの切り替えられていないファイルを新しいリポジトリパスに切り替えます。

于 2012-07-06T19:20:44.590 に答える
3

これは、ある作業コピーから別の作業コピーに切り替えたことを意味します。たとえば、作業コピーをチェックアウトし、それをスワップしてコードブランチと比較しました。これを元に戻す方法の詳細については、SVNブックを参照してください。

于 2009-12-08T12:13:21.290 に答える
3

このステータスを達成する別の方法があります-うまくいけば、誰かがそれを追跡する時間を節約できます。

外部ライブラリをSVNルートに解凍しましたが、サードパーティの作成者が誤って自分の.svnフォルダーをフォルダーの1つに含めてしまったことがわかりました。もちろん、これは私たち自身の正しいSubversionフォルダーを上書きし、このページの他の場所で説明されているのと同じ効果があります。フォルダーが予期せずに別のブランチに切り替わったように見えます。

于 2012-08-02T10:00:58.160 に答える
1

「アイテムが入れ替わりました。」

作業コピーで「svnswitch」を使用した場合、それを説明している可能性がありますか?

于 2009-12-08T12:02:31.173 に答える
1

発行時に「S」を取り除くための簡単な解決策

svn status

'S'でマークされたディレクトリに移動し、非表示の.svnディレクトリを削除するだけです。

rm -rf .svn

その後、ソースは「?」でマークされて表示されます そして、あなたはそれらを新たに簡単に追加することができます:

svn add path / to / resource

于 2018-01-30T00:31:11.547 に答える
0

私の場合、これは「svn switch」コマンドが中断されたときに発生し、TortoriseSVNで解決するには、ファイルを右クリックして[ switch backtoparent]を選択します

于 2015-08-22T05:38:04.560 に答える
0

私の場合、ブランチ内の2つのサブディレクトリがトランクから削除されました。トップレベルディレクトリからブランチをトランクから切り替えてからトランクに戻り、これらのサブディレクトリの問題が現在ステータスになっていることを経験しましたS

@ahnbizcadの回答をガイドラインとして使用しました。サブディレクトリの親ディレクトリ(それ自体が最上位ディレクトリの下にあります)から:

svn sw <branch_url>

svn sw <trunk_url>

于 2018-11-30T13:01:10.533 に答える
-6

公式ヘルプを読んでみることをお勧めします。

svn st --help

また

svn st --help | grep S

'S' the item has a Switched URL relative to the parent
于 2013-01-21T02:03:00.280 に答える